Driver:Apple II: Difference between revisions

From MAMEDEV Wiki
No edit summary
 
(68 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Apple II series =
= Apple II series =


Designed by Steve Wozniak, the Apple II series was both one of the first mass-market 8-bit microcomputers and the longest-lived.  The machines exemplified Wozniak's design sensibilities of not including hardware when software can perform the same function, and of being wide open for expansion.  Elements of the II's design influenced many later computers; PCs today have expansion slots in part because the Apple II did, for instance.
Originally designed by Steve Wozniak, the Apple II series was both one of the first mass-market 8-bit microcomputers and the longest-lived.  The machines exemplified Wozniak's design sensibilities of not including hardware when software can perform the same function, and of being wide open for expansion.  Elements of the II's design influenced many later computers; PCs today have expansion slots in part because the Apple II did, for instance.


__TOC__
__TOC__


== Quickstart ==
== Quickstart ==
Assuming you don't have the Software List library, you can use MAME like any other Apple II emulator with the disk images you already have.  For the II, II Plus, IIe, IIc, and IIGS, you can boot a 5.25" disk by using the command line switch '''-flop1'''.  For example, "mame64 apple2e -flop1 Dung_Beetles.dsk".  For the IIc Plus and IIGS, you can boot a 3.5" disk image by using the switch '''-flop3'''.  For example, "mame64 apple2gs -flop3 FTA_Nucleus.2mg".
Assuming you don't have the Software List library, you can use MAME like any other Apple II emulator with the disk images you already have.  For the II, II Plus, IIe, IIc, and IIGS, you can boot a 5.25" disk by using the command line switch '''-flop1'''.  For example, "mame apple2e -flop1 Dung_Beetles.dsk".  For the IIc Plus and IIGS, you can boot a 3.5" disk image by using the switch '''-flop3'''.  For example, '''mame apple2gs -flop3 FTA_Nucleus.2mg'''. For the II, II Plus, IIe and IIgs, you can boot a hard drive image after inserting an expansion card that supports one by using the command line switch '''-hard1'''. For example, to boot Total Replay with the CFFA2 card emulation, use '''mame apple2ee -sl7 cffa2 -hard1 "Total Replay v3.0.2mg"'''.


== Models ==
Most of the Apple II models will auto-boot floppy disks.  But if you want to boot a disk on the original '''apple2''' driver, the emulation will start up with a * prompt.  Press 6, then Control-P, then press Enter/Return and the disk will start up.
 
== Some MAME basics ==
Emulated machines with keyboards like the Apple II start up with almost all of the keys going to the emulated machine.  You can re-enable common MAME keys by pressing the '''UI Mode''' key, which by default is '''Scr Lock''' on Windows and Linux and '''forward-Delete''' on Macs ('''Fn-Delete''' on compact keyboards like MacBooks).  These keys were chosen precisely because they're very uncommon in emulated machines and therefore unlikely to cause problems, in case you're wondering why they're weird.
 
When you're in UI mode, these keys do useful things:
* '''Tab''' brings up the MAME menu, which allows you to change the machine configuration, swap floppy disks and CD-ROMs, and do other things.
* '''Esc''' exits.  If you have '''confirm_quit''' set to "0" in your mame.ini (as is the default), it will exit immediately.  Otherwise MAME will confirm that you want to exit.
* '''Left Alt + Enter''' ('''Left-Option + Return''' on Macs) toggles full-screen and windowed mode, like in many PC games.
* '''P''' pauses and dims the screen slightly to indicate that you're paused.
* '''F3''' does a forced reset (this is not exactly the same as an Apple II Control-Reset; see below for details on that), and left shift + F3 does a "hard" reset, where MAME is torn completely down and restarted.  Hard resets are handy for getting some configuration options to take effect.
* '''Left Shift + F7''' saves a save state, which freezes the current machine state and saves it to disk.  MAME will prompt for a save slot; you can press any alphanumeric key (0-9 and A-Z) for 36 slots.
* '''Plain F7''' loads a save state, with the same rules about the save slot.
* '''F12''' takes a screenshot.  This will be saved as a .PNG inside the "snap" folder by default, with a folder in the snap folder named after the machine, like "apple2e" or "apple2gs".  Note that by default the screenshot is the exact pixels that are rendered internally by MAME, so Apple II screenshots will appear squashed.  You can change this with '''-snapsize'''.  For instance, '''-snapsize 640x480''' will force the screenshot to be 640x480.  '''-snapsize 560x384''' will create non-squashed screenshots for the 8-bit IIs, and '''-snapsize 704x462''' will do the same for the IIgs.
* '''~''' (tilde/backtick) brings up sliders so you can override the default balance between audio chips, adjust brightness and contrast, and other settings.  If you are running with the debugger enabled, ~ will instead freeze the machine and drop into the debugger.
 
When you *aren't* in the UI mode, these keys are interesting:
* '''Left Alt or Option''' is the Open Apple key (what Mac users call "Command").
* '''Right Alt or Option''' is the Closed Apple key (what Mac users call "Option").
* '''F12''' is the Apple II Reset key.  On most machines, you can reset with Control + F12; on the IIe and later you can Control + Left Alt/Option + F12 to do a Control-Apple-Reset.  This is the standard reset that real IIs do, as opposed to MAME's F3 reset.
 
== Models and Clones ==


* '''Apple II''' (1977 - driver name ''apple2'')
* '''Apple II''' (1977 - driver name ''apple2'')
Line 17: Line 38:
::- Condensed a large portion of the previous systems (which were primarily off-the-shelf 74-series TTL chips) into two custom ICs, "IOU" and "MMU".  Slot 0, which on the II and II Plus normally contained a 16K "language card" to expand the system to 64 KiB, was eliminated and 64 KiB is on board in a configuration compatible with the language card.  The system also supports a second 64 KiB of RAM for a total of 128 KiB, and brings in a series of double-resolution video modes inspired by the ill-fated Apple ///.  These include 80x24 text, 80x48 16-color "double-lo-res" graphics, and 560x192 16-color "double-hi-res" graphics.<br />The IIe was later "enhanced"; this replaced the 6502 CPU with a WDC 65C02 that included additional instructions, and added GUI-drawing characters to the built-in text font.  Finally, a "platinum" IIe was released that came in a revised gray case (instead of the previous beige) and had the keyboard expanded to include a numeric keypad.
::- Condensed a large portion of the previous systems (which were primarily off-the-shelf 74-series TTL chips) into two custom ICs, "IOU" and "MMU".  Slot 0, which on the II and II Plus normally contained a 16K "language card" to expand the system to 64 KiB, was eliminated and 64 KiB is on board in a configuration compatible with the language card.  The system also supports a second 64 KiB of RAM for a total of 128 KiB, and brings in a series of double-resolution video modes inspired by the ill-fated Apple ///.  These include 80x24 text, 80x48 16-color "double-lo-res" graphics, and 560x192 16-color "double-hi-res" graphics.<br />The IIe was later "enhanced"; this replaced the 6502 CPU with a WDC 65C02 that included additional instructions, and added GUI-drawing characters to the built-in text font.  Finally, a "platinum" IIe was released that came in a revised gray case (instead of the previous beige) and had the keyboard expanded to include a numeric keypad.
* '''Apple IIc''' (1984 - driver names ''apple2c'', ''apple2c0'', ''apple2c3'', ''apple2c4'')
* '''Apple IIc''' (1984 - driver names ''apple2c'', ''apple2c0'', ''apple2c3'', ''apple2c4'')
::- This was an enhanced IIe with 128 KiB of RAM packed into a small "pizza box" style form factor.  Because there was no room for slots, the IIc included hardware equivalent to two serial cards, a mouse card, and a floppy disk controller and drive.<br />Later versions of the IIc included support for external 3.5" disk drives and a memory expansion slot which provided the equivalent of the 1 MiB Apple II Memory Expansion Card.
::- This was an enhanced IIe with 128 KiB of RAM packed into a small "pizza box" style form factor.  Because there was no room for slots, the IIc included hardware equivalent to two serial cards, a mouse card, and a floppy disk controller and drive.<br />Later versions of the IIc included support for external 3.5" disk drives and a memory expansion slot which provided the equivalent of the 1 MiB Apple II Memory Expansion Card.  MAME fully supports all functions of this machine, including the mouse and the Dvorak keyboard layout switch.
* '''Apple IIGS''' (1986 - driver names ''apple2gs'', ''apple2gsr0'', ''apple2gsr1'')
* '''Apple IIGS''' (1986 - driver names ''apple2gs'', ''apple2gsr0'', ''apple2gsr1'')
::- The 16-bit Apple II.  Built around a WDC 65C816 CPU (which had a full 65C02 emulation mode) running 3 times faster than earlier machines, the IIGS is 99% compatible with the enhanced IIe but was also capable of running new 16-bit software that could directly access up to 8 MiB of RAM.  The ROMs included a full optimized 65C816 port of the Macintosh's Toolbox APIs and Mac apps written in Pascal or C could be ported over with almost no code changes.  The IIGS introduced the concept of switchable slots, where each of the 7 slots could be switched between a built-in function and using a card plugged into the slot.  This provided the integration of the IIc combined with the expandability of the IIe.<br />Built-in hardware included two serial ports, a detachable keyboard and mouse supported by the then-new Apple Desktop Bus (ADB), 5.25" and 3.5" floppy support, a 32-oscillator Ensoniq sample-playback synthesizer chip, and new video modes: 320x200 "Super Hi-Res" with 16 unique colors per horizontal line, and 640x200 "Super Hi-Res" with 4 unique colors per scanline.  Unlike previous Apple IIs, these new modes were not built on NTSC trickery and provided real full-color images with no bleeding or other artifacts.
::- The 16-bit Apple II.  Built around a WDC 65C816 CPU (which had a full 65C02 emulation mode) running 3 times faster than earlier machines, the IIGS is 99% compatible with the enhanced IIe but was also capable of running new 16-bit software that could directly access up to 8 MiB of RAM.  The ROMs included a full optimized 65C816 port of the Macintosh's Toolbox APIs and Mac apps written in Pascal or C could be ported over with almost no code changes.  The IIGS introduced the concept of switchable slots, where each of the 7 slots could be switched between a built-in function and using a card plugged into the slot.  This provided the integration of the IIc combined with the expandability of the IIe.<br />Built-in hardware included two serial ports, a detachable keyboard and mouse supported by the then-new Apple Desktop Bus (ADB), 5.25" and 3.5" floppy support, a 32-oscillator Ensoniq sample-playback synthesizer chip, and new video modes: 320x200 "Super Hi-Res" with 16 unique colors per horizontal line, and 640x200 "Super Hi-Res" with 4 unique colors per scanline.  Unlike previous Apple IIs, these new modes were not built on NTSC trickery and provided real full-color images with no bleeding or other artifacts.
* '''Apple IIc Plus''' (1988 - driver name ''apple2cp'')
* '''Apple IIc Plus''' (1988 - driver name ''apple2cp'')
::- This was a final-configuration IIc (with the memory expansion slot) with the internal 5.25" disk drive swapped for a 3.5" one and a licensed copy of the 4 MHz Zip Chip accelerator included.
::- This was a final-configuration IIc (with the memory expansion slot) with the internal 5.25" disk drive swapped for a 3.5" one and a licensed copy of the 4 MHz Zip Chip accelerator included.  MAME 0.222 and later support the built-in accelerator.
 
* '''Laser 128''' (1986, by VTech - driver names "laser128" for the later hardware revision, "laser128o" for the first hardware revision)
::- This was an inexpensive Apple IIc clone with additional built-in peripherals and the ability to use an expansion slot card.  It was not fully compatible with all software but most worked.
* '''Laser 128 EX''' (1988, by VTech - driver name "las128ex")
::- This was an enhanced Laser 128 with better compatibility and a built-in accelerator.  MAME 0.222 and later support the accelerator.
* '''Laser 128EX2''' (1988, by VTech - driver name "las128e2")
::- This was an Apple IIc Plus clone, available with either a 3.5" or 5.25" internal floppy drive.  An accelerator was standard, like on the IIc Plus.  MAME 0.222 and later support the accelerator.
* '''Franklin ACE 2200''' (1985, by Franklin Computer - driver name "ace2200")
::- This was an enhanced Apple IIe clone, available with 2 built-in 5.25" floppy drives and a built-in parallel port.  Compatibility isn't 100% due to some issues with the ROMs.
* '''Franklin ACE 500''' (1986, by Franklin Computer - driver name "ace500")
::- This was an Apple IIc clone, with a parallel port which the IIc didn't have.  The ROMs have some compatibility fixes over the ACE 2200 but still aren't perfect.


== The default configurations ==
== The default configurations ==
Line 28: Line 60:


* Apple II and II Plus: 16K Language Card in slot 0, Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
* Apple II and II Plus: 16K Language Card in slot 0, Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
* Apple IIe: 128 KiB RAM installed, Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
* Apple IIe: 128 KiB RAM installed (extended 80 column card in the aux slot), Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
* Apple IIc: Mockingboard 4C (third-party add-on which gives a Mockingboard in slot 4) is installed.  -ramsize may be used to include up to 1 MiB of expansion RAM on the later models.
* Apple IIc: Mockingboard 4C (third-party add-on which gives a Mockingboard in slot 4) is installed.  -ramsize may be used to include up to 1 MiB of expansion RAM on the later models.
* Apple IIGS: 1 MiB of expansion RAM is installed, which allows running all known software.  Stereo output is included (it was optional on the real system).  2 each of 3.5" and 5.25" drives are included.   
* Apple IIGS: 1 MiB of expansion RAM is installed, which allows running all known software.  Stereo output is included (it was optional on the real system).  2 each of 3.5" and 5.25" drives are included.   
* Apple IIc Plus: -ramsize may be used to include up to 1 MiB of expansion RAM.
* Apple IIc Plus: -ramsize may be used to include up to 1 MiB of expansion RAM.
== The configuration switches ==
If you switch MAME to "Partial Keyboard" emulation mode so that MAME keys work and press Tab, MAME's menu will appear.  The '''Machine Configuration''' option will differ by Apple II model, but contains useful things:
* All Apple II models except the IIGS have a '''Composite Monitor Type''' selection.  "Color" gives simulated NTSC color, "B&W" gives black and white (and can be made into color using MAME's CRT simulation filter), "Green" simulates a green monochrome monitor, and "Orange" simulates an orange/amber monochrome monitor.  New in MAME 0.224 is the "Video-7 RGB" setting, which gives some additional video modes and special features supported by the 8-bit versions of the Sierra AGI games, Dazzle Draw, and Apple II DeskTop.
* Apple IIe and IIc models in MAME 0.222 and later have a '''CPU Type''' selection.  "Standard" is the normal 6502 or 65C02 CPU for that system.  "4 MHz Zip Chip" emulates a 4 MHz Zip Chip, as the name implies.
* IIe and IIc models in MAME 0.222 and later also have a '''Bootup speed''' option.  This only does something when '''CPU Type''' is set to "4 MHz Zip Chip".  The "Standard" setting here enables the Zip but starts at normal Apple II speed.  Software that can control the Zip can be used after this to change the speed.  The "4 MHz" setting starts right away at 4 MHz.
* 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.
These configuration settings are saved to the system's .cfg file and will persist across MAME runs.


== Configuring slots ==
== Configuring slots ==


To find out what a version of MAME supports for configurable slot and port devices, run MAME with the '''-listslots''' parameter on the commandline.  The Apple II and II Plus have 8 slots, which are "sl0" through "sl7" plus a game port.  The IIe has 8 slots, "sl1" through "sl7" plus the "aux" slot and the game port.  The IIgs has "sl1" through "sl7", while the memory slot is handled through the "ramsize" switch.  For instance, "-ramsize 4M" on the IIgs gives you 4 megabytes of RAM.
To find out what a version of MAME supports for configurable slot and port devices, run MAME with the '''-listslots''' parameter on the commandline.  The Apple II and II Plus have 8 slots, which are "sl0" through "sl7" plus a game port.  The IIe has 8 slots, "sl1" through "sl7" plus the "aux" slot and the game port.  The IIgs has "sl1" through "sl7", while the memory slot is handled through the "ramsize" switch.  For instance, "-ramsize 4M" on the IIgs gives you 4 megabytes of RAM.
To empty a slot which has a card in it by default, use the -sl switch for the slot followed by two double quotes.  For instance, to remove the Mockingboard in slot 4 on a IIe, you'd type '''-sl4 ""''' or to remove the language card from slot 0 on the II Plus for very old ill-behaved software, you'd use '''-sl0 ""'''.


Slot 0 on the II and II Plus can have the following cards:
Slot 0 on the II and II Plus can have the following cards:
* '''lang''' is the standard 16K Apple Language Card.  This is installed by default, giving you a 64K system.
* '''lang''' is the standard 16K Apple Language Card.  This is installed by default, giving you a 64K system.
* '''ssram''' is the Saturn Systems 128K card, which is compatible with the language card and has additional RAM for programs which can use it.
* '''ssram''' is the Saturn Systems 128K card, which is compatible with the language card and has additional RAM for programs which can use it.
*'''romcardfp''' is the Apple II ROM Card (aka "Firmware Card"), in the Autostart Monitor + Applesoft BASIC configuration.  This effectively turns an Apple II into an Apple II Plus. (MAME 0.256 and later)
*'''romcardint''' is the Apple II ROM Card with the original Monitor and Integer BASIC installed.  This turns an Apple II Plus into an Apple II, and also can be used to run Integer BASIC programs on a II Plus without a Language Card.  (The Language Card is far more versatile though).  (MAME 0.256 and later)
*'''romcard''' is the Apple II ROM Card and you get to choose what ROMs your II or II Plus has.  When this card is installed, you get a -rom switch to load a 12KiB binary file containing the entire ROM image in $D0/$D8/$E0/$E8/$F0/$F8 order.  You can't skip, so unused areas need to be filled with zeroes.  (MAME 0.256 and later)


Slots 1-7 on the II, II Plus, IIe, and IIgs generally support all of these cards:
 
* '''diskii''' is the standard Apple 2-drive floppy controller.  This is the old-style not-very-accurate version but it may work with some marginal disk images that the default controller does not.
Slots 1-7 on the II, II Plus, IIe, and IIgs (plus slots 5 and 7 on the Laser 128, EX, and EX2) generally support all of these cards:
===Floppy Disk Controller Cards===
* '''diskii''' is the standard Apple 2-drive floppy controller.  This is the old-style not-very-accurate version but it may work with some marginal disk images that the default '''diskiing''' controller does not.
* '''diskiing''' is the new cycle-perfect Disk II controller.  This one supports .WOZ images, including copy-protected ones.  This is in slot 6 by default on the II, II Plus, and IIe.
* '''diskiing''' is the new cycle-perfect Disk II controller.  This one supports .WOZ images, including copy-protected ones.  This is in slot 6 by default on the II, II Plus, and IIe.
* '''diskiing13''' is the cycle-perfect Disk II controller with the old 13-sector PROMs installed, so it can boot DOS 3.2 13-sector disks without running BOOT13 from the DOS 3.3. System Master.
* '''diskiing13''' is the cycle-perfect Disk II controller with the old 13-sector PROMs installed, so it can boot DOS 3.2 13-sector disks without running BOOT13 from the DOS 3.3 System Master or qkumba's Anti-M.
* '''applesurance''' is the Applesurance Floppy Disk Controller, a Disk II clone with diagnostics built into the card's ROM.  Holding down the M key on startup will bring up the menu. (added in MAME 0.219)
* '''superdrive''' is the Apple 3.5 Disk Controller Card, also known as the "SuperDrive" card.  It brings 3.5" disk support to the IIe, which is useful for recent home-brew developments like Apple II DeskTop and Applecorn that don't fit on a 5.25" disk.  In MAME  it also works with the Laser 128 and Franklin ACE 2200.  (added in MAME 0.241)
 
===Sound and Audio Cards===
* '''mockingboard''' is the Mockingboard music/sound card supported by some games.  This is in slot 4 by default on the II, II Plus, and IIe.
* '''mockingboard''' is the Mockingboard music/sound card supported by some games.  This is in slot 4 by default on the II, II Plus, and IIe.
* '''phasor''' is the Applied Engineering Phasor music/sound card, which is back compatible with the Mockingboard but has extended capabilities supported by e.g. Ultima V.
* '''phasor''' is the Applied Engineering Phasor music/sound card, which is back compatible with the Mockingboard but has extended capabilities supported by e.g. Ultima V.
* '''alfam2''' is the ALF Apple Music II 9-voice music/sound card.  I don't believe any games supported it, but I could be wrong.
* '''alfam2''' is the ALF Apple Music II 9-voice music/sound card.  I don't believe any games supported it, but I could be wrong.
* '''cffa2''' is the CFFA2 SD/IDE card for the Apple II.  This version has 65C02 firmware so it will only work properly on the enhanced IIe and IIgs.
* '''aesms''' is the Applied Engineering Super Music Synthesizer.  It's not compatible with any other cards, but if you can find the software for it it can be fun for a few minutes.
* '''sam''' is the optional card for the S.A.M. Software Automated Mouth software speech synthesizer.  It gives a higher-quality voice than the normal Apple II speaker output.
* '''echoiiplus''' is the Street Electronics Echo II Plus hardware speech synthesizer.  This works with a lot of accessibility software for the Apple II and some games.
* '''mcms1''' and '''mcms2''' are the 2 cards of the Mountain Computer Music System.  They must be placed in adjacent slots or MAME will not start up.  These cards give the Apple II wavetable synthesis capability, which was used as part of the Alpha Syntauri system.
* '''dx1''' is the Decillonix DX-1 sampler card.  Currently this doesn't do much because MAME doesn't have audio input support.
 
===Hard Disk Controller Cards===
* '''cffa2''' is the CFFA2 SD/IDE card for the Apple II.  This version has 65C02 firmware so it will only work properly on the enhanced IIe and IIgs.  This works with most standard Apple II hard disk images.
* '''cffa202''' is the CFFA2 SD/IDE card with plain 6502 firmware which works on the II, II Plus, and unenhanced IIe.
* '''cffa202''' is the CFFA2 SD/IDE card with plain 6502 firmware which works on the II, II Plus, and unenhanced IIe.
* '''zipdrive''' is the Zip Technologies Zip Drive, an IDE card from the ZipChip accelerator company.  No relation to the later Iomega Zip Drive.  This card requires a custom partitioned/formatted hard disk image and so is mostly of interest to people who owned such a card and want to image their old drive and use it under emulation.
* '''focusdrive''' is Focus Technologies' version of the '''zipdrive''' IDE card.  The same caveat about custom hard disk images applies.
* '''scsi''' is the Apple II Revision C SCSI Card.  It supports standard hard disk and CD-ROM ISO and BIN/CUE images as well as MAME's CHD format.
* '''cmsscsi''' is the CMS SCSI II Card.  It supports standard hard disk images as well as MAME's CHD format.  To see more than the first two partitions on a disk, you'll need to use the GS/OS driver rather than relying on the firmware.  (added in MAME 0.224)
* '''corvus''' is the Corvus Systems "flat cable" hard disk interface.  This is very difficult to set up on the Apple II; I've gotten it to boot DOS 3.3 off the hard disk, but unless you were an expert on these things back in the day it's for curiosity only.
* '''vulcan''' is the Applied Engineering Vulcan IDE card.  This requires a custom partitioned/formatted hard disk image; the software to set that up is reasonably easy to find, but it's intended primarily for users who had the card in their real Apple II.
* '''vulcangold''' is the Gold version of the Vulcan IDE card.  The firmware we have for it currently only works on 65816 CPUs and so this card is only an option on the IIgs.
*'''booti ''' is the BOOTI card, which is an Apple II interface for the popular CH376 USB file access chip.  This chip has also been interfaced to 6502s on Acorn and Oric computers.  NOTE: this works quite differently from other hard disk cards.  Using it does not add a -hard1 option for an image file; instead you start up the Apple II, press "C" to configure the BOOTI, and you will get a nice menu allowing you to select .2MG and .HDV files from MAME's '''share_directory'''.  This defaults to "share", so if that folder doesn't exist where your MAME installation is, create it and place Apple II hard disk image files in it.  Due to limitations in how the CH376 chip works in real life, only files with valid 8.3 filenames will appear in the BOOTI's configuration interface for use.  (added in MAME 0.232)
===Memory Expansion Cards===
* '''memexp''' is the Apple II Memory Expansion Card, sometimes called "Slinky".  It has 1 megabyte populated, and is automatically recognized by most versions of AppleWorks.
* '''memexp''' is the Apple II Memory Expansion Card, sometimes called "Slinky".  It has 1 megabyte populated, and is automatically recognized by most versions of AppleWorks.
* '''ramfactor''' is the Applied Engineering RamFactor card, which is mostly a clone of the '''memexp''' card.
* '''ramfactor''' is the Applied Engineering RamFactor card, which is mostly a clone of the '''memexp''' card but has 8 megabytes instead of 1.
 
===Clock/Calendar Cards===
* '''thclock''' is the ThunderWare ThunderClock Plus, which is automatically recognized and used by ProDOS.
* '''thclock''' is the ThunderWare ThunderClock Plus, which is automatically recognized and used by ProDOS.
* '''tm2ho''' is the Applied Engineering TimeMaster II H.O. clock/calendar card.  The optional X-10 home control feature is not supported in MAME.
=== Co-Processor Cards===
* '''softcard''' is the Microsoft Z80 SoftCard, which lets you run CP/M.
* '''softcard''' is the Microsoft Z80 SoftCard, which lets you run CP/M.
* '''applicard''' is the PCPI AppliCard, which also runs CP/M but at a much faster speed since it uses on-card RAM instead of sharing the Apple's.  The AppliCard also works on the Apple /// driver.  It does require the specific AppliCard startup disk.
* '''applicard''' is the PCPI AppliCard, which also runs CP/M but at a much faster speed since it uses on-card RAM instead of sharing the Apple's.  The AppliCard also works on the Apple /// driver.  It does require the specific AppliCard startup disk.
* '''themill''' is the Stellation Two The Mill card, which adds a 6809 processor and enables running Microware OS-9.
===80-Column Cards===
* '''suprterm''' is the M&R Enterprises SUP'R'TERMINAL 80-column card for the II and II Plus.  It will only work properly in slot 3.  This card is not a standard Videx clone; it has font RAM instead of ROM so it's possible to use custom fonts with it.  (Added in MAME 0.227).
* '''videoterm''' is the Videx VideoTerm 80-column card for the II and II Plus.
* '''videoterm''' is the Videx VideoTerm 80-column card for the II and II Plus.
* '''aevm80''' is the Applied Engineering ViewMaster 80 80-column card.  This is their enhanced clone of the Videx VideoTerm.
* '''ap16''' is a German clone of the Videx VideoTerm 80-column card.
* '''ap16''' is a German clone of the Videx VideoTerm 80-column card.
* '''ap16alt''' is the same German clone of the Videx VideoTerm with a different firmware version.
* '''ap16alt''' is the same German clone of the Videx VideoTerm with a different firmware version.
Line 61: Line 142:
* '''ultraterm''' is the Videx UltraTerm 80 and 132-column card for the II, II Plus, and unenhanced IIe.
* '''ultraterm''' is the Videx UltraTerm 80 and 132-column card for the II, II Plus, and unenhanced IIe.
* '''ultratermenh''' is the Videx UltraTerm 80 and 132-column card with special firmware to work on the enhanced IIe.
* '''ultratermenh''' is the Videx UltraTerm 80 and 132-column card with special firmware to work on the enhanced IIe.
* '''ssc''' is the Apple Super Serial Card.
 
===Serial Interface Cards===
* '''ssc''' is the Apple Super Serial Card. (bug-fixed in MAME 0.227)
* '''byte8251''' is an 8251-based serial card published in BYTE Magazine, April 1979, in an article called "Cross-Pollinating the Apple II".  (added in MAME 0.219)
* '''ccs7710''' is the California Computer Systems Model 7710 Asynchronous Serial Interface.  (added in MAME 0.227)
* '''ssi''' is the Apricorn Super Serial Imager.  (added in MAME 0.228)
 
===Misc. Cards===
* '''swyft''' is the IAI SwyftCard, which works only on the IIe and turns it into Jef Raskin's original dream for the Macintosh.  By modern standards it's quite weird to use.
* '''swyft''' is the IAI SwyftCard, which works only on the IIe and turns it into Jef Raskin's original dream for the Macintosh.  By modern standards it's quite weird to use.
* '''themill''' is the Stellation Two The Mill card, which adds a 6809 processor and enables running Microware OS-9.
 
* '''sam''' is the optional card for the S.A.M. Software Automated Mouth software speech synthesizerIt gives a higher-quality voice than the normal Apple II speaker output.
===Graphics Cards===
* '''grafex''' is the Grafex-32 card, which adds accelerated 2D video output with the NEC uPD7220 chipThis was from a design published in Radio Electronics Magazine over 3 issues in early 1986.
* '''arcbd''' is the Third Millenium Engineering Arcade Board, which added ColecoVision-like graphics and sound capability to the Apple II.
* '''arcbd''' is the Third Millenium Engineering Arcade Board, which added ColecoVision-like graphics and sound capability to the Apple II.
* '''ezcgi''' is a graphics/sprites card from a design published in BYTE Magazine.
* '''ezcgi9938''' and '''ezcgi9958''' are extended versions of the '''ezcgi''' card with the TMS9938 and TMS9958 GPUs.
* '''ssprite''' is the Synetix SuperSprite graphics and sound card, which has similar capabilities to the Arcade Board and the EZ-CGI.
* '''ssbapple''' is the SSB Apple speech card.  This only works with its own software to my knowledge, it wasn't as widely supported as the Echo II line.
===MIDI Interface Cards===
* '''midi''' is the standard Passport/Yamaha style MIDI card supported by most 8-bit MIDI software and GS/OS (with the "Card 6850 MIDI" driver).
* '''midi''' is the standard Passport/Yamaha style MIDI card supported by most 8-bit MIDI software and GS/OS (with the "Card 6850 MIDI" driver).
* '''zipdrive''' is the Zip Technologies Zip Drive, an IDE card from the ZipChip accelerator companyNo relation to the later Iomega Zip Drive.  This card requires a custom partitioned/formatted hard disk image and so is mostly of interest to people who owned such a card and want to image their old drive and use it under emulation.
 
* '''focusdrive''' is Focus Technologies' version of the '''zipdrive''' IDE cardThe same caveat about custom hard disk images applies.
===Input Device Cards===
* '''echoiiplus''' is the Street Electronics Echo II Plus hardware speech synthesizer.  This works with a lot of accessibility software for the Apple II and some games.
* '''mouse''' is the Apple II Mouse Card for the II, II Plus, and IIe.  This is useful for mouse-compatible software like Dazzle Draw, Apple II DeskTop, and MousePaint.
* '''scsi''' is the Apple II Revision C SCSI CardIt supports harddisks and CD-ROMs.
* '''4play''' is the 4 Play Joystick Card, which gives you 4 players in compatible software (primarily NinjaForce's Bomberman clone for the IIgs).
* '''aesms''' is the Applied Engineering Super Music Synthesizer. It's not compatible with any other cards, but if you can find the software for it it can be fun for a few minutes.
 
===Parallel/Centronics Interface Cards===
* '''parallel''' is the Apple II Parallel Card.  This card was rewritten for MAME 0.226 and now handshakes properly with the 'ap2000' printer.
* '''grapplus''' is the Orange Micro Grappler Plus parallel printer interfaceThis has functionality in its firmware to dump hi-res screens and other useful stuff.  (Added in MAME 0.226).
* '''uniprint''' is the Videx Uniprint parallel printer interface.  This also has special firmware functionality for printing hi-res screens.  (Added in MAME 0.227).
 
===Built-in parallel ports===
MAME 0.239 and later support the built-in parallel port on the Laser 128 series, Franklin ACE 500, and Franklin ACE 2200.  For all 3 machines the slot name is '''parallel'''.  To use the Epson printer emulation with any of these machines, you would use the command-line option '''-parallel ap2000'''.
 
====Things to connect to a parallel card====
MAME currently emulates the Epson ActionPrinter 2000.  This printer came out in 1991 but is fully compatible with previous Epson printers.  In most cases you configure the software for an "Epson LX" or "FX" printer; the major exception is The Print Shop, which works better if you use "OLD EPSON" instead of "EPSON".  The Print Shop also works better with the Grappler Plus emulation if you tell it the card is a plain Grappler rather than a Plus.  In order to use it, you use the following switches:
 
'''-slX:CARDNAME:prn ap2000''', where X is the slot and CARDNAME is the card's name.  For a Grappler Plus in slot 1 (which is pretty standard), that's '''-sl1 grapplus -sl1:grapplus:prn ap2000'''.  For the Apple II Parallel Card in slot 1, that becomes '''-sl1 parallel -sl1:parallel:prn ap2000'''.
 
The printer's output will appear as a second screen, complete with a visible animated print head.  Note that there is not yet a way to get printed output out of MAME, but we have plans to do so in the future.
 
This also works with the GS/OS Epson driver so GUI programs can print too.  Use the Control Panel Slots to set slot 1 to Your Card, and Direct Connect Printer to Epson and Parallel Card.  Then reboot the system and the Page Setup / Print dialogs will work in all standard GS desktop apps.
 
===Accelerator Cards===
* '''twarp''' is the Applied Engineering TransWarp accelerator card.  This works to run e.g. AppleWorks at faster speeds without unthrottling MAME and making typing difficult.  Total Replay v3.0 and later supports controlling this card to accelerate loading and decompressing games while still playing them at normal speed.
 
===Video Digitizer Cards===
* '''ceyes2''' is the ComputerEyes/2 video digitizer (added in MAME 0.214), which gives higher-quality digitization results than the game port version.  When this is connected MAME accepts a -pic option with the path of a .PNG image to digitize.  The PNG can be any size and any color depth, and you can enter the File Manager in the Tab menu to change images without restarting the emulated Apple.
 
==The IIe Auxiliary Slot==
The IIe's auxiliary slot, named -aux on the command line, currently can support these cards:
 
* '''ext80''', the Apple IIe Extended 80-Column Card.  This gives the IIe 128K of RAM and enables double-hi-res and double-low-res video modesThis is in the IIe auxiliary slot by default.
* '''std80''' is the Apple IIe 80-Column Card.  This gives 80-column text, but will not work with software that requires 128K of RAM or uses the double-hi-res or double-low-res video modes.
* '''rw3''' is the Applied Engineering RamWorks III, which gives the IIe 128K of RAM, double-hi and -low res video modes, plus 8 megabytes of expansion RAM which later versions of AppleWorks can use, in addition to some newer software like EDIT.SYSTEM and John Brooks' /RAM3 RAMdisk.
 
== More configuration ==
 
The '''-ramsize''' switch controls the amount of RAM on many machines.  This defaults to 48K on the II and II Plus, 64K on the IIe, 128K on the IIc and IIc Plus, 1.25 MB on the ROM 0 and 1 IIgs, and 2 MB on the ROM 3 IIgs.
* The Apple II can be set to 4K, 8K, 12K, 16K, 20K, 24K, 32K, 36K, or 48K.
* The II Plus can be set to 16K, 32K, or 48K.
* The IIe only can be set to 64K.
* The original IIc only can be set to 128K, but the memory expandable IIc can be set to 128K, 384K, 640K, 896K, or 1152K.  The additional RAM is usable by AppleWorks.
* The IIc Plus, Laser 128, and Laser 128 EX2 all can be set to 128K, 384K, 640K, 896K, or 1152K, just like the memory expandable IIc.
* The ROM 0 and 1 IIgs can be set to 256K, 512K, 768K, 1M, 2M, 3M, 4M, 5M, 6M, 7M, or 8M.
* The ROM 3 IIgs can be set to 1M, 3M, 4M, 5M, 6M, 7M, or 8M.
 
To see what kinds of disk and other images are accepted for a given configuration, use the '''-listmedia''' option alongside whatever slot cards you want to use.  IDE and SCSI cards will typically add at least one -hard / -harddisk option, the Apple II Rev. C SCSI card adds a -cdrom option as well, and of course the various diskii cards add -flop1 and -flop2.  The wildcard is the two ComputerEyes devices, which add a -pic option for a .PNG file to use as the source image.
 
Note that some cards, like the Super Serial and Parallel, add configurable slots or ports of their ownYou can see those by adding the card and appending '''-listslots''' to the end of the command line.
 
==Game Controllers==
Most Apple IIs and clones have a special slot called "gameio" which emulates the 9 or 16 pin game I/O connector.  You can connect the following devices to the game port:
* '''joy''' gives you a pair of classic Apple II analog joysticks with 2 buttons each
* '''paddles''' (added in MAME 0.217) gives you 4 classic Apple II paddle controllers with 1 button each (used in, for instance, Woz's Little Brick Out game on the DOS 3.3 System Master)
* '''joyport''' gives you the Sirius Joyport, with 2 digital Atari-style controllers with 1 button each. Many games supported this; some called the option "Atari joystick" rather than "Sirius Joyport"
* '''gizmo''' (added in MAME 0.224) gives you one digital Atari-style controller with 1 button.  This is supported by the HAL Labs games "Vindicator" and "Super Taxman 2".
* '''compeyes''' (only available on the II and II Plus; the real hardware is not compatible with the IIe or IIGS) is the original game I/O port ComputerEyes video digitizer.  When this is connected MAME accepts a -pic option with the path of a .PNG image to digitize.  The PNG can be any size and any color depth, and you can enter the File Manager in the Tab menu to change images without restarting the emulated Apple.
 
==A note about hard drive and CD-ROM images==
 
MAME versions before 0.214 were only able to use images that had been converted to MAME's own CHD format.
 
To convert an Apple II hard drive image in 2MG format into CHD format, strip the first 64 bytes which contains the .2MG header:
::chdman createhd -c none -isb 64 -i <input_image_name>.2mg -o <output_image_name>.chd -f
 
To convert an Apple II hard drive image in PO or raw HDV format into CHD format:
::chdman createhd -c none -i <input_image_name>.[po|hdv] -o <output_image_name>.chd -f
MAME versions 0.214 and later can use images in 2MG, HDV or CHD format. If you want to use a hard drive image with a .RAW or .PO extension, then rename them to have a .HDV extension instead.
 
For CD-ROM, all MAME versions which fully support the Revision C SCSI card will accept .ISO, .BIN/.CUE, or .CHD CD-ROM images.  Note that ISO images must be named to end in .iso for MAME to recognize them properly, it may crash otherwise.
 
 
[[Category:Year_1977]]
[[Category:Year_1979]]
[[Category:Year_1983]]
[[Category:Year_1984]]
[[Category:Year_1985]]
[[Category:Year_1986]]
[[Category:Year_1988]]

Latest revision as of 01:04, 27 June 2023

Apple II series

Originally designed by Steve Wozniak, the Apple II series was both one of the first mass-market 8-bit microcomputers and the longest-lived. The machines exemplified Wozniak's design sensibilities of not including hardware when software can perform the same function, and of being wide open for expansion. Elements of the II's design influenced many later computers; PCs today have expansion slots in part because the Apple II did, for instance.

Quickstart

Assuming you don't have the Software List library, you can use MAME like any other Apple II emulator with the disk images you already have. For the II, II Plus, IIe, IIc, and IIGS, you can boot a 5.25" disk by using the command line switch -flop1. For example, "mame apple2e -flop1 Dung_Beetles.dsk". For the IIc Plus and IIGS, you can boot a 3.5" disk image by using the switch -flop3. For example, mame apple2gs -flop3 FTA_Nucleus.2mg. For the II, II Plus, IIe and IIgs, you can boot a hard drive image after inserting an expansion card that supports one by using the command line switch -hard1. For example, to boot Total Replay with the CFFA2 card emulation, use mame apple2ee -sl7 cffa2 -hard1 "Total Replay v3.0.2mg".

Most of the Apple II models will auto-boot floppy disks. But if you want to boot a disk on the original apple2 driver, the emulation will start up with a * prompt. Press 6, then Control-P, then press Enter/Return and the disk will start up.

Some MAME basics

Emulated machines with keyboards like the Apple II start up with almost all of the keys going to the emulated machine. You can re-enable common MAME keys by pressing the UI Mode key, which by default is Scr Lock on Windows and Linux and forward-Delete on Macs (Fn-Delete on compact keyboards like MacBooks). These keys were chosen precisely because they're very uncommon in emulated machines and therefore unlikely to cause problems, in case you're wondering why they're weird.

When you're in UI mode, these keys do useful things:

  • Tab brings up the MAME menu, which allows you to change the machine configuration, swap floppy disks and CD-ROMs, and do other things.
  • Esc exits. If you have confirm_quit set to "0" in your mame.ini (as is the default), it will exit immediately. Otherwise MAME will confirm that you want to exit.
  • Left Alt + Enter (Left-Option + Return on Macs) toggles full-screen and windowed mode, like in many PC games.
  • P pauses and dims the screen slightly to indicate that you're paused.
  • F3 does a forced reset (this is not exactly the same as an Apple II Control-Reset; see below for details on that), and left shift + F3 does a "hard" reset, where MAME is torn completely down and restarted. Hard resets are handy for getting some configuration options to take effect.
  • Left Shift + F7 saves a save state, which freezes the current machine state and saves it to disk. MAME will prompt for a save slot; you can press any alphanumeric key (0-9 and A-Z) for 36 slots.
  • Plain F7 loads a save state, with the same rules about the save slot.
  • F12 takes a screenshot. This will be saved as a .PNG inside the "snap" folder by default, with a folder in the snap folder named after the machine, like "apple2e" or "apple2gs". Note that by default the screenshot is the exact pixels that are rendered internally by MAME, so Apple II screenshots will appear squashed. You can change this with -snapsize. For instance, -snapsize 640x480 will force the screenshot to be 640x480. -snapsize 560x384 will create non-squashed screenshots for the 8-bit IIs, and -snapsize 704x462 will do the same for the IIgs.
  • ~ (tilde/backtick) brings up sliders so you can override the default balance between audio chips, adjust brightness and contrast, and other settings. If you are running with the debugger enabled, ~ will instead freeze the machine and drop into the debugger.

When you *aren't* in the UI mode, these keys are interesting:

  • Left Alt or Option is the Open Apple key (what Mac users call "Command").
  • Right Alt or Option is the Closed Apple key (what Mac users call "Option").
  • F12 is the Apple II Reset key. On most machines, you can reset with Control + F12; on the IIe and later you can Control + Left Alt/Option + F12 to do a Control-Apple-Reset. This is the standard reset that real IIs do, as opposed to MAME's F3 reset.

Models and Clones

  • Apple II (1977 - driver name apple2)
- The original machine. Includes a 6502 CPU, 8 expansion slots, up to 48KiB of RAM on the motherboard, cassette and game controller I/O, a 1-bit speaker clicker, and video modes including 40x24 text, 40x48 16-color "lo-res" graphics, and 6 color (8 but there's two blacks and two whites) 280x192 "hi-res" graphics. In addition, lo or hi-res graphics could be displayed along with 4 lines of text at the bottom.
  • Apple II Plus (1979 - driver name apple2p)
- Mostly a ROM change; Wozniak's Integer BASIC was replaced with a licensed version of Microsoft BASIC, and the system's firmware was extended to be able to auto-boot from cards with a certain set of signature bytes in their firmware ROM.
  • Apple IIe (1983 - driver names apple2e, apple2ee, apple2ep)
- Condensed a large portion of the previous systems (which were primarily off-the-shelf 74-series TTL chips) into two custom ICs, "IOU" and "MMU". Slot 0, which on the II and II Plus normally contained a 16K "language card" to expand the system to 64 KiB, was eliminated and 64 KiB is on board in a configuration compatible with the language card. The system also supports a second 64 KiB of RAM for a total of 128 KiB, and brings in a series of double-resolution video modes inspired by the ill-fated Apple ///. These include 80x24 text, 80x48 16-color "double-lo-res" graphics, and 560x192 16-color "double-hi-res" graphics.
The IIe was later "enhanced"; this replaced the 6502 CPU with a WDC 65C02 that included additional instructions, and added GUI-drawing characters to the built-in text font. Finally, a "platinum" IIe was released that came in a revised gray case (instead of the previous beige) and had the keyboard expanded to include a numeric keypad.
  • Apple IIc (1984 - driver names apple2c, apple2c0, apple2c3, apple2c4)
- This was an enhanced IIe with 128 KiB of RAM packed into a small "pizza box" style form factor. Because there was no room for slots, the IIc included hardware equivalent to two serial cards, a mouse card, and a floppy disk controller and drive.
Later versions of the IIc included support for external 3.5" disk drives and a memory expansion slot which provided the equivalent of the 1 MiB Apple II Memory Expansion Card. MAME fully supports all functions of this machine, including the mouse and the Dvorak keyboard layout switch.
  • Apple IIGS (1986 - driver names apple2gs, apple2gsr0, apple2gsr1)
- The 16-bit Apple II. Built around a WDC 65C816 CPU (which had a full 65C02 emulation mode) running 3 times faster than earlier machines, the IIGS is 99% compatible with the enhanced IIe but was also capable of running new 16-bit software that could directly access up to 8 MiB of RAM. The ROMs included a full optimized 65C816 port of the Macintosh's Toolbox APIs and Mac apps written in Pascal or C could be ported over with almost no code changes. The IIGS introduced the concept of switchable slots, where each of the 7 slots could be switched between a built-in function and using a card plugged into the slot. This provided the integration of the IIc combined with the expandability of the IIe.
Built-in hardware included two serial ports, a detachable keyboard and mouse supported by the then-new Apple Desktop Bus (ADB), 5.25" and 3.5" floppy support, a 32-oscillator Ensoniq sample-playback synthesizer chip, and new video modes: 320x200 "Super Hi-Res" with 16 unique colors per horizontal line, and 640x200 "Super Hi-Res" with 4 unique colors per scanline. Unlike previous Apple IIs, these new modes were not built on NTSC trickery and provided real full-color images with no bleeding or other artifacts.
  • Apple IIc Plus (1988 - driver name apple2cp)
- This was a final-configuration IIc (with the memory expansion slot) with the internal 5.25" disk drive swapped for a 3.5" one and a licensed copy of the 4 MHz Zip Chip accelerator included. MAME 0.222 and later support the built-in accelerator.
  • Laser 128 (1986, by VTech - driver names "laser128" for the later hardware revision, "laser128o" for the first hardware revision)
- This was an inexpensive Apple IIc clone with additional built-in peripherals and the ability to use an expansion slot card. It was not fully compatible with all software but most worked.
  • Laser 128 EX (1988, by VTech - driver name "las128ex")
- This was an enhanced Laser 128 with better compatibility and a built-in accelerator. MAME 0.222 and later support the accelerator.
  • Laser 128EX2 (1988, by VTech - driver name "las128e2")
- This was an Apple IIc Plus clone, available with either a 3.5" or 5.25" internal floppy drive. An accelerator was standard, like on the IIc Plus. MAME 0.222 and later support the accelerator.
  • Franklin ACE 2200 (1985, by Franklin Computer - driver name "ace2200")
- This was an enhanced Apple IIe clone, available with 2 built-in 5.25" floppy drives and a built-in parallel port. Compatibility isn't 100% due to some issues with the ROMs.
  • Franklin ACE 500 (1986, by Franklin Computer - driver name "ace500")
- This was an Apple IIc clone, with a parallel port which the IIc didn't have. The ROMs have some compatibility fixes over the ACE 2200 but still aren't perfect.

The default configurations

MAME defaults to configuring these systems to run the widest variety of software "out of the box".

  • Apple II and II Plus: 16K Language Card in slot 0, Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
  • Apple IIe: 128 KiB RAM installed (extended 80 column card in the aux slot), Mockingboard in slot 4, Disk II controller and 2 drives in slot 6.
  • Apple IIc: Mockingboard 4C (third-party add-on which gives a Mockingboard in slot 4) is installed. -ramsize may be used to include up to 1 MiB of expansion RAM on the later models.
  • Apple IIGS: 1 MiB of expansion RAM is installed, which allows running all known software. Stereo output is included (it was optional on the real system). 2 each of 3.5" and 5.25" drives are included.
  • Apple IIc Plus: -ramsize may be used to include up to 1 MiB of expansion RAM.

The configuration switches

If you switch MAME to "Partial Keyboard" emulation mode so that MAME keys work and press Tab, MAME's menu will appear. The Machine Configuration option will differ by Apple II model, but contains useful things:

  • All Apple II models except the IIGS have a Composite Monitor Type selection. "Color" gives simulated NTSC color, "B&W" gives black and white (and can be made into color using MAME's CRT simulation filter), "Green" simulates a green monochrome monitor, and "Orange" simulates an orange/amber monochrome monitor. New in MAME 0.224 is the "Video-7 RGB" setting, which gives some additional video modes and special features supported by the 8-bit versions of the Sierra AGI games, Dazzle Draw, and Apple II DeskTop.
  • Apple IIe and IIc models in MAME 0.222 and later have a CPU Type selection. "Standard" is the normal 6502 or 65C02 CPU for that system. "4 MHz Zip Chip" emulates a 4 MHz Zip Chip, as the name implies.
  • IIe and IIc models in MAME 0.222 and later also have a Bootup speed option. This only does something when CPU Type is set to "4 MHz Zip Chip". The "Standard" setting here enables the Zip but starts at normal Apple II speed. Software that can control the Zip can be used after this to change the speed. The "4 MHz" setting starts right away at 4 MHz.
  • 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.

These configuration settings are saved to the system's .cfg file and will persist across MAME runs.

Configuring slots

To find out what a version of MAME supports for configurable slot and port devices, run MAME with the -listslots parameter on the commandline. The Apple II and II Plus have 8 slots, which are "sl0" through "sl7" plus a game port. The IIe has 8 slots, "sl1" through "sl7" plus the "aux" slot and the game port. The IIgs has "sl1" through "sl7", while the memory slot is handled through the "ramsize" switch. For instance, "-ramsize 4M" on the IIgs gives you 4 megabytes of RAM.

To empty a slot which has a card in it by default, use the -sl switch for the slot followed by two double quotes. For instance, to remove the Mockingboard in slot 4 on a IIe, you'd type -sl4 "" or to remove the language card from slot 0 on the II Plus for very old ill-behaved software, you'd use -sl0 "".

Slot 0 on the II and II Plus can have the following cards:

  • lang is the standard 16K Apple Language Card. This is installed by default, giving you a 64K system.
  • ssram is the Saturn Systems 128K card, which is compatible with the language card and has additional RAM for programs which can use it.
  • romcardfp is the Apple II ROM Card (aka "Firmware Card"), in the Autostart Monitor + Applesoft BASIC configuration. This effectively turns an Apple II into an Apple II Plus. (MAME 0.256 and later)
  • romcardint is the Apple II ROM Card with the original Monitor and Integer BASIC installed. This turns an Apple II Plus into an Apple II, and also can be used to run Integer BASIC programs on a II Plus without a Language Card. (The Language Card is far more versatile though). (MAME 0.256 and later)
  • romcard is the Apple II ROM Card and you get to choose what ROMs your II or II Plus has. When this card is installed, you get a -rom switch to load a 12KiB binary file containing the entire ROM image in $D0/$D8/$E0/$E8/$F0/$F8 order. You can't skip, so unused areas need to be filled with zeroes. (MAME 0.256 and later)


Slots 1-7 on the II, II Plus, IIe, and IIgs (plus slots 5 and 7 on the Laser 128, EX, and EX2) generally support all of these cards:

Floppy Disk Controller Cards

  • diskii is the standard Apple 2-drive floppy controller. This is the old-style not-very-accurate version but it may work with some marginal disk images that the default diskiing controller does not.
  • diskiing is the new cycle-perfect Disk II controller. This one supports .WOZ images, including copy-protected ones. This is in slot 6 by default on the II, II Plus, and IIe.
  • diskiing13 is the cycle-perfect Disk II controller with the old 13-sector PROMs installed, so it can boot DOS 3.2 13-sector disks without running BOOT13 from the DOS 3.3 System Master or qkumba's Anti-M.
  • applesurance is the Applesurance Floppy Disk Controller, a Disk II clone with diagnostics built into the card's ROM. Holding down the M key on startup will bring up the menu. (added in MAME 0.219)
  • superdrive is the Apple 3.5 Disk Controller Card, also known as the "SuperDrive" card. It brings 3.5" disk support to the IIe, which is useful for recent home-brew developments like Apple II DeskTop and Applecorn that don't fit on a 5.25" disk. In MAME it also works with the Laser 128 and Franklin ACE 2200. (added in MAME 0.241)

Sound and Audio Cards

  • mockingboard is the Mockingboard music/sound card supported by some games. This is in slot 4 by default on the II, II Plus, and IIe.
  • phasor is the Applied Engineering Phasor music/sound card, which is back compatible with the Mockingboard but has extended capabilities supported by e.g. Ultima V.
  • alfam2 is the ALF Apple Music II 9-voice music/sound card. I don't believe any games supported it, but I could be wrong.
  • aesms is the Applied Engineering Super Music Synthesizer. It's not compatible with any other cards, but if you can find the software for it it can be fun for a few minutes.
  • sam is the optional card for the S.A.M. Software Automated Mouth software speech synthesizer. It gives a higher-quality voice than the normal Apple II speaker output.
  • echoiiplus is the Street Electronics Echo II Plus hardware speech synthesizer. This works with a lot of accessibility software for the Apple II and some games.
  • mcms1 and mcms2 are the 2 cards of the Mountain Computer Music System. They must be placed in adjacent slots or MAME will not start up. These cards give the Apple II wavetable synthesis capability, which was used as part of the Alpha Syntauri system.
  • dx1 is the Decillonix DX-1 sampler card. Currently this doesn't do much because MAME doesn't have audio input support.

Hard Disk Controller Cards

  • cffa2 is the CFFA2 SD/IDE card for the Apple II. This version has 65C02 firmware so it will only work properly on the enhanced IIe and IIgs. This works with most standard Apple II hard disk images.
  • cffa202 is the CFFA2 SD/IDE card with plain 6502 firmware which works on the II, II Plus, and unenhanced IIe.
  • zipdrive is the Zip Technologies Zip Drive, an IDE card from the ZipChip accelerator company. No relation to the later Iomega Zip Drive. This card requires a custom partitioned/formatted hard disk image and so is mostly of interest to people who owned such a card and want to image their old drive and use it under emulation.
  • focusdrive is Focus Technologies' version of the zipdrive IDE card. The same caveat about custom hard disk images applies.
  • scsi is the Apple II Revision C SCSI Card. It supports standard hard disk and CD-ROM ISO and BIN/CUE images as well as MAME's CHD format.
  • cmsscsi is the CMS SCSI II Card. It supports standard hard disk images as well as MAME's CHD format. To see more than the first two partitions on a disk, you'll need to use the GS/OS driver rather than relying on the firmware. (added in MAME 0.224)
  • corvus is the Corvus Systems "flat cable" hard disk interface. This is very difficult to set up on the Apple II; I've gotten it to boot DOS 3.3 off the hard disk, but unless you were an expert on these things back in the day it's for curiosity only.
  • vulcan is the Applied Engineering Vulcan IDE card. This requires a custom partitioned/formatted hard disk image; the software to set that up is reasonably easy to find, but it's intended primarily for users who had the card in their real Apple II.
  • vulcangold is the Gold version of the Vulcan IDE card. The firmware we have for it currently only works on 65816 CPUs and so this card is only an option on the IIgs.
  • booti is the BOOTI card, which is an Apple II interface for the popular CH376 USB file access chip. This chip has also been interfaced to 6502s on Acorn and Oric computers. NOTE: this works quite differently from other hard disk cards. Using it does not add a -hard1 option for an image file; instead you start up the Apple II, press "C" to configure the BOOTI, and you will get a nice menu allowing you to select .2MG and .HDV files from MAME's share_directory. This defaults to "share", so if that folder doesn't exist where your MAME installation is, create it and place Apple II hard disk image files in it. Due to limitations in how the CH376 chip works in real life, only files with valid 8.3 filenames will appear in the BOOTI's configuration interface for use. (added in MAME 0.232)

Memory Expansion Cards

  • memexp is the Apple II Memory Expansion Card, sometimes called "Slinky". It has 1 megabyte populated, and is automatically recognized by most versions of AppleWorks.
  • ramfactor is the Applied Engineering RamFactor card, which is mostly a clone of the memexp card but has 8 megabytes instead of 1.

Clock/Calendar Cards

  • thclock is the ThunderWare ThunderClock Plus, which is automatically recognized and used by ProDOS.
  • tm2ho is the Applied Engineering TimeMaster II H.O. clock/calendar card. The optional X-10 home control feature is not supported in MAME.

Co-Processor Cards

  • softcard is the Microsoft Z80 SoftCard, which lets you run CP/M.
  • applicard is the PCPI AppliCard, which also runs CP/M but at a much faster speed since it uses on-card RAM instead of sharing the Apple's. The AppliCard also works on the Apple /// driver. It does require the specific AppliCard startup disk.
  • themill is the Stellation Two The Mill card, which adds a 6809 processor and enables running Microware OS-9.

80-Column Cards

  • suprterm is the M&R Enterprises SUP'R'TERMINAL 80-column card for the II and II Plus. It will only work properly in slot 3. This card is not a standard Videx clone; it has font RAM instead of ROM so it's possible to use custom fonts with it. (Added in MAME 0.227).
  • videoterm is the Videx VideoTerm 80-column card for the II and II Plus.
  • aevm80 is the Applied Engineering ViewMaster 80 80-column card. This is their enhanced clone of the Videx VideoTerm.
  • ap16 is a German clone of the Videx VideoTerm 80-column card.
  • ap16alt is the same German clone of the Videx VideoTerm with a different firmware version.
  • vtc1 is yet another VideoTerm clone, this one of unknown origin.
  • ultraterm is the Videx UltraTerm 80 and 132-column card for the II, II Plus, and unenhanced IIe.
  • ultratermenh is the Videx UltraTerm 80 and 132-column card with special firmware to work on the enhanced IIe.

Serial Interface Cards

  • ssc is the Apple Super Serial Card. (bug-fixed in MAME 0.227)
  • byte8251 is an 8251-based serial card published in BYTE Magazine, April 1979, in an article called "Cross-Pollinating the Apple II". (added in MAME 0.219)
  • ccs7710 is the California Computer Systems Model 7710 Asynchronous Serial Interface. (added in MAME 0.227)
  • ssi is the Apricorn Super Serial Imager. (added in MAME 0.228)

Misc. Cards

  • swyft is the IAI SwyftCard, which works only on the IIe and turns it into Jef Raskin's original dream for the Macintosh. By modern standards it's quite weird to use.

Graphics Cards

  • grafex is the Grafex-32 card, which adds accelerated 2D video output with the NEC uPD7220 chip. This was from a design published in Radio Electronics Magazine over 3 issues in early 1986.
  • arcbd is the Third Millenium Engineering Arcade Board, which added ColecoVision-like graphics and sound capability to the Apple II.
  • ezcgi is a graphics/sprites card from a design published in BYTE Magazine.
  • ezcgi9938 and ezcgi9958 are extended versions of the ezcgi card with the TMS9938 and TMS9958 GPUs.
  • ssprite is the Synetix SuperSprite graphics and sound card, which has similar capabilities to the Arcade Board and the EZ-CGI.
  • ssbapple is the SSB Apple speech card. This only works with its own software to my knowledge, it wasn't as widely supported as the Echo II line.

MIDI Interface Cards

  • midi is the standard Passport/Yamaha style MIDI card supported by most 8-bit MIDI software and GS/OS (with the "Card 6850 MIDI" driver).

Input Device Cards

  • mouse is the Apple II Mouse Card for the II, II Plus, and IIe. This is useful for mouse-compatible software like Dazzle Draw, Apple II DeskTop, and MousePaint.
  • 4play is the 4 Play Joystick Card, which gives you 4 players in compatible software (primarily NinjaForce's Bomberman clone for the IIgs).

Parallel/Centronics Interface Cards

  • parallel is the Apple II Parallel Card. This card was rewritten for MAME 0.226 and now handshakes properly with the 'ap2000' printer.
  • grapplus is the Orange Micro Grappler Plus parallel printer interface. This has functionality in its firmware to dump hi-res screens and other useful stuff. (Added in MAME 0.226).
  • uniprint is the Videx Uniprint parallel printer interface. This also has special firmware functionality for printing hi-res screens. (Added in MAME 0.227).

Built-in parallel ports

MAME 0.239 and later support the built-in parallel port on the Laser 128 series, Franklin ACE 500, and Franklin ACE 2200. For all 3 machines the slot name is parallel. To use the Epson printer emulation with any of these machines, you would use the command-line option -parallel ap2000.

Things to connect to a parallel card

MAME currently emulates the Epson ActionPrinter 2000. This printer came out in 1991 but is fully compatible with previous Epson printers. In most cases you configure the software for an "Epson LX" or "FX" printer; the major exception is The Print Shop, which works better if you use "OLD EPSON" instead of "EPSON". The Print Shop also works better with the Grappler Plus emulation if you tell it the card is a plain Grappler rather than a Plus. In order to use it, you use the following switches:

-slX:CARDNAME:prn ap2000, where X is the slot and CARDNAME is the card's name. For a Grappler Plus in slot 1 (which is pretty standard), that's -sl1 grapplus -sl1:grapplus:prn ap2000. For the Apple II Parallel Card in slot 1, that becomes -sl1 parallel -sl1:parallel:prn ap2000.

The printer's output will appear as a second screen, complete with a visible animated print head. Note that there is not yet a way to get printed output out of MAME, but we have plans to do so in the future.

This also works with the GS/OS Epson driver so GUI programs can print too. Use the Control Panel Slots to set slot 1 to Your Card, and Direct Connect Printer to Epson and Parallel Card. Then reboot the system and the Page Setup / Print dialogs will work in all standard GS desktop apps.

Accelerator Cards

  • twarp is the Applied Engineering TransWarp accelerator card. This works to run e.g. AppleWorks at faster speeds without unthrottling MAME and making typing difficult. Total Replay v3.0 and later supports controlling this card to accelerate loading and decompressing games while still playing them at normal speed.

Video Digitizer Cards

  • ceyes2 is the ComputerEyes/2 video digitizer (added in MAME 0.214), which gives higher-quality digitization results than the game port version. When this is connected MAME accepts a -pic option with the path of a .PNG image to digitize. The PNG can be any size and any color depth, and you can enter the File Manager in the Tab menu to change images without restarting the emulated Apple.

The IIe Auxiliary Slot

The IIe's auxiliary slot, named -aux on the command line, currently can support these cards:

  • ext80, the Apple IIe Extended 80-Column Card. This gives the IIe 128K of RAM and enables double-hi-res and double-low-res video modes. This is in the IIe auxiliary slot by default.
  • std80 is the Apple IIe 80-Column Card. This gives 80-column text, but will not work with software that requires 128K of RAM or uses the double-hi-res or double-low-res video modes.
  • rw3 is the Applied Engineering RamWorks III, which gives the IIe 128K of RAM, double-hi and -low res video modes, plus 8 megabytes of expansion RAM which later versions of AppleWorks can use, in addition to some newer software like EDIT.SYSTEM and John Brooks' /RAM3 RAMdisk.

More configuration

The -ramsize switch controls the amount of RAM on many machines. This defaults to 48K on the II and II Plus, 64K on the IIe, 128K on the IIc and IIc Plus, 1.25 MB on the ROM 0 and 1 IIgs, and 2 MB on the ROM 3 IIgs.

  • The Apple II can be set to 4K, 8K, 12K, 16K, 20K, 24K, 32K, 36K, or 48K.
  • The II Plus can be set to 16K, 32K, or 48K.
  • The IIe only can be set to 64K.
  • The original IIc only can be set to 128K, but the memory expandable IIc can be set to 128K, 384K, 640K, 896K, or 1152K. The additional RAM is usable by AppleWorks.
  • The IIc Plus, Laser 128, and Laser 128 EX2 all can be set to 128K, 384K, 640K, 896K, or 1152K, just like the memory expandable IIc.
  • The ROM 0 and 1 IIgs can be set to 256K, 512K, 768K, 1M, 2M, 3M, 4M, 5M, 6M, 7M, or 8M.
  • The ROM 3 IIgs can be set to 1M, 3M, 4M, 5M, 6M, 7M, or 8M.

To see what kinds of disk and other images are accepted for a given configuration, use the -listmedia option alongside whatever slot cards you want to use. IDE and SCSI cards will typically add at least one -hard / -harddisk option, the Apple II Rev. C SCSI card adds a -cdrom option as well, and of course the various diskii cards add -flop1 and -flop2. The wildcard is the two ComputerEyes devices, which add a -pic option for a .PNG file to use as the source image.

Note that some cards, like the Super Serial and Parallel, add configurable slots or ports of their own. You can see those by adding the card and appending -listslots to the end of the command line.

Game Controllers

Most Apple IIs and clones have a special slot called "gameio" which emulates the 9 or 16 pin game I/O connector. You can connect the following devices to the game port:

  • joy gives you a pair of classic Apple II analog joysticks with 2 buttons each
  • paddles (added in MAME 0.217) gives you 4 classic Apple II paddle controllers with 1 button each (used in, for instance, Woz's Little Brick Out game on the DOS 3.3 System Master)
  • joyport gives you the Sirius Joyport, with 2 digital Atari-style controllers with 1 button each. Many games supported this; some called the option "Atari joystick" rather than "Sirius Joyport"
  • gizmo (added in MAME 0.224) gives you one digital Atari-style controller with 1 button. This is supported by the HAL Labs games "Vindicator" and "Super Taxman 2".
  • compeyes (only available on the II and II Plus; the real hardware is not compatible with the IIe or IIGS) is the original game I/O port ComputerEyes video digitizer. When this is connected MAME accepts a -pic option with the path of a .PNG image to digitize. The PNG can be any size and any color depth, and you can enter the File Manager in the Tab menu to change images without restarting the emulated Apple.

A note about hard drive and CD-ROM images

MAME versions before 0.214 were only able to use images that had been converted to MAME's own CHD format.

To convert an Apple II hard drive image in 2MG format into CHD format, strip the first 64 bytes which contains the .2MG header:

chdman createhd -c none -isb 64 -i <input_image_name>.2mg -o <output_image_name>.chd -f

To convert an Apple II hard drive image in PO or raw HDV format into CHD format:

chdman createhd -c none -i <input_image_name>.[po|hdv] -o <output_image_name>.chd -f

MAME versions 0.214 and later can use images in 2MG, HDV or CHD format. If you want to use a hard drive image with a .RAW or .PO extension, then rename them to have a .HDV extension instead.

For CD-ROM, all MAME versions which fully support the Revision C SCSI card will accept .ISO, .BIN/.CUE, or .CHD CD-ROM images. Note that ISO images must be named to end in .iso for MAME to recognize them properly, it may crash otherwise.