emulator: izapple2 type: standalone core_classification: embedded_hle source: "https://github.com/ivanizag/izapple2" upstream: "https://github.com/ivanizag/izapple2" profiled_date: "2026-08-08" source_commit: "877b75fcf00d5bdb88d77554a4ade3ecb8c1a166" core_version: "v2.4.0" display_name: "Apple - Apple II (izapple2)" cores: - izapple2 systems: - apple-ii mode: standalone notes: | Apple II emulator written in Go by Ivan Izaguirre. Boards: Apple ][ and ][+ with 48 KB, Apple IIe and //e enhanced with 128 KB, and two clones, the Copam Base 64A and the Basis 108 (setup.go:36-58). Every ROM the machine needs is compiled into the binary. The whole resources directory is embedded with //go:embed (resources.go:25-26) and the 17 machine configs with //go:embed configs/*.cfg (configuration.go:51-52). LoadResource routes a name by its prefix: / reads the embedded filesystem, http:// and https:// fetch over the network, anything else is a path on disk (resources.go:55-88). The shipped configs name main ROM, character ROM and boot diskette as / paths, so the emulator starts into DOS 3.3 with no file on disk. The base64a and basis108 configs set rom: , which dispatches to loadMultiPageRom over six embedded PROM dumps each (setup.go:189-199, boardBase64a.go:7-16, boardBasis108.go:28-37). Two of the 27 registered cards name an image the emulator downloads instead of carrying: prodosromdrive and prodosromcard3 (cardBuilder.go:86-87). Both read the card slot ROM out of that image, so neither card has a boot ROM without it. No shipped model uses either card, they are reached with -sN. prodosnvramdrive is left out of the factory (cardBuilder.go:88). -rom and -charrom replace the embedded main and character ROM with a file of the user's choosing, and every disk, hard disk and cassette parameter takes user media and defaults to empty. Seven frontends besides the core: a2sdl, a2sdl3, a2fyne, a2ebiten, a2wasm, console and headless. ES-DE runs a2sdl, built as izapple2sdl_linux_amd64 or izapple2sdl_windows_amd64.exe, and passes the image as a positional argument. The libretro core in frontend/a2libretro builds from source only, is absent from the buildbot and the RetroArch online updater (doc/libretro.md), and its izapple2_libretro.info declares firmware_count = 0. It exposes the machine as a model option and no card configuration, so the two card images cannot be reached through it. files: - name: "ProDOS_2.4.3_TJ.po" required: false sha1: "14c67801efd773f6a4ddc1699c8bcb8f7d09d1df" description: "ProDOS ROM Drive card image, a 1 MB solid state disk by Terence Boldt" source_ref: "cardProDOSRomDrive.go:31,39,46" note: "Fetched from https://github.com/Alex-Kw/ProDOS-ROM-Drive-Images/raw/main/ProDOS_2.4.3_TJ.po when the card is added with no image parameter. The card slot ROM is read at offset 0x300. No size or hash check. Offline, or before the card is first added, the file has to be in place." - name: "ProDOS-ROMCARD3_4MB_A2D.v1.4_v37.po" required: false sha1: "76c19651094167b94b1e168d1542e82ed517a8d7" size: 4194304 validation: [size] description: "ProDOS ROM Card 3 image, a 4 MB ROM card by Ralle Palaveev" source_ref: "cardProDOSRomCard3.go:29,37,42-44,48" note: "Fetched from https://github.com/rallepalaveev/ProDOS-Romcard3/raw/main/ProDOS-ROMCARD3_4MB_A2D.v1.4_v37.po when the card is added with no image parameter. The card slot ROM is read at offset 0x200. Rejected unless exactly 4 MB. Offline, or before the card is first added, the file has to be in place." analysis: embedded_resources: mechanism: "//go:embed resources, served by LoadResource on the / prefix" source_ref: "resources.go:25-26,55-70" count: 59 main_roms: - filename: "341-000x_integer.rom" size: 8192 md5: 894e6980cadd7bb3178b1ac8a15798df sha1: 102fbf7dea8b8d6de5de1c484ff45e7b5dfb28d5 - filename: Apple2_Plus.rom size: 12288 md5: 572b3005a4fa49bc54917b069b82c1ab sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7 - filename: Apple2e.rom size: 16384 md5: 346bc782c6a08a531c460e33bc03daf4 sha1: 61fa9254628e5bb7236fb474006116d67684d747 - filename: Apple2e_Enhanced.rom size: 16384 md5: 38063e08c778503fc03ecebb979769e9 sha1: b8ea90abe135a0031065e01697c4a3a20d51198b - filename: wozaniam_integer.rom size: 32768 md5: 2f52e3571b952c0c6a7111bbe7d40b06 sha1: 5f7b851dbcab1df8f1883d2112f6ab1d16109f24 main_roms_clones: - filename: BASE64A_D0.BIN size: 4096 md5: 3be17e122814854eef489aa18fb2a18b sha1: bd68bc9144483faff473e66a12eddd31fe369b68 - filename: BASE64A_D8.BIN size: 4096 md5: 85fe91818dc1a6104a632f667d5d50ae sha1: 8f19accf1d531779940be3f3c12af8277a3c412f - filename: BASE64A_E0.BIN size: 4096 md5: 1713e0a1013ac7f219de68a03e24acb7 sha1: f698da38f4f48bb9db73a71f85e6e350eb645c51 - filename: BASE64A_E8.BIN size: 4096 md5: 9fc4cef642511e173a85e155e0dd17a6 sha1: 9fbf0faf5df19d7d2e6bfd4bacd12eccc3fc4cf9 - filename: BASE64A_F0.BIN size: 4096 md5: 620957f7d52e44dbc8cfe0432d1c75d6 sha1: e397c2c154917a62866059b9c54b2c7796463a12 - filename: BASE64A_F8.BIN size: 8192 md5: 20cf7dcd355196f77c4e490cb27d7050 sha1: 6141c21c5d6a06729355083e3e36c6af72e534f2 - filename: Basis108_D83_D0.BIN size: 4096 md5: 4324e16f31623b3d6b06b0e6509407cb sha1: 7901203845adab588850ae35f81e4ee2a2248686 - filename: Basis108_D70_D8.BIN size: 4096 md5: 64bd9f89b1aeb32de7783fb3f8f7466f sha1: b2a418818e4130859afd6c08b5695328a3edd2c5 - filename: Basis108_D56_E0.BIN size: 4096 md5: e376cc43d22035a851703163551d033d sha1: 938884eb3ebd0870f99df33ee7a03e93cd625ab4 - filename: Basis108_D40_E8.BIN size: 4096 md5: ca3491a23265be503eefd52dbf6debaa sha1: 380ffcf0dba008f0bc43a483931e98034b1d0d52 - filename: Basis108_D39_F0.BIN size: 4096 md5: ff63fbda7a4cccf29236d3255fbe8bd5 sha1: b5ffc9b3552b13b2f577a42196addae71289203d - filename: Basis108_D25_F8.BIN size: 4096 md5: 242d0c2562d280843a16ebc70a8b30bc sha1: 66b7eadfdb938cda0de01dbeab1b74aa88bd096c character_roms: - filename: Apple2rev7CharGen.rom size: 2048 md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659 - filename: Apple IIe Video Unenhanced.bin size: 4096 md5: 2fbc2be2a84ea742de37be9925c7d7cd sha1: 58ad0008df72896a18601e090ee0d58155ffa5be - filename: Apple IIe Video Enhanced.bin size: 4096 md5: 9123fff3442c0e688cc6816be88dd4ab sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10 - filename: BASE64A_ROM7_CharGen.BIN size: 4096 md5: 0b144915453e5fa9d1f4a4cb85438eb7 sha1: d3827e22f377b681de1f8b18d8e57c66ca85cf38 - filename: D29_basis_cg_2532.rom.BIN size: 4096 md5: 37a23661f21e4945aef680ac94f4d435 sha1: e6e4e357b3834a143df9e5834abfb4a9139457d4 - filename: ROMXce Production 1Mb Text ROM V5.bin size: 131072 md5: 3e9255b76fcd20a84d4a40e99904c15d sha1: 12b5596ffeb3ee334d43c1d8031ea3c0b1e2429c - filename: "80ColumnP109.BIN" size: 1024 md5: e564b4bb5728cc7b5f2c4c56330f7ad5 sha1: b1fad3f20e84c3063f25ba66555a1624563fff6b - filename: "80ColumnP110.BIN" size: 2048 md5: ce6630f0a1f3ba08127a2e82facc7a25 sha1: aefae76fb07740d042cf294f01424efa7cc7a199 - filename: videx_ultraterm_chs_7859.bin size: 4096 md5: 1d77cc5edd8ea1330745efbb9bb4c902 sha1: 3517fa9e7a39573f1cb159b3161d6939dec199ba card_firmware: - filename: Apple Disk II 16 Sector Interface Card ROM P5 - 341-0027.bin size: 256 md5: 2020aa1413ff77fe29353f3ee72dc295 sha1: d4181c9f046aafc3fb326b381baac809d9e38d16 - filename: Apple Disk II 16 Sector Interface Card ROM P6 - 341-0028.bin size: 256 md5: 5f1be0c1cdff26f5956eef9643911886 sha1: bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4 - filename: Apple Disk II 13 Sector Interface Card ROM P5 - 341-0009.bin size: 256 md5: 4f80448507cf43ab40c17ac08d89e278 sha1: afd060e6f35faf3bb0146fa889fc787adf56330a - filename: Apple Disk II 13 Sector Interface Card ROM P6 - 341-0010.bin size: 256 md5: 897b0edef70b440133c99f65a507ebb6 sha1: e3d6d1c30653572b49ecc2dc54ce073978411a04 - filename: Apple II Parallel Printer Interface Card ROM fixed.bin size: 256 md5: 275a06e8fec1e53a8315df54d1719822 sha1: 6392019fdb1498149d00a3cd98b1723b3f245847 - filename: Apple II Interface 341-0271-A ROM 2716 for 5MB Profile.bin size: 2048 md5: 82015e7e3462116e2d1aa1d35d4f52b1 sha1: d9d4a7a2c14232c3872f9bbf55aff1b31f9a1cb5 - filename: Apple II Interface 341-0299-B ROM 2716 for 10MB Profile.bin size: 2048 md5: e841f266fcc2e2452b26c73c4fb93eb0 sha1: 81750f023f964c2f3781d687cee5b1ea5b49d4ea - filename: MemoryExpansionCard-341-0344a.bin size: 4096 md5: a434738170b38589261bf93f3027a528 sha1: 6e823a1fa40ed37eeddcef23f5df24da2ea1463e - filename: ramfactor_rom_14.bin size: 8192 md5: e3f6a5c1ff75d278362a08403f8b1fec sha1: 32cb02a6a915dd3962bfa1f0184a94253e03ba6b - filename: ThunderclockPlusROM.bin size: 2048 md5: 138b1f7e30953fcaa58fcbf562c15001 sha1: 60f434f5325899d7ea257a6e56e6f53eae65146a - filename: Videx Videoterm ROM 2.4.bin size: 1024 md5: acdb3732b38ddaee5ad357e08eea7676 sha1: bb653836e84850ce3197f461d4e19355f738cfbf - filename: videx_ultraterm_frm_b537.bin size: 4096 md5: 72972c464ecd229db27e03da1c92c332 sha1: b4acd1775c08ae43996ab4edf6d8e28f4736346b - filename: SwyftCard ROM.bin size: 16384 md5: 95a5579c1229944dd4841a1fb34e9e47 sha1: 1554bd03c536789f0ff7d1ef6c992265e311935d - filename: ApplesoftInteger.BIN size: 65536 md5: a7bae7a0a70cb4019c5145060e6a3451 sha1: b929f27b15de61391e28c18951e8d17dd8fd9435 - filename: MultiRom(SP boot)-Prog aid-28C256.BIN size: 32768 md5: ecf5aa6f46a85ace61eb5cec505a908d sha1: fb69c1f4551626749e7cfcfa5e2c27af7f195b8d - filename: Apple2CardFirmware.bin size: 512 md5: 76e795393f308a0788f2f95a67431b9a sha1: b8b0458e8b0c3b406e03f5e8096cbc5cebd127b0 - filename: Apple2CardFirmwareImproved.bin size: 512 md5: d2cf1b181b1934f9533c6d8b9d02f44c sha1: 5e2737d233f5769df654d2d5aa96d24f2fd85671 diskettes: - filename: dos33.dsk size: 143360 md5: b13de32fd7a97d817744bf2dd71d5479 sha1: 63392d078a159342b12667d0fdfea7a01a961978 - filename: dos32.nib size: 232960 md5: 082e79bb10fa5dcf07b2e49f689f5439 sha1: 3549a3a7d990d5b258f56fdc765258cb2ffb81ff - filename: ProDOS_2_4_3.po size: 143360 md5: 0577bdbb9c082787d00d50c830a75d67 sha1: 4bd80c2220b48cdcdcbe3876529a34b9a18efe5f - filename: cpm_2.20B_56K.po size: 143360 md5: c2c24f49d7c736e6317f6fe45d8f7468 sha1: cbd86f70ad822af826ae5039955997d722ae9d6a - filename: CPM3.1_Disk_1.dsk size: 143360 md5: e28e1efa972cf4789aec6f29e9e08013 sha1: 0305c74cf24b618b29047bf6b624e607071c954b - filename: CPM3.1_Disk_2.dsk size: 143360 md5: 5c5e948e7636c2b1e11735661788e24d sha1: daecdcd23366029b066fc28694c924c958acab26 - filename: cpm65.po size: 143360 md5: 685800279db9ee7131bb284061c8a007 sha1: 88fbea7f89ce2171afa10e86c825511913603ad7 - filename: A2DeskTop-1.4-en_800k.2mg size: 819264 md5: 304a4585cefc808f9b7b9e585e6dc9c2 sha1: 88ccfe5fffbcc3d170d9c864cfcbbe9debc98cf7 - filename: Card Cat 1.7.dsk size: 143360 md5: d9aeb6dcd25cbe06f1e0a5e39ae7d23f sha1: 8dd11509479d37e9f46a29cb120eb0a1028b2c0d - filename: Videx Ultraterm Utilities.dsk size: 143360 md5: 81306cc573bf67153ca8d3f93a4528aa sha1: 76f6d461e959f75be9cfcbbbf6479bdc8af6d176 - filename: SwyftWare_-_SwyftCard_Tutorial.woz size: 101807 md5: 9ab515de46831b4b1274cae01c14b621 sha1: c27a1e4ad98be52ce6dbfef801d8083578084569 - filename: audit.dsk size: 143360 md5: 917056239add083b76d5d72f8264cdda sha1: 489cea555cdbe0957a9d31b7ae29b013a1a2525c - filename: Apple II Pascal 1.3 APPLE0_ 680-0282-A.dsk size: 143360 md5: 8f01fb2ab2826adf336061c102a7b94d sha1: 58023a7e41623250213b9ab60b47798dcab00031 - filename: Apple II Pascal 1.3 APPLE1_ 680-0283-A.dsk size: 143360 md5: 4f328d449cb9d34da866bfd9caad7efb sha1: 8bbf47dce65ab672928ac16fe31e883afcf36f8a - filename: Apple II Pascal 1.3 APPLE2_ 680-0284-A.dsk size: 143360 md5: 41ed020ea6b1d4c682d9f92cf3b7c770 sha1: f46b04bda181cb0b6c79088d0f9efa8dd5b1db83 - filename: Apple II Pascal 1.3 APPLE3_ 680-0290-A.dsk size: 143360 md5: 88c0f98953b4c7c1cb42ea1d745c518e sha1: 10d2187111a1ccab8ed5b8141db81329e3e30768