mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
feat: profile eleven standalone emulators
This commit is contained in:
1 parent
ec51a2d6da
commit
7bb9c61037
11 files changed
+8224
No files matched your search
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,316 @@
|
||||
emulator: izapple2
|
||||
type: standalone
|
||||
core_classification: embedded_hle
|
||||
source: "https://github.com/ivanizag/izapple2"
|
||||
upstream: "https://github.com/ivanizag/izapple2"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "01deea8a97b19ac782a1d11fe1e8d07f07b6c835"
|
||||
core_version: "v2.4.0"
|
||||
display_name: "Apple - Apple II (izapple2)"
|
||||
cores:
|
||||
- izapple2
|
||||
systems:
|
||||
- apple-ii
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Apple II emulator written in Go by Ivan Izaguirre. Boards: Apple ][ and ][+
|
||||
with 48 KB, Apple IIe and //e enhanced with 128 KB, and two clones, the Copam
|
||||
Base 64A and the Basis 108 (setup.go:36-58).
|
||||
|
||||
Every ROM the machine needs is compiled into the binary. The whole resources
|
||||
directory is embedded with //go:embed (resources.go:25-26) and the 17 machine
|
||||
configs with //go:embed configs/*.cfg (configuration.go:51-52). LoadResource
|
||||
routes a name by its prefix: <internal>/ reads the embedded filesystem,
|
||||
http:// and https:// fetch over the network, anything else is a path on disk
|
||||
(resources.go:55-88). The shipped configs name main ROM, character ROM and
|
||||
boot diskette as <internal>/ paths, so the emulator starts into DOS 3.3 with
|
||||
no file on disk. The base64a and basis108 configs set rom: <custom>, which
|
||||
dispatches to loadMultiPageRom over six embedded PROM dumps each
|
||||
(setup.go:189-199, boardBase64a.go:7-16, boardBasis108.go:28-37).
|
||||
|
||||
Two of the 27 registered cards name an image the emulator downloads instead
|
||||
of carrying: prodosromdrive and prodosromcard3 (cardBuilder.go:85-86). Both
|
||||
read the card slot ROM out of that image, so neither card has a boot ROM
|
||||
without it. No shipped model uses either card, they are reached with -sN.
|
||||
prodosnvramdrive is left out of the factory (cardBuilder.go:87).
|
||||
|
||||
-rom and -charrom replace the embedded main and character ROM with a file of
|
||||
the user's choosing, and every disk, hard disk and cassette parameter takes
|
||||
user media and defaults to empty.
|
||||
|
||||
Seven frontends besides the core: a2sdl, a2sdl3, a2fyne, a2ebiten, a2wasm,
|
||||
console and headless. ES-DE runs a2sdl, built as izapple2sdl_linux_amd64 or
|
||||
izapple2sdl_windows_amd64.exe, and passes the image as a positional argument.
|
||||
The libretro core in frontend/a2libretro builds from source only, is absent
|
||||
from the buildbot and the RetroArch online updater (doc/libretro.md), and its
|
||||
izapple2_libretro.info declares firmware_count = 0. It exposes the machine as
|
||||
a model option and no card configuration, so the two card images cannot be
|
||||
reached through it.
|
||||
|
||||
files:
|
||||
- name: "ProDOS_2.4.3_TJ.po"
|
||||
required: false
|
||||
description: "ProDOS ROM Drive card image, a 1 MB solid state disk by Terence Boldt"
|
||||
source_ref: "cardProDOSRomDrive.go:31,39,46"
|
||||
note: "Fetched from https://github.com/Alex-Kw/ProDOS-ROM-Drive-Images/raw/main/ProDOS_2.4.3_TJ.po when the card is added with no image parameter. The card slot ROM is read at offset 0x300. No size or hash check."
|
||||
|
||||
- name: "ProDOS-ROMCARD3_4MB_A2D.v1.4_v37.po"
|
||||
required: false
|
||||
size: 4194304
|
||||
validation: [size]
|
||||
description: "ProDOS ROM Card 3 image, a 4 MB ROM card by Ralle Palaveev"
|
||||
source_ref: "cardProDOSRomCard3.go:29,37,42-44,48"
|
||||
note: "Fetched from https://github.com/rallepalaveev/ProDOS-Romcard3/raw/main/ProDOS-ROMCARD3_4MB_A2D.v1.4_v37.po when the card is added with no image parameter. The card slot ROM is read at offset 0x200. Rejected unless exactly 4 MB."
|
||||
|
||||
analysis:
|
||||
embedded_resources:
|
||||
mechanism: "//go:embed resources, served by LoadResource on the <internal>/ prefix"
|
||||
source_ref: "resources.go:25-26,55-70"
|
||||
count: 59
|
||||
main_roms:
|
||||
- filename: "341-000x_integer.rom"
|
||||
size: 8192
|
||||
md5: 894e6980cadd7bb3178b1ac8a15798df
|
||||
sha1: 102fbf7dea8b8d6de5de1c484ff45e7b5dfb28d5
|
||||
- filename: Apple2_Plus.rom
|
||||
size: 12288
|
||||
md5: 572b3005a4fa49bc54917b069b82c1ab
|
||||
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
|
||||
- filename: Apple2e.rom
|
||||
size: 16384
|
||||
md5: 346bc782c6a08a531c460e33bc03daf4
|
||||
sha1: 61fa9254628e5bb7236fb474006116d67684d747
|
||||
- filename: Apple2e_Enhanced.rom
|
||||
size: 16384
|
||||
md5: 38063e08c778503fc03ecebb979769e9
|
||||
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
|
||||
- filename: wozaniam_integer.rom
|
||||
size: 32768
|
||||
md5: 2f52e3571b952c0c6a7111bbe7d40b06
|
||||
sha1: 5f7b851dbcab1df8f1883d2112f6ab1d16109f24
|
||||
|
||||
main_roms_clones:
|
||||
- filename: BASE64A_D0.BIN
|
||||
size: 4096
|
||||
md5: 3be17e122814854eef489aa18fb2a18b
|
||||
sha1: bd68bc9144483faff473e66a12eddd31fe369b68
|
||||
- filename: BASE64A_D8.BIN
|
||||
size: 4096
|
||||
md5: 85fe91818dc1a6104a632f667d5d50ae
|
||||
sha1: 8f19accf1d531779940be3f3c12af8277a3c412f
|
||||
- filename: BASE64A_E0.BIN
|
||||
size: 4096
|
||||
md5: 1713e0a1013ac7f219de68a03e24acb7
|
||||
sha1: f698da38f4f48bb9db73a71f85e6e350eb645c51
|
||||
- filename: BASE64A_E8.BIN
|
||||
size: 4096
|
||||
md5: 9fc4cef642511e173a85e155e0dd17a6
|
||||
sha1: 9fbf0faf5df19d7d2e6bfd4bacd12eccc3fc4cf9
|
||||
- filename: BASE64A_F0.BIN
|
||||
size: 4096
|
||||
md5: 620957f7d52e44dbc8cfe0432d1c75d6
|
||||
sha1: e397c2c154917a62866059b9c54b2c7796463a12
|
||||
- filename: BASE64A_F8.BIN
|
||||
size: 8192
|
||||
md5: 20cf7dcd355196f77c4e490cb27d7050
|
||||
sha1: 6141c21c5d6a06729355083e3e36c6af72e534f2
|
||||
- filename: Basis108_D83_D0.BIN
|
||||
size: 4096
|
||||
md5: 4324e16f31623b3d6b06b0e6509407cb
|
||||
sha1: 7901203845adab588850ae35f81e4ee2a2248686
|
||||
- filename: Basis108_D70_D8.BIN
|
||||
size: 4096
|
||||
md5: 64bd9f89b1aeb32de7783fb3f8f7466f
|
||||
sha1: b2a418818e4130859afd6c08b5695328a3edd2c5
|
||||
- filename: Basis108_D56_E0.BIN
|
||||
size: 4096
|
||||
md5: e376cc43d22035a851703163551d033d
|
||||
sha1: 938884eb3ebd0870f99df33ee7a03e93cd625ab4
|
||||
- filename: Basis108_D40_E8.BIN
|
||||
size: 4096
|
||||
md5: ca3491a23265be503eefd52dbf6debaa
|
||||
sha1: 380ffcf0dba008f0bc43a483931e98034b1d0d52
|
||||
- filename: Basis108_D39_F0.BIN
|
||||
size: 4096
|
||||
md5: ff63fbda7a4cccf29236d3255fbe8bd5
|
||||
sha1: b5ffc9b3552b13b2f577a42196addae71289203d
|
||||
- filename: Basis108_D25_F8.BIN
|
||||
size: 4096
|
||||
md5: 242d0c2562d280843a16ebc70a8b30bc
|
||||
sha1: 66b7eadfdb938cda0de01dbeab1b74aa88bd096c
|
||||
|
||||
character_roms:
|
||||
- filename: Apple2rev7CharGen.rom
|
||||
size: 2048
|
||||
md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec
|
||||
sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659
|
||||
- filename: Apple IIe Video Unenhanced.bin
|
||||
size: 4096
|
||||
md5: 2fbc2be2a84ea742de37be9925c7d7cd
|
||||
sha1: 58ad0008df72896a18601e090ee0d58155ffa5be
|
||||
- filename: Apple IIe Video Enhanced.bin
|
||||
size: 4096
|
||||
md5: 9123fff3442c0e688cc6816be88dd4ab
|
||||
sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10
|
||||
- filename: BASE64A_ROM7_CharGen.BIN
|
||||
size: 4096
|
||||
md5: 0b144915453e5fa9d1f4a4cb85438eb7
|
||||
sha1: d3827e22f377b681de1f8b18d8e57c66ca85cf38
|
||||
- filename: D29_basis_cg_2532.rom.BIN
|
||||
size: 4096
|
||||
md5: 37a23661f21e4945aef680ac94f4d435
|
||||
sha1: e6e4e357b3834a143df9e5834abfb4a9139457d4
|
||||
- filename: ROMXce Production 1Mb Text ROM V5.bin
|
||||
size: 131072
|
||||
md5: 3e9255b76fcd20a84d4a40e99904c15d
|
||||
sha1: 12b5596ffeb3ee334d43c1d8031ea3c0b1e2429c
|
||||
- filename: "80ColumnP109.BIN"
|
||||
size: 1024
|
||||
md5: e564b4bb5728cc7b5f2c4c56330f7ad5
|
||||
sha1: b1fad3f20e84c3063f25ba66555a1624563fff6b
|
||||
- filename: "80ColumnP110.BIN"
|
||||
size: 2048
|
||||
md5: ce6630f0a1f3ba08127a2e82facc7a25
|
||||
sha1: aefae76fb07740d042cf294f01424efa7cc7a199
|
||||
- filename: videx_ultraterm_chs_7859.bin
|
||||
size: 4096
|
||||
md5: 1d77cc5edd8ea1330745efbb9bb4c902
|
||||
sha1: 3517fa9e7a39573f1cb159b3161d6939dec199ba
|
||||
|
||||
card_firmware:
|
||||
- filename: Apple Disk II 16 Sector Interface Card ROM P5 - 341-0027.bin
|
||||
size: 256
|
||||
md5: 2020aa1413ff77fe29353f3ee72dc295
|
||||
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
||||
- filename: Apple Disk II 16 Sector Interface Card ROM P6 - 341-0028.bin
|
||||
size: 256
|
||||
md5: 5f1be0c1cdff26f5956eef9643911886
|
||||
sha1: bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4
|
||||
- filename: Apple Disk II 13 Sector Interface Card ROM P5 - 341-0009.bin
|
||||
size: 256
|
||||
md5: 4f80448507cf43ab40c17ac08d89e278
|
||||
sha1: afd060e6f35faf3bb0146fa889fc787adf56330a
|
||||
- filename: Apple Disk II 13 Sector Interface Card ROM P6 - 341-0010.bin
|
||||
size: 256
|
||||
md5: 897b0edef70b440133c99f65a507ebb6
|
||||
sha1: e3d6d1c30653572b49ecc2dc54ce073978411a04
|
||||
- filename: Apple II Parallel Printer Interface Card ROM fixed.bin
|
||||
size: 256
|
||||
md5: 275a06e8fec1e53a8315df54d1719822
|
||||
sha1: 6392019fdb1498149d00a3cd98b1723b3f245847
|
||||
- filename: Apple II Interface 341-0271-A ROM 2716 for 5MB Profile.bin
|
||||
size: 2048
|
||||
md5: 82015e7e3462116e2d1aa1d35d4f52b1
|
||||
sha1: d9d4a7a2c14232c3872f9bbf55aff1b31f9a1cb5
|
||||
- filename: Apple II Interface 341-0299-B ROM 2716 for 10MB Profile.bin
|
||||
size: 2048
|
||||
md5: e841f266fcc2e2452b26c73c4fb93eb0
|
||||
sha1: 81750f023f964c2f3781d687cee5b1ea5b49d4ea
|
||||
- filename: MemoryExpansionCard-341-0344a.bin
|
||||
size: 4096
|
||||
md5: a434738170b38589261bf93f3027a528
|
||||
sha1: 6e823a1fa40ed37eeddcef23f5df24da2ea1463e
|
||||
- filename: ramfactor_rom_14.bin
|
||||
size: 8192
|
||||
md5: e3f6a5c1ff75d278362a08403f8b1fec
|
||||
sha1: 32cb02a6a915dd3962bfa1f0184a94253e03ba6b
|
||||
- filename: ThunderclockPlusROM.bin
|
||||
size: 2048
|
||||
md5: 138b1f7e30953fcaa58fcbf562c15001
|
||||
sha1: 60f434f5325899d7ea257a6e56e6f53eae65146a
|
||||
- filename: Videx Videoterm ROM 2.4.bin
|
||||
size: 1024
|
||||
md5: acdb3732b38ddaee5ad357e08eea7676
|
||||
sha1: bb653836e84850ce3197f461d4e19355f738cfbf
|
||||
- filename: videx_ultraterm_frm_b537.bin
|
||||
size: 4096
|
||||
md5: 72972c464ecd229db27e03da1c92c332
|
||||
sha1: b4acd1775c08ae43996ab4edf6d8e28f4736346b
|
||||
- filename: SwyftCard ROM.bin
|
||||
size: 16384
|
||||
md5: 95a5579c1229944dd4841a1fb34e9e47
|
||||
sha1: 1554bd03c536789f0ff7d1ef6c992265e311935d
|
||||
- filename: ApplesoftInteger.BIN
|
||||
size: 65536
|
||||
md5: a7bae7a0a70cb4019c5145060e6a3451
|
||||
sha1: b929f27b15de61391e28c18951e8d17dd8fd9435
|
||||
- filename: MultiRom(SP boot)-Prog aid-28C256.BIN
|
||||
size: 32768
|
||||
md5: ecf5aa6f46a85ace61eb5cec505a908d
|
||||
sha1: fb69c1f4551626749e7cfcfa5e2c27af7f195b8d
|
||||
- filename: Apple2CardFirmware.bin
|
||||
size: 512
|
||||
md5: 76e795393f308a0788f2f95a67431b9a
|
||||
sha1: b8b0458e8b0c3b406e03f5e8096cbc5cebd127b0
|
||||
- filename: Apple2CardFirmwareImproved.bin
|
||||
size: 512
|
||||
md5: d2cf1b181b1934f9533c6d8b9d02f44c
|
||||
sha1: 5e2737d233f5769df654d2d5aa96d24f2fd85671
|
||||
|
||||
diskettes:
|
||||
- filename: dos33.dsk
|
||||
size: 143360
|
||||
md5: b13de32fd7a97d817744bf2dd71d5479
|
||||
sha1: 63392d078a159342b12667d0fdfea7a01a961978
|
||||
- filename: dos32.nib
|
||||
size: 232960
|
||||
md5: 082e79bb10fa5dcf07b2e49f689f5439
|
||||
sha1: 3549a3a7d990d5b258f56fdc765258cb2ffb81ff
|
||||
- filename: ProDOS_2_4_3.po
|
||||
size: 143360
|
||||
md5: 0577bdbb9c082787d00d50c830a75d67
|
||||
sha1: 4bd80c2220b48cdcdcbe3876529a34b9a18efe5f
|
||||
- filename: cpm_2.20B_56K.po
|
||||
size: 143360
|
||||
md5: c2c24f49d7c736e6317f6fe45d8f7468
|
||||
sha1: cbd86f70ad822af826ae5039955997d722ae9d6a
|
||||
- filename: CPM3.1_Disk_1.dsk
|
||||
size: 143360
|
||||
md5: e28e1efa972cf4789aec6f29e9e08013
|
||||
sha1: 0305c74cf24b618b29047bf6b624e607071c954b
|
||||
- filename: CPM3.1_Disk_2.dsk
|
||||
size: 143360
|
||||
md5: 5c5e948e7636c2b1e11735661788e24d
|
||||
sha1: daecdcd23366029b066fc28694c924c958acab26
|
||||
- filename: cpm65.po
|
||||
size: 143360
|
||||
md5: 685800279db9ee7131bb284061c8a007
|
||||
sha1: 88fbea7f89ce2171afa10e86c825511913603ad7
|
||||
- filename: A2DeskTop-1.4-en_800k.2mg
|
||||
size: 819264
|
||||
md5: 304a4585cefc808f9b7b9e585e6dc9c2
|
||||
sha1: 88ccfe5fffbcc3d170d9c864cfcbbe9debc98cf7
|
||||
- filename: Card Cat 1.7.dsk
|
||||
size: 143360
|
||||
md5: d9aeb6dcd25cbe06f1e0a5e39ae7d23f
|
||||
sha1: 8dd11509479d37e9f46a29cb120eb0a1028b2c0d
|
||||
- filename: Videx Ultraterm Utilities.dsk
|
||||
size: 143360
|
||||
md5: 81306cc573bf67153ca8d3f93a4528aa
|
||||
sha1: 76f6d461e959f75be9cfcbbbf6479bdc8af6d176
|
||||
- filename: SwyftWare_-_SwyftCard_Tutorial.woz
|
||||
size: 101807
|
||||
md5: 9ab515de46831b4b1274cae01c14b621
|
||||
sha1: c27a1e4ad98be52ce6dbfef801d8083578084569
|
||||
- filename: audit.dsk
|
||||
size: 143360
|
||||
md5: 917056239add083b76d5d72f8264cdda
|
||||
sha1: 489cea555cdbe0957a9d31b7ae29b013a1a2525c
|
||||
- filename: Apple II Pascal 1.3 APPLE0_ 680-0282-A.dsk
|
||||
size: 143360
|
||||
md5: 8f01fb2ab2826adf336061c102a7b94d
|
||||
sha1: 58023a7e41623250213b9ab60b47798dcab00031
|
||||
- filename: Apple II Pascal 1.3 APPLE1_ 680-0283-A.dsk
|
||||
size: 143360
|
||||
md5: 4f328d449cb9d34da866bfd9caad7efb
|
||||
sha1: 8bbf47dce65ab672928ac16fe31e883afcf36f8a
|
||||
- filename: Apple II Pascal 1.3 APPLE2_ 680-0284-A.dsk
|
||||
size: 143360
|
||||
md5: 41ed020ea6b1d4c682d9f92cf3b7c770
|
||||
sha1: f46b04bda181cb0b6c79088d0f9efa8dd5b1db83
|
||||
- filename: Apple II Pascal 1.3 APPLE3_ 680-0290-A.dsk
|
||||
size: 143360
|
||||
md5: 88c0f98953b4c7c1cb42ea1d745c518e
|
||||
sha1: 10d2187111a1ccab8ed5b8141db81329e3e30768
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
emulator: jgenesis
|
||||
type: standalone
|
||||
core_classification: other
|
||||
source: "https://github.com/jsgroth/jgenesis"
|
||||
upstream: "https://github.com/jsgroth/jgenesis"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "aba5813336765825e3e96b3059cfe49173c4faa5"
|
||||
core_version: "0.14.0"
|
||||
display_name: "Multi-System (jgenesis)"
|
||||
cores:
|
||||
- jgenesis
|
||||
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
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Multi-system emulator written in Rust by James Groth. One binary covers
|
||||
thirteen hardware modes: Master System, Game Gear, SG-1000, Genesis, Sega CD,
|
||||
32X, Sega CD 32X, NES, SNES, Game Boy, Game Boy Color, Game Boy Advance and
|
||||
PC Engine (frontend/jgenesis-native-driver/src/extensions.rs:172-186).
|
||||
|
||||
No path is hardcoded. Every BIOS, boot ROM and coprocessor ROM is an
|
||||
Option<PathBuf> in the config, defaulting to None and set through a file
|
||||
dialog or the TOML config file (frontend/jgenesis-native-driver/src/config.rs
|
||||
:76-78,95-99,146-159,191-193,205). The emulator identifies these files by
|
||||
size and layout, never by name or hash, so the names below are the ones the
|
||||
dumps circulate under rather than strings read from the source. RetroBat
|
||||
writes bios_CD_U/E/J.bin and gba_bios.bin into the TOML directly
|
||||
(emulatorLauncher/Generators/Jgenesis.Generator.cs:226-229,283-294).
|
||||
|
||||
Sega CD selects the BIOS by disc region and per_region_bios defaults to true,
|
||||
so the US, European and Japanese images are each reachable
|
||||
(frontend/jgenesis-native-driver/src/mainloop/genesis.rs:233-262,
|
||||
frontend/jgenesis-native-config/src/genesis.rs:115). Setting "Use US BIOS for
|
||||
all regions" collapses all three onto the US slot.
|
||||
|
||||
SNES coprocessor ROMs use the merged layout, program ROM followed by data ROM
|
||||
in one file, not the split .program.rom / .data.rom pair. Program ROM
|
||||
endianness is auto-detected from the first four opcodes, so either byte order
|
||||
of a given dump loads (backend/snes-coprocessors/src/upd77c25.rs:382-390,405-419).
|
||||
There is one DSP slot for DSP-1: guess_dsp_variant only returns Dsp1, Dsp2,
|
||||
Dsp3 or Dsp4, and DSP-1B titles fall through to the DSP-1 slot
|
||||
(backend/snes-core/src/memory/cartridge.rs:926-936). None of the seven chips
|
||||
has an HLE implementation, so an affected game refuses to load when its slot
|
||||
is empty.
|
||||
|
||||
32X needs no user file. The two SH-2 boot ROMs and the 68000 vector table are
|
||||
compiled into the binary (backend/s32x-core/src/bootrom.rs:3-6). A Sega CD
|
||||
BIOS is only consulted when the hardware mode is Sega CD or Sega CD 32X.
|
||||
|
||||
NES, SG-1000 and PC Engine need no BIOS. PC Engine has no CD-ROM² support, so
|
||||
no System Card is involved. CX4, SA-1, S-DD1, SPC7110, Super FX, OBC1 and the
|
||||
S-RTC are emulated from cartridge data alone and take no firmware file.
|
||||
|
||||
Written by the emulator, not obtained: save files, save states, the per-game
|
||||
cheats TOML in its own serde format (frontend/jgenesis-native-config/src/lib.rs
|
||||
:215,244-275) and the config file itself. The GUI exports a palette to
|
||||
nespalette.pal (frontend/jgenesis-gui/src/app/nes.rs:428-430). portable.txt is
|
||||
tested for existence only, to keep the settings beside the executable
|
||||
(frontend/jgenesis-native-config/src/paths.rs:57-64).
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Sega CD
|
||||
# -------------------------------------------------------
|
||||
- name: "bios_CD_U.bin"
|
||||
system: sega-megacd
|
||||
description: "Sega CD BIOS (US)"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 131072
|
||||
validation: [size]
|
||||
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)"
|
||||
note: "Selected when the disc region is Americas, and for every region when per_region_bios is off."
|
||||
|
||||
- name: "bios_CD_E.bin"
|
||||
system: sega-megacd
|
||||
description: "Mega CD BIOS (Europe)"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 131072
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:256-262 (eu_bios_path), backend/segacd-core/src/api.rs:77-79"
|
||||
|
||||
- name: "bios_CD_J.bin"
|
||||
system: sega-megacd
|
||||
description: "Mega CD BIOS (Japan)"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 131072
|
||||
validation: [size]
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:256-262 (jp_bios_path), backend/segacd-core/src/api.rs:77-79"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Advance
|
||||
# -------------------------------------------------------
|
||||
- name: "gba_bios.bin"
|
||||
system: nintendo-gba
|
||||
description: "Game Boy Advance BIOS"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 16384
|
||||
validation: [size]
|
||||
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)"
|
||||
note: "Every GBA load fails without it. skip_bios_animation only skips the intro, the BIOS is still mapped and read for SWI calls."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# SNES coprocessor firmware (merged program+data layout)
|
||||
# -------------------------------------------------------
|
||||
- name: "dsp1.rom"
|
||||
aliases: ["SNES_dsp1.rom"]
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-1"
|
||||
required: true
|
||||
mode: standalone
|
||||
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"
|
||||
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."
|
||||
|
||||
- name: "dsp2.rom"
|
||||
aliases: ["SNES_dsp2.rom"]
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-2"
|
||||
required: true
|
||||
mode: standalone
|
||||
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"
|
||||
|
||||
- name: "dsp3.rom"
|
||||
aliases: ["SNES_dsp3.rom"]
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-3"
|
||||
required: true
|
||||
mode: standalone
|
||||
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"
|
||||
|
||||
- name: "dsp4.rom"
|
||||
aliases: ["SNES_dsp4.rom"]
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD77C25 firmware for DSP-4"
|
||||
required: true
|
||||
mode: standalone
|
||||
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"
|
||||
|
||||
- name: "st010.rom"
|
||||
aliases: ["SNES_st010.rom"]
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD96050 firmware for ST010"
|
||||
required: true
|
||||
mode: standalone
|
||||
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"
|
||||
note: "0xC000 program plus 0x1000 data. Used by F1 ROC II."
|
||||
|
||||
- name: "st011.rom"
|
||||
aliases: ["SNES_st011.rom"]
|
||||
system: nintendo-snes
|
||||
description: "NEC uPD96050 firmware for ST011"
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 53248
|
||||
source_ref: "backend/snes-core/src/memory/cartridge.rs:298-300 (MissingSt011Rom), :938-943 (Hayazashi Nidan Morita Shougi CRC32 match)"
|
||||
|
||||
- name: "st018.rom"
|
||||
aliases: ["SNES_st018.rom"]
|
||||
system: nintendo-snes
|
||||
description: "ARM firmware for ST018"
|
||||
required: true
|
||||
mode: standalone
|
||||
min_size: 163840
|
||||
validation: [size]
|
||||
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)"
|
||||
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."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Master System / Game Gear
|
||||
# -------------------------------------------------------
|
||||
- name: "bios.sms"
|
||||
system: sega-mastersystem
|
||||
description: "Master System BIOS"
|
||||
required: false
|
||||
mode: standalone
|
||||
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"
|
||||
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."
|
||||
|
||||
- name: "bios.gg"
|
||||
system: sega-gamegear
|
||||
description: "Game Gear BIOS"
|
||||
required: false
|
||||
mode: standalone
|
||||
source_ref: "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122"
|
||||
note: "Read only when gg_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Game Boy / Game Boy Color
|
||||
# -------------------------------------------------------
|
||||
- name: "dmg_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Game Boy boot ROM"
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 256
|
||||
validation: [size]
|
||||
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)"
|
||||
note: "Loaded only when dmg_boot_rom is enabled, off by default. Without it the CPU starts post-boot."
|
||||
|
||||
- name: "cgb_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color boot ROM"
|
||||
required: false
|
||||
mode: standalone
|
||||
min_size: 2048
|
||||
max_size: 2304
|
||||
validation: [size]
|
||||
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)"
|
||||
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."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# NES
|
||||
# -------------------------------------------------------
|
||||
- name: "nes.pal"
|
||||
aliases: ["nespalette.pal"]
|
||||
system: nintendo-nes
|
||||
description: "External NES color palette"
|
||||
required: false
|
||||
mode: standalone
|
||||
min_size: 192
|
||||
max_size: 1536
|
||||
validation: [size]
|
||||
source_ref: "config/nes-config/src/lib.rs:92-109 (NesPalette::read_from), frontend/jgenesis-gui/src/app/nes.rs:407-417"
|
||||
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."
|
||||
@@ -0,0 +1,81 @@
|
||||
emulator: KEGS
|
||||
type: standalone
|
||||
core_classification: other
|
||||
source: "https://kegs.sourceforge.net/"
|
||||
upstream: "https://kegs.sourceforge.net/"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "1.38"
|
||||
display_name: "Apple - Apple IIGS (KEGS)"
|
||||
cores:
|
||||
- kegs
|
||||
systems:
|
||||
- apple-iigs
|
||||
- apple-ii
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Apple IIGS emulator by Kent Dickey, shipped as one zip holding the sources
|
||||
and the KEGSMAC, kegswin.exe and xkegs binaries.
|
||||
|
||||
The system ROM is the only file needed to boot. config_load_roms takes the
|
||||
first name that stats across g_kegs_default_paths (config.c:149-151), which
|
||||
covers the current directory, $HOME, $HOME/Library/KEGS, the executable
|
||||
directory and a Mac bundle Resources directory. g_cfg_rom_path is tried
|
||||
first, then the fixed list (config.c:407-410,1105-1109). ROM size selects
|
||||
the machine, 32 KB for an Apple //e, 128 KB for a ROM 01 IIGS and 256 KB
|
||||
for a ROM 03 IIGS, and any other size is refused (config.c:1136-1153).
|
||||
Without a ROM, KEGS raises its config panel instead of starting
|
||||
(config.c:1110-1115).
|
||||
|
||||
Three ROMs are compiled in. Slot 7 gets the SmartPort PROM literal
|
||||
g_rom_c700[] (config.c:463,1165-1169). Slot 6 gets a Disk II PROM rebuilt
|
||||
at load time, XORed out of the IIGS ROM through g_rom_c600_rom01_diffs[]
|
||||
(config.c:428,1177-1183) or copied from offset 0x600 of a //e ROM
|
||||
(config.c:1172-1176); the IIGS control panel reaches it by setting slot 6
|
||||
to "Your Card". Text uses g_font_array[] from kegsfont.h (video.c:272-273,
|
||||
prepared at sim65816.c:667).
|
||||
|
||||
Slots 1 to 5 and slot 7 carry empty name lists (config.c:413-417,420), so
|
||||
slot 6 is the only slot that reads a card ROM from disk.
|
||||
|
||||
config.kegs carries the disk assignments and the battery RAM, and KEGS
|
||||
creates it when none is found (config.c:638-672).
|
||||
|
||||
files:
|
||||
- name: ROM
|
||||
aliases: [ROM.01, ROM.03, APPLE2GS.ROM, APPLE2GS.ROM2, xgs.rom, XGS.ROM, Rom03gd, 342-0077-b]
|
||||
required: true
|
||||
description: "Apple IIGS system ROM"
|
||||
validation: [size]
|
||||
source_ref: "config.c:135,407-410,1096-1161"
|
||||
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.
|
||||
|
||||
- name: c600.rom
|
||||
aliases: [controller.rom, disk.rom, DISK.ROM, diskII.prom]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
min_size: 256
|
||||
validation: [size]
|
||||
description: "Disk II controller PROM for slot 6"
|
||||
source_ref: "config.c:418-419,1192-1224"
|
||||
note: >
|
||||
Replaces the built-in PROM. The first 256 bytes are read into slot 6
|
||||
and a shorter file is rejected.
|
||||
|
||||
- name: "<charrom>"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
min_size: 4096
|
||||
validation: [size]
|
||||
description: "ROMX-compatible character ROM"
|
||||
source_ref: "config.c:136-137,259-276,1070-1093"
|
||||
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.
|
||||
@@ -0,0 +1,60 @@
|
||||
emulator: lightspark
|
||||
type: standalone
|
||||
core_classification: game_engine
|
||||
source: "https://github.com/lightspark/lightspark"
|
||||
upstream: "https://github.com/lightspark/lightspark"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "d51ab60193b7baa56b2f6ec55f9a7789f99f6ee9"
|
||||
core_version: "0.9.0"
|
||||
display_name: "Adobe Flash (Lightspark)"
|
||||
cores:
|
||||
- lightspark
|
||||
systems:
|
||||
- flash
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Open source implementation of the Flash player, playing SWF files of any
|
||||
ActionScript version, as a standalone application or as a browser plugin. The
|
||||
ActionScript built-in classes are implemented in C++ under src/scripting/flash,
|
||||
so no external class library is read. ES-DE runs the binary as
|
||||
`lightspark --fullscreen <rom>`, Batocera as
|
||||
`lightspark -fs -s local-with-networking <rom>` off a 0.8.7 pin.
|
||||
|
||||
Startup reads nothing. The two GLSL shaders sit in the tree as
|
||||
src/lightspark.frag and src/lightspark.vert but the preprocessor pulls them
|
||||
into string literals, "directly include shader source to avoid filesystem
|
||||
access" (src/backends/rendering.cpp:1042-1045,1062-1065), which is also how
|
||||
0.8.7 builds them. The face given to nanoVG for text is Roboto Medium, decoded
|
||||
at runtime from a base85 array in the binary (src/launcher.cpp:1567,
|
||||
src/platforms/engineutils.cpp:500-502), and the launcher icon face is embedded
|
||||
the same way (src/launcher.cpp:1094-1096,1333).
|
||||
resources/openfonticons/OpenFontIcons.ttf and resources/ErrorConstants.xml are
|
||||
build inputs, the second feeding the errorconstants.{h,cpp} generator
|
||||
(tools/errorgen:20).
|
||||
|
||||
Fonts named by the content go through fontconfig, which answers with whatever
|
||||
face the host has installed: FcFontMatch then FcPatternGetString(FC_FILE) hands
|
||||
a path straight to nvgCreateFont (src/backends/cachedsurface.cpp:135-156). No
|
||||
name, path, size or hash is fixed anywhere, README:27-30 marks fontconfig
|
||||
itself optional, and an unmatched family leaves nanoVGFontID at -1 and falls
|
||||
back to the embedded face.
|
||||
|
||||
dataFileRead is the only reader of LS_DATADIR and has no callers, at this
|
||||
commit and at 0.8.7 (src/parsing/textfile.cpp:74-106). fontPath holds
|
||||
"TimesNewRoman.ttf" on Windows (src/backends/rendering.cpp:102) but reaches
|
||||
only cairo_select_font_face, which takes a family name rather than a path, and
|
||||
only under ENABLE_CAIRO (src/backends/rendering.cpp:1277), left FALSE by
|
||||
CMakeLists.txt.
|
||||
|
||||
Files the player writes rather than expects: lightspark.conf, an INI carrying
|
||||
the cache directory and prefix whose absence leaves the hardcoded defaults
|
||||
(src/backends/config.cpp:82-115), launcher.xml holding the recent entries
|
||||
(src/launcher.cpp:1299-1310), and .sol SharedObjects under the data directory
|
||||
(src/platforms/engineutils.cpp:849-914). application.xml, extension.xml and the
|
||||
library.swf files under META-INF/AIR/extensions belong to the AIR package being
|
||||
run (src/main.cpp:149, src/platforms/engineutils.cpp:785-800), and
|
||||
crossdomain.xml is fetched from remote hosts
|
||||
(src/backends/security.cpp:353,1025).
|
||||
|
||||
files: []
|
||||
@@ -0,0 +1,113 @@
|
||||
emulator: Lime3DS
|
||||
type: standalone
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/Lime3DS/lime3ds-archive"
|
||||
upstream: "https://github.com/Lime3DS/lime3ds-archive"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "c9dbb5bb40d90dfa6a2b085d152ae6ecf915b2f9"
|
||||
core_version: "2119.1"
|
||||
display_name: "Nintendo - 3DS (Lime3DS)"
|
||||
cores:
|
||||
- lime3ds
|
||||
- lime3ds-gui
|
||||
- lime-qt
|
||||
systems:
|
||||
- nintendo-3ds
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Fork of Citra, discontinued at 2119.1. Data dir: lime3ds-emu on Linux,
|
||||
Lime3DS on Windows and macOS, with citra-emu and Citra kept as legacy
|
||||
locations. External files live in sysdata/ and nand/.
|
||||
ref: src/common/common_paths.h:18-32, src/common/file_util.cpp:834-835
|
||||
|
||||
InitKeys reads boot9.bin then aes_keys.txt. Encrypted content needs one of
|
||||
the two files.
|
||||
ref: src/core/hw/aes/key.cpp:313-322
|
||||
|
||||
System archives (shared font, Mii data, country list, bad word list) have
|
||||
open-source replacements embedded in the binary.
|
||||
ref: src/core/file_sys/archive_ncch.cpp:144-170
|
||||
|
||||
The embedded shared font only covers title low ID 0x00014002. CHN, KOR and
|
||||
TWN resolve to 0x00014102, 0x00014202 and 0x00014302, which fall through to
|
||||
shared_font.bin and then to ErrorSystemFiles.
|
||||
ref: src/core/hle/service/apt/apt.cpp:213, src/core/hle/service/apt/apt.cpp:284-290
|
||||
|
||||
ClCertA is decrypted from the NAND archive with the KeySlot 0x0D normal key,
|
||||
and HTTPS requests stay unauthenticated when either is unavailable.
|
||||
ref: src/core/hle/service/http/http_c.cpp:1963-1999
|
||||
|
||||
System titles are downloaded and installed in-app from the Nintendo CDN, so
|
||||
the NAND title tree is not user-supplied.
|
||||
ref: src/core/nus_download.cpp:13, src/core/hle/service/am/am.cpp:536
|
||||
|
||||
DumpKeys.gm9, a GodMode9 script producing aes_keys.txt and seeddb.bin, ships
|
||||
in the tree.
|
||||
ref: dist/dumpkeys/README.md
|
||||
|
||||
sector0x96.bin is defined but read by no code path.
|
||||
ref: src/common/common_paths.h:70
|
||||
|
||||
mcu.dat holds per-installation MCU state that the emulator writes itself when
|
||||
the file is absent.
|
||||
ref: src/core/hle/service/cfg/cfg.cpp:734-756
|
||||
|
||||
files:
|
||||
- name: aes_keys.txt
|
||||
path: sysdata/aes_keys.txt
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "key slots, common keys, DLP and NFC key Ys and NFC secrets, one per line"
|
||||
source_ref: "src/core/hw/aes/key.cpp:206-309, src/common/common_paths.h:68"
|
||||
|
||||
- name: boot9.bin
|
||||
path: sysdata/boot9.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 65536
|
||||
validation: [size]
|
||||
note: "AES key section read at offset 55760, RSA modulus and exponent at 0xB3E0 and 0xB4E0"
|
||||
source_ref: "src/core/hw/aes/key.cpp:135-204, src/core/hw/rsa/rsa.cpp:49-80"
|
||||
|
||||
- name: shared_font.bin
|
||||
path: sysdata/shared_font.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "legacy path, tried after the shared font system archive; decompressed BCFNT with the 0x80 byte APT header"
|
||||
source_ref: "src/core/hle/service/apt/apt.cpp:254-270, src/core/hle/service/apt/apt.cpp:276-291"
|
||||
|
||||
- name: seeddb.bin
|
||||
path: sysdata/seeddb.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "game seed database for 9.6+ titles; an empty database is written when the file is absent"
|
||||
source_ref: "src/core/file_sys/seed_db.cpp:12-58"
|
||||
|
||||
- name: CTCert.bin
|
||||
path: sysdata/CTCert.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 384
|
||||
validation: [size]
|
||||
note: "console client certificate; signature type must be 0x010005 and the issuer one of the two Nintendo CA G3 strings"
|
||||
source_ref: "src/core/hle/service/am/am.cpp:2427-2454, src/core/hle/service/am/am.cpp:83-93, src/core/hle/service/am/am.h:95"
|
||||
|
||||
- name: SecureInfo_A
|
||||
path: nand/rw/sys/SecureInfo_A
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 273
|
||||
validation: [size]
|
||||
note: "console region and serial number; loaded on a size check alone"
|
||||
source_ref: "src/core/hle/service/cfg/cfg.cpp:689-709, src/core/hle/service/cfg/cfg.h:180-186"
|
||||
|
||||
- name: LocalFriendCodeSeed_B
|
||||
path: nand/rw/sys/LocalFriendCodeSeed_B
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 272
|
||||
validation: [size]
|
||||
note: "friend code generation seed; loaded on a size check alone"
|
||||
source_ref: "src/core/hle/service/cfg/cfg.cpp:711-732, src/core/hle/service/cfg/cfg.h:188-193"
|
||||
@@ -0,0 +1,255 @@
|
||||
emulator: LinApple
|
||||
type: standalone
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/linappleii/linapple"
|
||||
upstream: "https://github.com/AppleWin/AppleWin"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "b7a26b46773996130a602b9ac7ac2ebeae5c0b11"
|
||||
core_version: "2.3.0"
|
||||
display_name: "Apple - Apple II (LinApple)"
|
||||
cores:
|
||||
- linapple
|
||||
systems:
|
||||
- apple-ii
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
SDL port of AppleWin for Linux. The tree was taken off SourceForge by
|
||||
maxolasersquad, forked further by several users, and now sits under the
|
||||
linappleii namespace (README.md:8-22). Machine types are Apple ][,
|
||||
Apple ][+, Apple //e and Enhanced Apple //e.
|
||||
|
||||
Every ROM is compiled into the binary as a C string literal. MemInitialize
|
||||
picks one of four system ROM arrays by g_Apple2Type and copies it into
|
||||
memrom, splitting off the first 4 KB as internal Cx ROM for the two //e
|
||||
types (Memory.cpp:1012-1052). The four IDR_APPLE2*_ROM macros defined just
|
||||
above that switch hold .rom filenames and are never referenced. Peripheral
|
||||
firmware is embedded the same way and installed by MemInitialize: parallel
|
||||
printer in slot 1, Super Serial Card in slot 2, mouse in slot 4, Disk II in
|
||||
slot 6, hard disk in slot 7 (Memory.cpp:1057-1062). Slot 4 is filled only
|
||||
when g_Slot4 is CT_MouseInterface, slot 7 only when the hard disk is
|
||||
enabled (Harddisk.cpp:279-281).
|
||||
|
||||
Character generators are res/charset40*.png, converted to XPM arrays by the
|
||||
Makefile and included at Video.cpp:43-47. One of five is chosen from the
|
||||
machine type and g_KeyboardLanguage (Video.cpp:1264-1291). The window icon,
|
||||
status font and splash screen are XPM arrays as well (asset.cpp:29-31,61-75).
|
||||
|
||||
Master.dsk is the only data file the emulator searches for. Path::FindDataFile
|
||||
walks ~/.local/share/linapple, the XDG config directory, the executable
|
||||
directory, the compiled-in ASSET_DIR and the two share paths
|
||||
(Util_Path.h:43-68). ImageOpen rejects an image that no format detector
|
||||
claims, and for a .dsk the detector that runs first is DoDetect, which gates
|
||||
on file size (DiskImage.cpp:424-427,977-1034).
|
||||
|
||||
The debugger reads its symbol tables through g_sProgramDir, a buffer declared
|
||||
empty at Applewin.cpp:87 and never assigned anywhere in the tree, so the
|
||||
names resolve against the working directory. g_sFileNameSymbols lists nine
|
||||
tables (Debugger_Symbols.cpp:48-58) and DebugInitialize preloads three with
|
||||
missing-file reporting suppressed (Debug.cpp:8676-8696); the other six load
|
||||
from the matching SYM command. A table that is absent leaves the debugger
|
||||
running without its symbols (Debugger_Symbols.cpp:576-584).
|
||||
|
||||
linapple.conf carries preferences only, and is searched over ./, the XDG
|
||||
config and data directories, every $XDG_CONFIG_DIRS entry and /etc
|
||||
(Applewin.cpp:803-815). Each accessor returns a compiled-in default when a
|
||||
key is missing (Registry.cpp:87-116), and Configuration::Save is compiled
|
||||
out unless REGISTRY_WRITEABLE is defined (Registry.cpp:63-85).
|
||||
|
||||
files:
|
||||
- name: Master.dsk
|
||||
required: false
|
||||
description: "Boot floppy inserted into slot 6 drive 1 at startup"
|
||||
min_size: 143105
|
||||
max_size: 143364
|
||||
validation: [size]
|
||||
source_ref: "asset.cpp:33,101-128; Applewin.cpp:626-633; DiskImage.cpp:424-427"
|
||||
note: >
|
||||
Inserted only when the Slot 6 Autoload preference is off; when it is on,
|
||||
the two configured disk images are loaded instead. Asset_FindMasterDisk
|
||||
prints a warning and returns 255 when no search path holds the file, and
|
||||
the emulator starts with an empty drive. No hash or content check is
|
||||
performed. DoDetect also accepts the discrete sizes 143403 and 143488 for
|
||||
DOS-order images. LinApple and Batocera ship different images under this
|
||||
name, both 143360 bytes.
|
||||
|
||||
- name: APPLE2E.SYM
|
||||
required: false
|
||||
description: "Debugger symbol table for the main ROM"
|
||||
source_ref: "Debugger_Symbols.cpp:49,553-584,751-767; Debug.cpp:8679-8680"
|
||||
note: >
|
||||
Preloaded into the Main table when the debugger initialises. Parsed as
|
||||
text lines of address and symbol name, with no size or hash check.
|
||||
|
||||
- name: A2_BASIC.SYM
|
||||
required: false
|
||||
description: "Debugger symbol table for Applesoft BASIC"
|
||||
source_ref: "Debugger_Symbols.cpp:50,553-584,751-767; Debug.cpp:8682-8683"
|
||||
note: >
|
||||
Preloaded into the Basic table when the debugger initialises. Parsed as
|
||||
text lines of address and symbol name, with no size or hash check.
|
||||
|
||||
analysis:
|
||||
embedded_roms:
|
||||
mechanism: "C string literals compiled into the binary, installed with memcpy"
|
||||
extraction: "hashes computed from the decoded hex-escape literals"
|
||||
|
||||
system_roms:
|
||||
- symbol: Apple2_rom
|
||||
machine: "Apple ]["
|
||||
machine_type: A2TYPE_APPLE2
|
||||
source_ref: "inc/resource.h:3; Memory.cpp:1015-1018"
|
||||
size: 12288
|
||||
md5: 3c406514b9806a7c57ee65fb0b0c39b4
|
||||
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
|
||||
|
||||
- symbol: Apple2plus_rom
|
||||
machine: "Apple ][+"
|
||||
machine_type: A2TYPE_APPLE2PLUS
|
||||
source_ref: "inc/resource.h:774; Memory.cpp:1019-1022"
|
||||
size: 12288
|
||||
md5: 572b3005a4fa49bc54917b069b82c1ab
|
||||
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
|
||||
|
||||
- symbol: Apple2e_rom
|
||||
machine: "Apple //e"
|
||||
machine_type: A2TYPE_APPLE2E
|
||||
source_ref: "inc/resource.h:1545; Memory.cpp:1023-1026"
|
||||
size: 16384
|
||||
md5: 346bc782c6a08a531c460e33bc03daf4
|
||||
sha1: 61fa9254628e5bb7236fb474006116d67684d747
|
||||
note: "First 4 KB loaded as internal Cx ROM, remaining 12 KB at $D000"
|
||||
|
||||
- symbol: Apple2eEnhanced_rom
|
||||
machine: "Enhanced Apple //e"
|
||||
machine_type: A2TYPE_APPLE2EEHANCED
|
||||
source_ref: "inc/resource.h:2573; Memory.cpp:1027-1030"
|
||||
size: 16384
|
||||
md5: 38063e08c778503fc03ecebb979769e9
|
||||
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
|
||||
note: "First 4 KB loaded as internal Cx ROM, remaining 12 KB at $D000"
|
||||
|
||||
peripheral_firmware:
|
||||
- symbol: Parallel_bin
|
||||
device: "Parallel printer card"
|
||||
slot: 1
|
||||
source_ref: "src/ParallelPrinter.cpp:33,61-65"
|
||||
size: 256
|
||||
md5: 5902996f16dc78fc013f6e1db14805b3
|
||||
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
|
||||
|
||||
- symbol: SSC_rom
|
||||
device: "Super Serial Card"
|
||||
slot: 2
|
||||
source_ref: "src/SerialComms.cpp:53,774-794"
|
||||
size: 2048
|
||||
md5: 67c0d61ab0911183faf05270f881a97e
|
||||
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
|
||||
note: "Slot firmware taken from offset 0x700, full 2 KB kept as expansion ROM"
|
||||
|
||||
- symbol: MouseInterface_rom
|
||||
device: "Mouse interface card"
|
||||
slot: 4
|
||||
source_ref: "src/MouseInterface.cpp:39,207-224"
|
||||
size: 2048
|
||||
md5: 22563ab338024dac7b03510371d49c57
|
||||
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
|
||||
note: "Installed only when g_Slot4 is CT_MouseInterface"
|
||||
|
||||
- symbol: Disk2_rom
|
||||
device: "Disk II controller, 16 sector"
|
||||
slot: 6
|
||||
source_ref: "src/Disk.cpp:44,832-846"
|
||||
size: 256
|
||||
md5: 2020aa1413ff77fe29353f3ee72dc295
|
||||
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
||||
note: "Three bytes at $C64C are patched after the copy to drop a wait routine"
|
||||
|
||||
- symbol: Hddrvr_dat
|
||||
device: "Hard disk controller"
|
||||
slot: 7
|
||||
source_ref: "src/Harddisk.cpp:108,279-288"
|
||||
size: 256
|
||||
md5: 9e5b56c2daf2a10bd8fd76db60273e08
|
||||
sha1: b2430836d5fedb11ae9a680f14dedef0d41ed92e
|
||||
note: "Installed only when the hard disk is enabled. Differs from the firmware carried by current AppleWin"
|
||||
|
||||
character_generators:
|
||||
mechanism: "PNG converted to XPM by the Makefile, included at Video.cpp:43-47"
|
||||
selection: "machine type, then g_KeyboardLanguage (Video.cpp:1264-1291)"
|
||||
accepted_geometry: "128x128, or 128x256 for the Euro ROMs carrying a second language"
|
||||
images:
|
||||
- filename: charset40.png
|
||||
used_for: "Apple //e and Enhanced //e, English (US)"
|
||||
size: 2745
|
||||
md5: c6029ef4d4fa272083769673bdcf2b6c
|
||||
sha1: d79aa8af6446c3637401cb75ffdda92fdf7f3853
|
||||
- filename: charset40_IIplus.png
|
||||
used_for: "Apple ][ and Apple ][+"
|
||||
size: 1956
|
||||
md5: 2104f293d5df7137fdd579ea405da847
|
||||
sha1: bc9aa5cbadfcffe82b5b20ce954555b9d07fa260
|
||||
- filename: charset40_british.png
|
||||
used_for: "English (UK)"
|
||||
size: 5300
|
||||
md5: aa001ec528e3c6c472d02cbb09c5b365
|
||||
sha1: ac363e069b40658f86ccd1e2d57438db732dbc84
|
||||
- filename: charset40_french.png
|
||||
used_for: "French (FR)"
|
||||
size: 5330
|
||||
md5: f163ec67c91501b604ca349afef93fc3
|
||||
sha1: 5b454a2e7194863df3a997cc21e7ea6d61eb61d7
|
||||
- filename: charset40_german.png
|
||||
used_for: "German (DE)"
|
||||
size: 5290
|
||||
md5: 4d8ab9d3f15ee19d9e62c1f163df7e48
|
||||
sha1: f86bd5238604247e04d616850f244b489daef18d
|
||||
|
||||
symbol_tables:
|
||||
source_ref: "src/Debugger/Debugger_Symbols.cpp:48-58"
|
||||
lookup: "g_sProgramDir + filename, and g_sProgramDir is never assigned"
|
||||
preloaded_at_init:
|
||||
- APPLE2E.SYM
|
||||
- A2_BASIC.SYM
|
||||
- A2_USER1.SYM
|
||||
loaded_on_command:
|
||||
- A2_ASM.SYM
|
||||
- A2_USER2.SYM
|
||||
- A2_SRC1.SYM
|
||||
- A2_SRC2.SYM
|
||||
- A2_DOS33.SYM
|
||||
- A2_PRODOS.SYM
|
||||
note: >
|
||||
Only APPLE2E.SYM and A2_BASIC.SYM are distributed with the emulator and
|
||||
copied to the build output by the Makefile (:98-99,205-206). The user
|
||||
slots and the remaining tables have no shipped counterpart.
|
||||
|
||||
debugger_scripts:
|
||||
- filename: DebuggerAutoRun.txt
|
||||
source_ref: "src/Debugger/Debug.cpp:8745-8755"
|
||||
note: >
|
||||
Run once through CmdOutputRun when the debugger first initialises, with
|
||||
g_bReportMissingScripts cleared so absence is silent. Holds debugger
|
||||
commands written by the user and has no counterpart in the source tree.
|
||||
|
||||
generated_files:
|
||||
written_only:
|
||||
- AppleWin.log
|
||||
- Profile.txt
|
||||
- Trace.txt
|
||||
- AppleWin_Text40.txt
|
||||
- AppleWin_Text80.txt
|
||||
- "save states"
|
||||
- "printer spool file"
|
||||
- "FTP directory cache"
|
||||
written_and_read_back:
|
||||
- LinAppleDebugger.cfg
|
||||
note: "Produced by the emulator, none is user-supplied"
|
||||
|
||||
unused_resources:
|
||||
- filename: font.bmp
|
||||
reason: "Asset_LoadBMP (asset.cpp:37-51) has no call sites and is not declared in asset.h"
|
||||
- filename: icon.bmp
|
||||
reason: "Asset_LoadBMP (asset.cpp:37-51) has no call sites and is not declared in asset.h"
|
||||
- filename: fixedsys-excelsior-regular.ttf
|
||||
reason: "no TTF symbol in the tree and no SDL_ttf in the Makefile link line"
|
||||
@@ -0,0 +1,238 @@
|
||||
emulator: Lindbergh Loader
|
||||
type: standalone
|
||||
core_classification: embedded_hle
|
||||
source: "https://github.com/lindbergh-loader/lindbergh-loader"
|
||||
upstream: "https://github.com/lindbergh-loader/lindbergh-loader"
|
||||
source_commit: "0af606d845b70339c335785c0eba68b47b78df3c"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "2.1.4"
|
||||
display_name: "Sega - Lindbergh (Lindbergh Loader)"
|
||||
cores:
|
||||
- lindbergh-loader
|
||||
systems:
|
||||
- sega-lindbergh
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Runs the original Sega Lindbergh game binaries on Linux, built and executed
|
||||
as 32-bit x86. The launcher picks the game ELF, exports
|
||||
LD_PRELOAD=lindbergh.so and an
|
||||
LD_LIBRARY_PATH covering the loader directory, the original directory, the
|
||||
game directory and ".:lib:../lib", then system()s the ELF
|
||||
(lindbergh.c:315-378, 874-929). Platforms invoke it as lindbergh-loader
|
||||
(Batocera package and generator, RetroBat, ES-DE find rule LINDBERGH-LOADER).
|
||||
|
||||
The Lindbergh hardware is emulated inside lindbergh.so with no external
|
||||
firmware. Hooked open() and fopen() redirect /dev/lbb (baseboard), /dev/i2c/0
|
||||
(eeprom), /dev/ttyS0 and /dev/ttyS1 (drive, ride, motion boards and card
|
||||
reader), /proc/bus/pci/01/00.0 and /proc/bus/pci/00/1f.0 to /dev/zero and
|
||||
answer from code (hook.c:43, 530-615, 641-853). The security board is DIP
|
||||
switches and test/service lines computed in securityBoard.c:98-140, with no
|
||||
keychip dump. eeprom.bin and sram.bin are created on first run and their
|
||||
contents synthesised: eepromSettings.c builds every amSysDataRecord section
|
||||
from constants and recomputes the CRCs (eeprom.c:33-48, baseBoard.c:60-74,
|
||||
eepromSettings.c:24-120). Card_01.crd and Card_02.crd are written from a
|
||||
56-byte header held in the binary (cardReader.c:227-247). lindbergh.ini and
|
||||
controls.ini are optional; both fall back to compiled-in defaults and can be
|
||||
emitted with --create (config.c:510-516, sdlInput.c:790-795).
|
||||
|
||||
The one hard external dependency is the NVIDIA Cg runtime. findLibCg() checks
|
||||
LIBCG_PATH from the ini, then /app/lib32/libCg2.so, $APP_IMG_ROOT/usr/lib32/
|
||||
libCg2.so, ./libCg.so and $LINDBERGH_LOADER_CURRENT_DIR/libCg.so, and exits
|
||||
when none is present (shaderPatches.c:1028-1108). Cg 3.1 is a separate
|
||||
requirement: the game ELFs link libCg.so and libCgGL.so, which upstream
|
||||
vendors as libs/Cg-3.1.zip and installs into the runtime library directory
|
||||
(scripts/appimage/make-appimage.sh,
|
||||
scripts/flatpak/com.github.lindberghloader.yml:181-189, 242-245). Batocera
|
||||
copies per-game Cg variants into the ROM directory
|
||||
(lindberghGenerator.py:1027-1050).
|
||||
|
||||
Shaders come from the game dump, not from the loader. cacheModedShaderFiles()
|
||||
reads ../fs/shader and /data/Shader relative to the ELF, patches the Cg
|
||||
source and serves the result back through the fopen, fread and ftell hooks
|
||||
(shaderCache.c:474-488, 555-678, hook.c:778-808, 1140-1212).
|
||||
|
||||
Boot logos and console fonts were user-supplied until 2.0.1, which added
|
||||
built-in copies compiled into lindbergh.so and served from
|
||||
resources/logo.h and resources/font.h. The originals are read only when
|
||||
DISABLE_BUILTIN_LOGOS or DISABLE_BUILTIN_FONT is set, from the game
|
||||
directory (hook.c:655-744, 874-926, fread hook at 1159-1181). Batocera
|
||||
exposes both switches as ORIGINAL LOGOS and ORIGINAL FONTS.
|
||||
|
||||
Custom cursors and crosshairs load from arbitrary ini paths with no default
|
||||
name and no built-in image (crossHair.c:142-186, customCursor.c:26-33).
|
||||
|
||||
files:
|
||||
# -- NVIDIA Cg runtime --
|
||||
|
||||
- name: libCg2.so
|
||||
system: sega-lindbergh
|
||||
required: true
|
||||
validation: [signature]
|
||||
description: "NVIDIA Cg 2.0.0.12 runtime used to recompile the game shaders"
|
||||
source_ref: "shaderPatches.c:1028-1108, 1110-1170"
|
||||
note: >-
|
||||
Searched at LIBCG_PATH, /app/lib32/libCg2.so, $APP_IMG_ROOT/usr/lib32/
|
||||
libCg2.so, then ./libCg.so and $LINDBERGH_LOADER_CURRENT_DIR/libCg.so. The
|
||||
loader reads 8 bytes at offset 0x226d84 and requires exactly "2.0.0.12";
|
||||
a missing file, a different version string or a failed dlopen of
|
||||
cgCreateContext, cgCreateProgram, cgGetProgramString, cgDestroyContext or
|
||||
cgDestroyProgram each call exit(EXIT_FAILURE). Upstream vendors the build
|
||||
as libs/libCg.so and both installers rename it to libCg2.so so it can sit
|
||||
beside the Cg 3.1 library of the same original name that the games link.
|
||||
|
||||
- name: libCgGL.so
|
||||
system: sega-lindbergh
|
||||
required: true
|
||||
description: "NVIDIA Cg 3.1 OpenGL runtime linked by the game binaries"
|
||||
source_ref: "lindbergh.c:336-378, scripts/flatpak/com.github.lindberghloader.yml:181-189"
|
||||
note: >-
|
||||
Resolved by the dynamic linker for the game ELF through the
|
||||
LD_LIBRARY_PATH the launcher builds, not opened by loader code. Upstream
|
||||
takes it from Cg-3.1_April2012_x86.tgz and ships it in libs/Cg-3.1.zip.
|
||||
Game dumps generally carry their own copy in the game directory, so the
|
||||
Batocera generator only writes one when the file is absent or differs.
|
||||
|
||||
- name: libCg.so
|
||||
system: sega-lindbergh
|
||||
required: true
|
||||
description: "NVIDIA Cg 3.1 runtime linked by the game binaries"
|
||||
source_ref: "lindbergh.c:336-378, scripts/flatpak/com.github.lindberghloader.yml:181-189"
|
||||
note: >-
|
||||
Same origin and mechanism as libCgGL.so, and a different build from the
|
||||
2.0.0.12 library the shader recompiler loads. Batocera keeps the two Cg
|
||||
generations apart as libCg.so.harley and libCg.so.other and copies the
|
||||
matching pair into the ROM directory per game, overwriting the dump's own
|
||||
copy for the titles where it renders shadows and textures incorrectly.
|
||||
|
||||
# -- Lindbergh system libraries kept out of current distributions --
|
||||
|
||||
- name: libcrypto.so.0.9.7
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
description: "OpenSSL 0.9.7 crypto library linked by the networked games"
|
||||
source_ref: "lindbergh.c:336-378, scripts/flatpak/com.github.lindberghloader.yml:244"
|
||||
note: >-
|
||||
Vendored as libs/libcrypto.so.0.9.7 and installed into the runtime library
|
||||
directory by both the AppImage and Flatpak builds. Resolved by the dynamic
|
||||
linker for the game ELF.
|
||||
|
||||
- name: libssl.so.0.9.7
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
description: "OpenSSL 0.9.7 TLS library linked by the networked games"
|
||||
source_ref: "lindbergh.c:336-378, scripts/flatpak/com.github.lindberghloader.yml:245"
|
||||
note: "Vendored as libs/libssl.so.0.9.7, paired with libcrypto.so.0.9.7."
|
||||
|
||||
- name: libopenal.so.0
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
description: "OpenAL runtime preloaded for Quiz Answer x Answer"
|
||||
source_ref: "lindbergh.c:22, 315-328, 882-890"
|
||||
note: >-
|
||||
When the ELF is q2satl_lind the launcher looks the file up through
|
||||
findPreloadLibrary and appends it to LD_PRELOAD. Absence prints "You might
|
||||
not get sound because libopenal.so.0 was not found" and the game still
|
||||
runs. Vendored as libs/libopenal.so.0.
|
||||
|
||||
# -- Lindbergh boot program --
|
||||
|
||||
- name: segaboot
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
crc32: "38d56318"
|
||||
validation: [crc32]
|
||||
description: "Sega Lindbergh boot and hardware check program, version 2.4"
|
||||
source_ref: "lindbergh.c:696-698, 892-895, config.h:57-58, gameData.c:51-52"
|
||||
note: >-
|
||||
Run as "segaboot -t" under -s or --segaboot. detectGame() matches the
|
||||
ELF CRC32 against the table, where 0x38d56318 is Segaboot 2.4 and
|
||||
0xa518b18b the build carrying symbols. The comparison drives
|
||||
identification only: an unknown CRC logs a warning and startup continues.
|
||||
SEGABOOT 0x0027 and SEGABOOT_2_6 0x0030 in config.h are placeholders, not
|
||||
checksums, and no table entry uses them.
|
||||
|
||||
# -- Lindbergh boot assets, replaced by built-in copies since 2.0.1 --
|
||||
|
||||
- name: logo.tga
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
hle_fallback: true
|
||||
description: "Lindbergh boot logo, read from /usr/lib/boot on the original system"
|
||||
source_ref: "hook.c:655-667, 888-900"
|
||||
note: >-
|
||||
Read from the game directory only when DISABLE_BUILTIN_LOGOS is set.
|
||||
Otherwise the logoLL array in resources/logo.h answers the read.
|
||||
|
||||
- name: logo_red.tga
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
hle_fallback: true
|
||||
description: "Lindbergh Red boot logo, read from /usr/lib/boot on the original system"
|
||||
source_ref: "hook.c:669-681, 874-886"
|
||||
note: >-
|
||||
Read from the game directory only when DISABLE_BUILTIN_LOGOS is set.
|
||||
Otherwise the logoLLRed array in resources/logo.h answers the read.
|
||||
|
||||
- name: SEGA_KakuGothic-DB-Roman_12.tga
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
hle_fallback: true
|
||||
description: "Sega Kaku Gothic console font texture"
|
||||
source_ref: "hook.c:718-730, 902-914"
|
||||
note: >-
|
||||
Read from the game directory only when DISABLE_BUILTIN_FONT is set.
|
||||
Otherwise the fontTGA array in resources/font.h answers the read.
|
||||
|
||||
- name: SEGA_KakuGothic-DB-Roman_12.abc
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
hle_fallback: true
|
||||
description: "Sega Kaku Gothic console font metrics"
|
||||
source_ref: "hook.c:732-744, 916-928"
|
||||
note: >-
|
||||
Read from the game directory only when DISABLE_BUILTIN_FONT is set.
|
||||
Otherwise the fontABC array in resources/font.h answers the read, with
|
||||
ftell returning fontABClen.
|
||||
|
||||
- name: LucidaConsole_12.tga
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
hle_fallback: true
|
||||
description: "Lucida Console font texture"
|
||||
source_ref: "hook.c:683-695"
|
||||
note: >-
|
||||
Read from the game directory only when DISABLE_BUILTIN_FONT is set.
|
||||
Otherwise the fontTGA array in resources/font.h answers the read.
|
||||
|
||||
- name: LucidaConsole_12.abc
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
hle_fallback: true
|
||||
description: "Lucida Console font metrics"
|
||||
source_ref: "hook.c:697-709"
|
||||
note: >-
|
||||
Read from the game directory only when DISABLE_BUILTIN_FONT is set.
|
||||
Otherwise the fontABC array in resources/font.h answers the read.
|
||||
|
||||
# -- Lindbergh runtime configuration --
|
||||
|
||||
- name: lindbergrc
|
||||
system: sega-lindbergh
|
||||
required: false
|
||||
description: "Lindbergh runtime configuration read by the games from /root"
|
||||
source_ref: "hook.c:650-653"
|
||||
note: >-
|
||||
The fopen hook rewrites /root/lindbergrc to lindbergrc in the game
|
||||
directory. The loader neither creates the file nor substitutes for it.
|
||||
|
||||
- name: gamecontrollerdb.txt
|
||||
system: sega-lindbergh
|
||||
category: game_data
|
||||
required: false
|
||||
description: "SDL gamepad mappings added on top of the built-in table"
|
||||
source_ref: "lindbergh.c:415-430, 478, sdlInput.c:209-217"
|
||||
note: >-
|
||||
Loaded from the path given by -d or --controllerdb, passed through the
|
||||
LINDBERGH_CONTROLS_DB_PATH environment variable. The built-in mappings in
|
||||
gameControllerMappings.c load first and remain when no file is supplied.
|
||||
@@ -0,0 +1,123 @@
|
||||
emulator: Mandarine
|
||||
type: standalone
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/ptyfyre/mandarine-neo"
|
||||
upstream: "https://github.com/ptyfyre/mandarine-neo"
|
||||
profiled_date: "2026-08-08"
|
||||
source_commit: "7f8ec960b6183be4350bca099d23ddd9fc7bcaa3"
|
||||
core_version: "1.3.0"
|
||||
display_name: "Nintendo - 3DS (Mandarine)"
|
||||
cores:
|
||||
- mandarine
|
||||
- mandarine-qt
|
||||
systems:
|
||||
- nintendo-3ds
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Citra fork, renamed Mandarine-Neo at release 1.3.0. External files live in
|
||||
sysdata/ and nand/ under the user directory: user/ next to the executable when
|
||||
that directory exists, otherwise Mandarine on Windows and macOS and
|
||||
mandarine-emu on Linux, with Citra and citra-emu kept as legacy locations.
|
||||
ref: src/common/common_paths.h:16-70, src/common/file_util.cpp:770-839
|
||||
|
||||
InitKeys reads boot9.bin then aes_keys.txt. Encrypted content needs one of the
|
||||
two; a ROM without crypto reads neither.
|
||||
ref: src/core/hw/aes/key.cpp:315-324, src/core/file_sys/ncch_container.cpp:200-210
|
||||
|
||||
Failure to derive a key or to find a seed marks the content undecryptable and
|
||||
loading stops with ErrorEncrypted.
|
||||
ref: src/core/file_sys/ncch_container.cpp:219-223, src/core/file_sys/ncch_container.cpp:236-280, src/core/file_sys/ncch_container.cpp:347-349
|
||||
|
||||
System archives resolve to the NAND title tree. Shared font, Mii data, country
|
||||
list and bad word list fall back to open-source replacements built into the
|
||||
binary when the title is absent.
|
||||
ref: src/core/file_sys/archive_ncch.cpp:126-179, externals/open_source_archives/Readme.md
|
||||
|
||||
The embedded shared font only answers title low ID 0x00014002. CHN, KOR and TWN
|
||||
resolve to 0x00014102, 0x00014202 and 0x00014302, which fall through to
|
||||
shared_font.bin and then to ErrorSystemFiles, reported as recoverable.
|
||||
ref: src/core/hle/service/apt/apt.cpp:195-213, src/core/hle/service/apt/apt.cpp:276-291, src/mandarine_qt/main.cpp:3209-3215
|
||||
|
||||
ClCertA is read from NAND title 0x0004001B00010002 and its ctr-common-1-cert.bin
|
||||
and ctr-common-1-key.bin members are decrypted with the KeySlot 0x0D normal key.
|
||||
Both the title and the key slot are needed for authenticated HTTPS.
|
||||
ref: src/core/hle/service/http/http_c.cpp:1963-2036
|
||||
|
||||
System titles are downloaded and installed in-app from the Nintendo CDN, so the
|
||||
NAND title tree is not user-supplied.
|
||||
ref: src/mandarine_qt/configuration/configure_system.cpp:672-678, src/core/hle/service/am/am.cpp:536, src/core/nus_download.cpp:12-13
|
||||
|
||||
DumpKeys.gm9, a GodMode9 script producing aes_keys.txt and seeddb.bin, ships in
|
||||
the tree and documents sysdata/ as their destination.
|
||||
ref: dist/dumpkeys/README.md, dist/dumpkeys/DumpKeys.gm9
|
||||
|
||||
The plugin loader scans sdmc/luma/plugins/<title id>/ for any .3gx file and
|
||||
falls back to sdmc/luma/plugins/default.3gx. Plugins carry no fixed identity.
|
||||
ref: src/core/hle/service/plgldr/plgldr.cpp:112-146
|
||||
|
||||
mcu.dat holds per-installation MCU state that the emulator writes itself when
|
||||
the file is absent or carries the wrong magic.
|
||||
ref: src/core/hle/service/cfg/cfg.cpp:734-756, src/core/hle/service/cfg/cfg.h:425-439
|
||||
|
||||
sector0x96.bin is defined but read by no code path.
|
||||
ref: src/common/common_paths.h:70
|
||||
|
||||
files:
|
||||
- name: boot9.bin
|
||||
path: sysdata/boot9.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 65536
|
||||
validation: [size]
|
||||
note: "AES key section read at offset 55760, RSA modulus and exponent at 0xB3E0 and 0xB4E0"
|
||||
source_ref: "src/core/hw/aes/key.cpp:137-206, src/core/hw/rsa/rsa.cpp:49-80, src/common/common_paths.h:69"
|
||||
|
||||
- name: aes_keys.txt
|
||||
path: sysdata/aes_keys.txt
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "key slots, common keys, DLP and NFC key Ys and NFC secrets, one per line"
|
||||
source_ref: "src/core/hw/aes/key.cpp:208-311, src/common/common_paths.h:68"
|
||||
|
||||
- name: seeddb.bin
|
||||
path: sysdata/seeddb.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "game seed database for 9.6+ titles; an empty database is written when the file is absent"
|
||||
source_ref: "src/core/file_sys/seed_db.cpp:12-58"
|
||||
|
||||
- name: shared_font.bin
|
||||
path: sysdata/shared_font.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: "legacy path, tried after the shared font system archive; decompressed BCFNT with the 0x80 byte APT header"
|
||||
source_ref: "src/core/hle/service/apt/apt.cpp:254-270, src/common/common_paths.h:67"
|
||||
|
||||
- name: CTCert.bin
|
||||
path: sysdata/CTCert.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 384
|
||||
validation: [size]
|
||||
note: "console client certificate; signature type must be 0x010005 and the issuer one of the two Nintendo CA G3 strings"
|
||||
source_ref: "src/core/hle/service/am/am.cpp:2427-2454, src/core/hle/service/am/am.cpp:83-93, src/core/hle/service/am/am.h:95"
|
||||
|
||||
- name: SecureInfo_A
|
||||
path: nand/rw/sys/SecureInfo_A
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 273
|
||||
validation: [size]
|
||||
note: "console region and serial number; loaded on a size check alone, and paired with LocalFriendCodeSeed_B"
|
||||
source_ref: "src/core/hle/service/cfg/cfg.cpp:689-709, src/core/hle/service/cfg/cfg.h:180-186"
|
||||
|
||||
- name: LocalFriendCodeSeed_B
|
||||
path: nand/rw/sys/LocalFriendCodeSeed_B
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 272
|
||||
validation: [size]
|
||||
note: "friend code generation seed; loaded on a size check alone, and paired with SecureInfo_A"
|
||||
source_ref: "src/core/hle/service/cfg/cfg.cpp:711-732, src/core/hle/service/cfg/cfg.h:188-193"
|
||||
@@ -0,0 +1,441 @@
|
||||
emulator: Mednafen
|
||||
type: standalone
|
||||
core_classification: other
|
||||
source: "https://mednafen.github.io/"
|
||||
upstream: "https://mednafen.github.io/"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "1.32.1"
|
||||
display_name: "Mednafen"
|
||||
cores: [mednafen]
|
||||
mode: standalone
|
||||
systems:
|
||||
- apple-ii
|
||||
- apple-iie
|
||||
- atari-lynx
|
||||
- bandai-wswan
|
||||
- bandai-wswanc
|
||||
- nec-pc-engine
|
||||
- nec-pc-engine-cd
|
||||
- nec-pcfx
|
||||
- nec-supergrafx
|
||||
- nintendo-fds
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
- nintendo-gba
|
||||
- nintendo-nes
|
||||
- nintendo-snes
|
||||
- nintendo-virtualboy
|
||||
- sega-gamegear
|
||||
- sega-mastersystem
|
||||
- sega-megacd
|
||||
- sega-megadrive
|
||||
- sega-saturn
|
||||
- sega-stv
|
||||
- snk-ngp
|
||||
- snk-ngpc
|
||||
- sony-playstation
|
||||
|
||||
notes: |
|
||||
Multi-system emulator by the Mednafen Team, the upstream of the beetle_* and
|
||||
mednafen_* libretro cores, which are forks of individual modules. A module is
|
||||
picked automatically from the file, or forced with -force_module <name>.
|
||||
|
||||
Every firmware file resolves to <base>/<filesys.path_firmware>/<name>, with
|
||||
filesys.path_firmware defaulting to "firmware" and the base directory being
|
||||
~/.mednafen on Unix. An absolute path in either the setting or the per-file
|
||||
path setting bypasses that. A file placed directly in the base directory is
|
||||
still found, as a pre-0.9.0 compatibility fallback.
|
||||
ref: general.cpp:277-300, mednafen.cpp:124
|
||||
|
||||
Modules compiled by default that load no external file: gb, snes, snes_faust,
|
||||
vb, wswan, ngp, sms, gg. The snes module (bsnes 0.059) has every coprocessor
|
||||
ROM compiled in; snes_faust synthesises the DSP-1 and CX4 data ROMs
|
||||
(cart/dsp1-datarom-synth.h, cart/cx4.cpp:58); ngp installs a reverse
|
||||
engineered HLE BIOS (ngp/bios.cpp:182-239).
|
||||
|
||||
The nes_new module is declared but never built: configure.ac:392-393 keeps
|
||||
both the AC_DEFINE and the AM_CONDITIONAL commented out.
|
||||
|
||||
cdplay (audio CD), ssfplay (Saturn SSF) and sasplay (Sega Model 2/3 SCSP
|
||||
sound) are player modules, not system emulation. sasplay reads the board's
|
||||
sound ROM set from the directory of the loaded file, never from the firmware
|
||||
directory (sasplay.cpp:869-886), so those ROMs are game content.
|
||||
|
||||
Two settings name an external file that is not firmware data. wswan.excomm.path
|
||||
("wonderfence") is an executable forked and execlp'd for link comms
|
||||
(comm.cpp:56-65). Custom palettes resolve to <gamebase>.pal,
|
||||
<gamebase>.<md5>.pal or <shortname>.pal (general.cpp:303-322) and are
|
||||
user-authored.
|
||||
|
||||
ES-DE invokes the binary as %EMULATOR_MEDNAFEN% -force_module <module> %ROM%
|
||||
and declares no BIOS of its own.
|
||||
|
||||
files:
|
||||
# --- apple2 ---
|
||||
# apple2.model defaults to "ii_ii+" (apple2.cpp:3137). Under that model the
|
||||
# system firmware is Applesoft and the ROM card is Integer (apple2.cpp:1868-1870),
|
||||
# but the ROM card is skipped while the language card is active, which 64 KiB
|
||||
# of RAM enables (apple2.cpp:2238, 2362). Loading a DOS 3.2 disk forces RAM to
|
||||
# 48 KiB and the Disk II firmware to 13-sector (apple2.cpp:2000-2006), which
|
||||
# brings both the ROM card and the 13-sector pair into play with no user action.
|
||||
|
||||
- name: "apple2-asoft-auto.rom"
|
||||
system: apple-ii
|
||||
description: "Apple II+ AppleSoft BASIC and Autostart system ROMs, concatenated (341-0011, 341-0012, 341-0013, 341-0014, 341-0015, 341-0020)"
|
||||
required: true
|
||||
min_size: 12288
|
||||
sha256: "fc3e9d41e9428534a883df5aa10eb55b73ea53d2fcbb3ee4f39bed1b07a82905"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:1342-1350, 1869, 2282, 1473-1476"
|
||||
note: "System firmware for model ii+, ROM card for model ii. Read as 0x3000 bytes at $D000. The hash is in the ROMDB table and only labels the dump in the startup log; nothing rejects a mismatch."
|
||||
|
||||
- name: "apple2-int-auto.rom"
|
||||
system: apple-ii
|
||||
description: "Apple II Integer BASIC and Autostart system ROMs, concatenated (341-0001, 341-0002, 341-0003, 341-0020)"
|
||||
required: true
|
||||
min_size: 8192
|
||||
sha256: "cb52b212a62f808c2f59600b2823491ee12bd91cab8e0260fe34b5f14c47552f"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:1352-1363, 1860, 2284, 2392, 1468-1471"
|
||||
note: "System firmware for model ii, ROM card for model ii+. Read as 0x2000 bytes at $E000, the $D000-$DFFF window stays unmapped. Reached under the default model when a DOS 3.2 disk drops RAM to 48 KiB."
|
||||
|
||||
- name: "apple2e.rom"
|
||||
system: apple-iie
|
||||
description: "Apple IIe BASIC and system ROMs, concatenated (342-0135-A, 342-0134-A)"
|
||||
required: true
|
||||
min_size: 16384
|
||||
sha256: "1fb812584c6633fa16b77b20915986ed1178d1e6fc07a647f7ee8d4e6ab9d40b"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:1320-1325, 2266, 1478-1481"
|
||||
note: "Loaded unconditionally when apple2.model is iie. Read as 0x4000 bytes at $C000."
|
||||
|
||||
- name: "apple2e-video.rom"
|
||||
system: apple-iie
|
||||
description: "Apple IIe video (character generator) ROM, 342-0133-A"
|
||||
required: true
|
||||
min_size: 4096
|
||||
sha256: "ed5bdd4afa509134e85f1d020685af7ff50e279226eb869a17825b471cc1634c"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:2299-2324, 1488-1491"
|
||||
note: "Loading aborts on sha256 0d54ff735c060c55d54b8a22d0112af78a6465ce9c9aae4a865d207e5c8ff1e7, a known bad dump (apple2.cpp:2319-2320). No positive hash check."
|
||||
|
||||
- name: "apple2e-kb.rom"
|
||||
system: apple-iie
|
||||
description: "Apple IIe keyboard ASCII mapping ROM, 342-0132-B"
|
||||
required: true
|
||||
min_size: 2048
|
||||
sha256: "68198ae95923926b0307893d03ec286f00822c93a0b6dabfca565f6718dd5a56"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:2331-2351, 1498-1506"
|
||||
note: "The revised IIe dump 342-0132-C, sha256 fbb9620e01f4f728e5a8ba86544900978d7803f6a7d577d384e288dfed9a4907, is equally recognised at this filename. Read as 0x800 bytes."
|
||||
|
||||
- name: "apple2e-enh.rom"
|
||||
system: apple-iie
|
||||
description: "Enhanced Apple IIe BASIC and system ROMs, concatenated (342-0304-A, 342-0303-A, 342-0349-B)"
|
||||
required: true
|
||||
min_size: 16384
|
||||
sha256: "aab38a03ca8deabbb2f868733148c2efd6f655a59cd9c5d058ef3e0b7aa86a1a"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:1327-1332, 2264, 1483-1486"
|
||||
note: "Loaded unconditionally when apple2.model is iie_enh. Read as 0x4000 bytes at $C000."
|
||||
|
||||
- name: "apple2e-enh-video.rom"
|
||||
system: apple-iie
|
||||
description: "Enhanced Apple IIe video (character generator) ROM, 342-0265-A"
|
||||
required: true
|
||||
min_size: 4096
|
||||
sha256: "52c3b87900ac939f6525402cab1ccfd8f8259290fc6df54da48fb4c98ae3ed0f"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:2299-2324, 1493-1496"
|
||||
note: "Same bad-dump rejection as apple2e-video.rom."
|
||||
|
||||
- name: "apple2e-enh-kb.rom"
|
||||
system: apple-iie
|
||||
description: "Enhanced Apple IIe keyboard ASCII mapping ROM, 341-0132-D"
|
||||
required: true
|
||||
min_size: 2048
|
||||
sha256: "a1989da84ea4381d309e7e08783771f884e913236b9bcc71c3d649aacf76537a"
|
||||
validation: [size]
|
||||
source_ref: "apple2/apple2.cpp:2331-2351, 1508-1511"
|
||||
|
||||
- name: "disk2-16boot.rom"
|
||||
system: apple-ii
|
||||
description: "Disk II interface 16-sector P5 boot ROM, 341-0027"
|
||||
required: true
|
||||
size: 256
|
||||
sha256: "de1e3e035878bab43d0af8fe38f5839c527e9548647036598ee6fe7ec74d2a7d"
|
||||
validation: [size, sha256]
|
||||
source_ref: "apple2/apple2.cpp:2119, 2127-2137, 1620"
|
||||
note: "Default Disk II firmware. The sha256 is enforced: a mismatch throws \"Firmware data ... is corrupt or otherwise wrong\"."
|
||||
|
||||
- name: "disk2-16seq.rom"
|
||||
system: apple-ii
|
||||
description: "Disk II interface 16-sector P6 sequencer ROM, 341-0028"
|
||||
required: true
|
||||
size: 256
|
||||
sha256: "e5e30615040567c1e7a2d21599681f8dac820edbdcda177b816a64d74b3a12f2"
|
||||
validation: [size, sha256]
|
||||
source_ref: "apple2/apple2.cpp:2120, 2127-2137, 1620"
|
||||
note: "P6 sequencer dumps taken linearly through the P5 socket must have A7 swapped with A5, D4 with D7 and D5 with D6 before Mednafen accepts them. P5 boot ROMs need no such rearranging."
|
||||
|
||||
- name: "disk2-13boot.rom"
|
||||
system: apple-ii
|
||||
description: "Disk II interface 13-sector P5 boot ROM, 341-0009"
|
||||
required: true
|
||||
size: 256
|
||||
sha256: "2d2599521fc5763d4e8c308c2ee7c5c4d5c93785b8fb9a4f7d0381dfd5eb60b6"
|
||||
validation: [size, sha256]
|
||||
source_ref: "apple2/apple2.cpp:2113, 2127-2137, 2000-2006"
|
||||
note: "Selected automatically for DOS 3.2 disks, or by disk2.firmware 13sec in a MAI file."
|
||||
|
||||
- name: "disk2-13seq.rom"
|
||||
system: apple-ii
|
||||
description: "Disk II interface 13-sector P6 sequencer ROM, 341-0010"
|
||||
required: true
|
||||
size: 256
|
||||
sha256: "4234aed053c622b266014c4e06ab1ce9e0e085d94a28512aa4030462be0a3cb9"
|
||||
validation: [size, sha256]
|
||||
source_ref: "apple2/apple2.cpp:2114, 2127-2137, 2000-2006"
|
||||
note: "Same P6 rearranging as disk2-16seq.rom. A linear P5-socket dump hashes to 383c55f5333cbfde39dd41528186631e5aca2eddfec30716344f03b6a4d44655 and is rejected."
|
||||
|
||||
# --- lynx ---
|
||||
|
||||
- name: "lynxboot.img"
|
||||
system: atari-lynx
|
||||
description: "Atari Lynx boot ROM"
|
||||
required: true
|
||||
min_size: 512
|
||||
validation: [size]
|
||||
source_ref: "lynx/system.cpp:101, lynx/rom.cpp:55-74"
|
||||
note: "Loaded for every cartridge, before the cart itself. Throws if the file is under 512 bytes; the first 512 bytes are used. No hash check and no HLE fallback."
|
||||
|
||||
# --- nes ---
|
||||
|
||||
- name: "disksys.rom"
|
||||
system: nintendo-fds
|
||||
description: "Famicom Disk System BIOS"
|
||||
required: true
|
||||
min_size: 8192
|
||||
validation: [size]
|
||||
source_ref: "nes/fds.cpp:603-617"
|
||||
note: "Read as 8192 bytes. An iNES header is detected and skipped, with a further 16384-byte skip when the header declares 2 PRG banks."
|
||||
|
||||
- name: "gg.rom"
|
||||
system: nintendo-nes
|
||||
description: "Game Genie ROM image"
|
||||
required: false
|
||||
min_size: 4352
|
||||
source_ref: "nes/cart.cpp:570-597, nes/nes.cpp:298-299, nes/nes.cpp:454-455"
|
||||
note: "Loaded only when nes.gg is enabled; that setting defaults to 0. Path comes from nes.ggrom. An iNES image is read as 4096 bytes of PRG plus 256 bytes of CHR taken 16384 bytes further in; a raw image is read as 4352 contiguous bytes."
|
||||
|
||||
# --- pce and pce_fast ---
|
||||
|
||||
- name: "syscard3.pce"
|
||||
system: nec-pc-engine-cd
|
||||
description: "CD-ROM System Card 3.0"
|
||||
required: true
|
||||
size: 262144
|
||||
source_ref: "pce/pce.cpp:647-656, 1103, pce_fast/pce.cpp:480-487, 647"
|
||||
note: "Default of both pce.cdbios and pce_fast.cdbios. The pce module imposes no size constraint, the file length drives the bank mapping (pce/huc.cpp:308-372). The pce_fast module reads exactly 262144 bytes and skips a 512-byte copier header when the file size has bit 9 set (pce_fast/huc.cpp:296-301). Arcade Card mode extends the same image, it does not need another file."
|
||||
|
||||
- name: "gecard.pce"
|
||||
system: nec-pc-engine-cd
|
||||
description: "Games Express CD Card BIOS"
|
||||
required: false
|
||||
size: 262144
|
||||
source_ref: "pce/pce.cpp:514-550, 647-648, 1104"
|
||||
note: "Default of pce.gecdbios, used instead of pce.cdbios when DetectGECD recognises the disc. The pce_fast module has no equivalent setting."
|
||||
|
||||
# --- pcfx ---
|
||||
|
||||
- name: "pcfx.rom"
|
||||
system: nec-pcfx
|
||||
description: "PC-FX BIOS"
|
||||
required: true
|
||||
size: 1048576
|
||||
validation: [size]
|
||||
source_ref: "pcfx/pcfx.cpp:605-618, 1115"
|
||||
note: "Default of pcfx.bios. Must be exactly 1048576 bytes or loading throws. No hash check."
|
||||
|
||||
- name: "FX-SCSI ROM"
|
||||
system: nec-pcfx
|
||||
description: "PC-FX FX-SCSI expansion ROM"
|
||||
required: false
|
||||
min_size: 524288
|
||||
source_ref: "pcfx/pcfx.cpp:620-632, 1116"
|
||||
note: "Path comes from pcfx.fxscsi, which defaults to \"0\" and is skipped for the values 0, none and the empty string. Mednafen names no default file and opens the path with a bare FileStream, so it is not resolved under the firmware directory. Marked developer-only upstream. 524288 bytes are read and mapped at 0x80780000."
|
||||
|
||||
# --- psx ---
|
||||
|
||||
- name: "scph5500.bin"
|
||||
system: sony-playstation
|
||||
description: "SCPH-5500 / v3.0J BIOS"
|
||||
region: [japan]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb"
|
||||
validation: [size, sha256]
|
||||
source_ref: "psx/psx.cpp:1764-1769, 1773-1781, 2373, 251"
|
||||
note: "Default of psx.bios_jp. Size must be exactly 524288. With psx.bios_sanity on, which is the default, a hash listed as a bad dump or as belonging to another region throws; an unknown hash only logs a warning."
|
||||
|
||||
- name: "scph5501.bin"
|
||||
system: sony-playstation
|
||||
description: "SCPH-5501 / v3.0A BIOS"
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
|
||||
validation: [size, sha256]
|
||||
source_ref: "psx/psx.cpp:1764-1769, 1773-1781, 2374, 252"
|
||||
note: "Default of psx.bios_na. The BIOS table carries 24 recognised dumps in total, two of them flagged bad (psx.cpp:228-268)."
|
||||
|
||||
- name: "scph5502.bin"
|
||||
system: sony-playstation
|
||||
description: "SCPH-5502 / v3.0E BIOS"
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09"
|
||||
validation: [size, sha256]
|
||||
source_ref: "psx/psx.cpp:1764-1769, 1773-1781, 2375, 253"
|
||||
note: "Default of psx.bios_eu."
|
||||
|
||||
# --- ss (Saturn and ST-V) ---
|
||||
# ss.bios_jp serves the JP and Asia NTSC areas, ss.bios_na_eu every other
|
||||
# area (ss.cpp:1431-1434). With ss.bios_sanity on, which is the default, the
|
||||
# five hashes below are checked three ways: a file carrying one of these
|
||||
# names must hash to the matching digest, a recognised hash must belong to
|
||||
# the area being emulated, and a Saturn hash is refused for ST-V and the
|
||||
# reverse (ss.cpp:1447-1492).
|
||||
|
||||
- name: "sega_101.bin"
|
||||
system: sega-saturn
|
||||
description: "Saturn BIOS v1.01 (Japan)"
|
||||
region: [japan, asia-ntsc]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "dcfef4b99605f872b6c3b6d05c045385cdea3d1b702906a0ed930df7bcb7deac"
|
||||
validation: [size, sha256]
|
||||
source_ref: "ss/ss.cpp:1431-1434, 1437-1445, 2441, 1459"
|
||||
note: "Default of ss.bios_jp."
|
||||
|
||||
- name: "mpr-17933.bin"
|
||||
system: sega-saturn
|
||||
description: "Saturn BIOS (North America and Europe)"
|
||||
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
|
||||
required: true
|
||||
size: 524288
|
||||
sha256: "96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f"
|
||||
validation: [size, sha256]
|
||||
source_ref: "ss/ss.cpp:1431-1434, 1437-1445, 2442, 1461"
|
||||
note: "Default of ss.bios_na_eu."
|
||||
|
||||
- name: "sega1003.bin"
|
||||
system: sega-saturn
|
||||
description: "Saturn BIOS v1.003 (Japan)"
|
||||
region: [japan, asia-ntsc]
|
||||
required: false
|
||||
size: 524288
|
||||
sha256: "cc1e1b7f88f1c6e6fc35994bae2c2292e06fdae258c79eb26a1f1391e72914a8"
|
||||
validation: [size, sha256]
|
||||
source_ref: "ss/ss.cpp:1457, 1447-1492"
|
||||
note: "Recognised alternative for ss.bios_jp."
|
||||
|
||||
- name: "sega_100.bin"
|
||||
system: sega-saturn
|
||||
description: "Saturn BIOS v1.00 (Japan)"
|
||||
region: [japan, asia-ntsc]
|
||||
required: false
|
||||
size: 524288
|
||||
sha256: "ae4058627bb5db9be6d8d83c6be95a4aa981acc8a89042e517e73317886c8bc2"
|
||||
validation: [size, sha256]
|
||||
source_ref: "ss/ss.cpp:1458, 1447-1492"
|
||||
note: "Recognised alternative for ss.bios_jp."
|
||||
|
||||
- name: "sega_100a.bin"
|
||||
system: sega-saturn
|
||||
description: "Saturn BIOS v1.00a (North America and Europe)"
|
||||
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
|
||||
required: false
|
||||
size: 524288
|
||||
sha256: "87293093fad802fcff31fcab427a16caff1acbc5184899b8383b360fd58efb73"
|
||||
validation: [size, sha256]
|
||||
source_ref: "ss/ss.cpp:1460, 1447-1492"
|
||||
note: "Recognised alternative for ss.bios_na_eu."
|
||||
|
||||
- name: "epr-20091.ic8"
|
||||
system: sega-stv
|
||||
description: "ST-V BIOS (Japan)"
|
||||
region: [japan, asia-ntsc]
|
||||
required: true
|
||||
size: 524288
|
||||
validation: [size]
|
||||
source_ref: "ss/ss.cpp:1420-1428, 1437-1445, 2444"
|
||||
note: "Default of ss.bios_stv_jp. ST-V dumps are absent from the sanity table, so only the 524288-byte size is enforced. Loaded byte-swapped the other way round from a Saturn BIOS (ss.cpp:1495-1499)."
|
||||
|
||||
- name: "epr-17952a.ic8"
|
||||
system: sega-stv
|
||||
description: "ST-V BIOS (North America)"
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 524288
|
||||
validation: [size]
|
||||
source_ref: "ss/ss.cpp:1420-1428, 1437-1445, 2445"
|
||||
note: "Default of ss.bios_stv_na, used for every area that is not Japan, Asia NTSC or PAL Europe."
|
||||
|
||||
- name: "epr-17954a.ic8"
|
||||
system: sega-stv
|
||||
description: "ST-V BIOS (Europe)"
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 524288
|
||||
validation: [size]
|
||||
source_ref: "ss/ss.cpp:1420-1428, 1437-1445, 2446"
|
||||
note: "Default of ss.bios_stv_eu."
|
||||
|
||||
- name: "mpr-18811-mx.ic1"
|
||||
system: sega-saturn
|
||||
description: "King of Fighters '95 ROM cart"
|
||||
required: false
|
||||
min_size: 2097152
|
||||
source_ref: "ss/ss.cpp:1332, 1389-1397, 2477, ss/cart/rom.cpp:37-48"
|
||||
note: "Default of ss.cart.kof95_path. Loaded when the cart type resolves to KOF95, which ss.cart auto does from the internal game database. 0x200000 bytes are read and byte-swapped."
|
||||
|
||||
- name: "mpr-19367-mx.ic1"
|
||||
system: sega-saturn
|
||||
description: "Ultraman: Hikari no Kyojin Densetsu ROM cart"
|
||||
required: false
|
||||
min_size: 2097152
|
||||
source_ref: "ss/ss.cpp:1333, 1389-1397, 2478, ss/cart/rom.cpp:37-48"
|
||||
note: "Default of ss.cart.ultraman_path. Same loading path as the KoF 95 cart."
|
||||
|
||||
- name: "satar4mp.bin"
|
||||
system: sega-saturn
|
||||
description: "Action Replay 4M Plus firmware"
|
||||
required: false
|
||||
min_size: 262144
|
||||
source_ref: "ss/ss.cpp:1334, 1389-1397, 2479, ss/cart/ar4mp.cpp:125-140"
|
||||
note: "Default of ss.cart.satar4mp_path. 0x40000 bytes are read into the flash array and byte-swapped. The setting is hidden from the documentation and the cart is marked unfinished upstream, pending CPU UBC emulation (ar4mp.cpp:22-24)."
|
||||
|
||||
# --- md ---
|
||||
|
||||
- name: "us_scd1_9210.bin"
|
||||
system: sega-megacd
|
||||
description: "Sega CD BIOS"
|
||||
required: true
|
||||
size: 131072
|
||||
validation: [size]
|
||||
source_ref: "md/cd/cd.cpp:894-915, 971-989, md/system.cpp:630-641, 801, 755"
|
||||
note: "Default of md.cdbios. LoadCD is wired into the module and reaches MDCD_Init, which throws unless the file is exactly 131072 bytes. The setting's own help text states that Sega CD emulation is currently nonfunctional."
|
||||
|
||||
# --- gba ---
|
||||
|
||||
- name: "GBA BIOS ROM image"
|
||||
system: nintendo-gba
|
||||
description: "Game Boy Advance BIOS"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 16384
|
||||
validation: [size]
|
||||
source_ref: "gba/GBA.cpp:2470-2494, 3278, 772"
|
||||
note: "Path comes from gba.bios, which defaults to the empty string and is skipped for the values 0, none and the empty string, so Mednafen names no default file. When set, the file must be exactly 16384 bytes. Otherwise the built-in HLE BIOS myROM is used, and the setting is ignored outright for GSF playback."
|
||||
Reference in new issue
Block a user