# emulators

id: gearlynx
name: Gearlynx
type: libretro
classification: official_port
source: https://github.com/drhelius/Gearlynx
source_commit: fe628a44b0391daff414b74b5f353d6f3b66a673
profile_json:
{"core_classification": "official_port", "core_version": "1.0.0", "cores": ["gearlynx"], "display_name": "Atari - Lynx (GearLynx)", "emulator": "Gearlynx", "files": [{"crc32": "0d973c9d", "description": "Atari Lynx boot ROM", "md5": "fcd403db69f54290b51035d82f835e7b", "name": "lynxboot.img", "note": "512-byte boot ROM validated by CRC32 after load. Invalid CRC logs a warning but still works. Missing or wrong-size file blocks emulation entirely (no HLE fallback).", "region": ["world"], "required": true, "sha1": "e4ed47fae31693e016b081c6bda48da5b70d7ccb", "size": 512, "source_ref": "platforms/libretro/libretro.cpp:160-202 (load_bootroms), src/media.cpp:504-546 (LoadBios), src/defines.h:52 (GLYNX_BIOS_SIZE=0x200), src/game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), src/gearlynx_core_inline.h:33-37 (no-bios guard)", "validation": ["size", "crc32"]}], "notes": "Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius).\nThe libretro core loads lynxboot.img from the system directory at\nretro_load_game time (libretro.cpp:105-129, function load_bootroms).\nPath is built as: system_directory + \"/lynxboot.img\", no subdirectory.\n\nLoadBios in media.cpp:504 reads exactly 512 bytes (GLYNX_BIOS_SIZE\n= 0x200, defines.h:52). If the file size is not 0x200, the load is\nrejected with BIOS_LOAD_INVALID_SIZE. After loading, bytes at offset\n0x1F8 and 0x1F9 are patched (RAM/MAPCTL registers), then CRC32 is\ncomputed and compared against GLYNX_DB_BIOS_CRC (0x0D973C9D,\ngame_db.h:47). An invalid CRC triggers a warning log but the BIOS\nis still marked as loaded (m_is_bios_loaded = true).\n\nNo HLE fallback. If the BIOS is not loaded (IsBiosLoaded() returns\nfalse), RunToVBlank in\ngearlynx_core_inline.h:31-37 renders a static \"no bios\" image\nand returns false, refusing to emulate. The BIOS is required for\nany ROM to run. Homebrew (.o, BS93 format) bypasses the normal\nboot sequence via PrepareForHomebrew() but still requires the BIOS\nto be loaded for the emulation loop to execute.\n\nROM extensions: .lnx, .lyx, .o\n", "profiled_date": "2026-03-23", "source": "https://github.com/drhelius/Gearlynx", "source_commit": "fe628a44b0391daff414b74b5f353d6f3b66a673", "systems": ["atari-lynx"], "type": "libretro", "verification": "existence"}


id: gearsystem
name: Gearsystem
type: libretro
classification: official_port
source: https://github.com/drhelius/Gearsystem
upstream: https://github.com/drhelius/Gearsystem
source_commit: d547ae361bf242f25c45260aad29d4adc26e672a
profile_json:
{"core_classification": "official_port", "core_version": "3.2.0", "cores": ["gearsystem"], "display_name": "Sega - MS/GG/SG-1000 (Gearsystem)", "emulator": "Gearsystem", "files": [{"name": "bios.sms", "required": false, "source_ref": "platforms/libretro/libretro.cpp:534, platforms/libretro/libretro.cpp:537 (load_bootroms)", "system": "sega-mastersystem"}, {"name": "bios.gg", "required": false, "source_ref": "platforms/libretro/libretro.cpp:814, platforms/libretro/libretro.cpp:537 (load_bootroms)", "system": "sega-gamegear"}], "notes": "Gearsystem is a Sega Master System / Game Gear / SG-1000 emulator by\nIgnacio Sanchez (drhelius). No BIOS is required for normal operation.\n\nThe core supports optional boot ROMs for Master System and Game Gear,\ncontrolled by core options \"gearsystem_bios_sms\" and \"gearsystem_bios_gg\"\n(both disabled by default). Boot ROMs are loaded in load_bootroms()\nfrom the system directory with fixed filenames.\n\nSG-1000 and Game Gear in SMS mode have no BIOS support.\nIsBootromEnabled() returns false for both cases.\n\nWhen enabled, the boot ROM executes as on original hardware, which may\ncause invalid ROMs to lock or fail to boot entirely.\n", "platform_details": {"gamegear": {"bios_filename": "bios.gg", "note": "Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true).\nRaw binary read, stored in m_pBootromGG. Same bank computation.\nSupports standard GG BIOS and Majesco 1KB variant.\n", "source_ref": "src/Memory.cpp:230-235"}, "mastersystem": {"bios_filename": "bios.sms", "note": "Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false).\nRaw binary read, stored in m_pBootromSMS. Bank count computed as\nPow2Ceil(size / 0x4000). Memory mapping controlled by port 3E bit 3.\n", "source_ref": "src/Memory.cpp:223-228"}, "sg1000": {"bios_filename": null, "note": "No BIOS support. Memory.cpp:379 returns false from IsBootromEnabled()\nwhen IsSG1000() or IsGameGearInSMSMode() is true.\n"}}, "profiled_date": "2026-03-23", "source": "https://github.com/drhelius/Gearsystem", "source_commit": "d547ae361bf242f25c45260aad29d4adc26e672a", "systems": ["sega-mastersystem", "sega-gamegear", "sega-sg1000"], "type": "libretro", "upstream": "https://github.com/drhelius/Gearsystem"}


id: genesis_plus_gx
name: Genesis Plus GX
type: libretro
classification: community_fork
source: https://github.com/libretro/Genesis-Plus-GX
upstream: https://github.com/ekeeke/Genesis-Plus-GX
source_commit: 84fcf2ec8e6b8d901c2fec55c884f285f93a1679
profile_json:
{"core_classification": "community_fork", "core_version": "v1.7.4", "cores": ["genesis_plus_gx", "genesisplusgx", "genesisplusgx-expanded", "genplus"], "display_name": "Sega - MS/GG/MD/CD (Genesis Plus GX)", "emulator": "Genesis Plus GX", "files": [{"name": "bios_CD_U.bin", "note": "Sega CD (NTSC-U) boot ROM. Loaded for REGION_USA.", "region": ["north-america"], "required": true, "source_ref": "core/loadrom.c:409", "system": "sega-megacd"}, {"name": "bios_CD_E.bin", "note": "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE.", "region": ["europe"], "required": true, "source_ref": "core/loadrom.c:412", "system": "sega-megacd"}, {"name": "bios_CD_J.bin", "note": "Mega CD (NTSC-J) boot ROM. Loaded for default/Japan region.", "region": ["japan"], "required": true, "source_ref": "core/loadrom.c:415", "system": "sega-megacd"}, {"name": "bios_U.sms", "note": "Master System (NTSC-U) boot ROM. Snail maze game built in.", "region": ["north-america"], "required": false, "source_ref": "core/loadrom.c:511", "system": "sega-mastersystem"}, {"name": "bios_E.sms", "note": "Master System (PAL) boot ROM. Snail maze / Sonic built in.", "region": ["europe"], "required": false, "source_ref": "core/loadrom.c:514", "system": "sega-mastersystem"}, {"name": "bios_J.sms", "note": "Master System (NTSC-J) boot ROM.", "region": ["japan"], "required": false, "source_ref": "core/loadrom.c:517", "system": "sega-mastersystem"}, {"name": "bios.gg", "note": "Game Gear boot ROM (Majesco 1KB or standard). Shows startup logo.", "required": false, "source_ref": "core/loadrom.c:480", "system": "sega-gamegear"}, {"name": "bios_MD.bin", "note": "Mega Drive TMSS boot ROM. Shows 'Produced by or under license' screen.", "required": false, "source_ref": "libretro/libretro.c:3780", "system": "sega-megadrive"}, {"name": "ggenie.bin", "note": "Game Genie ROM. Loaded when Game Genie lock-on is enabled.", "required": false, "source_ref": "core/cart_hw/ggenie.c:64, libretro/libretro.c:3516", "system": "sega-megadrive"}, {"name": "areplay.bin", "note": "Action Replay (Pro) ROM. Loaded when Action Replay lock-on is enabled.", "required": false, "source_ref": "core/cart_hw/areplay.c:64, libretro/libretro.c:3517", "system": "sega-megadrive"}, {"name": "sk.bin", "note": "Sonic & Knuckles ROM. Required for S&K lock-on feature.", "required": false, "size": 2097152, "source_ref": "core/cart_hw/md_cart.c:867", "system": "sega-megadrive", "validation": ["size"]}, {"name": "sk2chip.bin", "note": "Sonic & Knuckles UPMEM ROM. Used by Sonic 2 & Knuckles lock-on.", "required": false, "size": 262144, "source_ref": "core/cart_hw/md_cart.c:873", "system": "sega-megadrive", "validation": ["size"]}], "notes": "Genesis Plus GX is a Sega 8/16-bit emulator covering SG-1000, Master System,\nGame Gear, Mega Drive/Genesis, and Mega CD/Sega CD.\n\nBIOS loading is handled by load_bios() in core/loadrom.c. The libretro port\nresolves filenames from the system directory in libretro/libretro.c:3516-3527.\n\nMega CD BIOS is required to boot CD images (load fails without it).\nMaster System, Game Gear, and Mega Drive BIOS files are optional boot ROMs\ngated behind the \"genesis_plus_gx_bios\" core option (config.bios).\nLock-on ROMs (Game Genie, Action Replay, Sonic & Knuckles) are optional\nand loaded only when the corresponding lock-on feature is enabled.\n", "platform_details": {"gamegear": {"bios_max_size": 4194304, "note": "Handles 1KB Majesco GG BIOS (mapped to $0000-$03FF) and\nstandard larger BIOS ROMs.\n", "source_ref": "core/loadrom.c:467-489"}, "mastersystem": {"bios_max_size": 4194304, "note": "BIOS ROM loaded into cart.rom + 0x400000. SEGA mapper assumed\nfor ROMs larger than 48KB, otherwise no mapper.\nRegion selected based on current region_code setting.\n", "source_ref": "core/loadrom.c:504-527"}, "megacd": {"bootrom_size": 131072, "note": "CD boot ROM region is auto-detected from disc image header.\nHardware model detected from boot ROM string at offset 0x120:\n  WONDER-MEGA BOOT -> Wondermega\n  WONDERMEGA2 BOOT -> Wondermega M2 / X'Eye\n  CDX BOOT ROM     -> CDX / Multi-Mega\n", "source_ref": "core/cd_hw/scd.h:73"}, "megadrive": {"note": "TMSS boot ROM validated by checking \"GENESIS OS\" at offset 0x120.\nOnly loaded when genesis_plus_gx_bios core option is enabled.\n", "source_ref": "libretro/libretro.c:3648-3666", "tmss_rom_size": 2048}}, "profiled_date": "2026-03-23", "source": "https://github.com/libretro/Genesis-Plus-GX", "source_commit": "84fcf2ec8e6b8d901c2fec55c884f285f93a1679", "systems": ["sega-megadrive", "sega-megacd", "sega-mastersystem", "sega-gamegear", "sega-sg1000", "sega-pico"], "type": "libretro", "upstream": "https://github.com/ekeeke/Genesis-Plus-GX"}


id: genesis_plus_gx_wide
name: Genesis Plus GX Wide
type: libretro
classification: enhanced_fork
source: https://github.com/libretro/Genesis-Plus-GX-Wide
upstream: https://github.com/ekeeke/Genesis-Plus-GX
source_commit: b7ad005431f5f0b55e559f6d598d1ed2479bf13b
profile_json:
{"core_classification": "enhanced_fork", "core_version": "v1.7.4", "cores": ["genesis_plus_gx_wide", "genesisplusgxwide", "genesisplusgx-wide"], "display_name": "Sega - MS/GG/MD/CD (Genesis Plus GX Wide)", "emulator": "Genesis Plus GX Wide", "files": [{"name": "bios_CD_U.bin", "region": ["north-america"], "required": true, "size": 131072, "source_ref": "core/loadrom.c:408", "system": "sega-megacd"}, {"name": "bios_CD_E.bin", "region": ["europe"], "required": true, "size": 131072, "source_ref": "core/loadrom.c:411", "system": "sega-megacd"}, {"name": "bios_CD_J.bin", "region": ["japan"], "required": true, "size": 131072, "source_ref": "core/loadrom.c:414", "system": "sega-megacd"}, {"name": "bios_U.sms", "region": ["north-america"], "required": false, "source_ref": "core/loadrom.c:512", "system": "sega-mastersystem"}, {"name": "bios_E.sms", "region": ["europe"], "required": false, "source_ref": "core/loadrom.c:515", "system": "sega-mastersystem"}, {"name": "bios_J.sms", "region": ["japan"], "required": false, "source_ref": "core/loadrom.c:518", "system": "sega-mastersystem"}, {"name": "bios.gg", "required": false, "source_ref": "core/loadrom.c:481", "system": "sega-gamegear"}, {"name": "bios_MD.bin", "required": false, "size": 2048, "source_ref": "libretro/libretro.c:3939", "system": "sega-megadrive"}, {"name": "ggenie.bin", "required": false, "size": 32768, "source_ref": "core/cart_hw/ggenie.c:64, libretro/libretro.c:3803", "system": "sega-megadrive"}, {"name": "areplay.bin", "required": false, "size": 65536, "source_ref": "core/cart_hw/areplay.c:64, libretro/libretro.c:3804", "system": "sega-megadrive"}, {"name": "sk.bin", "required": false, "size": 2097152, "source_ref": "core/cart_hw/md_cart.c:750", "system": "sega-megadrive", "validation": ["size"]}, {"name": "sk2chip.bin", "required": false, "size": 262144, "source_ref": "core/cart_hw/md_cart.c:756", "system": "sega-megadrive", "validation": ["size"]}], "notes": "Widescreen hack of Genesis Plus GX by heyjoeway. Adds automatic\nwidescreen rendering to Mega Drive games. BIOS loading identical to\nstandard Genesis Plus GX (libretro.c:3547-3558).\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/Genesis-Plus-GX-Wide", "source_commit": "b7ad005431f5f0b55e559f6d598d1ed2479bf13b", "systems": ["sega-megadrive", "sega-megacd", "sega-mastersystem", "sega-gamegear", "sega-sg1000", "sega-pico"], "type": "libretro", "upstream": "https://github.com/ekeeke/Genesis-Plus-GX"}


id: geolith
name: Geolith
type: libretro
classification: official_port
source: https://github.com/libretro/geolith-libretro
upstream: https://gitlab.com/jgemu/geolith
source_commit: d0297113924848c60866e980a420d14ca7208d56
profile_json:
{"core_classification": "official_port", "core_version": "0.4.1", "cores": ["geolith"], "display_name": "SNK - Neo Geo AES/MVS (Geolith)", "emulator": "Geolith", "files": [{"md5": "ad9585c72130c56f04ae26aae87c289d", "name": "aes.zip", "note": "Neo Geo AES System ROMs. Opened when System Type is AES (default).", "required": true, "source_ref": "libretro/libretro.c:1231-1234, jg.c:213-214", "system": "snk-neogeo-aes"}, {"md5": "00dad01abdbf8ea9e79ad2fe11bdb182", "name": "neogeo.zip", "note": "Neo Geo MVS System ROMs. Opened for MVS and Universe BIOS modes.", "required": true, "source_ref": "libretro/libretro.c:1231-1234, jg.c:215-216", "system": "snk-neogeo-mvs"}, {"md5": "006a881532f2caffc3fe9fb5593f2ed5", "name": "neocd.zip", "note": "Neo Geo CD Front/Top Loader System ROMs. Opened only when CD System is front or top loader.", "required": false, "source_ref": "libretro/libretro.c:1222-1229, jg.c:217-218", "system": "snk-neogeo-cd"}, {"md5": "b31a246b69493c35194fe0bac120dc37", "name": "neocdz.zip", "note": "Neo Geo CDZ System ROMs. Opened for CDZ (default) and CD Universe BIOS; also supplies 000-lo.lo to Front/Top Loader mode.", "required": true, "source_ref": "libretro/libretro.c:1222-1248, jg.c:219-220", "system": "snk-neogeo-cd"}, {"md5": "0e369df30a70e45547cef9e4078dc511", "name": "irrmaze.zip", "note": "The Irritating Maze auxiliary BIOS. Loaded in MVS mode for trackball support; on failure the game runs without trackball.", "required": false, "source_ref": "libretro/libretro.c:1300-1311, jg.c:221-222", "system": "snk-neogeo-mvs"}, {"archive": "aes.zip", "crc32": "d27a71f1", "name": "neo-epo.bin", "note": "AES 68K BIOS, non-Japan regions. Default for Region USA.", "required": true, "size": 131072, "source_ref": "src/geo.c:178-181", "system": "snk-neogeo-aes"}, {"archive": "aes.zip", "crc32": "16d0c132", "name": "neo-po.bin", "note": "AES 68K BIOS, Japan region.", "required": false, "size": 131072, "source_ref": "src/geo.c:178-181", "system": "snk-neogeo-aes"}, {"archive": "aes.zip", "crc32": "5a86cff2", "name": "000-lo.lo", "note": "Zoom lookup table.", "required": true, "size": 131072, "source_ref": "src/geo.c:234-243", "system": "snk-neogeo-aes"}, {"archive": "neogeo.zip", "crc32": "e72943de", "name": "sp-u2.sp1", "note": "MVS 68K BIOS, USA. Default for Region USA.", "required": true, "size": 131072, "source_ref": "src/geo.c:183-198", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "dff6d41f", "name": "japan-j3.bin", "note": "MVS 68K BIOS, Japan.", "required": false, "size": 131072, "source_ref": "src/geo.c:183-198", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "03cc9f6a", "name": "sp-45.sp1", "note": "MVS 68K BIOS, Asia.", "required": false, "size": 524288, "source_ref": "src/geo.c:183-198", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "9036d879", "name": "sp-s2.sp1", "note": "MVS 68K BIOS, Europe.", "required": false, "size": 131072, "source_ref": "src/geo.c:183-198", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "a7aab458", "name": "uni-bios_4_0.rom", "note": "Universe BIOS 4.0, loaded when System Type is Universe BIOS. Emulated hardware type set by the geolith_unibios_hw option.", "required": false, "size": 131072, "source_ref": "src/geo.c:200-203", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "5a86cff2", "name": "000-lo.lo", "note": "Zoom lookup table.", "required": true, "size": 131072, "source_ref": "src/geo.c:234-243", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "c2ea0cfd", "name": "sfix.sfix", "note": "System FIX layer tiles. Loaded for MVS and Universe BIOS modes.", "required": true, "size": 131072, "source_ref": "src/geo.c:245-255", "system": "snk-neogeo-mvs"}, {"archive": "neogeo.zip", "crc32": "94416d67", "name": "sm1.sm1", "note": "Z80 sound BIOS. Loaded for MVS and Universe BIOS modes.", "required": true, "size": 131072, "source_ref": "src/geo.c:257-267", "system": "snk-neogeo-mvs"}, {"archive": "neocd.zip", "name": "front-sp1.bin", "note": "Neo Geo CD Front Loader 68K BIOS.", "required": false, "source_ref": "src/geo.c:204-207", "system": "snk-neogeo-cd"}, {"archive": "neocd.zip", "name": "top-sp1.bin", "note": "Neo Geo CD Top Loader 68K BIOS.", "required": false, "source_ref": "src/geo.c:208-211", "system": "snk-neogeo-cd"}, {"archive": "neocd.zip", "crc32": "5a86cff2", "name": "000-lo.lo", "note": "Zoom lookup table. Extraction is attempted but absence is tolerated in Front/Top Loader mode; the copy in neocdz.zip is used instead.", "required": false, "size": 131072, "source_ref": "src/geo.c:234-243", "system": "snk-neogeo-cd"}, {"archive": "neocdz.zip", "name": "neocd.bin", "note": "Neo Geo CDZ 68K BIOS. Default for CD content.", "required": true, "source_ref": "src/geo.c:212-215", "system": "snk-neogeo-cd"}, {"archive": "neocdz.zip", "name": "uni-bioscd33.rom", "note": "Universe BIOS CD 3.3, loaded when CD System is CD Universe BIOS.", "required": false, "source_ref": "src/geo.c:216-219", "system": "snk-neogeo-cd"}, {"archive": "neocdz.zip", "crc32": "5a86cff2", "name": "000-lo.lo", "note": "Zoom lookup table. Read from neocdz.zip in every CD mode, including Front/Top Loader.", "required": true, "size": 131072, "source_ref": "src/geo.c:234-243, 273-285, libretro/libretro.c:1241-1248", "system": "snk-neogeo-cd"}, {"archive": "irrmaze.zip", "name": "236-bios.sp1", "note": "The Irritating Maze auxiliary 68K BIOS, replaces the MVS BIOS to enable trackball input.", "required": false, "source_ref": "src/geo.c:286-299, libretro/libretro.c:1300-1311", "system": "snk-neogeo-mvs"}], "notes": "Geolith emulates the Neo Geo AES, MVS, CD, and CDZ. Cartridge systems use\n.NEO format ROMs; CD systems use .cue or .chd disc images. System ROMs come\nfrom MAME-format ZIP archives in the system directory.\n\nCartridge content opens aes.zip (System Type = AES, default) or neogeo.zip\n(MVS and Universe BIOS) (libretro/libretro.c:1231-1234). CD content opens\nneocd.zip (Front/Top Loader) or neocdz.zip (CDZ, default, and CD Universe\nBIOS) (libretro/libretro.c:1222-1230); Front/Top Loader additionally reads\n000-lo.lo from neocdz.zip, so neocdz.zip is needed in every CD mode\n(libretro/libretro.c:1241-1248). The Irritating Maze in MVS mode loads\n236-bios.sp1 from irrmaze.zip for trackball support; without it the game\nruns but the trackball does not work (libretro/libretro.c:1300-1311).\n\nInside the opened archive, members are extracted by exact filename\n(src/geo.c:174-271). One 68K BIOS is selected by system type and region\n(defaults: System Type AES, Region USA):\n  - AES Japan:          neo-po.bin\n  - AES other regions:  neo-epo.bin\n  - MVS USA:            sp-u2.sp1\n  - MVS Japan:          japan-j3.bin\n  - MVS Asia:           sp-45.sp1\n  - MVS Europe:         sp-s2.sp1\n  - Universe BIOS:      uni-bios_4_0.rom\n  - CD Front Loader:    front-sp1.bin\n  - CD Top Loader:      top-sp1.bin\n  - CDZ:                neocd.bin\n  - CD Universe BIOS:   uni-bioscd33.rom\n000-lo.lo is required in every mode; only the Front/Top Loader tolerates\nits absence from neocd.zip because it comes from neocdz.zip instead\n(src/geo.c:234-243, 273-285). sfix.sfix and sm1.sm1 are required for MVS\nand Universe BIOS modes only (src/geo.c:245-267).\n\nThe core performs no hash or size validation on System ROMs. CD BIOS family\ndetection and the optional CD speed hack patches use byte patterns and\napply only when the 68K BIOS is at least 512 KiB (src/geo_cd.c:1837-1859,\n1904-1924). Upstream declares the expected archive MD5s through the Jolly\nGood API BIOS list (jg.c:212-223); the md5 fields on the archives below\nare copied from it.\n", "profiled_date": "2026-08-07", "source": "https://github.com/libretro/geolith-libretro", "source_commit": "d0297113924848c60866e980a420d14ca7208d56", "systems": ["snk-neogeo-mvs", "snk-neogeo-aes", "snk-neogeo-cd"], "type": "libretro", "upstream": "https://gitlab.com/jgemu/geolith", "upstream_commit": "7ed2ef95a446ffb9bf17b6536d24c108310c94da"}


id: gme
name: Game Music Emu
type: libretro
classification: pure_libretro
source: https://github.com/libretro/libretro-gme
upstream: https://github.com/libgme/game-music-emu
source_commit: 495431b0f5951b9428253064370ac1272994c657
profile_json:
{"core_classification": "pure_libretro", "core_version": "Git", "cores": ["gme"], "display_name": "Game Music Emu", "emulator": "Game Music Emu", "files": [], "notes": "Libretro wrapper around Blargg's Game Music Emu library. Plays chiptune music files: NSF/NSFE (NES), SPC (SNES), GBS (Game Boy), VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum), SAP (Atari), KSS (MSX), GYM (Genesis). Loads music files as content.\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/libretro-gme", "source_commit": "495431b0f5951b9428253064370ac1272994c657", "systems": [], "type": "libretro", "upstream": "https://github.com/libgme/game-music-emu"}


id: gong
name: Gong
type: game
classification: pure_libretro
source: https://github.com/libretro/gong
upstream: https://danzaidan.itch.io/
source_commit: 11d98233f9bba2dec60cae555b196684fd9d2aa5
profile_json:
{"core_classification": "pure_libretro", "core_version": "1.0", "cores": ["gong"], "display_name": "Gong", "emulator": "Gong", "files": [], "notes": "Pong clone. Self-contained single-file core, all rendering programmatic. Original code by Dan Zaidan, ported to libretro by Brad Parker.\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/gong", "source_commit": "11d98233f9bba2dec60cae555b196684fd9d2aa5", "systems": [], "type": "game", "upstream": "https://danzaidan.itch.io/"}


id: gopher2600
name: Gopher2600
type: standalone
classification: other
source: https://github.com/JetSetIlly/Gopher2600
upstream: https://github.com/JetSetIlly/Gopher2600
source_commit: 6bfd0abeb61ff109e3e354efad8274da1ac629d6
profile_json:
{"core_classification": "other", "core_version": "v0.57.0", "cores": ["gopher2600"], "display_name": "Atari - 2600 (Gopher2600)", "emulator": "Gopher2600", "files": [{"aliases": ["Supercharger.BIOS.bin", "Supercharger_BIOS.bin", "supercharger_bios.bin", "SUPERCHARGER_BIOS.bin"], "description": "Starpath Supercharger BIOS, required to load a tape held as WAV or MP3", "hle_fallback": true, "md5": "4565c1a7abce773e53c75b35414adefd", "name": "Supercharger BIOS.bin", "required": false, "size": 2048, "source_ref": "hardware/memory/cartridge/supercharger/bios.go:30-36,45,53-116,141", "system": "atari-2600", "validation": ["size", "md5"]}, {"aliases": ["Supercharger_BIOS_PAL.bin", "SUPERCHARGER_BIOS_PAL.bin"], "description": "PAL Supercharger BIOS, selected when the loader resolves a PAL specification", "hle_fallback": true, "md5": "4a8c743396b8ad69d97e6fd3dd3e3132", "name": "Supercharger BIOS PAL.bin", "required": false, "size": 2048, "source_ref": "hardware/memory/cartridge/supercharger/bios.go:38-42,46,56-59,141", "system": "atari-2600", "validation": ["size", "md5"]}, {"description": "Schweber chip image, the load that turns the Supercharger into the demo unit", "md5": "0a98bc3d53a0965de87fc77377b5a0db", "name": "Schweber OQ.bin", "note": "Recognised by the MD5 of the 256 bytes at 0x300, so the name is the one the dump carries rather than one the code fixes. The carousel ROMs are only read once this image has been accepted.", "required": false, "size": 2048, "source_ref": "hardware/memory/cartridge/supercharger/demounit.go:56-78, hardware/memory/cartridge/supercharger/supercharger.go:107,115, hardware/memory/cartridge/fingerprint.go:333", "system": "atari-2600", "validation": ["md5"]}, {"description": "Demo unit carousel ROM 1, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 1P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 2, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 2P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 3, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 3P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 4, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 4P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 5, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 5P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 6, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 6P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 7, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 7P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Demo unit carousel ROM 8, read from the directory of the loaded image", "name": "Starpath Demonstration Unit 8P.bin", "required": false, "size": 8192, "source_ref": "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200", "system": "atari-2600", "validation": ["size"]}, {"description": "Stella cartridge properties database, keyed by cartridge MD5", "name": "stella.pro", "required": false, "source_ref": "properties/properties.go:28,48-58; debugger/debugger.go:356", "system": "atari-2600"}], "mode": "standalone", "notes": "Atari 2600 emulator written in Go. The 6507, TIA and RIOT are emulated in\nsoftware and the console needs no ROM of its own, so a plain cartridge boots\nwith nothing supplied.\n\nSupercharger emulation is the only path that reads a BIOS. NewSupercharger\nbranches three ways (supercharger.go:93-119). A tape held as WAV or MP3 sets\nLoader.IsSoundData and calls loadBIOS, and the error is returned, so the\ncartridge fails to attach without the file. A demo unit image calls loadBIOS\nand substitutes fastloadOnlyBIOS() on failure. Everything else, including the\nusual Supercharger BIN, takes fastloadOnlyBIOS() without ever looking for the\nfile: a 2048 byte stub holding a touch of the tape load register and the CPU\njump table (bios.go:151-166).\n\nloadBIOS reads the current working directory, then the directory holding the\ntape or BIN, then the configuration directory (bios.go:53-116). Each candidate\nname is tried in turn and the content is gated on MD5 before the caller checks\nthe 2048 byte length, so a file under the right name with the wrong content is\nrefused. ReqSpec selects the PAL table and the PAL hash (bios.go:56-59);\nReqSpec comes from the television specification, the stella.pro entry or the\nfilename (cartridgeloader/loader.go:194-201).\n\nThe demo unit is recognised by MD5 of the 256 bytes at 0x300 of the loaded\nimage (demounit.go:58,78). When that image carries more than 2048 bytes it\nholds the Schweber chip and the carousel together; otherwise the eight ROMs\nare read from the directory of the loaded file (demounit_controller.go:\n178-200). A read error or a length other than 8192 logs and returns nil, and\nthe peripheral is left unplugged.\n\nstella.pro is Stella's cartridge properties database, read from the\nconfiguration directory (properties.go:28,48-58). It is loaded by\nNewDebugger (debugger.go:356), which drives play as well as debug\n(gopher2600.go:261,307,326), so it applies to the plain `gopher2600 <rom>`\ninvocation. A missing file is logged and start-up continues; the ROM selector\nthen falls back to the filename and no television specification is inferred\nfrom the cartridge name.\n\nThe ROM selector also reads a Named_Boxarts directory from the configuration\ndirectory, listing it at start-up and fuzzy matching the cartridge name\nagainst the entries before reading one image (win_rom_select.go:92,127-138,\n678-689). It holds the box art of the libretro-thumbnails Atari 2600 set,\npinned upstream at commit 4ea759821724d6c7bcf2f46020d79fc4270ed2f6\n(win_rom_select.go:91). Its content is whatever the user copies in and no\nname is fixed by the code, so it carries no file entry here.\n\nFonts, shaders, bevels, the CPU instruction table and the Movie Cart core are\ncompiled in with go:embed. The remaining paths under the configuration\ndirectory are written by the emulator or authored by hand: preferences,\ndebugger_imgui.ini, managerState, managerHotkeys, savekey, fa2_nvram,\nelf_nvram, regression, patches and setupDB. ARM map files and DWARF sources\nare read from a project build tree beside the ROM. AtariVox speech calls the\nfestival binary as a process, with the path taken from preferences\n(atarivox_preferences.go:51).\n", "profiled_date": "2026-08-08", "source": "https://github.com/JetSetIlly/Gopher2600", "source_commit": "6bfd0abeb61ff109e3e354efad8274da1ac629d6", "systems": ["atari-2600"], "type": "standalone", "upstream": "https://github.com/JetSetIlly/Gopher2600"}


id: gopher64
name: gopher64
type: standalone
classification: other
source: https://github.com/gopher64/gopher64
upstream: https://github.com/gopher64/gopher64
source_commit: efe78e544a96ac6724a2c2651d8f0a62044e7467
profile_json:
{"core_classification": "other", "core_version": "v1.1.34", "cores": ["gopher64"], "display_name": "Nintendo - Nintendo 64 (gopher64)", "emulator": "gopher64", "files": [], "mode": "standalone", "notes": "Nintendo 64 emulator written in Rust by Logan McNaughton, with parallel-rdp\ndriving the RDP and rcheevos providing RetroAchievements. Portions of the\nemulation are adapted from mupen64plus and ares. ES-DE and RetroBat both run\nthe release binary, RetroBat in portable mode.\n\nThe boot chain reads no file. Both PIF ROMs are compiled in as 1984 byte\narrays, the size of the PIF ROM window (src/device/pif/rom.rs:1,90;\nsrc/device/pif.rs:7). reset_pif installs the PAL image when the cartridge\ncountry code is one of DFIPSUXY and the NTSC image otherwise\n(src/device/pif.rs:252-257, src/device/cart/rom.rs:137-143), and the VR4300\nruns IPL1 and IPL2 out of that array: reads below the PIF RAM offset are\nserved from it and writes there panic (src/device/pif.rs:31-58). The CIC needs\nno file either. set_cic hashes the cartridge IPL3 region with SHA-256 and maps\nthe six known digests to a seed byte, with the 6102 seed as the fallback\n(src/device/cart/rom.rs:147-175).\n\n64DD is not emulated, so no IPL image is involved.\n\nA Transfer Pak port reads two files whose paths come from the configuration,\ngb_rom_path and gb_ram_path, and attaches them when both are set\n(src/lib.rs:194-200). The pair is a Game Boy cartridge and its save, supplied\nby the player: the loader takes the ROM as is and only inspects the tail of\nthe RAM for MBC3 clock state (src/device/controller/gbcart.rs:37-75), then\nwrites the RAM back on shutdown (src/lib.rs:276-288). The code fixes no name,\nsize or hash for either, so neither carries a file entry here.\n\nThe SC64 SD card image is created rather than obtained: an empty save is\nresized to 64 MB and FAT formatted on first access\n(src/device/cart/sc64.rs:4,34-38). Cartridges come from argv, plain or as the\nfirst matching entry of a zip or 7z archive (src/device.rs:188-256).\n\nEverything else under the configuration, data and cache directories is written\nby the emulator: config.json and cheats.json (src/ui/config.rs:99-111,134-146),\nretroachievements.json (src/lib.rs:209; src/retroachievements.rs:37,61),\nice_config.json from the netplay server response (src/ui/netplay.rs:713-716,\nsrc/netplay.rs:419), the eeprom, sram, flash, mempak, sdcard and romsave saves\nand the savestates (src/ui/storage.rs:212-232; src/savestates.rs:179,236). For\na netplay launch the GUI serialises the cheats to the cache directory, passes\nthem to a re-exec of itself through the hidden --cheats flag and deletes the\nfile afterwards (src/ui/gui.rs:583-593,600-615,630; src/lib.rs:141-147).\nportable.txt is tested for existence only, to move those three directories\nbeside the executable (src/ui.rs:164-178).\n\nCompiled-in data: the cheat database (src/cheats.rs:31), the No-Intro\nNintendo 64 export that names entries in the ROM browser\n(src/ui/gui.rs:688-690), the RobotoMono face handed to SDL_ttf from memory\n(src/ui/video.rs:109, src/ui/input_profile.rs:99), the parallel-rdp SPIR-V\nmodules (parallel-rdp/spirv.hpp and parallel-rdp/spirv_crt.hpp, used at\nparallel-rdp/interface.cpp:4-5,615) and the Slint translations bundled at\nbuild time (build.rs:11).\n", "profiled_date": "2026-08-08", "source": "https://github.com/gopher64/gopher64", "source_commit": "efe78e544a96ac6724a2c2651d8f0a62044e7467", "systems": ["nintendo-64"], "type": "standalone", "upstream": "https://github.com/gopher64/gopher64"}


id: gpsp
name: gpSP
type: libretro
classification: community_fork
source: https://github.com/libretro/gpsp
upstream: https://github.com/davidgfnet/gpsp
source_commit: 5b6e751f4abf368509146cd143c949c1946ac1ae
profile_json:
{"core_classification": "community_fork", "core_version": "Git", "cores": ["gpsp"], "display_name": "Nintendo - Game Boy Advance (gpSP)", "emulator": "gpSP", "files": [{"description": "Official GBA BIOS", "hle_fallback": true, "name": "gba_bios.bin", "note": "Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot animation.", "required": false, "size": 16384, "source_ref": "libretro/libretro.c:1214, gba_memory.c:2568-2580", "system": "nintendo-gba"}], "notes": "gpSP is a Game Boy Advance emulator originally by Exophase, forked by\nnotaz for GP2X/Pandora, now maintained by davidgfnet for libretro.\nShips a built-in open-source BIOS (bios/open_gba_bios.bin) compiled\nfrom bios/source/ that covers most games.\n\nThe core option gpsp_bios controls BIOS selection:\n  auto     (default) - try official gba_bios.bin, fall back to built-in\n  builtin  - always use the built-in open-source BIOS\n  official - try gba_bios.bin, warn and fall back to built-in if missing\n\nBIOS loading path (libretro/libretro.c:1200-1236):\n  1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)\n  2. Append \"/gba_bios.bin\"\n  3. load_bios() reads 0x4000 (16 KB) into bios_rom[]\n  4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode)\n  5. On failure, memcpy open_gba_bios_rom[] as fallback\n\nThe official BIOS improves compatibility for games that rely on\nprecise SWI behavior or BIOS checksum verification.\n\nUpstream (notaz/Exophase) required the official BIOS with no fallback.\nThe built-in open-source BIOS is a davidgfnet/libretro addition.\n", "platform_details": {"gba": {"bios_size": 16384, "hle_bios": true, "note": "The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source\nreimplementation compiled from bios/source/. It implements most\nSWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait,\narithmetic, decompression, sound, multiboot).\n\nNo hash or checksum verification is performed. The only check\nis bios_rom[0] == 0x18 (ARM branch at reset vector).\n\nThe bios_type enum (main.h:56-61) defines three modes:\n  auto_detect  - try official first, fall back to built-in\n  builtin_bios - skip file load entirely, use open_gba_bios_rom\n  official_bios - try file, warn on failure, still fall back\n", "source_ref": "libretro/libretro.c:1200-1236, bios/source/core.s"}}, "profiled_date": "2026-03-23", "source": "https://github.com/libretro/gpsp", "source_commit": "5b6e751f4abf368509146cd143c949c1946ac1ae", "systems": ["nintendo-gba"], "type": "libretro", "upstream": "https://github.com/davidgfnet/gpsp"}


id: groovymame
name: GroovyMAME
type: standalone
classification: enhanced_fork
source: https://github.com/antonioginer/GroovyMAME
upstream: https://github.com/mamedev/mame
source_commit: e3fa130578a12f332f5e403d52a0be1e0395103e
profile_json:
{"core_classification": "enhanced_fork", "core_version": "0.288", "cores": ["groovymame"], "display_name": "Arcade (GroovyMAME)", "emulator": "GroovyMAME", "files": [{"category": "bios_zip", "contents": [{"crc32": "9036d879", "name": "sp-s2.sp1", "sha1": "4f5ed7105b7128794654ce82b51723e16e389543", "size": 131072}, {"crc32": "c7f2fa45", "name": "sp-s.sp1", "sha1": "09576ff20b4d6b365e78e6a5698ea450262697cd", "size": 131072}, {"crc32": "03cc9f6a", "name": "sp-45.sp1", "sha1": "cdf1f49e3ff2bac528c21ed28449cf35b7957dc1", "size": 524288}, {"crc32": "91b64be3", "name": "sp-s3.sp1", "sha1": "720a3e20d26818632aedf2c2fd16c54f213543e1", "size": 131072}, {"crc32": "e72943de", "name": "sp-u2.sp1", "sha1": "5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb", "size": 131072}, {"crc32": "2723a5b5", "name": "sp-e.sp1", "sha1": "5dbff7531cf04886cde3ef022fb5ca687573dcb8", "size": 131072}, {"crc32": "62f021f4", "name": "sp1-u2", "sha1": "62d372269e1b3161c64ae21123655a0a22ffd1bb", "size": 131072}, {"crc32": "1179a30f", "name": "sp1-u4.bin", "sha1": "866817f47aa84d903d0b819d61f6ef356893d16a", "size": 131072}, {"crc32": "2025b7a2", "name": "sp1-u3.bin", "sha1": "73d774746196f377111cd7aa051cc8bb5dd948b3", "size": 131072}, {"crc32": "f0e8f27d", "name": "vs-bios.rom", "sha1": "ecf01eda815909f1facec62abf3594eaa8d11075", "size": 131072}, {"crc32": "acede59c", "name": "sp-j2.sp1", "sha1": "b6f97acd282fd7e94d9426078a90f059b5e9dd91", "size": 131072}, {"crc32": "9fb0abe4", "name": "sp1.jipan.1024", "sha1": "18a987ce2229df79a8cf6a84f968f0e42ce4e59d", "size": 131072}, {"crc32": "dff6d41f", "name": "japan-j3.bin", "sha1": "e92910e20092577a4523a6b39d578a71d4de7085", "size": 131072}, {"crc32": "fbc6d469", "name": "sp1-j3.bin", "sha1": "46b2b409b5b68869e367b40c846373623edb632a", "size": 131072}, {"crc32": "486cb450", "name": "sp-j3.sp1", "sha1": "52c21ea817928904b80745a8c8d15cbad61e1dc1", "size": 524288}, {"crc32": "162f0ebe", "name": "sp-1v1_3db8c.bin", "sha1": "fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271", "size": 131072}, {"crc32": "a7aab458", "name": "uni-bios_4_0.rom", "sha1": "938a0bda7d9a357240718c2cec319878d36b8f72", "size": 131072}, {"crc32": "24858466", "name": "uni-bios_3_3.rom", "sha1": "0ad92efb0c2338426635e0159d1f60b4473d0785", "size": 131072}, {"crc32": "a4e8b9b3", "name": "uni-bios_3_2.rom", "sha1": "c92f18c3f1edda543d264ecd0ea915240e7c8258", "size": 131072}, {"crc32": "0c58093f", "name": "uni-bios_3_1.rom", "sha1": "29329a3448c2505e1ff45ffa75e61e9693165153", "size": 131072}, {"crc32": "a97c89a9", "name": "uni-bios_3_0.rom", "sha1": "97a5eff3b119062f10e31ad6f04fe4b90d366e7f", "size": 131072}, {"crc32": "27664eb5", "name": "uni-bios_2_3.rom", "sha1": "5b02900a3ccf3df168bdcfc98458136fd2b92ac0", "size": 131072}, {"crc32": "601720ae", "name": "uni-bios_2_3o.rom", "sha1": "1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9", "size": 131072}, {"crc32": "2d50996a", "name": "uni-bios_2_2.rom", "sha1": "5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c", "size": 131072}, {"crc32": "8dabf76b", "name": "uni-bios_2_1.rom", "sha1": "c23732c4491d966cf0373c65c83c7a4e88f0082c", "size": 131072}, {"crc32": "0c12c2ad", "name": "uni-bios_2_0.rom", "sha1": "37bcd4d30f3892078b46841d895a6eff16dc921e", "size": 131072}, {"crc32": "b24b44a0", "name": "uni-bios_1_3.rom", "sha1": "eca8851d30557b97c309a0d9f4a9d20e5b14af4e", "size": 131072}, {"crc32": "4fa698e9", "name": "uni-bios_1_2.rom", "sha1": "682e13ec1c42beaa2d04473967840c88fd52c75a", "size": 131072}, {"crc32": "e19d3ce9", "name": "uni-bios_1_2o.rom", "sha1": "af88ef837f44a3af2d7144bb46a37c8512b67770", "size": 131072}, {"crc32": "5dda0d84", "name": "uni-bios_1_1.rom", "sha1": "4153d533c02926a2577e49c32657214781ff29b7", "size": 131072}, {"crc32": "0ce453a0", "name": "uni-bios_1_0.rom", "sha1": "3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9", "size": 131072}, {"crc32": "94416d67", "name": "sm1.sm1", "sha1": "42f9d7ddd6c0931fd64226a60dc73602b2819dcf", "size": 131072}, {"crc32": "94416d67", "name": "sm1.sm1", "sha1": "42f9d7ddd6c0931fd64226a60dc73602b2819dcf", "size": 131072}, {"crc32": "5a86cff2", "name": "000-lo.lo", "sha1": "5992277debadeb64d1c1c64b0a92d9293eaf7e4a", "size": 131072}, {"crc32": "c2ea0cfd", "name": "sfix.sfix", "sha1": "fd4a618cdcdbf849374f0a50dd8efe9dbab706c3", "size": 131072}], "name": "neogeo.zip", "required": true, "source_ref": "src/mame/neogeo/neogeo.cpp:2432", "system": "snk-neogeo-mvs"}, {"category": "bios_zip", "contents": [{"crc32": "78c15fa2", "name": "pgm_p02s.u20", "sha1": "885a6558e022602cc6f482ac9667ba9f61e75092", "size": 131072}, {"crc32": "e42b166e", "name": "pgm_p01s.u20", "sha1": "2a9df9ec746b14b74fae48b1a438da14973702ea", "size": 131072}, {"crc32": "1a7123a0", "name": "pgm_t01s.rom", "sha1": "cc567f577bfbf45427b54d6695b11b74f2578af3", "size": 2097152}, {"crc32": "45ae7159", "name": "pgm_m01s.rom", "sha1": "d3ed3ff3464557fd0df6b069b2e431528b0ebfa8", "size": 2097152}], "name": "pgm.zip", "required": true, "source_ref": "src/mame/igs/pgm.cpp:5545", "system": "igs-pgm"}, {"category": "bios_zip", "contents": [{"crc32": "d4895685", "name": "epr-21576h.ic27", "sha1": "91424d481ff99a8d3f4c45cea6d3f0eada049a6d", "size": 2097152}, {"crc32": "d2a1c6bf", "name": "epr-21576g.ic27", "sha1": "6d27d71aec4dfba98f66316ae74a1426d567698a", "size": 2097152}, {"crc32": "08c0add7", "name": "epr-21576e.ic27", "sha1": "e7c1a7673cb2ccb21748ef44105e46d1bad7266d", "size": 2097152}, {"crc32": "3b2afa7b", "name": "epr-21576d.ic27", "sha1": "d007e1d321c198a38c5baff86eb2ab84385d150a", "size": 2097152}, {"bad_dump": true, "crc32": "4599ad13", "name": "epr-21576c.ic27", "sha1": "7e730e9452a792d76f210c33a955d385538682c7", "size": 2097152}, {"crc32": "755a6e07", "name": "epr-21576b.ic27", "sha1": "7e8b8ccfc063144d89668e7224dcd8a36c54f3b3", "size": 2097152}, {"crc32": "cedfe439", "name": "epr-21576a.ic27", "sha1": "f27798bf3d890863ef0c1d9dcb4e7782249dca27", "size": 2097152}, {"crc32": "9dad3495", "name": "epr-21576.ic27", "sha1": "5fb66f9a2b68d120f059c72758e65d34f461044a", "size": 2097152}, {"crc32": "7b452946", "name": "epr-21578h.ic27", "sha1": "8e9f153bbada24b37066dc45b64a7bf0d4f26a9b", "size": 2097152}, {"crc32": "55413214", "name": "epr-21578g.ic27", "sha1": "bd2748365a9fc1821c9369aa7155d7c41c4df43e", "size": 2097152}, {"crc32": "628a27fd", "name": "epr-21578f.ic27", "sha1": "dae7add616b1a2478f00608823e88c3b82a0e78f", "size": 2097152}, {"crc32": "087f09a3", "name": "epr-21578e.ic27", "sha1": "0418eb2cf9766f0b1b874a4e92528779e22c0a4a", "size": 2097152}, {"crc32": "dfd5f42a", "name": "epr-21578d.ic27", "sha1": "614a0db4743a5e5a206190d6786ade24325afbfd", "size": 2097152}, {"crc32": "6c9aad83", "name": "epr-21578a.ic27", "sha1": "555918de76d8dbee2a97d8a95297ef694b3e803f", "size": 2097152}, {"crc32": "fdf17452", "name": "epr-21577h.ic27", "sha1": "5f3e4b677f0046ce690a4f096b0481e5dd8bb6e6", "size": 2097152}, {"crc32": "25f64af7", "name": "epr-21577g.ic27", "sha1": "99f9e6cc0642319bd2da492611220540add573e8", "size": 2097152}, {"crc32": "cf36e97b", "name": "epr-21577e.ic27", "sha1": "b085305982e7572e58b03a9d35f17ae319c3bbc6", "size": 2097152}, {"crc32": "60ddcbbe", "name": "epr-21577d.ic27", "sha1": "58b15096d269d6df617ca1810b66b47deb184958", "size": 2097152}, {"crc32": "969dc491", "name": "epr-21577a.ic27", "sha1": "581d1eae328b87b67508a7586ffc60cee256f70f", "size": 2097152}, {"crc32": "33513691", "name": "epr-21579d.ic27", "sha1": "b1d8c7c516e1471a788fcf7a02a794ad2f05aeeb", "size": 2097152}, {"crc32": "71f9c918", "name": "epr-21579.ic27", "sha1": "d15af8b947f41eea7c203b565cd403e3f37a2017", "size": 2097152}, {"crc32": "7a50fab9", "name": "boot_rom_64b8.ic606", "sha1": "ef79f448e0bf735d1264ad4f051d24178822110f", "size": 524288}, {"crc32": "de7cfdb0", "name": "develop110.ic27", "sha1": "da16800edc4d49f70481c124d487f544c2fa8ce7", "size": 2097152}, {"crc32": "309a196a", "name": "develop.ic27", "sha1": "409b50371feb648f10efd6b7ac420bf08d9a3b5a", "size": 2097152}, {"crc32": "58e17c23", "name": "zukinver0930.ic25", "sha1": "19330f906accf1b859f56bbcedc2edff73747599", "size": 2097152}, {"crc32": "cce01f1f", "name": "epr-21576h_multi.ic27", "sha1": "cca17119ad13e3a4ef7cb6902a37b65d6a844aee", "size": 2097152}, {"bad_dump": true, "crc32": "d3d57af8", "name": "epr-21336a.ic27", "sha1": "0eb72c2a20ad8b86d442b77760eab5e89521d469", "size": 2097152}, {"crc32": "5b28f868", "name": "naomi_boot_2491.ic27", "sha1": "d101f58c69d9835e87a969688e43dc9b699b89d0", "size": 2097152}, {"crc32": "46dbe90f", "name": "epr-21580a.ic27", "sha1": "822b2ea8e254ea3ce66f0ea67e80a8c7e1125ec9", "size": 2097152}, {"crc32": "7c9fea46", "name": "315-6188.ic31", "sha1": "f77c07ae65dfed18c1c4c632c8945be21d02ddaf", "size": 8244}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "naomi.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10917", "system": "sega-naomi"}, {"category": "bios_zip", "contents": [{"crc32": "297ea6ed", "name": "epr-23605c.ic27", "sha1": "cfbfe57c80e6ee86a101fa83aec0a01e00c0f42a", "size": 2097152}, {"crc32": "3a3242d4", "name": "epr-23605b.ic27", "sha1": "aaca4df51ef91d926f8191d372f3dfe1d20d9484", "size": 2097152}, {"crc32": "7bc3fc2d", "name": "epr-23605a.ic27", "sha1": "a4a9531a7c66ff30046908cf71f6c7b6fb59c392", "size": 2097152}, {"crc32": "5731e446", "name": "epr-23605.ic27", "sha1": "787b0844fc408cf124c12405c095c59948709ea6", "size": 2097152}, {"crc32": "6ef1dd8e", "name": "epr-23608c.ic27", "sha1": "25ef957ec1c58fdaff5e89102002bca6c38832c5", "size": 2097152}, {"crc32": "a554b1e3", "name": "epr-23608b.ic27", "sha1": "343b727a3619d1c75a9b6d4cc156a9050447f155", "size": 2097152}, {"crc32": "e8f884d1", "name": "epr-23608a.ic27", "sha1": "28f4de747bb3cf860b9ebf897322fbc5d7c1e156", "size": 2097152}, {"crc32": "929cc3a6", "name": "epr-23608.ic27", "sha1": "47d00c818de23f733a4a33b1bbc72eb8aa729246", "size": 2097152}, {"crc32": "750e254b", "name": "epr-23607c.ic27", "sha1": "81d0b1a076c274c6bd7c53b65e7b80e14fe039e1", "size": 2097152}, {"crc32": "f308c5e9", "name": "epr-23607b.ic27", "sha1": "5470ab1cee6afecbd8ca8cf40f8fbe4ec2cb1471", "size": 2097152}, {"crc32": "2b55add2", "name": "epr-23607.ic27", "sha1": "547de5f97d3183c8cd069c4fa3c09f13d8b637d9", "size": 2097152}, {"crc32": "99e3751f", "name": "epr-23609b.ic27", "sha1": "8a244f75595c49d2a37a42ab96b6bab35163ca0e", "size": 2097152}, {"crc32": "de8e1267", "name": "epr-23610b.ic27", "sha1": "0b3a36446c308fcbfe3647df45c848091e8797f1", "size": 2097152}, {"crc32": "353fdbcd", "name": "epr-23605c_multi.ic27", "sha1": "a8b7dce572b74e02e65cb949b2c366c87625157f", "size": 2097152}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "naomi2.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10922", "system": "sega-naomi2"}, {"category": "bios_zip", "contents": [{"crc32": "08c0add7", "name": "epr-21576e.ic27", "sha1": "e7c1a7673cb2ccb21748ef44105e46d1bad7266d", "size": 2097152}, {"crc32": "d2a1c6bf", "name": "epr-21576g.ic27", "sha1": "6d27d71aec4dfba98f66316ae74a1426d567698a", "size": 2097152}, {"crc32": "d4895685", "name": "epr-21576h.ic27", "sha1": "91424d481ff99a8d3f4c45cea6d3f0eada049a6d", "size": 2097152}, {"crc32": "7b452946", "name": "epr-21578h.ic27", "sha1": "8e9f153bbada24b37066dc45b64a7bf0d4f26a9b", "size": 2097152}, {"crc32": "55413214", "name": "epr-21578g.ic27", "sha1": "bd2748365a9fc1821c9369aa7155d7c41c4df43e", "size": 2097152}, {"crc32": "087f09a3", "name": "epr-21578e.ic27", "sha1": "0418eb2cf9766f0b1b874a4e92528779e22c0a4a", "size": 2097152}, {"crc32": "fdf17452", "name": "epr-21577h.ic27", "sha1": "5f3e4b677f0046ce690a4f096b0481e5dd8bb6e6", "size": 2097152}, {"crc32": "25f64af7", "name": "epr-21577g.ic27", "sha1": "99f9e6cc0642319bd2da492611220540add573e8", "size": 2097152}, {"crc32": "cf36e97b", "name": "epr-21577e.ic27", "sha1": "b085305982e7572e58b03a9d35f17ae319c3bbc6", "size": 2097152}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "naomigd.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10923", "system": "sega-naomigd"}, {"category": "bios_zip", "contents": [{"crc32": "719b2b0b", "name": "bios0.ic23", "sha1": "b4c1a26bc8906d5275eb28c701dff2b9365bcdfa", "size": 131072}, {"crc32": "d3e80a9f", "name": "bios1.ic23", "sha1": "33024f9d51c04884c2b44ce146f340e7a857b959", "size": 131072}, {"crc32": "82a105f0", "name": "fpr-24363.ic48", "sha1": "5128fe2ddcced77332bdcab691c09958051fa564", "size": 131072}], "name": "awbios.zip", "required": true, "source_ref": "src/mame/sega/dc_atomiswave.cpp:1480", "system": "sammy-atomiswave"}, {"category": "bios_zip", "contents": [{"crc32": "065f8500", "name": "epr-21331.ic27", "sha1": "49a3881e8d76f952ef5e887200d77b4a415d47fe", "size": 2097152}, {"crc32": "9e3bfa1b", "name": "epr-21330.ic27", "sha1": "b539d38c767b0551b8e7956c1ff795de8bbe2fbc", "size": 2097152}, {"crc32": "d99e5b9b", "name": "epr-21329.ic27", "sha1": "453ffb41b6197cac6d12e7814bb1d7281ccf1659", "size": 2097152}, {"crc32": "bd6ce0ec", "name": "epr-21332.ic27", "sha1": "3d1ce5cb6978afe57967d8b53bc969259dd64749", "size": 2097152}, {"crc32": "ea74e967", "name": "hotd2biosproto.ic27", "sha1": "e4d037480eb6555d335a8ab9cd6c56122335586d", "size": 2097152}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "hod2bios.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10918"}, {"category": "bios_zip", "contents": [{"crc32": "12ed7c66", "name": "epr-21864.ic27", "sha1": "046be66e92eae766f3e05594aa837fc8888534ed", "size": 2097152}, {"crc32": "0615a4d1", "name": "epr-21863.ic27", "sha1": "2c6986580b84278af75f396229fdd587bebc1768", "size": 2097152}, {"crc32": "1f630716", "name": "epr-21862.ic27", "sha1": "8d157809770467c3e7618c6299f3b96b5f10518c", "size": 2097152}, {"crc32": "05128861", "name": "epr-21864p.ic27", "sha1": "5bdb320d84015b8429527a8eb4524958031862aa", "size": 2097152}, {"crc32": "f0cd4aaa", "name": "epr-21862p.ic27", "sha1": "9a9157992bf7a104c096efcdb8b02ceece186cbb", "size": 2097152}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "f355dlx.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10919"}, {"category": "bios_zip", "contents": [{"crc32": "62483677", "name": "epr-22851.ic27", "sha1": "3e3bcacf5f972c376b569f45307ee7fd0b5031b7", "size": 2097152}, {"crc32": "28aa539d", "name": "epr-22850.ic27", "sha1": "14485368656af80504b212da620179c49f84c1a2", "size": 2097152}, {"crc32": "121e009c", "name": "epr-22849.ic27", "sha1": "3beb91f660e60590491b209b6be8584b05a90548", "size": 2097152}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "f355bios.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10920"}, {"category": "bios_zip", "contents": [{"crc32": "a77c6b1c", "name": "epr-21802.ic27", "sha1": "bd50a6bb8fa9bac121b076e21ea048a83a240a48", "size": 2097152}, {"crc32": "a21bef24", "name": "epr-21801.ic27", "sha1": "c6c6ed09772b63a9a84ef0678fc1b7527484038a", "size": 2097152}, {"crc32": "fea29cbb", "name": "main_eeprom.bin", "sha1": "4099f1747aafa07db34f6e072cd9bfaa83bae10e", "size": 128}, {"crc32": "3ea24b6a", "name": "x76f100_eeprom.bin", "sha1": "3a730ebcf56e0060fef6b1b02eb2eb7cfb7e61dc", "size": 132}], "name": "airlbios.zip", "required": true, "source_ref": "src/mame/sega/naomi.cpp:10921"}, {"category": "bios_zip", "contents": [{"crc32": "f688ae60", "name": "epr-23603.ic8", "sha1": "1a31b6b1a4257fcb6ac6a91e67dd798f91505f48", "size": 524288}, {"crc32": "59ed40f4", "name": "epr-20091.ic8", "sha1": "eff0f54c70bce05ff3a289bf30b1027e1c8cd117", "size": 524288}, {"crc32": "d0e0889d", "name": "epr-19730.ic8", "sha1": "fae53107c894e0c41c49e191dbe706c9cd6e50bd", "size": 524288}, {"crc32": "2672f9d8", "name": "epr-17951a.ic8", "sha1": "63cf4a6432f6c87952f9cf3ab0f977aed2367303", "size": 524288}, {"crc32": "3e23c81f", "name": "epr-17740a.ic8", "sha1": "f9b282fd27693e9891843597b2e1823da3d23c7b", "size": 524288}, {"crc32": "5c5aa63d", "name": "epr-17740.ic8", "sha1": "06860d96923b81afbc21e0ad32ee19487d8ff6e7", "size": 524288}, {"crc32": "f7722da3", "name": "epr-17954a.ic8", "sha1": "af79cff317e5b57d49e463af16a9f616ed1eee08", "size": 524288}, {"crc32": "d1be2adf", "name": "epr-17952a.ic8", "sha1": "eaf1c3e5d602e1139d2090a78d7e19f04f916794", "size": 524288}, {"crc32": "4166c663", "name": "epr-17741a.ic8", "sha1": "cc41d30de06160083d77e0dc5d69e61fec7fdcb5", "size": 524288}, {"crc32": "e09d1f60", "name": "epr-19854.ic8", "sha1": "b55cdcb45b2a5b0b35e352cf7625f0bd659084df", "size": 524288}, {"crc32": "a4c47570", "name": "epr-17953a.ic8", "sha1": "9efc73717ec8a13417e65c54344ded9fc25bf5ef", "size": 524288}, {"crc32": "02daf123", "name": "epr-17742a.ic8", "sha1": "23185beb1ce9c09b8719e57d1adb7b28c8141fd5", "size": 524288}, {"crc32": "3dfeda92", "name": "stv110.bin", "sha1": "8eb33192a57df5f3a1dfb57263054867c6b2db6d", "size": 524288}, {"crc32": "728dbca3", "name": "stv1061.bin", "sha1": "0ed2030177f0aa8285645c395ae9ad9f568ab1d6", "size": 524288}, {"crc32": "15432ae2", "name": "stvbios.nv", "sha1": "7d9364d546f3d3f839ec36be148076f8d26a65a6", "size": 128}], "name": "stvbios.zip", "required": true, "source_ref": "src/mame/sega/stv.cpp:3949", "system": "sega-stv"}, {"category": "bios_zip", "contents": [{"crc32": "10dd9b76", "description": "6.0.0010 alternate version", "name": "6.0.0010a.bin", "sha1": "1fdf1f921bc395846a7c3180fbdbc4ca287a9670", "size": 1048576}, {"crc32": "5ffdfbf8", "description": "6.0.0009", "name": "6.0.0009.bin", "sha1": "605bc4967b749b4e6d13fc2ebb845ba956a259a7", "size": 1048576}, {"crc32": "ea2bf888", "description": "6.0.0010", "name": "6.0.0010.bin", "sha1": "c9c5b6f0d4f4f36620939b15dd2f128a74347e37", "size": 1048576}, {"crc32": "c3b021a4", "name": "fpr-24370b.ic6", "sha1": "1b6938a50fe0e4ae813864649eb103838c399ac0", "size": 4194304}, {"crc32": "f78d14d7", "name": "vid_bios.u504", "sha1": "f129787e487984edd23bf344f2e9500c85052275", "size": 65536}], "name": "lindbios.zip", "required": true, "source_ref": "src/mame/sega/lindbergh.cpp:639", "system": "sega-lindbergh"}, {"category": "bios_zip", "contents": [{"crc32": "ca7df0de", "name": "epr-24236a.ic50", "sha1": "504c74d5fc96c53ef9f7753e9e37fb8b39cb628c", "size": 2097152}, {"crc32": "25f2ef00", "name": "epr-24328.ic50", "sha1": "e58dec9f171e52b3ded213b3fcd9a0de8a438076", "size": 2097152}, {"crc32": "03ec3805", "name": "epr-24328a.ic50", "sha1": "a8fbaea826ca257be0b2b86952f247254929e046", "size": 2097152}, {"crc32": "e1e3c009", "name": "mb_serial.ic57", "sha1": "66bc636c527389c3338f631d78c788b4bd4e93be", "size": 128}, {"crc32": "77cc5a6c", "name": "net_eeprom.ic74s", "sha1": "cbfba546256b70bce6c6fd0030d7e2e410a25526", "size": 512}, {"crc32": "a738ea1c", "name": "net_firm_119.ic72", "sha1": "d25187a973a7e166e70334f964363adf2be87257", "size": 2097152}, {"crc32": "a738ea1c", "name": "fpr-24208a.ic72", "sha1": "3c32ddfb3c40be66b9fb2ba35fbfd5b534bb3da0", "size": 2097152}, {"crc32": "a738ea1c", "name": "fpr-24329.ic72", "sha1": "d0d062a4089a2d3404df45eb015faaf7eee9b8c2", "size": 2097152}, {"crc32": "a738ea1c", "name": "fpr-24407.ic72", "sha1": "fbcc3d119b47a6da4d194e3fe4a98126c7049edf", "size": 2097152}, {"crc32": "a738ea1c", "name": "fpr-24407_123.ic72", "sha1": "3f5a2fb03bbb1bd9af9fe32ad76a224c97aa9b7a", "size": 2097152}, {"crc32": "4186d7ab", "name": "mb_eeprom_us.ic54s", "sha1": "fc23da69a511a7643b6a066161bcfc3cdeeacf04", "size": 128}, {"crc32": "947ddfad", "name": "mb_eeprom_exp.ic54s", "sha1": "832a3db097af680d1d0eb9451b4650565f0cf8c7", "size": 128}], "name": "segasp.zip", "required": true, "source_ref": "src/mame/sega/segasp.cpp:1273"}, {"category": "bios_zip", "contents": [{"crc32": "2aa906a7", "name": "epr-23400a.ic94", "sha1": "098c9909b123ed6c338ac874f2ee90e3b2da4c02", "size": 2097152}, {"crc32": "3d557104", "name": "epr-23400.ic94", "sha1": "d39879f5a1acbd54ad8ee4fbd412f870c9ff4aa5", "size": 2097152}, {"crc32": "d96298b6", "name": "epr-21904.ic94", "sha1": "d10d837bc7d68eb7125c34beffe21a91305627b0", "size": 2097152}, {"crc32": "7cbf2fb6", "name": "prot_bot.ic94", "sha1": "7384e3c9314add7d61f93c9edd9fb7788d08f423", "size": 2097152}, {"crc32": "737dc714", "name": "93c46.ic115", "sha1": "852a90319ac2e787b94a4fc769424b79afbaaf9d", "size": 128}, {"bad_dump": true, "crc32": "194c6c18", "name": "x76f100.ic85", "sha1": "6c2de7dae32bef855d9bc556568c3a170f54caa5", "size": 132}], "name": "hikaru.zip", "required": true, "source_ref": "src/mame/sega/hikaru.cpp:1482", "system": "sega-hikaru"}, {"category": "bios_zip", "contents": [{"crc32": "66232714", "name": "chihiro_xbox_bios.bin", "sha1": "b700b0041af8f84835e45d1d1250247bf7077188", "size": 524288}, {"crc32": "13034372", "name": "fpr-23887_29lv160te.ic4", "sha1": "77197fba2781ed1d81402c48bd743adb26d3161a", "size": 2097152}, {"crc32": "a4fcab0b", "name": "fpr21042_m29w160et.bin", "sha1": "a13cf9c5cdfe8605d82150b7573652f419b30197", "size": 2097152}, {"crc32": "488624ea", "name": "315-6351a_epc1pc8.ic2", "sha1": "1a607337a186415ae90b48934ce2aae81639d4de", "size": 130817}, {"crc32": "cfc5e06f", "name": "ic10_g24lc64.bin", "sha1": "3ababd4334d8d57abb22dd98bd2d347df39648d9", "size": 8192}, {"crc32": "8dc8374e", "name": "ic11_24lc024.bin", "sha1": "cc03a0650bfac4bf6cb66e414bbef121cba53efe", "size": 128}, {"crc32": "7742ab62", "name": "pc20_g24lc64.bin", "sha1": "82dad6e2a75bab4a4840dc6939462f1fb9b95101", "size": 8192}], "name": "chihiro.zip", "required": true, "source_ref": "src/mame/sega/chihiro.cpp:2614", "system": "sega-chihiro"}, {"category": "bios_zip", "contents": [{"crc32": "d1883221", "name": "triforce_bootrom.bin", "sha1": "c3cb7227e4dbc2af861e76d00cb59726105a2e4c", "size": 2097152}], "name": "triforce.zip", "required": true, "source_ref": "src/mame/sega/triforce.cpp:1308", "system": "sega-triforce"}, {"category": "bios_zip", "contents": [{"crc32": "ea8901d9", "name": "epr10894a.20", "sha1": "43fd8bfc395e3b2e3fbe9645d692a5eb04783d9c", "size": 16384}], "name": "shtzone.zip", "required": true, "source_ref": "src/mame/sega/shtzone.cpp:378"}, {"category": "bios_zip", "contents": [{"crc32": "c3c74dc5", "description": "IPL Ver. 5.0", "name": "vm1211l01.u2", "sha1": "07352e6dba7514214e778ba39e1ca773e4698858", "size": 524288}, {"crc32": "c8c6d25f", "description": "IPL Ver. 4.0", "name": "mt201l04.u012", "sha1": "5be39fa72b65f2e455ccc146dbab58d24ab46505", "size": 524288}, {"crc32": "21b2ccbd", "description": "IPL Ver. 1.0", "name": "vm1201l01.u012", "sha1": "c3ceea196e5c1c6a9e03cf3a22e9f25f0099a38e", "size": 524288}], "name": "sammymdl.zip", "required": true, "source_ref": "src/mame/sigma/sammymdl.cpp:1027"}, {"category": "bios_zip", "contents": [{"crc32": "aa8dc2d8", "name": "ep15294.ic2", "sha1": "96771ad7b79dc9c83a1594243250d65052d23176", "size": 131072}, {"crc32": "f97c68aa", "name": "epr-a15294.ic2", "sha1": "bcabc879950bca1ced11c550a484e697ec5706b2", "size": 131072}, {"bad_dump": true, "crc32": "d8289e31", "name": "315-5661.ic7", "sha1": "a0e9134d9e8043a3660a2ce122cfd5d7f76773b9", "size": 279}, {"bad_dump": true, "crc32": "fd5c4fb3", "name": "315-5653.ic56", "sha1": "6b2ba657836f3031d77602526416200e31d41a6e", "size": 279}, {"bad_dump": true, "crc32": "55c6cddb", "name": "315-5651.ic8", "sha1": "e1a968305ca7ea17e9021b31506ca087b84a8ab1", "size": 279}, {"bad_dump": true, "crc32": "825ea316", "name": "315-5349a.ic54", "sha1": "f49edb6a3f9349330f7ff525ef60517ed276a663", "size": 260}, {"bad_dump": true, "crc32": "4a2d27d1", "name": "315-5655.ic34", "sha1": "ba79183e4b522d1b57a46a56fc7d9b85de24df36", "size": 260}], "name": "megaplay.zip", "required": true, "source_ref": "src/mame/sega/megaplay.cpp:1016", "system": "sega-megaplay"}, {"category": "bios_zip", "contents": [{"crc32": "f71e9526", "description": "Ver 1", "name": "epr-12664.20", "sha1": "1c7887541d02c41426992d17f8e3db9e03975953", "size": 32768}, {"crc32": "07c3f423", "description": "Ver 0 Rev A", "name": "epr-12263a.20", "sha1": "50c28bbc2d4349c820d988ae3f20aae3f808545f", "size": 32768}, {"crc32": "ca26c87a", "description": "Ver 0 Rev B", "name": "epr-12263b.20", "sha1": "987a18bede6e54cd73c4434426eb6c302a37cdc5", "size": 32768}, {"crc32": "884e4aa5", "description": "Ver 0 Rev B (alt?)", "name": "epr-12604a.20", "sha1": "c9008c431a937c084fb475273093ca0b434b5f47", "size": 32768}], "name": "megatech.zip", "required": true, "source_ref": "src/mame/sega/megatech.cpp:1442", "system": "sega-megatech"}, {"category": "bios_zip", "contents": [{"crc32": "2292585c", "name": "ism2006v00.u1", "sha1": "97ba0e0f0be832a5114d95151e519bc027f6675b", "size": 131072}], "name": "isgsm.zip", "required": true, "source_ref": "src/mame/sega/segas16b_isgsm.cpp:608"}, {"category": "bios_zip", "contents": [{"crc32": "2b19f490", "name": "system_y2_m25p40.u801", "sha1": "b6a0482926d02fb5bb9a2c05ffdba6a2347fe658", "size": 524288}], "name": "systemy2.zip", "required": true, "source_ref": "src/mame/sega/y2.cpp:141"}, {"category": "bios_zip", "contents": [{"crc32": "3d33ac34", "name": "v0a-.7e", "sha1": "909d59e7a993affd10224402b4370e82a5f5545c", "size": 4096}, {"crc32": "23d929b7", "name": "v0b-.7e", "sha1": "063f83020ba3d6f43ab8471f95ca919767b93aa4", "size": 4096}, {"crc32": "9f505709", "name": "v0c-.7e", "sha1": "a9c661ba5a0d3fa5e935fb9c10fa63e2d9809981", "size": 4096}, {"crc32": "1e0c22b1", "name": "v0d-.7e", "sha1": "5fec8fef500bbebc13d0173406afc55235d3affb", "size": 4096}, {"crc32": "2541e34b", "name": "dsp-3_p0-a.m9", "sha1": "4f983513dbae1350c83a433dea77a4465748b9c6", "size": 2048}, {"crc32": "3bfff5f3", "name": "dsp-3_p1-.l9", "sha1": "4e9437cb1b76d64da6b37f01bd6e879fb399e8ce", "size": 2048}, {"crc32": "b67a91d9", "name": "dsp-3_p0-b.m9", "sha1": "681c040be0f0ed1ba0a50161b36d0ad8e1c8c5cb", "size": 2048}, {"crc32": "3bfff5f3", "name": "dsp-3_p1-.l9", "sha1": "4e9437cb1b76d64da6b37f01bd6e879fb399e8ce", "size": 2048}, {"crc32": "c76c4057", "name": "dsp-3_p0-c.m9", "sha1": "4093d4ac44feff595e34f361ed1ed84113c9225e", "size": 2048}, {"crc32": "3bfff5f3", "name": "dsp-3_p1-.l9", "sha1": "4e9437cb1b76d64da6b37f01bd6e879fb399e8ce", "size": 2048}, {"crc32": "4b7d72bc", "name": "dsp-3_p0-d.m9", "sha1": "a70c5ba88404dafee2cc717071c4a249f67ab645", "size": 2048}, {"crc32": "3bfff5f3", "name": "dsp-3_p1-.l9", "sha1": "4e9437cb1b76d64da6b37f01bd6e879fb399e8ce", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "b66b2c2a", "name": "v1-.5a", "sha1": "0097f38beb4872e735e560148052e258a26b08fd", "size": 2048}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "238fdb40", "name": "v2.3m", "sha1": "b88e8fabb82092105c3828154608ea067acbf2e5", "size": 32}, {"crc32": "3b5836b4", "name": "v4.10d", "sha1": "b630bb277d9ec09d46ef26b944014dd6165b35d8", "size": 32}, {"crc32": "51eef657", "name": "v3.3j", "sha1": "eaedce5caf55624ad6ae706aedf82c5717c60f1f", "size": 32}, {"crc32": "a6df18fd", "name": "cassmcu.1c", "sha1": "1f9ea47e372d31767c936c15852b43df2b0ee8ff", "size": 1024}], "name": "decocass.zip", "required": true, "source_ref": "src/mame/dataeast/decocass.cpp:2131", "system": "deco-cassette"}, {"category": "bios_zip", "contents": [{"crc32": "d52fa07a", "name": "pch1-c__8t_e-2.8t", "sha1": "55cabf52ae10c050c2229081a80b9fe5454ab8c5", "size": 16384}, {"crc32": "503ee8b1", "name": "pck1-c.8t", "sha1": "3bd20bc71cac742d1b8c1430a6426d0a19db7ad0", "size": 16384}, {"crc32": "123ffa37", "name": "pch1-c_8te.8t", "sha1": "3bef754a5a85a8498bb6222ddf5cb9021f264db5", "size": 16384}, {"crc32": "0be8ceb4", "name": "pck1-c_fix.8t", "sha1": "45b127a537370226e6b30be2b5a92ad05673ca7f", "size": 16384}, {"crc32": "88a8f87e", "name": "pch1-c__8t_e-1.8t", "sha1": "d1d7ffe68d2e7aa2faf8ad41a7ec8421265ede42", "size": 16384}, {"crc32": "9acffb30", "name": "pch1-c__8k.8k", "sha1": "b814f10ef23f2ca445fabafcbf7f25e2d454ba8c", "size": 8192}, {"crc32": "c1232eee", "name": "pch1-c__8m_e-1.8m", "sha1": "beaf9fa2d091a3c7f70c51e966d885b1f9f0935f", "size": 8192}, {"crc32": "30c15e23", "name": "pch1-c__8p_e-1.8p", "sha1": "69166afdb2fe827c7f1919cdf4197caccbd961fa", "size": 8192}, {"crc32": "9acffb30", "name": "pch1-c__8k.8k", "sha1": "b814f10ef23f2ca445fabafcbf7f25e2d454ba8c", "size": 8192}, {"crc32": "c1232eee", "name": "pch1-c__8m_e-1.8m", "sha1": "beaf9fa2d091a3c7f70c51e966d885b1f9f0935f", "size": 8192}, {"crc32": "30c15e23", "name": "pch1-c__8p_e-1.8p", "sha1": "69166afdb2fe827c7f1919cdf4197caccbd961fa", "size": 8192}, {"crc32": "9acffb30", "name": "pch1-c__8k.8k", "sha1": "b814f10ef23f2ca445fabafcbf7f25e2d454ba8c", "size": 8192}, {"crc32": "83ebc7a3", "name": "pch1-c_8m.8m", "sha1": "a7c607138f4f9b96ab5d3a82c47895f77672e296", "size": 8192}, {"crc32": "90e1b80c", "name": "pch1-c_8p-8p", "sha1": "c4f4b135b2a11743518aaa0554c365b4a8cf299a", "size": 8192}, {"crc32": "9acffb30", "name": "pch1-c__8k.8k", "sha1": "b814f10ef23f2ca445fabafcbf7f25e2d454ba8c", "size": 8192}, {"crc32": "c1232eee", "name": "pch1-c__8m_e-1.8m", "sha1": "beaf9fa2d091a3c7f70c51e966d885b1f9f0935f", "size": 8192}, {"crc32": "30c15e23", "name": "pch1-c__8p_e-1.8p", "sha1": "69166afdb2fe827c7f1919cdf4197caccbd961fa", "size": 8192}, {"crc32": "e5414ca3", "name": "pch1-c-6f.82s129an.6f", "sha1": "d2878411cda84ffe0afb2e538a67457f51bebffb", "size": 256}, {"crc32": "a2625c6e", "name": "pch1-c-6e.82s129an.6e", "sha1": "a448b47c9289902e26a3d3c4c7d5a7968c385e81", "size": 256}, {"crc32": "1213ebd4", "name": "pch1-c-6d.82s129an.6d", "sha1": "0ad386fc3eab5e53c0288ad1de33639a9e461b7c", "size": 256}, {"crc32": "48de65dc", "name": "rp2c0x.pal", "sha1": "d10acafc8da9ff479c270ec01180cca61efe62f5", "size": 192}], "name": "playch10.zip", "required": true, "source_ref": "src/mame/nintendo/playch10.cpp:2982", "system": "nintendo-playch10"}, {"category": "bios_zip", "contents": [{"crc32": "e06cb58f", "description": "Nintendo Super System (Single Cart BIOS)", "name": "nss-ic14.02.ic14", "sha1": "62f507e91a2797919a78d627af53f029c7d81477", "size": 32768}, {"crc32": "a8e202b3", "description": "Nintendo Super System (Multi Cart BIOS)", "name": "nss-c.ic14", "sha1": "b7afcfe4f5cf15df53452dc04be81929ced1efb2", "size": 32768}, {"crc32": "ac385b53", "description": "Nintendo Super System (Single Cart BIOS v3, hack?)", "name": "nss-v3.ic14", "sha1": "e3942f9d508c3c8074c3c3941376c37ca68b8e54", "size": 32768}], "name": "nss.zip", "required": true, "source_ref": "src/mame/nintendo/nss.cpp:1099", "system": "nintendo-nss"}, {"category": "bios_zip", "contents": [{"crc32": "e31b5580", "description": "SFCBox BIOS Version 2.00", "name": "krom2.00.ic1", "sha1": "4a6a34a9a94c8249c3b441c2516bdd03e198c458", "size": 131072}, {"crc32": "c9010002", "description": "SFCBox BIOS Version 1.00", "name": "krom1.ic1", "sha1": "f4c74086a83b728b1c1af3a021a60efa80eff5a4", "size": 65536}, {"crc32": "ad3ec05c", "name": "atrom-4s-0.rom5", "sha1": "a3d336db585fe02a37c323422d9db6a33fd489a6", "size": 524288}], "name": "sfcbox.zip", "required": true, "source_ref": "src/mame/nintendo/sfcbox.cpp:586", "system": "nintendo-sfcbox"}, {"category": "bios_zip", "contents": [{"crc32": "5ec82be9", "name": "pifdata.bin", "sha1": "9174eadc0f0ea2654c95fd941406ab46b9dc9bdd", "size": 2048}, {"crc32": "e7f2a005", "name": "normpnt.rom", "sha1": "c27b4a364a24daeee6e99fd286753fd6216362b4", "size": 128}, {"crc32": "4f2ae525", "name": "normslp.rom", "sha1": "eab43f8cc52c8551d9cff6fced18ef80eaba6f05", "size": 128}], "name": "aleck64.zip", "required": true, "source_ref": "src/mame/nintendo/aleck64.cpp:1417"}, {"category": "bios_zip", "contents": [{"crc32": "40c4e6b9", "description": "Magnavox CD-i 200", "name": "cdi200.rom", "sha1": "d961de803c89b3d1902d656ceb9ce7c02dccb40a", "size": 524288}, {"crc32": "279683ca", "description": "Philips CD-i 220 F2", "name": "cdi220b.rom", "sha1": "53360a1f21ddac952e95306ced64186a3fc0b93e", "size": 524288}, {"bad_dump": true, "crc32": "688cda63", "name": "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206", "sha1": "56d0acd7caad51c7de703247cd6d842b36173079", "size": 8192}], "name": "cdibios.zip", "required": true, "source_ref": "src/mame/philips/cdi.cpp:922", "system": "philips-cdi"}, {"category": "bios_zip", "contents": [{"crc32": "d3837ae4", "name": "391640-03.u6a", "sha1": "06807db3181637455f4d46582d9972afec8956d9", "size": 1048576}], "name": "cubo.zip", "required": true, "source_ref": "src/mame/amiga/cubo.cpp:1435", "system": "commodore-cubo"}, {"category": "bios_zip", "contents": [{"crc32": "2b2e41a2", "name": "r27v1602f.7d", "sha1": "f0a74bbcaf801f3fd0b7002ebd0118564aae3528", "size": 2097152}], "name": "sys246.zip", "required": true, "source_ref": "src/mame/namco/namcops2.cpp:1716", "system": "namco-system246"}, {"category": "bios_zip", "contents": [{"crc32": "b2a8eeb6", "name": "r27v1602f.8g", "sha1": "bc4fb4e1e53adbd92385f1726bd69663ff870f1e", "size": 2097152}], "name": "sys256.zip", "required": true, "source_ref": "src/mame/namco/namcops2.cpp:1761", "system": "namco-system256"}, {"category": "bios_zip", "contents": [{"crc32": "11812ef8", "description": "Standard", "name": "700a01.22g", "sha1": "e1284add4aaddd5337bd7f4e27614460d52b5b48", "size": 524288}, {"crc32": "39ebb0ca", "description": "Found on Gacha Gachamp", "name": "700a01,gchgchmp.22g", "sha1": "9aab8c637dd2be84d79007e52f108abe92bf29dd", "size": 524288}, {"crc32": "6cf852af", "description": "Found on Dancing Stage Euro Mix 2", "name": "700b01.22g", "sha1": "a2421d0a494892c0e71003c96995ce8f945064dd", "size": 524288}, {"crc32": "131e0359", "description": "Standard", "name": "h8a01.bin", "sha1": "967f66578ebc0cf6b044d71af09b59bce1f4a1d0", "size": 64}, {"crc32": "131e0359", "description": "Found on Gacha Gachamp", "name": "h8a01.bin", "sha1": "967f66578ebc0cf6b044d71af09b59bce1f4a1d0", "size": 64}, {"crc32": "508b057d", "description": "Found on Dancing Stage Euro Mix 2", "name": "h8b01.bin", "sha1": "779177e6312ef272483eeb64a5e84bbae6e301f2", "size": 64}], "name": "sys573.zip", "required": true, "source_ref": "src/mame/konami/ksys573.cpp:6470", "system": "namco-system573"}, {"category": "bios_zip", "contents": [{"crc32": "d5fa95f5", "name": "300a01.34k", "sha1": "c483aa98ff8ef40cdac359c19ad23fea5ecc1906", "size": 131072}], "name": "konamigx.zip", "required": true, "source_ref": "src/mame/konami/konamigx.cpp:4193"}, {"category": "bios_zip", "contents": [{"crc32": "ad498d2d", "name": "999a01.7e", "sha1": "02a82a2fe1fba0404517c3602324bfa64e23e478", "size": 524288}], "name": "konamigv.zip", "required": true, "source_ref": "src/mame/konami/konamigv.cpp:1444", "system": "konami-gv"}, {"category": "bios_zip", "contents": [{"crc32": "233e5159", "name": "941b01.u25", "sha1": "66ff268d5bf78fbfa48cdc3e1b08f8956cfd6cfb", "size": 262144}, {"crc32": "df6f88d6", "name": "941a01.u25", "sha1": "2bc10e4fbec36573aa8b6878492d37665f074d87", "size": 262144}, {"crc32": "f1511505", "name": "ds2430.u3", "sha1": "ed7cd9b2763b3e377df9663943160f9871f65105", "size": 40}], "name": "kviper.zip", "required": true, "source_ref": "src/mame/konami/viper.cpp:3269"}, {"category": "bios_zip", "contents": [{"crc32": "81498f73", "name": "863a03.7b", "sha1": "3599b40a5872eab3a00d345287635355fcb25a71", "size": 524288}, {"crc32": "6f42a09e", "name": "863a05.2x", "sha1": "cab5209f90f47b9ee6e721479913ad74e3ba84b1", "size": 524288}], "name": "gq863.zip", "required": true, "source_ref": "src/mame/konami/twinkle.cpp:1360", "system": "konami-twinkle"}, {"category": "bios_zip", "contents": [{"crc32": "f0774fc2", "name": "boot.bin", "sha1": "84fade54e025f170d983200a86c1ed96ef1a9ed3", "size": 480}, {"crc32": "85c2afc5", "name": "400b03.8g", "sha1": "387842d02d50d0d78a27270e7267af19555b9e63", "size": 8192}, {"crc32": "5827b1e8", "name": "400a1.2b", "sha1": "fa8cf5f868cfb08bce203baaebb6c4055ee2a000", "size": 256}, {"crc32": "2f44f970", "name": "400a2.1b", "sha1": "7ab46f9d5d587665782cefc623b8de0124a6d38a", "size": 256}], "name": "bubsys.zip", "required": true, "source_ref": "src/mame/konami/nemesis.cpp:3269"}, {"category": "bios_zip", "contents": [{"crc32": "36122a98", "name": "2v02s502_ifu.u190", "sha1": "3d2c40c9d504358d890364e26c9562e40314d8a4", "size": 524288}], "name": "konendev.zip", "required": true, "source_ref": "src/mame/konami/konendev.cpp:909"}, {"category": "bios_zip", "contents": [{"crc32": "98de405e", "name": "b22a01.u42", "sha1": "4bc268a996825c1bdf6ae277d331fe7bdc0cc00c", "size": 524288}], "name": "kpython.zip", "required": true, "source_ref": "src/mame/konami/kpython.cpp:376"}, {"category": "bios_zip", "contents": [{"crc32": "79d60546", "name": "ps2-0190j-20030822.bin", "sha1": "0ea98a25a32145dda514de2f0d4bfbbd806bd00c", "size": 4194304}], "name": "kpython2.zip", "required": true, "source_ref": "src/mame/konami/kpython2.cpp:1918"}, {"category": "bios_zip", "contents": [{"crc32": "50033af6", "description": "japan", "name": "m534002c-13.ic353", "sha1": "486d92ff6c7f1e54f8e0ef41cd9116eca0e10e1a", "size": 524288}, {"crc32": "f20f7fe5", "description": "english (debug)", "name": "msm27c402zb.ic353", "sha1": "9aac7d3b3d0cc0bbbe4056164b73078dce41d91c", "size": 524288}, {"crc32": "bb7ba033", "name": "cp01.ic652", "sha1": "966f3aee5d00e1312c455f855915d621e6cb0672", "size": 8}], "name": "coh1000c.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:5967", "system": "capcom-zn1"}, {"category": "bios_zip", "contents": [{"crc32": "e860ea8b", "name": "m534002c-59.ic353", "sha1": "66e7e1d4e426466b8f48a2ba055a91b475569504", "size": 524288}, {"crc32": "7808fcef", "name": "cp10.ic652", "sha1": "3c3fb8227b05dace042dc1429b9f2355b1a15638", "size": 8}], "name": "coh3002c.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6053", "system": "capcom-zn2"}, {"category": "bios_zip", "contents": [{"crc32": "e3f23b6e", "name": "m534002c-14.ic353", "sha1": "e18907cf8c6ba54d96edba0a9a00487a90219e0d", "size": 524288}, {"crc32": "daac13e7", "name": "tt01.ic652", "sha1": "96d94f2b06fb7ecd91454969f4959a583ffb9d5a", "size": 8}], "name": "coh1000t.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:5987"}, {"category": "bios_zip", "contents": [{"crc32": "8d8d0764", "name": "m534002c-15.ic353", "sha1": "7ee83d317190bb1cef2f8f01c81eaaae47150ebb", "size": 524288}, {"crc32": "c425eaf5", "name": "ac01.ic652", "sha1": "decf77ab50f7f58c641c3214a11647924f3a8998", "size": 8}], "name": "coh1000a.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6013"}, {"category": "bios_zip", "contents": [{"crc32": "45e8a4b4", "name": "msm27c402zb.ic353", "sha1": "815488d8563c85f97fbc3384ff21f08e4c88b7b7", "size": 524288}, {"crc32": "1cac067e", "name": "tw01.ic652", "sha1": "8e87941bfb374172628c8a37647e3a66b7166aa8", "size": 8}], "name": "coh1000w.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6022"}, {"category": "bios_zip", "contents": [{"crc32": "6721146b", "name": "m534002c-17.ic353", "sha1": "9511d24bfe25eb180fb2db0835b131cb4a12730e", "size": 524288}, {"crc32": "181668b3", "name": "at01.ic652", "sha1": "8d2fe1facb4473cc20b4b477aaf881f9280939cf", "size": 8}], "name": "coh1001l.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6026"}, {"category": "bios_zip", "contents": [{"crc32": "5ff165f3", "name": "coh-1002v.ic353", "sha1": "8f59314c1093446b9bcb06d232244da6df78e206", "size": 524288}, {"crc32": "1ce271df", "name": "kn01.ic652", "sha1": "b01479dc75a4a8a86bee7ac7cd10af2bda332544", "size": 8}], "name": "coh1002v.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6030"}, {"category": "bios_zip", "contents": [{"crc32": "910f3a8b", "name": "m27c402cz-54.ic353", "sha1": "cd68532967a25f476a6d73473ec6b6f4df2e1689", "size": 524288}, {"crc32": "a7dd922e", "name": "et01.ic652", "sha1": "1069c1d9015028a51a1b314cfacb014ea90aa425", "size": 8}], "name": "coh1002e.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6036"}, {"category": "bios_zip", "contents": [{"crc32": "69ffbcb4", "name": "m534002c-61.ic353", "sha1": "03eb2febfab3fcde716defff291babd9392de965", "size": 524288}, {"crc32": "50dc8322", "name": "mg01.ic652", "sha1": "cef4011c6c06d6fce546e1db5d9fbae155eabf57", "size": 8}], "name": "coh1002m.zip", "required": true, "source_ref": "src/mame/sony/zn.cpp:6087"}, {"category": "bios_zip", "contents": [{"crc32": "03967fa7", "name": "m534002c-60.ic353", "sha1": "0e17fec2286e4e25deb23d40e41ce0986f373d49", "size": 524288}, {"crc32": "235510b1", "name": "tt10.ic652", "sha1": "2cc02113207a8f0b078152d31ce6503411750e70", "size": 8}, {"crc32": "6bb167b3", "name": "tt16.u17", "sha1": "9dcba08f10775a9adf2b1f382c947460edd3d239", "size": 8}, {"crc32": "c48c8236", "name": "flash.u30", "sha1": "c6dad60266ce2ff635696bc0d91903c543273559", "size": 2097152}, {"crc32": "cd15cc30", "description": "G NET BIOS v1 flasher", "name": "f35-01_m27c800_v1.bin", "sha1": "78361f46fa7186d5058937c86c66247a86b1257f", "size": 1048576}, {"crc32": "6225ec11", "description": "G NET BIOS v2 flasher", "name": "f35-01_m27c800.bin", "sha1": "047852d456b6ff85f8e640887caa03cf3e63ffad", "size": 1048576}, {"crc32": "6367aedf", "description": "MB2009", "name": "f35-01_m27c800_modbios_mb-2009_dump_by_aje_fr.bin", "sha1": "8400775e0c974c8b017e26ef9339144cad457c63", "size": 1048576}, {"crc32": "f98ae118", "description": "MB2011", "name": "f35-01_m27c800_modbios_mb-2011.bin", "sha1": "c6918dfbb6fcf686dde4b731e84f740177ab31f0", "size": 1048576}], "name": "coh3002t.zip", "required": true, "source_ref": "src/mame/sony/taitogn.cpp:1349"}, {"category": "bios_zip", "contents": [{"crc32": "e3f23b6e", "name": "m534002c-14.ic353", "sha1": "e18907cf8c6ba54d96edba0a9a00487a90219e0d", "size": 524288}, {"crc32": "daac13e7", "name": "tt01.ic652", "sha1": "96d94f2b06fb7ecd91454969f4959a583ffb9d5a", "size": 8}, {"crc32": "2989b6eb", "name": "tt99.u17", "sha1": "89981ec68d30729c27d31f820cbfd0c23ed14a03", "size": 8}, {"crc32": "9100dbf2", "name": "flash.u30", "sha1": "9ce888bd2a7e575c8ca71d978cb85de22afb5660", "size": 2097152}], "name": "coh1002t.zip", "required": true, "source_ref": "src/mame/sony/taitogn.cpp:1350"}, {"category": "bios_zip", "contents": [{"crc32": "6ad9b006", "name": "e68-05-1.ic6", "sha1": "f05a0ae26b6abaeda9c7944aee96c72b08fff7a5", "size": 524288}, {"crc32": "c7c2dc6b", "name": "e68-04-1.ic5", "sha1": "bf88c818166c285130c5c73d6982f009da26e143", "size": 524288}], "name": "taitotz.zip", "required": true, "source_ref": "src/mame/taito/taitotz.cpp:3014"}, {"category": "bios_zip", "contents": [{"crc32": "7e2b836c", "name": "sknsj1.u10", "sha1": "92c5a7a2472496028bff0e5980d41dd294f42144", "size": 524288}, {"crc32": "e2b9d7d1", "name": "sknse2.u10", "sha1": "b530a3bb9dedc8cfafcba9f1f10277590be04a15", "size": 524288}, {"crc32": "745e5212", "name": "sknsa1.u10", "sha1": "caba649ab2d83b2d7e007eecee0fc582c019df38", "size": 524288}, {"crc32": "384d21ec", "name": "sknsu1.u10", "sha1": "a27e8a18099d9cea64fa32db28d01101c2a78815", "size": 524288}, {"crc32": "ff1c9f79", "name": "sknsk1.u10", "sha1": "a51e598d43e76d37da69b1f094c111273bdfc94a", "size": 524288}, {"crc32": "b8d3190c", "name": "supernova_modbios-japan.u10", "sha1": "62c9a4a075fd944e89fe95c6b46046101eb6de1c", "size": 524288}, {"crc32": "1d90517c", "name": "supernova-modbios-korea.u10", "sha1": "463962ffe19880135f0d95a7beda79e27448e872", "size": 524288}], "name": "skns.zip", "required": true, "source_ref": "src/mame/kaneko/suprnova.cpp:2133", "system": "super-kaneko-nova"}, {"category": "bios_zip", "name": "mac2bios.zip", "note": "no ROM entries in the set", "required": false, "source_ref": "src/mame/seta/macs.cpp:776"}, {"category": "bios_zip", "contents": [{"crc32": "0b5aed5e", "name": "am_macs_os_low.u43", "sha1": "042e705017ee34656e2c6af45825bb2dd3447747", "size": 524288}, {"crc32": "538b68e4", "name": "am_macs_os_hi.u44", "sha1": "a0534147791e94e726f49451d0e95671ae0a87d5", "size": 524288}, {"crc32": "669096c1", "name": "sx011-01.bin", "sha1": "36f55a2e4865bdf0506746a4df51bfb1944f905e", "size": 343}], "name": "macsbios.zip", "required": true, "source_ref": "src/mame/seta/macs.cpp:775"}, {"category": "bios_zip", "contents": [{"crc32": "58242cee", "description": "Panasonic FZ-10 R.E.A.L. 3DO Interactive Multiplayer", "name": "panafz10.bin", "sha1": "3c912300775d1ad730dc35757e279c274c0acaad", "size": 1048576}, {"crc32": "b6f5028b", "description": "Goldstar 3DO Interactive Multiplayer v1.01m", "name": "goldstar.bin", "sha1": "c4a2e5336f77fb5f743de1eea2cda43675ee2de7", "size": 1048576}, {"crc32": "c8c8ff89", "description": "Panasonic FZ-1 R.E.A.L. 3DO Interactive Multiplayer", "name": "panafz1.bin", "sha1": "34bf189111295f74d7b7dfc1f304d98b8d36325a", "size": 1048576}, {"crc32": "d5cbc509", "description": "Sanyo TRY 3DO Interactive Multiplayer", "name": "sanyotry.bin", "sha1": "b01c53da256dde43ffec4ad3fc3adfa8d635e943", "size": 1048576}], "name": "3dobios.zip", "required": true, "source_ref": "src/mame/misc/3do.cpp:565", "system": "panasonic-3do"}, {"category": "bios_zip", "contents": [{"crc32": "b832da9a", "name": "saot_rom2.bin", "sha1": "520d3d1b5897800af47f92efd2444a26b7a7dead", "size": 524288}], "name": "alg3do.zip", "required": true, "source_ref": "src/mame/misc/3do.cpp:573"}, {"category": "bios_zip", "contents": [{"crc32": "a30dd3de", "name": "brom1.bin", "sha1": "3e2fd0a56214e6f5dcb93687e409af13d065ea30", "size": 524288}, {"crc32": "ab5948d6", "name": "bios_us.bin", "sha1": "f8b940c1ae5ce2d3b2cd0c9bfaf6e5b063cec06e", "size": 524288}, {"crc32": "bbf07ec6", "name": "bios_export.bin", "sha1": "5656aa077f6a6d43953f15b5123eea102a9d5313", "size": 524288}, {"crc32": "ac953e2e", "name": "bios_korea.bin", "sha1": "f502188ef252b7c9d04934c4b525730a116de48b", "size": 524288}, {"crc32": "6b933005", "name": "from1.bin", "sha1": "e992747f46c48b66e5509fe0adf19c91250b00c7", "size": 524288}, {"crc32": "4a6832dc", "name": "rom1.bin", "sha1": "ae504f7733c2f40450157cd1d3b85bc83fac8569", "size": 130866}, {"crc32": "b70df21f", "name": "tmp87ph40an.bin", "sha1": "5b742e8a0bbf4c0ae4f4398d34c7058fb24acc92", "size": 32768}, {"crc32": "78b7020d", "name": "lvs-ioj-br9020f.u2", "sha1": "2b8549532ef5e1e8102dbe71af55fdfb27ccbba6", "size": 256}, {"crc32": "af9f4287", "name": "lvs-igx-br9020f.u3", "sha1": "6df0e35c77dbfee2fab7ff490dcd651db420e367", "size": 256}, {"crc32": "dabec5d2", "name": "lvs-jam-br9020f.u3", "sha1": "19c5be89c57387d6ea563b3dc55674d0692af98e", "size": 256}], "name": "hng64.zip", "required": true, "source_ref": "src/mame/snk/hng64.cpp:3241", "system": "hyper-neogeo64"}, {"category": "bios_zip", "contents": [{"crc32": "a6ce1636", "name": "315093-01.u2", "sha1": "11f9e62cf299f72184835b7b2a70a16333fc0d88", "size": 262144}, {"crc32": "2d8e1a06", "name": "scpa_01-hi_v3.0.u12", "sha1": "be187f34624aeda110017c4a09242f7c00ef56a4", "size": 65536}, {"crc32": "e4f38fab", "name": "scpa_01-lo_v3.0.u16", "sha1": "01c2eb5965070893be6734eb1372576727716476", "size": 65536}, {"crc32": "79450b4b", "name": "scpa_01-hi_v2.20.u12", "sha1": "a1e508a89fc62e1c4994064f2786f491b1dc8bc6", "size": 65536}, {"crc32": "d2825511", "name": "scpa_01-lo_v2.20.u16", "sha1": "747a37c6073224472bf261ae376ac9abfbe07554", "size": 65536}, {"crc32": "be9dbdc5", "name": "scpa_01-hi_v2.11.u12", "sha1": "1554da09f051ec53937d65d4e451de51bc0c69e5", "size": 65536}, {"crc32": "95b84504", "name": "scpa_01-lo_v2.11.u16", "sha1": "99999fc40909001b37aa1b543918118becc81800", "size": 65536}, {"crc32": "67d44523", "name": "gcp-1-hi", "sha1": "f3e3699132cdf741518accb890c04d17374c4049", "size": 65536}, {"crc32": "65d9b9cf", "name": "gcp-1-lo", "sha1": "5c60a0dd4a0a7d9b938ce6b0446a6ad2ecaf07ec", "size": 65536}, {"crc32": "1d7594ae", "name": "gcp-2-hi", "sha1": "6173bbfecf18d7d9ee6bc2b6753ca9d42fabd781", "size": 65536}, {"crc32": "e776198d", "name": "gcp-2-lo", "sha1": "694ca4cc99ed84a95d18201c94a3332f8599654f", "size": 65536}, {"crc32": "3e7364be", "name": "gcp-3-hi", "sha1": "26e10d0ddc031a891138db36ce4f1732722e6847", "size": 65536}, {"crc32": "87229e0d", "name": "gcp-3-lo", "sha1": "0b18544801e529f954b9e03226bd2e5475f36351", "size": 65536}, {"crc32": "0b486a85", "name": "gcp_v311_1-hi.u16", "sha1": "b406f1db5abf28d9072b7940989ffd176aeee5cb", "size": 65536}, {"crc32": "80e8e863", "name": "gcp_v311_1-lo.u11", "sha1": "ab04dfcda7544f4ed9b67771cd8aefe0300c6d4b", "size": 65536}, {"crc32": "d20a4d7f", "name": "gcp_v311_2-hi.u17", "sha1": "1dc0a79efa946333149f68ddac046fd44b5f2abe", "size": 65536}, {"crc32": "5bf4c74c", "name": "gcp_v311_2-lo.u12", "sha1": "1f7b17170accdf9e448c1a5d8bc430aa2d1d931b", "size": 65536}, {"crc32": "69295167", "name": "gcp_v400_1-hi.u16", "sha1": "855f53abbb9dc15e5518e16c5c2dfe4134d07306", "size": 65536}, {"crc32": "504c2171", "name": "gcp_v400_1-lo.u11", "sha1": "a93367f520afb86c97c0a191714b72823c95cdd2", "size": 65536}, {"crc32": "13fb4e2d", "name": "gcp_v400_2-hi.u17", "sha1": "3eef07aecc3a201ae0b20634c7fd0c87c89fd7f1", "size": 65536}, {"crc32": "a5cc4515", "name": "gcp_v400_2-lo.u12", "sha1": "80070521476e92323a6baa6e55928ca5b751a332", "size": 65536}], "name": "ar_bios.zip", "required": true, "source_ref": "src/mame/amiga/arsystems.cpp:1011"}, {"category": "bios_zip", "contents": [{"crc32": "c4f0f55f", "description": "Kickstart 1.3 (34.5)", "name": "315093-02.u2", "sha1": "891e9a547772fe0c6c19b610baf8bc4ea7fcb785", "size": 262144}], "name": "alg_bios.zip", "required": true, "source_ref": "src/mame/amiga/alg.cpp:923"}, {"category": "bios_zip", "contents": [{"crc32": "88d0be26", "name": "136032.205.l13", "sha1": "d124045eccc562ff0423b23a240e27ad740fa0c9", "size": 16384}, {"crc32": "3c79ef05", "name": "136032.206.l12", "sha1": "20fdca7131478e1ee12691bdafd2d5bb74cbd16f", "size": 16384}, {"crc32": "79021d3c", "name": "136032.105.l13", "sha1": "85febd34bcb166fc3326b5e5e4e80e157b660a08", "size": 16384}, {"crc32": "76ee86c4", "name": "136032.106.l12", "sha1": "cbcd424510435a04e9041967a13781fd19b0f2c4", "size": 16384}, {"crc32": "195c54ad", "name": "136032.114.j11", "sha1": "d7cda3cd3db4c6f77074ca05e96ae11b62e048b7", "size": 16384}, {"crc32": "7275b4dc", "name": "136032.115.j10", "sha1": "0896ab37ea832a1335046353612c1b4c86d8d040", "size": 16384}, {"crc32": "7a29dc07", "name": "136032.104.f5", "sha1": "72ba464da01bd6d3a91b8d9997d5ac14b6f47aad", "size": 8192}, {"crc32": "7a29dc07", "name": "136032.104.f5", "sha1": "72ba464da01bd6d3a91b8d9997d5ac14b6f47aad", "size": 8192}, {"crc32": "7a29dc07", "name": "136032.107.b2", "sha1": "72ba464da01bd6d3a91b8d9997d5ac14b6f47aad", "size": 8192}, {"crc32": "7e84972a", "name": "136032.101.e3", "sha1": "84d422b53547271e3a07342704a05ef481db3f99", "size": 256}, {"crc32": "ebf1e0ae", "name": "136032.102.e5", "sha1": "2d327e78832edd67ca3909c25b8c8c839637a1ed", "size": 256}, {"crc32": "92d6a0b4", "name": "136032.103.f7", "sha1": "0a42a4816c89447b16e1f3245409591efea98a4a", "size": 235}, {"crc32": "7e84972a", "name": "136032.101.e3", "sha1": "84d422b53547271e3a07342704a05ef481db3f99", "size": 256}, {"crc32": "ebf1e0ae", "name": "136032.102.e5", "sha1": "2d327e78832edd67ca3909c25b8c8c839637a1ed", "size": 256}, {"crc32": "92d6a0b4", "name": "136032.103.f7", "sha1": "0a42a4816c89447b16e1f3245409591efea98a4a", "size": 235}], "name": "atarisy1.zip", "required": true, "source_ref": "src/mame/atari/atarisy1.cpp:2669"}, {"category": "bios_zip", "contents": [{"crc32": "1f9cd270", "name": "atarixl.rom", "sha1": "ae4f523ba08b6fd59f3cae515a2b2410bbd98f55", "size": 16384}, {"crc32": "fe9cf53c", "name": "maxaflex.uc", "sha1": "4b02bc2f0c8a1eab799814fac82d5812c0160206", "size": 2048}, {"crc32": "edf5c950", "name": "maxprom.prm", "sha1": "9ad046ea41a61585dd8d2f2d4167a3cc39d2928f", "size": 512}], "name": "maxaflex.zip", "required": true, "source_ref": "src/mame/atari/maxaflex.cpp:450"}, {"category": "bios_zip", "contents": [{"crc32": "beff39a9", "description": "AMG0110B PCB", "name": "mx27l1000.u14", "sha1": "b6f6dda58d9c82273f9422c1bd623411e58982cb", "size": 131072}, {"crc32": "1e8175c8", "description": "AMG0110D PCB", "name": "mx27l1000-alt.u14", "sha1": "f60c016be2ff11e47b2192acddb92676043af501", "size": 131072}], "name": "crysbios.zip", "required": true, "source_ref": "src/mame/misc/crystal.cpp:847"}, {"category": "bios_zip", "contents": [{"crc32": "e8e8dc75", "name": "setchip v4.04.09.u7", "sha1": "201fe95256459ce34fdb6f7498135ab5016d07f3", "size": 524288}, {"crc32": "ff7a9035", "name": "setchip v4.04.09.u11", "sha1": "4352c4336e61947c555fdc80c61f944076f64b64", "size": 524288}, {"crc32": "e8e8dc75", "name": "clear_mk5_u_7_ck_eb68.u7", "sha1": "201fe95256459ce34fdb6f7498135ab5016d07f3", "size": 524288}, {"crc32": "4cf70173", "name": "clear_mk5_u_11_ck_3a6f.u11", "sha1": "f3dda0f188c035a36954048b449b9b96787709f2", "size": 524288}, {"crc32": "7c4b7fe4", "name": "setchip v4.04.08.u7", "sha1": "39dd39c794c0cb6abc1b7503650643a8131468d1", "size": 524288}, {"crc32": "d3234a28", "name": "setchip v4.04.08.u11", "sha1": "8ff112ee4aadf1d359ca8ffe0cfa9c7400aa0595", "size": 524288}, {"crc32": "e7b39a73", "name": "setchip v4.04.05.u7", "sha1": "e826d717a0871383394e15634896fcb2e2bdeb75", "size": 524288}, {"crc32": "2fc9b2a0", "name": "setchip v4.04.05.u11", "sha1": "89191f02c4ec8089e26989430806650d14e13e5a", "size": 524288}, {"bad_dump": true, "crc32": "1d564c2c", "name": "setchip v4.04.01 cs 1358.u7", "sha1": "2e47917138c682393a61676da6fccba90463229a", "size": 524288}, {"crc32": "199bacff", "name": "setchip v4.04.01 cs ed54.u11", "sha1": "a2ef556b42d505af077a2db983caebdd611d98fd", "size": 524288}, {"crc32": "2453137e", "name": "setchip v4.04.00.u7", "sha1": "b59998e75ae3924da16faf47b9cfe9afd60d810c", "size": 524288}, {"crc32": "82dfa12a", "name": "setchip v4.04.00.u11", "sha1": "86fd0f0ad8d5d1bc503392a40bbcdadb055b2765", "size": 524288}, {"crc32": "5cf56036", "name": "setchip v4.03.07.u7", "sha1": "ff11deb6f76627f4fb5a7ec789e4071887e3eae9", "size": 524288}, {"crc32": "637de9b9", "name": "setchip v4.03.07.u11", "sha1": "4b5c974fd4c1d1a21f83bdc03d8bc5013d4a40ea", "size": 524288}, {"crc32": "5a254b22", "name": "setchip v4.02.04.u7", "sha1": "8444f237b392df2a3cb42ea349e7af32f47dd544", "size": 524288}, {"crc32": "def36617", "name": "setchip v4.02.04.u11", "sha1": "c7ba5b08e884a8fb36c9fb51c08e243e32c81f89", "size": 524288}, {"crc32": "41275334", "name": "setchip v4.02.04_alt.u7", "sha1": "d4a63dbc77c2c44f6a9c72b389bd270f2137997f", "size": 524288}, {"crc32": "254e8b03", "name": "setchip v4.02.04_alt.u11", "sha1": "0ed9723258d3f86b21bf132cbe2fd0bae978cd5e", "size": 524288}, {"crc32": "16c2828d", "name": "setchip v1.0.u7", "sha1": "87218a76bb2791bce27b4b8ab341ba73cbbf6ffe", "size": 524288}, {"crc32": "a969f12b", "name": "setchip v1.0.u11", "sha1": "fc6d234ce1f5c6b5aceb97b73aad60144352023b", "size": 524288}, {"crc32": "1f269234", "name": "a562837.u36", "sha1": "29940dd50fb55c632935f62ff44ca724379c7a43", "size": 343}, {"crc32": "f2f3c40a", "name": "a562838.u65", "sha1": "b795dfa5cc4e8127c3f3a0906664910d1325ec92", "size": 343}, {"crc32": "941d4cdb", "name": "a562840.u22", "sha1": "1ca091fba69e92f262dbb3d40f515703c8981793", "size": 343}], "name": "aristmk5.zip", "required": true, "source_ref": "src/mame/acorn/aristmk5.cpp:2631"}, {"category": "bios_zip", "contents": [{"crc32": "e97afedf", "name": "24013001_right.u83", "sha1": "10ca3b015afaff5d7812f0f5207b2535602136a5", "size": 2097152}, {"crc32": "06ae7e07", "name": "24013001_left.u70", "sha1": "39a45575b66906d73b519988d1001c99b05c5f34", "size": 2097152}, {"crc32": "757618f2", "name": "21012901_right.u83", "sha1": "43f9a3e7d544979f8c6974945914d9e099b02abd", "size": 2097152}, {"crc32": "0d271470", "name": "21012901_left.u70", "sha1": "5cd4b604bfe2fd7e9a8d08e1c7c97f17ae068479", "size": 2097152}, {"crc32": "5b20a96c", "name": "19012801_right.u83", "sha1": "5fd916b7cc2cdd51bf7dd212c1114f94dc9c7926", "size": 2097152}, {"crc32": "b03bd17c", "name": "19012801_left.u70", "sha1": "f281e80f6dda5b727ed71d2deebe3b0ff548773f", "size": 2097152}, {"crc32": "e627dbfa", "name": "13012001_right.u83", "sha1": "4fedbe0975ceb7dc0ebebf18a7708d78984db9b7", "size": 2097152}, {"crc32": "38e8f659", "name": "13012001_left.u70", "sha1": "88c6acba99b0aca023c6f4d27c061c231490e9e0", "size": 2097152}, {"crc32": "73dcb11c", "name": "11011901_right.u83", "sha1": "69ae4f32a0c9141b2a82ff3935b0cd20333d2964", "size": 2097152}, {"crc32": "d3dd2210", "name": "11011901_left.u70", "sha1": "3548f8cc39859d3f44a55f6bae48966a2d48e0eb", "size": 2097152}, {"crc32": "de4c3aed", "name": "11011501_right.u83", "sha1": "21596a2edd20eb7de7a4ec8900a270b09c8f326f", "size": 2097152}, {"crc32": "c5cc3461", "name": "11011501_left.u70", "sha1": "5b43c4cb6110a6ccf67cd0f3789253f6872b20c4", "size": 2097152}, {"crc32": "8a853f80", "name": "09011001_right.u83", "sha1": "9a75498f7b02c81a483b4e1c158f35f0ee4c0112", "size": 2097152}, {"crc32": "229c2e63", "name": "09011001_left.u70", "sha1": "91fd2b1acb69efe073647e93db9f11042add2feb", "size": 2097152}, {"crc32": "8c148c11", "name": "07010801_right.u83", "sha1": "5ff3be18455b4f04675fec8d5b9d881295c65e23", "size": 2097152}, {"crc32": "8e92af68", "name": "07010801_left.u70", "sha1": "00d2bb655b7964a9652896741210ec534df0b0d2", "size": 2097152}, {"crc32": "c12eac11", "name": "05010601_right.u83", "sha1": "683b9ddc323865ace7dca37d13b55de6e42759a5", "size": 1048576}, {"crc32": "b3e6b4a0", "name": "05010601_left.u70", "sha1": "3bf398c9257579f8e51ce716d6ebfa74fa510273", "size": 1048576}, {"crc32": "3daefb7a", "name": "04010501_right.u83", "sha1": "411471713219f4bab5ccf5fe7a12a6c138c8c550", "size": 1048576}, {"crc32": "21182775", "name": "04010501_left.u70", "sha1": "7c5b7f5aba3babc85f512a8f7d4ebc0d83eb842a", "size": 1048576}, {"crc32": "a34a9f16", "name": "03010301.u84", "sha1": "b8750e6ceb1715da8e5ac2f0183254e29a042641", "size": 1048576}, {"crc32": "d793440a", "name": "03010301.u71", "sha1": "dced4c04bde13293af77a9a1f4c5c606e3758de0", "size": 1048576}, {"crc32": "c8580554", "name": "03010301.u83", "sha1": "58b8bfff2f8d298c4e3be2b01900800c45fa7ad7", "size": 1048576}, {"crc32": "5ae69121", "name": "03010301.u70", "sha1": "36dd3f9aaf5f7d2751d1954d67f898bc3ec71f3b", "size": 1048576}, {"crc32": "0920930f", "name": "02010201.u84", "sha1": "771b0f62442d1c75b1bb59ad82365b7ab8747173", "size": 1048576}, {"crc32": "24d5614a", "name": "02010201.u71", "sha1": "fdcf3826dccc72b74b66379b1411cf211d5a1670", "size": 1048576}, {"crc32": "5f64a20c", "name": "02010201.u83", "sha1": "397404ab6d2a1aa3c1fc77bb9421fef7079b65a5", "size": 1048576}, {"crc32": "9b2db442", "name": "02010201.u70", "sha1": "d512398a2d9257bd385dc50d61c63cd1a47300ba", "size": 1048576}, {"crc32": "183e3836", "name": "02010114.u84", "sha1": "4c802d0cd010bc007acb3a83e37aaa29b2d13d87", "size": 1048576}, {"crc32": "8f83c3dd", "name": "02010114.u71", "sha1": "a5f9d80b4b515b24299d0241e1665cfd9da8bab7", "size": 1048576}, {"crc32": "945104d7", "name": "02010114.u83", "sha1": "e372d0cf889c72b5d001b26fe4a925a28486537f", "size": 1048576}, {"crc32": "3ba4379f", "name": "02010114.u70", "sha1": "84367f12c4c9224d2ab9cae83ae8727de338408c", "size": 1048576}, {"crc32": "2ecd8da8", "name": "25012805_right.u83", "sha1": "389e9668b2ba4fffed5d2721b2ce70d502fb9f67", "size": 2097152}, {"crc32": "996f32ce", "name": "25012805_left.u70", "sha1": "cf21bef745986fcbd298167453c7b8e5945ce602", "size": 2097152}, {"crc32": "045b82ad", "name": "20012605_right.u83", "sha1": "b8e4f9f826970d83ae5fd2f2898de12ad1bf2d24", "size": 2097152}, {"crc32": "87331111", "name": "20012605_left.u70", "sha1": "6cdc2d81f68de23af18a975a6f27ddec246be405", "size": 2097152}, {"crc32": "e436c1f5", "name": "20012305_right.u83", "sha1": "62ee529cc971fd76aa2ccc15778e3f0c40e3e47f", "size": 2097152}, {"crc32": "ea8961cc", "name": "20012305_left.u70", "sha1": "0ebc7c3b94a6e01ee984af4711043130d9670bd3", "size": 2097152}, {"crc32": "2bec5b74", "name": "14011605_right.u83", "sha1": "854733cada75e632f01f7096d4740ed4941a3d5b", "size": 2097152}, {"crc32": "cd26d4f0", "name": "14011605_left.u70", "sha1": "40822714abf08aeb08d827dbd8cd099f86803754", "size": 2097152}, {"crc32": "ca6bc86c", "name": "04041205_right.u83", "sha1": "69fe7fc35694e4cd7f861bff4ec3a6165a81df6e", "size": 1048576}, {"crc32": "dfb9a119", "name": "04041205_left.u70", "sha1": "814a5a7877392aec4e4871d7f0e19d2fbd717409", "size": 1048576}, {"crc32": "bce3d97f", "name": "03130334_right.u83", "sha1": "da36377cc1465022a2434703adee63bf48c71a9c", "size": 2097152}, {"crc32": "02175fde", "name": "03130334_left.u70", "sha1": "4e9a9e1e803a0c84b06aec99dc3147dd7a919eee", "size": 2097152}, {"crc32": "cf5a9d1e", "name": "01040505.u84", "sha1": "0ebba478fc883831d70b0fa95f43e5f93b07ae9e", "size": 1048576}, {"crc32": "f56ea77e", "name": "01040505.u71", "sha1": "319be1bee66a289e2c1f6beec07758f79aa0cf16", "size": 1048576}, {"crc32": "90f32169", "name": "01040505.u83", "sha1": "228be8b4a9eb6b2acf7f7a7561bd194009936026", "size": 1048576}, {"crc32": "b9ddea66", "name": "01040505.u70", "sha1": "f4bfdeada39a3f0094d6468b7374a34f88f5df7f", "size": 1048576}, {"crc32": "b4b3c6a5", "name": "03030708_right.u83", "sha1": "5747f98a6eaa5c24a23d1d76a28b33a3bfbbfd1f", "size": 1048576}, {"crc32": "4e5ad823", "name": "03030708_left.u70", "sha1": "77ab1c29c6172cfdcef776222a72b2b44114d4da", "size": 1048576}, {"crc32": "01d13b89", "name": "14011913_right.u83", "sha1": "b1013366d0803dfbec5a5f90f6a5cea862de0513", "size": 2097152}, {"crc32": "9a4cefdf", "name": "14011913_left.u70", "sha1": "6c15bc565ede8af19361d60ee1e6657a8055c92c", "size": 2097152}, {"crc32": "7e3f61f6", "name": "14010152_right.u83", "sha1": "1e27d72c35b0c633187159ef434f22398df28882", "size": 2097152}, {"crc32": "2716e1ef", "name": "14010152_left.u70", "sha1": "81fe1ae4f9cd1bcb24795ce85913ee22ed0fabcd", "size": 2097152}, {"crc32": "7a8619a5", "name": "02061013_right.u83", "sha1": "bd03ddb68817c1660b009e102ccf69e5b603b875", "size": 1048576}, {"crc32": "e70a7007", "name": "02061013_left.u70", "sha1": "0935f924866162d9c0fbdbb99391cbf730a04b76", "size": 1048576}, {"crc32": "31068c41", "name": "02060913_right.u83", "sha1": "962da0079495a64f7ffb34be643892c272017cc9", "size": 1048576}, {"crc32": "d6a6713c", "name": "02060913_left.u70", "sha1": "0f3bb2746f1a6fa6a587fd50827299408a3b28d2", "size": 1048576}, {"crc32": "bf21a975", "name": "15011025_right.u83", "sha1": "a251b1a7342387300689cd50fe4ce7975b903ac5", "size": 2097152}, {"crc32": "c02e14b0", "name": "15011025_left.u70", "sha1": "6bf98927813519dfe60e582dbe5be3ccd87f7c91", "size": 2097152}, {"crc32": "eddeff13", "name": "24010467_right.u83", "sha1": "77ccbcf40aeb7305eb13d6d24efafd09955f1eac", "size": 2097152}, {"crc32": "9093d820", "name": "24010467_left.u70", "sha1": "05bb14895e3077d277a1d0822036d08f359c0307", "size": 2097152}, {"crc32": "2dae8ca0", "name": "01.04.11_right.u83", "sha1": "7a0fb38b4c1ac7195d15bdab6f0cfb16c78430f0", "size": 2097152}, {"crc32": "787f2b07", "name": "01.04.11_left.u70", "sha1": "2548289e44f4b935346b759afb5383bdbac04c3e", "size": 2097152}, {"crc32": "82ce2fcc", "name": "01.04.10_right.u83", "sha1": "4c8fb3db084a67e99d1420b3f895a06ce9ef5ec2", "size": 2097152}, {"crc32": "9d9d52c1", "name": "01.04.10_left.u70", "sha1": "b957220cdbedd516c219d1bfc28807ce466df93f", "size": 2097152}, {"crc32": "95333304", "name": "01.04.08_right.u83", "sha1": "7afe49d6c5e4d6820f349778557daa88c5366a51", "size": 2097152}, {"crc32": "0dfcad10", "name": "01.04.08_left.u70", "sha1": "53798be000304aed38909f5fd8470a68bedd8229", "size": 2097152}, {"crc32": "23c28e22", "name": "01.04.07_right.u83", "sha1": "98f24a1f86232b6c2c288a61ec7d60c867f192e5", "size": 2097152}, {"crc32": "acfb0fe0", "name": "01.04.07_left.u70", "sha1": "b1a772d7978e6ff4406a5bb39a71cb3f89608e72", "size": 2097152}, {"crc32": "e57ba02d", "name": "01.04.04_right.u83", "sha1": "8e29403e6b619eeab41dc171221720bc7820ccdc", "size": 2097152}, {"crc32": "b984a92c", "name": "01.04.04_left.u70", "sha1": "90f7a61302caee40195c08565bdac856a3234c1d", "size": 2097152}, {"crc32": "1582714b", "name": "01.03.17_right.u83", "sha1": "92d0a15314ffe526159bef9a364898dd1ebdfde7", "size": 2097152}, {"crc32": "a88193dc", "name": "01.03.17_left.u70", "sha1": "c9e1d483edaecd318d2e5fc8a54e84516c93e0ca", "size": 2097152}, {"crc32": "889ffd82", "name": "01.03.14_right.u83", "sha1": "9c98c9cdcf5f7d05095f11006418133029e9f0f8", "size": 2097152}, {"crc32": "7138fec4", "name": "01.03.14_left.u70", "sha1": "f81331d1875ac574d3e6c98be218ff25c6c7be5a", "size": 2097152}, {"crc32": "2ebccc4e", "name": "01.03.07_right.u83", "sha1": "9342724e4451e9ab24ceae208284b50abd4f0be3", "size": 2097152}, {"crc32": "a3632da4", "name": "01.03.07_left.u70", "sha1": "1c96a88e86095b81801ab88e36a4cdfa4b893265", "size": 2097152}, {"crc32": "bd48ca55", "name": "01.03.06_right.u83", "sha1": "8fb1576cbeb1c64c358880714740195d2e73e03e", "size": 2097152}, {"crc32": "2f9d9a29", "name": "01.03.06_left.u70", "sha1": "fdebfaca9a579d7249379f19aef22fbfd66bf943", "size": 2097152}, {"crc32": "2c7f1ec3", "name": "01.03.05_right.u83", "sha1": "d03167f43ed6f9596080d91472695829378cef0a", "size": 2097152}, {"crc32": "0095e3f9", "name": "01.03.05_left.u70", "sha1": "d2e8786158b1ab0a614aab21cf1d14cbc04754af", "size": 2097152}, {"crc32": "2255e263", "name": "01.03.03e_right.u83", "sha1": "5e9e093aaa17172f47a14c3baf7f6f0f73b19398", "size": 2097152}, {"crc32": "ea50729a", "name": "01.03.03e_left.u70", "sha1": "14b5a71bfb91ac366ddcb5f77fb54127808f8163", "size": 2097152}, {"crc32": "253415f4", "name": "01.03.03a_right.u83", "sha1": "50dc77ad87bc6be1932dda2fd4865602c8c49729", "size": 2097152}, {"crc32": "4ab5dd40", "name": "01.03.03a_left.u70", "sha1": "a6812cc624e6a98ea7b0697e2797fe10ba8e303e", "size": 2097152}, {"crc32": "aaaeac8c", "name": "01.02.08_right.u2", "sha1": "a565e5fcb4f55f31e7d36be40eec234248a66efd", "size": 1048576}, {"crc32": "f29fd1bf", "name": "01.02.08_left.u3", "sha1": "33e043d2616e10a1c7a0936c3d208f9bcc2ca6f3", "size": 1048576}, {"crc32": "e920e940", "name": "01.02.02_right.u2", "sha1": "52e28d4765a3e953bb70dc4ed13d96d4180be996", "size": 1048576}, {"crc32": "1d0f4093", "name": "01.02.02_left.u3", "sha1": "17d6328dba9826b58f39393ca2f2daac1b7161ef", "size": 1048576}, {"crc32": "6f5f5ef1", "name": "06.03.04_right.u2", "sha1": "70a43fba4de47ed8dcf38b25eafd5873f3428e72", "size": 1048576}, {"crc32": "7034f26b", "name": "06.03.04_left.u3", "sha1": "7be78f23bec38d05240cdfe1186ec0c8291f5a1c", "size": 1048576}, {"crc32": "98763498", "name": "06.03.03_right.u2", "sha1": "246e95cc12eb34f946b2f4938c59217718f6d841", "size": 1048576}, {"crc32": "a6924238", "name": "06.03.03_left.u3", "sha1": "b71ab39bf9c1fdbab556028138749e8c040ec83c", "size": 1048576}, {"crc32": "e4001f60", "name": "06.02.20_right.u83", "sha1": "5da34efb1ac0f7c84a48e09363d20cfecda4bcf1", "size": 1048576}, {"crc32": "199ed3b9", "name": "06.02.20_left.u70", "sha1": "e3ee81ffd713f09e35a10c38e4f59282e2c5cd30", "size": 1048576}, {"crc32": "1cf5a853", "name": "06.02.04_right.u2", "sha1": "64d17efcce702df7a0b0e151293199478e25226d", "size": 1048576}, {"crc32": "117b75f2", "name": "06.02.04_left.u3", "sha1": "2129286853d3c50b8a943b71334d4ef6b98adc05", "size": 1048576}, {"crc32": "58730ed3", "name": "gambs2m_01.05.07.u3", "sha1": "6e9c9d7960fe0ef083ff824287a99d9c0b9f5e6a", "size": 131072}], "name": "aristmk6.zip", "required": true, "source_ref": "src/mame/aristocrat/aristmk6.cpp:6639"}, {"category": "bios_zip", "contents": [{"crc32": "f2fea07e", "name": "mk7-bios_590176_01_1.00.7.u1", "sha1": "285038473fbe3a5708045e2f8b14562f3c24b203", "size": 1048576}], "name": "aristmk7.zip", "required": true, "source_ref": "src/mame/aristocrat/aristmk7.cpp:233"}, {"category": "bios_zip", "contents": [{"crc32": "e4fb64fb", "name": "6530-009.u5", "sha1": "a3d9de7cbfb42180a860e0bbbeaeba96d8bd1e20", "size": 1024}, {"crc32": "dca980dd", "name": "6530-010.u6", "sha1": "3817d75413854d889fc1ce4fd6a51d820d1e0534", "size": 1024}, {"crc32": "13f42789", "name": "6530-011.u3", "sha1": "baa0f73fda08a3c5d6f1423fb329e4febb07ef97", "size": 1024}], "name": "allied.zip", "required": true, "source_ref": "src/mame/pinball/allied.cpp:775"}, {"category": "bios_zip", "contents": [{"crc32": "ed0d518b", "name": "a-110.u12", "sha1": "8f3ca8792ad907c660d9149a1aa3a3528c7573e3", "size": 2048}, {"crc32": "a223f2e8", "name": "b1-110.u13", "sha1": "767e15e19e11399935c890c1d1034dccf1ad7f92", "size": 2048}], "name": "gp_110.zip", "required": true, "source_ref": "src/mame/pinball/gp_1.cpp:577"}, {"category": "bios_zip", "contents": [{"crc32": "614a3bd9", "name": "a1752cf.u5", "sha1": "febca18fb6f96037ca82e515dd161dfcb0e4c776", "size": 2048}, {"crc32": "4cd312dd", "name": "a1753ce.u4", "sha1": "31245daa9972ef8652caee69986585bb8239e86e", "size": 2048}], "name": "gts1.zip", "required": true, "source_ref": "src/mame/pinball/gts1.cpp:1074"}, {"category": "bios_zip", "contents": [{"crc32": "d0c4695d", "name": "a2361.b1", "sha1": "4846adb3f6c292626840ba5255ffc5e788a69301", "size": 1024}, {"crc32": "39a70611", "name": "a2362.b2", "sha1": "8545e168a5f256150bcff12d1e6d8efffd08c3cd", "size": 1024}], "name": "recel.zip", "required": true, "source_ref": "src/mame/pinball/recel.cpp:547"}, {"category": "bios_zip", "contents": [{"crc32": "248910ed", "description": "BIOS47 (Acorp 694XT/694XT1)", "name": "bios47.bin", "sha1": "2901c94fb003e5eaea7e91127ad1f7953826a248", "size": 262144}, {"crc32": "90074f2b", "description": "BIOS46 (Acorp 694XT/694XT1)", "name": "bios46.bin", "sha1": "08fdabad6114ede03a15ce51dec775080585b650", "size": 262144}, {"crc32": "790d5db0", "description": "BIOS45 (Acorp 694XT/694XT1)", "name": "bios45.bin", "sha1": "6bbfb35275eb0c7bb740ff9b1e299042d4c5952a", "size": 262144}, {"crc32": "a4b2703e", "description": "BIOS44 (Acorp 694XT/694XT1)", "name": "bios44.bin", "sha1": "9baa5e3aaaf120054979039e42bf1bca2a50616e", "size": 262144}, {"crc32": "820c057e", "description": "BIOS42 (Acorp 694XT/694XT1)", "name": "bios42.bin", "sha1": "b553961c1bbb6b4afa366eb0dba7ed29ca148f5e", "size": 262144}, {"crc32": "0940aebd", "description": "BIOS41 (Acorp 694XT/694XT1)", "name": "bios41.bin", "sha1": "38c8645eed9e17ef8e2cd0856f929697ce13df74", "size": 262144}, {"crc32": "c5ed7d4f", "description": "BIOS40 (Acorp 694XT/694XT1)", "name": "bios40.bin", "sha1": "9fcffb385b5d68bf8cf87615ffee781f38f5fb74", "size": 262144}, {"crc32": "e7541a28", "description": "BIOS39 (unknown motherboard)", "name": "bios39.bin", "sha1": "dad1aff2cb142d65e7c8736064dce8004451ea4b", "size": 262144}, {"crc32": "cb49085b", "description": "BIOS38 (unknown motherboard)", "name": "bios38.bin", "sha1": "867b95ebef8fd53dad5b71cd4430ede08cf03540", "size": 262144}, {"crc32": "9f35e2d2", "description": "BIOS37 (unknown motherboard)", "name": "bios37.bin", "sha1": "83026fc9fc72f795bc3229af98099b409c9bdc81", "size": 262144}, {"crc32": "83ca05e9", "description": "BIOS36 (unknown motherboard)", "name": "bios36.bin", "sha1": "9d06677907c88481a167e52cc149995cfef0ff40", "size": 262144}, {"crc32": "d5a2f966", "description": "BIOS35 (unknown motherboard)", "name": "bios35.bin", "sha1": "4f4c9688501814bc00b4cde58ac590b6e961816e", "size": 262144}, {"crc32": "400702fe", "description": "BIOS34 (unknown motherboard)", "name": "bios34.bin", "sha1": "63a9e04d2ea3d4ace3e5c9f11cc62d0131bc4af0", "size": 262144}, {"crc32": "96658274", "description": "BIOS33 (Soyo SY-7IZB+)", "name": "bios33.bin", "sha1": "1a5fc83cf84a4c774abc055688fa0c32c3784086", "size": 262144}, {"crc32": "63318d8a", "description": "BIOS32 (Soyo SY-7IZB+)", "name": "bios32.bin", "sha1": "1194a30a65186f2d0a9e11742d51232598c16011", "size": 262144}, {"crc32": "5121b267", "description": "BIOS31 (Soyo SY-7IZB+)", "name": "bios31.bin", "sha1": "97e51ed4d53d19ed69db1faba5395b46a1edb6b0", "size": 262144}, {"crc32": "c6e30fb1", "description": "BIOS30 (Soyo SY-7IZB+)", "name": "bios30.bin", "sha1": "1d9a900a5383bf58b66a2e9f7fb34c61397dd327", "size": 262144}, {"crc32": "ddbd94f4", "description": "BIOS29 (Soyo SY-5EAS)", "name": "bios29.bin", "sha1": "60ad74e56265a7936cf19e8480c657223d11f2d0", "size": 131072}, {"crc32": "ddbd94f4", "description": "TEST (Soyo SY-5EAS)", "name": "test.bin", "sha1": "60ad74e56265a7936cf19e8480c657223d11f2d0", "size": 131072}], "name": "slvrball.zip", "required": true, "source_ref": "src/mame/misc/silverball.cpp:258"}, {"category": "bios_zip", "contents": [{"crc32": "67374715", "name": "va1b102.u2", "sha1": "8767cbd81614c2686a1adb70159f909e8ffd634d", "size": 131072}, {"crc32": "b92a83c8", "name": "va1b101.u2", "sha1": "bd6d9adaa74cf7512478838d1bd5a79dbd0c4aa1", "size": 131072}, {"crc32": "36135792", "name": "va1a101.u2", "sha1": "1b9c50bd02df8227b228b35cc485efd5a13ec639", "size": 131072}], "name": "nichidvd.zip", "required": true, "source_ref": "src/mame/nichibutsu/hrdvd.cpp:1012"}, {"category": "bios_zip", "contents": [{"crc32": "86c4a4f0", "name": "magnet-master-vid-e03.bin", "sha1": "6db1a006b2e0b2a7cc9748ade881debb098b6757", "size": 8192}], "name": "cedmag.zip", "required": true, "source_ref": "src/mame/efo/cedar_magnet.cpp:1166"}, {"category": "bios_zip", "contents": [{"crc32": "e0fc1a16", "description": "Eagle 40MB bootrom 2.09", "name": "eagle_u15_v209.u15", "sha1": "c9524f7ee6b95bd484a3b75bcbe2243cb273f84c", "size": 1048576}, {"crc32": "772f2864", "description": "Eagle 40MB bootrom 2.08", "name": "eagle_u15_v208.u15", "sha1": "085063a4e34f29ebe3814823cd2c6323a050da36", "size": 1048576}, {"crc32": "f02e5523", "description": "Eagle 40MB bootrom 2.04", "name": "eagle_u15_v204.u15", "sha1": "b979cf72a6992f1ecad9695a08c8d51e315ab537", "size": 1048576}, {"crc32": "e180442b", "description": "Eagle 40MB bootrom 2.01", "name": "eagle_u15_v201.u15", "sha1": "4f50821fed5bcd786d989520aa2559d6c416fb1f", "size": 1048576}, {"crc32": "97a01fc9", "description": "Eagle 40MB bootrom 1.07", "name": "golf_fore_u15_v107.u15", "sha1": "a421dbf4d097b2f50cc005d3cd0d63e562e03df8", "size": 1048576}, {"crc32": "9c79b7ad", "description": "Eagle 40MB bootrom 1.06a", "name": "golf_fore_u15_v106a.u15", "sha1": "ccf1c86e79d65bee30f399e0fa33a7839570d93b", "size": 1048576}, {"crc32": "56bc193d", "description": "Eagle 40MB bootrom 1.06", "name": "golf_fore_u15_v106.u15", "sha1": "e531d208ef27f777d0784414885f390d1be654b9", "size": 1048576}, {"crc32": "3870dbe0", "description": "Eagle 40MB bootrom 1.05", "name": "golf_fore_u15_v105.u15", "sha1": "09be2d86c7259cd81d945c757044b167a76f30db", "size": 1048576}, {"crc32": "c35f4cf2", "description": "Eagle bootrom 1.03", "name": "golf_fore_u15_v103.u15", "sha1": "45301c18c7f8f78754c8ad60ea4d2da5a7dc55fb", "size": 1048576}, {"crc32": "1fd39e73", "description": "BBH 8meg bootrom 1.02", "name": "bbh_u15_v102.u15", "sha1": "d1ac758f94defc5c55c62594b3999a406dd9ef1f", "size": 1048576}, {"crc32": "4c000c5e", "description": "Eagle bootrom 1.02", "name": "golf_fore_u15_v102.u15", "sha1": "4fd5ea2a0874759b621c9cd52cee55d282443e5d", "size": 1048576}, {"crc32": "2600bc2b", "description": "Eagle bootrom 1.01", "name": "golf_fore_u15_v101.u15", "sha1": "c4b89e69c51e4a3bb1874407c4d30b6caed4f396", "size": 1048576}, {"crc32": "62c4af8a", "name": "17s20lpc_sb4.u26", "sha1": "6eca277b9c66a401990599e98fdca64a9e38cc9a", "size": 32768}, {"crc32": "c88b9d42", "name": "17s20lpc_sb5.u26", "sha1": "b912d0fc50ecdc6a198c626f6e1644e8405fac6e", "size": 32768}, {"crc32": "f5cf3187", "name": "17s50a_red1.u26", "sha1": "83b4a14de9959e5a776d97d424945d43501bda7f", "size": 131072}, {"crc32": "9d1e1ace", "name": "e2-card1.u22.jed", "sha1": "287d6a30e9f32137ef4eba54f0effa092c97a6eb", "size": 3025}, {"crc32": "4f1ff45a", "name": "e2-res3.u117.jed", "sha1": "213cbdd6cd37ad9b5bfc9545084892a68d29f5ff", "size": 3025}], "name": "iteagle.zip", "required": true, "source_ref": "src/mame/itech/iteagle.cpp:756"}, {"category": "bios_zip", "contents": [{"crc32": "c6c32f1a", "name": "hmc86304_bios_v208.u7", "sha1": "a07ade7f0567e1978cd8cee73c6a5d7b5e5f947f", "size": 32768}, {"crc32": "811d3639", "name": "amibios_486dx_isa_bios.u32", "sha1": "a64d6026c16ac8c79f22b2c241f149402449fafb", "size": 65536}, {"crc32": "8354d059", "name": "ver_151_03_u16.u16", "sha1": "a88df7cc259c1c39316cc3bff9e08aa4e8d3d2c0", "size": 131072}, {"crc32": "ace4081d", "name": "ver_151_03_u17.u17", "sha1": "f57287ded53f8d127bcdc9e34b8adb356fe55e5e", "size": 131072}, {"crc32": "9a6b553a", "name": "wfc062_212.u62", "sha1": "7045f733446866ee3171e175e1b22d9384fda1b5", "size": 32768}, {"crc32": "528142eb", "name": "wi01p006.u6", "sha1": "2c152c6540f3d38cb881296decba957f8b5c7c58", "size": 2194}, {"crc32": "528142eb", "name": "wi01p026.u26", "sha1": "2c152c6540f3d38cb881296decba957f8b5c7c58", "size": 2194}, {"crc32": "a2ad9cf8", "name": "wi01p044.u44", "sha1": "67d44807f7346baf87c15d35c27458b0a7d5de89", "size": 2194}, {"crc32": "e2a13df7", "name": "wi01p045.u45", "sha1": "eaa5ee3a92d11f0722934cb6d3443ead903dc78f", "size": 2194}, {"crc32": "4c22fba5", "name": "wi01p046.u46", "sha1": "6fabc7a0790f8b883b83fa6fe5f1ee1302d284e2", "size": 2194}, {"crc32": "7cb0931f", "name": "wi01p050.u50", "sha1": "394c100b33e5b8d1b2f4979399ad0791af39da28", "size": 2194}, {"crc32": "d2eb2493", "name": "wi01p053.u53", "sha1": "a66b4733da0f4f0869839630063c52a733f5ea8c", "size": 2194}, {"crc32": "96d3506e", "name": "wi01p054.u54", "sha1": "682ba8a7a17176ff41047cd9a9cfefdc2dc0fd64", "size": 2194}, {"crc32": "8bf57db4", "name": "wi01p056.u56", "sha1": "1a5315397b1903c36d7450e873603584db8a00e8", "size": 2194}, {"crc32": "882f6405", "name": "wi01p058.u58", "sha1": "e3b7c278f4ee9e0e11741d9ed7c5b32978a3d185", "size": 2194}, {"crc32": "a97cff8e", "name": "wi01p067.u67", "sha1": "78451a4bffecd4e1655e7a89971e28b47f5c8829", "size": 2194}, {"crc32": "3d1adb17", "name": "wi01p075.u75", "sha1": "b1af8c069de3df3c757e211b372f535b513c6326", "size": 2194}, {"crc32": "3d3ad152", "name": "wi01p079.u79", "sha1": "a769bc80514873c2f238e6c8842c5b23596b4a42", "size": 2194}, {"crc32": "657a4495", "name": "wi01p080.u80", "sha1": "c5bbd5e5f065a99f9f3d7ce89ca833779c338da5", "size": 2194}, {"crc32": "b9958131", "name": "wi01p048.u48", "sha1": "058203eefb1645a446ff3ff4a170a673ad65076c", "size": 2706}, {"crc32": "820d245a", "name": "wi01p049.u49", "sha1": "8690e6eb46617c3dc78e1b233970a9318101101c", "size": 2706}, {"crc32": "4322291e", "name": "wi01p070.u70", "sha1": "e8751b585a4fb3f371e67616abf48c9d23847b77", "size": 2706}, {"crc32": "fe77b66b", "name": "wi01p072.u72", "sha1": "aa13619346a566613f0fa9e3723419f65ffd3ea8", "size": 2706}, {"crc32": "e02fe7c1", "name": "wi01p073.u73", "sha1": "ca22b30391453daae943007a0c04b5a28a958c18", "size": 2706}, {"crc32": "fca2823c", "name": "wi01p074.u74", "sha1": "6628f1ba3827a3d333ed88c5f20ca94a1439c75e", "size": 2706}, {"crc32": "902731aa", "name": "wi01p083.u83", "sha1": "862c2e6fb75fbd712aeaf9eb3b8a84210332fa66", "size": 2706}, {"crc32": "f996657e", "name": "wi01p092.u92", "sha1": "01c2c774a9d5f4bcb78742cd606864eff512bfce", "size": 2706}, {"crc32": "bab34c4b", "name": "wi02p000.u23", "sha1": "a3f4f17a122cc0d063cb700b3d183b894d857cb4", "size": 2706}, {"crc32": "b438ce94", "name": "wi02p001.u32", "sha1": "f36c681b3d09835393a8be5079263915d3480b88", "size": 2706}, {"crc32": "bab34c4b", "name": "wi02p002.u22", "sha1": "a3f4f17a122cc0d063cb700b3d183b894d857cb4", "size": 2706}, {"crc32": "b438ce94", "name": "wi02p003.u31", "sha1": "f36c681b3d09835393a8be5079263915d3480b88", "size": 2706}, {"crc32": "bab34c4b", "name": "wi02p004.u6", "sha1": "a3f4f17a122cc0d063cb700b3d183b894d857cb4", "size": 2706}, {"crc32": "b438ce94", "name": "wi02p005.u14", "sha1": "f36c681b3d09835393a8be5079263915d3480b88", "size": 2706}, {"crc32": "bab34c4b", "name": "wi02p006.u5", "sha1": "a3f4f17a122cc0d063cb700b3d183b894d857cb4", "size": 2706}, {"crc32": "b438ce94", "name": "wi02p007.u13", "sha1": "f36c681b3d09835393a8be5079263915d3480b88", "size": 2706}, {"crc32": "7c421890", "name": "wi02p008.u51", "sha1": "49d0ab674a8cb4e18ae5ba570132111ed3ccd546", "size": 2194}, {"crc32": "ff63d60c", "name": "wi02p009.u49", "sha1": "8ee8629cc24cd18b944ffab3830ed474a1189179", "size": 2194}, {"crc32": "68f48053", "name": "wi02p010.u72", "sha1": "17ae9f5caa4b2f4ff700ce44294d3d2881bd4e62", "size": 2194}, {"crc32": "78701d0f", "name": "wi02p011.u88", "sha1": "089d5df945638cb811caa963430f5d6658c68947", "size": 2194}, {"crc32": "1c489ff9", "name": "wi02p012.u85", "sha1": "a0e1c00c9a5dd870b84f869070961d25724cea92", "size": 2194}, {"crc32": "19de958f", "name": "wi02p013.u86", "sha1": "a160f6b0e2a7e42457b470dbcf9415feaad880aa", "size": 2194}, {"crc32": "845e4d48", "name": "wi02p014.u82", "sha1": "6aaeabad0e86fe480773b4b51ca4f7c1c8935993", "size": 2194}, {"crc32": "a10d1876", "name": "wi02p015.u74", "sha1": "4091fa0a3abb2baeabcc6b250342cf29829af21a", "size": 2194}, {"crc32": "d84b58c2", "name": "wi02p016.u52", "sha1": "087b5a56ddb6bef6b1bc93b9a8e0d23de27aa399", "size": 2194}], "name": "su2000.zip", "required": true, "source_ref": "src/mame/misc/su2000.cpp:302"}, {"category": "bios_zip", "contents": [{"crc32": "1fd27e22", "description": "V4-60", "name": "v4-60.ic29", "sha1": "b103d365eac3fa447c2e9addddf6974b4403ed41", "size": 32768}, {"crc32": "87cf66c1", "description": "V4-55", "name": "v4-55.ic29", "sha1": "d6b42137be7a07a0e299c2d922328a6a9a2b7b8f", "size": 32768}, {"crc32": "125e7a6e", "description": "V4-54", "name": "v4-54.ic29", "sha1": "6f03c49acaad4feb9c2187f84fc1cb5451d0eb2b", "size": 32768}, {"crc32": "bccb53c9", "description": "V4-53", "name": "v4-53.ic29", "sha1": "a27113d70cf348c7eafa39fc7a76f55f63723ad7", "size": 32768}, {"crc32": "ffd7b0fe", "description": "V4-52", "name": "v4-52.ic29", "sha1": "d1804865c91e925a01b05cf441e8458a3db23f50", "size": 32768}, {"crc32": "2de0b946", "description": "V4-51", "name": "v4-51.ic29", "sha1": "c13051453aff3a2329f18ebade75c69aa3b1c28d", "size": 32768}, {"crc32": "88da23f3", "description": "V4-43", "name": "v4-43.ic29", "sha1": "9d24faa116129783e55c7f79a4a08902a236d5a6", "size": 32768}, {"crc32": "0372606d", "description": "V4-42", "name": "v4-42.ic29", "sha1": "8c6a63865b0b4951ea032725cf022d353115b93b", "size": 32768}, {"crc32": "ba6290cc", "description": "V4-40", "name": "v4-40.ic29", "sha1": "92b0e9f55791e892ec209de4fadd80faef370622", "size": 32768}, {"crc32": "36012f88", "description": "VT-20", "name": "vt_2.0.bin", "sha1": "5bd42fb51aa48ff65e704ea06a9181bb87ed2137", "size": 32768}, {"crc32": "27abbc36", "description": "VT-11", "name": "vt_1.1.bin", "sha1": "881ea7802b9e241473bc8ced0472e0f1851c9886", "size": 32768}], "name": "tourvis.zip", "required": true, "source_ref": "src/mame/pce/tourvis.cpp:448"}, {"category": "bios_zip", "contents": [{"crc32": "e996bc18", "name": "vid.p1", "sha1": "49798165640627eb31024319353da04380787b10", "size": 65536}], "name": "v4bios.zip", "required": true, "source_ref": "src/mame/barcrest/mpu4vid.cpp:8696"}, {"category": "bios_zip", "contents": [{"crc32": "2ff7ec96", "name": "otp.dat", "sha1": "633365fd19a3d0f2ce56cb499b2577a5fb53e466", "size": 16384}], "name": "miuchiz.zip", "required": true, "source_ref": "src/mame/misc/miuchiz.cpp:227"}, {"category": "bios_zip", "contents": [{"crc32": "a2b5546b", "description": "mk3 v1.0", "name": "mk3_1.0_bios.u22", "sha1": "d99d29615e2b9c8784e03d4270cf7bb6569f389d", "size": 131072}, {"crc32": "4540c23f", "description": "mk3 v1.1", "name": "mk3_1.1_bios.u22", "sha1": "bba697dbe234e4f14c23aac126ea36df216f8c93", "size": 131072}, {"crc32": "5911e31a", "name": "piu10.u8", "sha1": "295723b9b7da9e55b5dd5586b23b06355f4837ef", "size": 2097152}, {"crc32": "9c436cfa", "name": "piu10.u9", "sha1": "480ea52e74721d1963ced41be5c482b7b913ccd2", "size": 2097152}], "name": "pumpitup.zip", "required": true, "source_ref": "src/mame/misc/xtom3d.cpp:996"}, {"category": "bios_zip", "contents": [{"crc32": "ebc77f3a", "name": "astro.bin", "sha1": "b902c941997c9d150a560435bf517c6a28137ecc", "size": 8192}], "name": "astrocde.zip", "required": true, "source_ref": "src/mame/midway/astrohome.cpp:295", "system": "astrocde"}, {"category": "bios_zip", "contents": [{"crc32": "d7c517ba", "name": "ballyhlc.bin", "sha1": "6b2bef5d970e54ed204549f58ba6d197a8bfd3cc", "size": 8192}], "name": "astrocdl.zip", "required": true, "source_ref": "src/mame/midway/astrohome.cpp:296", "system": "astrocde"}, {"category": "bios_zip", "contents": [{"crc32": "6eb53e79", "name": "bioswhit.bin", "sha1": "d84341feec1a0a0e8aa6151b649bc3cf6ef69fbf", "size": 8192}], "name": "astrocdw.zip", "required": true, "source_ref": "src/mame/midway/astrohome.cpp:297", "system": "astrocde"}, {"category": "bios_zip", "contents": [{"crc32": "e1c11fb0", "name": "341s0632-2.bin", "sha1": "141d18c36a617ab9dce668445440d34354be0672", "size": 4096}, {"crc32": "2d541944", "name": "344s0047.bin", "sha1": "5a5a77c8ec45632aea1a57cd9c9257f7f6e44668", "size": 16384}, {"crc32": "8d410067", "name": "341-0728", "sha1": "c0f4704233ead14cb8e1e8a68fbd7063c56afd27", "size": 131072}, {"crc32": "18190283", "name": "341-0748", "sha1": "c70576869deec92ca82c78438b1d5c686eac7480", "size": 65536}], "name": "apple2gs.zip", "required": true, "source_ref": "src/mame/apple/apple2gs.cpp:4004", "system": "apple2gs"}, {"category": "bios_zip", "contents": [{"crc32": "8c57ff9f", "name": "hd6437021.lsi302", "sha1": "17542ef275ea8ebeaaddd00d304232c3c355ea25", "size": 32768}, {"crc32": "8f51fa17", "name": "hn62434fa.lsi352", "sha1": "99f50be06b083fdb07e08f30b0b26d9037afc869", "size": 524288}], "name": "casloopy.zip", "required": true, "source_ref": "src/mame/casio/casloopy.cpp:2105", "system": "casio-loopy"}, {"category": "bios_zip", "contents": [{"crc32": "8f31f297", "name": "hn613128pc64.bin", "sha1": "94b5f54dd7bce321e377fdaaf592acd3870cf621", "size": 16384}], "name": "pv2000.zip", "required": true, "source_ref": "src/mame/casio/pv2000.cpp:427", "system": "casio-pv2000"}, {"category": "bios_zip", "contents": [{"crc32": "3aa93ef3", "name": "os7.u2", "sha1": "45bedc4cbdeac66c7df59e9e599195c778d86a92", "size": 8192}, {"crc32": "565b364a", "name": "alf @1 rev 57 e3d5.u8", "sha1": "ebdafad6e268e7ed1674c1fb89607622748a5b36", "size": 8192}, {"crc32": "44a1cff4", "name": "alf @2 rev 57 ae6a.u20", "sha1": "661cdf36d9699d6c21c5f9e205ebc41c707359dd", "size": 8192}, {"crc32": "77657b90", "name": "alf @3 rev 57 8534.u21", "sha1": "d25d32ab6c8fafbc21b4b925b3e644fa26d111f7", "size": 8192}, {"crc32": "ef6403c5", "name": "eos 6 rev 57 08dd.u22", "sha1": "28c7616cd02e4286f9b4c1c4a8b8850832b49fcb", "size": 8192}, {"bad_dump": true, "crc32": "58d86a2a", "name": "wp_r80.rom", "sha1": "d4aec4efe1431e56fe52d83baf9118542c525255", "size": 32768}, {"crc32": "035a7a3d", "name": "master rev a 174b.u6", "sha1": "0426e6eaf18c2be9fe08066570c214ab5951ee14", "size": 2048}], "name": "adam.zip", "required": true, "source_ref": "src/mame/coleco/adam.cpp:1137", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "ef204746", "name": "keyboard.u2", "sha1": "83162ffc75847328a05429135b728a63efb05b93", "size": 2048}], "name": "adam_kb.zip", "required": true, "source_ref": "src/devices/bus/adamnet/kb.cpp:33", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "e8db783b", "name": "printer.u2", "sha1": "32b40679749ad0317c2c9ee9ca619fad6d850ce7", "size": 2048}], "name": "adam_prn.zip", "required": true, "source_ref": "src/devices/bus/adamnet/printer.cpp:33", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "6b9ea1cf", "name": "tape rev a 8865.u24", "sha1": "b970f11e8f443fa130fba02ad1f60da51bf89673", "size": 2048}], "name": "adam_ddp.zip", "required": true, "source_ref": "src/devices/bus/adamnet/ddp.cpp:35", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "4b0b7143", "name": "adam disk u10 ad 31 rev a 09-27-84.u10", "sha1": "1cb68891c3af80e99efad7e309136ca37244f060", "size": 4096}], "name": "adam_fdc.zip", "required": true, "source_ref": "src/devices/bus/adamnet/fdc.cpp:65", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "dcd865b3", "description": "Minh Ta?", "name": "320ta.u10", "sha1": "dde583e0d18ce4406e9ea44ab34d083e73ee30e2", "size": 4096}, {"crc32": "5df49f15", "description": "DBL", "name": "dbl2-4.u10", "sha1": "43d5710e4fb05f520e813869a049585b41ada86b", "size": 4096}, {"crc32": "fed4006c", "description": "PMHD", "name": "pmhdfdc.u10", "sha1": "bc8dd00dd5cde9500a4cd7dc1e4d74330184472a", "size": 4096}], "name": "adam_fdc_320kb.zip", "required": true, "source_ref": "src/devices/bus/adamnet/fdc.cpp:76", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "5f248557", "name": "a720dipi 7607 mmsg =c= 1988.u10", "sha1": "15b3aaebba38af84f6a1a6ccdf840ca3d58635da", "size": 4096}], "name": "adam_fdc_a720dipi.zip", "required": true, "source_ref": "src/devices/bus/adamnet/fdc.cpp:92", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "8f952c88", "name": "fastpack 720a,t.u10", "sha1": "e593a89d7c6e7ea99e7ce376ffa2732d7b646d49", "size": 4096}], "name": "adam_fdc_fp720at.zip", "required": true, "source_ref": "src/devices/bus/adamnet/fdc.cpp:103", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "2efec8c0", "name": "1440k micro innovations hd-dd.u10", "sha1": "f6df22339c93dca938b65d0cbe23abcad89ec230", "size": 4096}], "name": "adam_fdc_mihddd.zip", "required": true, "source_ref": "src/devices/bus/adamnet/fdc.cpp:114", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "4ba30352", "name": "spi.bin", "sha1": "99fe5aebd505a208bea6beec5d7322b15426e9c1", "size": 2048}], "name": "adam_spi.zip", "required": true, "source_ref": "src/devices/bus/adamnet/spi.cpp:25", "system": "coleco-adam"}, {"category": "bios_zip", "contents": [{"crc32": "279e33d1", "name": "ins8048-11kdp_n.u5", "sha1": "bf7b0663e9125c9bfb950232eab627d9dbda8460", "size": 1024}, {"crc32": "81e95975", "name": "cop411l-kcn_n.u8", "sha1": "8b6f8c30dd3e9d8e43f1ea20fba2361b383790eb", "size": 512}], "name": "advision.zip", "required": true, "source_ref": "src/mame/entex/advision.cpp:471", "system": "entex-advision"}, {"category": "bios_zip", "contents": [{"crc32": "cc6ac840", "description": "Standard", "name": "apf_4000.rom", "sha1": "1110a234bcad99bd0894ad44c591389d16376ca4", "size": 2048}, {"crc32": "3bd8640a", "description": "Trash II", "name": "trash-ii.bin", "sha1": "da4cd8163990adbc5acd3eab604b41e1066bb832", "size": 4096}, {"crc32": "f320aba6", "description": "Mod BIOS", "name": "mod_bios.bin", "sha1": "9442349fca8b001a5765e2fe8b84db4ece7886c1", "size": 4096}], "name": "apfm1000.zip", "required": true, "source_ref": "src/mame/apf/apf.cpp:642", "system": "apf-m1000"}, {"category": "bios_zip", "contents": [{"crc32": "5471aaf8", "name": "9h0-0008.bios.ic1", "sha1": "33d756b6c64afb0fa377b3f85ab74505e9ae2f9c", "size": 131072}, {"crc32": "ed336d29", "name": "9h0-0008.midipcm.ic1", "sha1": "4af7b7cf7fc4fe8b7a514cde91f930a582742509", "size": 32768}], "name": "beena.zip", "required": true, "source_ref": "src/mame/sega/sega_beena.cpp:2264", "system": "sega-beena"}, {"category": "bios_zip", "contents": [{"crc32": "a194ea53", "name": "ipl.rom", "sha1": "ba39e73e6eb7cbb8906fff1f81a98964cd62af0d", "size": 8192}], "name": "rx78.zip", "required": true, "source_ref": "src/mame/bandai/rx78.cpp:577", "system": "bandai-rx78"}, {"category": "bios_zip", "contents": [{"crc32": "62402ac9", "name": "mpr-7689.ic5", "sha1": "bf52d22b119d54410dad4949b0687bb0edf3e143", "size": 131072}, {"crc32": "c8b6a539", "name": "e000 8_24.ic3", "sha1": "cbf8473d1e3d8037ea98e9ca8b9aafdc8d16ff23", "size": 65536}, {"crc32": "64d6cd8c", "name": "f000 7_21.ic4", "sha1": "68c130048f16d6a0abe1978e84440931470222d9", "size": 65536}, {"crc32": "d1aea002", "name": "mpr-7619.ic14", "sha1": "c8d5408bba65b17301f19cf9ebd2b635d642525a", "size": 131072}, {"crc32": "e042754b", "name": "mpr-7620.ic15", "sha1": "02aede7a3e2fda9cbca621b530afa4520cf16610", "size": 131072}], "name": "segaai.zip", "required": true, "source_ref": "src/mame/sega/segaai.cpp:743", "system": "sega-ai"}, {"category": "bios_zip", "contents": [{"crc32": "ef2dabc0", "name": "ai-snd-2002-cecb.bin", "sha1": "b60cd9f6f46b6c77dba8610df6fd83368569e713", "size": 65536}], "name": "segaai_soundbox.zip", "required": true, "source_ref": "src/devices/bus/segaai/soundbox.cpp:152", "system": "sega-ai"}, {"category": "bios_zip", "contents": [{"crc32": "56feec44", "description": "Set1", "name": "lynx48-1.ic46", "sha1": "7ded5184561168e159a30fa8e9d3fde5e52aa91a", "size": 8192}, {"crc32": "d894562e", "description": "Set1", "name": "lynx48-2.ic45", "sha1": "c08a78ecb4eb05baa4c52488fce3648cd2688744", "size": 8192}, {"crc32": "a933e577", "description": "Set2", "name": "lynx4811.ic46", "sha1": "c7b30a28d99b38dbe63a1314c78e3e614287143b", "size": 8192}, {"crc32": "3d3fdd0e", "description": "Set2", "name": "lynx4812.ic45", "sha1": "259d124f05367a96f891790f9418cc9c7798e2f8", "size": 8192}], "name": "lynx48k.zip", "required": true, "source_ref": "src/mame/camputers/camplynx.cpp:1033", "system": "camplynx"}, {"category": "bios_zip", "contents": [{"crc32": "f86c5514", "name": "lynx9646.ic46", "sha1": "77a4af7557382003d697d08f364839e2dc28f063", "size": 8192}, {"crc32": "f596b9a3", "name": "lynx9645.ic45", "sha1": "3fca46bd68422d34c6cd801dd904507e52bd8846", "size": 8192}, {"crc32": "4b96b0de", "description": "Original", "name": "lynx9644.ic44", "sha1": "c372a8d26399b9b45e615b674d61ccda76491b8b", "size": 4096}, {"crc32": "698d3de9", "description": "Scorpion", "name": "skorprom.ic44", "sha1": "c707bdcecef79774c2a8a23d1f3e9ba382cb9304", "size": 8192}, {"crc32": "795c22ea", "description": "Danish", "name": "danish96k3.ic44", "sha1": "0a57394cd986c5b338b38d514e894bace7f6e47b", "size": 8192}, {"crc32": "011e106a", "name": "dosrom.rom", "sha1": "e77f0ca99790551a7122945f3194516b2390fb69", "size": 8192}], "name": "lynx96k.zip", "required": true, "source_ref": "src/mame/camputers/camplynx.cpp:1034", "system": "camplynx"}, {"category": "bios_zip", "contents": [{"crc32": "65d292ce", "name": "lynx128-1.ic1", "sha1": "36567c2fbd9cf72f758e8cb80c21cb4d82040752", "size": 8192}, {"crc32": "23288773", "name": "lynx128-2.ic2", "sha1": "e12a7ebea3fae5eb375c03e848dbb81070d9d189", "size": 8192}, {"crc32": "9827b9e9", "name": "lynx128-3.ic3", "sha1": "1092367b2af51c72ce9be367179240d692aeb131", "size": 8192}, {"crc32": "011e106a", "name": "dosrom.rom", "sha1": "e77f0ca99790551a7122945f3194516b2390fb69", "size": 8192}], "name": "lynx128k.zip", "required": true, "source_ref": "src/mame/camputers/camplynx.cpp:1035", "system": "camplynx"}, {"category": "bios_zip", "contents": [{"crc32": "c3c590c6", "name": "crvision.u20", "sha1": "5ac620c529e4965efb5560fe824854a44c983757", "size": 2048}], "name": "crvision.zip", "required": true, "source_ref": "src/mame/vtech/crvision.cpp:966", "system": "crvision"}, {"category": "bios_zip", "contents": [{"crc32": "05602697", "name": "funboot.rom", "sha1": "c280b20c8074ba9abb4be4338b538361dfae517f", "size": 2048}], "name": "fnvision.zip", "required": true, "source_ref": "src/mame/vtech/crvision.cpp:967", "system": "crvision"}, {"category": "bios_zip", "contents": [{"crc32": "4dc35c39", "name": "laser2001.rom", "sha1": "c12e098c14ac0724869053df2b63277a3e413802", "size": 16384}], "name": "lasr2001.zip", "required": true, "source_ref": "src/mame/vtech/crvision.cpp:973", "system": "crvision"}, {"category": "bios_zip", "contents": [{"crc32": "702f4cf5", "name": "01", "sha1": "cd14ee74e787d24b76c166de484dae24206e219b", "size": 8192}, {"crc32": "46489d88", "name": "23", "sha1": "467f5bcd62d0b4117c443e13373df8f3c45df7b2", "size": 8192}], "name": "manager.zip", "required": true, "source_ref": "src/mame/vtech/crvision.cpp:975", "system": "crvision"}, {"category": "bios_zip", "contents": [{"crc32": "613de12c", "description": "BASIC V2.0", "name": "vtechv20.u12", "sha1": "f216c266bc09b0dbdbad720796e5ea9bc7d91e53", "size": 16384}, {"crc32": "f7df980f", "description": "BASIC V2.1 (hack)", "name": "vtechv21.u12", "sha1": "5ba14a7a2eedca331b033901080fa5d205e245ea", "size": 16384}], "name": "laser310.zip", "required": true, "source_ref": "src/mame/vtech/vtech1.cpp:628", "system": "laser310"}, {"category": "bios_zip", "contents": [{"crc32": "80f5aa20", "name": "27-00817-000-000.u1", "sha1": "4fd1ff7f78b5dd2582d5de6f30633e4e4f34ca8f", "size": 262144}, {"crc32": "edc1fb3f", "name": "speech_eng_internal.bin", "sha1": "78b4631fc3b1c038e14911047f9edd6c4e8bae58", "size": 8192}, {"crc32": "888e3ddd", "name": "speech_eng_vsm1.bin", "sha1": "33af6a21ba6d826071c9d48557b1c9012752570b", "size": 16384}, {"crc32": "de4ac89d", "name": "speech_eng_vsm2.bin", "sha1": "3dfa853b02df756a9b72def94a39310992ee11c7", "size": 16384}, {"crc32": "972384aa", "name": "speech_eng_vsm3.bin", "sha1": "ffcb1d633ca6bffc7f481ec505da447e5b847f16", "size": 16384}], "name": "socrates.zip", "required": true, "source_ref": "src/mame/vtech/socrates.cpp:1663", "system": "vtech-socrates"}, {"category": "bios_zip", "contents": [{"crc32": "387fbc24", "description": "v103", "name": "vsmile_v103.bin", "sha1": "5f2fd211b6ff3a6f5121b14adc6bbf4f49e89f33", "size": 2097152}, {"crc32": "0cd0bdf5", "description": "v102", "name": "vsmile_v102.bin", "sha1": "5c8d1eada1b6b545555b8d2b09325d7127681af8", "size": 2097152}, {"crc32": "205c5296", "description": "v100", "name": "vsmile_v100.bin", "sha1": "7fbcf761b5885c8b1524607aabaf364b4559c8cc", "size": 2097152}], "name": "vsmile.zip", "required": true, "source_ref": "src/mame/vtech/vsmile.cpp:403", "system": "vtech-vsmile"}, {"category": "bios_zip", "contents": [{"crc32": "07090415", "description": "DEFAULT", "name": "gamate_bios_umc.bin", "sha1": "ea449dc607601f9a68d855ad6ab53800d2e99297", "size": 4096}, {"crc32": "03a5f3a7", "description": "NEWER", "name": "gamate_bios_bit.bin", "sha1": "4e9dfbfe916ca485530ef4221593ab68738e2217", "size": 4096}], "name": "gamate.zip", "required": true, "source_ref": "src/mame/bitcorp/gamate.cpp:240", "system": "gamate"}, {"category": "bios_zip", "contents": [{"crc32": "ee1ea65d", "name": "egpcboot.bin", "sha1": "9c7731b5ead721d2cc7f7e2655c5fed9e56db8b0", "size": 4096}], "name": "gamepock.zip", "required": true, "source_ref": "src/mame/epoch/gamepock.cpp:262", "system": "gamepock"}, {"category": "bios_zip", "contents": [{"crc32": "05cc45e5", "name": "d78c11agf_e19.u1", "sha1": "05d73638dea9657ccc2791c0202d9074a4782c1e", "size": 4096}], "name": "gmaster.zip", "required": true, "source_ref": "src/mame/handheld/gmaster.cpp:275", "system": "hartung-game-master"}, {"category": "bios_zip", "contents": [{"crc32": "a0cec361", "name": "internal.bin", "sha1": "03368237e8fed4a8724f3b4a1596cf4b17c96d33", "size": 4096}, {"crc32": "e235a589", "name": "external.bin", "sha1": "97f782e72d738f4d7b861363266bf46b438d9b50", "size": 262144}], "name": "gamecom.zip", "required": true, "source_ref": "src/mame/tiger/gamecom.cpp:302", "system": "tiger-game-com"}, {"category": "bios_zip", "contents": [{"crc32": "b1e35643", "description": "Firmware 1.5.7 (English)", "name": "gp32157e.bin", "sha1": "1566bc2a27980602e9eb501cf8b2d62939bfd1e5", "size": 524288}, {"crc32": "d9925ac9", "description": "Firmware 1.0.0 (Korean)", "name": "gp32100k.bin", "sha1": "3604d0d7210ed72eddd3e3e0c108f1102508423c", "size": 524288}, {"crc32": "667fb1c8", "description": "Firmware 1.5.6 (Korean)", "name": "gp32156k.bin", "sha1": "d179ab8e96411272b6a1d683e59da752067f9da8", "size": 524288}, {"crc32": "4548a840", "description": "Firmware 1.6.6 (European)", "name": "gp32166m.bin", "sha1": "1ad0cab0af28fb45c182e5e8c87ead2aaa4fffe1", "size": 524288}, {"crc32": "7ddaaaeb", "description": "Mr. Spiv Multi Firmware V2", "name": "gp32mfv2.bin", "sha1": "5a85278f721beb3b00125db5c912d1dc552c5897", "size": 524288}, {"crc32": "eeec10d8", "name": "x2c32.jed", "sha1": "34c4b1b865511517a5de1fa352228d95cda387c5", "size": 15291}], "name": "gp32.zip", "required": true, "source_ref": "src/mame/gamepark/gp32.cpp:1727", "system": "gamepark-gp32"}, {"category": "bios_zip", "contents": [{"bad_dump": true, "crc32": "87c98494", "name": "fbasic300.rom", "sha1": "d7e3603b0a2442c7632dad45f9704d9ad71968f5", "size": 31744}, {"bad_dump": true, "crc32": "24cec93f", "name": "subsys_c.rom", "sha1": "50b7283db6fe1342c6063fc94046283f4feddc1c", "size": 10240}, {"bad_dump": true, "crc32": "c70f0c74", "name": "boot_bas.rom", "sha1": "53b63a301cba7e3030e79c59a4d4291eab6e64b0", "size": 512}, {"bad_dump": true, "crc32": "bf441864", "name": "boot_dos_a.rom", "sha1": "616c17155f84fb0e3731a31ef0eb0cbb664a5600", "size": 512}, {"crc32": "62402ac9", "name": "kanji.rom", "sha1": "bf52d22b119d54410dad4949b0687bb0edf3e143", "size": 131072}], "name": "fm7.zip", "required": true, "source_ref": "src/mame/fujitsu/fm7.cpp:2294", "system": "fm7"}, {"category": "bios_zip", "contents": [{"crc32": "785cb06c", "name": "initiate.rom", "sha1": "b65987e98a9564a82c85eadb86f0204eee5a5c93", "size": 8192}, {"bad_dump": true, "crc32": "a96d19b6", "name": "fbasic30.rom", "sha1": "8d5f0cfe7e0d39bf2ab7e4c798a13004769c28b2", "size": 31744}, {"bad_dump": true, "crc32": "24cec93f", "name": "subsys_c.rom", "sha1": "50b7283db6fe1342c6063fc94046283f4feddc1c", "size": 10240}, {"crc32": "e8014fbb", "name": "subsys_a.rom", "sha1": "038cb0b42aee9e933b20fccd6f19942e2f476c83", "size": 8192}, {"crc32": "9be69fac", "name": "subsys_b.rom", "sha1": "0305bdd44e7d9b7b6a17675aff0a3330a08d21a8", "size": 8192}, {"crc32": "e9f16c42", "name": "subsyscg.rom", "sha1": "8ab466b1546d023ba54987790a79e9815d2b7bb2", "size": 8192}, {"crc32": "62402ac9", "name": "kanji.rom", "sha1": "bf52d22b119d54410dad4949b0687bb0edf3e143", "size": 131072}], "name": "fm77av.zip", "required": true, "source_ref": "src/mame/fujitsu/fm7.cpp:2296", "system": "fm7"}, {"category": "bios_zip", "contents": [{"bad_dump": true, "crc32": "a96d19b6", "name": "fbasic302.rom", "sha1": "8d5f0cfe7e0d39bf2ab7e4c798a13004769c28b2", "size": 31744}, {"bad_dump": true, "crc32": "24cec93f", "name": "subsys_c.rom", "sha1": "50b7283db6fe1342c6063fc94046283f4feddc1c", "size": 10240}, {"bad_dump": true, "crc32": "c70f0c74", "name": "boot_bas.rom", "sha1": "53b63a301cba7e3030e79c59a4d4291eab6e64b0", "size": 512}, {"bad_dump": true, "crc32": "198614ff", "name": "boot_dos.rom", "sha1": "037e5881bd3fed472a210ee894a6446965a8d2ef", "size": 512}, {"crc32": "62402ac9", "name": "kanji.rom", "sha1": "bf52d22b119d54410dad4949b0687bb0edf3e143", "size": 131072}], "name": "fmnew7.zip", "required": true, "source_ref": "src/mame/fujitsu/fm7.cpp:2295", "system": "fm7"}, {"category": "bios_zip", "contents": [{"crc32": "1640ff7e", "description": "Monitor 1.1 r2674", "name": "mon11_2674.bin", "sha1": "8199643749fb40fb8be05e9f311c75620ca939b1", "size": 4096}, {"crc32": "910fc930", "description": "Monitor 1.0 r2569", "name": "mon10_2569.bin", "sha1": "a4f6bbe5def0268cc49ee7045616a39017dd8052", "size": 4096}, {"crc32": "07b92002", "description": "Monitor 1.1 r2569", "name": "mon11_2569.bin", "sha1": "3c434601120870c888944ecd9ade5186432ddbc2", "size": 4096}, {"crc32": "f3ee23c8", "description": "Monitor 1.1 r2669", "name": "mon11_2669.bin", "sha1": "3ac96935668f5e53799c90db5140393c2ef9ce36", "size": 4096}, {"crc32": "5f5f688a", "description": "Monitor 2.2 r2856", "name": "mon22_2856.bin", "sha1": "3719eecc347e158dd027ea7aa8a068cdafc00d9b", "size": 4096}, {"crc32": "a47b0308", "description": "Monitor 2.2B r2856", "name": "mon22b_2856.bin", "sha1": "f215e51aa8df6aed99c10f3df6a3589cb9f63d46", "size": 4096}, {"crc32": "0e024222", "description": "Monitor 2.3 r2601", "name": "mon23_2601.bin", "sha1": "9950cba08996931b9d5a3368b44c7309638b4e08", "size": 4096}, {"crc32": "248e62c9", "description": "Monitor 2.3A r2569", "name": "mon23a_2569.bin", "sha1": "adbde27e69b38b29ff89bacf28d0240a8e5d90f3", "size": 4096}, {"crc32": "5a25144b", "name": "6571.bin", "sha1": "7b9fee0c8ef2605b85d12b6d9fe8feb82418c63a", "size": 2048}], "name": "pegasus.zip", "required": true, "source_ref": "src/mame/ausnz/pegasus.cpp:575", "system": "pegasus"}, {"category": "bios_zip", "contents": [{"crc32": "ee8890ae", "name": "40026.ic701", "sha1": "91679cc5e07464ac55ef9a10f7095b2438223332", "size": 1024}, {"crc32": "25260958", "name": "40027.ic801", "sha1": "210e7e25228c79d2920679f217d68e4f14055825", "size": 1024}], "name": "pcw8256.zip", "required": true, "source_ref": "src/mame/amstrad/pcw.cpp:1460", "system": "pcw"}, {"category": "bios_zip", "contents": [{"crc32": "a64d450a", "name": "40103.ic109", "sha1": "ebbf0ef19d39912c1c127c748514dd299915f88b", "size": 8192}, {"crc32": "25260958", "name": "40027.ic801", "sha1": "210e7e25228c79d2920679f217d68e4f14055825", "size": 1024}], "name": "pcw9512.zip", "required": true, "source_ref": "src/mame/amstrad/pcw.cpp:1462", "system": "pcw"}, {"category": "bios_zip", "contents": [{"crc32": "364e3f74", "name": "p513bk0b.bin", "sha1": "04260ef1e65e482c9c49d25ace40e22487d6aab9", "size": 524288}, {"crc32": "e18239c4", "name": "p513bk1b.bin", "sha1": "a0262109e10a07a11eca43371be9978fff060bc5", "size": 524288}], "name": "vis.zip", "required": true, "source_ref": "src/mame/trs/vis.cpp:1120", "system": "tandy-vis"}, {"category": "bios_zip", "contents": [{"crc32": "70d06dff", "name": "level1.rom", "sha1": "20d75478fbf42214381e05b14f57072f3970f765", "size": 4096}, {"crc32": "0033f2b9", "name": "mcm6670p.z29", "sha1": "0d2cd4197d54e2e872b515bbfdaa98efe502eda7", "size": 1024}], "name": "trs80.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:680", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "37c59db2", "description": "Radio Shack Level II Basic", "name": "rom-a.z1", "sha1": "e8f8f6a4460a6f6755873580be6ff70cebe14969", "size": 4096}, {"crc32": "05818718", "description": "Radio Shack Level II Basic", "name": "rom-b.z2", "sha1": "43c538ca77623af6417474ca5b95fb94205500c1", "size": 4096}, {"crc32": "306e5d66", "description": "Radio Shack Level II Basic", "name": "rom-c.z3", "sha1": "1e1abcfb5b02d4567cf6a81ffc35318723442369", "size": 4096}, {"crc32": "be46faf5", "description": "R/S L2 Basic", "name": "rom-a_alt.z1", "sha1": "0e63fc11e207bfd5288118be5d263e7428cc128b", "size": 4096}, {"crc32": "6c791c2d", "description": "R/S L2 Basic", "name": "rom-b_alt.z2", "sha1": "2a38e0a248f6619d38f1a108eea7b95761cf2aee", "size": 4096}, {"crc32": "55b3ad13", "description": "R/S L2 Basic", "name": "rom-c_alt.z3", "sha1": "6279f6a68f927ea8628458b278616736f0b3c339", "size": 4096}, {"crc32": "0033f2b9", "name": "mcm6670p.z29", "sha1": "0d2cd4197d54e2e872b515bbfdaa98efe502eda7", "size": 1024}], "name": "trs80l2.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:681", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "8f5214de", "name": "3001.z10", "sha1": "d8c052be5a2d0ec74433043684791d0554bf203b", "size": 4096}, {"crc32": "46e88fbf", "name": "3002.z11", "sha1": "a3ca32757f269e09316e1e91ba1502774e2f5155", "size": 4096}, {"crc32": "306e5d66", "name": "3003.z12", "sha1": "1e1abcfb5b02d4567cf6a81ffc35318723442369", "size": 4096}, {"crc32": "8f2ac112", "name": "tcs-ext.z13", "sha1": "be0c2a5fb9cb01173c4da6dc8c71ca5975f441bb", "size": 2048}, {"crc32": "150c5f1f", "name": "tcs-ext.z25", "sha1": "afbce73ab0360108b32e75eb75a3966eb5c503e7", "size": 2048}], "name": "eg3003.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:682", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "8f5214de", "name": "3001.z10", "sha1": "d8c052be5a2d0ec74433043684791d0554bf203b", "size": 4096}, {"crc32": "46e88fbf", "name": "3002.z11", "sha1": "a3ca32757f269e09316e1e91ba1502774e2f5155", "size": 4096}, {"crc32": "306e5d66", "name": "3003.z12", "sha1": "1e1abcfb5b02d4567cf6a81ffc35318723442369", "size": 4096}, {"crc32": "2a851e33", "name": "sys80.z13", "sha1": "dad21ec60973eb66e499fe0ecbd469118826a715", "size": 2048}, {"crc32": "0033f2b9", "name": "2513.z25", "sha1": "0d2cd4197d54e2e872b515bbfdaa98efe502eda7", "size": 1024}], "name": "sys80.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:683", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "8f5214de", "name": "3001.z10", "sha1": "d8c052be5a2d0ec74433043684791d0554bf203b", "size": 4096}, {"crc32": "46e88fbf", "name": "3002.z11", "sha1": "a3ca32757f269e09316e1e91ba1502774e2f5155", "size": 4096}, {"crc32": "306e5d66", "name": "3003.z12", "sha1": "1e1abcfb5b02d4567cf6a81ffc35318723442369", "size": 4096}, {"crc32": "2a851e33", "name": "sys80.z13", "sha1": "dad21ec60973eb66e499fe0ecbd469118826a715", "size": 2048}, {"crc32": "e8c59d4f", "name": "ht1080z.z25", "sha1": "a15f30a543e53d3e30927a2e5b766fcf80f0ae31", "size": 2048}], "name": "ht1080z.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:685", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "8f5214de", "name": "3001.z10", "sha1": "d8c052be5a2d0ec74433043684791d0554bf203b", "size": 4096}, {"crc32": "46e88fbf", "name": "3002.z11", "sha1": "a3ca32757f269e09316e1e91ba1502774e2f5155", "size": 4096}, {"crc32": "306e5d66", "name": "3003.z12", "sha1": "1e1abcfb5b02d4567cf6a81ffc35318723442369", "size": 4096}, {"crc32": "07415ac6", "name": "ht1080z2.z13", "sha1": "b08746b187946e78c4971295c0aefc4e3de97115", "size": 2048}, {"crc32": "6728f0ab", "name": "ht1080z2.z25", "sha1": "1ba949f8596f1976546f99a3fdcd3beb7aded2c5", "size": 2048}], "name": "ht1080z2.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:686", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "59ec132e", "name": "3001_64.z10", "sha1": "232c04827e494ea49931d7ab9a5b87b76c81aef1", "size": 4096}, {"crc32": "a7a73e8c", "name": "3002_64.z11", "sha1": "6e0f232b8666744328853cef6bb72b8e44b4c184", "size": 4096}, {"crc32": "306e5d66", "name": "3003.z12", "sha1": "1e1abcfb5b02d4567cf6a81ffc35318723442369", "size": 4096}, {"crc32": "fc12bd28", "name": "ht108064.z13", "sha1": "0da93a311f99ec7a1e77486afe800a937778e73b", "size": 2048}, {"crc32": "e76b73a4", "name": "ht108064.z25", "sha1": "6361ee9667bf59d50059d09b0baf8672fdb2e8af", "size": 2048}], "name": "ht108064.zip", "required": true, "source_ref": "src/mame/trs/trs80.cpp:687", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "ec0c6daa", "description": "Level 2 bios, RomC Rev C", "name": "8041364.u104", "sha1": "257cea6b9b46912d4681251019ec2b84f1b95fc8", "size": 8192}, {"crc32": "ed4ee921", "description": "Level 2 bios, RomC Rev C", "name": "8040332.u105", "sha1": "ec0a19d4b72f71e51965de63250009c3c4e4cab3", "size": 4096}, {"crc32": "c8f79433", "description": "Level 2 bios, RomC Rev C", "name": "8040316c.u106", "sha1": "6f395bba822d39d3cd2b73c8ea25aab4c4c26da7", "size": 2048}, {"crc32": "ec0c6daa", "description": "Level 2 bios, RomC Rev B", "name": "8041364.u104", "sha1": "257cea6b9b46912d4681251019ec2b84f1b95fc8", "size": 8192}, {"crc32": "ed4ee921", "description": "Level 2 bios, RomC Rev B", "name": "8040332.u105", "sha1": "ec0a19d4b72f71e51965de63250009c3c4e4cab3", "size": 4096}, {"crc32": "84a5702d", "description": "Level 2 bios, RomC Rev B", "name": "8040316b.u106", "sha1": "297dca756a9d3c6fd13e0fa6f93d172ff795b520", "size": 2048}, {"crc32": "ec0c6daa", "description": "Level 2 bios, Network III v2 (student)", "name": "8041364.u104", "sha1": "257cea6b9b46912d4681251019ec2b84f1b95fc8", "size": 8192}, {"crc32": "ed4ee921", "description": "Level 2 bios, Network III v2 (student)", "name": "8040332.u105", "sha1": "ec0a19d4b72f71e51965de63250009c3c4e4cab3", "size": 4096}, {"crc32": "7d38720a", "description": "Level 2 bios, Network III v2 (student)", "name": "276a.u106", "sha1": "bef621e5ae2a8c1f9e7f6325b7841f5ab8ab7e6a", "size": 2048}, {"crc32": "6418d641", "description": "Level 1 bios", "name": "8040032.u104", "sha1": "f823ab6ceb102588d27e5f5c751e31175289291c", "size": 4096}, {"crc32": "444c8b60", "name": "8044316a.u36", "sha1": "c52ee41439bd5e57c3b113ebfd61c951e2af4446", "size": 2048}], "name": "trs80m3.zip", "required": true, "source_ref": "src/mame/trs/trs80m3.cpp:569", "system": "trs80"}, {"category": "bios_zip", "contents": [{"bad_dump": true, "crc32": "1a92d54d", "name": "trs80m4.rom", "sha1": "752555fdd0ff23abc9f35c6e03d9d9b4c0e9677b", "size": 14336}, {"crc32": "444c8b60", "name": "8044316a.u36", "sha1": "c52ee41439bd5e57c3b113ebfd61c951e2af4446", "size": 2048}], "name": "trs80m4.zip", "required": true, "source_ref": "src/mame/trs/trs80m3.cpp:570", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "3a738aa9", "description": "Level 2 bios, gate array machine", "name": "8075332.u69", "sha1": "6393396eaa10a84b9e9f0cf5930aba73defc5c52", "size": 4096}, {"crc32": "7ff336f4", "description": "Disk loader hack", "name": "trs80m4p_loader_hack.rom", "sha1": "41184f5240b4b54f3804f5a22b4d78bbba52ed1d", "size": 504}, {"crc32": "1ac44bea", "name": "8049007.u103", "sha1": "c9426ab2b2aa5380dc97a7b9c048ccd1bbde92ca", "size": 2048}], "name": "trs80m4p.zip", "required": true, "source_ref": "src/mame/trs/trs80m3.cpp:571", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "c2fc1b92", "name": "s_8407_cn62516n_cp500a_prologica_83.ci111", "sha1": "0eb07baee80f1ee1f28a609eb63a9245dcb68adb", "size": 16384}, {"crc32": "c2fc1b92", "name": "s_8407_cn62516n_cp500a_prologica_83.ci111", "sha1": "0eb07baee80f1ee1f28a609eb63a9245dcb68adb", "size": 16384}, {"crc32": "1765931e", "name": "100.105.ci36", "sha1": "49176ceea6cc003efa04fad2f31829b9432fe10f", "size": 2048}], "name": "cp500.zip", "required": true, "source_ref": "src/mame/trs/trs80m3.cpp:572", "system": "trs80"}, {"category": "bios_zip", "contents": [{"crc32": "ee859c5f", "name": "994a_rom_hb.u610", "sha1": "a45245707c3dccea902b718554a882d214a82504", "size": 4096}, {"crc32": "37859301", "name": "994a_rom_lb.u611", "sha1": "f4e774fd5913b387a763f1b8de5524c54b255434", "size": 4096}, {"crc32": "2445a5e8", "name": "994a_grom0.u500", "sha1": "ea15d8b0ac52112dc0d5f4ab9a79ac8ca1cc1bbc", "size": 6144}, {"crc32": "b8f367ab", "name": "994a_grom1.u501", "sha1": "3ecead4b83ec525084c70b6123d4053f8a80e1f7", "size": 6144}, {"crc32": "e0bb5341", "name": "994a_grom2.u502", "sha1": "e255f0d65d69b927cecb8fcfac7a4c17d585ea96", "size": 6144}], "name": "ti99_4a.zip", "required": true, "source_ref": "src/mame/ti/ti99_4x.cpp:1207", "system": "ti99"}, {"category": "bios_zip", "contents": [{"crc32": "1f58b571", "name": "cd2325a.u2a", "sha1": "0ef4f178716b575a1c0c970c56af8a8d97561ffe", "size": 16384}, {"crc32": "65d00401", "name": "cd2326a.u2b", "sha1": "a367242c2c96cebf0e2bf21862f3f6734b2b3020", "size": 16384}], "name": "ti99_speech.zip", "required": true, "source_ref": "src/devices/bus/ti99/sidecar/speechsyn.cpp:242", "system": "ti99"}, {"category": "bios_zip", "contents": [{"crc32": "702c38ba", "name": "tutor1.bin", "sha1": "ce60607c3038895e31915d41bb5cf71cb8522d7a", "size": 32768}, {"crc32": "05f228f5", "name": "tutor2.bin", "sha1": "46a14a45f6f9e2c30663a2b87ce60c42768a78d0", "size": 16384}], "name": "tutor.zip", "required": true, "source_ref": "src/mame/tomy/tutor.cpp:820", "system": "tutor"}, {"category": "bios_zip", "contents": [{"crc32": "a6f4a0ea", "description": "BASIC v1.1", "name": "vg5k11.bin", "sha1": "58eccce33cc21fc17bc83921018f531b8001eda3", "size": 16384}, {"bad_dump": true, "crc32": "57983260", "description": "BASIC v1.0", "name": "vg5k10.bin", "sha1": "5ad1787a6a597b5c3eedb7c3704b649faa9be4ca", "size": 16384}, {"bad_dump": true, "crc32": "b2f49eb3", "name": "charset.rom", "sha1": "d0ef530be33bfc296314e7152302d95fdf9520fc", "size": 8192}], "name": "vg5k.zip", "required": true, "source_ref": "src/mame/philips/vg5k.cpp:479", "system": "philips-vg5k"}, {"category": "bios_zip", "contents": [{"crc32": "d6cf5ef5", "name": "dl-1425.bin", "sha1": "555f50fe5cdf127619da7d854c03f4a244a0c501", "size": 8192}], "name": "qsound.zip", "required": true, "source_ref": "src/devices/sound/qsound.cpp:121"}, {"category": "bios_zip", "contents": [{"crc32": "6f582d01", "name": "ym2413_instruments.bin", "sha1": "bb5537717e0b34849456b5ca7d405403dc3f8fda", "size": 144}], "name": "ym2413.zip", "required": true, "source_ref": "src/devices/sound/ymopl.cpp:218"}, {"category": "bios_zip", "contents": [{"crc32": "23c9e0d8", "name": "ym2608_adpcm_rom.bin", "sha1": "50b6c3e288eaa12ad275d4f323267bb72b0445df", "size": 8192}], "name": "ym2608.zip", "required": true, "source_ref": "src/devices/sound/ymopn.cpp:76"}, {"category": "bios_zip", "contents": [{"crc32": "9b27c4a2", "name": "ekara.bin", "sha1": "d75dda7434933135d2f7e353840a9384e9a0d586", "size": 1048576}], "name": "ekara.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2904"}, {"category": "bios_zip", "contents": [{"crc32": "3c92d48d", "name": "ekara2.bin", "sha1": "450fbe53826cdb87ec797f84b9757987afcc1ec5", "size": 1048576}], "name": "ekaraa.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2905"}, {"category": "bios_zip", "contents": [{"crc32": "e459e43b", "name": "ekarajapan.bin", "sha1": "58b7f36a81571a2df5e812c118fdf68812a05abc", "size": 1048576}], "name": "ekaraj.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2906"}, {"category": "bios_zip", "contents": [{"crc32": "644f06b0", "name": "ekaragermany.bin", "sha1": "433e65a6ea029b67ee62b4b3de52ff3504cfdf16", "size": 2097152}], "name": "ekarag.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2907"}, {"category": "bios_zip", "contents": [{"crc32": "77925ab0", "name": "ekaraspanish.bin", "sha1": "402053e22e371c5f5e8069a4bf3b33841e742375", "size": 2097152}], "name": "ekaras.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2908"}, {"category": "bios_zip", "contents": [{"crc32": "6ad588fe", "name": "kr_isinger.bin", "sha1": "879da069ca8c126232a1b2dfcce25c8615540e48", "size": 1048576}], "name": "isinger.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2910"}, {"category": "bios_zip", "contents": [{"crc32": "dd9b3cd7", "name": "ekaraheadset.bin", "sha1": "baaf35d56fa45b6f995b8466331bb30f0035f734", "size": 2097152}], "name": "ekaraphs.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2913"}, {"category": "bios_zip", "contents": [{"crc32": "e459e43b", "name": "ekarajapan.bin", "sha1": "58b7f36a81571a2df5e812c118fdf68812a05abc", "size": 1048576}], "name": "epitch.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2916"}, {"category": "bios_zip", "contents": [{"crc32": "ee71576e", "name": "ekaramix.bin", "sha1": "26f8c9edcbbed77e86a1cb5a0b91c92a16fef433", "size": 2097152}], "name": "ekaramix.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2919"}, {"category": "bios_zip", "contents": [{"crc32": "737d5d1a", "name": "ekara_ddr_ha010_81947.bin", "sha1": "a1043047056dd27bca69767ee2044461ec549465", "size": 2097152}], "name": "ddrfammt.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2922"}, {"category": "bios_zip", "contents": [{"crc32": "71d20afc", "name": "popira.bin", "sha1": "fb2ae023fc8a188c79b2d6550f737e06c05e12da", "size": 1048576}], "name": "popira.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2925"}, {"category": "bios_zip", "contents": [{"crc32": "785d8e21", "name": "kr_main.u2", "sha1": "7877ac33b57bdd8ceac6bda3b0006a3274ad4dce", "size": 1048576}], "name": "popirak.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2927"}, {"category": "bios_zip", "contents": [{"crc32": "6acd8be0", "name": "popira2.bin", "sha1": "8b6c812d37e2dc2f2531b0e47d84ad8485729dc5", "size": 2097152}], "name": "popira2.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2930"}, {"category": "bios_zip", "contents": [{"crc32": "037a8472", "name": "taikodepopira.bin", "sha1": "03cae465965935fc084fb906f8f5de7679f42dd1", "size": 2097152}], "name": "taikodp.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2933"}, {"category": "bios_zip", "contents": [{"crc32": "a7bedbd2", "name": "jumpingpopira.bin", "sha1": "d62d4ca660c8df14891217fb7b7a2b4a931ff35f", "size": 2097152}, {"crc32": "70a05af1", "name": "i2cmem.bin", "sha1": "e8f4ab51445777fe459f9ff09333f548c4e3507c", "size": 256}], "name": "jpopira.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2936"}, {"category": "bios_zip", "contents": [{"crc32": "ee22c764", "name": "evio.bin", "sha1": "f2b7e213eb78065a63ef484a619bcfc61299e30e", "size": 2097152}], "name": "evio.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2939"}, {"category": "bios_zip", "contents": [{"crc32": "02deddaa", "name": "robottransformer_unit.bin", "sha1": "7d7b54684f8b0b92daf02738560779c7df627b91", "size": 2097152}], "name": "tak_daig.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2944"}, {"category": "bios_zip", "contents": [{"crc32": "2ba6f3ab", "name": "sammyslotunit.bin", "sha1": "1c7fc0c85d817db1550d40c0258f424770e0bd81", "size": 2097152}], "name": "gcslottv.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2946"}, {"category": "bios_zip", "contents": [{"crc32": "6b91102a", "name": "hikara.u3", "sha1": "684dcfeaa8ac2888da2055617603494ce5fed93c", "size": 1048576}], "name": "hikara.zip", "required": true, "source_ref": "src/mame/tvgames/xavix.cpp:2951"}, {"category": "bios_zip", "contents": [{"crc32": "e51ff184", "name": "galaxy_u2__v1.90_12-01-98.u2", "sha1": "aaa795f2c15ec29b3ceeb5c917b643db0dbb7083", "size": 1048576}, {"crc32": "c6d7bc6d", "name": "galaxy_u1__v1.90_12-01-98.u1", "sha1": "93c032f9aa38cbbdda59a8a25ff9f38f7ad9c760", "size": 1048576}, {"crc32": "73cff284", "name": "galaxy_u2__v1.80_10-15-98.u2", "sha1": "e6f7d92999cdb478c21c3b65a04eade84299ac12", "size": 1048576}, {"crc32": "e3ae423c", "name": "galaxy_u1__v1.80_10-15-98.u1", "sha1": "66d1964845a99a5ed4b19b4135b55cde6b5fe295", "size": 1048576}, {"crc32": "d1c3dbb3", "name": "galaxy_u2__v1.71_7-8-98.u2", "sha1": "ebe74ed7f2d8c4abcd6743b9d9c77cc347efc444", "size": 1048576}, {"crc32": "604415c8", "name": "galaxy_u1__v1.71_7-8-98.u1", "sha1": "6c67c3be1aca03d009b6244e3bd911caaa2ca666", "size": 1048576}], "name": "galgames.zip", "required": true, "source_ref": "src/mame/ces/galgames.cpp:1301"}, {"category": "game_data", "name": "hiscore.dat", "note": "high score definitions, read from the working directory then from the plugin directory, where a copy ships", "path": "hiscore.dat", "required": false, "source_ref": "plugins/hiscore/init.lua:105,152-155"}, {"aliases": ["cheat.zip"], "category": "game_data", "name": "cheat.7z", "note": "per-game XML cheats read from cheatpath, archive opened by emu_file::attempt_zipped", "path": "cheat.7z", "required": false, "source_ref": "plugins/cheat/init.lua:99"}, {"category": "game_data", "name": "history.xml", "note": "system and software history shown in the UI info viewer", "path": "history/history.xml", "required": false, "source_ref": "plugins/data/data_history.lua:5"}, {"category": "game_data", "name": "mameinfo.dat", "note": "driver notes shown in the UI info viewer", "path": "history/mameinfo.dat", "required": false, "source_ref": "plugins/data/data_mameinfo.lua:6"}, {"category": "game_data", "name": "messinfo.dat", "note": "computer and console driver notes shown in the UI info viewer", "path": "history/messinfo.dat", "required": false, "source_ref": "plugins/data/data_messinfo.lua:6"}, {"category": "game_data", "name": "command.dat", "note": "move lists for fighting games, button glyphs converted on load", "path": "history/command.dat", "required": false, "source_ref": "plugins/data/data_command.lua:13"}, {"category": "game_data", "name": "gameinit.dat", "note": "initial setup instructions per machine", "path": "history/gameinit.dat", "required": false, "source_ref": "plugins/data/data_gameinit.lua:5"}, {"category": "game_data", "name": "sysinfo.dat", "note": "console and computer background information", "path": "history/sysinfo.dat", "required": false, "source_ref": "plugins/data/data_sysinfo.lua:5"}, {"category": "game_data", "name": "story.dat", "note": "Mameinfo story file of game trivia", "path": "history/story.dat", "required": false, "source_ref": "plugins/data/data_story.lua:5"}, {"category": "game_data", "name": "scores3.htm", "note": "MARP high score tables from replay.marpirc.net", "path": "history/scores3.htm", "required": false, "source_ref": "plugins/data/data_marp.lua:8"}], "logo": "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg", "notes": "MAME fork adding Switchres 2.2.2 for CRT modeline generation, frame delay\nand low latency vsync. Branch groovymame0288, BARE_BUILD_VERSION 0.288\n(makefile:1508). TARGET := mame with no SUBTARGET override (makefile:274-282),\nso the build carries the full machine set.\n\nsrc/mame and src/devices are byte identical to mamedev/mame tag mame0288,\nso ROM requirements are MAME 0.288's. The fork's changes sit in src/osd and\n3rdparty/switchres and pull in no external data file: monitor presets are\ncompiled in (3rdparty/switchres/monitor.cpp:124-145), and switchres.ini plus\ndisplay#.ini are optional user configuration read only when the switchres_ini\noption is set (src/osd/modules/switchres/switchres_module.cpp:166,173).\n\n161 ROM sets: 78 carry MACHINE_IS_BIOS_ROOT, 67 are system ROM sets for\ncartridge and tape machines, 16 are device ROMs. Device archives are named\nafter the device shortname from DEFINE_DEVICE_TYPE, not the ROM_START label,\nbecause device_t::searchpath() puts shortname() first (src/emu/device.cpp:150):\nsegaai_soundbox.zip holds ROM_START(soundbox).\n\nrequired follows romload.cpp:547-566. A missing ROM increments m_errors and\naborts with EMU_ERR_MISSING_FILES (romload.cpp:667), except when it is\nROM_OPTIONAL or NO_DUMP, which only warn and let the machine run. mac2bios is\nthe one set with no good dump known, so it warns rather than aborts.\n\nROM sets load from rompath. Data files use their own search paths:\nhistorypath \"history;dats;.\" (src/frontend/mame/ui/moptions.cpp:24),\ncheatpath \"cheat\" and pluginspath \"plugins\" (src/emu/emuopts.cpp:51,53).\nemu_file::attempt_zipped() rewrites each directory component to <dir>.zip\nthen <dir>.7z (src/emu/fileio.cpp:713-743), so the cheat collection is read\nfrom cheat.7z or cheat.zip without unpacking.\n\nThe data plugin reads history.xml, not the legacy history.dat, whose stale\ndatabase table it drops on startup (plugins/data/data_history.lua:5,10-13).\n\nBatocera builds its mame package from this fork\n(package/batocera/emulators/mame/mame.mk:8).\n", "profiled_date": "2026-08-08", "source": "https://github.com/antonioginer/GroovyMAME", "source_commit": "e3fa130578a12f332f5e403d52a0be1e0395103e", "systems": ["snk-neogeo-mvs", "snk-neogeo-aes", "igs-pgm", "sega-naomi", "sega-naomi2", "sega-naomigd", "sammy-atomiswave", "sega-stv", "sega-lindbergh", "sega-hikaru", "sega-chihiro", "sega-triforce", "deco-cassette", "nintendo-playch10", "sega-megaplay", "sega-megatech", "nintendo-sfcbox", "nintendo-nss", "philips-cdi", "commodore-cubo", "namco-system246", "namco-system256", "namco-system573", "konami-viper", "super-kaneko-nova", "capcom-zn1", "capcom-zn2", "konami-gv", "konami-twinkle", "panasonic-3do", "hyper-neogeo64", "apple2gs", "apf-m1000", "bally-astrocade", "coleco-adam", "crvision", "entex-advision", "sega-ai", "sega-beena", "bandai-rx78", "camplynx", "tiger-game-com", "gamepark-gp32", "gamate", "gamepock", "hartung-game-master", "fm7", "laser310", "vtech-socrates", "vtech-vsmile", "casio-loopy", "casio-pv1000", "casio-pv2000", "pegasus", "pcw", "interton-vc4000", "philips-vg5k", "ti99", "tutor", "tandy-vis", "trs80", "vgmplay"], "type": "standalone", "upstream": "https://github.com/mamedev/mame"}


id: gsplus
name: GSplus
type: standalone
classification: community_fork
source: https://github.com/digarok/gsplus
upstream: https://kegs.sourceforge.net/
source_commit: 47389939d652bb1e773f8dc686d8b0403ea3760f
profile_json:
{"core_classification": "community_fork", "core_version": "KEGS 1.38", "cores": ["gsplus"], "display_name": "Apple - Apple IIGS (GSplus)", "emulator": "GSplus", "files": [{"aliases": ["ROM.01", "ROM.03", "APPLE2GS.ROM", "APPLE2GS.ROM2", "xgs.rom", "XGS.ROM", "Rom03gd", "342-0077-b"], "description": "Apple IIGS system ROM", "name": "ROM", "note": "Accepted sizes: 32768 (Apple //e), 131072 (ROM 01), 262144 (ROM 03)", "required": true, "source_ref": "gsplus/src/config.c:131,403-406,1092-1149", "validation": ["size"]}, {"aliases": ["controller.rom", "disk.rom", "DISK.ROM", "diskII.prom"], "description": "Disk II controller PROM (slot 6)", "hle_fallback": true, "name": "c600.rom", "note": "Built-in PROM generated from XOR diffs against main ROM", "required": false, "size": 256, "source_ref": "gsplus/src/config.c:414-415,1168-1220", "validation": ["size"]}], "notes": "Fork of KEGS (Kent's Emulated GS) by digarok. Cross-platform Apple IIGS\nemulator supporting ROM 01 (128K), ROM 03 (256K), and Apple //e (32K) ROMs.\nROM version determined by file size at load time.\n\nBatocera configgen (gsplusGenerator.py) sets g_cfg_rom_path to bios/ROM.03\nby default (configurable via gsplus_bios_filename system setting).\n\nBuilt-in Disk II controller PROM derived via XOR diffs from main ROM.\nBuilt-in HD SmartPort PROM (slot 7) hardcoded in source.\nBuilt-in character font (kegsfont.h), optional ROMX-compatible charrom\nloadable via config UI.\n", "profiled_date": "2026-03-29", "source": "https://github.com/digarok/gsplus", "source_commit": "47389939d652bb1e773f8dc686d8b0403ea3760f", "systems": ["apple-iigs", "apple-iie"], "type": "standalone", "upstream": "https://kegs.sourceforge.net/"}


id: gw
name: Game & Watch
type: libretro
classification: pure_libretro
source: https://github.com/libretro/gw-libretro
upstream: http://www.madrigaldesign.it/sim/
source_commit: 435e5cfd4bf6aea03a84259e9b8dba3daf3ff5bd
profile_json:
{"analysis": {"content_format": {"archive_type": "tar v7 + bzip2", "decompression": "gwrom.c using bundled bzip2 library", "extension": ".mgw", "source_ref": "gwrom/gwrom.h:21-27"}, "filesystem_access": false, "game_engine": {"language": "Lua (bundled lua 5.3)", "rendering": "retroluxury (retroluxury/)", "resolution": "128x128 base, variable via gwlua_set_fb/gwlua_zoom", "runtime": "gwlua (gwlua/)"}, "system_directory_used": false}, "core_classification": "pure_libretro", "core_version": "Git", "cores": ["gw"], "display_name": "Handheld Electronic (GW)", "emulator": "Game & Watch", "files": [], "notes": "gw-libretro runs Game & Watch simulators converted from MADrigal's Pascal\nsource code via pas2lua. Each game is a self-contained .mgw archive (bzip2\ncompressed tar v7) containing Lua scripts, sprites, and sound data.\n\nretro_get_system_info (libretro.c:187-194) sets valid_extensions to \"mgw\",\nneed_fullpath to false, and block_extract to false. The core reads content\nentirely from the retro_game_info buffer passed by the frontend.\n\nretro_load_game (libretro.c:256-310) passes the content buffer to\ngwrom_init() which decompresses and parses the tar archive in memory.\ngwlua_create() then initializes the Lua VM from the archive entries.\n\nThe core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, never opens\nfiles from the filesystem, and has no firmware or BIOS dependencies.\nAll game data is bundled in the .mgw content files available from\nlibretro's buildbot (bot.libretro.com/assets/cores/HandheldElectronicGame/).\n\nNo external BIOS or firmware files are needed.\n", "profiled_date": "2026-03-25", "source": "https://github.com/libretro/gw-libretro", "source_commit": "435e5cfd4bf6aea03a84259e9b8dba3daf3ff5bd", "systems": ["handheld-electronic"], "type": "libretro", "upstream": "http://www.madrigaldesign.it/sim/"}


id: hakux
name: hakuX
type: standalone
classification: community_fork
source: https://github.com/rfandango/hakuX
upstream: https://github.com/xemu-project/xemu
source_commit: e64e336d27dc8a56b67f441ec36bfddc1379cb6e
profile_json:
{"author": "rfandango", "core_classification": "community_fork", "core_version": "0.3.1", "cores": ["hakux"], "display_name": "Microsoft - Xbox (hakuX)", "emulator": "hakuX", "exclusion_note": "Three file loads present in the tree are not reached by this build and are not listed. hw/xbox/chihiro.c falls back to the media board ROM fpr21042_m29w160et.bin when no path is given, and maps a media board filesystem image beside it, but the whole driver is filtered out of the source list, so no Chihiro machine exists here. X1_Covers.xml ships in the assets and no code opens it, the library reading X1_Covers.txt instead. ref: hw/xbox/chihiro.c:191-253, 279-284,\n     android/app/src/main/cpp/CMakeLists.txt:468,\n     android/app/src/main/java/com/rfandango/haku_x/GameLibraryActivity.kt:403\n", "files": [{"config_key": "sys.files.bootrom_path", "description": "MCPX southbridge boot ROM", "name": "mcpx_1.0.bin", "note": "Copied under the fixed name mcpx.bin from whatever .bin, .rom or .img file the wizard is pointed at, and named by bootrom_path in the config. A size other than 512 bytes empties the setting and the machine property is left off; when the property is set the loader checks the size again and ends the process rather than continue. The bytes are read over the last 512 of the flash image and the region stays writable so early retail kernels keep their cache quirk.", "path": "x1box/mcpx.bin", "required": true, "size": 512, "source_ref": "system/vl.c:2998-3022, hw/xbox/xbox.c:144-172, android/app/src/main/java/com/rfandango/haku_x/SetupWizardActivity.kt:53-74, android/app/src/main/cpp/xemu_android.cpp:669, 748-760", "validation": ["size"]}, {"config_key": "sys.files.flashrom_path", "description": "Xbox flash ROM", "name": "Complex_4627.bin", "note": "Copied under the fixed name flash.bin and passed as -bios. A path that cannot be opened queues an error and clears autostart, so nothing runs without it. The image is mapped at 0xFF000000 and mirrored to the top of the address space; a size that is zero or not a multiple of 64 KB, or a short read, falls back to 256 KB filled with 0xFF. A retail image cannot launch unsigned code, so a debug or modified image is what boots a title.", "path": "x1box/flash.bin", "required": true, "size_note": "Any non-zero multiple of 65536; 256 KB is assumed when the image cannot be read.", "size_options": [262144, 524288, 1048576], "source_ref": "system/vl.c:3057-3072, hw/xbox/xbox.c:65-124, android/app/src/main/java/com/rfandango/haku_x/SetupWizardActivity.kt:76-97, android/app/src/main/cpp/xemu_android.cpp:670, 761-773", "validation": ["size"]}, {"config_key": "sys.files.hdd_path", "description": "Xbox hard disk image", "name": "xbox_hdd.qcow2", "note": "Copied under the fixed name hdd.img, in qcow2 or raw form, and attached as index 0 with locked=on and cache=writethrough. An empty setting attaches no drive at all and an unopenable one only queues a message, but the launcher refuses to leave the wizard until the file resolves. The formatter builds FATX partitions inside an image that already exists and needs at least 0x1DD156000 bytes for the retail layout; it never creates the image. A qcow2 with a backing file is reported at load because the sectors it did not modify are read from that other file.", "path": "x1box/hdd.img", "required": true, "source_ref": "system/vl.c:3078-3092, android/app/src/main/java/com/rfandango/haku_x/SetupWizardActivity.kt:99-120, android/app/src/main/java/com/rfandango/haku_x/XboxHddFormatter.kt:7-29, 47-79, android/app/src/main/cpp/xemu_android.cpp:176-184, 671-672, 774-795"}, {"config_key": "sys.files.eeprom_path", "description": "Xbox EEPROM image", "name": "eeprom.bin", "note": "Always pointed at x1box/eeprom.bin, a path the wizard never asks for. Generated as XBOX_EEPROM_VERSION_R1 when it does not exist, so a dump is needed only to carry over a console serial, region or HDD key. It is attached through the smbus-storage device; a size other than 256 bytes, or a generation that fails, clears autostart. Preparing Insignia and the EEPROM editor write to it in place.", "path": "x1box/eeprom.bin", "required": false, "size": 256, "source_ref": "system/vl.c:2921-2964, 3045-3055, android/app/src/main/cpp/xemu_android.cpp:671, 711, android/app/src/main/java/com/rfandango/haku_x/SettingsActivity.kt:1264-1267", "validation": ["size"]}, {"description": "Retail dashboard boot executable", "load_from": "hdd_image", "name": "xboxdash.xbe", "note": "Imported to the root of partition C from the C directory of a user dashboard tree. The import treats this name as the boot entry: when it is absent the best scoring .xbe of the tree is copied to it, and the retail boot counts as ready only once the name exists. The start path of the emulator never reads partition C, and preparing Insignia finishes with a warning when the name is missing.", "path": "C/xboxdash.xbe", "required": false, "source_ref": "android/app/src/main/cpp/xemu_fatx_import.c:1796-1797, 1842-1843, 1864-1893, android/app/src/main/java/com/rfandango/haku_x/SettingsActivity.kt:2523-2563, 2584-2620"}, {"description": "Retail dashboard executable kept beside the boot copy", "load_from": "hdd_image", "name": "msdash.xbe", "note": "Probed at the root of partition C and imported with the rest of the tree. Its presence beside the boot XBE is one of the marks the status line reads to call a dashboard install complete.", "path": "C/msdash.xbe", "required": false, "source_ref": "android/app/src/main/cpp/xemu_fatx_import.c:1798-1799, 1844-1845, android/app/src/main/java/com/rfandango/haku_x/XboxInsigniaHelper.kt:13, 42-50"}, {"description": "Dashboard typeface", "load_from": "hdd_image", "name": "xbox.xtf", "note": "Probed at the root of partition C and imported with the rest of the tree, alongside the xodash, audio, fonts and xboxdashdata.* directories the root scan looks for.", "path": "C/xbox.xtf", "required": false, "source_ref": "android/app/src/main/cpp/xemu_fatx_import.c:1800-1801, 1846-1847, 1786-1794, android/app/src/main/java/com/rfandango/haku_x/XboxInsigniaHelper.kt:14-16"}, {"description": "Replacement Vulkan driver package", "name": "<driver>.zip", "note": "Imported through a picker into gpu_drivers under the external files directory, renamed after the name field of the meta.json it carries, then unpacked whole into gpu_driver in internal storage. The minApi field is compared against the device before the archive is kept. Loading is offered only when /dev/kgsl-3d0 exists, and clearing the install directory returns the app to the system driver.", "required": false, "source_ref": "android/app/src/main/java/com/rfandango/haku_x/GpuDriverHelper.kt:19-35, 37-70, 72-99, 101-104, 138-165", "unsourceable": "third-party Vulkan driver built for one GPU family, not an emulator artefact"}, {"description": "Replacement texture", "name": "<content hash>.png", "note": "Taken from a folder of per-title subdirectories, copied into texture_replace in internal storage, and read back by the Vulkan renderer from the subdirectory named after the title id of the running XBE in eight hexadecimal digits. A name is kept only when the stem is sixteen hexadecimal digits, which is the content hash of the texture it replaces; each PNG is decoded to a .raw sidecar carrying width and height and mapped from there. Off unless the setting is on and the folder is set.", "required": false, "source_ref": "hw/xbox/nv2a/pgraph/vk/texture_replace.c:227-320, 331-377, 388-435, android/app/src/main/java/com/rfandango/haku_x/GameLibraryActivity.kt:904-990, android/app/src/main/java/com/rfandango/haku_x/MainActivity.kt:105-113", "unsourceable": "texture pack authored per title against the hashes one dump produces"}, {"bundled": true, "description": "SDL controller mapping database", "name": "gamecontrollerdb.txt", "note": "Read from the assets of the package at startup and handed to SDL as a memory stream. The asset manager reads inside the archive and the path is a constant, so there is no search order and nothing outside the package replaces this copy; an added pad mapping goes in through controller_map.txt instead. The revision shipped here is 589031 bytes and is not the one other releases carry under this name.", "required": false, "source_ref": "android/app/src/main/cpp/xemu_android.cpp:193-268", "unsourceable": "opened through the asset manager inside the package, so no file on disk reaches this load"}, {"bundled": true, "description": "Cover art index for the game library", "name": "X1_Covers.txt", "note": "Read from the assets and turned into a lookup from normalised game name to a URL under the X1_Covers repository, which the library fetches and caches per title. Only lines ending in .png are kept.", "required": false, "source_ref": "android/app/src/main/java/com/rfandango/haku_x/GameLibraryActivity.kt:59, 398-430"}, {"description": "Extra SDL controller mappings", "load_from": "internal_storage", "name": "controller_map.txt", "note": "SDL builds this path from the internal storage directory of the package when SDL_GAMECONTROLLERCONFIG_FILE is unset, which it is here, and reads it while the game controller subsystem starts, after the mappings compiled in and before the ones the environment carries. It is the one mapping file a user can add without rebuilding the package. The SDL2 tree in thirdparty is what the build compiles, the local checkout taking precedence over the release archive CMake would otherwise fetch.", "required": false, "source_ref": "thirdparty/SDL2/src/joystick/SDL_gamecontroller.c:1873-1884, 1890-1916, android/app/src/main/cpp/CMakeLists.txt:26-34"}], "mode": "standalone", "notes": "Original Xbox emulator for Android, package com.rfandango.haku_x, arm64-v8a,\ntuned for Adreno. A Kotlin front end carries the launcher, setup wizard, game\nlibrary and settings, and drives a whole xemu tree built through CMake against\nSDL2 and QEMU 10.2.0, the tree branching off the day before xemu moved to SDL3.\nThe imgui interface under ui/xui is filtered out of the source list and the\nHUD, monitor and snapshot entry points are stubbed, so that front end is the\nonly interface. ES-DE starts .LauncherActivity with an intent VIEW whose data\nURI becomes the disc slot before emulation opens.\nref: QEMU_VERSION,\n     android/README.md:36-39,\n     android/app/build.gradle.kts:33-34,\n     android/app/src/main/AndroidManifest.xml:13-30,\n     android/app/src/main/cpp/CMakeLists.txt:423-424,\n     android/app/src/main/cpp/xemu_hud_stub.c,\n     android/app/src/main/cpp/monitor_stub.c,\n     android/app/src/main/cpp/xemu_snapshots_stub.c,\n     android/app/src/main/java/com/rfandango/haku_x/LauncherActivity.kt:94-104\n\nThe wizard asks for three files through the Storage Access Framework and\ncopies each into x1box under the external files directory of the package,\nrenamed mcpx.bin, flash.bin and hdd.img. The pickers keep .bin, .rom and .img\nfor the two ROMs and .qcow2 and .img for the disk, and each step stays blocked\nuntil its copy lands. Those three paths, the eeprom the wizard never asks for\nand the disc are written to x1box/xemu.toml under sys.files, and the launcher\nsends the user back through the wizard whenever one of them stops resolving.\nref: android/app/src/main/java/com/rfandango/haku_x/SetupWizardActivity.kt:49-51,\n     53-120, 249-255, 350-378,\n     android/app/src/main/java/com/rfandango/haku_x/LauncherActivity.kt:31-92,\n     android/app/src/main/cpp/xemu_android.cpp:669-673, 709-711, 748-820\n\nThe flash image is the only one whose absence stops the run: it is passed as\n-bios and a path that cannot be opened clears autostart. Its size must be a\nnon-zero multiple of 64 KB, otherwise 256 KB of 0xFF is mapped in its place.\nThe MCPX image must be exactly 512 bytes, another size clears the path with an\nerror, and the machine property is checked a second time and ends the process\nwhen it disagrees; the bytes are overlaid on the last 512 of the mirrored flash\nregion. The EEPROM must be 256 bytes and is generated as\nXBOX_EEPROM_VERSION_R1 when the path does not exist. An empty disk path\nattaches no drive at index 0 at all, while the disc drive at index 1 is always\nattached and simply carries no media when no image is picked.\nref: system/vl.c:2921-2964, 2998-3022, 3057-3072, 3078-3092, 3094-3113,\n     hw/xbox/xbox.c:65-104, 144-166\n\nSettings imports a dashboard tree from a ZIP or a folder into the FATX\npartitions of the configured disk image, C at 0x8CA80000 and E at 0xABE80000,\nmoving the entries it overwrites to a backup folder first. A source that has\nneither a C nor an E directory goes to C whole. The tree is searched for a boot\nXBE beforehand and the best candidate is copied to C/xboxdash.xbe when that\nname is missing, xboxdash.xbe, default.xbe, evoxdash.xbe, avalaunch.xbe,\nunleashx.xbe, xbmc.xbe and nexgen.xbe scoring in that order. The status line\nprobes C for xboxdash.xbe, msdash.xbe, xbox.xtf and the directories xodash,\naudio, fonts and xboxdashdata.*, and calls the install complete when the boot\nXBE sits beside at least one of the others.\nref: android/app/src/main/cpp/xemu_fatx_import.c:51-54, 1704-1730, 1763-1862,\n     1864-1927,\n     android/app/src/main/java/com/rfandango/haku_x/XboxInsigniaHelper.kt:10-53,\n     android/app/src/main/java/com/rfandango/haku_x/SettingsActivity.kt:2523-2620,\n     2661-2708\n\nPreparing Insignia networking turns the NAT backend on and writes the DNS\n46.101.64.175 into the config sector of the disk image and into the EEPROM at\n0xAC. Registration boots a Setup Assistant image the user picks, which is put\nin the disc slot like any other game.\nref: android/app/src/main/java/com/rfandango/haku_x/XboxInsigniaHelper.kt:7-8,\n     56-86,\n     android/app/src/main/java/com/rfandango/haku_x/XboxEepromEditor.kt:17,\n     android/app/src/main/java/com/rfandango/haku_x/SettingsActivity.kt:1764-1766,\n     1830-1847\n\nThe disk tools format an image that is already configured and never create one:\na retail layout needs at least 0x1DD156000 bytes and the extended F and G\nlayouts need room past that boundary. The EEPROM editor rewrites language,\nvideo standard, resolution flags, aspect ratio and refresh rate in place, and\nrecomputes both checksums.\nref: android/app/src/main/java/com/rfandango/haku_x/XboxHddFormatter.kt:7-29,\n     47-79,\n     android/app/src/main/java/com/rfandango/haku_x/XboxEepromEditor.kt:9-38,\n     android/app/src/main/cpp/xemu_hdd_tools_jni.c:932-983\n", "profiled_date": "2026-08-11", "source": "https://github.com/rfandango/hakuX", "source_commit": "e64e336d27dc8a56b67f441ec36bfddc1379cb6e", "systems": ["microsoft-xbox"], "type": "standalone", "upstream": "https://github.com/xemu-project/xemu", "upstream_commit": "26fcbe54f17e496bdf530dad9f237e74e2f943fc"}


id: handy
name: Handy
type: libretro
classification: community_fork
source: https://github.com/libretro/libretro-handy
upstream: https://handy.sourceforge.net/
source_commit: bc55d462f0b2d6b073ea93dc552ebd73cec60fd1
profile_json:
{"core_classification": "community_fork", "core_version": "0.95", "cores": ["handy"], "display_name": "Atari - Lynx (Handy)", "emulator": "Handy", "files": [{"crc32": "0d973c9d", "description": "Atari Lynx boot ROM (Mikie internal 512B ROM)", "hle_fallback": true, "name": "lynxboot.img", "note": "Validated by CRC32 at load time. If invalid or missing, core uses HLE fallback (system.cpp:303-361 HLE_BIOS_* functions, system.cpp:406-428 trap writes).", "required": false, "size": 512, "source_ref": "lynx/rom.h:48-49 (ROM_SIZE=0x200, ROM_CRC32=0x0D973C9D), lynx/rom.cpp:76-129 (CRom constructor), libretro/libretro.cpp:1231-1258 (bios path + CSystem init)", "system": "atari-lynx", "validation": ["size", "crc32"]}, {"description": "Epyx Howard bootloader for headerless cartridges", "name": "howard.o", "note": "Loaded only for headerless carts (no LNX/BS93 header). Resolved relative to the BIOS file path (system directory). Passed to CRam for execution. Most commercial games have headers and skip this entirely.", "required": false, "source_ref": "lynx/system.cpp:197-238 (CartHeaderLess check, howard.o load via fill_pathname_resolve_relative)", "system": "atari-lynx"}], "notes": "Handy is an Atari Lynx emulator by K. Wilkins (Handy 0.95, 2007).\nThe core loads lynxboot.img from the system directory and validates\nit by CRC32 (0x0D973C9D). If the file is missing or the CRC does\nnot match, the core falls back to an internal HLE BIOS that\nreplicates the boot sequence in software (ram clear, cart loader\ndecrypt, jump to $0200).\n\nThe HLE path intercepts CPU calls to ROM addresses FE00, FE19, FE4A\nand FF80 via a Mikie register write trap (address 0xFD97). When\nuseEmu is true (no valid BIOS loaded), CRom initialises mRomData\nwith a default fill byte (0x88) plus reset vectors pointing to\nthe HLE entry points.\n\nUpstream Handy 0.95 requires the BIOS (throws CLynxException) and\nvalidates by checking the first 16 bytes against a hardcoded\nsignature. The libretro port added the HLE fallback and switched\nto full CRC32 validation.\n\nFor headerless cartridges (no LNX/BS93 header), the core loads\nhoward.o from the system directory. This is the Epyx development\nkit bootloader used to bootstrap raw/headerless ROMs into memory.\nUpstream requires howard.o for headerless carts (throws exception);\nthe libretro port makes it optional (logs error, continues).\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/libretro-handy", "source_commit": "bc55d462f0b2d6b073ea93dc552ebd73cec60fd1", "systems": ["atari-lynx"], "type": "libretro", "upstream": "https://handy.sourceforge.net/"}


id: hatari
name: Hatari
type: standalone + libretro
classification: frozen_snapshot
source: https://github.com/libretro/hatari
upstream: https://github.com/hatari/hatari
source_commit: 92e2874e664be40e1b51b97e0ff925a1aa917f22
profile_json:
{"core_classification": "frozen_snapshot", "core_version": "1.8", "cores": ["hatari", "hatarib"], "display_name": "Atari - ST/STE/TT/Falcon (Hatari)", "emulator": "Hatari", "files": [{"name": "tos.img", "note": "TOS ROM image. Any valid version (1.00 through 4.04) or EmuTOS works. The core auto-detects version from the ROM header and adjusts machine type. Default location is system/tos.img, additional images go in system/hatari/tos/.\n", "path": "tos.img", "required": true, "source_ref": "src/tos.c:575-696, libretro/libretro.c:390-413"}, {"max_size": 131076, "name": "cartridge ROM", "note": "External cartridge image. Loaded to address 0xFA0000. STC format images (0x20004 bytes) have a 4-byte header that is stripped. Mutually exclusive with GEMDOS hard disk emulation and extended VDI.\n", "path": null, "required": false, "source_ref": "src/cart.c:53-88", "validation": ["size"]}, {"name": "BOOT.ST", "note": "Floppy image used for GEMDOS HD bootstrapping with .gem files. Libretro port addition (not in upstream Hatari).\n", "path": "hatari/BOOT.ST", "required": false, "source_ref": "libretro/libretro.c:1669"}], "logo": "https://raw.githubusercontent.com/hatari/hatari/main/share/icons/hicolor/scalable/apps/hatari.svg", "notes": {"emutos_note": "EmuTOS is a free open-source TOS replacement that works with all machine types. Hatari detects it via the 'ETOS' signature at ROM offset 0x2c and skips machine-type enforcement and ROM patches.\n", "gemdos_boot_note": "When using GEMDOS hard disk mode with .gem files, the core also loads system/hatari/BOOT.ST as a floppy image for bootstrapping.\n", "libretro_path_note": "The libretro core checks system/tos.img first for backward compatibility, then scans system/hatari/tos/ for additional TOS images exposed as core options.\n"}, "profiled_date": "2026-03-23", "source": "https://github.com/libretro/hatari", "source_commit": "92e2874e664be40e1b51b97e0ff925a1aa917f22", "systems": ["atari-st", "atari-ste", "atari-tt", "atari-falcon"], "type": "standalone + libretro", "upstream": "https://github.com/hatari/hatari"}


id: hbmame
name: HBMAME (Homebrew MAME)
type: libretro
classification: enhanced_fork
source: https://github.com/libretro/hbmame-libretro
upstream: https://github.com/Robbbert/hbmame
source_commit: 8cd20238f85126adac06d4e419c8f712142e62cd
profile_json:
{"author": "Robbbert", "based_on": "MAME 0.220", "core_classification": "enhanced_fork", "core_version": "Git", "cores": ["hbmame"], "display_name": "Arcade (HBMAME)", "emulator": "HBMAME (Homebrew MAME)", "exclusion_note": "BIOS ROMs are inside parent ROM set ZIPs (neogeo.zip, etc.) following MAME convention. No standalone system directory files.", "files": [], "game_count": 8511, "logo": "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg", "notes": "Fork of MAME 0.220 preserving homebrew and hacked arcade games. Builds as\nTARGET=hbmame with 191 driver files covering 8511 game entries. Drivers are\nhack/homebrew variants of CPS1, CPS2, CPS3, Neo Geo, Pac-Man, Galaxian, etc.\n\nBIOS handling is identical to MAME. Neo Geo drivers reuse the standard\nneogeo.zip BIOS set via unmodified NEO_BIOS macros (neogeo.h). No other\nHBMAME driver defines ROM_SYSTEM_BIOS entries. BIOS files are expected as\nMAME-format ZIP archives in the ROM search path.\n\nData directories (artwork, cheat, hash, ini, samples) can be placed in\n{system_dir}/mame/ but are optional and game-specific.\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/hbmame-libretro", "source_commit": "8cd20238f85126adac06d4e419c8f712142e62cd", "systems": ["arcade"], "type": "libretro", "upstream": "https://github.com/Robbbert/hbmame"}


id: higan_sfc
name: higan (SFC Accuracy)
type: libretro
classification: community_fork
source: https://github.com/libretro/nSide
upstream: https://github.com/byuu/higan
source_commit: 5e965d0db4c0d05e7e8fb6449035538781c73473
profile_json:
{"core_classification": "community_fork", "core_version": "v105 (Super Famicom Accuracy)", "cores": ["higan_sfc"], "display_name": "Nintendo - SNES / Famicom (higan Accuracy)", "emulator": "higan (SFC Accuracy)", "files": [{"name": "dsp1.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp1.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp1b.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp1b.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp2.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp2.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp3.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp3.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp4.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "dsp4.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:457-502", "system": "nintendo-snes"}, {"name": "cx4.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:405-454", "system": "nintendo-snes"}, {"name": "st010.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st010.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st011.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st011.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st018.data.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:362-402", "system": "nintendo-snes"}, {"name": "st018.program.rom", "required": false, "source_ref": "nSide/sfc/cartridge/load.cpp:362-402", "system": "nintendo-snes"}, {"name": "SGB1.sfc/sgb1.boot.rom", "required": false, "source_ref": "nSide/gb/system/system.cpp:54-65", "system": "nintendo-sgb"}, {"name": "SGB1.sfc/program.rom", "required": false, "source_ref": "nSide/target-libretro/libretro-sfc.cpp:179-215", "system": "nintendo-sgb"}, {"name": "SGB2.sfc/sgb2.boot.rom", "required": false, "source_ref": "nSide/gb/system/system.cpp:54-65", "system": "nintendo-sgb"}, {"name": "SGB2.sfc/program.rom", "required": false, "source_ref": "nSide/target-libretro/libretro-sfc.cpp:179-215", "system": "nintendo-sgb"}], "notes": "Fork of higan v106 by hex-usr, renamed at byuu's request. Dot-based\nPPU profile (cycle-accurate, most demanding). Current nSide source\nblocks accuracy build (#error at libretro.cpp:39, libretro-sfc.cpp:8).\nCore is orphaned from an older nSide revision.\nCoprocessor firmware loaded via icarus manifest system from system_dir.\nFile names follow icarus convention: {identifier}.{content}.rom.\nSGB emulation loads from SGB1.sfc/ or SGB2.sfc/ subdirectories,\nwith fallback to SGB.sfc/ and Super GameBoy.sfc/.\nSPC700 IPL ROM (ipl.rom, 64 bytes) compiled into binary.\nAccuracy and balanced cartridge loading code is identical.\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/nSide", "source_commit": "5e965d0db4c0d05e7e8fb6449035538781c73473", "systems": ["nintendo-snes", "nintendo-sgb"], "type": "libretro", "upstream": "https://github.com/byuu/higan"}


id: higan_sfc_balanced
name: nSide (SFC Balanced)
type: libretro
classification: enhanced_fork
source: https://github.com/libretro/nSide
upstream: https://gitlab.com/higan/higan
source_commit: 5e965d0db4c0d05e7e8fb6449035538781c73473
profile_json:
{"core_classification": "enhanced_fork", "core_version": "v105 (Super Famicom Balanced)", "cores": ["higan_sfc_balanced"], "display_name": "Nintendo - SNES / Famicom (nSide Balanced)", "emulator": "nSide (SFC Balanced)", "files": [{"name": "dsp1.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp1.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp1b.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp1b.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp2.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp2.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp3.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp3.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp4.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "dsp4.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:457-501", "system": "nintendo-snes"}, {"name": "cx4.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:405-454", "system": "nintendo-snes"}, {"name": "st010.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st010.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st011.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st011.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:504-548", "system": "nintendo-snes"}, {"name": "st018.data.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:362-402", "system": "nintendo-snes"}, {"name": "st018.program.rom", "required": false, "source_ref": "nSide/sfc-balanced/cartridge/load.cpp:362-402", "system": "nintendo-snes"}, {"name": "SGB1.sfc/sgb1.boot.rom", "required": false, "source_ref": "nSide/gb/system/system.cpp:54-65", "system": "nintendo-sgb"}, {"name": "SGB1.sfc/program.rom", "required": false, "source_ref": "nSide/target-libretro/libretro-sfc.cpp:179-215", "system": "nintendo-sgb"}, {"name": "SGB2.sfc/sgb2.boot.rom", "required": false, "source_ref": "nSide/gb/system/system.cpp:54-65", "system": "nintendo-sgb"}, {"name": "SGB2.sfc/program.rom", "required": false, "source_ref": "nSide/target-libretro/libretro-sfc.cpp:179-215", "system": "nintendo-sgb"}], "notes": "Fork of higan v106 by hex-usr, renamed at byuu's request. Balanced\nPPU profile (scanline-precision, faster than dot-based accuracy).\nCoprocessor firmware loaded via icarus manifest system from system_dir.\nFile names follow icarus convention: {identifier}.{content}.rom.\nSGB emulation loads from SGB1.sfc/ or SGB2.sfc/ subdirectories,\nwith fallback to SGB.sfc/ and Super GameBoy.sfc/.\n", "profiled_date": "2026-03-23", "source": "https://github.com/libretro/nSide", "source_commit": "5e965d0db4c0d05e7e8fb6449035538781c73473", "systems": ["nintendo-snes", "nintendo-sgb"], "type": "libretro", "upstream": "https://gitlab.com/higan/higan"}


id: holani
name: Holani
type: libretro
classification: official_port
source: https://github.com/LLeny/holani-retro
upstream: https://github.com/LLeny/holani
source_commit: 19b974f77247a937369adf48280d2b34a5a66245
profile_json:
{"core_classification": "official_port", "core_version": "0.9.9", "cores": ["holani"], "display_name": "Atari - Lynx (Holani)", "emulator": "Holani", "files": [{"description": "Atari Lynx boot ROM", "hle_fallback": true, "name": "lynxboot.img", "required": false, "size": 512, "source_ref": "src/lib.rs:110-124 (bios load), src/rom.rs:72-79 (size validation)", "system": "atari-lynx", "validation": ["size"]}], "notes": "Holani is a cycle-stepped Atari Lynx emulator written in Rust by LLeny.\nThe libretro port (holani-retro) loads lynxboot.img from the system\ndirectory at retro_load_game time (lib.rs:110-124). Path is built as\nsystem_directory + \"/lynxboot.img\", no subdirectory.\n\nThe core library (holani/src/rom.rs) embeds a free boot ROM from\nhttps://bjoern.spruck.net/lynx/ as FREE_BOOTROM (512 bytes), used as\nthe default when no external ROM is loaded (Rom::default()). The\nlibretro wrapper attempts to load the real lynxboot.img, but if the\nfile is missing or the system directory is invalid, Lynx::new() already\nhas the free boot ROM initialized. No hash validation on the external\nfile; Rom::from_slice() only checks length == 512.\n", "profiled_date": "2026-03-24", "source": "https://github.com/LLeny/holani-retro", "source_commit": "19b974f77247a937369adf48280d2b34a5a66245", "systems": ["atari-lynx"], "type": "libretro", "upstream": "https://github.com/LLeny/holani", "verification": "existence"}


id: hypseus-singe
name: Hypseus Singe
type: standalone
classification: enhanced_fork
source: https://github.com/DirtBagXon/hypseus-singe
upstream: https://github.com/mirror/daphne-emu
source_commit: cda87965fe0a031d027b2253c6715d37cca6b56a
profile_json:
{"core_classification": "enhanced_fork", "core_version": "v3.0.0", "cores": ["hypseus-singe", "hypseus"], "display_name": "Arcade (Hypseus Singe)", "emulator": "Hypseus Singe", "files": [{"category": "game_data", "name": "gamecontrollerdb.txt", "note": "SDL gamepad mappings, read under -gamepad when present. Not shipped with the emulator", "required": false, "source_ref": "src/io/input.cpp:981-996", "system": "arcade-laserdisc"}, {"category": "bios_zip", "contents": [{"crc32": "427522d0", "name": "sa_a3_u1.bin", "size": 8192}, {"crc32": "18d0262d", "name": "sa_a3_u2.bin", "size": 8192}, {"crc32": "4646832d", "name": "sa_a3_u3.bin", "size": 8192}, {"crc32": "57db2a79", "name": "sa_a3_u4.bin", "size": 8192}, {"crc32": "85cbcdc4", "name": "sa_a3_u5.bin", "size": 8192}], "name": "ace.zip", "note": "Space Ace rev A3. Loaded by ace, ace_a, ace_a2", "required": true, "source_ref": "src/game/lair.cpp:292", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "de93a213", "name": "ace91.bin", "size": 65536}], "name": "ace91.zip", "note": "Space Ace '91", "required": true, "source_ref": "src/game/lair2.cpp:154", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "27dd0486", "name": "sa91euro1.3.bin", "size": 65536}], "name": "ace91_euro.zip", "note": "Space Ace '91 Euro", "required": true, "source_ref": "src/game/lair2.cpp:157", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "8eb1889e", "name": "sa_a_u1.bin", "size": 8192}], "name": "ace_a.zip", "note": "Space Ace rev A", "required": true, "source_ref": "src/game/lair.cpp:323", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "71b39e27", "name": "sa_a2_u1.bin", "size": 8192}], "name": "ace_a2.zip", "note": "Space Ace rev A2", "required": true, "source_ref": "src/game/lair.cpp:312", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "a8c14612", "name": "sa_u33a.bin", "size": 8192}, {"crc32": "41264d46", "name": "sa_u45a.bin", "size": 8192}, {"crc32": "bc1c70cf", "name": "sa_u46a.bin", "size": 8192}, {"crc32": "ff3f77c7", "name": "sa_u47a.bin", "size": 8192}, {"crc32": "8c83ac81", "name": "sa_u48a.bin", "size": 8192}, {"crc32": "03b58fc3", "name": "sa_u49a.bin", "size": 8192}], "name": "aceeuro.zip", "note": "Space Ace PAL", "required": true, "source_ref": "src/game/laireuro.cpp:106", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "8716aeb5", "name": "5279", "size": 512}, {"crc32": "583af1ff", "name": "5280", "size": 2048}, {"crc32": "7b5c820c", "name": "5281", "size": 2048}, {"crc32": "eec6db27", "name": "5284", "size": 16384}, {"crc32": "820e154e", "name": "5285", "size": 16384}, {"crc32": "8eb1c28e", "name": "5286", "size": 16384}, {"crc32": "94ca5f9a", "name": "5338", "size": 16384}, {"crc32": "0f24baaa", "name": "5473c", "size": 16384}, {"crc32": "5d44603d", "name": "5474a", "size": 16384}, {"crc32": "0c872a9b", "name": "pr-5275.bin", "size": 32}, {"crc32": "91267e8a", "name": "pr-5276.bin", "size": 32}, {"crc32": "bf2c33ab", "name": "pr-5277.bin", "size": 256}, {"crc32": "e81613da", "name": "pr-5278.bin", "size": 256}], "name": "astron.zip", "note": "Astron Belt. Loaded by astron, astronp, blazer, cobraab, galaxy, galaxyp", "required": true, "source_ref": "src/game/astron.cpp:97", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "fd0dcfc9", "name": "abp-ic03.bin", "size": 16384}, {"crc32": "a3746393", "name": "abp-ic10.bin", "size": 16384}], "name": "astronp.zip", "note": "Astron Belt, alternate program ROMs", "required": true, "source_ref": "src/game/astron.cpp:97", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "0226f881", "name": "bl_hit_4f.bin", "size": 32}, {"crc32": "4c287f37", "name": "bl_hit_6a.bin", "size": 8192}, {"crc32": "a135e444", "name": "bl_hit_7a.bin", "size": 8192}, {"crc32": "44c3441e", "name": "bl_hit_9c.bin", "size": 8192}], "name": "badlandp.zip", "note": "Badlands, prototype board", "required": true, "source_ref": "src/game/badlands.cpp:125", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "a44776d6", "name": "badlands.a13", "size": 8192}, {"crc32": "82cb4614", "name": "badlands.a14", "size": 8192}, {"crc32": "6757be8d", "name": "badlands.c4", "size": 32}, {"crc32": "590209fe", "name": "badlands.c8", "size": 8192}], "name": "badlands.zip", "note": "Badlands", "required": true, "source_ref": "src/game/badlands.cpp:94", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "124a3a36", "name": "an00-3", "size": 8192}, {"crc32": "15f8921d", "name": "an01", "size": 8192}, {"crc32": "98ce4ca0", "name": "an02-3", "size": 8192}, {"crc32": "79438d80", "name": "an03-3", "size": 8192}, {"crc32": "935b2b0a", "name": "an04-3", "size": 8192}, {"crc32": "c917a283", "name": "an05-3", "size": 8192}, {"crc32": "cbbcd730", "name": "an06", "size": 8192}, {"crc32": "6b8ad735", "name": "an07", "size": 8192}, {"crc32": "b5518391", "name": "an08", "size": 8192}, {"crc32": "b7375fd7", "name": "an09", "size": 8192}, {"crc32": "e429305d", "name": "an0a", "size": 8192}, {"crc32": "09e4b780", "name": "an0b", "size": 8192}, {"crc32": "0c127207", "name": "an0c", "size": 8192}], "name": "bega.zip", "note": "Bega's Battle ver. 3. Loaded by bega, begar1", "required": true, "source_ref": "src/game/bega.cpp:121", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "184297f3", "name": "an00", "size": 8192}, {"crc32": "84d13c20", "name": "an02", "size": 8192}, {"crc32": "d2d85cdf", "name": "an03", "size": 8192}, {"crc32": "670966fe", "name": "an04", "size": 8192}, {"crc32": "91a05549", "name": "an05", "size": 8192}], "name": "begar1.zip", "note": "Bega's Battle rev 1", "required": true, "source_ref": "src/game/bega.cpp:156", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "c06e41bb", "name": "epr-5590.bin", "size": 16384}, {"crc32": "b179d18c", "name": "epr-5591.bin", "size": 16384}], "name": "blazer.zip", "note": "Star Blazer", "required": true, "source_ref": "src/game/astron.cpp:143", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "a86ec38f", "name": "cliff_u1.bin", "size": 8192}, {"crc32": "b8d33b6b", "name": "cliff_u2.bin", "size": 8192}, {"crc32": "75a64cd2", "name": "cliff_u3.bin", "size": 8192}, {"crc32": "906b2af1", "name": "cliff_u4.bin", "size": 8192}, {"crc32": "5922e710", "name": "cliff_u5.bin", "size": 8192}], "name": "cliff.zip", "note": "Cliff Hanger", "required": true, "source_ref": "src/game/cliff.cpp:107", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "8a3dff2c", "name": "cliff-0X_u0.bin", "size": 8192}, {"crc32": "ec2c00a9", "name": "cliff-0X_u1.bin", "size": 8192}, {"crc32": "3423c748", "name": "cliff-0X_u2.bin", "size": 8192}, {"crc32": "60a8de46", "name": "cliff-0X_u3.bin", "size": 8192}, {"crc32": "b05438f8", "name": "cliff-0X_u4.bin", "size": 8192}], "name": "cliff_ox.zip", "note": "Cliff Hanger, 0X set", "required": true, "source_ref": "src/game/cliff.cpp:193", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "27caa67c", "name": "cliff_alt_0.bin", "size": 8192}, {"crc32": "6e5f1515", "name": "cliff_alt_1.bin", "size": 8192}, {"crc32": "045f895d", "name": "cliff_alt_2.bin", "size": 8192}, {"crc32": "54cdb4a1", "name": "cliff_alt_3.bin", "size": 8192}], "name": "cliffalt.zip", "note": "Cliff Hanger, alternate set", "required": true, "source_ref": "src/game/cliff.cpp:152", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "598d57fc", "name": "cliff_alt2_0.bin", "size": 8192}, {"crc32": "7bce618e", "name": "cliff_alt2_1.bin", "size": 8192}, {"crc32": "65d2b984", "name": "cliff_alt2_2.bin", "size": 8192}, {"crc32": "f43a5269", "name": "cliff_alt2_3.bin", "size": 8192}], "name": "cliffalt2.zip", "note": "Cliff Hanger, second alternate set", "required": true, "source_ref": "src/game/cliff.cpp:172", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "6c0f1f16", "name": "au00-2", "size": 8192}, {"crc32": "523dd8f6", "name": "au01-2", "size": 8192}, {"crc32": "7db11acf", "name": "au02-2", "size": 8192}, {"crc32": "8f0a8fba", "name": "au03-2", "size": 8192}, {"crc32": "ccc94eb0", "name": "au06", "size": 8192}, {"crc32": "d4bf12a5", "name": "au07", "size": 8192}, {"crc32": "63158274", "name": "au08", "size": 8192}, {"crc32": "74e93394", "name": "au09", "size": 8192}, {"crc32": "6aaedcf3", "name": "au0a", "size": 8192}, {"crc32": "92247877", "name": "au0b", "size": 8192}, {"crc32": "d00a2762", "name": "au0c", "size": 8192}], "name": "cobra.zip", "note": "Cobra Command", "required": true, "source_ref": "src/game/bega.cpp:189", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "079783c7", "name": "ic-1.bin", "size": 16384}, {"crc32": "5a2e8f4e", "name": "ic-11.bin", "size": 2048}, {"crc32": "4b89d7ed", "name": "ic-12.bin", "size": 2048}, {"crc32": "3547a14c", "name": "ic-13.bin", "size": 512}, {"crc32": "40c0b825", "name": "ic-2.bin", "size": 8192}, {"crc32": "9e12b19c", "name": "ic-7.bin", "size": 8192}, {"crc32": "201041c0", "name": "ic-8.bin", "size": 8192}], "name": "cobraab.zip", "note": "Cobra Command on Astron Belt hardware", "required": true, "source_ref": "src/game/astron.cpp:318", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "8d9ad777", "name": "bd00", "size": 8192}, {"crc32": "1b4db507", "name": "bd01", "size": 8192}, {"crc32": "3d802707", "name": "bd02", "size": 8192}, {"crc32": "f1b9df77", "name": "bd03", "size": 8192}, {"crc32": "33013cc2", "name": "bd04", "size": 8192}, {"crc32": "98412178", "name": "bd05", "size": 8192}, {"crc32": "b1340125", "name": "bd06", "size": 8192}, {"crc32": "584d714a", "name": "bd07", "size": 8192}, {"crc32": "4bc65ab0", "name": "lp4-2.pld", "size": 554}, {"crc32": "02c27aa0", "name": "vd0-c.bpr", "size": 32}, {"crc32": "78449942", "name": "vd0-t.bpr", "size": 32}], "name": "cobraconv.zip", "note": "Cobra Command conversion board", "required": true, "source_ref": "src/game/cobraconv.cpp:106", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "c19ad038", "name": "bh00", "size": 8192}, {"crc32": "7d86ab08", "name": "bh01", "size": 8192}, {"crc32": "928ef670", "name": "bh02", "size": 8192}, {"crc32": "755cbbf5", "name": "bh03", "size": 8192}, {"crc32": "d8f49994", "name": "bh05", "size": 8192}, {"crc32": "ab6c7cf1", "name": "bh06", "size": 8192}, {"crc32": "f94668d2", "name": "bh07", "size": 8192}, {"crc32": "d6439e2f", "name": "bh08", "size": 8192}, {"crc32": "8c5dfac0", "name": "bh09", "size": 4096}, {"crc32": "8b8da8dc", "name": "bh0a", "size": 4096}], "name": "cobram3.zip", "note": "Cobra Command on M.A.C.H. 3 hardware", "required": true, "source_ref": "src/game/mach3.cpp:303", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "7d0c9115", "name": "branchtest.bin", "size": 106}, {"crc32": "aefca341", "name": "prog1.bin", "size": 113}, {"crc32": "0c6c8ce9", "name": "prog2.bin", "size": 113}, {"crc32": "c8d0edf6", "name": "savage.com", "size": 14080}, {"crc32": "ecf70fd6", "name": "zexall.com", "size": 8704}], "name": "cputest.zip", "note": "Z80 CPU test programs, shipped under roms/cputest/ in the emulator source. Loaded by cputest, mcputest", "required": true, "source_ref": "src/game/multicputest.cpp:61", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "9e65b33d", "name": "dle11u1l.bin", "size": 8192}, {"crc32": "f16fa36f", "name": "dle11u2l.bin", "size": 8192}, {"crc32": "b8d07a16", "name": "dle11u3l.bin", "size": 8192}, {"crc32": "20fc79b7", "name": "dle11u4l.bin", "size": 8192}, {"crc32": "4bf84551", "description": "verified by CRC32 at boot, lair.cpp:197", "name": "readme11.txt"}], "name": "dle11.zip", "note": "Dragon's Lair Enhancement v1.1", "required": true, "source_ref": "src/game/lair.cpp:178", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "0aca15b4", "name": "DLE20_U1.bin", "size": 8192}, {"crc32": "1cea7622", "name": "DLE20_U2.bin", "size": 8192}, {"crc32": "21a7e7ca", "name": "DLE20_U3.bin", "size": 8192}, {"crc32": "4ae26073", "name": "DLE20_U4.bin", "size": 8192}, {"crc32": "51c50010", "description": "verified by CRC32 at boot, lair.cpp:261", "name": "readme20.txt"}], "name": "dle20.zip", "note": "Dragon's Lair Enhancement v2.0", "required": true, "source_ref": "src/game/lair.cpp:242", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "4f8af481", "name": "DLE21_U1.bin", "size": 8192}, {"crc32": "5fca04c5", "name": "DLE21_U2.bin", "size": 8192}, {"crc32": "c14f36b3", "name": "DLE21_U3.bin", "size": 8192}, {"crc32": "a68f0d21", "description": "verified by CRC32 at boot, lair.cpp:268", "name": "readme21.txt"}], "name": "dle21.zip", "note": "Dragon's Lair Enhancement v2.1", "required": true, "source_ref": "src/game/lair.cpp:224", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "abde5e4b", "name": "c5_h.bin", "size": 256}, {"crc32": "7157ba22", "name": "c6_v.bin", "size": 256}, {"crc32": "0e3b6e62", "name": "f8_is2.bin", "size": 8192}, {"crc32": "114c912b", "name": "h8_is1.bin", "size": 8192}, {"crc32": "1e9f795f", "name": "j1_rgb.bin", "size": 512}, {"crc32": "a936ef01", "name": "k3_c.bin", "size": 4096}, {"crc32": "9366dde7", "name": "l3_b.bin", "size": 4096}, {"crc32": "a04736d8", "name": "m3_a.bin", "size": 4096}], "name": "esh.zip", "note": "Esh's Aurunmilla. Loaded by esh, eshalt, eshalt2, eshfix7, eshfix7alt, eshfix7alt2", "required": true, "source_ref": "src/game/esh.cpp:96", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "7a562f49", "name": "f8_alt1.bin", "size": 8192}], "name": "eshalt.zip", "note": "Esh's Aurunmilla, alternate set 1", "required": true, "source_ref": "src/game/esh.cpp:124", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "8d27d363", "name": "h8_alt2.bin", "size": 8192}], "name": "eshalt2.zip", "note": "Esh's Aurunmilla, alternate set 2. Loaded by eshalt2, eshfix7alt2", "required": true, "source_ref": "src/game/esh.cpp:146", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "1f05561d", "name": "f8_is2-fixed.bin", "size": 8192}], "name": "eshfix7.zip", "note": "Esh's Aurunmilla, stage 7 fix", "required": true, "source_ref": "src/game/esh.cpp:168-183", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "6b681736", "name": "f8_is2-fixed-alt.bin", "size": 8192}], "name": "eshfix7alt.zip", "note": "Esh's Aurunmilla, stage 7 fix for alternate set 1", "required": true, "source_ref": "src/game/esh.cpp:190", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "1f05561d", "name": "f8_is2-fixed.bin", "size": 8192}], "name": "eshfix7alt2.zip", "note": "Esh's Aurunmilla, stage 7 fix for alternate set 2", "required": true, "source_ref": "src/game/esh.cpp:212-227", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "91bba45a", "name": "136026.101", "size": 16384}, {"crc32": "5f1e423d", "name": "136026.102", "size": 16384}, {"crc32": "83f1d4ed", "name": "136026.105", "size": 16384}, {"crc32": "c5d8d417", "name": "136026.106", "size": 16384}, {"crc32": "7639270c", "name": "136026.109", "size": 16384}, {"crc32": "f3102944", "name": "136026.110", "size": 16384}, {"crc32": "8a230bb5", "name": "136026.111", "size": 16384}, {"crc32": "8a32f9f1", "name": "136026.125", "size": 8192}], "name": "firefox.zip", "note": "Firefox. Main program, four ROM banks and character graphics. Loaded by firefox, firefoxa", "required": true, "source_ref": "src/game/firefox.cpp:142", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"name": "136026.127", "size": 8192}, {"name": "136026.201", "size": 16384}, {"name": "136026.205", "size": 16384}, {"name": "136026.209", "size": 16384}, {"name": "136026.210", "size": 16384}, {"name": "136026.211", "size": 16384}], "name": "firefoxa.zip", "note": "Firefox alternate program and banks. Driver passes crc32 0, so no CRC check", "required": true, "source_ref": "src/game/firefox.cpp:170", "system": "arcade-laserdisc", "validation": ["size"]}, {"category": "bios_zip", "contents": [{"crc32": "d13715f8", "name": "gr5592.bin", "size": 16384}, {"crc32": "b0a557aa", "name": "gr5593.bin", "size": 16384}, {"crc32": "4403ef5a", "name": "gr5594.bin", "size": 16384}, {"crc32": "ccbaec4f", "name": "gr5595.bin", "size": 16384}, {"crc32": "b16bdfe4", "name": "gr5611.bin", "size": 16384}, {"crc32": "e312d080", "name": "gr5612.bin", "size": 16384}, {"crc32": "398f6b23", "name": "gr5633.bin", "size": 16384}, {"crc32": "2c5be1b7", "name": "gr5634.bin", "size": 16384}], "name": "galaxy.zip", "note": "Galaxy Ranger. Loaded by blazer, galaxy, galaxyp", "required": true, "source_ref": "src/game/astron.cpp:143", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "6617e702", "name": "epr-5613.bin", "size": 16384}, {"crc32": "73ad8932", "name": "epr-5614.bin", "size": 16384}], "name": "galaxyp.zip", "note": "Galaxy Ranger, alternate program ROMs", "required": true, "source_ref": "src/game/astron.cpp:191", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"name": "gpw_5501.bin", "size": 256}, {"name": "gpw_6146.bin", "size": 32}, {"name": "gpw_6147.bin", "size": 256}, {"name": "gpw_6148.bin", "size": 4096}, {"name": "gpw_6149.bin", "size": 16384}, {"name": "gpw_6150.bin", "size": 16384}, {"name": "gpw_6151.bin", "size": 16384}, {"name": "gpw_6152.bin", "size": 16384}, {"name": "gpw_6153.bin", "size": 16384}, {"name": "gpw_6154.bin", "size": 16384}, {"name": "gpw_6155.bin", "size": 16384}, {"name": "gpw_6156.bin", "size": 16384}, {"name": "gpw_6157.bin", "size": 16384}, {"name": "gpw_6158.bin", "size": 16384}, {"name": "gpw_6162a.bin", "size": 16384}, {"name": "gpw_6163.bin", "size": 16384}, {"name": "gpw_6164.bin", "size": 16384}], "name": "gpworld.zip", "note": "GP World. Driver passes crc32 0, so no CRC check", "required": true, "source_ref": "src/game/gpworld.cpp:101", "system": "arcade-laserdisc", "validation": ["size"]}, {"category": "bios_zip", "contents": [{"crc32": "d8efddea", "name": "gtg.rm0", "size": 8192}, {"crc32": "69953d38", "name": "gtg.rm1", "size": 8192}, {"crc32": "b043e205", "name": "gtg.rm2", "size": 8192}, {"crc32": "ec305f5e", "name": "gtg.rm3", "size": 8192}, {"crc32": "9e4c8aa2", "name": "gtg.rm4", "size": 8192}], "name": "gtg.zip", "note": "Goal to Go", "required": true, "source_ref": "src/game/cliff.cpp:131", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "5ebb81f9", "name": "blue6d.bot", "size": 256}, {"crc32": "7d8c845c", "name": "green6c.bot", "size": 256}, {"crc32": "5c52f844", "name": "red6b.bot", "size": 256}, {"crc32": "4f34fb1d", "name": "rom1.top", "size": 8192}, {"crc32": "165cbc57", "name": "rom11.bot", "size": 8192}, {"crc32": "5d643381", "name": "rom2.top", "size": 8192}, {"crc32": "ce5a2b09", "name": "rom3.top", "size": 8192}, {"crc32": "7c2cb1f1", "name": "rom4.top", "size": 8192}, {"crc32": "354377f6", "name": "rom5.top", "size": 8192}, {"crc32": "0319bf40", "name": "rom6.top", "size": 8192}, {"crc32": "1447ce3a", "name": "rom7.bot", "size": 8192}, {"crc32": "e9c9e490", "name": "rom8.bot", "size": 8192}, {"crc32": "9d79acb6", "name": "rom9.bot", "size": 8192}], "name": "interstellar.zip", "note": "Interstellar", "required": true, "source_ref": "src/game/interstellar.cpp:165", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "f5ea3b9d", "name": "dl_f2_u1.bin", "size": 8192}, {"crc32": "dcc1dff2", "name": "dl_f2_u2.bin", "size": 8192}, {"crc32": "ab514e5b", "name": "dl_f2_u3.bin", "size": 8192}, {"crc32": "f5ec23d2", "name": "dl_f2_u4.bin", "size": 8192}], "name": "lair.zip", "note": "Dragon's Lair rev F2. Loaded by lair, lair_f", "required": true, "source_ref": "src/game/lair.cpp:117", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "e9453a1b", "name": "dl2_319.bin", "size": 65536}], "name": "lair2.zip", "note": "Dragon's Lair 2 v3.19", "required": true, "source_ref": "src/game/lair2.cpp:138", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "9f2660a3", "name": "dl2_211.bin", "size": 65536}], "name": "lair2_211.zip", "note": "Dragon's Lair 2 v2.11", "required": true, "source_ref": "src/game/lair2.cpp:109", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "dec4f2e3", "name": "dl2_300.bin", "size": 65536}], "name": "lair2_300.zip", "note": "Dragon's Lair 2 v3.00", "required": true, "source_ref": "src/game/lair2.cpp:113", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "af92b612", "name": "dl2_314.bin", "size": 65536}], "name": "lair2_314.zip", "note": "Dragon's Lair 2 v3.14", "required": true, "source_ref": "src/game/lair2.cpp:117", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "13ec0600", "name": "dl2_315.bin", "size": 65536}], "name": "lair2_315.zip", "note": "Dragon's Lair 2 v3.15", "required": true, "source_ref": "src/game/lair2.cpp:121", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "d68f1b13", "name": "lair2_316_euro.bin", "size": 65536}], "name": "lair2_316_euro.zip", "note": "Dragon's Lair 2 v3.16 Euro", "required": true, "source_ref": "src/game/lair2.cpp:142", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "64706492", "name": "dl2_318.bin", "size": 65536}], "name": "lair2_318.zip", "note": "Dragon's Lair 2 v3.18", "required": true, "source_ref": "src/game/lair2.cpp:134", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "cc23ad9f", "name": "dl2euro3.19.bin", "size": 65536}], "name": "lair2_319_euro.zip", "note": "Dragon's Lair 2 v3.19 Euro", "required": true, "source_ref": "src/game/lair2.cpp:146", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "4b9a811d", "name": "lair2_319_span.bin", "size": 65536}], "name": "lair2_319_span.zip", "note": "Dragon's Lair 2 v3.19 Spanish", "required": true, "source_ref": "src/game/lair2.cpp:150", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "d76e83ec", "name": "dl_a_u1.bin", "size": 8192}, {"crc32": "a6a723d8", "name": "dl_a_u2.bin", "size": 8192}, {"crc32": "52c59014", "name": "dl_a_u3.bin", "size": 8192}, {"crc32": "924d12f2", "name": "dl_a_u4.bin", "size": 8192}, {"crc32": "6ec2f9c1", "name": "dl_a_u5.bin", "size": 8192}], "name": "lair_a.zip", "note": "Dragon's Lair rev A. Loaded by lair_a, lair_b, lair_c", "required": true, "source_ref": "src/game/lair.cpp:399", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "6751103d", "name": "dl_b_u2.bin", "size": 8192}], "name": "lair_b.zip", "note": "Dragon's Lair rev B. Loaded by lair_b, lair_c", "required": true, "source_ref": "src/game/lair.cpp:425", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "cebfe26a", "name": "dl_c_u1.bin", "size": 8192}], "name": "lair_c.zip", "note": "Dragon's Lair rev C", "required": true, "source_ref": "src/game/lair.cpp:437", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "0b5ab120", "name": "dl_d_u1.bin", "size": 8192}, {"crc32": "93ebfffb", "name": "dl_d_u2.bin", "size": 8192}, {"crc32": "22e6591f", "name": "dl_d_u3.bin", "size": 8192}, {"crc32": "5f7212cb", "name": "dl_d_u4.bin", "size": 8192}, {"crc32": "2b469c89", "name": "dl_d_u5.bin", "size": 8192}], "name": "lair_d.zip", "note": "Dragon's Lair rev D", "required": true, "source_ref": "src/game/lair.cpp:450", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "329b354a", "name": "elu45_d2.bin", "size": 8192}], "name": "lair_d2.zip", "note": "Dragon's Lair PAL, third set", "required": true, "source_ref": "src/game/laireuro.cpp:672", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "02980426", "name": "dl_e_u1.bin", "size": 8192}, {"crc32": "979d4c97", "name": "dl_e_u2.bin", "size": 8192}, {"crc32": "897bf075", "name": "dl_e_u3.bin", "size": 8192}, {"crc32": "4ebffba5", "name": "dl_e_u4.bin", "size": 8192}], "name": "lair_e.zip", "note": "Dragon's Lair rev E", "required": true, "source_ref": "src/game/lair.cpp:149", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "06fc6941", "name": "dl_f_u1.bin", "size": 8192}, {"crc32": "a817324e", "name": "dl_f_u4.bin", "size": 8192}], "name": "lair_f.zip", "note": "Dragon's Lair rev F", "required": true, "source_ref": "src/game/lair.cpp:139", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "2ed85958", "name": "lair_ita_45.bin", "size": 8192}, {"crc32": "0c0b3011", "name": "lair_ita_48.bin", "size": 8192}], "name": "lair_ita.zip", "note": "Dragon's Lair PAL, Italian version", "required": true, "source_ref": "src/game/laireuro.cpp:655", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "a1856eac", "name": "dl_n1_u1.bin", "size": 8192}, {"crc32": "1b34406f", "name": "dl_n1_u2.bin", "size": 8192}, {"crc32": "cf3f4d3c", "name": "dl_n1_u3.bin", "size": 8192}, {"crc32": "a98880c5", "name": "dl_n1_u4.bin", "size": 8192}, {"crc32": "17b7336b", "name": "dl_n1_u5.bin", "size": 8192}], "name": "lair_n1.zip", "note": "Dragon's Lair NTSC prototype, machine serial number 1", "required": true, "source_ref": "src/game/lair.cpp:462", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "ea6d5498", "name": "dl_x_u1.bin", "size": 8192}, {"crc32": "ffe84a95", "name": "dl_x_u2.bin", "size": 8192}, {"crc32": "6363fd84", "name": "dl_x_u3.bin", "size": 8192}, {"crc32": "84cabb86", "name": "dl_x_u4.bin", "size": 8192}, {"crc32": "8cc8f073", "name": "dl_x_u5.bin", "size": 8192}], "name": "lair_x.zip", "note": "Dragon's Lair NTSC, early set of unknown revision", "required": true, "source_ref": "src/game/lair.cpp:475", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "e7506d96", "name": "elu33.bin", "size": 8192}, {"crc32": "4d3a9eac", "name": "elu45.bin", "size": 8192}, {"crc32": "8479612b", "name": "elu46.bin", "size": 8192}, {"crc32": "6a66f6b4", "name": "elu47.bin", "size": 8192}, {"crc32": "36575106", "name": "elu48.bin", "size": 8192}], "name": "laireuro.zip", "note": "Dragon's Lair PAL. Loaded by lair_d2, lair_ita, laireuro", "required": true, "source_ref": "src/game/laireuro.cpp:84", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"name": "A02_29.bin", "size": 8192}, {"name": "a02_01.bin", "size": 8192}, {"name": "a02_02.bin", "size": 8192}, {"name": "a02_03.bin", "size": 8192}, {"name": "a02_04.bin", "size": 8192}, {"name": "a02_14.bin", "size": 8192}, {"name": "a02_15.bin", "size": 8192}, {"name": "a02_16.bin", "size": 8192}, {"name": "a02_17.bin", "size": 8192}], "name": "lgp.zip", "note": "Program and character ROMs. Driver passes crc32 0, so no CRC check", "required": true, "source_ref": "src/game/lgp.cpp:93", "system": "arcade-laserdisc", "validation": ["size"]}, {"category": "bios_zip", "contents": [{"crc32": "a6e29212", "name": "m3drom1.bin", "size": 4096}, {"crc32": "70c12bf4", "name": "m3rom0.bin", "size": 8192}, {"crc32": "3b0ba80b", "name": "m3rom1.bin", "size": 8192}, {"crc32": "fbdfb03d", "name": "m3rom2.bin", "size": 8192}, {"crc32": "b1b045af", "name": "m3rom3.bin", "size": 8192}, {"crc32": "8bfd5a44", "name": "m3rom4.bin", "size": 8192}, {"crc32": "a2a9f8e5", "name": "m3target.bin", "size": 971776}, {"crc32": "eddf8872", "name": "m3yrom1.bin", "size": 4096}, {"crc32": "ea2f5257", "name": "mach3bg0.bin", "size": 4096}, {"crc32": "f543e4ce", "name": "mach3bg1.bin", "size": 4096}, {"crc32": "0bae12a5", "name": "mach3fg0.bin", "size": 8192}, {"crc32": "9b88767b", "name": "mach3fg1.bin", "size": 8192}, {"crc32": "2a59e99e", "name": "mach3fg2.bin", "size": 8192}, {"crc32": "472128b4", "name": "mach3fg3.bin", "size": 8192}], "name": "mach3.zip", "note": "M.A.C.H. 3", "required": true, "source_ref": "src/game/mach3.cpp:229", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "084d6ae2", "name": "00.bin", "size": 8192}, {"crc32": "e4733c49", "name": "01.bin", "size": 8192}, {"crc32": "6c20335d", "name": "02.bin", "size": 8192}, {"crc32": "d1ff5ffb", "name": "03-06.bin", "size": 8192}, {"crc32": "da2c84d9", "name": "04-07.bin", "size": 8192}, {"crc32": "4608b516", "name": "05-08.bin", "size": 8192}], "name": "roadblaster.zip", "note": "Road Blaster", "required": true, "source_ref": "src/game/bega.cpp:223", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "cbc5e425", "name": "sae10_u1.bin", "size": 8192}, {"crc32": "71a26f47", "name": "sae10_u2.bin", "size": 8192}, {"crc32": "bac5cdd8", "name": "sae10_u3.bin", "size": 8192}, {"crc32": "e18380f9", "name": "sae10_u4.bin", "size": 8192}, {"crc32": "8a536cb0", "name": "sae10_u5.bin", "size": 8192}, {"crc32": "ca4e20e6", "description": "verified by CRC32 at boot, lair.cpp:373", "name": "readme.txt"}], "name": "sae.zip", "note": "Space Ace Enhancement", "required": true, "source_ref": "src/game/lair.cpp:345", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "5fb0e440", "name": "sdq-char.bin", "size": 8192}, {"crc32": "96701569", "name": "sdq-cprm.bin", "size": 32}, {"crc32": "96b931e2", "name": "sdq-prog.bin", "size": 16384}], "name": "sdq.zip", "note": "Super Don Quix-ote. Loaded by sdq, sdqshort, sdqshortalt", "required": true, "source_ref": "src/game/superd.cpp:196", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "0f4d4832", "name": "sdq_c45.rom", "size": 16384}], "name": "sdqshort.zip", "note": "Super Don Quix-ote, short scenes set", "required": true, "source_ref": "src/game/superd.cpp:214", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "b12ce1f8", "name": "sdq_c45alt.rom", "size": 16384}], "name": "sdqshortalt.zip", "note": "Super Don Quix-ote, alternate short scenes set", "required": true, "source_ref": "src/game/superd.cpp:234", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"name": "TT061891.BIN", "size": 262144}], "name": "timetrav.zip", "note": "Single 256 KB program ROM. Driver passes crc32 0, so no CRC check", "required": true, "source_ref": "src/game/timetrav.cpp:64", "system": "arcade-laserdisc", "validation": ["size"]}, {"category": "bios_zip", "contents": [{"crc32": "6748e6b3", "name": "tq_cop.bin", "size": 1024}, {"crc32": "e8e7f566", "name": "tq_u1.bin", "size": 8192}, {"crc32": "82df5d89", "name": "tq_u33.bin", "size": 32768}], "name": "tq.zip", "note": "Thayer's Quest. Loaded by tq, tq_alt, tq_swear", "required": true, "source_ref": "src/game/thayers.cpp:97", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "33817e25", "name": "tq_u1.bin", "size": 8192}], "name": "tq_alt.zip", "note": "Thayer's Quest, alternate program ROM", "required": true, "source_ref": "src/game/thayers.cpp:253", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "7be981df", "name": "tq_u33_mod.bin", "size": 32768}], "name": "tq_swear.zip", "note": "Thayer's Quest, JnK's swearing hack", "required": true, "source_ref": "src/game/thayers.cpp:264", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}, {"category": "bios_zip", "contents": [{"crc32": "8a0de09f", "name": "usvs.bg0", "size": 4096}, {"crc32": "6fb64d3c", "name": "usvs.bg1", "size": 4096}, {"crc32": "7734e53f", "name": "usvs.fg0", "size": 16384}, {"crc32": "a2057430", "name": "usvs.fg1", "size": 16384}, {"crc32": "d3990707", "name": "usvs.fg2", "size": 16384}, {"crc32": "98703015", "name": "usvs.fg3", "size": 16384}, {"crc32": "30cf6bd9", "name": "usvs.rm0", "size": 8192}, {"crc32": "697bc989", "name": "usvs.rm1", "size": 8192}, {"crc32": "36770716", "name": "usvs.rm2", "size": 8192}, {"crc32": "6f32a671", "name": "usvs.rm3", "size": 8192}, {"crc32": "0d7a4072", "name": "usvs.rm4", "size": 8192}, {"crc32": "c0b5cab0", "name": "usvsdrom.1", "size": 8192}, {"crc32": "c3d245ca", "name": "usvsyrom.1", "size": 8192}], "name": "uvt.zip", "note": "Us vs Them", "required": true, "source_ref": "src/game/mach3.cpp:261", "system": "arcade-laserdisc", "validation": ["size", "crc32"]}], "mode": "standalone", "notes": "Fork of Matt Ownby's Daphne by DirtBagXon, rebuilt on SDL3, with Singe Lua\nscripting for fan-made American Laser Games conversions. Platforms invoke it\nas hypseus-singe (Batocera, RetroBat, ES-DE find rule HYPSEUS-SINGE) against\nthe hypseus.bin binary.\n\nEach Daphne game loads its own arcade ROM set. game::load_roms() walks the\ndriver rom_def table and opens roms/<set>.zip, locating each member by name\ncase-insensitively; a member missing from the archive falls back to a loose\nfile at roms/<set>/<member> (game.cpp:636-768). The set name is the rom_def\ndir field when set, otherwise the driver shortgamename, so a variant can pull\nmembers out of another game's archive. roms/ resolves under -romdir when\ngiven, otherwise under the home directory, with the application directory as\nfallback (homedir.cpp:97-108, 145-157).\n\nMember size is enforced: load_rom and load_compressed_rom only report success\nwhen the byte count read equals rom_def.size (game.cpp:857, 906). CRC32 is\ncomputed and compared but a mismatch only logs a warning (game.cpp:708-726),\nand a driver that passes crc32 0 skips the comparison entirely\n(game.cpp:712-716). A member that cannot be read at all aborts startup with\n\"Could not load ROM images! You must supply these.\" (hypseus.cpp:205-260).\nHashing is per member, never over the archive.\n\nThe Dragon's Lair Enhancement and Space Ace Enhancement sets carry an extra\nreadme member checked by exact CRC32 through verify_required_file(); a\nmissing or altered readme calls set_quitflag() and the game does not run\n(game.cpp:773-837, lair.cpp:197-205, 261-275, 373-380).\n\nSinge games are not covered by rom_def. The Lua script, framefile and video\narrive with the content and are passed on the command line (-script, -zlua,\n-framefile); singe_utils.cpp:35-42 only exposes the roms path to scripts.\n\nThe emulator asset tree ships in the source distribution and packagers\ninstall it beside the binary (Batocera copies pics, fonts, sound and the\ndoc .ini files to /usr/share/hypseus-singe). It is read from the working\ndirectory, not from a system directory:\n  pics/ - led0.bmp through led17.bmp (LED_RANGE, video.h:71), player1.bmp,\n    player2.bmp, lives.bmp, credits.bmp, time.bmp, ldp1450font.bmp, one of\n    overlayleds1.bmp or overlayleds2.bmp, cadet.bmp, captain.bmp,\n    spaceace.bmp, offcadet.bmp, offcaptain.bmp, offspaceace.bmp, oncadet.bmp,\n    oncaptain.bmp, onspaceace.bmp, annunon.png, annunoff.png. load_bmps()\n    returns false if any is absent and startup ends on \"Video initialization\n    failed!\" (video.cpp:1020-1074, hypseus.cpp:201). tqkeys.png is read for\n    the Thayer's Quest key overlay (video.cpp:632-635). A bezel directory,\n    default bezels/, takes precedence for the bmp and png entries.\n  fonts/ - default.ttf plus daphne.ttf for legacy overlay and Singe games or\n    digital.ttf otherwise; a font that fails to open calls set_quitflag()\n    (video.cpp:271-293, splash.cpp:45).\n  sound/ - the per-game wav samples named by each driver, plus grumble.wav\n    loaded for every game. load_waves() failure fails sound::init() and\n    startup ends on \"Sound initialization failed!\" (sound.cpp:254-307,\n    sound.cpp:156-186, hypseus.cpp:202). Under -nosound the branch is\n    skipped and init returns true (sound.cpp:143, 193-196).\n  doc/ - hypinput.ini, or hypinput_gamepad.ini under -gamepad. An\n    unreadable file falls back to the compiled-in keymap (input.cpp:72,\n    340-350, 1879).\n\nmidi/soundfont.sf2 ships in the tree but no code path reads it in v3.0.0.\nmidi/SOUNDFONTS.txt records that the SDL3 migration dropped the environment\nvariable convention the SDL2 build relied on. pics/ConsoleFont.bmp is\nlikewise unreferenced. starrider.cpp:99 keeps its ROM table in a\ncommented-out load_roms, so the driver loads nothing.\n", "profiled_date": "2026-08-08", "source": "https://github.com/DirtBagXon/hypseus-singe", "source_commit": "cda87965fe0a031d027b2253c6715d37cca6b56a", "systems": ["arcade-laserdisc"], "type": "standalone", "upstream": "https://github.com/mirror/daphne-emu"}


id: idtech4a++
name: idTech4A++
type: standalone
classification: game_engine
source: https://github.com/glKarin/com.n0n3m4.diii4a
upstream: https://github.com/glKarin/com.n0n3m4.diii4a
source_commit: 683afc7aa181ec4b7ee69424ce9fdb1a8fac5ba9
profile_json:
{"author": "glKarin", "core_classification": "game_engine", "core_version": "1.1.0harmattan72", "cores": ["idtech4a++", "idtech4amm", "diii4a"], "display_name": "id Tech engine collection (idTech4A++)", "emulator": "idTech4A++", "exclusion_note": "The retail game data is not listed. Every engine here loads it by globbing the base folder rather than by name, `.pk4` for the idTech 4 lineage, `.resources` for DOOM 3 BFG, the four container suffixes for Yamagi, `*.gro` for Serious Sam, and what it gates on is a `default.cfg` that lives inside those archives rather than beside them. The names that do appear in the code are the forty-nine the DOOM engine accepts as an IWAD, read from `iwadinfo.txt` in `game_support.pk3`, the four the launcher offers as selectable UZDOOM data files, and the five extensions ECWolf reports when no Wolfenstein data is found; all of them are game content, held here the same way the PrBoom and boom3 profiles hold theirs, in the notes. `stdout.txt` and `stderr.txt` are opened for writing by the engine and read back only to show the last run log, and an `idtech4amm.version` stamp is written beside each extracted resource. ref: doom3/neo/framework/FileSystem.cpp:2052, 3397-3399,\n     Q3E/src/main/jni/quake2/yquake2/src/common/filesystem.c:1801-1850,\n     Q3E/src/main/jni/serioussam/SamTFE/Sources/Engine/Base/Stream.cpp:212-247,\n     Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:766,\n     Q3E/src/main/jni/q3e/q3emisc.c:23-25,\n     idTech4Amm/src/main/java/com/n0n3m4/DIII4A/GameLauncher.java:2899, 2916,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:697-703\n", "files": [{"bundled": true, "category": "game_data", "description": "UZDOOM engine resource archive", "md5": "d3f231863ee2973dbc9291e853d1eb4a", "name": "uzdoom.pk3", "note": "Named by BASEWAD and searched before anything else; a miss ends the process with \"Cannot find uzdoom.pk3\". Carries the hex font, the widget resources and the script definitions the engine needs before a game is chosen. Copied out of the apk with the rest of the UZDOOM resource directory.", "path": "uzdoom/uzdoom.pk3", "required": true, "sha1": "dd2364da2cc8b49e32330ba9abff80727b4ea0a0", "size": 3007398, "source_ref": "Q3E/src/main/jni/zdoom/src/version.h:100, Q3E/src/main/jni/zdoom/src/d_main.cpp:3707-3713, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:94-103"}, {"bundled": true, "category": "game_data", "description": "UZDOOM IWAD definitions and per-game filters", "md5": "64d976172bae64edb10e542f14f2de9f", "name": "game_support.pk3", "note": "Named by OPTIONALWAD and opened as the second file of the IWAD manager. It holds the IWADINFO lump, so without it no IWAD is recognised and startup ends on \"Cannot find a game IWAD\" even when the WAD is in place. Also carries the per-game filter trees keyed by IWAD identity.", "path": "uzdoom/game_support.pk3", "required": true, "sha1": "cccab57d1d1b84601fa0c52a74f55bf7b36f4e1c", "size": 2382047, "source_ref": "Q3E/src/main/jni/zdoom/src/version.h:102, Q3E/src/main/jni/zdoom/src/d_main.cpp:3744-3746, Q3E/src/main/jni/zdoom/src/d_iwad.cpp:321-342, 738"}, {"bundled": true, "category": "game_data", "description": "Widescreen replacements for the stock graphics", "md5": "8ebf4d4a7b950f156c6c277ed9244aac", "name": "game_widescreen_gfx.pk3", "note": "Searched by name and loaded only when the startup dialog leaves widescreen graphics enabled.", "path": "uzdoom/game_widescreen_gfx.pk3", "required": false, "sha1": "9ff11fca19550b189cc8e7d4cafc9897d57cd472", "size": 5565936, "source_ref": "Q3E/src/main/jni/zdoom/src/d_main.cpp:2083"}, {"bundled": true, "category": "game_data", "description": "Dynamic light definitions", "md5": "5e5977e018d3ef2dfda2607b0b3e57ae", "name": "lights.pk3", "note": "Searched by name on the user choice recorded at first start, and offered a second time as a launcher switch that appends it to the file list.", "path": "uzdoom/lights.pk3", "required": false, "sha1": "19ad73cae23b5d9f3890ae29542a2d3e611bda00", "size": 24030, "source_ref": "Q3E/src/main/jni/zdoom/src/d_main.cpp:2066-2075, Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:1138, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/GameLauncher.java:558"}, {"bundled": true, "category": "game_data", "description": "Brightmap definitions", "md5": "302fd7cffd2b197c5c68778f877d3086", "name": "brightmaps.pk3", "note": "Loaded on the same choice and the same launcher switch as the light definitions.", "path": "uzdoom/brightmaps.pk3", "required": false, "sha1": "ccb1fb093dc128da46a5060ba319c5bd5790e074", "size": 246181, "source_ref": "Q3E/src/main/jni/zdoom/src/d_main.cpp:2066-2081, Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:1140, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/GameLauncher.java:565"}, {"bundled": true, "category": "game_data", "description": "SoundFont for the MIDI devices", "md5": "f306ebc541a428d296cd3b7ee996d872", "name": "uzdoom.sf2", "note": "Collected by scanning a `soundfonts` directory added to the search paths of the config file; every .sf2 and zipped GUS patch set found there becomes a menu entry.", "path": "uzdoom/soundfonts/uzdoom.sf2", "required": false, "sha1": "4394193fb95c1e59916efe9ac3a47952ab5002f5", "size": 3299098, "source_ref": "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:220, 258, Q3E/src/main/jni/zdoom/src/common/audio/music/i_soundfont.cpp:335-370"}, {"bundled": true, "category": "game_data", "description": "OPL3 instrument bank", "md5": "29570afc6ccea3d9ef7d2734f02e6cab", "name": "GENMIDI.GS.wopl", "note": "Collected from an `fm_banks` directory added to the search paths beside the soundfont directory, for the OPL synthesiser.", "path": "uzdoom/fm_banks/GENMIDI.GS.wopl", "required": false, "sha1": "538d220d87b86b997f539265eb12a6c319e17a1c", "size": 118767, "source_ref": "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:221, 259"}, {"bundled": true, "category": "game_data", "description": "OPN2 instrument bank", "md5": "4978fd39a6d78de1cf1021e24424f822", "name": "gs-by-papiezak-and-sneakernets.wopn", "note": "Collected from the same `fm_banks` directory, for the OPN2 synthesiser.", "path": "uzdoom/fm_banks/gs-by-papiezak-and-sneakernets.wopn", "required": false, "sha1": "eaca5d7a9fe1db6094990be0d8916b7f97920db1", "size": 274864, "source_ref": "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:221, 259"}, {"bundled": true, "category": "game_data", "description": "ECWolf engine resource archive", "md5": "d9dcd91db4a0bc45ba12a01ad1828be8", "name": "ecwolf.pk3", "note": "Named by MAIN_PK3 and passed to the game selector with the program directory; failing to open it ends the process with \"Could not open ecwolf.pk3!\". It holds the IWADINFO rules that identify which Wolfenstein data set is present, the palettes and the actor definitions. This build reads it from disk after extraction, unlike the libretro core which compiles it in.", "path": "ecwolf/ecwolf.pk3", "required": true, "sha1": "d327b48f83d9b95c5a49597145d96be80be3eade", "size": 185013, "source_ref": "Q3E/src/main/jni/ecwolf/src/version.h:12, Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:604, Q3E/src/main/jni/ecwolf/src/wl_main.cpp:1294-1307, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:186-195"}, {"bundled": true, "category": "game_data", "description": "The Dark Mod GLSL shader set rewritten for OpenGL ES", "md5": "3155df291027d253e2596db3fca1ac4a", "name": "glprogs.pk4", "note": "Unpacked into the standalone directory as `glslprogs/`, the tree the renderer compiles its programs from. Version-stamped with the engine release so a Dark Mod update replaces it.", "required": true, "sha1": "2651f1eff1785999918c08600f079e1ad4a206e7", "size": 98396, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:83-92, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:705-722, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:391"}, {"bundled": true, "category": "game_data", "description": "DOOM 3 BFG shader set rewritten for OpenGL ES", "md5": "7edee35e1e53475d9557c1026877ae7c", "name": "renderprogs.pk4", "note": "Unpacked into `base/renderprogs/` beside the game resources. The shipped BFG data carries the desktop HLSL set, which this build cannot use.", "required": true, "sha1": "ab89141b5772de1df43831e64c53aece28c2e6f6", "size": 223453, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:72-81, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:768-787, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:393"}, {"bundled": true, "category": "game_data", "description": "Skin Deep shader set rewritten for OpenGL ES", "md5": "b94d15df5bf72a4c4510c834ef404ebb", "name": "glsl.pk4", "note": "Unpacked into `base/glsl/` and stamped with the game version.", "required": true, "sha1": "87f0f5ec3db3855c4453a9031ce695d39d0eaa44", "size": 51642, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:197-206, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:726-745, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:399"}, {"bundled": true, "category": "game_data", "description": "ETQW shader set and megatexture patches", "md5": "2f5c49dca4993da5911d632d3962c1f3", "name": "zzz_etqwbase.pk4", "note": "Unpacked into the ETQW base folder. The name sorts last so the entries override the ones the retail archives carry.", "required": true, "sha1": "0d4dee46085ced0fd117030a13533d903265301c", "size": 136061, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:208-217, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:747-766, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:400"}, {"bundled": true, "category": "game_data", "description": "ET: Legacy mod archive matching the built engine", "md5": "ea838df0911a68b5f22f5010d37867f5", "name": "legacy_v2.83.2.pk3", "note": "Copied into the `legacy` folder, the mod the engine runs by default; the retail Enemy Territory data in `etmain` stays the user's to supply. The file name is built from the engine version, so a Legacy update lands under a new name.", "path": "etw/legacy/legacy_v2.83.2.pk3", "required": true, "sha1": "f156945f70545e37fb5ee33a95ee97204a7f60b7", "size": 30993701, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:175-184, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:845-868, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:397"}, {"bundled": true, "category": "game_data", "description": "Xash3D touch controls, fonts and controller database", "md5": "1a65bf279b969c017a34497d183e5544", "name": "extras.pk3", "note": "Mounted ahead of every game directory from the path in XASH3D_EXTRAS_PAK1. It carries the touch-control textures the mobile build draws and the gamecontrollerdb.txt the SDL joystick layer reads through the virtual filesystem.", "path": "xash/extras.pk3", "required": true, "sha1": "971249b94cb62fbca2f42c8ab7a7d29d30e5b368", "size": 1491748, "source_ref": "Q3E/src/main/jni/xash3d/xash3d-fwgs/filesystem/filesystem.c:1376-1378, Q3E/src/main/jni/xash3d/xash3d-fwgs/engine/platform/sdl2/joy_sdl2.c:346, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:142-151"}, {"bundled": true, "category": "game_data", "description": "Counter-Strike 1.6 client resources for Xash3D", "md5": "15bf94e95c94c301f92270b6775b9a3d", "name": "cs16client-extras.pk3", "note": "Extracted right after the base extras and mounted the same way, for the cs16 and cs16_yapb server classes the launcher offers.", "path": "xash/cs16client-extras.pk3", "required": false, "sha1": "ab0c9f66e9e9be4af96c20d5ce3a9d684eeff2c2", "size": 12976942, "source_ref": "Q3E/src/main/jni/xash3d/xash3d-fwgs/filesystem/filesystem.c:1380-1382, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:153-162, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:815-843, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:412"}, {"bundled": true, "category": "game_data", "description": "Source engine fonts and platform archive", "md5": "15944b9068602a6d36905be035e9e547", "name": "extras.zip", "note": "Unpacked into `files/` under the Source standalone directory. It carries the DejaVu, Droid Sans Fallback, Itim and Liberation faces the engine substitutes for the Windows fonts, and extras_dir.vpk.", "required": true, "sha1": "388bfce5ba834f5ed329a0fa9864b0b75840e951", "size": 15081926, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:164-173, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:895-919, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:396"}, {"bundled": true, "category": "game_data", "description": "Stupid Angry Bot definitions for DOOM 3 multiplayer", "md5": "494bd9601fc82752cc6c6d14cf684d8e", "name": "d3_sabot_a7.pk4", "note": "Extracted on request into the current mod folder under a name prefixed to sort last. It holds the defs, scripts and multiplayer AAS files the bot commands need. A second entry repacks only the `maps/` tree into zzz_idTech4Amm_d3_sabot_a7_aas.pk4 for users who already have the mod.", "path": "doom3/base/zzz_idTech4Amm_d3_sabot_a7.pk4", "required": false, "sha1": "8179522bcd5abc4c5a3194bf49f6821738644500", "size": 2399406, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:48-58, 129-140, README.md:256-259"}, {"bundled": true, "category": "game_data", "description": "Stupid Angry Bot definitions for Quake 4 multiplayer", "md5": "710997decddd8ace044d028fe79b52e9", "name": "q4_sabot_a9.pk4", "note": "The Quake 4 counterpart, extracted the same way, with the same maps-only variant written as zzz_idTech4Amm_q4_sabot_a9_aas.pk4.", "path": "quake4/q4base/zzz_idTech4Amm_q4_sabot_a9.pk4", "required": false, "sha1": "a3af9251c6a2b4b8d02108bd7b91919aace929dd", "size": 21143072, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:36-46, 116-127, README.md:256-259"}, {"bundled": true, "category": "game_data", "description": "Rivensin patch restoring the original DOOM 3 levels", "md5": "214e3daebf5d11e40cd06ca5e1b02971", "name": "play_original_doom3_level.pk4", "note": "Extracted on request into the `rivensin` mod folder, the one patch tied to a named mod rather than to whichever mod is selected.", "path": "doom3/rivensin/zzz_idTech4Amm_play_original_doom3_level.pk4", "required": false, "sha1": "de368e97ca86f489c1f10ea148e0812913c25c7d", "size": 16866, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:60-70"}, {"bundled": true, "category": "game_data", "description": "Chinese text and fonts for DOOM 3, taken from the BFG release", "md5": "4fa638d0accdd696149d83f3579d185e", "name": "doom3_chinese_translation_doom3bfg.pk4", "note": "Copied into the DOOM 3 base folder on request. It pairs with the wide-character language and BFG font support compiled into the engine.", "path": "doom3/base/doom3_chinese_translation_doom3bfg.pk4", "required": false, "sha1": "8c06159ab1012b271d39d624b45c55c2360dc443", "size": 5138117, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:105-114, README.md:37, 168-169"}, {"bundled": true, "description": "Button image themes carried in the apk", "md5": "9f6f5073fda93251f7a48a91a6d4c5d1", "name": "controls_theme.zipak", "note": "Read in place from the assets, never extracted. Archives with this suffix are folded into the search path wherever they are found, and the `controls_theme/` folders inside become named entries in the theme chooser; this one carries the cs16-client and source-engine sets.", "required": false, "sha1": "5be92df9e74843bc6071e3627f4fd876d499a490", "size": 3133490, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:230, Q3E/src/main/java/com/n0n3m4/q3e/karin/KFDManager.java:44, 102, 113-129, Q3E/src/main/java/com/n0n3m4/q3e/karin/KFileDescriptor.java:56, 102"}, {"bundled": true, "description": "Default on-screen button images, 52 files", "name": "btn_jump.png", "note": "Read from the assets root when the theme is the built-in one. The set covers the alphabet, the digits and the named actions the games bind, and any of the 52 names can be replaced by putting a file of the same name in one of the external search paths.", "required": false, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:348-370, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/SetupControlsThemeFunc.java:167-177"}, {"bundled": true, "description": "Virtual keyboard layout", "md5": "ef9b27699a627334930f6d4252b644d5", "name": "generic.json", "note": "Read straight from the assets when the on-screen keyboard is built, without going through the external search path, so nothing outside the archive replaces it.", "path": "keyboard/generic.json", "required": false, "sha1": "839c05a60c231d409f90b477bf2001c28f10b1bb", "size": 10278, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EKeyboard.java:74"}, {"description": "Console script the engine runs at startup", "name": "autoexec.cfg", "note": "Executed by the id-derived engines from the mod folder and from the base folder. The launcher lists both positions next to the config file each game writes for itself, DoomConfig.cfg, Quake4Config.cfg, preyconfig.cfg, q3config.cfg, wolfconfig.cfg, Darkmod.cfg, uzdoom.ini and the rest, and opens any of them in its editor. The config files are written by the engines; this one only ever comes from the user.", "required": false, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:722-836, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:63-88, idTech4Amm/src/main/java/com/karin/idTech4Amm/ConfigEditorActivity.java:103"}, {"description": "Blurb shown for a mod in the chooser", "name": "description.txt", "note": "Read from the root of a mod folder when the mod list is built and shown under the folder name with its size. The control theme chooser reads a file of the same name from a theme folder, there with an optional language suffix.", "required": false, "source_ref": "idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/ChooseGameModFunc.java:242-251, Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:330-341"}, {"description": "Extra SDL controller mappings", "load_from": "internal_storage", "name": "controller_map.txt", "note": "SDL builds this path from the internal storage directory of the package when SDL_GAMECONTROLLERCONFIG_FILE is unset, which it is here, and reads it while the game controller subsystem starts, after the compiled-in mappings and before the ones the environment carries. It reaches the six games the app runs on SDL, Xash3D, Source, ECWolf, Skin Deep, Quadrilateral Cowboy and Icarus; the other engines take input from the Q3E frontend instead. The SDL2 tree under deplibs is what the build compiles, version 2.32.5.", "required": false, "source_ref": "Q3E/src/main/jni/deplibs/SDL2/src/joystick/SDL_gamecontroller.c:1873-1884, 1890-1916, Q3E/src/main/jni/deplibs/SDL2/include/SDL_version.h:59-61, Q3E/src/main/jni/CMakeLists.txt:90-102, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:430, 454-461"}, {"description": "Button images of a user theme", "name": "controls_theme/<name>/btn_jump.png", "note": "A folder under `controls_theme/` in any search path, or inside a `.zipak` there, appears in the chooser under its own name and its images replace the built-in ones. A `description.txt` beside them, optionally suffixed with a language tag, supplies the name, author and description the chooser shows.", "required": false, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:305-345, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/SetupControlsThemeFunc.java:136-179"}, {"aliases": ["gamearm.so"], "description": "External idTech 4 mod game library", "name": "gameaarch64.so", "note": "Looked for in the mod folder of DOOM 3, Quake 4, Prey or ETQW when the external-library preference is on, copied to a private cache and named to the engine through harm_fs_gameLibPath. The suffix follows the running architecture, gameaarch64.so on arm64 and gamearm.so on armv7. Without it the engine keeps the game code built into the apk. The launcher also accepts a full path to any libxxxxx.so instead.", "required": false, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:342-372, 429-434, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/AddExternalLibraryFunc.java:71-86, README.md:229-233, 241-251", "unsourceable": "compiled per mod against the published SDK, with no released binary to collect"}, {"aliases": ["client.so", "menu.so"], "description": "External Xash3D game libraries", "name": "server.so", "note": "Read from `lib/<arch>/` inside the Xash3D mod folder when the external-library preference is on, copied to the private cache and passed as the dll, clientlib and menulib parameters with gamelibdir pointing at the cache. The three default names are used unless the command line names others, and any further libraries in the folder are copied alongside.", "required": false, "source_ref": "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:373-414, 445-475", "unsourceable": "compiled per mod from hlsdk-portable, with no released binary to collect"}], "mode": "standalone", "notes": "Android package com.karin.idTech4Amm, arm64-v8a and armeabi-v7a, Android 4.4+,\nGPLv3, forked from n0n3m4's DIII4A. A Java launcher picks a game and a command\nline, then loads one of twenty-six engine libraries into the Q3E frontend,\nwhich owns the GL surface, the on-screen controls and the audio path. Another\napplication starts a game directly through com.n0n3m4.q3e.Q3EMain with a `game`\nextra carrying the game token and a `command` extra carrying an argument vector\nthat begins with `game.arm`.\nref: README.md:13-26, 237-251,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:8-33, 91-116, 303,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:9,\n     idTech4Amm/build.gradle:13-14, 23\n\nGame data lives under a working directory, `/sdcard/diii4a` unless the\npreference names another, and each game reads a base folder inside it. With the\nstandalone-directory preference on, which is the default, the base folder sits\nunder a per-game subdirectory; with it off, games that are not marked always\nstandalone read the base folder directly under the working directory. The Dark\nMod, UZDOOM, FTEQW, ECWolf, Xash3D, Source and both Serious Sam entries are\nalways standalone and keep their subdirectory either way.\nref: Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:89, 106, 233-254,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:147-202, 421,\n     443-461\n\nEngine, standalone directory and base folder per game, in registration order:\nDOOM 3 (dante, doom3/base), Quake 4 (dante, quake4/q4base), Prey 2006 (dante,\nprey/preybase), Enemy Territory: QUAKE Wars (Splash Damage idTech4,\netqw/etqwbase), DOOM 3 BFG (RBDOOM-3-BFG 1.4.0, doom3bfg/base), The Dark Mod\n2.14 (darkmod), Skin Deep 1.0.4 (skindeep/base), Quadrilateral Cowboy\n1.0.2602252 (qc/base), Icarus Starship Command Simulator 1.0.9 (icarus/base),\nQuake III Arena (ioquake3 1.36, quake3/baseq3), Return to Castle Wolfenstein\n(iortcw 1.51d, rtcw/main), Wolfenstein: Enemy Territory (ET: Legacy 2.83.2,\netw/etmain), Jedi Academy (OpenJK 1.0.1.1, openja/base), Jedi Outcast (OpenJK\n1.0.1.1, openjo/base), Medal of Honor: Allied Assault (OpenMOHAA 0.82.1,\nopenmohaa/main), Urban Terror (Q3-UT4 4.3.4, urt/q3ut4), RealRTCW 5.43\n(realrtcw/Main), Quake II (Yamagi 8.60, quake2/baseq2), Quake (Darkplaces,\nquake1/darkplaces/id1), UZDOOM 4.14.3 (uzdoom), Wolfenstein 3D (ECWolf 1.4.2,\necwolf), FTEQW 1.05 (fteqw), Xash3D 0.21 (xash/valve), Source Engine 1.16\n(srceng/hl2), Serious Sam TFE 1.10.7 (serioussamtfe) and Serious Sam TSE 1.10.7\n(serioussamtse). Every one is built in this configuration; the F-Droid flavour\nleaves out Xash3D and Source, and the idtech flavour leaves out those two and\nSerious Sam. DOOM 3 BFG carries a second library for its Vulkan renderer.\nref: Q3E/src/main/java/com/n0n3m4/q3e/Q3EGame.java:17-291,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:204-230,\n     Q3E/src/main/jni/CMakeLists.txt:33-60, 137-266\n\nThe retail data is what the user brings, and no engine here names its archives\none by one. The idTech 4 lineage lists `.pk4` in the game directory, DOOM 3 BFG\nlists `.resources`, Yamagi walks `pak0` through `pak99` for each of its four\ncontainer suffixes and then globs the rest, and Serious Sam globs `*.gro`. What\nevery id-derived engine does gate on is `default.cfg` inside those archives: an\nempty read is a fatal error, and only the Splash Damage build is compiled past\nthe check. UZDOOM ends with \"Cannot find a game IWAD\" when no known IWAD is\npresent, and ECWolf with \"Can not find base game data. (*.wl6, *.wl1, *.sdm,\n*.sod, *.n3d)\". The launcher carries a store or homepage link per game and mod\nso the data can be bought or downloaded.\nref: doom3/neo/framework/FileSystem.cpp:2052, 2503, 3392-3400,\n     Q3E/src/main/jni/doom3bfg/neo/framework/FileSystem.cpp:3001, 3173,\n     Q3E/src/main/jni/darkmod/framework/FileSystem.cpp:2650-2657,\n     Q3E/src/main/jni/quake3/code/qcommon/files.c:4161-4165,\n     Q3E/src/main/jni/rtcw/SP/code/qcommon/files.c:4340-4344,\n     Q3E/src/main/jni/jk/code/qcommon/files.cpp:3020,\n     Q3E/src/main/jni/openmohaa/code/qcommon/files.cpp:4011,\n     Q3E/src/main/jni/quake2/yquake2/src/common/filesystem.c:1801-1850,\n     Q3E/src/main/jni/zdoom/src/d_iwad.cpp:738,\n     Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:766,\n     idTech4Amm/src/main/java/com/karin/idTech4Amm/sys/GameResourceUrl.java:14-118\n\nThe Quake III lineage keeps id's release checksums for `baseq3` pak0 through\npak8 and `missionpack` pak0 through pak3, and an archive whose value disagrees\nonly draws a console warning telling the user to re-copy from the CD or\nre-install the point release. Those numbers are a block checksum over the CRCs\nof the archive members, not a hash of the file, so they identify a release\nrather than validate a download.\nref: Q3E/src/main/jni/quake3/code/qcommon/files.c:178-197, 3572-3690,\n     Q3E/src/main/jni/quake3/code/qcommon/qcommon.h:592-593\n\nUZDOOM reads the IWAD names it will accept from `iwadinfo.txt` inside\n`game_support.pk3`: the DOOM, DOOM II, Final DOOM, BFG and KEX re-releases,\nFreedoom, Heretic, Hexen, Strife, Blasphemer, Chex Quest, Action Doom 2, HacX,\nHarmony, Square, Delaweare and Return of the Triad, forty-nine names. The\nlauncher itself names four of them as selectable data files, DOOM.WAD,\nDOOM2.WAD, freedoom1.wad and freedoom2.wad, because UZDOOM and ECWolf are the\ntwo games whose data is a file rather than a folder.\nref: Q3E/src/main/jni/zdoom/src/d_iwad.cpp:287-297, 321-342,\n     Q3E/src/main/jni/zdoom/src/version.h:100-102,\n     idTech4Amm/src/main/java/com/karin/idTech4Amm/sys/Game.java:69-72,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:710-713\n\nStarting a game extracts that game's bundled resources first. A text file named\n`idtech4amm.version` is written beside them and compared on the next run, so an\nengine update replaces the copy and a user edit survives otherwise. The Dark\nMod, DOOM 3 BFG, UZDOOM, Xash3D, Source, Enemy Territory, ECWolf, Skin Deep and\nETQW are covered by this path; the bot, Rivensin and translation archives are\nextracted on request from the launcher instead.\nref: Q3E/src/main/java/com/n0n3m4/q3e/Q3EMain.java:167,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:624-703, 921-940,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResource.java:12-47,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:32-218\n\nOn-screen button images are read through a search path built from the working\ndirectory, the external files directory of the package, its internal data\ndirectory and the assets of the apk, plus every `.zipak` archive found in the\nfirst three. A file of the same name in any of them replaces the built-in\nimage, and a folder under `controls_theme/` becomes a named theme in the\nchooser, described by a `description.txt` that may be suffixed with a language\ntag.\nref: Q3E/src/main/java/com/n0n3m4/q3e/karin/KFDManager.java:66-96,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:236-241, 305-345,\n     Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:230,\n     idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/SetupControlsThemeFunc.java:149-179\n", "profiled_date": "2026-08-11", "source": "https://github.com/glKarin/com.n0n3m4.diii4a", "source_commit": "683afc7aa181ec4b7ee69424ce9fdb1a8fac5ba9", "systems": ["doom", "doom3", "doom3-bfg", "quake", "quake2", "quake3", "quake4", "prey", "wolfenstein3d", "return-to-castle-wolfenstein", "wolfenstein-enemy-territory", "realrtcw", "the-dark-mod", "jedi-academy", "jedi-outcast", "medal-of-honor-allied-assault", "urban-terror", "enemy-territory-quake-wars", "skin-deep", "quadrilateral-cowboy", "icarus-starship-command-simulator", "hexen2", "half-life", "half-life-2", "serious-sam"], "type": "standalone", "upstream": "https://github.com/glKarin/com.n0n3m4.diii4a"}


id: imageviewer
name: Image Viewer
type: libretro
classification: pure_libretro
source: https://github.com/libretro/RetroArch/tree/master/cores/libretro-imageviewer
source_commit: 82c5e3be066e6d60f47a51c74ab6425ad41e1982
profile_json:
{"core_classification": "pure_libretro", "core_version": "1.0", "cores": ["imageviewer"], "display_name": "Imageviewer", "emulator": "Image Viewer", "files": [], "notes": "Built-in RetroArch core for displaying image files (PNG, JPEG, BMP,\nTGA). Uses stb_image for decoding. Supports slideshow mode.\n", "profiled_date": "2026-03-24", "source": "https://github.com/libretro/RetroArch/tree/master/cores/libretro-imageviewer", "source_commit": "82c5e3be066e6d60f47a51c74ab6425ad41e1982", "systems": [], "type": "libretro"}


id: ines
name: iNES
type: standalone
classification: other
source: https://fms.komkon.org/iNES/iNES-Android-6104.apk
upstream: closed-source
profile_json:
{"author": "Marat Fayzullin (Garage Research)", "core_classification": "other", "core_version": "6.1.4", "cores": ["ines"], "display_name": "Nintendo - NES / Famicom (iNES)", "emulator": "iNES", "exclusion_note": "Left out are the files iNES writes and reads back itself, which are emulator state rather than anything a user obtains: <game>.sav holding battery backed cartridge RAM, <game>.sta and the desktop builds' DEFAULT.STA holding saved emulation state, and LOG.MID, the soundtrack the emulator records when the MIDI log is toggled on. libOpenSLES.so is left out as the Android audio library the system provides, dlopen'd by name from InitAudio and the only other literal filename in the binary. The twenty palettes under Palettes/ in the Windows and Ubuntu distributions are left out as the shipped candidates for iNES.pal, which the emulator never opens under those names; four of them are the VS System chip palettes, RP2C04-001, RP2C04-002, RP2C04-003 and RP2C05-004, and they reach the emulator through the palette entries above rather than a path of their own. Neither the VS System nor the FamilyBASIC keyboards need a file: DISKSYS.ROM is the only image the binary names. ref: libmain.so LoadNES 0x3bb49, 0x3bd52, libmain.so InitAudio 0x12cfc,\n     iNES61-Ubuntu-x86-bin ines DEFAULT.STA, iNES61-Windows-bin.zip Palettes/\n", "files": [{"description": "Famicom Disk System BIOS", "min_size": 8192, "name": "DISKSYS.ROM", "note": "Opened by bare name, so it resolves against the working directory and then against the home directory. Read as 0x2000 bytes into RAM at 0xE000; a missing file reports NOT FOUND and a short read FAILED, and either aborts the disk load. Only the length of that read is checked, so a longer file passes on its first 8192 bytes and no hash is compared. The open is gzip transparent, so a compressed copy answers too.", "required": true, "source_ref": "libmain.so LoadFDS 0x3bdd0-0x3c245 (open 0x3bf97, read 0x3bfc5-0x3bff7), iNES61-Ubuntu-x86-bin ines 0x38165-0x381a9", "system": "nintendo-fds", "validation": ["size"]}, {"description": "startup colour palette", "name": "iNES.pal", "note": "Built as <HomeDir>/iNES.pal and loaded at startup when present, otherwise the built-in palette stands. Exactly 192 bytes is read as 64 RGB triples, any other length as text. No single file answers to this name: the desktop distribution ships twenty palettes under other names for the user to copy over.", "required": false, "source_ref": "libmain.so Application 0x39739-0x39795, StartNES 0x3a685-0x3a694, LoadPAL 0x3a870-0x3a930", "system": "nintendo-nes", "unsourceable": "any 64 colour palette the user picks, under the one name the code builds"}, {"bundled": true, "category": "game_data", "crc32": "2e03cb7f", "description": "sample ROM image started when no game is given", "md5": "c1db31a2aa8a12432705fc8bd3c1156a", "name": "CART.NES", "note": "The only entry in assets/memfs.mp3, which MainActivity reads whole and jniStart mounts as an in-memory filesystem. A 16 byte header plus one 16 KB PRG bank and one 8 KB CHR bank. Application passes this name to StartNES when it is invoked without a ROM, so launching through ES-DE never reaches it.", "required": false, "sha1": "486eede1bb748d95efc8a2a3d46ef1a530100559", "size": 24592, "source_ref": "MainActivity.java:2246-2257, libmain.so 0x11ca6-0x11ccc, libmain.so Application 0x39887-0x3989c", "system": "nintendo-nes"}, {"bundled": true, "category": "game_data", "description": "title database keyed by system and CRC32", "name": "names.dat", "note": "Parsed from assets as lines of key colon title, keys reading NES-4C629A95. The copy at <HomeDir>/names.dat is read straight afterwards into the same map, so user entries extend and override the packaged ones.", "required": false, "size": 21390, "source_ref": "FileInfo.java:260-295"}, {"bundled": true, "category": "game_data", "description": "cheat database read by the Cheatopedia browser", "name": "ROOT.chts", "note": "Looked up in the package assets first, then through the home directory, its subdirectories and Downloads, with <HomeDir>/Cheats as the default cheat directory. Include lines pull further sets through the same lookup; the package carries seven of them, battle-toads, dragon-warrior, dragon-warrior-2, fceu, final-fantasy-2, final-fantasy-3 and super-mario-brothers.", "required": false, "size": 27447, "source_ref": "Cheatopedia.java:339, 448, 505-520, CheatHelper.java:14-24"}, {"category": "game_data", "description": "IPS patch applied to the loaded ROM", "name": "<game>.ips", "note": "Named from the ROM path by MakeFileName and applied by ApplyIPS when present. A patch chosen by hand goes through the same call in LoadFile.", "required": false, "source_ref": "libmain.so LoadNES 0x3bc43 (ApplyIPS 0x3bc93), LoadFile 0x3acf8", "unsourceable": "a patch the user supplies for one title"}, {"category": "game_data", "description": "cheat codes for one title", "name": "<game>.cht", "note": "Named from the ROM path by MakeFileName and read by LoadCHT when present. Distinct from the .chts sets of the Cheatopedia browser. The menu handler reaches the same loader for a file picked by hand.", "required": false, "source_ref": "libmain.so LoadNES 0x3bcdc (LoadCHT 0x3bcec), Joystick 0x39e7f", "unsourceable": "cheat codes the user writes or collects per title"}, {"category": "game_data", "description": "colour palette for one title", "name": "<game>.pal", "note": "Named from the ROM path by MakeFileName and read by LoadPAL when present, taking precedence over the startup palette for that game.", "required": false, "source_ref": "libmain.so LoadNES 0x3bd2b", "unsourceable": "any 64 colour palette the user picks for one title"}], "mode": "standalone", "notes": "NES and Famicom emulator by Marat Fayzullin, covering cartridges, the Famicom\nDisk System and the VS System. The build read here is the free Android APK the\nauthor publishes himself, package com.fms.ines versionName 6.1.4 versionCode\n6104, apk md5 d0e1b93b09d4b58294efd4e1509e25ca, signed CN=Marat Fayzullin\nO=Garage Research issued 2011, sha256\nd09469e9b550cbc9005d3bd089f3df5f0ba89cba71cdd3b33736a0382d6f9848; the two\ndownload paths on that site serve the same bytes. Google Play carries the\nemulator as com.fms.ines.free, the package ES-DE launches, and inside VGBAnext\nas com.fms.ng, the author recording that Play removed the original com.fms.ines\nlisting over its built-in cheats. The native libraries keep their symbol\ntables, so the readings below cite libmain.so offsets in the x86_64 slice; the\narm64-v8a, armeabi-v7a, armeabi and x86 slices carry the same filename set. The\nfree iNES 6.1 builds for Windows and Ubuntu were read beside it and open the\nsame files under the same names. No source has ever been published: the author\nreleases ColEm and fMSX as source archives, while every iNES download on the\nsame site, from 0.7 for AIX and SunOS through 6.1, is a binary package.\nref: iNES-Android-6104.apk META-INF/CERT.RSA, https://fms.komkon.org/iNES/,\n     iNES61-Windows-bin.zip, iNES61-Ubuntu-x86-bin.tgz\n\nOne directory holds everything the emulator reads. MainActivity hands\nEMULib.k() to jniStart, which copies it into the buffer GetHomeDir returns and\npasses that same buffer to SetPrivateDir. Every open goes through mopen, which\ncalls OpenRealFile: the name is tried as given and again as\n<PrivateDir>/<basename>, and when both open the larger of the two is kept. That\ndirectory is <ExternalStorage> joined with the application label up to its first\nspace, so iNES, falling back to getExternalFilesDirs(null) when the path is not\na writable directory. mopen layers gzdopen over the result, so any of these\nfiles also opens gzipped, and a content:// name is routed to the Android storage\nframework instead.\nref: MainActivity.java:2257, EMULib.java:1328, EMULib.java:408,\n     EMULib.java:474-505, EMULib.java:682, libmain.so 0x1212a-0x1218c,\n     libmain.so OpenRealFile 0x32070-0x32285, libmain.so mopen 0x322b0-0x323f2\n\nDISKSYS.ROM is the only filename compiled into the emulator. LoadFDS reads the\ndisk image first, taking a bare *NINTENDO-HVC* header or the 16 byte FDS wrapper\nahead of it, then opens DISKSYS.ROM and reads 0x2000 bytes into RAM at 0xE000. A\nfailed open leaves the status at NOT FOUND and a short read at FAILED, and\neither makes LoadFDS return zero, so the disk never starts. Nothing about the\nimage is checked past the length of that read. Cartridge titles never reach this\npath.\nref: libmain.so LoadFDS 0x3bdd0-0x3c245, open 0x3bf97, read 0x3bfc5-0x3bff7,\n     iNES61-Ubuntu-x86-bin ines 0x38165-0x381a9\n\nThe startup palette is <HomeDir>/iNES.pal, assembled in Application from\nGetHomeDir and held in PalName, which StartNES loads when it is set. LoadPAL\nreads the first 256 bytes: exactly 192 is taken as 64 RGB triples fed to\nSetColor one at a time, anything else is parsed as text. A missing file leaves\nthe built-in palette in place. The desktop distribution ships twenty candidates\nunder Palettes/ to copy into that single name, the Android package none.\nref: libmain.so Application 0x39739-0x39795, StartNES 0x3a685-0x3a694,\n     LoadPAL 0x3a870-0x3a930, iNES61-Windows-bin.zip Palettes/\n\nLoadNES derives five companion names from the ROM path through MakeFileName:\n.sav, .ips, .cht, .pal and .sta. Started with no ROM name at all, Application\nsubstitutes CART.NES.\nref: libmain.so LoadNES 0x3bb49, 0x3bc43, 0x3bcdc, 0x3bd2b, 0x3bd52,\n     libmain.so Application 0x39887-0x3989c\n\nThree package resources are read at runtime. assets/memfs.mp3 is passed whole to\njniStart and mounted as an in-memory filesystem carrying one entry, CART.NES.\nassets/names.dat fills the title lookup and is then extended by\n<HomeDir>/names.dat, whose entries win on collision. assets/ROOT.chts opens the\ncheat browser, its Include lines pulling further sets through the same lookup,\nwhich falls back to <HomeDir>/Cheats and to the home directory itself.\nref: MainActivity.java:2246-2257, libmain.so 0x11ca6-0x11ccc,\n     FileInfo.java:260-295, Cheatopedia.java:339, 448, 505-520,\n     CheatHelper.java:14-24\n", "profiled_date": "2026-08-11", "source": "https://fms.komkon.org/iNES/iNES-Android-6104.apk", "systems": ["nintendo-nes", "nintendo-fds"], "type": "standalone", "upstream": "closed-source"}


id: infinity
name: Infinity
type: standalone
classification: community_fork
source: https://play.google.com/store/apps/details?id=me.dt2dev.infinity
upstream: closed-source
profile_json:
{"author": "GuoPing He", "based_on": "fake-08 by jtothebell", "core_classification": "community_fork", "core_version": "5", "cores": ["infinity"], "display_name": "PICO-8 (Infinity)", "emulator": "Infinity", "files": [{"bundled": true, "category": "game_data", "description": "Vulkan vertex shader module", "md5": "541e16aa5651699bb085c954ec1b043e", "name": "common.vert.spv", "note": "Opened first whenever the Vulkan backend starts, whatever the display filter. Bytes from versionCode 404.", "path": "assets/shaders/common.vert.spv", "required": false, "sha1": "20815dcbfaff559ec0faf0f890ad473a3b784ed0", "size": 748, "source_ref": "libinfinity.so arm64 0xa7078, 0x9c780-0x9c78c", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Vulkan fragment shader module, unfiltered output", "md5": "8437c4e750da7183dffc7b98f9938377", "name": "none.frag.spv", "note": "Chosen for any display filter value other than 1 and 2, the stored default being 0. Bytes from versionCode 404.", "path": "assets/shaders/none.frag.spv", "required": false, "sha1": "f3aae57c3f776d35ddf2690679221c05745dcc8b", "size": 580, "source_ref": "libinfinity.so arm64 0xa6f04-0xa6f40, 0xa7090-0xa7098, 0x9c7ec-0x9c828", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Vulkan fragment shader module, CRT filter", "md5": "c4878a2aaee2e3c26d3d4aeeeaa3ac25", "name": "crt.frag.spv", "note": "Chosen when the display filter is 1. Bytes from versionCode 404.", "path": "assets/shaders/crt.frag.spv", "required": false, "sha1": "92822c268c59f60fe9a4098768be599006f7f1ab", "size": 1864, "source_ref": "libinfinity.so arm64 0xa6f34-0xa6f40, 0xa7090-0xa7098, 0x9c7ec-0x9c828", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Vulkan fragment shader module, LCD filter", "md5": "76f36cbe69708d631ae356bcd49274b2", "name": "lcd.frag.spv", "note": "Chosen when the display filter is 2. Bytes from versionCode 404.", "path": "assets/shaders/lcd.frag.spv", "required": false, "sha1": "1a3c0aa0b93cc1ee4690b2c0d593497d003b6165", "size": 1700, "source_ref": "libinfinity.so arm64 0xa6f10-0xa6f30, 0xa7090-0xa7098, 0x9c7ec-0x9c828", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Built-in cart, 7x7 Demake", "md5": "1d6416a591c99b03c58b41f0dd5537b0", "name": "7x7demake.p8.png", "note": "Held as a file:///android_asset URI and prepended to the library when the built-in carts switch is on, the loader taking the path after the scheme and reading it from the assets.", "path": "assets/7x7demake.p8.png", "required": false, "sha1": "35ec298b803b29b6bee6d89f46507c50a3461b35", "size": 7443, "source_ref": "qd.java:15-17, pg0.java:50, ok0.java:139-142", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Built-in cart, Infinity Tic Tac Toe", "md5": "4f508068de9190c06775bfb4e47e2654", "name": "tictactoe.p8.png", "note": "Second entry of the same table, loaded the same way.", "path": "assets/tictactoe.p8.png", "required": false, "sha1": "5a7d0bd289e971a4ea6dfb09704b56252b85fe01", "size": 7537, "source_ref": "qd.java:18-20, pg0.java:50, ok0.java:139-142", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Licence text shown for fake-08", "md5": "a382a7e446335d3ea20f85a21a5846ec", "name": "fake-08.md", "note": "First of four names paired with the library names fake-08, coil, okio and DocumentFileCompat, each read from the assets when its entry is opened.", "path": "assets/fake-08.md", "required": false, "sha1": "6d7e23241be0a110bc59110773963f678e199c32", "size": 5543, "source_ref": "ry0.java:14-15, yq0.java:125", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Licence text shown for coil", "md5": "06f4dfd96b1e7f0b6d5cc7f7163c7904", "name": "coil.txt", "path": "assets/coil.txt", "required": false, "sha1": "14d28015d8a8c902d219b6a24d2241aa061dda09", "size": 11347, "source_ref": "ry0.java:14-15, yq0.java:125", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Licence text shown for okio", "md5": "3b83ef96387f14655fc854ddc3c6bd57", "name": "okio.txt", "path": "assets/okio.txt", "required": false, "sha1": "2b8b815229aa8a61e483fb4ba0588b8b6c491890", "size": 11358, "source_ref": "ry0.java:14-15, yq0.java:125", "system": "pico8"}, {"bundled": true, "category": "game_data", "description": "Licence text shown for DocumentFileCompat", "md5": "86d3f3a95c324c9479bd8986968f4327", "name": "dfc.txt", "path": "assets/dfc.txt", "required": false, "sha1": "7df059597099bb7dcf25d2a9aedfaf4465f72d8d", "size": 11357, "source_ref": "ry0.java:14-15, yq0.java:125", "system": "pico8"}], "mode": "standalone", "notes": "Android package me.dt2dev.infinity, closed source, free with ads on Google Play.\nTwo builds are read here, versionCode 501 (versionName 5, minSdk 32, targetSdk 37,\nxapk sha256 d0040583814a634c9aa2ff56b8245f1eb94f33ee0785c264bccfa5188cd3a273) and\nversionCode 404 (minSdk 30), both carrying lib/arm64-v8a, the Play app signing\ncertificate sha256\neb7b3dd469cf44ab614abda7a367c20de540014a37bb2b915dffecf5f3268da2 and the Play\ndistribution source stamp.\n\nThe engine is fake-08 compiled into libinfinity.so and driven through a nine\nmethod JNI bridge. Its Lua blobs are upstream: the settings cart is byte identical\nto fake-08 814991a and the default cart differs only where VER_STR is spliced, the\nAndroid build leaving that macro undefined so the boot cart reports v0.0.0.0. The\nglobal Lua glue is patched in five places, all in the pause menu, where \"exit to\nmenu\" and \"exit to settings\" give way to a single \"quit game\" calling the native\n__quitgame, navigation wraps around and the menu holds eight items instead of\nnine. No menu entry reaches the cart browser or the settings cart any more, the\nCompose interface listing the library instead.\nref: Fake8.java:27-44, 60, 95,\n     libinfinity.so arm64 .rodata DefaultCart / FakoSettings / p8GlobalLuaFunctions\n     blobs, symbol __quitgame\n\nA cart never reaches the engine as a path. Java reads the bytes into a direct\nByteBuffer, from the application assets for a built-in cart or through the content\nresolver for anything else, then hands the buffer to nativeStart with the save\nstate name <cart>.ss and the application's internal files directory, where a cdata\nsubdirectory holds the <id>.p8d.txt cart data files. No storage permission is\ndeclared: the cart library is a directory tree granted through the storage access\nframework, and the only write outside internal storage is the .nomedia file that\nthe \"Show Carts in Photos\" switch creates or deletes there.\nref: pg0.java:50-92, ok0.java:139-146, yk0.java:54-63,\n     libinfinity.so arm64 .rodata \".p8d.txt\"\n\nES-DE targets me.dt2dev.infinity/.SchemeActivity with a VIEW intent on its own\ncontent provider. The activity reads the display name from the provider, accepts\nit only when it ends in .p8 or .p8.png, strips that extension and forwards\ninfinity://game with cart_uri, filename, save_state=false and assets=false to\nMainActivity. The manifest filter announces the content scheme with the image/png\ntype, which an explicit component bypasses.\nref: SchemeActivity.java:25-84, AndroidManifest.xml activity me.dt2dev.infinity.SchemeActivity\n\nTwo graphics backends. OpenGL ES is the default and carries its three fragment\nprograms as GLSL string literals inside the library. Vulkan, offered as beta,\nreads SPIR-V modules from the application assets instead, one vertex module plus\none fragment module chosen by the display filter. Version 501 ships no shader\nasset at all, version 404 ships the four listed below, and both libraries name\nthem; the loader takes no null check between AAssetManager_open and\nAAsset_getLength. The manifest requires only abi and density splits, so no asset\npack can deliver them separately.\nref: vh.java:381 graphics_backend default 0, vh.java:297 display_filter default 0,\n     libinfinity.so arm64 0xa6ee0-0xa7098, 0x9c72c-0x9c828\n", "profiled_date": "2026-08-11", "source": "https://play.google.com/store/apps/details?id=me.dt2dev.infinity", "systems": ["pico8"], "type": "standalone", "upstream": "closed-source"}


id: iratajaguar
name: IrataJaguar
type: standalone
classification: other
source: http://www.arts-union.ru/node/23
upstream: closed-source
profile_json:
{"author": "Maxim Grishin (Altmer)", "core_classification": "other", "core_version": "1.0.7", "cores": ["iratajaguar"], "display_name": "Atari - Jaguar (IrataJaguar)", "emulator": "IrataJaguar", "exclusion_note": "Left out are the files the emulator writes and reads back itself, which are state rather than anything a user obtains: configs.xml, the dump library holding the scanned paths with their sizes and hashes, settings.ini, the savestates under .states that the game list offers as Continue and Auto entries, the NM93 EEPROM image behind the cartridge save, and test.txt, written and deleted to decide whether a chosen directory is writable. The on-screen control graphics are APK raw resources handed to the core through setImageRes as pixel buffers, not files opened from storage, and the character glyphs are compiled into the library. No CD image or CD BIOS applies: platformJaguar declares only the CARTRIDGE and BIOS elements and no CD extension, and the only CD adapter in the core belongs to the 3DO platform, so Atari Jaguar CD is out of scope for this emulator. ref: libphoenixcore.so 0xb5663-0xb5774, MainActivity.java:189-199, 218-237,\n     607-610, platformJaguar::getConfig 0x8ce080, dumpAdapter3DOcd 0x52b550\n", "files": [{"description": "Atari Jaguar boot ROM", "name": "[BIOS] Atari Jaguar (World).j64", "note": "The emulator spells no filename for it. Any file the directory scan reaches whose first twelve bytes are 00 00 00 00 00 E0 00 08 41 F9 00 F0 is taken as the BIOS, so more than one boot ROM revision answers; the name carried here is the catalogue name of the retail dump, crc32 FB731AAA, under the extension the BIOS data element declares. Read into a 1 MB window at 0xE00000 and byte swapped, and its first eight bytes are copied over DRAM 0 to give the 68000 its reset vector. A longer file is read up to that bound rather than rejected.", "required": true, "source_ref": "dumpAdapterJaguarROM::dumpAdapterJaguarROM 0x8d3c20 (memcmp 0x8d4259-0x8d426f), bios_sign 0x99d7a0, platformJaguar::getConfig 0x8ce197-0x8ce209, platformJaguar::platformJaguar 0x8d0bc7-0x8d0c2e", "system": "atari-jaguar", "validation": ["signature"]}], "mode": "standalone", "notes": "Atari Jaguar emulator for Android, the Android build of Maxim Grishin's Phoenix\nEmu Project. The native library is libphoenixcore.so and reports\nPhoenixEmuProject core 2.8.21; the same core carries the author's desktop builds\nand his three other Android emulators, Real3DOPlayer, NumPadPlayer and\nGearMasterPlayer. The build read here is the free package the author publishes\nhimself, IrataJaguar_free_1.0.7.zip holding app-release.apk md5\na3e019d32203908d49e8220a79d8b570, package ru.vastness.altmer.iratajaguar\nversionName 1.0.7, minSdk and targetSdk 23, signed CN=MAXIM GRISHIN\nO=AltmerSoft L=Tula C=RU issued 2017-06-12, sha256\nf268dda6844e4f6013731f7ec7adbbb89a22cf06c9753e85c184b889dc81a758. No source has\nbeen published. The Android slices are stripped, so the readings below were\ntaken against the desktop 2.8.JAG build from the same site, which keeps its\nsymbol table, and each was confirmed against the Android x86_64 slice; the\narm64-v8a, armeabi-v7a and x86 slices carry the same signature bytes at 0x9f7e8,\n0x83988 and 0xba848.\nref: app-release.apk META-INF/CERT.RSA, AndroidManifest.xml,\n     http://www.arts-union.ru/node/23, ph28jag-lin-x64.zip PhoenixEmuProject\n\nOne directory holds the cartridges and the BIOS together. MainActivity walks the\nexternal storage roots for a subdirectory named jaguar and offers the first one\nit finds, the settings tab lets the user pick another, and the choice is kept in\nthe preference dumps. countGames scans that directory for the extensions bin,\nrom, jag, cof and j64 and hands every candidate to the library, which caches what\nit found in configs.xml under the private storage path as Library/CARTRIDGE and\nLibrary/BIOS entries carrying path, size, fast-md5, md5 and sh1. Those hashes are\nthe cache key; nothing compares them against a known value. nameOfBios returns\nthe single BIOS the library holds and the game list shows it as its first row,\nshifting the game indices by one.\nref: MainActivity.java:257-273, 382-392, 447, 517, 99-100, 557-561,\n     libphoenixcore.so countGames 0x8a1e0-0x8a5e6 (extensions 0x8a2ed-0x8a4b5),\n     libphoenixcore.so 0xa4600-0xa4d4f (BIOS branch 0xa478f, entry write 0xa483e)\n\nThe BIOS is recognised by content, not by name. platformJaguar::getConfig\ndeclares two data elements, CARTRIDGE taking jag, cof and j64 and BIOS taking\nj64, and createDumpAdapter builds dumpAdapterJaguarROM with its bios flag set for\neverything that is not the CARTRIDGE element. That constructor reads the first\n0x2000 bytes and compares the first twelve against bios_sign, 00 00 00 00 00 E0\n00 08 41 F9 00 F0, the 68000 reset vector a Jaguar boot ROM opens with: stack\npointer zero, program counter 00E00008, then the LEA that follows it. Every\ncandidate is tried as BIOS before cartridge. Nothing past those twelve bytes is\nexamined, so no length and no hash gates the file.\nref: platformJaguar::getConfig 0x8ce080 (CARTRIDGE 0x8ce082, extensions\n     0x8ce115-0x8ce147, BIOS 0x8ce197, extension 0x8ce1f2),\n     dumpLibrary::createDumpAdapter 0x4f9600 (0x4fa37e-0x4fa402 cartridge,\n     0x4fa4e7-0x4fa4fc bios flag set), dumpAdapterJaguarROM::dumpAdapterJaguarROM\n     0x8d3c20 (read 0x8d3c88, memcmp 0x8d4259-0x8d426f), bios_sign 0x99d7a0,\n     libphoenixcore.so 0x48162-0x482c3\n\nA cartridge does not boot without it. The platform constructor gives the BIOS\n1 MB at 0xE00000 and the cartridge 8 MB at 0x800000, zeroes both, then pulls each\nthrough the frontend by data element index, 0 for the cartridge and 1 for the\nBIOS, byte swapping what comes back. When the BIOS read returns bytes and the\ncartridge is not an executable image, the first eight bytes of the BIOS are\ncopied over DRAM 0, which is where cpu68K::Reset fetches the supervisor stack\npointer and the program counter. Without a BIOS those eight bytes stay zero and\nthe 68000 starts at 0 in cleared DRAM. The two images that skip it carry their\nown entry point: a JAGR header at offset 0x1c, whose body the constructor copies\ninto DRAM itself, and a COFF image whose first word is 0x0150, the cof extension\nthe config declares. Neither is a cartridge dump. There is no HLE path, and\nplatform3DO::noBios has no platformJaguar counterpart in the same binary.\nref: platformJaguar::platformJaguar 0x8d03d0 (buffers zeroed 0x8d0a35-0x8d0a8b,\n     cartridge 0x8d0aa7, BIOS 0x8d0bc7-0x8d0be1, reset vector copy\n     0x8d0c0b-0x8d0c2e, JAGR 0x8d0aec-0x8d0b74, COFF 0x8d0b98 and 0x8d16b9),\n     cpu68K::Reset 0x8c9e90, platformJaguar::read32_cpu 0x8cc1a0\n     (BIOS window 0x8cc1d4-0x8cc286), platformJaguar::read16 0x8cbdc0\n\nA launcher can bypass the scan. MainActivity reads the intent extras rom and bios\nand passes them to the core as ext-rom and ext-bios, the paths used in place of\nthe library, and switches to the reduced layout when either is present.\nEmulatorActivity, the activity registered for android.intent.action.VIEW, takes\nonly lunchMode and lockOrient and replays whatever the library already holds.\nref: MainActivity.java:480-481, 421-424, EmulatorActivity.java:33-35, 45,\n     AndroidManifest.xml, libphoenixcore.so nativeOnCreate 0x8b2a2-0x8b562\n", "profiled_date": "2026-08-11", "source": "http://www.arts-union.ru/node/23", "systems": ["atari-jaguar"], "type": "standalone", "upstream": "closed-source"}


id: ishiiruka
name: Ishiiruka
type: standalone + libretro
classification: enhanced_fork
source: https://github.com/libretro/ishiiruka
upstream: https://github.com/Tinob/Ishiiruka
source_commit: f228bde5fbf4861ba749a229803addcd6238663f
profile_json:
{"core_classification": "enhanced_fork", "core_version": "Git", "cores": ["ishiiruka"], "data_directories": [{"destination": "Sys", "ref": "dolphin-sys", "source_ref": "Source/Core/Common/CommonPaths.h:130-131"}], "display_name": "Nintendo - GameCube / Wii (Ishiiruka)", "emulator": "Ishiiruka", "files": [{"hle_fallback": true, "name": "IPL.bin", "note": "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts", "path": "GC/USA/IPL.bin", "region": ["north-america"], "required": false, "size": 2097152, "source_ref": "Source/Core/Core/ConfigManager.cpp:876-883, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:105"}, {"hle_fallback": true, "name": "IPL.bin", "note": "GameCube PAL boot ROM", "path": "GC/EUR/IPL.bin", "region": ["europe"], "required": false, "size": 2097152, "source_ref": "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:185"}, {"hle_fallback": true, "name": "IPL.bin", "note": "GameCube NTSC-J boot ROM", "path": "GC/JAP/IPL.bin", "region": ["japan"], "required": false, "size": 2097152, "source_ref": "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:187"}, {"adler32_byteswap": true, "hle_fallback": true, "known_hash_adler32": "0x66f334fe", "name": "dsp_rom.bin", "note": "DSP instruction ROM for LLE audio. Free replacement included", "path": "GC/dsp_rom.bin", "required": false, "size": 8192, "source_ref": "Source/Core/Common/CommonPaths.h:112, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:142-150, Source/Core/Core/DSP/DSPCore.cpp:48,67", "validation": ["size"]}, {"adler32_byteswap": true, "hle_fallback": true, "known_hash_adler32": "0xf3b93527", "name": "dsp_coef.bin", "note": "DSP coefficient ROM for LLE audio and HLE polyphase resampling. Free replacement included", "path": "GC/dsp_coef.bin", "required": false, "size": 4096, "source_ref": "Source/Core/Common/CommonPaths.h:113, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:143-153, Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp:43-72, Source/Core/Core/DSP/DSPCore.cpp:48,68", "validation": ["size"]}, {"hle_fallback": true, "name": "font_western.bin", "note": "Windows-1252 font for GC/Wii text rendering. Free alternative bundled, real one from IPL dump preferred", "path": "GC/font_western.bin", "required": false, "size": 9589, "source_ref": "Source/Core/Common/CommonPaths.h:109, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:123,193-227"}, {"hle_fallback": true, "name": "font_japanese.bin", "note": "Shift-JIS font for Japanese text. Free alternative bundled, real one from IPL dump preferred", "path": "GC/font_japanese.bin", "required": false, "size": 303693, "source_ref": "Source/Core/Common/CommonPaths.h:110, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:122,193-227"}, {"hle_fallback": true, "name": "codehandler.bin", "note": "Gecko/Ocarina cheat code handler. Shipped with Ishiiruka in Sys/", "path": null, "required": false, "source_ref": "Source/Core/Common/CommonPaths.h:127, Source/Core/Core/GeckoCode.cpp:86"}, {"hle_fallback": true, "name": "SYSCONF", "note": "Wii system configuration. Auto-generated, can be imported from NAND backup", "path": "Wii/shared2/sys/SYSCONF", "required": false, "source_ref": "Source/Core/Common/CommonPaths.h:59,95, Source/Core/Common/SysConf.cpp:40"}, {"hle_fallback": true, "name": "setting.txt", "note": "Wii region/language settings. Auto-generated during Wii boot emulation", "path": "Wii/title/00000001/00000002/data/setting.txt", "required": false, "size": 256, "source_ref": "Source/Core/Common/CommonPaths.h:125, Source/Core/Core/Boot/Boot_BS2Emu.cpp:229-266"}, {"hle_fallback": true, "name": "sd.raw", "note": "Virtual SD card image for Wii homebrew. Auto-created (128MB) if not present", "path": "Wii/sd.raw", "required": false, "source_ref": "Source/Core/Common/CommonPaths.h:122, Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp:63-73"}, {"hle_fallback": true, "mode": "standalone", "name": "nand.bin", "note": "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu", "path": null, "required": false, "source_ref": "Source/Core/DiscIO/NANDImporter.cpp:29-47"}, {"hle_fallback": true, "mode": "standalone", "name": "keys.bin", "note": "OTP/SEEPROM dump (Wii encryption keys). Needed if not appended to nand.bin for NAND import", "path": null, "required": false, "size": 1024, "source_ref": "Source/Core/DiscIO/NANDImporter.cpp:23-24,82-93"}, {"hle_fallback": true, "mode": "standalone", "name": "clientca.pem", "note": "SSL client certificate. Auto-extracted from IOS13 content during NAND import", "path": "Wii/clientca.pem", "required": false, "source_ref": "Source/Core/DiscIO/NANDImporter.cpp:199-264"}, {"hle_fallback": true, "mode": "standalone", "name": "clientcakey.pem", "note": "SSL client private key. Auto-extracted from IOS13 content during NAND import", "path": "Wii/clientcakey.pem", "required": false, "source_ref": "Source/Core/DiscIO/NANDImporter.cpp:235"}, {"hle_fallback": true, "mode": "standalone", "name": "rootca.pem", "note": "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import", "path": "Wii/rootca.pem", "required": false, "source_ref": "Source/Core/DiscIO/NANDImporter.cpp:236"}], "notes": {"data_dir_note": "Standalone builds use \"ishiiruka\" as DOLPHIN_DATA_DIR (CommonPaths.h:24,27), but the libretro core overrides this to use \"dolphin-emu\" paths (Boot.cpp:46,49).\n", "data_dir_standalone": "ishiiruka", "dolphin_fork": true, "dsp_rom_note": "DSP ROMs verified at load time via Adler32 hash. Official Nintendo hashes: irom=0x66f334fe, drom=0xf3b93527. Free replacement ROMs (v0.1 through v0.4) shipped in Sys/GC/.\n", "font_note": "Fonts loaded from three sources: IPL dump, standalone files in Sys/GC/, or bundled free alternatives. Free alternatives have different padding metrics than original Nintendo fonts.\n", "fork_base": "Dolphin 5.0-era", "fork_differences": "Dolphin fork with custom GPU backends, async shader compilation, post-processing. BIOS/firmware handling identical to upstream Dolphin of the same era. No GBA link support (no mGBA integration). No Realtek Bluetooth firmware support.\n", "hle_available": true, "hle_note": "HLE covers GameCube IPL (boot ROM), DSP, and Wii system functions.\n", "ipl_regions": ["USA", "EUR", "JAP"], "library_name": "Ishiiruka", "libretro_path": "system/dolphin-emu/", "nand_note": "Wii NAND content managed internally. BootMii NAND backup (nand.bin + optional keys.bin) import supported in standalone mode only.\n", "valid_extensions": "elf|dol|gcm|iso|tgc|wbfs|ciso|gcz|wad"}, "pack_structure": {"libretro": "dolphin-emu", "standalone": ""}, "profiled_date": "2026-03-24", "source": "https://github.com/libretro/ishiiruka", "source_commit": "f228bde5fbf4861ba749a229803addcd6238663f", "systems": ["nintendo-gamecube", "nintendo-wii"], "type": "standalone + libretro", "upstream": "https://github.com/Tinob/Ishiiruka"}


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


id: j2me-loader
name: J2ME Loader
type: standalone
classification: community_fork
source: https://github.com/nikita36078/J2ME-Loader
upstream: https://github.com/nikita36078/J2ME-Loader
source_commit: 9b0fa48a0a0d1e61376c0b9af28b3d2caec0a4cc
profile_json:
{"author": "Nikita Shakarun", "core_classification": "community_fork", "core_version": "1.8.2", "cores": ["j2me-loader", "J2ME-LOADER"], "display_name": "Mobile - J2ME (J2ME Loader)", "emulator": "J2ME Loader", "files": [{"bundled": true, "category": "game_data", "description": "Typeface for the virtual keyboard and overlays", "name": "Roboto-Regular.ttf", "note": "Built into a Typeface at CanvasWrapper construction, which is a field initializer of Canvas and therefore runs for every MIDlet that opens one. Drives the key captions, the soft bar and the FPS counter.", "required": true, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/CanvasWrapper.java:36, app/src/main/java/javax/microedition/lcdui/Canvas.java:141, app/src/main/java/javax/microedition/lcdui/keyboard/VirtualKeyboard.java:908, app/src/main/java/javax/microedition/lcdui/overlay/FpsCounter.java:48", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Default microedition system properties", "name": "system.props", "note": "Read from assets/defaults when a profile is created and again when the config screen or updateSystemProperties fills the field. Each line becomes a System.setProperty pair at MIDlet startup, carrying microedition.configuration, microedition.platform, the JSR version strings and the vendor identity values.", "required": true, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ProfileModel.java:198, app/src/main/java/ru/playsoftware/j2meloader/config/ProfilesManager.java:185, app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:609, app/src/main/java/javax/microedition/shell/MicroLoader.java:247-252", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for the screen blitter", "name": "simple.vsh", "note": "Compiled when the GL surface is created and no user shader is selected. Graphics mode 1 is the default, so this is the standard display path. Also compiled as the Simple program of the Mascot Capsule renderer.", "required": true, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:35, app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:61, app/src/main/java/javax/microedition/lcdui/Canvas.java:782, app/src/main/java/ru/playsoftware/j2meloader/config/ProfileModel.java:180, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:212", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for the screen blitter", "name": "simple.fsh", "note": "Paired with simple.vsh. createProgram returning -1 raises RuntimeException at surface creation.", "required": true, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:36, app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:62-66, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:213", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for untextured Mascot Capsule geometry", "name": "color.vsh", "note": "Program.create builds the tex, color, simple and sprite programs together the first time the Mascot Capsule renderer initializes, so all four pairs are read on the first micro3d frame.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:153, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:53-58", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for untextured Mascot Capsule geometry", "name": "color.fsh", "note": "Carries the sphere map, toon threshold and primitive colour uniforms of the Color program.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:154, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:155-161", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for textured Mascot Capsule geometry", "name": "tex.vsh", "note": "Built by Program.create alongside the other three pairs.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:229, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:53-58", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for textured Mascot Capsule geometry", "name": "tex.fsh", "note": "Carries the texture size, transparency and sphere map uniforms of the Tex program.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:230, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:231-235", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for Mascot Capsule sprites", "name": "sprite.vsh", "note": "Built by Program.create alongside the other three pairs.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:310, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:53-58", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for Mascot Capsule sprites", "name": "sprite.fsh", "note": "Carries the texture size, transparency and colour key uniforms of the Sprite program.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:311, app/src/main/java/com/mascotcapsule/micro3d/v3/Program.java:312-315", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "JSR-184 M3G engine", "name": "libjavam3g.so", "note": "Named by System.loadLibrary(\"javam3g\") outside any catch, the first time the toolkit reports the UI thread available. Built by ndkBuild from the m3g sources against GLES 1.1.", "required": true, "source_ref": "app/src/main/java/javax/microedition/m3g/Platform.java:66-72, app/src/main/cpp/Android.mk:3-15", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Mascot Capsule vertex and buffer routines", "name": "libmicro3d.so", "note": "Loaded from the static initializer of Utils, so the first Mascot Capsule call brings it in. Holds fillBuffer, glReadPixels and the bone transform.", "required": true, "source_ref": "app/src/main/java/com/mascotcapsule/micro3d/v3/Utils.java:149-159, app/src/main/cpp/Android.mk:28-34", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "X.509 certificate for the crash report endpoint", "name": "appcenter.cer", "note": "Read into a trust store only when a crash report is sent from Android 4.1 through 4.4, where TLSv1.2 is forced. A read or certificate failure falls back to the default socket factory.", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/crashes/TLSSocketFactory.java:41-63, app/src/main/java/ru/playsoftware/j2meloader/crashes/AppCenterSender.java:56-60", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Third party licence text of the about screen", "name": "licenses.html", "note": "Read when the licences dialog is opened and shown as HTML. Emulation never touches it.", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/info/LicensesDialogFragment.java:35", "system": "j2me"}, {"category": "game_data", "description": "Shader descriptor read from the emulator directory", "name": "<shader>.ini", "note": "The config screen creates the shaders directory, lists every file ending in .ini and parses it as sections opened by a bracketed name, keeping the entries that name both a Vertex and a Fragment file. Name, Author, OutputResolution, Upscaling and four SettingName/SettingDefaultValue/SettingMinValue/SettingMaxValue groups are also read, which is the PPSSPP post-processing descriptor format.", "path": "shaders/<shader>.ini", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:336-367, app/src/main/java/ru/playsoftware/j2meloader/config/ShaderInfo.java:101-207, app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:207-212", "system": "j2me", "unsourceable": "user authored, no canonical file"}, {"category": "game_data", "description": "Vertex shader named by a descriptor", "name": "<shader>.vsh", "note": "Read whole from the shaders directory when the selected filter names it, then compiled in place of the built-in blitter. An unreadable file yields an empty string, the program fails to build and the bundled default is used after a toast.", "path": "shaders/<shader>.vsh", "required": false, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:45-58, app/src/main/java/javax/microedition/shell/MicroLoader.java:270-273, app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:196-205", "system": "j2me", "unsourceable": "user authored, no canonical file"}, {"category": "game_data", "description": "Fragment shader named by a descriptor", "name": "<shader>.fsh", "note": "Paired with the vertex file of the same descriptor. Four float uniforms from the descriptor settings are pushed to it at surface creation.", "path": "shaders/<shader>.fsh", "required": false, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:45-58, app/src/main/java/javax/microedition/lcdui/Canvas.java:791-793", "system": "j2me", "unsourceable": "user authored, no canonical file"}], "mode": "standalone", "notes": "MIDP/CLDC runtime for Android, package ru.playsoftware.j2meloader. A MIDlet is\nconverted to Dalvik bytecode on import and runs against the javax.microedition\nclasses compiled into the app, so no device firmware is read. The vendor\nextension trees (Nokia, Siemens, Samsung, Motorola, Sony Ericsson, Sprint,\nVodafone, KDDI, JBlend, Mascot Capsule) are Java sources in the same package.\nA fork of NaikSoftware/J2meLoader with an independent history: the 2016\nancestor carries no assets directory and none of the loading code cited below.\nref: app/src/main/java/ru/woesss/j2me/installer/AppInstaller.java:292,\n     app/src/main/java/javax/microedition/shell/AppClassLoader.java:38\n\nThe working directory holds converted/, configs/, templates/, data/, fs/c and\nfs/e, all written by the app. fs/c and fs/e are the JSR-75 drives, data/ is RMS\nstorage, converted/ holds converted.dex and res.jar per MIDlet. Nothing there\nis user-supplied.\nref: app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:41-53,\n     app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:146-152\n\nThe shader and property assets are read through ContextHolder.getAssetAsString,\nwhich rethrows an IOException as RuntimeException instead of degrading, so an\nabsent asset ends the code path that reads it. Roboto-Regular.ttf goes through\nTypeface.createFromAsset and appcenter.cer through the asset manager directly.\nref: app/src/main/java/javax/microedition/util/ContextHolder.java:179-193\n", "profiled_date": "2026-08-11", "source": "https://github.com/nikita36078/J2ME-Loader", "source_commit": "9b0fa48a0a0d1e61376c0b9af28b3d2caec0a4cc", "systems": ["j2me"], "type": "standalone", "upstream": "https://github.com/nikita36078/J2ME-Loader"}


id: jaxe
name: JAXE
type: libretro
classification: official_port
source: https://github.com/kurtjd/jaxe
upstream: https://github.com/kurtjd/jaxe
source_commit: e8e90e3d683bb560df5882f0ad62ed28f96a541a
profile_json:
{"core_classification": "official_port", "core_version": "GIT", "cores": ["jaxe"], "display_name": "CHIP-8/S-CHIP/XO-CHIP (JAXE)", "emulator": "JAXE", "files": [], "notes": "JAXE is a CHIP-8, SCHIP, and XO-CHIP emulator by Kurtis Dinelle,\nported to libretro. Supports .ch8, .sc8, .xo8, and .hc8 ROMs.\n\nNo external BIOS or font files required. The core has firmware_count = 0\nin jaxe_libretro.info and never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIR.\n\nFont data is hardcoded in chip8_load_font() at src/chip8.c:118-168.\nThe standard 4x5 hex font (0-F, 80 bytes) is loaded at address 0x000,\nand the SCHIP 8x10 big hex font (0-F, 160 bytes) follows immediately\nafter at address 0x050. Both are written directly into chip8->RAM[]\nduring chip8_reset() -> chip8_load_font().\n\nMemory layout from include/chip8.h:42-45:\n  0x000-0x04F  standard font (NUM_FONT_BYTES = 80)\n  0x050-0x0EF  big font (NUM_BIG_FONT_BYTES = 160)\n  0x0F0-0x0FF  stack (STACK_SIZE = 16)\n  0x100-0x10F  audio buffer (AUDIO_BUF_SIZE = 16)\n  0x200+       program ROM (PC_START_ADDR_DEFAULT)\n\nThe fonts/dbgfont.ttf file in the repo is only used by the standalone\nbuild (src/main.c:19) for the SDL debugger overlay, not by the\nlibretro core.\n", "platform_details": {"bios_mapping": {"note": "All font/sprite data is compiled into the binary. The standard\nCHIP-8 hex font (5 bytes per character, 16 characters) and the\nSCHIP big hex font (10 bytes per character, 16 characters) are\nstored as a static array in chip8_load_font() and copied into\nRAM on every reset. No file I/O is performed for BIOS or fonts.\n", "source_ref": "jaxe_libretro.info:17, src/chip8.c:118-168", "target": "none"}}, "profiled_date": "2026-03-24", "source": "https://github.com/kurtjd/jaxe", "source_commit": "e8e90e3d683bb560df5882f0ad62ed28f96a541a", "systems": ["chip8"], "type": "libretro", "upstream": "https://github.com/kurtjd/jaxe"}


id: jgenesis
name: jgenesis
type: standalone
classification: other
source: https://github.com/jsgroth/jgenesis
upstream: https://github.com/jsgroth/jgenesis
source_commit: aba5813336765825e3e96b3059cfe49173c4faa5
profile_json:
{"core_classification": "other", "core_version": "0.14.0", "cores": ["jgenesis"], "display_name": "Multi-System (jgenesis)", "emulator": "jgenesis", "files": [{"description": "Sega CD BIOS (US)", "mode": "standalone", "name": "bios_CD_U.bin", "note": "Selected when the disc region is Americas, and for every region when per_region_bios is off.", "region": ["north-america"], "required": true, "size": 131072, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:41-51 (read), :256-262 (bios_path_for_region), backend/segacd-core/src/api.rs:77-79 (BIOS_LEN check)", "system": "sega-megacd", "validation": ["size"]}, {"description": "Mega CD BIOS (Europe)", "mode": "standalone", "name": "bios_CD_E.bin", "region": ["europe"], "required": true, "size": 131072, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:256-262 (eu_bios_path), backend/segacd-core/src/api.rs:77-79", "system": "sega-megacd", "validation": ["size"]}, {"description": "Mega CD BIOS (Japan)", "mode": "standalone", "name": "bios_CD_J.bin", "region": ["japan"], "required": true, "size": 131072, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:256-262 (jp_bios_path), backend/segacd-core/src/api.rs:77-79", "system": "sega-megacd", "validation": ["size"]}, {"description": "Game Boy Advance BIOS", "mode": "standalone", "name": "gba_bios.bin", "note": "Every GBA load fails without it. skip_bios_animation only skips the intro, the BIOS is still mapped and read for SWI calls.", "required": true, "size": 16384, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/gba.rs:29-33 (GbaNoBios), backend/gba-core/src/memory.rs:10,102-107 (BIOS_ROM_LEN check)", "system": "nintendo-gba", "validation": ["size"]}, {"aliases": ["SNES_dsp1.rom"], "description": "NEC uPD77C25 firmware for DSP-1", "mode": "standalone", "name": "dsp1.rom", "note": "0x1800 program plus 0x800 data. Also used by DSP-1B titles, which have no separate slot. Layout is sliced at a fixed offset, size is not checked.", "required": true, "size": 8192, "source_ref": "backend/snes-core/src/memory/cartridge.rs:336-353 (MissingDsp1Rom), backend/snes-coprocessors/src/upd77c25.rs:28-31,35-38,382-390", "system": "nintendo-snes"}, {"aliases": ["SNES_dsp2.rom"], "description": "NEC uPD77C25 firmware for DSP-2", "mode": "standalone", "name": "dsp2.rom", "required": true, "size": 8192, "source_ref": "backend/snes-core/src/memory/cartridge.rs:340-342 (MissingDsp2Rom), :929 (Dungeon Master CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390", "system": "nintendo-snes"}, {"aliases": ["SNES_dsp3.rom"], "description": "NEC uPD77C25 firmware for DSP-3", "mode": "standalone", "name": "dsp3.rom", "required": true, "size": 8192, "source_ref": "backend/snes-core/src/memory/cartridge.rs:343-345 (MissingDsp3Rom), :931 (SD Gundam GX CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390", "system": "nintendo-snes"}, {"aliases": ["SNES_dsp4.rom"], "description": "NEC uPD77C25 firmware for DSP-4", "mode": "standalone", "name": "dsp4.rom", "required": true, "size": 8192, "source_ref": "backend/snes-core/src/memory/cartridge.rs:346-348 (MissingDsp4Rom), :933 (Top Gear 3000 CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390", "system": "nintendo-snes"}, {"aliases": ["SNES_st010.rom"], "description": "NEC uPD96050 firmware for ST010", "mode": "standalone", "name": "st010.rom", "note": "0xC000 program plus 0x1000 data. Used by F1 ROC II.", "required": true, "size": 53248, "source_ref": "backend/snes-core/src/memory/cartridge.rs:294-305 (MissingSt010Rom), :938-943 (variant detection), backend/snes-coprocessors/src/upd77c25.rs:28-31,35-38", "system": "nintendo-snes"}, {"aliases": ["SNES_st011.rom"], "description": "NEC uPD96050 firmware for ST011", "mode": "standalone", "name": "st011.rom", "required": true, "size": 53248, "source_ref": "backend/snes-core/src/memory/cartridge.rs:298-300 (MissingSt011Rom), :938-943 (Hayazashi Nidan Morita Shougi CRC32 match)", "system": "nintendo-snes"}, {"aliases": ["SNES_st018.rom"], "description": "ARM firmware for ST018", "min_size": 163840, "mode": "standalone", "name": "st018.rom", "note": "0x20000 program plus 0x8000 data. Used by Hayazashi Nidan Morita Shougi 2. Files larger than the expected length are accepted, shorter ones are rejected.", "required": true, "source_ref": "backend/snes-core/src/memory/cartridge.rs:310-320 (MissingSt018Rom), backend/snes-coprocessors/src/st018.rs:18-22,346-352 (TOTAL_ROM_LEN check)", "system": "nintendo-snes", "validation": ["size"]}, {"description": "Master System BIOS", "mode": "standalone", "name": "bios.sms", "note": "Read only when sms_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default. One slot accepts any regional dump, no size or content check.", "required": false, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122, backend/smsgg-core/src/memory.rs:101-106,148-168", "system": "sega-mastersystem"}, {"description": "Game Gear BIOS", "mode": "standalone", "name": "bios.gg", "note": "Read only when gg_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default.", "required": false, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122", "system": "sega-gamegear"}, {"description": "Game Boy boot ROM", "mode": "standalone", "name": "dmg_boot.bin", "note": "Loaded only when dmg_boot_rom is enabled, off by default. Without it the CPU starts post-boot.", "required": false, "size": 256, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/gb.rs:29-33,77-89, backend/gb-core/src/memory.rs:9,45-63 (DMG_BOOT_ROM_LEN check)", "system": "nintendo-gb", "validation": ["size"]}, {"description": "Game Boy Color boot ROM", "max_size": 2304, "min_size": 2048, "mode": "standalone", "name": "cgb_boot.bin", "note": "Loaded only when cgb_boot_rom is enabled, off by default. 2304 bytes is taken as is, 2048 bytes gets the filler page inserted.", "required": false, "source_ref": "frontend/jgenesis-native-driver/src/mainloop/gb.rs:34-38,77-89, backend/gb-core/src/memory.rs:10,45-63,168 (CGB_BOOT_ROM_LEN check and pad_cgb_boot_rom)", "system": "nintendo-gbc", "validation": ["size"]}, {"aliases": ["nespalette.pal"], "description": "External NES color palette", "max_size": 1536, "min_size": 192, "mode": "standalone", "name": "nes.pal", "note": "1536 bytes gives 512 colors, 192 bytes gives 64 colors extrapolated to 512. Smaller files are rejected and the built-in palette stays in use.", "required": false, "source_ref": "config/nes-config/src/lib.rs:92-109 (NesPalette::read_from), frontend/jgenesis-gui/src/app/nes.rs:407-417", "system": "nintendo-nes", "validation": ["size"]}], "mode": "standalone", "notes": "Multi-system emulator written in Rust by James Groth. One binary covers\nthirteen hardware modes: Master System, Game Gear, SG-1000, Genesis, Sega CD,\n32X, Sega CD 32X, NES, SNES, Game Boy, Game Boy Color, Game Boy Advance and\nPC Engine (frontend/jgenesis-native-driver/src/extensions.rs:172-186).\n\nNo path is hardcoded. Every BIOS, boot ROM and coprocessor ROM is an\nOption<PathBuf> in the config, defaulting to None and set through a file\ndialog or the TOML config file (frontend/jgenesis-native-driver/src/config.rs\n:76-78,95-99,146-159,191-193,205). The emulator identifies these files by\nsize and layout, never by name or hash, so the names below are the ones the\ndumps circulate under rather than strings read from the source. RetroBat\nwrites bios_CD_U/E/J.bin and gba_bios.bin into the TOML directly\n(emulatorLauncher/Generators/Jgenesis.Generator.cs:226-229,283-294).\n\nSega CD selects the BIOS by disc region and per_region_bios defaults to true,\nso the US, European and Japanese images are each reachable\n(frontend/jgenesis-native-driver/src/mainloop/genesis.rs:233-262,\nfrontend/jgenesis-native-config/src/genesis.rs:115). Setting \"Use US BIOS for\nall regions\" collapses all three onto the US slot.\n\nSNES coprocessor ROMs use the merged layout, program ROM followed by data ROM\nin one file, not the split .program.rom / .data.rom pair. Program ROM\nendianness is auto-detected from the first four opcodes, so either byte order\nof a given dump loads (backend/snes-coprocessors/src/upd77c25.rs:382-390,405-419).\nThere is one DSP slot for DSP-1: guess_dsp_variant only returns Dsp1, Dsp2,\nDsp3 or Dsp4, and DSP-1B titles fall through to the DSP-1 slot\n(backend/snes-core/src/memory/cartridge.rs:926-936). None of the seven chips\nhas an HLE implementation, so an affected game refuses to load when its slot\nis empty.\n\n32X needs no user file. The two SH-2 boot ROMs and the 68000 vector table are\ncompiled into the binary (backend/s32x-core/src/bootrom.rs:3-6). A Sega CD\nBIOS is only consulted when the hardware mode is Sega CD or Sega CD 32X.\n\nNES, SG-1000 and PC Engine need no BIOS. PC Engine has no CD-ROM² support, so\nno System Card is involved. CX4, SA-1, S-DD1, SPC7110, Super FX, OBC1 and the\nS-RTC are emulated from cartridge data alone and take no firmware file.\n\nWritten by the emulator, not obtained: save files, save states, the per-game\ncheats TOML in its own serde format (frontend/jgenesis-native-config/src/lib.rs\n:215,244-275) and the config file itself. The GUI exports a palette to\nnespalette.pal (frontend/jgenesis-gui/src/app/nes.rs:428-430). portable.txt is\ntested for existence only, to keep the settings beside the executable\n(frontend/jgenesis-native-config/src/paths.rs:57-64).\n", "profiled_date": "2026-08-08", "source": "https://github.com/jsgroth/jgenesis", "source_commit": "aba5813336765825e3e96b3059cfe49173c4faa5", "systems": ["sega-megadrive", "sega-megacd", "sega-32x", "sega-mastersystem", "sega-gamegear", "sega-sg1000", "nintendo-nes", "nintendo-snes", "nintendo-gb", "nintendo-gbc", "nintendo-gba", "nec-pc-engine"], "type": "standalone", "upstream": "https://github.com/jsgroth/jgenesis"}


id: jl-mod
name: JL-Mod
type: standalone
classification: community_fork
source: https://github.com/woesss/JL-Mod
upstream: https://github.com/nikita36078/J2ME-Loader
source_commit: f723a190c0bdb44b31c3bc0ead6f8665c7ea517d
profile_json:
{"author": "Yury Kharchenko", "core_classification": "community_fork", "core_version": "0.87.1", "cores": ["jl-mod", "JL-MOD"], "display_name": "Mobile - J2ME (JL-Mod)", "emulator": "JL-Mod", "files": [{"bundled": true, "category": "game_data", "description": "Default microedition system properties", "name": "system.props", "note": "Read from assets/defaults when a profile is created, when the config screen has no stored value and when updateSystemProperties fills the field. Each line becomes a System.setProperty and MidletSystem.setProperty pair at MIDlet startup, carrying microedition.configuration, microedition.platform, the JSR version strings and the vendor identity values.", "required": true, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ProfileModel.java:211, app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:644, app/src/main/java/ru/playsoftware/j2meloader/config/ProfilesManager.java:189, app/src/main/java/javax/microedition/shell/MicroLoader.java:246-252", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for the screen blitter", "name": "simple.vsh", "note": "Compiled when the GL surface is created and no user shader is selected. Graphics mode 1 is the default, so this is the standard display path. Also compiled as the Simple program of the Mascot Capsule renderer.", "required": true, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:34, app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:58, app/src/main/java/javax/microedition/lcdui/Canvas.java:744, app/src/main/java/ru/playsoftware/j2meloader/config/ProfileModel.java:193, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:216", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for the screen blitter", "name": "simple.fsh", "note": "Paired with simple.vsh. createProgram returning -1 raises RuntimeException at surface creation.", "required": true, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:35, app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:59-63, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:217", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for untextured Mascot Capsule geometry", "name": "color.vsh", "note": "Program.create builds the tex, color, simple and sprite programs together the first time the Mascot Capsule renderer draws, so all four pairs are read on the first micro3d frame.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:150, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:53-58, app/src/main/java/ru/woesss/j2me/micro3d/Render.java:156", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for untextured Mascot Capsule geometry", "name": "color.fsh", "note": "Carries the sphere map, toon threshold and primitive colour uniforms of the Color program.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:151, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:162-178", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for textured Mascot Capsule geometry", "name": "tex.vsh", "note": "Built by Program.create alongside the other three pairs.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:233, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:53-58", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for textured Mascot Capsule geometry", "name": "tex.fsh", "note": "Carries the texture size, sphere map and toon uniforms of the Tex program.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:234, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:253-271", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for Mascot Capsule sprites", "name": "sprite.vsh", "note": "Built by Program.create alongside the other three pairs.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:313, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:53-58", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for Mascot Capsule sprites", "name": "sprite.fsh", "note": "Carries the texture size and colour key uniforms of the Sprite program.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:314, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:330-337", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Vertex shader for the Nokia M3D renderer", "name": "m3d.vsh", "note": "Compiled when a MIDlet first binds a com.nokia.mid.m3d context. Carries the position, texture coordinate and matrix inputs.", "required": true, "source_ref": "app/src/main/java/com/nokia/mid/m3d/ShaderProgram.java:28, app/src/main/java/com/nokia/mid/m3d/ShaderProgram.java:38, app/src/main/java/com/nokia/mid/m3d/M3D.java:132", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Fragment shader for the Nokia M3D renderer", "name": "m3d.fsh", "note": "Paired with m3d.vsh. A link failure raises RuntimeException in the constructor.", "required": true, "source_ref": "app/src/main/java/com/nokia/mid/m3d/ShaderProgram.java:29, app/src/main/java/com/nokia/mid/m3d/ShaderProgram.java:39-76", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Binary class patches applied during MIDlet conversion", "name": "patches.bin", "note": "Index of class CRC32 to patch offset, read by the static field initializer of AndroidProducer and again for each matching class the dexer instruments. A read failure outside end of file is rethrown as RuntimeException, which breaks class initialization and therefore every conversion. Patch entries are applied by the SRC/EXT/FWD/BWD opcode stream of BinaryPatcher.", "required": true, "source_ref": "dexlib/src/main/java/org/microemu/android/asm/AndroidProducer.java:41, dexlib/src/main/java/org/microemu/android/asm/AndroidProducer.java:62-90, dexlib/src/main/java/com/android/dx/command/dexer/Main.java:468, dexlib/src/main/java/org/microemu/android/asm/BinaryPatcher.java:49-71", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Third party licence text of the about screen", "name": "licenses.html", "note": "Read when the licences dialog is opened and shown as HTML. Emulation never touches it.", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/info/LicensesDialogFragment.java:35", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "X.509 certificate for the crash report endpoint", "name": "appcenter.cer", "note": "Named as an ACRA certificate path only when the crash sender is configured on Android 4.1 through 4.4, where TLSv1.2 is forced. Every other release uses the default socket factory.", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/crashes/AppCenterSender.java:68-75", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "NDK C++ runtime for the native modules", "name": "libc++_shared.so", "note": "Named ahead of every other native library, in the static initializers of GLESUtils and micro3d Utils, in the M3G toolkit init and in both synthesizer classes.", "required": true, "source_ref": "app/src/main/java/ru/woesss/gles/GLESUtils.java:31, app/src/main/java/ru/woesss/j2me/micro3d/Utils.java:103, app/src/main/java/javax/microedition/m3g/Platform.java:86, app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:70, app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:70", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "GLES blit routines for the Nokia M3D and Mexa OpenGL surfaces", "name": "libgles_utils.so", "note": "Loaded from the static initializer of GLESUtils, so the first blit brings it in. Holds the GLES1 and GLES2 bitmap blits.", "required": true, "source_ref": "app/src/main/java/ru/woesss/gles/GLESUtils.java:30-33, app/src/main/java/com/nokia/mid/m3d/M3D.java:323, app/src/main/java/com/mexa/opgl/OpglGraphics.java:493, app/src/main/cpp/gles_utils/Android.mk:5-11", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "JSR-184 M3G engine", "name": "libjavam3g.so", "note": "Named by System.loadLibrary outside any catch, the first time the toolkit reports the UI thread available. Built by ndkBuild from the m3g sources against GLES 1.1.", "required": true, "source_ref": "app/src/main/java/javax/microedition/m3g/Platform.java:85-89, app/src/main/java/javax/microedition/m3g/Interface.java:314, app/src/main/cpp/m3g/Android.mk:5-15", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Mascot Capsule vertex and buffer routines", "name": "libmicro3d.so", "note": "Loaded from the static initializer of Utils, so the first Mascot Capsule call brings it in. Holds fillBuffer, glReadPixels and the bone transform.", "required": true, "source_ref": "app/src/main/java/ru/woesss/j2me/micro3d/Utils.java:97-105, app/src/main/cpp/micro3d/Android.mk:5-10", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Audio output stream of the sound bank synthesizers", "name": "liboboe.so", "note": "Named by both synthesizer classes ahead of their own libraries. Reached only when a sound bank is selected, and SynthPluginFactory catches the load failure and falls back to the Android synthesizer.", "required": false, "source_ref": "app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:71, app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:71, app/src/main/java/ru/woesss/j2me/mmapi/synth/SynthPluginFactory.java:40-53", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Shared player and listener code of the synthesizer plugins", "name": "libmmapi_common.so", "note": "Named by both synthesizer classes ahead of their own libraries. Same fallback as liboboe.so.", "required": false, "source_ref": "app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:72, app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:72, app/src/main/cpp/mmapi_common/Android.mk:5-12", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "Sonivox EAS synthesizer", "name": "libmmapi_eas.so", "note": "Loaded from the static initializer of LibEAS when a sound bank is selected. Links the sonivox wavetable engine statically and reads the bank as a DLS collection. A failure leaves the TinySoundFont plugin or the Android synthesizer.", "required": false, "source_ref": "app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:69-74, app/src/main/cpp/mmapi_eas/Android.mk:5-22, app/src/main/cpp/sonivox/Android.mk:134", "system": "j2me"}, {"bundled": true, "category": "game_data", "description": "TinySoundFont synthesizer", "name": "libmmapi_tsf.so", "note": "Loaded from the static initializer of LibTSF when a sound bank is selected. Reads the bank as a SoundFont and plays standard MIDI files. A failure leaves the EAS plugin or the Android synthesizer.", "required": false, "source_ref": "app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:69-74, app/src/main/cpp/mmapi_tsf/Android.mk:5-11", "system": "j2me"}, {"category": "game_data", "description": "DLS sound bank for MIDI playback", "name": "<soundbank>.dls", "note": "The config screen lists every regular file in the sound banks directory with no extension filter, and the selected name is kept as a path when the file exists. EAS_LoadDLSCollection reads it with the header search flag off; a rejected file throws and the plugin is skipped.", "path": "soundbanks/<soundbank>.dls", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:318-337, app/src/main/java/javax/microedition/shell/MicroLoader.java:272-274, app/src/main/cpp/mmapi_eas/eas_player.cpp:112-126", "system": "j2me", "unsourceable": "user supplied, no canonical file"}, {"category": "game_data", "description": "SoundFont sound bank for MIDI playback", "name": "<soundbank>.sf2", "note": "Same selection path as the DLS bank. tsf_load_filename parses it, and a null result throws IllegalArgumentException so the plugin is skipped. Only standard MIDI files are played through this synthesizer.", "path": "soundbanks/<soundbank>.sf2", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:318-337, app/src/main/cpp/mmapi_tsf/tsf_player.cpp:87-94, app/src/main/cpp/mmapi_tsf/tsf_player_jni.cpp:15-27", "system": "j2me", "unsourceable": "user supplied, no canonical file"}, {"category": "game_data", "description": "Background image drawn behind the virtual screen", "name": "<skin>", "note": "Any image format Android can decode. Decoded twice, once for bounds and once downsampled to the display, and an undecodable file leaves the layer unset. A rectangular area filled with transparent black is taken as the screen placement.", "path": "skins/<skin>", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:297-316, app/src/main/java/javax/microedition/lcdui/skin/SkinLayer.java:81-111, app/src/main/java/javax/microedition/shell/MicroLoader.java:276-278", "system": "j2me", "unsourceable": "user supplied, no canonical file"}, {"category": "game_data", "description": "Shader descriptor read from the emulator directory", "name": "<shader>.ini", "note": "The config screen creates the shaders directory, keeps every file ending in .ini and parses it as sections opened by a bracketed name, retaining the entries that name both a Vertex and a Fragment file. Name, Author, OutputResolution, Upscaling and four SettingName/SettingDefaultValue/SettingMinValue/SettingStep groups are also read, which is the PPSSPP post-processing descriptor format.", "path": "shaders/<shader>.ini", "required": false, "source_ref": "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:403-464, app/src/main/java/ru/playsoftware/j2meloader/config/ShaderInfo.java:101-207", "system": "j2me", "unsourceable": "user supplied, no canonical file"}, {"category": "game_data", "description": "Vertex shader named by a descriptor", "name": "<shader>.vsh", "note": "Read whole from the shaders directory when the selected filter names it, then compiled in place of the built-in blitter. An unreadable file yields an empty string, the program fails to build and the bundled default is used after a toast.", "path": "shaders/<shader>.vsh", "required": false, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:44-56, app/src/main/java/javax/microedition/shell/MicroLoader.java:263-266, app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:152-160", "system": "j2me", "unsourceable": "user supplied, no canonical file"}, {"category": "game_data", "description": "Fragment shader named by a descriptor", "name": "<shader>.fsh", "note": "Paired with the vertex file of the same descriptor. Four float uniforms from the descriptor settings are pushed to it at surface creation.", "path": "shaders/<shader>.fsh", "required": false, "source_ref": "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:44-56, app/src/main/java/javax/microedition/lcdui/Canvas.java:753-754", "system": "j2me", "unsourceable": "user supplied, no canonical file"}], "mode": "standalone", "notes": "MIDP/CLDC runtime for Android, package ru.woesss.j2meloader. A .jar, .jad or\n.kjx is instrumented and converted to Dalvik bytecode at install time, then\nruns against the javax.microedition classes compiled into the app, so no\ndevice firmware is read. Two build flavors share the sources: emulator, the\npublished application, and midlet, which packs a single ported J2ME\napplication and is the only one reading MIDLET-META-INF/MANIFEST.MF.\nref: app/src/main/java/ru/woesss/j2me/installer/AppInstaller.java:127-146,\n     app/build.gradle.kts:67-93,\n     app/src/main/java/javax/microedition/shell/MicroLoader.java:127-146\n\nThree 3D stacks are compiled in, each with its own shaders and native code:\nJSR-184 M3G on GLES 1.1 (libjavam3g.so), Mascot Capsule v3 (libmicro3d.so with\nthe tex, color, simple and sprite programs) and Nokia M3D (libgles_utils.so\nwith the m3d pair). MIDI playback goes to the Android synthesizer unless a\nsound bank is selected, which routes it to Sonivox EAS or TinySoundFont, both\ndriven by Oboe.\nref: app/src/main/cpp/Android.mk:1,\n     app/src/main/java/ru/woesss/j2me/mmapi/synth/SynthPluginFactory.java:34-52\n\nAssets are read through ContextHolder.getAssetAsString, which rethrows an\nIOException as RuntimeException instead of degrading, so an absent asset ends\nthe code path that reads it.\nref: app/src/main/java/javax/microedition/util/ContextHolder.java:178-192\n\nThe working directory holds converted/, configs/, templates/ and data/, all\nwritten by the app, plus shaders/, soundbanks/ and skins/, created empty at\nfirst run and read from. data/ carries the RMS record stores and backs the\nJSR-75 c: drive.\nref: app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:41-58,\n     app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:162-171,\n     app/src/main/java/javax/microedition/shell/MicroLoader.java:221-227\n", "profiled_date": "2026-08-11", "source": "https://github.com/woesss/JL-Mod", "source_commit": "f723a190c0bdb44b31c3bc0ead6f8665c7ea517d", "systems": ["j2me"], "type": "standalone", "upstream": "https://github.com/nikita36078/J2ME-Loader"}


id: jollycv
name: JollyCV
type: libretro
classification: official_port
source: https://github.com/libretro/jollycv
upstream: https://gitlab.com/jgemu/jollycv
source_commit: eb14292005d51e2bef954cb75145981037ee9988
profile_json:
{"core_classification": "official_port", "core_version": "2.0.0", "cores": ["jollycv"], "display_name": "ColecoVision/CreatiVision/My Vision (JollyCV)", "emulator": "JollyCV", "files": [{"name": "coleco.rom", "note": "Mapped at 0x0000-0x1FFF. Replaced by SGM lower RAM when Super Game Module is active. Must be exactly 8192 bytes.", "required": true, "size": 8192, "source_ref": "libretro/libretro.c:701, src/jcv_coleco.c:402-406", "system": "colecovision", "validation": ["size"]}, {"description": "VTech CreatiVision BIOS ROM", "name": "bioscv.rom", "note": "Mapped at 0xF800-0xFFFF. Must be exactly 2048 bytes.", "required": true, "size": 2048, "source_ref": "libretro/libretro.c:711, src/jcv_crvision.c:315-318", "system": "creativision", "validation": ["size"]}], "notes": "JollyCV is a multi-system emulator by Rupert Carmichael supporting\nColecoVision (with Super Game Module), CreatiVision, and My Vision.\n\nBIOS handling depends on the detected system type (set via core option\nor auto-detected from ROM database via jcv_process_hash/jcv_get_dbflags):\n\n- ColecoVision (JCV_SYS_COLECO): loads \"coleco.rom\" from system dir.\n  BIOS is mapped at 0x0000-0x1FFF. Size must be exactly 8192 bytes\n  (SIZE_CVBIOS = SIZE_8K = 0x2000). Load fails if size mismatches.\n  Without the BIOS, ColecoVision games will not run (load returns false).\n\n- CreatiVision (JCV_SYS_CRVISION): loads \"bioscv.rom\" from system dir.\n  BIOS is mapped at 0xF800-0xFFFF. Size must be exactly 2048 bytes\n  (SIZE_CRVBIOS = SIZE_2K = 0x800). Without the BIOS, CreatiVision\n  games will not run.\n\n- My Vision (JCV_SYS_MYVISION): no BIOS required.\n\nThe libretro port constructs paths via snprintf(\"%s%c%s\", sysdir, pss,\nfilename) in libretro.c:699-711. jcv_bios_load_file() opens the file,\nreads it fully, then delegates to jcv_coleco_bios_load() or\njcv_crvision_bios_load() which validate size before copying.\n\nColecoVision cartridge header bytes at offset 0x0000-0x0001 control\nboot behavior: 0xAA55 shows the BIOS title screen, 0x55AA jumps\ndirectly to the game code vector.\n\nThe core includes a built-in ROM database with MD5 hashes (gamedb.h)\nfor game-specific flags, but this is for game compatibility, not BIOS\nverification.\n", "platform_details": {"colecovision": {"bios_filename": "coleco.rom", "bios_size": 8192, "memory_map": "0x0000-0x1FFF", "source_ref": "src/jcv_coleco.c:269-281"}, "creativision": {"bios_filename": "bioscv.rom", "bios_size": 2048, "memory_map": "0xF800-0xFFFF", "source_ref": "src/jcv_crvision.c:315-337, 441"}, "myvision": {"bios_required": false, "note": "No BIOS needed. My Vision games run without any system ROM."}}, "profiled_date": "2026-03-24", "source": "https://github.com/libretro/jollycv", "source_commit": "eb14292005d51e2bef954cb75145981037ee9988", "systems": ["colecovision", "creativision", "myvision"], "type": "libretro", "upstream": "https://gitlab.com/jgemu/jollycv"}


id: jumpnbump
name: Jump 'n Bump
type: libretro
classification: game_engine
source: https://github.com/libretro/jumpnbump-libretro
upstream: https://github.com/fabiangreffrath/jumpnbump
source_commit: 4e68831f5576075c45c147f86865812afb816139
profile_json:
{"core_classification": "game_engine", "core_version": "v0.1", "cores": ["jumpnbump"], "display_name": "Jump 'n Bump", "emulator": "Jump 'n Bump", "files": [], "notes": "Libretro port of Jump 'n Bump, a multiplayer bunny-stomping platformer\noriginally by Brainchild Design (1998). Released as freeware under GPL.\n\nThe core loads a .dat archive file as content via retro_load_game().\nAll game resources (sprites, sounds, levels, fonts, music) are packed\ninside the .dat file. No system directory files, BIOS, or firmware\nrequired. The .dat file is built from the data/ directory by the\njnbpack tool in the upstream repo.\n\nExtra levels are available from brainchilddesign.com as additional\n.dat files.\n", "profiled_date": "2026-03-24", "source": "https://github.com/libretro/jumpnbump-libretro", "source_commit": "4e68831f5576075c45c147f86865812afb816139", "systems": [], "type": "libretro", "upstream": "https://github.com/fabiangreffrath/jumpnbump"}


id: kegs
name: KEGS
type: standalone
classification: other
source: https://kegs.sourceforge.net/
upstream: https://kegs.sourceforge.net/
profile_json:
{"core_classification": "other", "core_version": "1.38", "cores": ["kegs"], "display_name": "Apple - Apple IIGS (KEGS)", "emulator": "KEGS", "files": [{"aliases": ["ROM.01", "ROM.03", "APPLE2GS.ROM", "APPLE2GS.ROM2", "xgs.rom", "XGS.ROM", "Rom03gd", "342-0077-b"], "description": "Apple IIGS system ROM", "name": "ROM", "note": "Accepted sizes are 32768 (Apple //e), 131072 (ROM 01) and 262144 (ROM 03). -rom on the command line and the g_cfg_rom_path config line both replace the first search name (config.c:1465-1467). A 32 KB //e ROM has to carry the Disk II PROM at offset 0x600, which KEGS reads into slot 6.\n", "required": true, "source_ref": "config.c:135,407-410,1096-1161", "validation": ["size"]}, {"aliases": ["controller.rom", "disk.rom", "DISK.ROM", "diskII.prom"], "description": "Disk II controller PROM for slot 6", "hle_fallback": true, "min_size": 256, "name": "c600.rom", "note": "Replaces the built-in PROM. The first 256 bytes are read into slot 6 and a shorter file is rejected.\n", "required": false, "source_ref": "config.c:418-419,1192-1224", "validation": ["size"]}, {"description": "ROMX-compatible character ROM", "hle_fallback": true, "min_size": 4096, "name": "<charrom>", "note": "Picked through the F4 config panel, which stores the path in g_cfg_charrom_path; there is no default name. KEGS reads 4096 bytes at 0x1000 times the selected font number and replaces the built-in text font with them. The 32 fonts it lists span a 131072-byte image.\n", "required": false, "source_ref": "config.c:136-137,259-276,1070-1093", "validation": ["size"]}], "mode": "standalone", "notes": "Apple IIGS emulator by Kent Dickey, shipped as one zip holding the sources\nand the KEGSMAC, kegswin.exe and xkegs binaries.\n\nThe system ROM is the only file needed to boot. config_load_roms takes the\nfirst name that stats across g_kegs_default_paths (config.c:149-151), which\ncovers the current directory, $HOME, $HOME/Library/KEGS, the executable\ndirectory and a Mac bundle Resources directory. g_cfg_rom_path is tried\nfirst, then the fixed list (config.c:407-410,1105-1109). ROM size selects\nthe machine, 32 KB for an Apple //e, 128 KB for a ROM 01 IIGS and 256 KB\nfor a ROM 03 IIGS, and any other size is refused (config.c:1136-1153).\nWithout a ROM, KEGS raises its config panel instead of starting\n(config.c:1110-1115).\n\nThree ROMs are compiled in. Slot 7 gets the SmartPort PROM literal\ng_rom_c700[] (config.c:463,1165-1169). Slot 6 gets a Disk II PROM rebuilt\nat load time, XORed out of the IIGS ROM through g_rom_c600_rom01_diffs[]\n(config.c:428,1177-1183) or copied from offset 0x600 of a //e ROM\n(config.c:1172-1176); the IIGS control panel reaches it by setting slot 6\nto \"Your Card\". Text uses g_font_array[] from kegsfont.h (video.c:272-273,\nprepared at sim65816.c:667).\n\nSlots 1 to 5 and slot 7 carry empty name lists (config.c:413-417,420), so\nslot 6 is the only slot that reads a card ROM from disk.\n\nconfig.kegs carries the disk assignments and the battery RAM, and KEGS\ncreates it when none is found (config.c:638-672).\n", "profiled_date": "2026-08-08", "source": "https://kegs.sourceforge.net/", "systems": ["apple-iigs", "apple-ii"], "type": "standalone", "upstream": "https://kegs.sourceforge.net/"}


id: kemulator
name: KEmulator nnmod
type: standalone
classification: community_fork
source: https://github.com/shinovon/KEmulator
upstream: https://github.com/shinovon/KEmulator
source_commit: 4230a6af24e8e5d60e00e760750cfd9f195f0bd5
profile_json:
{"author": "shinovon", "core_classification": "community_fork", "core_version": "2.21.5", "cores": ["kemulator", "KEMULATOR"], "display_name": "Mobile - J2ME (KEmulator nnmod)", "emulator": "KEmulator nnmod", "files": [{"description": "Yamaha MA-7 SMAF sequencer library", "name": "M7_EmuSmw7.dll", "note": "First branch of the MMFPlayer probe, taken only when M7_EmuHw.dll sits beside it and the caller did not pass notMmf. Selects MODE_MA7, the only mode carrying phrase audio tracks. Distributed with the SoftBank MEXA emulator.", "required": false, "source_ref": "src/media/emulator/media/mmf/MMFPlayer.java:19-23, src/media/emulator/media/mmf/MaDll.java:186", "system": "j2me", "validation": ["existence"]}, {"description": "Yamaha MA-7 SMAF hardware layer", "name": "M7_EmuHw.dll", "note": "Tested for existence next to M7_EmuSmw7.dll; the MA-7 branch is skipped unless both are present. Loaded by the Windows loader as a dependency of the sequencer library, which is the path handed to Native.load.", "required": false, "source_ref": "src/media/emulator/media/mmf/MMFPlayer.java:21", "system": "j2me", "validation": ["existence"]}, {"description": "Yamaha MA-5 SMAF sequencer library", "name": "M5_EmuSmw5.dll", "note": "Second branch of the probe, taken when the MA-7 pair is absent or the caller passed notMmf and M5_EmuHw.dll sits beside it. Selects MODE_MA5, whose init walks a 1024-byte allocation to an address ending in 0x81 before calling MaSound_EmuInitialize.", "required": false, "source_ref": "src/media/emulator/media/mmf/MMFPlayer.java:24-27, src/media/emulator/media/mmf/MaDll.java:184, src/media/emulator/media/mmf/MaDll.java:231-241", "system": "j2me", "validation": ["existence"]}, {"description": "Yamaha MA-5 SMAF hardware layer", "name": "M5_EmuHw.dll", "note": "Tested for existence next to M5_EmuSmw5.dll; the MA-5 branch is skipped unless both are present.", "required": false, "source_ref": "src/media/emulator/media/mmf/MMFPlayer.java:25", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "description": "Yamaha MA-3 SMAF emulator", "md5": "c1625f6c2fbf66e2e838c6bc74ffe641", "name": "ma3smwemu.dll", "note": "Last branch of the probe and the only one satisfied by a single file. Selects MODE_MA3, whose init calls MaSound_Initialize directly. Present in a stock install, so .mmf playback needs nothing from the user on the 32-bit Windows build.", "required": false, "sha1": "b566d111ccd3e303d21ab5c4cd1519dc238a4fce", "size": 724992, "source_ref": "src/media/emulator/media/mmf/MMFPlayer.java:28-30, src/media/emulator/media/mmf/MaDll.java:182, src/media/emulator/media/mmf/MaDll.java:227-230", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "description": "SWERVE M3G native engine", "md5": "9fcb2bd1f36d1e8d94f8e4e2650914c9", "name": "jsr184client.dll", "note": "Loaded from the executable's directory by the static initializers of the SWERVE javax.microedition.m3g classes, with a System.loadLibrary fallback on the library path. Reached only when the 3D engine setting is SWERVE, the LWJGL engine being the default.", "required": false, "sha1": "ed9a60d56ddcc91514b033c16f2062638c3e6eeb", "size": 405504, "source_ref": "m3g_swerve/src/javax/microedition/m3g/Graphics3D.java:275, m3g_swerve/src/javax/microedition/m3g/Loader.java:378, src/main/emulator/i.java:6-14", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "description": "Mascot Capsule V3 JNI bridge", "md5": "60045cd91e30880c731c9fea8c712093", "name": "java_micro3d_v3_32.dll", "note": "System.loadLibrary from the static initializers of the com.mascotcapsule.micro3d.v3 classes, reached only when the Mascot Capsule engine setting is DLL. Its import table names micro3d_v3_32.dll.", "required": false, "sha1": "b1d6aef4559bb46af27eebda50fe06e0de659966", "size": 27648, "source_ref": "micro3d_dll/src/com/mascotcapsule/micro3d/v3/Figure.java:162-165, micro3d_dll/src/com/mascotcapsule/micro3d/v3/Graphics3D.java:279", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "description": "Mascot Capsule V3 renderer", "md5": "d5ab04740801208b92fa3de7252a75d8", "name": "micro3d_v3_32.dll", "note": "Pulled in by the Windows loader when java_micro3d_v3_32.dll loads; no Java code names it.", "required": false, "sha1": "f59e0d445aafe2503c6e5249ca07df4b89626f8f", "size": 475136, "source_ref": "micro3d_dll/src/com/mascotcapsule/micro3d/v3/Figure.java:163", "system": "j2me", "validation": ["existence"]}, {"aliases": ["amrdecoder_64.dll", "amrdecoder_arm64.dll", "libamrdecoder.so", "libamrdecoder_64.so", "libamrdecoder_arm32.so", "libamrdecoder_arm64.so", "libamrdecoder.dylib", "libamrdecoder_arm64.dylib"], "bundled": true, "description": "opencore-amr decoder for AMR audio", "name": "amrdecoder.dll", "note": "System.load on a name composed from os.name and os.arch, resolved against the executable's directory. The 32-bit Windows build asks for amrdecoder.dll unconditionally. A load failure is printed and swallowed.", "required": false, "source_ref": "win/src/main/emulator/EmulatorPlatform.java:91-97, x64/src/main/emulator/EmulatorPlatform.java:173-212", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "category": "game_data", "description": "Series 60 typeface", "name": "s60snr.ttf", "note": "Read from /res inside the jar the first time a FontAWT is built for the Series 60 face, then cached and derived per style and size.", "required": false, "source_ref": "src/main/emulator/graphics2D/awt/FontAWT.java:20-28", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "category": "game_data", "description": "Nokia typeface", "name": "Nokia.ttf", "note": "Read from /res inside the jar the first time a FontAWT is built for the Nokia face.", "required": false, "source_ref": "src/main/emulator/graphics2D/awt/FontAWT.java:29-37", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "category": "game_data", "description": "Device presets: screen sizes, key maps, platform identities", "name": "presets.xml", "note": "Devices.load reads the PresetsPath setting, /res/presets.xml by default, as a jar resource and falls back to a disk read when the resource is absent, which is how a user-supplied preset file is picked up.", "required": false, "source_ref": "src/main/emulator/Settings.java:133, src/main/emulator/Devices.java:25-50, src/main/emulator/Emulator.java:641", "system": "j2me", "validation": ["existence"]}, {"bundled": true, "category": "game_data", "description": "UI strings, English", "name": "en.txt", "note": "Read from the lang directory next to the executable at startup and kept as the fallback bundle; the language setting names a sibling in the same directory. Every lookup that misses both bundles falls back to the string built into the call site.", "required": false, "source_ref": "src/main/emulator/UILocale.java:11-48", "system": "j2me", "validation": ["existence"]}], "mode": "standalone", "notes": "MIDP/CLDC runtime running on the host JVM, developed from decompiled KEmulator\n1.0.3. MIDlet bytecode executes against the javax.microedition classes compiled\ninto the application, so no device firmware is read.\n\nYamaha SMAF audio is the one thing the user supplies. MMFPlayer.initialize()\nprobes the directory holding the executable for a hardware emulator library in\na fixed order, MA-7 then MA-5 then MA-3, and keeps the first complete set. MA-3\nships with the emulator, so .mmf playback works on a stock install and the MA-5\nand MA-7 libraries raise the chip generation: MA-5 adds 32 PCM channels, MA-7\nadds DSP effects and is the only mode where supportsAudioTracks() is true,\nwhich the MEXA phrase audio track API reads to size its track array.\nref: src/media/emulator/media/mmf/MMFPlayer.java:11-40,\n     src/media/emulator/media/mmf/MaDll.java:862-864,\n     src/media/emulator/media/mmf/PhrasePlayerImpl.java:20-26\n\nThe probe is 32-bit Windows only. isX64() returns before any file is touched,\nso the x64 build loads none of these. The MIDI-through-MA path passes\nnotMmf=true, which skips the MA-7 branch and leaves MA-5 or MA-3.\nref: src/media/emulator/media/mmf/MMFPlayer.java:15-17,\n     src/media/javax/microedition/media/PlayerImpl.java:206-211,\n     win/src/main/emulator/EmulatorPlatform.java:9-11,\n     x64/src/main/emulator/EmulatorPlatform.java:9-11\n\nEvery caller degrades when the probe fails. PlayerImpl.midi() breaks out of the\nma block and falls back to MidiSystem; PlayerImpl.mmf(), SmafPlayer, AudioClip\nand PhrasePlayerImpl each throw and lose SMAF audio alone. Only the file's\nexistence is tested, then the path goes to Native.load, so the code reads no\nsize and no hash.\nref: src/media/javax/microedition/media/PlayerImpl.java:212-249,\n     src/oem/com/jblend/media/smaf/SmafPlayer.java:91,\n     src/oem/com/samsung/util/AudioClip.java:61,\n     src/media/emulator/media/mmf/MaDll.java:181-190\n\nThe 3D and Mascot Capsule backends default to their OpenGL implementations, so\nthe two shipped native libraries below load only when the user selects the\nSWERVE M3G engine or the Mascot Capsule DLL engine.\nref: src/main/emulator/Settings.java:20-21,\n     win/src/main/emulator/EmulatorPlatform.java:41-80\n\nTwo settings hold user-chosen paths with no fixed filename. SoundfontPath takes\nany .sf2 or .dls and is empty by default, leaving useCustomSoundfont() false and\nthe JVM default soundbank in place. VlcDir points at a VLC installation that\nvlcj scans for libvlc.\nref: src/media/emulator/media/EmulatorMIDI.java:26-36,\n     src/main/emulator/ui/swt/Property.java:1864-1905\n", "profiled_date": "2026-08-11", "source": "https://github.com/shinovon/KEmulator", "source_commit": "4230a6af24e8e5d60e00e760750cfd9f195f0bd5", "systems": ["j2me"], "type": "standalone", "upstream": "https://github.com/shinovon/KEmulator", "verification": "existence"}


id: kenji-nx
name: Kenji-NX
type: standalone
classification: community_fork
source: https://git.ryujinx.app/projects/Kenji-NX
upstream: https://git.ryujinx.app/projects/Ryubing
source_commit: 8d7d8f344cb01257c5bc59bb02a74bb89ab9bb5f
profile_json:
{"core_classification": "community_fork", "core_version": "2.1.0-pr.2", "cores": ["kenji-nx", "kenjinx", "KENJI-NX"], "display_name": "Nintendo - Switch (Kenji-NX)", "emulator": "Kenji-NX", "files": [{"description": "Production key set for NCA decryption", "name": "prod.keys", "note": "Read from the system directory under the data root, and additionally from ~/.switch when the launch mode is UserProfile, which Android never is. The four key files are looked up independently, so each is optional to the reader, but an empty header key stops NCA header decryption outright and no encrypted content loads. The desktop importer accepts a .keys file or a zip of them and rejects any line that is not \"name = value\" in lowercase hexadecimal; the Android importer accepts the name prod.keys only and copies it straight into the system directory.", "path": "system/prod.keys", "required": true, "source_ref": "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:231-266, src/Ryujinx.HLE/FileSystem/ContentManager.cs:500-537,681-684,1082-1118, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/SettingsViewModel.kt:254-301"}, {"description": "Per-title key set mapping rights id to title key", "name": "title.keys", "note": "Read beside prod.keys and passed to the same key file reader. Tickets found in a container are imported into the key set at load time, so a title shipping its own ticket does not need an entry here. The importer validates each line as two 32-character hexadecimal fields.", "path": "system/title.keys", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:241,250-253,266,269-297, src/Ryujinx.HLE/FileSystem/ContentManager.cs:1086,1100-1102"}, {"description": "Console-unique key set", "name": "console.keys", "note": "Read beside prod.keys and passed to the same key file reader as the console-specific set. Validated as \"name = value\" lines like prod.keys.", "path": "system/console.keys", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:242,255-258,266, src/Ryujinx.HLE/FileSystem/ContentManager.cs:1103-1105"}, {"description": "Development-unit key set", "name": "dev.keys", "note": "Read beside prod.keys and handed to the key file reader as the development set, alongside the production one rather than instead of it. Validated as \"name = value\" lines.", "path": "system/dev.keys", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:243,260-263,266, src/Ryujinx.HLE/FileSystem/ContentManager.cs:1104-1105"}, {"aliases": ["<firmware>.xci"], "description": "Switch system firmware package", "name": "<firmware>.zip", "note": "Chosen through a file picker and read whole at install time, by path on desktop and by file descriptor on Android. A zip is walked entry by entry and an xci is opened at its update partition; a directory of NCAs is also accepted on desktop. Each NCA is decrypted with the key set to read its title id and content type, the package is rejected when it carries archives that belong to no system title, and the version string comes out of title 0100000000000809. The NCAs are then registered under bis/system/Contents/registered and read from there, never as loose files. No digest of the package itself is compared against anything.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:431-498,675-749,751-1045, src/LibKenjinx/Android/JniExportedMethods.cs:459-495, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/SettingsViewModel.kt:308-364", "storage": "large_file"}, {"description": "Amiibo master keys used to decrypt tag dumps", "name": "key_retail.bin", "note": "Read from the system directory under the data root and split into two 80-byte master keys, the data key then the tag key, each being a 16-byte HMAC key, a 14-byte type string, a reserved byte, a magic size byte, 16 magic bytes and a 32-byte XOR pad. Any total other than 160 bytes throws and the scan fails. The desktop window hides its amiibo-from-dump entry when the file is absent. Only the desktop scan path decrypts a dump; the Android slots hand the raw bytes to the tag buffer instead.", "path": "system/key_retail.bin", "required": false, "size": 160, "source_ref": "src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs:22-44,331-336, src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboDecryptor.cs:10-16, src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboMasterKey.cs:15-39, src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs:385,2243", "validation": ["size"]}, {"category": "game_data", "description": "SDL gamepad mapping database", "name": "SDL_GameControllerDB.txt", "note": "Read from the data root and handed to SDL_AddGamepadMappingsFromFile when the SDL3 driver starts, which happens on the desktop build only. Guarded by an existence test, and SDL carries its own built-in mappings, so a missing file costs only the extra pad definitions.", "path": "SDL_GameControllerDB.txt", "required": false, "source_ref": "src/Ryujinx.SDL3.Common/SDL3Driver.cs:100-105, src/Ryujinx.Input.SDL3/SDL3GamepadDriver.cs:53, src/Ryujinx.Audio.Backends.SDL3/SDL3HardwareDeviceDriver.cs:36, src/Ryujinx/UI/Windows/MainWindow.axaml.cs:110"}, {"description": "Amiibo tag dump", "name": "<amiibo>.bin", "note": "Read whole from wherever the picker points. The desktop path decrypts it with key_retail.bin, accepts 532 bytes by padding to the 540 of 135 pages of 4, and writes the tag back when a game edits its application area. The Android slots read the bytes through the content resolver and buffer them for the NFP service, which takes the figure id from offset 0x1DC without decrypting anything.", "required": false, "source_ref": "src/Ryujinx.HLE/HOS/Horizon.cs:355-363, src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs:22-44,151-283, src/LibKenjinx/LibKenjinx.cs:700-729, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/views/GameViews.kt:328-349", "unsourceable": "dump of one physical amiibo figure, tied to the tag it was read from and never distributed generically"}, {"description": "Override for one built-in root certificate", "name": "<CaCertificateId>.der", "note": "Looked up under system/ssl by the enumeration name of the certificate being read out of the firmware certificate store, and substituted for the store entry when the file exists. The store itself comes from title 0100000000000800, so the absence of an override changes nothing.", "path": "system/ssl/", "required": false, "source_ref": "src/Ryujinx.HLE/HOS/Services/Ssl/BuiltInCertificateManager.cs:25,91-112,114-180", "unsourceable": "replacement certificate the user picks for one certificate authority, with no canonical artefact behind the name"}, {"description": "Replacement Vulkan driver for the Android build", "name": "<driver>.zip", "note": "Imported through a picker filtered on application/zip and unpacked into a folder named after the archive under drivers in the data root. A folder is offered only when it holds a meta.json naming a libraryName that resolves to a file present beside it; the chosen path is remembered in a file named selected. At renderer start the folder is copied into internal storage, because the external filesystem cannot carry an executable mapping, loaded through the rootless Adreno driver loader, and the resulting handle is passed to the Vulkan loader. An empty selection uses the system loader.", "path": "drivers/", "required": false, "source_ref": "src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/VulkanDriverViewModel.kt:13-167, src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/MainViewModel.kt:202-243, src/LibKenjinx/Android/JniExportedMethods.cs:532-555, src/LibKenjinx/VulkanLoader.cs:27-29", "unsourceable": "third-party Vulkan driver built for one GPU family, not an emulator artefact"}], "firmware_titles": [{"content": ["file"], "id": "0100000000000809", "name": "System version", "note": "Version string reported for the installed firmware, and the value the installer returns after verifying a package.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:32,1047-1080"}, {"content": ["binaryList.txt", "zoneinfo/"], "id": "010000000000080E", "name": "TimeZoneBinary", "note": "Location list and zone rules. Without it the location cache holds UTC alone and the time zone manager is marked initialised without rules.", "required": false, "source_ref": "src/Ryujinx.HLE/HOS/Services/Time/TimeZone/TimeZoneContentManager.cs:24,62-86,88-119"}, {"content": ["nintendo_ext_003.bfttf"], "id": "0100000000000810", "name": "FontNintendoExtended", "note": "Shared font, XOR-decoded from BFTTF into the shared memory the pl:u service exposes.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:73,93, src/Ryujinx.HLE/HOS/Services/Sdb/Pl/SharedFontManager.cs:63-125,159-180"}, {"content": ["nintendo_udsg-r_std_003.bfttf"], "id": "0100000000000811", "name": "FontStandard", "note": "Shared font. A missing font title throws InvalidSystemResourceException, so a title that asks for shared fonts stops there.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:68,88, src/Ryujinx.HLE/HOS/Services/Sdb/Pl/SharedFontManager.cs:63-125"}, {"content": ["nintendo_udsg-r_ko_003.bfttf"], "id": "0100000000000812", "name": "FontKorean", "note": "Shared font.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:71,91"}, {"content": ["nintendo_udjxh-db_zh-tw_003.bfttf"], "id": "0100000000000813", "name": "FontChineseTraditional", "note": "Shared font.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:70,92"}, {"content": ["nintendo_udsg-r_org_zh-cn_003.bfttf", "nintendo_udsg-r_ext_zh-cn_003.bfttf"], "id": "0100000000000814", "name": "FontChineseSimplified", "note": "Shared fonts. One title carries both the base and the extended simplified faces.", "required": false, "source_ref": "src/Ryujinx.HLE/FileSystem/ContentManager.cs:69-70,89-90"}, {"content": ["ssl_TrustedCerts.bdf", "ssl_TrustedCerts.tcf"], "id": "0100000000000800", "name": "Certificate store", "note": "Trusted root certificates for the ssl service, the .tcf name being the one used up to firmware 2.3.0. Absent, the service logs and serves nothing.", "required": false, "source_ref": "src/Ryujinx.HLE/HOS/Services/Ssl/BuiltInCertificateManager.cs:25,114-180"}], "mode": "standalone", "notes": "Nintendo Switch emulator in C#, a fork of the Ryujinx line maintained by\nKeatonTheBot. Two builds come out of one repository: the desktop Avalonia\nfront end on master, and the Android app on libryujinx_bionic, which carries\nthe whole desktop tree plus src/KenjinxAndroid and src/LibKenjinx. That branch\nis the one read here, since master has no Android code at all. The Android\npackage is org.kenjinx.android and ES-DE launches it with the action\norg.kenjinx.android.LAUNCH_GAME and the ROM in EXTRA_bootPath.\nref: README.md:15-24, src/KenjinxAndroid/app/build.gradle:11-15,\n     src/KenjinxAndroid/app/src/main/AndroidManifest.xml:8,69\n\nEvery external file hangs off one data root. AppDataManager.Initialize takes a\nbase path, keeps a portable directory next to the binary when one exists and\notherwise falls back to %APPDATA%/Ryujinx, the default directory name being\nstill Ryujinx. Android hands it getExternalFilesDir(null), which differs from\nthe user profile path and already exists, so the launch mode is Custom and the\n~/.switch fallback that ReloadKeySet consults in UserProfile mode never fires\nthere. games, profiles and system are created under the root on every start.\nref: src/Ryujinx.Common/Configuration/AppDataManager.cs:11-17,47,50-104,223-230,\n     src/LibKenjinx/LibKenjinx.cs:54-95,\n     src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/MainActivity.kt:264-298\n\nFirmware is installed rather than placed. ContentManager takes a directory, a\nzip or an xci with an update partition, verifies each NCA against the key set\nand refuses a package carrying unrelated archives, then registers the contents\nunder bis/system/Contents/registered. Android passes a file descriptor instead\nof a path but reaches the same two methods. Nothing gates the launch on it:\nhomebrew NRO goes through ProcessLoader without touching the key set, and the\nfailure is deferred to the first service that needs a system archive.\nref: src/Ryujinx.HLE/FileSystem/ContentManager.cs:431-498,675-749,893-903,\n     src/LibKenjinx/Android/JniExportedMethods.cs:459-495,\n     src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs:189-205\n\nTwo read paths belong to the desktop build alone, because the Android build\ndrops LibKenjinx.Native.cs and wires those subsystems differently.\nSDL_GameControllerDB.txt is read by SDL3Driver, whose only callers are the\nSDL3 audio, gamepad and keyboard drivers; on Android JnaDeviceInitialize\nbuilds an OpenALHardwareDeviceDriver and InitializeInput builds a\nVirtualGamepadDriver, so SDL3 never initialises. Amiibo diverge the same way:\nthe desktop scan decrypts a dump through AmiiboBinReader and therefore needs\nkey_retail.bin, while the Android entry buffers the raw tag in\nKenjinxAmiiboShim and INfp reads the figure id straight out of offset 0x1DC.\nref: src/LibKenjinx/LibKenjinx.csproj:11-13,\n     src/LibKenjinx/Android/JniExportedMethods.cs:347-348,1046-1060,\n     src/LibKenjinx/LibKenjinx.Input.cs:28-39,\n     src/Ryujinx.HLE/Kenjinx/AmiiboBridge.cs:10-44,\n     src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/KenjinxAmiiboShim.cs:15-41,\n     src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs:149-166,257-279\n\nConfig.json, Profiles.json, updates.json, dlc.json, mods.json, metadata.json\nand system/amiibo/<amiibo id>.json are written by the emulator itself, and\nsystem/amiibo/Amiibo.json is a catalogue the desktop window downloads from\nAmiiboAPI and rewrites. None of them is user supplied. The Android app keeps\nits own settings in Android shared preferences.\nref: src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs:198-243,\n     src/Ryujinx/UI/ViewModels/AmiiboWindowViewModel.cs:61-63,\n     src/Ryujinx.Common/ReleaseInformation.cs:14-19,\n     src/KenjinxAndroid/app/src/main/java/org/kenjinx/android/viewmodels/QuickSettings.kt:92\n\nDistribution moved off GitHub: Kenji-NX/Android-Releases returns HTTP 451\nunder the Nintendo notice of 2026-02-12, and both the source and the builds\nare served by the Forgejo instance, which is where ES-DE points as well.\nref: https://github.com/github/dmca/blob/master/2026/02/2026-02-12-nintendo.md,\n     tmp/es-de/ANDROID.md:470-474\n", "profiled_date": "2026-08-11", "source": "https://git.ryujinx.app/projects/Kenji-NX", "source_branch": "libryujinx_bionic", "source_commit": "8d7d8f344cb01257c5bc59bb02a74bb89ab9bb5f", "systems": ["nintendo-switch"], "type": "standalone", "upstream": "https://git.ryujinx.app/projects/Ryubing"}


id: kronos
name: Kronos
type: libretro
classification: official_port
source: https://github.com/libretro/yabause
upstream: https://github.com/FCare/Kronos
source_commit: 65af22e96beb6d9b0b9a50a81a39c86a6d604c1c
profile_json:
{"archive_prefix": "kronos", "core_classification": "official_port", "core_version": "v2.6.0", "cores": ["kronos"], "display_name": "Sega - Saturn/ST-V (Kronos)", "emulator": "Kronos", "files": [{"name": "saturn_bios.bin", "note": "Primary Saturn BIOS. Any region accepted. Searched in kronos/ subdir first.", "path": "kronos/saturn_bios.bin", "priority": 1, "required": true, "size": 524288, "source_ref": "libretro.c:1619-1623", "system": "sega-saturn", "validation": ["size"]}, {"name": "sega_101.bin", "note": "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing.", "priority": 2, "region": ["japan"], "required": false, "size": 524288, "source_ref": "libretro.c:1627", "system": "sega-saturn", "validation": ["size"]}, {"name": "mpr-17933.bin", "note": "Saturn BIOS (NA/EU). Last fallback for Saturn mode.", "priority": 3, "region": ["north-america", "europe"], "required": false, "size": 524288, "source_ref": "libretro.c:1631", "system": "sega-saturn", "validation": ["size"]}, {"name": "stvbios.zip", "note": "MAME-style ZIP containing ST-V region BIOS EPROMs. Searched in kronos/ subdir first.", "required": true, "source_ref": "libretro.c:1608-1617, ctrl/src/stv.c:112-136", "system": "sega-stv"}, {"archive": "stvbios.zip", "crc32": "f688ae60", "name": "epr-23603.ic8", "region": ["japan"], "required": false, "size": 524288, "source_ref": "stv.c:120", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "59ed40f4", "name": "epr-20091.ic8", "region": ["japan"], "required": false, "size": 524288, "source_ref": "stv.c:121", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "d0e0889d", "name": "epr-19730.ic8", "region": ["japan"], "required": false, "size": 524288, "source_ref": "stv.c:122", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "2672f9d8", "name": "epr-17951a.ic8", "region": ["japan"], "required": false, "size": 524288, "source_ref": "stv.c:123", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "3e23c81f", "name": "epr-17740a.ic8", "region": ["japan"], "required": false, "size": 524288, "source_ref": "stv.c:124", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "5c5aa63d", "name": "epr-17740.ic8", "region": ["japan"], "required": false, "size": 524288, "source_ref": "stv.c:125", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "f7722da3", "name": "epr-17954a.ic8", "region": ["europe"], "required": false, "size": 524288, "source_ref": "stv.c:126", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "d1be2adf", "name": "epr-17952a.ic8", "region": ["north-america"], "required": false, "size": 524288, "source_ref": "stv.c:127", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "4166c663", "name": "epr-17741a.ic8", "region": ["north-america"], "required": false, "size": 524288, "source_ref": "stv.c:128", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "e09d1f60", "name": "epr-19854.ic8", "region": ["taiwan"], "required": false, "size": 524288, "source_ref": "stv.c:129", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "a4c47570", "name": "epr-17953a.ic8", "region": ["taiwan"], "required": false, "size": 524288, "source_ref": "stv.c:130", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "02daf123", "name": "epr-17742a.ic8", "region": ["taiwan"], "required": false, "size": 524288, "source_ref": "stv.c:131", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "3dfeda92", "name": "stv110.bin", "required": false, "size": 524288, "source_ref": "stv.c:132", "system": "sega-stv", "validation": ["crc32"]}, {"archive": "stvbios.zip", "crc32": "728dbca3", "name": "stv1061.bin", "required": false, "size": 524288, "source_ref": "stv.c:133", "system": "sega-stv", "validation": ["crc32"]}, {"name": "mpr-18811-mx.ic1", "note": "ROM cartridge for The King of Fighters '95. Auto-detected via game DB.", "required": false, "size": 2097152, "source_ref": "utils/src/db.c:43-44, yabause/src/cs0.c:1207-1216", "system": "sega-saturn", "validation": ["size"]}, {"name": "mpr-19367-mx.ic1", "note": "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu. Auto-detected via game DB.", "required": false, "size": 2097152, "source_ref": "utils/src/db.c:45, yabause/src/cs0.c:1207-1216", "system": "sega-saturn", "validation": ["size"]}], "notes": "Kronos is a Sega Saturn and ST-V arcade emulator by FCare, forked from\nYabause. Requires OpenGL 4.3 compute shaders.\n\nSaturn BIOS search order:\n  1. {system}/kronos/saturn_bios.bin\n  2. {system}/saturn_bios.bin\n  3. {system}/sega_101.bin\n  4. {system}/mpr-17933.bin\nFirst file found wins. Real BIOS required (HLE deprecated, only available\nvia kronos_force_hle_bios core option for debugging).\n\nST-V BIOS: {system}/kronos/stvbios.zip or {system}/stvbios.zip\nMAME-style ZIP containing region-specific EPROMs. Kronos picks the best\nmatch by game region and kronos_stv_favorite_region core option (EU/US/JP/TW).\n\nROM cartridges for KOF95 and Ultraman are auto-detected via game database\n(db.c) and loaded from system_dir when the corresponding game is running.\n\nBIOS loading: libretro.c retro_load_game() lines 1601-1727.\nSTV blob table: ctrl/src/stv.c BiosList lines 112-136.\nROM cartridge DB: utils/src/db.c lines 43-45.\n\nStandalone supports MPEG card ROM loading (Video CD card); disabled in\nlibretro port (mpegpath = NULL in libretro.c:1578).\n", "profiled_date": "2026-03-24", "source": "https://github.com/libretro/yabause", "source_commit": "65af22e96beb6d9b0b9a50a81a39c86a6d604c1c", "systems": ["sega-saturn", "sega-stv"], "type": "libretro", "upstream": "https://github.com/FCare/Kronos"}


