Apple II emulation in Retroarch

I’m trying to use retroarch for apple ii emulation; however, I’m having trouble making it work.

I’m using the Mame core

I’ve placed the Apple II hash file under retroarch/system/mame/hash

I’ve placed the apple ii bios and game files under retroarch/system/mame/apple2 (i’ve also tried apple 2e)

The Apple 2 games are taken directly from the Mame romset and the names of the files look like they match with the hash file

I’m sure missing other stuff, but having trouble finding guides

Is there an easier way?

1 Like

I’ll show you how my personal setup works so can try it for yourself:

  • My hash files are in: RetroArch/system/mame/hash

  • My ROMs and BIOS are in: RetroArch/content/mame

  • The tree of my ROM folders look like this:

D:\RETRO\RetroArch\content\mame\
│
├─ apple2.zip
├─ apple2c.zip
├─ apple2e.zip
├─ ......
│
├─ apple2_flop_clcracked\
│  ├─ brdstale.zip
│  ├─ brdtale2.zip
│  ├─ byndwolf.zip
│  └─ .....
│
├─ apple2_flop_misc\
│  ├─ aklabeth.zip
│  ├─ karateka.zip
│  ├─ ultima3.zip
│  └─ .....
│
└─ apple2_flop_orig\
   ├─ aklabeth.zip
   ├─ brdstale3.zip
   ├─ karateka.zip
   └─ ......
  • Then for launching these Softwarelist games in RetroArch/MAME, I have a folder that contains cmd launch files with instructions for MAME, as follows:
D:\RETRO\ROMS\
│
└─ Apple - II\
   ├─ Championship Lode Runner (USA).cmd
   ├─ Choplifter (USA).cmd
   ├─ Karateka (USA).cmd
   ├─ Beyond Castle Wolfenstein (USA).cmd
   └─ .....

You can name these however you want. And add them to a manual playlist in RetroArch, name it: Apple - II

Each cmd file above contains instructions on which ROM to launch, which apple2 model to use, and other preferences for MAME. Here’s an example with the contents of Karateka (USA).cmd which will be using Apple ][+ model to launch:

apple2p karateka

Or you can specify an absolute / specific path like this:

apple2p karateka -rp "D:\RETRO\RetroArch\content\mame"

This way you can put your ROMs anywhere you want, not just in content\mame\. And there will be times as you build more Softwarelist setups where you’ll want to specify -rp like above, for example if you’re launching a game that has no hash entry yet. Or attaching a floppy disk image, etc…


As a bonus, here’s a machine list for picking different models of apple2 and related systems other than apple2p in my previous example:

Expand
------ Machine -----

ace100	    Franklin ACE 100
ace1000	    Franklin ACE 1000
ace2200	    Franklin ACE 2200
ace500	    Franklin ACE 500
albert	    Albert
am100	    AM100
am64	    AM 64
apple2	    Apple ][
apple2c	    Apple //c
apple2c0	Apple //c (UniDisk 3.5)
apple2c0de	Apple //c (UniDisk 3.5, Germany)
apple2c0fr	Apple //c (UniDisk 3.5, France)
apple2c0se	Apple //c (UniDisk 3.5, Sweden)
apple2c0uk	Apple //c (UniDisk 3.5, UK)
apple2c3	Apple //c (Original Memory Expansion)
apple2c3de	Apple //c (Original Memory Expansion, Germany)
apple2c3fr	Apple //c (Original Memory Expansion, France)
apple2c3se	Apple //c (Original Memory Expansion, Sweden)
apple2c3uk	Apple //c (Original Memory Expansion, UK)
apple2c4	Apple //c (rev 4)
apple2c4de	Apple //c (rev 4, Germany)
apple2c4fr	Apple //c (rev 4, France)
apple2c4se	Apple //c (rev 4, Sweden)
apple2c4uk	Apple //c (rev 4, UK)
apple2cde	Apple //c (Germany)
apple2cfr	Apple //c (France)
apple2cp	Apple //c Plus
apple2cse	Apple //c (Sweden)
apple2cuk	Apple //c (UK)
apple2e	    Apple //e
apple2ede	Apple //e (Germany)
apple2ee	Apple //e (enhanced)
apple2eede	Apple //e (enhanced, Germany)
apple2eefr	Apple //e (enhanced, France)
apple2ees	Apple //e (Spain)
apple2eese	Apple //e (enhanced, Sweden)
apple2eeuk	Apple //e (enhanced, UK)
apple2efr	Apple //e (France)
apple2ep	Apple //e (Platinum)
apple2epde	Apple //e (Platinum, Germany)
apple2epfr	Apple //e (Platinum, France)
apple2epse	Apple //e (Platinum, Sweden)
apple2epuk	Apple //e (Platinum, UK)
apple2ese	Apple //e (Sweden)
apple2euk	Apple //e (UK)
apple2jp	Apple ][ J-Plus
apple2p	    Apple ][+
basis108	Basis 108
cec2000	    China Education Computer 2000
cece	    China Education Computer E
cecg	    China Education Computer G
ceci	    China Education Computer I
cecm	    China Education Computer M
craft2p	    Craft II+
dodo	    Do-Do
elppa	    Elppa II+
hkc8800a	HKC 8800A
ivelultr	Ivel Ultra
las128e2	Laser 128ex2 (version 6.1)
las128ex	Laser 128ex (version 4.5)
laser128	Laser 128
laser128o	Laser 128 (original hardware)
laser2c	    Laser //c
maxxi	    Maxxi
microeng	Micro Engenho
mprof3	    Microprofessor III
prav82	    Pravetz 82
prav8c	    Pravetz 8C
prav8m	    Pravetz 8M
space84	    Space 84
spectred	Spectrum ED
tk3000	    TK3000//e
uniap2en	Unitron AP II (in English)
uniap2pt	Unitron AP II (in Brazilian Portuguese)
uniap2ti	Unitron AP II+ (Teclado Inteligente)
zijini	    Zi Jin I

Source: https://mame.spludlow.co.uk/SoftwareListGroups.aspx

Have you verified you bios? You can also get a log from RA to see if any files are missing.

I don’t fiddle around with softlists generally, the last time I tried it, I couldn’t load any other disk from the menu. Which would be necessary for e.g. save disks.

And relying on fixed lists isn’t something I like for computers anyway.

So instead, I just disable softlists and load stuff manually from the RA gui.

I have an Apple folder on a different hdd, inside there are Apple machine folders, e.g. apple2ee with the bios files. Load apple2ee.zip-> machine boots -> load disks from internal MAME menu