emulator: ZEsarUX type: standalone core_classification: other source: "https://github.com/chernandezba/zesarux" upstream: "https://github.com/chernandezba/zesarux" source_commit: "8e1e8f3fcb5a8e677984df7aeaff30667682ab56" profiled_date: "2026-09-17" core_version: "13.1-SN" display_name: "Sinclair - ZX Spectrum and clones (ZEsarUX)" verification: existence cores: [zesarux] systems: - sinclair-zx-spectrum - sinclair-zx-spectrum-next - sinclair-zx80 - sinclair-zx81 - sinclair-ql - cambridge-z88 - jupiter-ace - timex-ts1500 - timex-tc2048 - timex-ts2068 - microdigital-tk85 - amstrad-cpc - pcw - sam-coupe - colecovision - sg-1000 - sega-mastersystem - msx - spectravideo - science-of-cambridge-mk14 notes: | Multi-machine Sinclair emulator. Every ROM is read from disk at run time; none is compiled into the binary. `rom_load` (src/cpu.c:3268-3868) maps `current_machine_type` to a filename through a switch, then resolves it with `find_sharedfile` (src/utils.c:1314-1352), which searches the current directory, `../Resources/`, `INSTALL_PREFIX/share/zesarux/` and the directory holding the binary, in that order. ZEsarUX ships these files and installs them next to the binary: `src/configure:1921` lists `*.rom`, `zxuno.flash`, `zxmmcplus.flash`, `tbblue.mmc`, `pcw_8x_boot*dsk`, `mantransfev3.bin` and `alternate_roms` in COMMONFILES. A normal install therefore already carries every entry below, which is why they are marked `bundled: true`. A missing machine ROM is not fatal: `rom_load` logs an error and returns (src/cpu.c:3530-3538), the panic having been removed deliberately. The machine then runs on uninitialised memory, so the ROMs the switch names are marked required for the machine they serve. The one hard failure is `prism_failsafe.rom`, which `prism_load_failsafe_rom` loads through its own path and which calls `cpu_panic` when missing or short (src/machines/prism.c:581-590). The emulator verifies no hash on any of these files. It does check size: the machine ROMs are compared against `get_rom_size` (src/utils.c:4084-4158) and the interface ROMs against their own `*_ROM_SIZE` constants, with a mismatch logged as an error. `validation: [size]` is set only where the code makes that comparison. `--romfile` (src/start.c:4876-4880) overrides the machine ROM with any file the user picks (src/cpu.c:3520-3523); the ROMs under `alternate_roms/` and the extra variants in the install root exist for that path and are documented in the shipped src/ALTERNATEROMS file. Interface ROMs are equally overridable (`--divide-rom`, `--divmmc-rom`, `--dandanator-rom`, `--ifrom-rom`, `--kartusho-rom`), and each falls back to the bundled default named here. ES-DE drives ZEsarUX for its `zxnext` system with `--machine tbblue --tbblue-fast-boot-mode --enable-esxdos-handler`. Fast boot swaps `tbblue_loader.rom` for `48.rom` (src/cpu.c:3373-3374), and the esxdos handler needs the divMMC firmware `esxmmc085.rom`, so that path loads `48.rom`, `esxmmc085.rom` and the `tbblue.mmc` card image rather than a dedicated Next ROM. ZEsarUX also loads UI and bundled-software resources through the same `find_sharedfile` path: `keyboards/*.bmp` on-screen keyboard art (src/menu/menu_items.c:19480, 21784, 21805), `z88_shortcuts.bmp` (src/video/screen.c:11254), the `my_soft/` homebrew collection (src/menu/menu_items.c:32497, 32258; src/menu/menu_items_storage.c:582), the `copiers/*.zsf` tape copier snapshots (src/menu/menu_items_storage.c:666, 742) and `editionnamegame.tzx` (src/cpu.h:73, src/utils.c:17885). They are application resources rather than system firmware and carry no entry below. `PrismChime.bin` sits in the source tree but no code reads it and COMMONFILES does not install it. files: # ============================================================ # ZX Spectrum and clones - machine ROMs # rom_load switch, src/cpu.c:3212-3451 # ============================================================ - name: "48.rom" sha1: "5ea7c2b824672e914525d1d5c419d71b84a426a2" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum fast_boot: "tbblue" source_ref: "src/cpu.c:3278-3287 (16K/48K, CZ 2000, CZ Spectrum), src/cpu.c:3373 (tbblue fast boot), src/utils.c:4098 (size)" note: "48K BASIC. Also loaded four times over as the TBBlue fast-boot image (src/cpu.c:3653-3662)." - name: "48es.rom" sha1: "9e535e2e24231ccb65e33d107f6d0ceb23e99477" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3377-3379, src/utils.c:4098" note: "Spanish 48K+ ROM, selected for MACHINE_ID_SPECTRUM_48_PLUS_SPA." - name: "inves.rom" sha1: "d020440638aff4d39467128413ef795677be9c23" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3289-3292, src/utils.c:4098" note: "Investronica Inves Spectrum+. Loaded at memoria_spectrum[65536] (src/cpu.c:3551-3557)." - name: "128.rom" sha1: "16375d42ea109b47edded7a16028de7fdb3013a1" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3312-3314, src/utils.c:4100" - name: "128s.rom" sha1: "57c0b6681224378ce1d279fde13d644478423783" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3316-3318, src/utils.c:4100" - name: "p2.rom" sha1: "8cafb292af58617907b9e6b9093d3588a75849b8" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3323-3325, src/utils.c:4100" note: "ZX Spectrum +2." - name: "p2f.rom" sha1: "8a5be00921afd4e2c74059c217b31b9fb51c3d41" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3327-3329, src/utils.c:4100" - name: "p2s.rom" sha1: "baca5d798b3e786078feded19486d9fc29dbd4b7" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3331-3333, src/utils.c:4100" - name: "p2a40.rom" sha1: "929bf1a5e5687ebd8d7245f9b513a596c0ec21a4" size: 65536 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3337-3340, src/utils.c:4102" note: "+2A/+3 ROM v4.0." - name: "p2a41.rom" sha1: "500c0945760abeefcbd08bc22c0d07b14b336cf0" size: 65536 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3342-3345, src/utils.c:4102" note: "+2A/+3 ROM v4.1." - name: "p2as.rom" sha1: "a4b311135ccbe010318dcb872dae2c8f078c7447" size: 65536 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3347-3350, src/utils.c:4102" - name: "pentagon.rom" sha1: "a584272f21dc82c14b7d4f1ed440e23a976e71f0" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3381-3383, src/utils.c:4100 (MACHINE_IS_SPECTRUM_128_P2 covers Pentagon, src/cpu.h:545)" - name: "se.rom" sha1: "14321f2092b8af21b52b35c1518d9a753d6618d4" size: 32768 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3357-3360, src/utils.c:4106" note: "Chloe 140SE/280SE, SE Basic IV." - name: "chrome.rom" sha1: "fb305656769765224c58ca02445d4bf041891d18" size: 65536 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3406-3408, src/utils.c:4112" - name: "prism.rom" sha1: "6e03d87f868c40d5662ef6906931c77ba1b8b2c2" size: 327680 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3368-3370, src/utils.c:4108" note: "20 pages of 16K. Page map documented at src/cpu.c:3622-3638." - name: "prism_failsafe.rom" sha1: "d020440638aff4d39467128413ef795677be9c23" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/machines/prism.h:61, src/machines/prism.c:581-590, src/cpu.c:3646" note: "Loaded straight after prism.rom by prism_load_failsafe_rom(). The only ROM whose absence is fatal: the loader calls cpu_panic both when the file is missing and when the read is not 16384 bytes." - name: "zxuno_bootloader.rom" sha1: "0afcb798128e6587e7ea0787714568f7b68be012" size: 8126 required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3353-3355, src/cpu.c:3596-3600" size_note: "Read caps at 8192 bytes and only errors when fewer than 1 byte is read, so no exact size check. get_rom_size returns 214 for ZX-Uno (src/utils.c:4104) but that value is unused on this path." - name: "zxevo_tsconf.rom" sha1: "2551026b7d63a2627f79701e26688a7d715dc96a" size: 524288 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3410-3412, src/utils.c:4114" - name: "zxevo_baseconf.rom" sha1: "1570048704f11dc239060ee4f63190d199c94987" size: 524288 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3414-3416, src/utils.c:4116" note: "ZX Evolution BaseConf ROM set. The 13.1 tree ships the Turbo 2+/PentEvo build with New ROM boot v1.06; the 13.0 release shipped the PentEvo edition 2013 image of the same size." # ============================================================ # ZX Spectrum Next (TBBlue) # ============================================================ - name: "tbblue_loader.rom" sha1: "8b2e927d0523bc27bffcc34c39527ab0d2362e0c" size: 8192 validation: [size] required: true bundled: true system: sinclair-zx-spectrum-next source_ref: "src/cpu.c:3372-3375, src/cpu.c:3663-3669, src/utils.c:4110" note: "FPGA loader, mirrored to 16K at src/cpu.c:3665. Bypassed when --tbblue-fast-boot-mode selects 48.rom instead." - name: "tbblue.mmc" sha1: "e838e1d63dc9c1e518a79195c9512042dffb765f" size: 67108864 required: false bundled: true system: sinclair-zx-spectrum-next source_ref: "src/menu/menu_items_storage.c:12092-12110, src/configure:1921" note: "SD card image carrying the Next system software. Assigned as MMC card 0 by the local-tbblue menu action; the emulator reports 'tbblue.mmc image not found' when absent." size_note: "64 MB, so it needs storage: large_file once the image is acquired and uploaded as a release asset." # ============================================================ # Microdigital and Czerweny Spectrum clones # ============================================================ - name: "tk90x.rom" sha1: "9a943a008be13194fb006bddffa7d22d2277813f" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3294-3296, src/utils.c:4098" - name: "tk90xs.rom" sha1: "a9421b9e3a17689b7392da1f72dc71dd46e09ab1" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3298-3300, src/utils.c:4098" - name: "tk95.rom" sha1: "94edc401d43b0e9a9cdc1d35de4b6462dc414ab3" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3302-3304, src/utils.c:4098" - name: "tk95es.rom" sha1: "54f3445374d1758a3133232672e8783cb4fc7a32" size: 16384 validation: [size] required: true bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.c:3306-3308, src/utils.c:4098" # ============================================================ # Timex # ============================================================ - name: "tc2048.rom" sha1: "febb2d495b6eda7cdcb4074935d6e9d9f328972d" size: 16384 validation: [size] required: true bundled: true system: timex-tc2048 source_ref: "src/cpu.c:3418-3420, src/utils.c:4098 (TC2048 falls under MACHINE_IS_SPECTRUM_16_48, src/cpu.h:543)" - name: "ts2068.rom" sha1: "34cd8113bf75b65a4da6eea355f9d46ad635f7e4" size: 24576 validation: [size] required: true bundled: true system: timex-ts2068 source_ref: "src/cpu.c:3363-3366, src/cpu.c:3699-3713, src/utils.c:4118" note: "Read as two blocks: 16384 into the main ROM table, then 8192 into the EX ROM table. Serves TS2068 and TC2068." - name: "ts1500.rom" sha1: "3eb437359221b4406d236085ec66fa02278e7495" size: 8192 validation: [size] required: true bundled: true system: timex-ts1500 source_ref: "src/cpu.c:3442-3446, src/utils.c:4134" # ============================================================ # ZX80 / ZX81 family # ============================================================ - name: "zx80.rom" sha1: "b6769a3197c77009e0933e038c15b43cf4c98c7a" size: [4096, 8192] validation: [size] required: true bundled: true system: sinclair-zx80 source_ref: "src/cpu.c:3422-3427, src/cpu.c:3754-3764, src/utils.c:4130" note: "Serves ZX80, TK80 and TK82. An 8192-byte file is accepted as-is so the ZX81 ROM can run on a ZX80 (src/cpu.c:3758)." - name: "zx81.rom" sha1: "7b143ee964e9ada89d1f9e88f0bd48d919184cfc" size: 8192 validation: [size] required: true bundled: true system: sinclair-zx81 source_ref: "src/cpu.c:3429-3440, src/utils.c:4134" note: "Serves ZX81, Timex TS1000, TK82C, TK83 and the Czerweny CZ 1000/1500 models." - name: "tk85.rom" sha1: "7b961a1733fc047eb682150a32e17bca10a018d2" size: 10240 validation: [size] required: true bundled: true system: microdigital-tk85 source_ref: "src/cpu.c:3448-3452, src/utils.c:4132" note: "The TK85 test precedes the generic ZX81 test in get_rom_size, so 10240 wins over 8192." - name: "zxpand_zx81.rom" sha1: "3bdbf55720cf9623431a4d4017fa8f165aac4a66" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx81 source_ref: "src/storage/zxpand.c:71, src/storage/zxpand.c:240, src/storage/zxpand.c:246-254" note: "ZXpand interface firmware. A short read disables ZXpand emulation." - name: "zxpand_zx80.rom" sha1: "8968261beab240e8a06e8cfe9e070987d860064b" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx80 source_ref: "src/storage/zxpand.c:72, src/storage/zxpand.c:240, src/storage/zxpand.c:246-254" - name: "ace.rom" sha1: "597ba8a15a292688333c84dc9fd35172abe5e7e6" size: 8192 validation: [size] required: true bundled: true system: jupiter-ace source_ref: "src/cpu.c:3454-3458, src/utils.c:4136" # ============================================================ # Sinclair QL, Cambridge Z88, MK14 # ============================================================ - name: "ql_js.rom" sha1: "6e1e3cae275d0cd58977258c0b13480c8e910138" size: 49152 min_size: 16384 validation: [size] required: true bundled: true system: sinclair-ql source_ref: "src/cpu.c:3489-3494, src/cpu.c:3829-3838" size_note: "Reads up to 131072 bytes and errors only below 16384, so the check is a minimum rather than an exact size." - name: "ql_jm.rom" sha1: "6a8468dcdb27dc1b194febba8c957c4ef4313538" size: 49152 required: false bundled: true system: sinclair-ql source_ref: "src/cpu.c:3493 (commented alternative), src/start.c:4876-4880" note: "JM release. Reachable through --romfile; the switch selects ql_js.rom." - name: "tkii220.rom" sha1: "f364472a81352479290e388e9a5afb57a0de8249" size: 16384 required: false bundled: true system: sinclair-ql source_ref: "src/machines/ql.c:1348-1375, src/start.c:5627-5652, src/cpu.c:3862-3866" note: "QJUMP Toolkit II 2.20, the ROM ql.c names as the example for --ql-rom-c000-file. ql_load_extra_roms() runs after the system ROM and reads 16K into memoria_ql at 0xC000 from the path the option gives; the read count is not checked." - name: "qsound_V1.94.rom" sha1: "622a81dce98524148f067780c17eddbaf46e27f6" aliases: ["Qsound_V1.94.rom"] size: 8192 required: false bundled: true system: sinclair-ql source_ref: "src/soundchips/qsound.h:50, src/soundchips/qsound.c:329-369, src/start.c:6799-6806, src/cpu.c:3863-3866" note: "QL Qsound firmware, read into memoria_ql at 0xC0000 once --ql-qsound-enabled is set; the read count is not checked and --ql-qsound-rom points the loader at another file. QSOUND_ROM_FILE is spelled qsound_V1.94.rom while the shipped file is Qsound_V1.94.rom, so the default only resolves on a case-insensitive filesystem." - name: "Z88OZ47.rom" sha1: "35e528e81d8f4e5860adf4160a3da0926525c8fa" size: 524288 required: true bundled: true system: cambridge-z88 source_ref: "src/cpu.c:3460-3465, src/cpu.c:3785-3795" size_note: "Reads up to 512K and errors only when nothing is read; z88_internal_rom_size is derived from the byte count, so any size is accepted." - name: "mk14.rom" sha1: "802dc637ce5391a2a6627f76f919b12a869b56ef" size: 512 validation: [size] required: true bundled: true system: science-of-cambridge-mk14 source_ref: "src/cpu.c:3496-3498, src/utils.c:4148" # ============================================================ # Amstrad CPC and PCW # ============================================================ - name: "cpc464.rom" sha1: "56d39c463da60968d93e58b4ba0e675829412a20" size: 32768 validation: [size] required: true bundled: true system: amstrad-cpc source_ref: "src/cpu.c:3468-3474, src/utils.c:4140" note: "Serves CPC 464 and CPC 4128." - name: "cpc664.rom" sha1: "4a38f7f5bf7fd0a95cf882433c69e67251a46868" size: 49152 validation: [size] required: true bundled: true system: amstrad-cpc source_ref: "src/cpu.c:3476-3478, src/utils.c:4142" - name: "cpc6128.rom" sha1: "29dd0487dc5a96cd00966d074de8700ddd4ee18b" size: 49152 validation: [size] required: true bundled: true system: amstrad-cpc source_ref: "src/cpu.c:3480-3482, src/utils.c:4142" - name: "pcw_boot.rom" sha1: "245a173cfc7976a4cae8d255f3d1422aeaf5f09a" size: 275 validation: [size] required: true bundled: true system: pcw source_ref: "src/cpu.c:3500-3506, src/cpu.c:3850-3856, src/utils.c:4150" note: "Boot block the PCW pulls into RAM rather than a mapped ROM (src/cpu.c:3849). Serves PCW 8256 and 8512." - name: "pcw_8x_boot1.dsk" sha1: "3be724b3bfa01d03931463b8501ffb5c3f3621b7" size: 194864 required: false bundled: true system: pcw source_ref: "src/machines/pcw.c:1432-1470" note: "LocoScript boot disc, inserted by pcw_boot_locoscript()." - name: "pcw_8x_boot2.dsk" sha1: "4c13bba076897076322b375e34f87306640cf0d6" size: 194864 required: false bundled: true system: pcw source_ref: "src/machines/pcw.c:1432-1475" note: "CP/M boot disc, inserted by pcw_boot_cpm() with boot end address 0x607." # ============================================================ # SAM Coupe # ============================================================ - name: "samcoupe.rom" sha1: "c86601633fb61a8c517f7657aad9af4e6870f2ee" size: 32768 validation: [size] required: true bundled: true system: sam-coupe source_ref: "src/cpu.c:3484-3487, src/utils.c:4144" - name: "atomlite.rom" sha1: "b2303b7200f5a17b54b841af9f0604db7bbdd1ab" size: 32768 validation: [size] required: false bundled: true system: sam-coupe source_ref: "src/cpu.c:3485, src/utils.c:4144" note: "Replaces samcoupe.rom when Atom Lite emulation is on." - name: "samram.rom" sha1: "acac00b8b342d19ce9bb35a8744a9c0060d5eedd" size: 32768 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/samram.c:46, src/storage/samram.c:482-484, src/storage/samram.c:497-500" note: "SamRam interface firmware, opened from a path the user selects." - name: "samram_eng.rom" sha1: "5344ee16523862fa66e9397d1f8cfa2b2cbaf341" size: 32768 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/samram.c:482-484, src/storage/samram.c:497-500" note: "English SamRam firmware, same user-selected path." # ============================================================ # Consoles and other 8-bit machines # ============================================================ - name: "coleco.rom" sha1: "99ba9be24ada3e86e5c17aeecb7a2d68c5edfe59" size: 8192 validation: [size] required: true bundled: true system: colecovision source_ref: "src/cpu.c:3385-3387, src/utils.c:4120" - name: "sg1000.rom" sha1: "fdea3168fda81e5f25f7dee3a7231192a492836e" size: 155 required: true bundled: true system: sg-1000 source_ref: "src/cpu.c:3389-3391, src/cpu.c:3723-3727" size_note: "Nothing is read from this file. The SG-1000 branch is empty and the source comment states the file only has to exist for the open to succeed." - name: "sms.rom" sha1: "c315672807d8ddb8d91443729405c766dd95cae7" size: 8192 validation: [size] required: true bundled: true system: sega-mastersystem source_ref: "src/cpu.c:3393-3395, src/utils.c:4124" - name: "msx.rom" sha1: "e998f0c441f4f1800ef44e42cd1659150206cf79" size: 32768 validation: [size] required: true bundled: true system: msx source_ref: "src/cpu.c:3397-3399, src/utils.c:4126" - name: "svi.rom" sha1: "7d8daf52f78371ca2c9443e04827c8e1f98c8f2c" size: 32768 validation: [size] required: true bundled: true system: spectravideo source_ref: "src/cpu.c:3401-3404, src/utils.c:4128" note: "Serves SVI-318 and SVI-328." # ============================================================ # Storage interfaces # ============================================================ - name: "esxmmc085.rom" sha1: "aa4c31dc9b08d80d0107b580d5a9216d23214776" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/divmmc.c:45, src/storage/divmmc.c:95-103, src/storage/diviface.h:27, src/storage/diviface.c:778-800" note: "divMMC esxdos firmware, the default when --divmmc-rom is unset. Needed by --enable-esxdos-handler, which the ES-DE zxnext command line sets." - name: "esxide085.rom" sha1: "178bae9e9209c43282e12c09884562e4ddf07e68" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/divide.c:40, src/storage/divide.c:93, src/storage/diviface.h:27, src/storage/diviface.c:778-800" note: "divIDE esxdos firmware, the default when --divide-rom is unset." - name: "unodos3.rom" sha1: "cdb90bd05b073ec7a5f875444e29ab0f6bcee9ac" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/divmmc.c:96-99, src/storage/diviface.h:27, src/storage/diviface.c:778-800" note: "divMMC firmware substituted for esxmmc085.rom on Chloe machines." - name: "trdos.rom" sha1: "0a74bd34538a03d0e1d214b425d95c14ad10c8c4" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/betadisk.c:67, src/storage/betadisk.c:401, src/storage/betadisk.h:27, src/storage/betadisk.c:408-420" note: "Beta Disk / TR-DOS firmware." - name: "if1-v1.rom" sha1: "4ffd9ed9c00cdc6f92ce69fdd8b618ef1203f48e" size: [8192, 16384] validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/if1.c:57, src/storage/if1.c:336-340, src/storage/if1.c:369, src/storage/if1.c:381" note: "Interface 1 firmware version 1, selected when if1_rom_version is 1. The load accepts 8192 or 16384 bytes and disables Interface 1 emulation otherwise." - name: "if1-v2.rom" sha1: "5cfb6bca4177c45fefd571734576b55e3a127c08" size: [8192, 16384] validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/if1.c:58, src/storage/if1.c:336-340, src/storage/if1.c:369, src/storage/if1.c:381" note: "Interface 1 firmware version 2, the default branch of if1_return_rom_name()." - name: "hilow_datadrive.rom" sha1: "fd3f165860c2564847805cfa7a7f769a627a687c" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/hilow_datadrive.h:27, src/storage/hilow_datadrive.h:30, src/storage/hilow_datadrive.c:1722" note: "HiLow Data Drive firmware." - name: "zxmmcplus.flash" sha1: "9f0697c261c37e92bf2e488e3db223443c341b9d" size: 1048576 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/zxmmcplus.h:30, src/start.c:5956-5959, src/storage/zxmmcplus.c:756-778" note: "ZXMMC+ flash ROM image, the default for --zxmmcplus-flash-file." size_note: "The image holds ROM and RAM together, so the check is ZXMMCPLUS_FLASHROM_SIZE + ZXMMCPLUS_RAM_SIZE, not the 512K ROM constant alone." - name: "zxuno.flash" sha1: "bb6740f15b5ed8d1d60f7f61f0737f769215ca57" size: 4194304 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/machines/zxuno.h:29, src/machines/zxuno.h:80, src/start.c:4916-4919, src/cpu.c:3604, src/machines/zxuno.c:1186-1208" note: "ZX-Uno SPI flash image, loaded by zxuno_load_spi_flash() right after the bootloader. Default for --zxunospifile. ZXUNO_SPI_SIZE is 4096 KB." # ============================================================ # Copier and utility interfaces # ============================================================ - name: "mf1.rom" sha1: "ba28754a3cc31a4ca579829ed4310c313409cf5d" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/multiface.c:224, src/copy_interfaces/multiface.c:232-242, src/menu/menu_items.c:42575-42580" note: "Multiface One. The file selector rejects anything that is not exactly 8 KB." - name: "mf128.rom" sha1: "f03f4ecbcf4a654f4775d16bda0d4cc47f884379" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/multiface.c:224, src/copy_interfaces/multiface.c:232-242, src/menu/menu_items.c:42575-42580" note: "Multiface 128." - name: "mf3.rom" sha1: "5d74d2e2e5a537639da92ff120f8a6d86f474495" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/multiface.c:224, src/copy_interfaces/multiface.c:232-242, src/menu/menu_items.c:42575-42580" note: "Multiface 3." - name: "specmate.rom" sha1: "c8f128610eeb5142d4d80f28e5dd07b7a5ab6b84" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/specmate.h:27, src/copy_interfaces/specmate.h:29, src/copy_interfaces/specmate.c:189-205" - name: "phoenix3.rom" sha1: "d4f01500e0383a1cf34683fb30d96230c14c7da3" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/phoenix.h:27, src/copy_interfaces/phoenix.h:29, src/copy_interfaces/phoenix.c:142" - name: "defcon.rom" sha1: "4c7d702e295a3383326606b805eab74affc501ba" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/defcon.h:27, src/copy_interfaces/defcon.h:29, src/copy_interfaces/defcon.c:139" - name: "dinamid3.rom" sha1: "9ee4ca7abee12ba6fb34aede2185f6aa3cb2800b" size: 2048 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/dinamid3.h:27, src/copy_interfaces/dinamid3.h:29, src/copy_interfaces/dinamid3.c:142" - name: "interface007.rom" sha1: "81af60ecd412854069227487417eb80b6c89934d" size: 2048 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/interface007.h:27, src/copy_interfaces/interface007.h:29, src/copy_interfaces/interface007.c:143" - name: "ramjet2.rom" sha1: "a3852ee24ab57e0e1d800c9d99cd244f7363449b" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/ramjet.h:27, src/copy_interfaces/ramjet.h:28-30, src/copy_interfaces/ramjet.c:165" - name: "ramjet3.rom" sha1: "362589adb01ebbf006a162e76062921c03ceb26e" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/ramjet.h:28, src/copy_interfaces/ramjet.c:165" - name: "transtape2.rom" sha1: "45d3e32d58b1c405b75ee72d80153dd0305bbd9d" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/transtape.h:27, src/copy_interfaces/transtape.h:31, src/copy_interfaces/transtape.c:354, src/copy_interfaces/transtape.c:360" note: "Selected when transtape_version is 2." - name: "transtape3-vC.rom" sha1: "b7ec72fa0a55243a53c55d649e0555acea25d0c1" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/transtape.h:28, src/copy_interfaces/transtape.c:355, src/copy_interfaces/transtape.c:360" note: "Default for Transtape version 3." - name: "transtape3-vA.rom" sha1: "c627527551e441a000184565a72df8ff37fce891" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/transtape.c:349-350, src/copy_interfaces/transtape.c:360-375" note: "Revision A, reached through the user-set transtape_rom_filename and loaded by the same size-checked path as the defaults." - name: "transtape3-vB.rom" sha1: "82bf848bac698d1ffd9ca809c4293f004152645a" size: 16384 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/transtape.c:349-350, src/copy_interfaces/transtape.c:360-375" note: "Revision B, reached through the user-set transtape_rom_filename." - name: "hilow_barbanegra.rom" sha1: "3b3862943758ad35f340537b742ca25a8286267a" size: 8192 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/hilow_barbanegra.h:27, src/copy_interfaces/hilow_barbanegra.h:30, src/copy_interfaces/hilow_barbanegra.c:282" - name: "mhpokeador.rom" sha1: "557f91755ede646a89e1146904a6d713f38d6b05" size: 1024 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/mhpokeador.h:27, src/copy_interfaces/mhpokeador.h:39, src/copy_interfaces/mhpokeador.c:264" - name: "mhpokeador-transfer.rom" sha1: "4099c5d8f65a25bc0053e5730b7c40a29bcfb614" size: 1024 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/mhpokeador.h:28, src/copy_interfaces/mhpokeador.c:264" - name: "mhpokeador-salvapan.rom" sha1: "4e438541ec2da0c3b9cf2cbf0cc3f5bc6cfb295e" size: 1024 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/copy_interfaces/mhpokeador.h:29, src/copy_interfaces/mhpokeador.c:264" - name: "mantransfev3.bin" sha1: "e134a38468ed84d53df164d97fa24990aa557da3" size: 200 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/menu/menu_items.c:42119-42145" note: "Spectrum program the emulator injects to dump RAM to tape." # ============================================================ # Sound # ============================================================ - name: "gs105a.rom" sha1: "1ba78923dc7d803e7995c165992e14e4608c2153" size: 32768 validation: [size] required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/soundchips/gs.h:34, src/soundchips/gs.h:29, src/soundchips/gs.c:525-545" note: "General Sound firmware v1.05a. GS_ROM_SIZE is in KB and the read is GS_ROM_SIZE*1024." - name: "gs104.rom" sha1: "c865121306eb3a7d811d82fbcc653b4dc1d6fa3d" size: 32768 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/configure:1921" note: "General Sound firmware v1.04. Shipped alongside gs105a.rom, but GS_ROM_NAME is fixed and there is no option to point the loader elsewhere, so it is usable only in place of gs105a.rom." # ============================================================ # Alternate machine ROMs, selectable with --romfile (src/start.c:4870-4874, # loaded at src/cpu.c:3455-3458). Documented in the shipped src/ALTERNATEROMS. # ============================================================ - name: "80-lec.rom" sha1: "bb7a77d66e95d2e28ebb610e543c065e0d428619" size: 16384 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/start.c:4876-4880, src/cpu.c:3520-3523" - name: "tk90x_v1br.rom" sha1: "eab2eab803d8ec717b55a915de3bcb931b410a2f" size: 16384 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:97, src/start.c:4876-4880, src/cpu.c:3520-3523" - name: "tk90x_v2es.rom" sha1: "a9af9c4d38882e2bd85086fc0c2d8d9afe90afad" size: 16384 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:98, src/start.c:4876-4880, src/cpu.c:3520-3523" note: "Corrected TK90X ROM." - name: "tk95es_modif.rom" sha1: "1dd39ee98e236389467e91a86cf5d8ed52583ba5" size: 16384 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:101-106, src/start.c:4876-4880, src/cpu.c:3520-3523" note: "TK95 Spanish ROM with message and symbol fixes by Rodolfo Edison Guerra." - name: "Z88OZ431.rom" sha1: "82e12674ba91eb85d4904c3948e4167aea6fd1b7" size: 524288 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "Z88OZ441.rom" sha1: "778d188c201bd9eb6bf795e0cc8344a87600cd45" size: 524288 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "Z88OZ45.rom" sha1: "aecf46de3563c6c6443e9780d633d7b7507e79ef" size: 524288 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "Z88OZ46.rom" sha1: "9e0e29baa3720abcbb8006cda8f19ea365faf20e" size: 524288 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "Z88UK220.rom" sha1: "5d89e8d98d2cc0acb8cd42dbfca601b7bd09c51e" size: 131072 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "Z88UK300.rom" sha1: "ceb688025b79454cf229cae4dbd0449df2747f79" size: 131072 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "Z88UK400.rom" sha1: "23c63ceced72d0a9031cba08d2ebc72ca336921d" size: 131072 required: false bundled: true system: cambridge-z88 source_ref: "src/ALTERNATEROMS:83-92, src/start.c:4876-4880" - name: "aszmice07.rom" path: "alternate_roms/aszmice07.rom" sha1: "7a37a248572689c8ac226c082b7026972d399b1c" size: 8192 required: false bundled: true system: sinclair-zx81 source_ref: "src/ALTERNATEROMS:4-5, src/start.c:4876-4880" note: "ASZMIC E07 replacement ROM with assembler and debugger. The 4K image is stored twice to reach 8K." - name: "sp-rom.rom" path: "alternate_roms/sp-rom.rom" sha1: "ef4b575b5b5cc18a3e6c71c241c65aa18957e2d5" size: 4096 required: false bundled: true system: sinclair-zx81 source_ref: "src/ALTERNATEROMS:7-9, src/start.c:4876-4880" note: "Comprocsys SP ROM add-on card, loaded at address 2000H." - name: "ace.rom" path: "alternate_roms/ace.rom" sha1: "6e5c9416a1cc89fe4012627f496f71ff2bb07b81" size: 8192 required: false bundled: true system: jupiter-ace variant_group: "jupiter-ace-rom" source_ref: "src/ALTERNATEROMS:11-12, src/start.c:4876-4880" note: "Jupiter Ace ROM patched by Dutra Lacerda, distinct from the root ace.rom." - name: "opense.rom" path: "alternate_roms/opense.rom" sha1: "24a339c5c163a687a8fed50f93714c6450e2562d" size: 16384 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:14-15, src/start.c:4876-4880" note: "OpenSE BASIC 3.1.2 for the 48K." - name: "sebasic4_rom1.rom" path: "alternate_roms/sebasic4_rom1.rom" sha1: "d7092d6d55ee8280057399362b5798d1f65d8eeb" size: 16384 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:18-19, src/start.c:4876-4880" note: "SE BASIC 4.1.0 standalone ROM 1 for the 48K." - name: "derby_p_32K.rom" path: "alternate_roms/derby_p_32K.rom" sha1: "f9c337782f9a4781548528841babd5bd13f2b745" size: 32768 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:21-23, src/start.c:4876-4880" note: "Derby+ for 128K machines with 32K of ROM." - name: "derby_pp_64K.rom" path: "alternate_roms/derby_pp_64K.rom" sha1: "7eaaf1ff19f74d5449033bacce9834d7b13022a9" size: 65536 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:21-23, src/start.c:4876-4880" note: "Derby++ for 128K machines with 64K of ROM." - name: "plus2c.rom" path: "alternate_roms/plus2c.rom" sha1: "98effb0e2dc4ecf6e9f70be9828a688341396c0c" size: 32768 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:40-41, src/start.c:4876-4880" note: "Unofficial +2C ROM by Andrew Owen, for 128K/+2." - name: "plus2b.rom" path: "alternate_roms/plus2b.rom" sha1: "420d8f1cd7bd75a79803eaa49e191d90cfd24f38" size: 65536 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:46-76, src/start.c:4876-4880" note: "+2B ROM set for +2A/+3: 128 editor, 48K BASIC, BBC BASIC, OpenSE BASIC 3.1.1." - name: "plus3e_mmcen3eE.rom" path: "alternate_roms/plus3e_mmcen3eE.rom" sha1: "a579f9c3571669294dad37b04dcb889a9c147d94" size: 65536 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/cpu.h:369, src/menu/menu_items.c:30976-30986, src/ALTERNATEROMS:26-30" note: "+3e v1.38 English for MMC. Resolved by name through find_sharedfile for the +2e/+3e MMC machine preset." - name: "plus3e_mmces3eE.rom" path: "alternate_roms/plus3e_mmces3eE.rom" sha1: "44e98a3dfc966f7c8725c252487a44a2c0b450d6" size: 65536 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:26-30, src/start.c:4876-4880" note: "+3e v1.38 Spanish for MMC." - name: "plus3e_sm8en3eE.rom" path: "alternate_roms/plus3e_sm8en3eE.rom" sha1: "89b6227798a88a6ad0e3b9e58db979694912ee04" size: 65536 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:32-36, src/start.c:4876-4880" note: "+3e v1.38 English for simple 8-bit IDE." - name: "plus3e_sm8es3eE.rom" path: "alternate_roms/plus3e_sm8es3eE.rom" sha1: "a5b62b647ccaec4af9989b8fd7857d5f6426ae5d" size: 65536 required: false bundled: true system: sinclair-zx-spectrum source_ref: "src/ALTERNATEROMS:32-36, src/start.c:4876-4880" note: "+3e v1.38 Spanish for simple 8-bit IDE."