Jump to content
LaunchBox Community Forums

Can someone do an updated Apple IIGS setup Write up?


Recommended Posts

I assume you are trying to setup via MAME (formerly MESS for IIGS emulation) since that is what the LB video was presenting.  So will go over that as initial setup. 

There are other emulators such as GSPlus, KEGS32, and GSPort. MAME in theory is the easiest to initially get rolling, particularly if you are familiar with the inner workings of MAME for arcade setups.  The advantage of the others is you can typically run as a true "computer" a bit easier than in MAME but they come with a big learning curve of understanding the era's disk formats and guts of IIGS.  All three also require you to track down the IIGS ROMs and are on a whole not user friendly but more powerful with some feature sets than MAME IIGS emulator (also typically faster emulation).

First thing, set your expectations for MAME for the IIGS because it isn't straightforward:

  1. Setting up computer emulator, particularly the Apple II, MSDOS generations, is not near as simple as consoles/arcade some of which is due to the very computers they are emulating.  They also emulate that complexity. 
  2. Don't expect within LB to import a whole slug of 1,000s of pieces of software and expect to work out of the box.  You will want to be choosy.
  3. I assume you have access to MAME software for the IIGS, ideally the Software List MAME dump. 
    • Zip files are great and for most emulators you can leave them as is.  Even for MAME and IIGS emulation you can leave as ZIP for simple one disk software but when you get into multiple floppy disks or "A and B" side floppies, unzipping is easiest and the least confusing (to me). This will also let you see what the image type of the software (e.g., 2mg, dsk, po)
    • There are a variety of different disc formats for the software; it is confusing because you dealing with 35 year old tech. Additionally, just as a native IIGS there were 5.25 inch floppies (single and double sided), 3.5 inch disks (various sizes), and the IIGS MAME emulator can also run a "hard drive" emulation. 
    • Many games require a "user disc" or a "player disc"  (e.g., Bards Tale series) where you save your progress, and those are MOST times not included in any software sets you acquire.  So you will need a blank "floppy" image (attached).
  4. You will run into software that has been "cracked" to remove the era's disk copy protection schemes (which were numerous). MAME software lists usually will indicate if it is a cracked software file in the title (if you unzip to look).  There is nothing in particular you have to do in these cases but can cause some weirdness in emulators.  One thing you will likely run into is copy protection related to having access to the game manual.  Many games required you to look up something in a manual or card they included with the store bought copy. Battle Chess is good example for IIGS. At the start of the game, it will ask you for a move from a famous chess game and that code sheet is in Appendix I of the manual.  So you can get it easily to launch in MAME via LB but if you don't have that you will not be able to play. 
  5. Although most games have the system files need to boot automatically, not all games do, particularly Shareware/Homebrew type games.  That means you will have to boot from a IIGS system disk and then run the game.  I am not going to get into system disks and such but the process is similar once you get properly PRODOS system disk. 
  6. For the IIGS, I have found MAME can be a bit laggy at times and in most cases there are no disk "speed up" hacks. So that means you have to be patient when booting a disk.  In many cases it takes as long as "it really did".  So when you launch a game, if it appears it is hanging, let it run a bit longer.  Most likely it will work.

Okay, with all that here is how you get things working for IIGS:

Step 1: Make sure you have your MAME setup correctly.  Validate that MAME is pointing to your software location for the IIGS.  The folder that MAME looks for software (by default) and ROMs is called "apple2gs".  Make sure you MAME.INI points correctly to the applicable software path and rom path. 

  • Figure 1:  MAME Software List for Apple IIGS. Note it must be in the "software" folder (first screen snap) if you use the default MAME settings in the MAME.INI file (second screen snap).


Step 2:  Setup a folder test folder somewhere on your drive.  You will use this to unzip test software outside the MAME software location.  The reason to do this is when we get into multiple discs it is easier to work with the original image than in the ZIP. MAME can "look" into ZIP files for multiple discs or A and B side discs but personally, find it easier to just unzip and work with the images directly outside ZIP file. 

Figure 2:  My unzipped file location. Example only (I call "roms" but that is not to be confused with an actual Apple IIGS rom but is software).



Step 3:  How MAME references drives for the IIGS - This is key table since it is what tells MAME how to launch your image

From the MAME documentation the emulator that MAME uses is referenced by the "apple2gs" switch.  When you use that it tells MAME to use the IIGS emulation.  When you do, there are a variety of options that can be called after that to tell the emulator how to run.  The main one we need to know/use is how to call the correct floppy drive.  Sadly, because of all the formats it isn't straightforward.   But MOST times the "flop3" (or Floppy Disc 3) is the one we use to start the emulator.  Note that the types of discs can only be run by certain floppy drives so this is why unzipping files is useful to see what is going on.  Like said, most times can use Floppy Disk 3 and 4. 

What each "floppy" drive will run as far as image types.  For example, floppy disk 1 will not run a 2.img file whereas floppy disk 3 will.


floppydisk1      -flop1   .do   .dsk  .bin  .po   .nib  .fdi  .td0  .imd  .cqm  .d77  .d88  .1dd  <<< 5.25 inch drive 1
floppydisk2      -flop2    .do   .dsk  .bin  .po   .nib  .fdi  .td0  .imd  .cqm  .d77  .d88  .1dd  <<< 5.25 inch drive 2
floppydisk3     -flop3    .dsk  .img  .image .po   .dc   .2img .2mg  .fdi  .td0  .imd  .cqm  .d77  .d88  .1dd  <<< 3.5 inch drive 1.  Typical drive for IIGS
floppydisk4     -flop4    .dsk  .img  .image .po   .dc   .2img .2mg  .fdi  .td0  .imd  .cqm  .d77  .d88  .1dd <<< 3.5 inch drive 2

Floppy 3 and 4 are 3.5 inch disk drives.  Floppy 1 and 2 are 5 inch disk drives.  Most IIGS software was in 3.5 inch 800kb size. 

Some of the above will not make sense until we see examples below. 

Step 4: Putting it all together for test run.  If want to skip right to LB, go to Step 5 but if have issues at 5 come back to 4.

For computer setups I always make sure things are running first OUTSIDE of Launchbox via command line.  This will help keep you sane since many times you need to see what is going on if there are errors. Once you get the hang of it, you can work in LB directly but it helps initially to make sure you have all things working first before going into LB.  Pick a game such as Battle Chess (called btlchess.zip if using MAME software set).  If zipped, open it up and copy the file into you test folder.  If using the MAME file inside the zip is called: "battle chess (1988-89)(interplay)(trex crack).2mg" [note may be different name, but paste in what you have).  If need manual for codes it is here: http://apple2online.com/web_documents/battle_chess.pdf

NOTE:  Can use another game as test, but make sure only ONE floppy file and it has an extension in the list above under flop3.

In the text editor, type in command below but change the path to your MAME directory (red) and to your test directory location of you test file (orange).  The bold items must be in your command.  I do things in text editor since easier to see/fix then paste into CMD window.  Then in DOS CMD window, change directory to your MAME folder.  If you are not in the MAME directory

"G:\Emulators\MAME\mame64.exe" apple2gs -flop3 "G:\Emulators\Apple IIGS\roms\battle chess (1988-89)(interplay)(trex crack).2mg"                

In MAME Directory:


Error if not in MAME directory (for others, yes I know that can reference path to MAME.INI but want to keep command line simple like will be in LB).


If all is well then program will launch.  Hit escape to exit. If doesn't work, then double check your paths and names.

Step 5: Setup Launchbox

This assumes you have MAME emulator installed and working in LB already and that MAME has the proper files to work with the IIGS (see above).  Now may seem like the roundabout way to get here but it is key to understanding what LB is doing by all the above.

Add the Apple IIGS Platform. 


Add the MAME settings for the IIGS in the Emulator window:  Go into Tools, Manage Emulators, MAME, and click on Associated Platforms.  Type in Apple IIGS.


Add in the command line section the following. This tells to run by default the software on 3.5 inch floppy drive:

apple2gs -flop3

Now drag and drop from whatever you consider to be your main IIGS software directory the test file we had above (you can use a zip file if want now if only one disk image in the zip)


or if using file outside the zip file (MAME works either way)


For any game that is ONE disk, the image file uses any of the flop3 extensions, and the game doesn't need to save file to disk, then that is all you have to do in LB.  Just drag and drop/import those zip or image files.  If you run into issues, likely the zip and/or software image uses a different extension than Floppy 3 allows. Go back to the chart of extensions and floppy references.  If for example your software image has a ".do" extension then -flop 3 gets changed to -flop 1


Multi-Disc games: It gets more sticky though if you have multi disks or if A/B disks or need a player save disk.  You can open the multi-disks a variety of ways (within MAME via File Manager, setup Batch file, etc).  For two disk games, I chose to do this way so already loaded in MAME (many times the game will recognize without going outside into MAME interface). 

For two disc games such as Bard's Tale here is screenshots of setup:

First tab is same, but here I almost always use an unzipped file. 


Under the emulation tab, you need to setup a special command to automatically load the second disc (Or Side B)


Here is the command I use: 

apple2gs -ui_active -flop4 "G:\Emulators\Apple IIGS\roms\Bard's Tale, The (1987)(Interplay)(Disk 2 of 2)[Character].2mg" -flop3 

the -flop4 command tells MAME to load the 2nd disc in the second 3.5 inch floppy drive (floppy 4). You will need the FULL path to this location (I wish this feature would be added to LB, that can take from additional APPs....someday).  You need to add the -flop3 again since that is where disc one will go. You do not need the path for the primary disk 1 since LB will put in whatever you have listed in the first tab.  You can use this command for any disc with two disks or two sides so it is already loaded in MAME. 

I have also attached a "blank" 800kb 3.5 inch image (blank.po) that you can use for any game that needs a blank disk to be loaded. Copy, rename and then reference that image as the "flop4" reference in the commands described below for a game that needs to save. 

An example for that is Beyond Zork using my blank disk for the save file disk (I called my blank disk "byzork.po") : 


apple2gs -ui_active -flop4 "G:\Emulators\Apple IIGS\roms\Player Discs\byzork.po" -flop3 

Same here as other example, can use a zip of the actual disk 1 image.  I would stick to one or the other (even though I haven't!) 


In Mame, when need to load the "blank" or save file disk click the "disk" button.


The blank disc I attached is noted as "new.disk" and here you can save and/or restore you file. 


Now when you launch with LB you have Zork with the save file attached so user doesn't have to toggle into MAME interface.   In theory you could use 4 disks using this method (or more if get into adding things via slots.  See this website for the various switches...gets complicated!) 

As said, there are many ways to go about this such as batch files or just launch the zip with all the disk images and then toggle into MAME File Manager to open, just depends on what you want to do. 

==================Other Items that may be of interest

The -ui_active command is to tell MAME not to fully emulate IIGS keyboard (i.e., tab works to open MAME). This is normally on by default in MAME.  You can use the scroll lock to toggle ui active or not. That setting is the MAME.INI file under uimodekey


Extra:  Apple II software

You can in theory run Apple II software in the Apple IIGS emulator.  Note that Apple II uses 5.25 inch disks almost exclusively.  Thus, to use these images have to use -flop1 and -flop2.   In the example below, use -flop1 command as noted below.  Note that MAME can have some issues with speed /timing of these games since the IIGS used a faster CPU than the IIe model. Some copy protected games/cracks will also gag.  Use the Apple IIE MAME emulated instead as primary.



Extra:  Hard Drives:

If you see "HDV" extensions on a file then it is a "hard drive" image.  Note that MAME cannot use HDV directly. They must be converted to MAME CHD format first.    Update: Versions of MAME 214 and higher can run hard drive images in CHD, HDV, or 2MG format. 


This is the command I use for the HD of games I made for HDVs I converted to CHD.  Note that due to all the copy protection the games used at the time, it isn't as simple as copying all the games to a HDV and running from there (sadly!).  In most cases, the code of the game has to be modified to do that (plus most games were not designed to see/work on a HD). 

apple2gs -sl7 scsi -noautosave -hard1

More Memory:

Some games may need more than the 2 MEG of RAM that IIGS had.  You can use up to 8 MEG.  Use the following switch in the command before the "flop" command. You can also include this into an apple2gs.ini specific file in your ..\MAME\ini\ folder: 

-ramsize 8M 

Save States:

Typically, I do not use save states for the computer based emulators in MAME.  However, for some games where no good save points, it can be useful. The main issue is that the save states do not always work correctly with multi disc games. The following command is what I use to toggle /try.  If I add  then the game state will be saved under the MAME folder  ..\Sta\apple2gs\name of the game (flop 3).  The -noautosave switch stops saving if that is your default for MAME.

-autosave -statename %g/%d_flop3  

Final:  There are a ton of options within MAME that haven't shown but this should get you going.  Some of these options you can include in a apple2gs.ini file located in the ..\Mame\ini folder so don't have to include in LB (such as the RAM and statename switches), but that varies on your setup. 

The other emulators listed at the beginning are a bit better if getting into more complicated setups and act more "like a IIGS".  Those I typically do not run within LB simply since it doesn't make as much sense.  My intent with LB is always as close to "one click" and all the background stuff is taken care of, where possible. 


Edited by sundogak
Updated info on Hard Drives not needing CHD with +214 version of MAME
  • Like 5
  • Thanks 3
  • Unusual Gem 2
Link to comment
Share on other sites

@sundogak, amazing, totally. I never had any early Apple machine, and at this late stage of my life, I had given up even trying to integrate this platform into my setup. Your info changes that. I really look forward to going over the steps and coming out on the other end with a wonderful, new experience.

Link to comment
Share on other sites

Haha....thanks all.  I was procrastinating on something else, so likely contributed to the length.  ?

@dragon57  When younger, family had an Apple IIc and Atari 400 (with horrid overlay keys and cassette program loader that took forever to load) and later a Mac SE.  So those had some nostalgia factor to try and get setup. MAME has improved recently on the Apple IIe front but AppleWin is pretty handy as a Apple II emulator and have that setup for the II series (sadly doesn't work with IIGS).  MAME wise the Apple IIe emulation uses same logic as above, just substitute apple2ee -flop1  vs apple2gs -flop4  and this site has a good overview of the switches you can use to emulate Apple IIe slots (SCSI, mouse, etc).

To get the "point and click" running in LB is a struggle for both systems since you run into all the varied keyboard/joystick combos, hardware setup issues, and multiple disk swapping.  In most cases, not easy to get away from needing keyboard around. The pause/overlay feature that will be in LB at some point will be useful on that front, since can make some cheat sheets for the user on keyboard use (use num keypad, or WASD, etc).   What I would really like is to have LB add in a variable for the additional apps list so can call the full path without hard coding  (i.e., like the %romfile% variable but for each additional app %romefile2%, etc), that would take some of the work out of setting up multi-disk /player disks and make a generic command string.  Put in a ticket awhile ago, but likely an edge case most don't care about where Jason has other items to tackle.

Anyway, if nothing else, it is all a good reminder of how far PCs have come on usability.  If any questions as go along, let me know. 

Link to comment
Share on other sites

  • 6 months later...
  • 5 months later...

Hi all,


First question ever on that forum.


Quite new to LB and MAME, but I managed to set up and run quite easily a few emulators. My ARCADE roms are running through MAME64, without any problems (except the fact that my keyboard / stick configuration is getting lost quite often, but I manage to handle it manually through TAB quite easily).

My problem is with 2e or 2GS games.


I ran the tutorial a few times and I can't start an apple 2 game (either 2e or 2GS) from launchbox with mame.

Each time I try to start one, I get a very quick command line windows which appears and disappears very quickly, and I'm unable to start any game.

On the other side, I can start an Apple2 game from command line with the adviced options, and it seems to work perfectly.

I've got a list of questions :

1/ Is there a way to read the command line which is launched from LB so that I can try to figure out what's happening, like a verbose mode ?

2/ With command line, if I start mame directly from its own directory, everything works fine and I guess in that case the mame.ini file is correctly readen and used. If I try to start it from another directory, it will not work. I was wondering if the problem doesn't come from that, as I don't know how and from where LB starts MAME,,

3/ Which would be the informations you might need to help me with my problem ?

Here is a set of informations about my configurations

Windows 10

Mame 0.220

All my Mame roms are on a separate disks in f:\roms\mame

All my Apple2e disks images are in f:\ordinateurs\Apple2 ; they are all in .dsk format

All my Apple2GS disks images are in f:\ordinateurs\apple2GS ; some are .2mg, some are .zip

My mame.ini fine is located with my mame64.exe file. After several tests, here is what it countains for the PATH OPTIONS


homepath                  .
rompath                   roms\;F:\Roms\mame;f:\ordinateurs;f:\ordinateurs\apple2gs;f:\ordinateurs\Apple2
hashpath                  hash
samplepath                samples
artpath                   artwork
ctrlrpath                 ctrlr
inipath                   .;ini;ini/presets
fontpath                  .
cheatpath                 cheat
crosshairpath             crosshair
pluginspath               plugins
languagepath              language
swpath                    f:\ordinateurs\;f:\ordinateurs\apple2gs;f:\ordinateurs\Apple2

Any idea ?


Thanks in advance, and sorry if my questions are dumb...

Link to comment
Share on other sites

Go into LB and Tools menu, then Manage Emulators.  Look at the setting in Edit emulator under MAME in LB. These are my settings:  Capture.thumb.JPG.3044fd8313d993400c474369cbf77a17.JPGmake sure you have the command line entered correctly in LB watching for the dashes and spaces (you can ignore the -sl4 phasor entry in my shot above)

apple2ee -gameio joy -flop1

Also check the details tab in same window and see if have everything similar to below with all the check boxes unchecked:

Capture2.thumb.JPG.e39f97b61915bf3a5b7a1e8534592c2d.JPGQuestion #1 - No there is no verbose mode other than if debugging LB itself (i.e., if LB is crashing).  Sometimes easier if you turn off the startup screens can see things but most times like you found, the window will pop up quickly.  Sometimes have used the emulator log to figure stuff out but will not likely help you in this case.  The "Sample Command" line at the bottom of the Edit Emulator window is sometimes a key to problems in that LB takes that, adds whatever is in your Default Command Line Parameters and tacks on the ROM path. 

Question #2.  You would need to add your MAME config path in your command line to where MAME.ini is located if launching command line outside the MAME directory. As you found, in the MAME directory when launch command then MAME assumes where the relative path is and launches.  As to if that is the issue within LB, not likely as long as your MAME.ini and UI.ini pathes point to everything correctly (since it works outside MAME then seems that is fine).  Basically, LB is launching "within" wherever you pointed LB to look for MAME.EXE file.  Unless for some reason your MAME exe is in someplace odd, the typical MAME setup LB will work fine. 

Ultimately, LB inserts the various parts in the windows above as a launch command so if you are launching from command line and works then would need those similar parts in LB somewhere; hence the default command line entry box is key, particularly for Software Lists since not a simple MAME and ROM command.

I would double check the above settings in your emulator. Since you said MAME is working otherwise, then screenshots from the LB side are more likely to lead us to the problem in that it isn't a MAME issue directly (i.e., the command that is calling MAME in LB is glitched. 

Edited by sundogak
Link to comment
Share on other sites

Hi sundogak


Thanks for your so quick reply. I wouldn't expect somebody replied so quickly. I followed all of your advices. Seems like unckecknig some of the boxes in the config screen did the job. You got a very big smile from me, so a big thank you !! 

I just played a small Aztec and Arkanoid and went back more than 30 years in a few seconds !


Have a nice WE !


Link to comment
Share on other sites

  • 6 months later...
3 hours ago, oliveira63 said:

Thanks a lot to all details, I can run old GS games with a lot of pleasure.

Just a question, do you know if there is an option to change CPU speed to transwarp speed ?

Thanks a lot

Currently for the IIGS there is no transwarp option slot although that card option is available for the the Apple IIe series (-slot# twarp).  There is a note in the MAMEDEV wiki that they are planning on adding ZipGS acceleration in 0.227 (which is delayed until December). 


Apple IIgs models in MAME 0.227 and later also have a CPU Type selection. "Standard" is the normal 65C816 CPU, and there are 4 ZipGS speeds available: 7 MHz, 8 MHz, 12 MHz, and 16 MHz.

You can change the CPU speed via -speed  flag multiplier but that makes everything fast. Somewhat depends on what you are actually trying to do. 

Link to comment
Share on other sites

  • 5 months later...
On 4/21/2021 at 9:50 AM, d8thstar said:

Is it possible to get 2 joysticks set up?  I set them up in the tab menu and load up archon.

Player 1 works great.  Player 2, the cursor only moves diagonally, doesn't matter which way I push the stick.

I have the same issue on many 2 player joystick games for both Apple IIe and Apple IIgs.

Within MAME controls and analog controls, everything seems to be working like it should. Playing with the values doesn't seem to help.

Still looking for a solution.

Edit: Wrote a simple Applesoft program to read the joystick inputs and it seems the X-axis input is connected to the y-axis as well, which would explain the diagonal movement. Seems like a MAME issue.

I posted the bug at MAME Testers.

Edited by Headrush69
Add more info
Link to comment
Share on other sites

On 4/22/2021 at 11:32 PM, d8thstar said:

boom thanks headrush!  i was about to do the same

Fix should be in version 0.231 next week.

FYI, as a quick workaround, using -gameio paddles works now. Since joysticks on Apple2 are essentially dual paddles, end result is the same.

Edit: Just compiled the latest MAME GIT version and player 2 movements are fixed.

Edited by Headrush69
Link to comment
Share on other sites

  • 2 weeks later...

yo headrush, thanks for getting this fixed, joiystick 2 works like a charm now!

i'm still having issues with the button mapping for J2 tho.  in the tab menu, i set P2 buttons 1 and 2 (just as I did for P1 b1 and b2) but in game (archon), the P2 buttons dont do anything.  maybe it's the game?

Link to comment
Share on other sites

42 minutes ago, d8thstar said:

yo headrush, thanks for getting this fixed, joiystick 2 works like a charm now!

i'm still having issues with the button mapping for J2 tho.  in the tab menu, i set P2 buttons 1 and 2 (just as I did for P1 b1 and b2) but in game (archon), the P2 buttons dont do anything.  maybe it's the game?

Joystick support varied greatly on Apple II games, that is for sure and sometimes takes a little trial and error and looking at the original manual.

If I remember correctly when I was testing Archon, I think player 2 button was actually uses the player 1 second button. Try mapping that way and see if it works. (P1 Button 2 -> The button you want to use for Player 2 Button 1)

Link to comment
Share on other sites

  • 1 month later...

Fantastic write up, very very helpful - thank you!

I'm having a problem when it comes to multi-disc games in that Launchbox will NOT import them unless they're zipped and named as per software list xml....AND/OR MAME will not see the unzipped *.2mg files in any directory (tried in MAME\roms with the apple2gs bios, and unzipped roms of Bards Tale for the gs (standalone mame will not see the game).

Also, if I import the same game as a zip into LaunchBox, it'll import and play fine....but if I change the path to the unzipped *.2mg file, then it will no longer even start. Has MAME been updated since the writing of this guide that it will no longer play unzipped disc images?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...