mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
feat: add six emulator profiles
This commit is contained in:
1 parent
87117a3e8f
commit
1fd5f40ef6
6 files changed
+1937
No files matched your search
@@ -0,0 +1,35 @@
|
|||||||
|
emulator: MAME4droid (Current)
|
||||||
|
type: alias
|
||||||
|
alias_of: mame4droid-2024
|
||||||
|
core_classification: alias
|
||||||
|
source: "https://github.com/seleuco/MAME4droid-Current"
|
||||||
|
upstream: "https://github.com/mamedev/mame/tree/mame0289"
|
||||||
|
profiled_date: "2026-08-11"
|
||||||
|
source_commit: "32d781923fc0fb7621f3d78903f1b37fd4a5694a"
|
||||||
|
upstream_commit: "f34f02505e32c1993c6a782b6814232cbfc74e36"
|
||||||
|
core_version: "1.38.1"
|
||||||
|
display_name: "Arcade (MAME4droid Current)"
|
||||||
|
|
||||||
|
cores:
|
||||||
|
- mame4droid-current
|
||||||
|
|
||||||
|
note: |
|
||||||
|
Android port of MAME by David Valdeita (Seleuco), application id
|
||||||
|
com.seleuco.mame4d2024, release 1.38.1
|
||||||
|
(android-MAME4droid/app/build.gradle:20,24) on MAME 0.289 (README.md:4).
|
||||||
|
|
||||||
|
The app shipped as MAME4droid 2024 from its first release on 2023-12-17 to
|
||||||
|
1.19 on MAME 0.272. Release 1.20 moved to MAME 0.273 and renamed it
|
||||||
|
MAME4droid (Current)
|
||||||
|
(android-MAME4droid/app/src/main/assets/changelog.htm:74,55,54), the name
|
||||||
|
android-MAME4droid/app/src/main/res/values/strings.xml:4 carries. The
|
||||||
|
repository was renamed with it: seleuco/MAME4droid-2024 resolves to
|
||||||
|
seleuco/MAME4droid-Current.
|
||||||
|
|
||||||
|
build.gradle declares no product flavor and the repository has a single
|
||||||
|
branch, so both names are the same package. The tree holds the Android OSD
|
||||||
|
and the patches applied over a stock MAME source tree (howtobuild.txt), so
|
||||||
|
the ROM sets are those of MAME 0.289. Files are mame4droid-2024's, pinned
|
||||||
|
to the same commit.
|
||||||
|
|
||||||
|
files: []
|
||||||
@@ -0,0 +1,586 @@
|
|||||||
|
emulator: Mariani
|
||||||
|
type: standalone
|
||||||
|
core_classification: community_fork
|
||||||
|
source: "https://github.com/sh95014/AppleWin"
|
||||||
|
upstream: "https://github.com/AppleWin/AppleWin"
|
||||||
|
profiled_date: "2026-08-12"
|
||||||
|
source_commit: "492b017709fd67d3aff6b1d88d9971254e7214fa"
|
||||||
|
upstream_commit: "75bd90d16a2e4eb16026bf615685ee2a02dfc0d6"
|
||||||
|
core_version: "1.7"
|
||||||
|
display_name: "Apple - Apple II (Mariani)"
|
||||||
|
cores:
|
||||||
|
- mariani
|
||||||
|
systems:
|
||||||
|
- apple-ii
|
||||||
|
mode: standalone
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Cocoa frontend for AppleWin, macOS only, shipped as Mariani.app and carrying
|
||||||
|
AppleWin 1.31.0.5 (resource/version.h). ES-DE launches it with --d1 for the
|
||||||
|
floppy in slot 6 drive 1.
|
||||||
|
|
||||||
|
Resources are files inside the application bundle instead of Win32 resources
|
||||||
|
linked into the binary. MarianiFrame::GetResourceData maps each AppleWin
|
||||||
|
resource id to a file name, NSBundle resolves it against Contents/Resources,
|
||||||
|
and the file is read with open() then kept in a map for later requests
|
||||||
|
(MarianiFrame.cpp:156-232, AppDelegate.mm:1465-1469). LinuxFrame::GetResource
|
||||||
|
throws when the file it gets back does not have the size the call site asked
|
||||||
|
for (linuxframe.cpp:133-145), so each entry below carries the size the code
|
||||||
|
demands. A name that resolves to nothing raises a "Resource not found" alert
|
||||||
|
and returns a null pointer.
|
||||||
|
|
||||||
|
Machine types offered in preferences: Apple II, II Plus, II J-Plus, //e,
|
||||||
|
enhanced //e, Pravets 82, Pravets 8M, Pravets 8A, TK3000 //e and Base64A
|
||||||
|
(PreferencesViewController.mm:191-193, 741-751). MemInitializeROM picks the
|
||||||
|
system ROM from that setting (Memory.cpp:2052-2069). Default slots are the
|
||||||
|
printer card in 1, Super Serial Card in 2, Mockingboard in 4 and Disk II in 6
|
||||||
|
(CardManager.cpp:325-334); the hard disk and mouse cards are chosen by the
|
||||||
|
user.
|
||||||
|
|
||||||
|
Two names in the resource map have no file in the bundle: the Resources build
|
||||||
|
phase lists 49 items and neither appears (Mariani.xcodeproj/project.pbxproj).
|
||||||
|
Hddrvr-v2.bin is requested when a save state written with hard disk card
|
||||||
|
version 4 is loaded (Harddisk.cpp:228, 1439-1443), and
|
||||||
|
Freezes_Non-autostart_F8_Rom.rom when the configuration value "The Freeze's
|
||||||
|
F8 Rom" is set on an Apple II (Memory.cpp:2163-2168, Utilities.cpp:188-189,
|
||||||
|
Common.h:94). Contents/Resources is the only directory searched, so that is
|
||||||
|
where the two belong.
|
||||||
|
|
||||||
|
The debugger comes up with the emulator, not with its window
|
||||||
|
(context.cpp:116). CmdDebugStartup preloads four symbol tables
|
||||||
|
(Debug.cpp:9492-9520), each read first from
|
||||||
|
~/Library/Application Support/<bundle id>/ and then from the bundle
|
||||||
|
(Debugger_Symbols.cpp:774, 814-817, MarianiFrame.cpp:36-37,
|
||||||
|
AppDelegate.mm:1471-1491).
|
||||||
|
|
||||||
|
--rom and --f8rom install a 12k/16k and a 2k image from any path over the ROM
|
||||||
|
already loaded (argparser.cpp:197-198, programoptions.cpp:81-101,
|
||||||
|
Memory.cpp:2120-2213). AppleWin's -videorom and its hard disk firmware
|
||||||
|
switches are unreachable here: ParseCmdLine has no caller in this tree, and
|
||||||
|
UseHdcFirmwareV1/V2 are called only from Windows/AppleWin.cpp:783-785, which
|
||||||
|
the Xcode project does not compile.
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: Apple2.rom
|
||||||
|
description: "Apple II system ROM, $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 12288
|
||||||
|
md5: 3c406514b9806a7c57ee65fb0b0c39b4
|
||||||
|
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2054, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:177"
|
||||||
|
note: "Loaded when the machine type is Apple II (original)."
|
||||||
|
|
||||||
|
- name: Apple2_Plus.rom
|
||||||
|
description: "Apple II Plus system ROM, $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 12288
|
||||||
|
md5: 572b3005a4fa49bc54917b069b82c1ab
|
||||||
|
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2055, 2065-2069, 2126-2137, source/frontends/mariani/MarianiFrame.cpp:178"
|
||||||
|
note: >
|
||||||
|
Also read on an original Apple II with a language card in slot 0, where
|
||||||
|
MemInitializeCustomF8ROM copies its last 2 KB over the autostart F8 area.
|
||||||
|
|
||||||
|
- name: Apple2_JPlus.rom
|
||||||
|
description: "Apple II J-Plus system ROM, $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 12288
|
||||||
|
md5: f3e8237eca3809bec2a42b984a1332a8
|
||||||
|
sha1: ad200b3263d08e7235d0871c8595963a07adc905
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2056, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:179"
|
||||||
|
note: "Loaded when the machine type is Apple II J-Plus."
|
||||||
|
|
||||||
|
- name: Apple2e.rom
|
||||||
|
description: "Apple //e system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
md5: 346bc782c6a08a531c460e33bc03daf4
|
||||||
|
sha1: 61fa9254628e5bb7236fb474006116d67684d747
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2057, source/Memory.cpp:2065-2069, source/Memory.cpp:2100-2117, source/frontends/mariani/MarianiFrame.cpp:180"
|
||||||
|
note: "Loaded when the machine type is Apple //e (original)."
|
||||||
|
|
||||||
|
- name: Apple2e_Enhanced.rom
|
||||||
|
description: "Enhanced Apple //e system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
md5: 38063e08c778503fc03ecebb979769e9
|
||||||
|
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2058, source/Memory.cpp:2065-2069, source/Memory.cpp:2100-2117, source/frontends/mariani/MarianiFrame.cpp:181"
|
||||||
|
note: "Default machine type."
|
||||||
|
|
||||||
|
- name: PRAVETS82.ROM
|
||||||
|
description: "Pravets 82 system ROM, $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 12288
|
||||||
|
md5: c619b7edfcf021f3b8fd20d9386676ba
|
||||||
|
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2059, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:182"
|
||||||
|
note: "Loaded when the machine type is Pravets 82."
|
||||||
|
|
||||||
|
- name: PRAVETS8M.ROM
|
||||||
|
description: "Pravets 8M system ROM, $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 12288
|
||||||
|
md5: 76c79535f7cf77973e2c711aa977a124
|
||||||
|
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2060, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:183"
|
||||||
|
note: "Loaded when the machine type is Pravets 8M."
|
||||||
|
|
||||||
|
- name: PRAVETS8C.ROM
|
||||||
|
description: "Pravets 8A system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
md5: 1896d7b98dd940c89f7c8ea899b71006
|
||||||
|
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2061, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:184"
|
||||||
|
note: "Loaded when the machine type is Pravets 8A."
|
||||||
|
|
||||||
|
- name: TK3000e.rom
|
||||||
|
description: "TK3000 //e system ROM, 4 KB internal Cx ROM then $D000 to $FFFF"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
md5: 8d84b614b545d4eec8799d3f325332cb
|
||||||
|
sha1: f163e5753c18ff0e812a448e8da406f102600edf
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2062, source/Memory.cpp:2065-2069, source/frontends/mariani/MarianiFrame.cpp:185"
|
||||||
|
note: "Loaded when the machine type is TK3000 //e."
|
||||||
|
|
||||||
|
- name: Base64A.rom
|
||||||
|
description: "Base64A system ROM, four 12 KB pages"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 49152
|
||||||
|
md5: 352fdbcae14c6a8c0398822c7a273309
|
||||||
|
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2063, source/Memory.cpp:2065-2069, source/Memory.cpp:2114-2117, source/frontends/mariani/MarianiFrame.cpp:186"
|
||||||
|
note: "Loaded when the machine type is Base64A. Copied into memrom as MaxRomPages pages of 12 KB."
|
||||||
|
|
||||||
|
- name: Freezes_Non-autostart_F8_Rom.rom
|
||||||
|
description: "Non-autostart F8 monitor ROM"
|
||||||
|
required: false
|
||||||
|
size: 2048
|
||||||
|
md5: d0a61e95ed1e1dc37c8e4801326aa79e
|
||||||
|
sha1: 3180be6b555ee9ef1f59c4fc3f25c5aab8c39c81
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Memory.cpp:2163-2168, source/Utilities.cpp:188-189, source/Common.h:94, source/frontends/mariani/MarianiFrame.cpp:187"
|
||||||
|
note: >
|
||||||
|
MemInitializeCustomF8ROM copies it over $F800 to $FFFF when the
|
||||||
|
configuration value "The Freeze's F8 Rom" is set and the machine is an
|
||||||
|
Apple II. The application bundle does not ship it, so it has to be placed
|
||||||
|
in Contents/Resources, the only directory PathToResourceNamed searches.
|
||||||
|
|
||||||
|
- name: Apple2_Video.rom
|
||||||
|
description: "Apple II and II Plus character generator"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 2048
|
||||||
|
md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec
|
||||||
|
sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:249-256, 296, source/frontends/mariani/MarianiFrame.cpp:189"
|
||||||
|
note: "make_csbits reads it on every start, whatever the machine type."
|
||||||
|
|
||||||
|
- name: Apple2_JPlus_Video.rom
|
||||||
|
description: "Apple II J-Plus character generator"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 2048
|
||||||
|
md5: 271e2c9bf928b95e7baeff391db45495
|
||||||
|
sha1: 0a382be58db5215c4a3de53b19a72fab660d5da2
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:258-266, 303, source/frontends/mariani/MarianiFrame.cpp:190"
|
||||||
|
note: "Read on every start. Fills the two J-Plus character sets selected by AN2."
|
||||||
|
|
||||||
|
- name: Apple2e_Enhanced_Video.rom
|
||||||
|
description: "Apple //e character generator, US"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 4096
|
||||||
|
md5: 9123fff3442c0e688cc6816be88dd4ab
|
||||||
|
sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:278-285, 297, 299-301, source/frontends/mariani/MarianiFrame.cpp:191"
|
||||||
|
note: >
|
||||||
|
Read on every start. The original //e set is derived from it by putting
|
||||||
|
the non-alt characters back over the 32 mousetext slots.
|
||||||
|
|
||||||
|
- name: Base64A_German_Video.rom
|
||||||
|
description: "Base64A character generator"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 4096
|
||||||
|
md5: 4b45852b369e2afd864a02d0d91f70dc
|
||||||
|
sha1: 87ca8135f7526ddf829f9c2c4f7dbe4d568818fc
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:268-276, 304, source/frontends/mariani/MarianiFrame.cpp:192"
|
||||||
|
note: "Read on every start. Split in two 2 KB halves for the two character sets."
|
||||||
|
|
||||||
|
- name: CHARSET82.bmp
|
||||||
|
description: "Pravets 82 character generator bitmap"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 8254
|
||||||
|
md5: 5b4866713477fdb08bb2a78d2d86ceb0
|
||||||
|
sha1: 34718c242ccc539c54b456eca84286421ad24166
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:291, source/frontends/mariani/MarianiFrame.cpp:52-61"
|
||||||
|
note: >
|
||||||
|
Read through GetBitmap on every start, decoded with ImageIO and packed
|
||||||
|
eight pixels to the octet. No size check: the copy stops at the shorter of
|
||||||
|
the image and the requested buffer.
|
||||||
|
|
||||||
|
- name: CHARSET8M.bmp
|
||||||
|
description: "Pravets 8M character generator bitmap"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 8254
|
||||||
|
md5: f2720f70859026c76e07fc598fbe435f
|
||||||
|
sha1: cfbdbc1d76542f2a60dbbbdf9deb218ee197351e
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:292, source/frontends/mariani/MarianiFrame.cpp:52-61"
|
||||||
|
note: "Read through GetBitmap on every start."
|
||||||
|
|
||||||
|
- name: CHARSET8C.bmp
|
||||||
|
description: "Pravets 8A character generator bitmap, both character sets"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16446
|
||||||
|
md5: 9248c1f19f3d3277a031f46a19b2e350
|
||||||
|
sha1: 0ec9ebe6542ca8f89ed4a7c417716b287a75b48e
|
||||||
|
source_ref: "source/NTSC_CharSet.cpp:293-294, source/frontends/mariani/MarianiFrame.cpp:52-61"
|
||||||
|
note: "Read twice, at row 0 for the alt character set off and at row 16 for on."
|
||||||
|
|
||||||
|
- name: DISK2.rom
|
||||||
|
description: "Disk II controller firmware, 16 sector"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 256
|
||||||
|
md5: 2020aa1413ff77fe29353f3ee72dc295
|
||||||
|
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Disk.cpp:2074-2082, source/Disk.cpp:2104-2108, source/frontends/mariani/MarianiFrame.cpp:166"
|
||||||
|
note: >
|
||||||
|
Read when the Disk II card initialises, which is slot 6 by default. Both
|
||||||
|
firmware images are read up front and the one installed at $C600 follows
|
||||||
|
the boot sector format of the inserted image.
|
||||||
|
|
||||||
|
- name: DISK2-13sector.rom
|
||||||
|
description: "Disk II controller firmware, 13 sector"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 256
|
||||||
|
md5: 4f80448507cf43ab40c17ac08d89e278
|
||||||
|
sha1: afd060e6f35faf3bb0146fa889fc787adf56330a
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Disk.cpp:2074-2082, source/Disk.cpp:2104-2106, source/frontends/mariani/MarianiFrame.cpp:165"
|
||||||
|
note: "Read alongside the 16 sector image when the Disk II card initialises."
|
||||||
|
|
||||||
|
- name: SSC.rom
|
||||||
|
description: "Super Serial Card firmware"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 2048
|
||||||
|
md5: 67c0d61ab0911183faf05270f881a97e
|
||||||
|
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/SerialComms.cpp:957-970, source/frontends/mariani/MarianiFrame.cpp:167"
|
||||||
|
note: >
|
||||||
|
Read when the card initialises, slot 2 by default. The 256 bytes at
|
||||||
|
offset 0x700 go to the slot ROM and the whole 2 KB stays as expansion ROM.
|
||||||
|
|
||||||
|
- name: Parallel.rom
|
||||||
|
description: "Parallel printer card firmware"
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 256
|
||||||
|
md5: 5902996f16dc78fc013f6e1db14805b3
|
||||||
|
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ParallelPrinter.cpp:43-52, source/frontends/mariani/MarianiFrame.cpp:171"
|
||||||
|
note: "Read when the printer card initialises, slot 1 by default."
|
||||||
|
|
||||||
|
- name: MouseInterface.rom
|
||||||
|
description: "Mouse interface card firmware"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 2048
|
||||||
|
md5: 22563ab338024dac7b03510371d49c57
|
||||||
|
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/MouseInterface.cpp:163-176, source/frontends/mariani/MarianiFrame.cpp:173"
|
||||||
|
note: "Read only when the user puts the mouse card in a slot. No default slot holds it."
|
||||||
|
|
||||||
|
- name: HDC-SmartPort.bin
|
||||||
|
description: "Hard disk controller firmware, SmartPort"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 256
|
||||||
|
md5: 2592efa1d34ade55d490a1b39911c9b2
|
||||||
|
sha1: fd557998fd5823ad69a42ad1282e4fe47db02dca
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Harddisk.cpp:222-241, source/frontends/mariani/MarianiFrame.cpp:170"
|
||||||
|
note: >
|
||||||
|
Default firmware of the hard disk card, which no slot holds until the user
|
||||||
|
adds it. Block mode and drive count are patched into the copy afterwards.
|
||||||
|
|
||||||
|
- name: Hddrvr.bin
|
||||||
|
description: "Hard disk controller firmware, version 1"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 256
|
||||||
|
md5: e0a40e9166af27b16f60beb83c9233f0
|
||||||
|
sha1: 69667800c54da1d4466e7b2168c0e418a4cf586c
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Harddisk.cpp:227, source/Harddisk.cpp:237, source/Harddisk.cpp:1439-1441, source/frontends/mariani/MarianiFrame.cpp:168"
|
||||||
|
note: "Selected over the SmartPort firmware when a save state carries a hard disk card older than version 4."
|
||||||
|
|
||||||
|
- name: Hddrvr-v2.bin
|
||||||
|
description: "Hard disk controller firmware, version 2"
|
||||||
|
required: false
|
||||||
|
size: 256
|
||||||
|
md5: a49e45e7a6d4de23e0845a59c7e31e0c
|
||||||
|
sha1: 06115eebb4d58221b5c062a42bf3e41e137447ed
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/Harddisk.cpp:228, source/Harddisk.cpp:237, source/Harddisk.cpp:1439-1443, source/frontends/mariani/MarianiFrame.cpp:169"
|
||||||
|
note: >
|
||||||
|
Selected when a save state carries hard disk card version 4. The
|
||||||
|
application bundle does not ship it, so it has to be placed in
|
||||||
|
Contents/Resources for that state to restore.
|
||||||
|
|
||||||
|
- name: bootsector.bin
|
||||||
|
description: "Boot sector written to a new DOS 3.3 disk image"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 256
|
||||||
|
md5: 6ab4d0a20071dad38154a7c0278beee6
|
||||||
|
sha1: 3b0d57ff9abb3302cc949f7e0cc71d38ea5a89ce
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:832-836, source/frontends/mariani/MarianiFrame.cpp:194"
|
||||||
|
note: "Read by the Disk Maker window when it formats an image without copying DOS 3.3."
|
||||||
|
|
||||||
|
- name: bootsector_prodos243.bin
|
||||||
|
description: "Two boot sectors written to a new ProDOS disk image"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 1024
|
||||||
|
md5: 2695dc5458076eb747b9f245dd1a7ed9
|
||||||
|
sha1: e2f1b6342efff3a39fafd239f200707bc7494592
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:792-796, source/frontends/mariani/MarianiFrame.cpp:195"
|
||||||
|
note: "Read by the Disk Maker window when it creates a ProDOS image."
|
||||||
|
|
||||||
|
- name: dos33c.bin
|
||||||
|
description: "DOS 3.3 image copied to the first three tracks of a new disk"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 12288
|
||||||
|
md5: 46a02fc4775b3d959f3f949a70eaa616
|
||||||
|
sha1: 52d1bbeed17f2a2240cb38249dba3663ad0b8a1f
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:774-778, source/frontends/mariani/MarianiFrame.cpp:196"
|
||||||
|
note: "Read by the Disk Maker window when DOS 3.3 is copied onto the new image."
|
||||||
|
|
||||||
|
- name: prodos243.bin
|
||||||
|
description: "ProDOS 2.4.3 kernel written as PRODOS on a new ProDOS disk"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 17128
|
||||||
|
md5: 90644bd658fd0922d28eccb7cfb7cb76
|
||||||
|
sha1: 17c354249ddbfaf20b570d3c5e33b693e36646aa
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:595-599, source/frontends/mariani/MarianiFrame.cpp:197"
|
||||||
|
note: "Read by the Disk Maker window when the ProDOS system file is copied."
|
||||||
|
|
||||||
|
- name: bitsy.boot.bin
|
||||||
|
description: "Bitsy Boot system file for a new ProDOS disk"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 365
|
||||||
|
md5: e6e8f7edc3ae48f827a97090cdca741c
|
||||||
|
sha1: 474c2b0c666239c76fce07e1c96471650431a2d6
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:509-513, source/frontends/mariani/MarianiFrame.cpp:198"
|
||||||
|
note: "Read by the Disk Maker window when Bitsy Boot is copied."
|
||||||
|
|
||||||
|
- name: quit.system.bin
|
||||||
|
description: "Bitsy Bye quit system file for a new ProDOS disk"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 56
|
||||||
|
md5: 6a32c39d8ac24bd56a03d79299b0a8f1
|
||||||
|
sha1: dbda9a9fd882af929b17cd2de1a975e7f1b93361
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:552-556, source/frontends/mariani/MarianiFrame.cpp:199"
|
||||||
|
note: "Read by the Disk Maker window when Bitsy Bye is copied."
|
||||||
|
|
||||||
|
- name: basic17.system.bin
|
||||||
|
description: "BASIC.SYSTEM 1.7 written to a new ProDOS disk"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 10240
|
||||||
|
md5: a8d8c08f5cb4a9480389477c6c2f2834
|
||||||
|
sha1: 6ba0571dee8da75f5c1736854e206eb9d2601fac
|
||||||
|
validation: [size]
|
||||||
|
source_ref: "source/ProDOS_Utils.cpp:467-471, source/frontends/mariani/MarianiFrame.cpp:200"
|
||||||
|
note: "Read by the Disk Maker window when BASIC.SYSTEM is copied."
|
||||||
|
|
||||||
|
- name: APPLE2E.SYM
|
||||||
|
description: "Debugger symbol table for the main ROM"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 13444
|
||||||
|
md5: 034527d42a96d0f39977cb85c6a8f2d8
|
||||||
|
sha1: fcfbbb25e06f58d13e762b02bfd468c834d98fc8
|
||||||
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:46, 774, 814-817, source/Debugger/Debug.cpp:9499-9500"
|
||||||
|
note: >
|
||||||
|
Preloaded into the Main table when the emulator starts. Read from the
|
||||||
|
support directory first, then from the bundle. Parsed as lines of address
|
||||||
|
and name, with no size or hash check.
|
||||||
|
|
||||||
|
- name: A2_BASIC.SYM
|
||||||
|
description: "Debugger symbol table for Applesoft BASIC"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 15378
|
||||||
|
md5: 7253a9ba7d7ca807016f5adc0207dd7b
|
||||||
|
sha1: 496a0bd1af463fce81b362da9e4757a993e355d5
|
||||||
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:47, 774, 814-817, source/Debugger/Debug.cpp:9502-9503"
|
||||||
|
note: "Preloaded into the Basic table when the emulator starts."
|
||||||
|
|
||||||
|
- name: A2_DOS33.SYM2
|
||||||
|
description: "Debugger symbol script for DOS 3.3"
|
||||||
|
required: false
|
||||||
|
size: 2380
|
||||||
|
md5: 88bd69906b4b3109b3f31472fb4b47f4
|
||||||
|
sha1: 51cc84e2cbd9bd61d50a0931cdae0a2ef0a57d6c
|
||||||
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:53, 774-806, source/Debugger/Debug.cpp:9506-9507"
|
||||||
|
note: >
|
||||||
|
Preloaded into the DOS33 table when the emulator starts. The .SYM2
|
||||||
|
extension routes it through the debugger script reader instead of the
|
||||||
|
symbol parser, so it is only read from the support directory. The
|
||||||
|
application bundle does not ship it.
|
||||||
|
|
||||||
|
- name: PrintChar21.ttf
|
||||||
|
description: "Print Char 21 font used by the debugger console and inspector"
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
size: 501992
|
||||||
|
md5: 972ce55fa7b905a494de16a7e8ec1949
|
||||||
|
sha1: c66c1955dac84a253a661720a7947150c109f315
|
||||||
|
source_ref: "source/frontends/mariani/debugger/ConsoleViewController.mm:74, source/frontends/mariani/debugger/InspectorOutlineViewController.mm:356, source/frontends/mariani/debugger/CharacterMappings.mm:13-142, source/frontends/mariani/Mariani-Info.plist:5-6"
|
||||||
|
note: >
|
||||||
|
Registered from the resource folder by ATSApplicationFontsPath and asked
|
||||||
|
for by family name. CharacterMappings maps Apple II character values to
|
||||||
|
its codepoints.
|
||||||
|
|
||||||
|
analysis:
|
||||||
|
bundle_layout:
|
||||||
|
resource_folder: "Mariani.app/Contents/Resources"
|
||||||
|
lookup: "NSBundle pathForResource, no fallback directory"
|
||||||
|
reader: "open() and read(), cached per resource id in MarianiFrame::roms"
|
||||||
|
size_check: "LinuxFrame::GetResource throws when the size differs from the one the call site expects"
|
||||||
|
missing_file: "modal alert titled Resource not found, then a null pointer"
|
||||||
|
source_ref: "source/frontends/mariani/MarianiFrame.cpp:156-232, source/frontends/mariani/AppDelegate.mm:1465-1469, source/linux/linuxframe.cpp:133-145"
|
||||||
|
|
||||||
|
support_directory:
|
||||||
|
path: "~/Library/Application Support/<bundle id>/"
|
||||||
|
holds: "debugger symbol tables, debugger scripts, printer output, g_sProgramDir"
|
||||||
|
source_ref: "source/frontends/mariani/AppDelegate.mm:1471-1485, source/frontends/mariani/MarianiFrame.cpp:36"
|
||||||
|
|
||||||
|
unreachable_resources:
|
||||||
|
- filename: Mockingboard-D.rom
|
||||||
|
reason: "IDR_MOCKINGBOARD_D_FW appears only in the resource header and in the frontend's name table; nothing requests it"
|
||||||
|
source_ref: "resource/resource.h:38, source/frontends/mariani/MarianiFrame.cpp:172"
|
||||||
|
- filename: TKClock.rom
|
||||||
|
reason: "IDR_TKCLOCK_FW appears only in the resource header and in the frontend's name table; nothing requests it"
|
||||||
|
source_ref: "resource/resource.h:51, source/frontends/mariani/MarianiFrame.cpp:175"
|
||||||
|
- filename: ThunderClockPlus.rom
|
||||||
|
reason: >
|
||||||
|
Its only consumer, LoadRom_Clock_ThunderClockPlus, has no caller in the
|
||||||
|
tree, reads through the Win32 FindResource API and lives in a file the
|
||||||
|
Xcode project never compiles
|
||||||
|
source_ref: "source/Peripheral_Clock_ThunderClockPlus.cpp:200-215, resource/resource.h:40"
|
||||||
|
- filename: Debug_Font.bmp
|
||||||
|
reason: >
|
||||||
|
IDB_DEBUG_FONT_7_by_8 is fetched with Win32 LoadBitmap against the
|
||||||
|
Windows frame, and MarianiFrame::GetBitmap answers only the three
|
||||||
|
CHARSET ids. Mariani draws its debugger with AppKit
|
||||||
|
source_ref: "source/Debugger/Debugger_Display.cpp:595, source/frontends/mariani/MarianiFrame.cpp:52-65"
|
||||||
|
|
||||||
|
symbol_tables:
|
||||||
|
lookup: "g_sProgramDir then g_sBuiltinSymbolsDir, which is the folder holding the bundled .SYM files"
|
||||||
|
source_ref: "source/Debugger/Debugger_Symbols.cpp:45-55, 774, 814-817, source/frontends/mariani/AppDelegate.mm:1487-1491"
|
||||||
|
preloaded_at_init:
|
||||||
|
- APPLE2E.SYM
|
||||||
|
- A2_BASIC.SYM
|
||||||
|
- A2_DOS33.SYM2
|
||||||
|
- A2_USER1.SYM
|
||||||
|
loaded_on_command:
|
||||||
|
- A2_ASM.SYM
|
||||||
|
- A2_USER2.SYM
|
||||||
|
- A2_SRC1.SYM
|
||||||
|
- A2_SRC2.SYM
|
||||||
|
- A2_PRODOS.SYM
|
||||||
|
note: >
|
||||||
|
DebugInitialize runs from InitialiseEmulator, so the preload happens even
|
||||||
|
when the debugger window is never opened. Only APPLE2E.SYM and A2_BASIC.SYM
|
||||||
|
are in the bundle. The user slots and the source and assembler tables have
|
||||||
|
no distributed content and are written by whoever needs them; a missing
|
||||||
|
table leaves the debugger running without those names.
|
||||||
|
|
||||||
|
debugger_scripts:
|
||||||
|
- filename: DebuggerAutoRun.txt
|
||||||
|
source_ref: "source/Debugger/Debug.cpp:365, source/Debugger/Debug.cpp:9440-9473"
|
||||||
|
note: >
|
||||||
|
Run once at the first DebugInitialize, from the current directory and
|
||||||
|
then from the support directory. Holds debugger commands written by the
|
||||||
|
user; the copy in the source tree is empty.
|
||||||
|
|
||||||
|
user_supplied_roms:
|
||||||
|
options:
|
||||||
|
- option: "--rom"
|
||||||
|
accepts: "12 KB image at $D000 or 16 KB image at $C000, any path"
|
||||||
|
source_ref: "source/frontends/common2/argparser.cpp:197, source/frontends/common2/programoptions.cpp:81-91, source/Memory.cpp:2173-2213"
|
||||||
|
- option: "--f8rom"
|
||||||
|
accepts: "2 KB image at $F800, any path"
|
||||||
|
source_ref: "source/frontends/common2/argparser.cpp:198, source/frontends/common2/programoptions.cpp:92-101, source/Memory.cpp:2139-2161"
|
||||||
|
note: >
|
||||||
|
Both are installed over the ROM already loaded from the bundle and neither
|
||||||
|
has a fixed name. AppleWin's -videorom has no equivalent: ParseCmdLine is
|
||||||
|
never called in this tree.
|
||||||
|
|
||||||
|
generated_files:
|
||||||
|
written_only:
|
||||||
|
- AppleWin.log
|
||||||
|
- Trace.txt
|
||||||
|
- "save states"
|
||||||
|
- "screen recordings and screenshots"
|
||||||
|
- "printer spool file"
|
||||||
|
written_and_read_back:
|
||||||
|
- applewin.yaml
|
||||||
|
- AppleWinDebugger.cfg
|
||||||
|
note: >
|
||||||
|
applewin.yaml is the configuration registry, created under the settings
|
||||||
|
root and overridable with --conf and --registry. All of these are produced
|
||||||
|
by the emulator, none is user-supplied.
|
||||||
|
|
||||||
|
help_book:
|
||||||
|
filename: Mariani.help
|
||||||
|
reason: "Help bundle opened by AppKit through CFBundleHelpBookName, not by emulator code"
|
||||||
|
source_ref: "source/frontends/mariani/Mariani-Info.plist:42-45, source/frontends/mariani/Base.lproj/MainMenu.xib:264"
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
emulator: "MD.emu"
|
||||||
|
type: standalone
|
||||||
|
core_classification: community_fork
|
||||||
|
source: "https://github.com/Rakashazi/emu-ex-plus-alpha"
|
||||||
|
upstream: "https://github.com/ekeeke/Genesis-Plus-GX"
|
||||||
|
profiled_date: "2026-08-12"
|
||||||
|
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
|
||||||
|
upstream_commit: "27426f00aa68f9f358c86919e8a40985326fa05b"
|
||||||
|
core_version: "1.5.85"
|
||||||
|
display_name: "Sega - MS/MD/CD (MD.emu)"
|
||||||
|
mode: standalone
|
||||||
|
cores:
|
||||||
|
- "md-emu"
|
||||||
|
- "MD.emu"
|
||||||
|
- "MD-EMU"
|
||||||
|
systems:
|
||||||
|
- sega-megadrive
|
||||||
|
- sega-megacd
|
||||||
|
- sega-mastersystem
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Android and Linux member of the EX Emulator series by Robert Broglia, published
|
||||||
|
as com.explusalpha.MdEmu (MD.emu/metadata/conf.mk:2,4,6,7, README.md:3-4) and
|
||||||
|
reached by ES-DE through its MD-EMU find rule. Genesis Plus GX is vendored under
|
||||||
|
MD.emu/src/genplus-gx and driven by the app's own system, input and audio layers
|
||||||
|
(MD.emu/src/CMakeLists.txt:6-55), while the Sega CD hardware comes from the Gens
|
||||||
|
code PicoDrive carried (MD.emu/src/scd/LC89510.cc:1-7) and disc images are read
|
||||||
|
through Mednafen's CD layer (MD.emu/CMakeLists.txt:12). The build defines
|
||||||
|
LSB_FIRST, NO_SYSTEM_PICO and MDFN_CD_NO_CCD (MD.emu/CMakeLists.txt:25), leaving
|
||||||
|
Pico out and CD support in. Content is read from .bin, .smd, .md, .gen and .sms
|
||||||
|
cartridge images and from .cue, .iso and .chd discs (MD.emu/metadata/conf.mk:5,
|
||||||
|
MD.emu/src/main/system.ccm:91-101). A .sms name switches the machine to Power
|
||||||
|
Base Converter mode (MD.emu/src/genplus-gx/loadrom.cc:383-387); Game Gear and
|
||||||
|
SG-1000 sit inside #if 0 blocks in the renderer with no SYSTEM_GG or SYSTEM_SG
|
||||||
|
defined anywhere in the tree (MD.emu/src/genplus-gx/vdp_render.cc:934-962,974-989,
|
||||||
|
MD.emu/src/genplus-gx/system.h:35-40).
|
||||||
|
|
||||||
|
The CD boot ROM is the one file the user supplies and it carries no name of its
|
||||||
|
own. Three pickers store arbitrary URIs under USA CD BIOS, Japan CD BIOS and
|
||||||
|
Europe CD BIOS, filtered on the cartridge extensions
|
||||||
|
(MD.emu/src/main/EmuMenuViews.cc:289-346, MD.emu/src/main/system.ccm:84-86,136,
|
||||||
|
MD.emu/src/main/options.cc:57-61,86-90). Loading a disc picks one of the three by
|
||||||
|
region: the Game Region setting when it is not Auto, otherwise byte 0x20b of the
|
||||||
|
boot sector, 0x7a for USA, 0x64 for Europe, anything else Japan
|
||||||
|
(MD.emu/src/main/Main.cc:254-264,311-332,
|
||||||
|
MD.emu/src/main/EmuMenuViews.cc:132-144,167-170, MD.emu/src/main/options.cc:31).
|
||||||
|
An empty path ends the load with "Set a {} BIOS in the Options" and a failed read
|
||||||
|
with "Error loading BIOS" (MD.emu/src/main/Main.cc:333-339). The file goes into
|
||||||
|
the cartridge buffer, and a path ending in .zip, .7z or .rar is scanned instead,
|
||||||
|
the first entry with a cartridge extension being taken
|
||||||
|
(MD.emu/src/main/Main.cc:337,
|
||||||
|
imagine/src/base/common/ApplicationContext.cc:542-562,
|
||||||
|
imagine/src/fs/ArchiveFS.cc:75-78). init_rom accepts the image only at exactly
|
||||||
|
131072 bytes with "BOOT" at 0x124 or 0x128 of the raw bytes, which is what raises
|
||||||
|
sCD.isActive; anything else ends the load with "Invalid BIOS"
|
||||||
|
(MD.emu/src/genplus-gx/loadrom.cc:426-432, MD.emu/src/main/Main.cc:340-344).
|
||||||
|
Cartridge content never reads it.
|
||||||
|
|
||||||
|
No other boot ROM exists here. t_config has no bios field
|
||||||
|
(MD.emu/src/genplus-config.h:46-54), the Master System mapper table names BIOS
|
||||||
|
only in two game titles (MD.emu/src/genplus-gx/cart_hw/sms_cart.cc:119,126), and
|
||||||
|
the TMSS OS ROM is copied out of the loaded image rather than read
|
||||||
|
from a file, behind a config.tmss bit nothing turns on
|
||||||
|
(MD.emu/src/genplus-gx/genesis.cc:313-320,
|
||||||
|
MD.emu/src/genplus-gx/mem68k.cc:471-476). Upstream's load_bios and the
|
||||||
|
bios_CD_U.bin, bios_CD_E.bin and bios_CD_J.bin names it opens have no counterpart
|
||||||
|
in this tree (upstream core/loadrom.c:394-415,
|
||||||
|
upstream libretro/libretro.c:3416-3418).
|
||||||
|
|
||||||
|
The lock-on ROMs read nothing. osd.h keeps upstream's ggenie.bin, areplay.bin,
|
||||||
|
sk.bin and sk2chip.bin paths and all three loaders are compiled
|
||||||
|
(MD.emu/src/osd.h:13-16, MD.emu/src/genplus-gx/cart_hw/ggenie.cc:43-49,
|
||||||
|
MD.emu/src/genplus-gx/cart_hw/areplay.cc:43-49,
|
||||||
|
MD.emu/src/genplus-gx/cart_hw/md_cart.cc:499-531), but every one of them hangs off
|
||||||
|
config.lock_on, which the value initialised config object leaves at zero and no
|
||||||
|
code in the tree ever writes (MD.emu/src/main/AppMeta.cc:26,
|
||||||
|
MD.emu/src/genplus-gx/cart_hw/md_cart.cc:499,702,850). There is no menu item and
|
||||||
|
no config key for it (MD.emu/src/main/system.ccm:81-89), where the libretro port
|
||||||
|
drives the same switch from a core option
|
||||||
|
(upstream libretro/libretro.c:1715-1721).
|
||||||
|
|
||||||
|
Per content the app writes and reads files named after the ROM: .srm cartridge
|
||||||
|
backup memory, .brm CD backup memory it formats itself when absent
|
||||||
|
(MD.emu/src/main/Main.cc:93-101,124-233), .gp states
|
||||||
|
(MD.emu/src/main/system.ccm:162) and a .pat cheat list under the cheats path
|
||||||
|
(MD.emu/src/main/Cheats.cc:388-391,438-441). Settings live in MdEmu.config
|
||||||
|
(MD.emu/src/main/AppMeta.cc:34). Mednafen's image reader picks up an .sbi beside a
|
||||||
|
cue sheet when one is present
|
||||||
|
(EmuFramework/src/shared/mednafen/cdrom/CDAccess_Image.cpp:928-943), and
|
||||||
|
gpOverlay.png and the shader sources are drawn by the framework from the
|
||||||
|
application bundle (EmuFramework/include/emuframework/AssetManager.hh:61-66,
|
||||||
|
EmuFramework/src/AssetManager.cc:58-73, MD.emu/src/main/AppMeta.cc:188-199).
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: bios_CD_U.bin
|
||||||
|
system: sega-megacd
|
||||||
|
region: [north-america]
|
||||||
|
required: true
|
||||||
|
agnostic: true
|
||||||
|
size: 131072
|
||||||
|
validation: [size, signature]
|
||||||
|
config_key: "CFGKEY_MD_CD_BIOS_USA_PATH"
|
||||||
|
description: "Sega CD boot ROM read for the USA region"
|
||||||
|
note: >-
|
||||||
|
Picked by the user from any path, under any name ending in .bin, .smd, .md,
|
||||||
|
.gen or .sms, or inside a .zip, .7z or .rar holding one. The tests are the
|
||||||
|
length and the "BOOT" text at 0x124 or 0x128; a file failing either aborts
|
||||||
|
the load rather than falling back.
|
||||||
|
source_ref: "MD.emu/src/main/Main.cc:311-344 (region choice, read, checks), MD.emu/src/genplus-gx/loadrom.cc:426-432 (size and signature), MD.emu/src/main/EmuMenuViews.cc:290-295,317-345 (picker and filter)"
|
||||||
|
|
||||||
|
- name: bios_CD_J.bin
|
||||||
|
system: sega-megacd
|
||||||
|
region: [japan]
|
||||||
|
required: true
|
||||||
|
agnostic: true
|
||||||
|
size: 131072
|
||||||
|
validation: [size, signature]
|
||||||
|
config_key: "CFGKEY_MD_CD_BIOS_JPN_PATH"
|
||||||
|
description: "Mega CD boot ROM read for the Japan region"
|
||||||
|
note: >-
|
||||||
|
Taken by the default branch: USA and Europe go to the other two paths and
|
||||||
|
every other region code lands here, both Japanese ones included.
|
||||||
|
source_ref: "MD.emu/src/main/Main.cc:311-344 (region choice, read, checks), MD.emu/src/genplus-gx/loadrom.cc:426-432 (size and signature), MD.emu/src/main/EmuMenuViews.cc:290-295,317-345 (picker and filter)"
|
||||||
|
|
||||||
|
- name: bios_CD_E.bin
|
||||||
|
system: sega-megacd
|
||||||
|
region: [europe]
|
||||||
|
required: true
|
||||||
|
agnostic: true
|
||||||
|
size: 131072
|
||||||
|
validation: [size, signature]
|
||||||
|
config_key: "CFGKEY_MD_CD_BIOS_EUR_PATH"
|
||||||
|
description: "Mega CD boot ROM read for the Europe region"
|
||||||
|
note: >-
|
||||||
|
Reached when the boot sector byte at 0x20b is 0x64 or the Game Region
|
||||||
|
setting is Europe.
|
||||||
|
source_ref: "MD.emu/src/main/Main.cc:311-344 (region choice, read, checks), MD.emu/src/genplus-gx/loadrom.cc:426-432 (size and signature), MD.emu/src/main/EmuMenuViews.cc:290-295,317-345 (picker and filter)"
|
||||||
@@ -0,0 +1,201 @@
|
|||||||
|
emulator: melonDS Nightly
|
||||||
|
type: standalone
|
||||||
|
core_classification: community_fork
|
||||||
|
source: "https://github.com/rafaelvcaetano/melonDS-android"
|
||||||
|
upstream: "https://github.com/rafaelvcaetano/melonDS-android-lib"
|
||||||
|
source_commit: "ae8790bdb4bf01555c2f168ab9bc77fbeb5dceb6"
|
||||||
|
upstream_commit: "431ab4bd0003c4356e25fce89640ae1004579b9b"
|
||||||
|
profiled_date: "2026-08-12"
|
||||||
|
core_version: "2.0.1 (NIGHTLY)"
|
||||||
|
display_name: "Nintendo - DS (melonDS Nightly)"
|
||||||
|
cores: ["melonds-nightly"]
|
||||||
|
systems: [nintendo-ds, nintendo-dsi]
|
||||||
|
mode: standalone
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Android port of melonDS. The emulation code is the melonDS-android-lib
|
||||||
|
submodule, a fork of melonDS-emu/melonDS pinned at 431ab4bd and declaring
|
||||||
|
version 1.1 (CMakeLists.txt:20); the app around it is Kotlin plus a JNI layer
|
||||||
|
under app/src/main/cpp.
|
||||||
|
|
||||||
|
Nightly is a product flavor, not a separate tree: the build dimension "build"
|
||||||
|
has prod and nightly, and nightly sets applicationIdSuffix ".nightly" and the
|
||||||
|
version suffix " (NIGHTLY)" (app/build.gradle.kts:59-61,76-79), giving the package
|
||||||
|
id me.magnum.melonds.nightly. Its source set holds an app name and a launcher
|
||||||
|
icon (app/src/nightly/res), and the gitHubNightly set points the update check
|
||||||
|
at the nightly release instead of the tagged one
|
||||||
|
(app/src/gitHubNightly/java/me/magnum/melonds/github/repositories/GitHubNightlyUpdatesRepository.kt:31).
|
||||||
|
No load path differs from the prod flavor.
|
||||||
|
|
||||||
|
Files live in two directories the user picks through the storage access
|
||||||
|
framework, stored in the preferences bios_dir and dsi_bios_dir
|
||||||
|
(app/src/main/res/xml/pref_custom_firmware.xml:29-39). Both are read by
|
||||||
|
basename, so bios7.bin, bios9.bin and firmware.bin each name a DS image in one
|
||||||
|
directory and a DSi image in the other; the accepted lengths are what tell them
|
||||||
|
apart. The app lists the expected names on screen when a directory is unset or
|
||||||
|
rejected (app/src/main/res/values/strings.xml:116,118). Entries below carry the
|
||||||
|
basename the app opens in the path, under the console identifier the picker
|
||||||
|
binds to each directory, ds and dsi
|
||||||
|
(app/src/main/res/xml/pref_custom_firmware.xml:33,39).
|
||||||
|
|
||||||
|
use_custom_bios defaults off (app/src/main/res/xml/pref_custom_firmware.xml:11,
|
||||||
|
SharedPreferencesSettingsRepository.kt:258-260). With it off, launching a ROM
|
||||||
|
skips the directory check entirely and the core substitutes FreeBIOS and a
|
||||||
|
firmware built in memory, so DS games run with nothing supplied. Booting into
|
||||||
|
the firmware menu instead of a ROM always turns it on
|
||||||
|
(AndroidEmulatorManager.kt:247-253), as does any per-ROM console override
|
||||||
|
(AndroidEmulatorManager.kt:239). DSi needs both directories: the DSi check
|
||||||
|
runs the DS check after its own (ConfigurationDirectoryVerifier.kt:13-21).
|
||||||
|
|
||||||
|
The generated firmware keeps its Wi-Fi access point block in wfcsettings.bin,
|
||||||
|
read at boot and written back by the emulator
|
||||||
|
(EmulatorArgsBuilder.cpp:189,200-226, MelonInstance.cpp:58-62). It resolves
|
||||||
|
against context.filesDir (PlatformAndroid.cpp:158-163,
|
||||||
|
SharedPreferencesSettingsRepository.kt:155), app-private internal storage the
|
||||||
|
user cannot write to, and holds settings this build produced. Not listed below:
|
||||||
|
there is nothing to obtain.
|
||||||
|
|
||||||
|
Neither SD card is reachable in this build. getSDCardArgs returns nothing when
|
||||||
|
a card is disabled (SDCardArgsBuilder.cpp:19-20) and the JNI layer hardcodes
|
||||||
|
both the DSi card and the homebrew DLDI card to disabled
|
||||||
|
(MelonDSAndroidConfiguration.cpp:93-94), with no preference anywhere in the app
|
||||||
|
to turn either on; the README lists DSi SD card support under missing features. The Action Replay database the core can parse is likewise
|
||||||
|
never built: ARDatabaseDAT is reached only from src/frontend/qt_sdl, and the
|
||||||
|
Android build sets BUILD_QT_SDL OFF and links the core alone
|
||||||
|
(app/CMakeLists.txt:8,73). Cheats are entered in the app's own database.
|
||||||
|
|
||||||
|
files:
|
||||||
|
# --- DS BIOS directory (preference bios_dir) ---
|
||||||
|
- name: bios9.bin
|
||||||
|
aliases: [NDS_Bios9.bin, nds9.bin]
|
||||||
|
path: "ds/bios9.bin"
|
||||||
|
system: nintendo-ds
|
||||||
|
config_key: "bios_dir"
|
||||||
|
description: "Nintendo DS ARM9 BIOS"
|
||||||
|
required: false
|
||||||
|
hle_fallback: true
|
||||||
|
size: 4096
|
||||||
|
crc32: 2ab23573
|
||||||
|
validation: [size, crc32]
|
||||||
|
note: >-
|
||||||
|
The picker rejects any length other than 4096. The core hashes what it
|
||||||
|
loads and keeps the result as a flag rather than refusing the image: a
|
||||||
|
CRC32 other than 2ab23573 marks the BIOS non-native, which forces direct
|
||||||
|
boot and makes SetupDirectBoot copy the Nintendo logo out of the ROM header
|
||||||
|
into the BIOS at 0x20 so DS-to-GBA communication still works. FreeBIOS is
|
||||||
|
substituted when custom BIOS is off.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:51-53,100-113, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:149, app/src/main/cpp/EmulatorArgsBuilder.cpp:19-40, src/MemConstants.h:30-36, src/NDS.cpp:807-811, src/NDS.cpp:277-296,303-310"
|
||||||
|
|
||||||
|
- name: bios7.bin
|
||||||
|
aliases: [NDS_Bios7.bin, nds7.bin]
|
||||||
|
path: "ds/bios7.bin"
|
||||||
|
system: nintendo-ds
|
||||||
|
config_key: "bios_dir"
|
||||||
|
description: "Nintendo DS ARM7 BIOS"
|
||||||
|
required: false
|
||||||
|
hle_fallback: true
|
||||||
|
size: 16384
|
||||||
|
crc32: 1280f0d5
|
||||||
|
validation: [size, crc32]
|
||||||
|
note: >-
|
||||||
|
The picker rejects any length other than 16384. A CRC32 other than
|
||||||
|
1280f0d5 marks the BIOS non-native, which forces direct boot and leaves
|
||||||
|
Key1_KeyBuf zeroed instead of seeding it from offset 0x0030, so cartridge
|
||||||
|
Key1 encryption is unavailable. FreeBIOS is substituted when custom BIOS is
|
||||||
|
off.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:47-49,100-113, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:148, app/src/main/cpp/EmulatorArgsBuilder.cpp:42-62, src/MemConstants.h:30-36, src/NDS.cpp:801-805, src/NDSCart.cpp:138-151"
|
||||||
|
|
||||||
|
- name: firmware.bin
|
||||||
|
aliases: [dsfirmware.bin]
|
||||||
|
path: "ds/firmware.bin"
|
||||||
|
system: nintendo-ds
|
||||||
|
config_key: "bios_dir"
|
||||||
|
description: "Nintendo DS firmware image"
|
||||||
|
required: false
|
||||||
|
hle_fallback: true
|
||||||
|
size_options: [131072, 262144, 524288]
|
||||||
|
validation: [size]
|
||||||
|
note: >-
|
||||||
|
Three lengths are accepted and everything else is rejected. Loaded only in
|
||||||
|
DS mode; DSi mode reads the firmware from the DSi directory but still needs
|
||||||
|
this file present, because the DSi check re-runs the DS directory check.
|
||||||
|
Nickname, message, language, colour, birthday and MAC are written into the
|
||||||
|
image before it reaches the core. A firmware the core reports as
|
||||||
|
non-bootable forces direct boot. When custom BIOS is off the core builds a
|
||||||
|
firmware in memory instead.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:55-70,120, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:150, app/src/main/cpp/EmulatorArgsBuilder.cpp:93-185,289-337, src/NDS.cpp:286-288"
|
||||||
|
|
||||||
|
# --- DSi BIOS directory (preference dsi_bios_dir) ---
|
||||||
|
- name: dsi_bios9.bin
|
||||||
|
aliases: [biosdsi9.bin]
|
||||||
|
path: "dsi/bios9.bin"
|
||||||
|
system: nintendo-dsi
|
||||||
|
config_key: "dsi_bios_dir"
|
||||||
|
description: "Nintendo DSi ARM9i BIOS"
|
||||||
|
required: true
|
||||||
|
size: 65536
|
||||||
|
validation: [size]
|
||||||
|
note: >-
|
||||||
|
Opened as bios9.bin inside the DSi directory. The picker rejects any length
|
||||||
|
other than 65536, and no hash is computed on it. A load failure aborts the
|
||||||
|
launch. DSi boot copies four blocks out of it
|
||||||
|
into ITCM from 0x87F4, 0x9920, 0x99A0 and 0xA9E8, and cartridge Key1 in DSi
|
||||||
|
mode is seeded from 0x99A0. With the boot screen off, the reset vector is
|
||||||
|
overwritten in memory with 0xEAFFFFFE.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:76-78,100-113,124, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:152, app/src/main/cpp/EmulatorArgsBuilder.cpp:235-260,475-477, src/DSi.cpp:950-955, src/NDSCart.cpp:127-134"
|
||||||
|
|
||||||
|
- name: dsi_bios7.bin
|
||||||
|
aliases: [biosdsi7.bin]
|
||||||
|
path: "dsi/bios7.bin"
|
||||||
|
system: nintendo-dsi
|
||||||
|
config_key: "dsi_bios_dir"
|
||||||
|
description: "Nintendo DSi ARM7i BIOS"
|
||||||
|
required: true
|
||||||
|
size: 65536
|
||||||
|
validation: [size]
|
||||||
|
note: >-
|
||||||
|
Opened as bios7.bin inside the DSi directory. The picker rejects any length
|
||||||
|
other than 65536, and no hash is computed on it. A load failure aborts the
|
||||||
|
launch. Offset 0x8308 holds the ES key used
|
||||||
|
to derive the NAND AES keys, so the NAND cannot be opened without this
|
||||||
|
exact image. DSi boot copies four blocks out of it from 0x8188, 0xB5D8,
|
||||||
|
0xC6D0 and 0xD718. With the boot screen off, the reset vector is
|
||||||
|
overwritten in memory with 0xEAFFFFFE.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:72-74,100-113,123, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:151, app/src/main/cpp/EmulatorArgsBuilder.cpp:262-287,347,471-473, src/DSi.cpp:959-962"
|
||||||
|
|
||||||
|
- name: dsi_firmware.bin
|
||||||
|
aliases: [dsifirmware.bin]
|
||||||
|
path: "dsi/firmware.bin"
|
||||||
|
system: nintendo-dsi
|
||||||
|
config_key: "dsi_bios_dir"
|
||||||
|
description: "Nintendo DSi firmware image"
|
||||||
|
required: true
|
||||||
|
size: 131072
|
||||||
|
validation: [size]
|
||||||
|
note: >-
|
||||||
|
Opened as firmware.bin inside the DSi directory, where only 131072 is
|
||||||
|
accepted against three accepted lengths in the DS directory. Read in DSi
|
||||||
|
mode in place of the DS firmware, and customised the same way. The core has
|
||||||
|
no generator for DSi firmware, so nothing stands in for it.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:80-93,125, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:153, app/src/main/cpp/EmulatorArgsBuilder.cpp:289-337"
|
||||||
|
|
||||||
|
- name: dsi_nand.bin
|
||||||
|
path: "dsi/nand.bin"
|
||||||
|
agnostic: true
|
||||||
|
system: nintendo-dsi
|
||||||
|
config_key: "dsi_bios_dir"
|
||||||
|
description: "Nintendo DSi NAND dump"
|
||||||
|
required: true
|
||||||
|
storage: large_file
|
||||||
|
validation: [existence]
|
||||||
|
note: >-
|
||||||
|
Opened as nand.bin inside the DSi directory. The only test the app makes is
|
||||||
|
that the entry is a file: no length, no hash. It is opened for read and
|
||||||
|
write and must already exist. The core
|
||||||
|
wants the nocash footer "DSi eMMC CID/CPU" at 0x40 before the end, falling
|
||||||
|
back to 0x000FF800 for images cut short by external tools, and reads the
|
||||||
|
eMMC CID and console ID from there to derive the FAT and ES keys with the
|
||||||
|
key at 0x8308 of the ARM7i BIOS. Touchscreen calibration is rewritten in
|
||||||
|
the mounted user data on every launch. Any regional dump works. A DSiWare
|
||||||
|
title is refused unless it is already installed in this image.
|
||||||
|
source_ref: "app/src/main/java/me/magnum/melonds/impl/FileSystemConfigurationDirectoryVerifier.kt:95-98,126, app/src/main/java/me/magnum/melonds/impl/SharedPreferencesSettingsRepository.kt:154, app/src/main/cpp/EmulatorArgsBuilder.cpp:339-420,479-481, app/src/main/java/me/magnum/melonds/domain/services/EmulatorLaunchPreconditionChecker.kt:47-70, src/DSi_NAND.cpp:43-70"
|
||||||
@@ -0,0 +1,811 @@
|
|||||||
|
emulator: "MSX.emu"
|
||||||
|
type: standalone
|
||||||
|
core_classification: community_fork
|
||||||
|
source: "https://github.com/Rakashazi/emu-ex-plus-alpha"
|
||||||
|
upstream: "http://bluemsx.msxblue.com/"
|
||||||
|
profiled_date: "2026-08-12"
|
||||||
|
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
|
||||||
|
core_version: "1.5.85"
|
||||||
|
display_name: "MSX/ColecoVision (MSX.emu)"
|
||||||
|
mode: standalone
|
||||||
|
cores:
|
||||||
|
- "msx-emu"
|
||||||
|
- "MSX.emu"
|
||||||
|
- "MSX-EMU"
|
||||||
|
systems:
|
||||||
|
- msx
|
||||||
|
- msx1
|
||||||
|
- msx2
|
||||||
|
- msx2plus
|
||||||
|
- msxturbor
|
||||||
|
- colecovision
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Android and Linux member of the EX Emulator series by Robert Broglia, published as
|
||||||
|
com.explusalpha.MsxEmu (MSX.emu/metadata/conf.mk:2,4,6,7, README.md:3-4) and reached
|
||||||
|
by ES-DE through its MSX-EMU find rule. blueMSX is vendored under
|
||||||
|
MSX.emu/src/blueMSX and driven by the app's own board, ROM loader and archive
|
||||||
|
layers (MSX.emu/src/CMakeLists.txt:6-16). Content is read from .rom, .mx1, .mx2
|
||||||
|
and .col cartridge images and from .dsk disk images, directly or as the first
|
||||||
|
matching entry of a .zip, .7z or .rar (MSX.emu/src/main/system.ccm:83-87,
|
||||||
|
MSX.emu/src/main/Main.cc:521-618). A disk image of 1 MB or more is mounted on a
|
||||||
|
Sunrise IDE controller instead of a floppy drive
|
||||||
|
(MSX.emu/src/main/Main.cc:549,556-561,588-603).
|
||||||
|
|
||||||
|
Two of blueMSX's board types are built, every MSX variant and ColecoVision.
|
||||||
|
createBoard returns 0 for anything else, and SVI, ColecoAdam, SG-1000, SF-7000 and
|
||||||
|
SC-3000 have neither a board file in the build nor their mappers
|
||||||
|
(MSX.emu/src/main/Main.cc:171-200, MSX.emu/src/CMakeLists.txt:80-83,
|
||||||
|
MSX.emu/src/blueMSX/Common/MsxTypes.h:145,150).
|
||||||
|
|
||||||
|
Everything the emulator loads comes from a machine definition. machineCreate opens
|
||||||
|
Machines/<name>/config.ini and reads its [Slots] section, where each line carries a
|
||||||
|
slot, a subslot, a start page, a page count, a numeric ROM type and the ROM's path
|
||||||
|
(MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468). machineInitialize then loads
|
||||||
|
each named path, and a file it cannot read sets success to 0 for every ROM type but
|
||||||
|
one, which fails msxCreate or colecoCreate and ends the load with "Error loading
|
||||||
|
machine files for" (MSX.emu/src/blueMSX/Board/Machine.c:1168-1181,
|
||||||
|
MSX.emu/src/blueMSX/Board/MSX.c:247,277-281,
|
||||||
|
MSX.emu/src/blueMSX/Board/Coleco.c:403,416-420,
|
||||||
|
MSX.emu/src/main/Main.cc:215-219,262-269). Every ROM a definition names is therefore
|
||||||
|
required for that machine, and only for it.
|
||||||
|
|
||||||
|
Paths are resolved against the user's BIOS folder first and the application bundle
|
||||||
|
second (MSX.emu/src/main/RomLoader.cc:57-92,94-133,135-144). That folder may be a
|
||||||
|
directory or an archive and is refused unless it carries a Machines entry
|
||||||
|
(MSX.emu/src/main/options.cc:212-228); with none set the app falls back to the asset
|
||||||
|
path on Linux and to the storage path elsewhere
|
||||||
|
(MSX.emu/src/main/options.cc:230-243). The machine picker lists every subdirectory
|
||||||
|
holding a config.ini and appends the three bundled C-BIOS names on Android, where
|
||||||
|
the asset directory enumeration skips directories
|
||||||
|
(MSX.emu/src/main/EmuMenuViews.cc:32-97,548-608).
|
||||||
|
|
||||||
|
The default machine is MSX2 and the default Coleco machine is COL - ColecoVision; a
|
||||||
|
.col name picks the second and a session setting overrides both
|
||||||
|
(MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/Main.cc:534,563-577). Neither
|
||||||
|
default is bundled. The application ships only the three C-BIOS machines in its
|
||||||
|
assets (MSX.emu/res/firmware/Machines, symlinked into MSX.emu/res/android/assets),
|
||||||
|
which run cartridge images; the definitions and ROMs behind every other name come
|
||||||
|
from MSX.emu.zip, the firmware set on the author's site, whose Machines folder holds
|
||||||
|
MSX, MSX2, MSX2+, MSXturboR, COL - ColecoVision and Shared Roms. Its MSXturboR
|
||||||
|
definition spells MSXTR, MSXTREXT, MSXTRMUS, MSXTROPT and MSXDOS23 with a lowercase
|
||||||
|
.rom extension where blueMSX's own set spells them .ROM, and the loader opens the
|
||||||
|
string verbatim.
|
||||||
|
|
||||||
|
One ROM path is written in the code rather than in a definition,
|
||||||
|
Machines/Shared Roms/SUNRISEIDE.rom
|
||||||
|
(MSX.emu/src/blueMSX/Memory/MegaromCartridge.c:302-311). The four others cannot be
|
||||||
|
reached. Beer IDE, Gouda SCSI and the two Nowind images hang off cart names the app
|
||||||
|
never passes and off mappers EXCLUDE_IDE_DEVICES and EXCLUDE_NOWIND compile out, and
|
||||||
|
the FMPAC branch needs ROM_FMPAC as the incoming type where boardChangeCartridge
|
||||||
|
only ever passes ROM_UNKNOWN, ROM_SCC, ROM_SCCPLUS and ROM_SUNRISEIDE
|
||||||
|
(MSX.emu/src/blueMSX/Memory/MegaromCartridge.c:283-335,
|
||||||
|
MSX.emu/src/blueMSX/Common/MsxTypes.h:145-151, MSX.emu/src/main/Main.cc:56-70,
|
||||||
|
MSX.emu/src/main/EmuMenuViews.cc:385-413). Two of them are also spelled in lower
|
||||||
|
case there against the upper case of the set.
|
||||||
|
|
||||||
|
No hash is checked anywhere, and the sizes below are the ones the shipped set
|
||||||
|
carries. The machine definitions still carry one, because config.ini is the name of
|
||||||
|
every definition there is and nothing else tells two of them apart; the values are
|
||||||
|
those of the emulator's own assets and of the author's firmware set. A single length
|
||||||
|
test exists, the Kanji mapper taking 131072 or 262144 bytes
|
||||||
|
and nothing else (MSX.emu/src/blueMSX/Memory/romMapperKanji.c:141-149). The other
|
||||||
|
mappers refuse only a ROM that does not fit the pages left in its slot, which is a
|
||||||
|
property of the definition rather than of the dump
|
||||||
|
(MSX.emu/src/blueMSX/Memory/romMapperNormal.c:60-65,
|
||||||
|
MSX.emu/src/blueMSX/Memory/romMapperCasette.c:58-68,
|
||||||
|
MSX.emu/src/blueMSX/Memory/romMapperMsxMusic.c:55-68,
|
||||||
|
MSX.emu/src/blueMSX/Memory/romMapperDRAM.c:88-99), and the Philips FDC, Panasonic
|
||||||
|
FDC and MoonSound mappers test nothing at all
|
||||||
|
(MSX.emu/src/blueMSX/Memory/romMapperPhilipsFdc.c:139-146,
|
||||||
|
MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:236-262,
|
||||||
|
MSX.emu/src/blueMSX/Memory/romMapperMoonsound.c:129-158).
|
||||||
|
|
||||||
|
The ROM database is compiled in. mediaDbGuessRom matches a cartridge's SHA-1 against
|
||||||
|
the table of EmbeddedRomDBData.h to pick its mapper, the TinyXML and MediaDb.cpp
|
||||||
|
sources that would read msxromdb.xml and msxsysromdb.xml are built only under
|
||||||
|
useXMLDB, and the two calls that loaded them are commented out
|
||||||
|
(MSX.emu/src/main/MediaDb.cc:50-59, MSX.emu/src/CMakeLists.txt:174-188,
|
||||||
|
MSX.emu/src/main/system.ccm:165-167). The floppy drive sounds read nothing either:
|
||||||
|
NO_EMBEDDED_SAMPLES turns fdcAudioCreate into a stub and takes the FdcRead.wav and
|
||||||
|
FdcMotor.wav reads with it (MSX.emu/CMakeLists.txt:33,
|
||||||
|
MSX.emu/src/blueMSX/IoDevice/FdcAudio.c:35-42,3456-3486).
|
||||||
|
|
||||||
|
Per content the app writes and reads files under its save path, <machine>.cmos for a
|
||||||
|
battery backed clock, an SRAM image named after the cartridge, and .sta save states
|
||||||
|
in blueMSX's own zip format (MSX.emu/src/blueMSX/Board/MSX.c:232-233,
|
||||||
|
MSX.emu/src/blueMSX/Memory/sramLoader.c:36-74,81-99,
|
||||||
|
MSX.emu/src/main/Main.cc:45,380-383,385-429). Settings live in MsxEmu.config
|
||||||
|
(MSX.emu/src/main/AppMeta.cc:32). gpOverlay.png, kbOverlay.png, ui.png and the
|
||||||
|
shader sources are drawn by the framework from the application bundle.
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSX - C-BIOS/config.ini"
|
||||||
|
system: msx
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
category: game_data
|
||||||
|
size: 395
|
||||||
|
sha1: "5e36ed1fb6f148378de9f13e28013bd2d5d07ef4"
|
||||||
|
description: "C-BIOS MSX1 machine definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:450-468, MSX.emu/src/main/RomLoader.cc:135-144"
|
||||||
|
|
||||||
|
- name: "cbios_main_msx1.rom"
|
||||||
|
path: "Machines/MSX - C-BIOS/cbios_main_msx1.rom"
|
||||||
|
system: msx
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 32768
|
||||||
|
description: "C-BIOS MSX1 main ROM, slot 0-0 from page 0"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX - C-BIOS/config.ini:27, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/blueMSX/Memory/romMapperNormal.c:60-65"
|
||||||
|
|
||||||
|
- name: "cbios_logo_msx1.rom"
|
||||||
|
path: "Machines/MSX - C-BIOS/cbios_logo_msx1.rom"
|
||||||
|
system: msx
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
description: "C-BIOS MSX1 boot logo, slot 0-0 from page 4"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX - C-BIOS/config.ini:28, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/blueMSX/Memory/romMapperNormal.c:60-65"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSX2 - C-BIOS/config.ini"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
category: game_data
|
||||||
|
size: 472
|
||||||
|
sha1: "3968cca6fb977936af849d611bc4ebd4910dd81a"
|
||||||
|
description: "C-BIOS MSX2 machine definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:450-468, MSX.emu/src/main/RomLoader.cc:135-144"
|
||||||
|
|
||||||
|
- name: "cbios_main_msx2.rom"
|
||||||
|
path: "Machines/MSX2 - C-BIOS/cbios_main_msx2.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 32768
|
||||||
|
description: "C-BIOS MSX2 main ROM, slot 0-0 from page 0"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2 - C-BIOS/config.ini:28, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181"
|
||||||
|
|
||||||
|
- name: "cbios_logo_msx2.rom"
|
||||||
|
path: "Machines/MSX2 - C-BIOS/cbios_logo_msx2.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
description: "C-BIOS MSX2 boot logo, slot 0-0 from page 4"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2 - C-BIOS/config.ini:29, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181"
|
||||||
|
|
||||||
|
- name: "cbios_sub.rom"
|
||||||
|
path: "Machines/MSX2 - C-BIOS/cbios_sub.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
description: "C-BIOS MSX2 sub ROM, slot 3-0"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2 - C-BIOS/config.ini:30, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSX2+ - C-BIOS/config.ini"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
category: game_data
|
||||||
|
size: 534
|
||||||
|
sha1: "ac86b9962ac28326dbfcb1af71f3e9f9b2cc3649"
|
||||||
|
description: "C-BIOS MSX2+ machine definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:450-468, MSX.emu/src/main/RomLoader.cc:135-144"
|
||||||
|
|
||||||
|
- name: "cbios_main_msx2+.rom"
|
||||||
|
path: "Machines/MSX2+ - C-BIOS/cbios_main_msx2+.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 32768
|
||||||
|
description: "C-BIOS MSX2+ main ROM, slot 0-0 from page 0"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2+ - C-BIOS/config.ini:28, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181"
|
||||||
|
|
||||||
|
- name: "cbios_logo_msx2+.rom"
|
||||||
|
path: "Machines/MSX2+ - C-BIOS/cbios_logo_msx2+.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
description: "C-BIOS MSX2+ boot logo, slot 0-0 from page 4"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2+ - C-BIOS/config.ini:29, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181"
|
||||||
|
|
||||||
|
- name: "cbios_sub.rom"
|
||||||
|
path: "Machines/MSX2+ - C-BIOS/cbios_sub.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
description: "C-BIOS MSX2+ sub ROM, slot 3-0, same bytes as the MSX2 C-BIOS sub ROM"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2+ - C-BIOS/config.ini:30, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181"
|
||||||
|
|
||||||
|
- name: "cbios_music.rom"
|
||||||
|
path: "Machines/MSX2+ - C-BIOS/cbios_music.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
bundled: true
|
||||||
|
size: 16384
|
||||||
|
description: "C-BIOS MSX-MUSIC ROM, slot 3-1 from page 2"
|
||||||
|
source_ref: "MSX.emu/res/firmware/Machines/MSX2+ - C-BIOS/config.ini:31, MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/blueMSX/Memory/romMapperMsxMusic.c:55-68"
|
||||||
|
|
||||||
|
- name: "cbios.txt"
|
||||||
|
path: "cbios.txt"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
bundled: true
|
||||||
|
category: game_data
|
||||||
|
size: 10469
|
||||||
|
description: "C-BIOS 0.29 release notes and licence, bundled beside the machine folders"
|
||||||
|
note: >-
|
||||||
|
Shipped in the application bundle. No code reads it.
|
||||||
|
source_ref: "MSX.emu/res/firmware/cbios.txt"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSX/config.ini"
|
||||||
|
system: msx
|
||||||
|
required: true
|
||||||
|
category: game_data
|
||||||
|
size: 408
|
||||||
|
sha1: "483b2c34fcb3ddcf650314e45104f358ef74c98b"
|
||||||
|
description: "MSX1 machine definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSX2/config.ini"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
category: game_data
|
||||||
|
size: 649
|
||||||
|
sha1: "460ded0dbfc0285490da87a446b0321b6496aa5b"
|
||||||
|
description: "MSX2 machine definition, the default MSX machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSX2+/config.ini"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
category: game_data
|
||||||
|
size: 773
|
||||||
|
sha1: "cb7d14a17c4f4632f17ba5a64160cdd876dd6010"
|
||||||
|
description: "MSX2+ machine definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/MSXturboR/config.ini"
|
||||||
|
system: msxturbor
|
||||||
|
required: true
|
||||||
|
category: game_data
|
||||||
|
size: 941
|
||||||
|
sha1: "9836d109ec7879374dcd044da149f1b5aafd4664"
|
||||||
|
description: "MSX turbo R machine definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||||
|
|
||||||
|
- name: "config.ini"
|
||||||
|
path: "Machines/COL - ColecoVision/config.ini"
|
||||||
|
system: colecovision
|
||||||
|
required: true
|
||||||
|
category: game_data
|
||||||
|
size: 347
|
||||||
|
sha1: "0f0b7b73ba6f8677dfc5c824bb3edf6df2ff653e"
|
||||||
|
description: "ColecoVision machine definition, the default Coleco machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468, MSX.emu/src/main/RomLoader.cc:135-144, MSX.emu/src/main/system.ccm:75-76, MSX.emu/src/main/EmuMenuViews.cc:32-97"
|
||||||
|
|
||||||
|
- name: "MSX.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX.rom"
|
||||||
|
system: msx
|
||||||
|
required: true
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 main BIOS of the MSX machine, mapped through the cassette patch mapper"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperCasette.c:58-68"
|
||||||
|
|
||||||
|
- name: "PHILIPSDISK.rom"
|
||||||
|
path: "Machines/Shared Roms/PHILIPSDISK.rom"
|
||||||
|
system: msx
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "Philips floppy disk ROM, named by the MSX and MSX2 machine definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperPhilipsFdc.c:139-146"
|
||||||
|
|
||||||
|
- name: "MSX2.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 main BIOS of the MSX2 machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperCasette.c:58-68"
|
||||||
|
|
||||||
|
- name: "MSX2EXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2EXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 sub ROM of the MSX2 machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2PMUS.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2PMUS.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "MSX-MUSIC ROM, named by the MSX2 and MSX2+ machine definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperMsxMusic.c:55-68"
|
||||||
|
|
||||||
|
- name: "MOONSOUND.rom"
|
||||||
|
path: "Machines/Shared Roms/MOONSOUND.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
size: 2097152
|
||||||
|
description: "MoonSound wave ROM, named by the MSX2, MSX2+ and turbo R machine definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperMoonsound.c:129-158"
|
||||||
|
|
||||||
|
- name: "XBASIC2.rom"
|
||||||
|
path: "Machines/Shared Roms/XBASIC2.rom"
|
||||||
|
system: msx2
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "X-BASIC II ROM, named by the MSX2, MSX2+ and turbo R machine definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2P.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2P.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2+ main BIOS of the MSX2+ machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperCasette.c:58-68"
|
||||||
|
|
||||||
|
- name: "MSX2PEXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2PEXT.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2+ sub ROM of the MSX2+ machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "KANJI.rom"
|
||||||
|
path: "Machines/Shared Roms/KANJI.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
size_options: [131072, 262144]
|
||||||
|
validation: [size]
|
||||||
|
description: "Kanji character ROM, named by the MSX2+ and turbo R machine definitions"
|
||||||
|
note: >-
|
||||||
|
The one length test in the tree: the mapper returns 0 for any other size, which
|
||||||
|
fails the machine.
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperKanji.c:141-149"
|
||||||
|
|
||||||
|
- name: "MSXKANJI.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXKANJI.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
size: 32768
|
||||||
|
description: "Kanji BASIC ROM, named by the MSX2+ and turbo R machine definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "PANASONICDISK.rom"
|
||||||
|
path: "Machines/Shared Roms/PANASONICDISK.rom"
|
||||||
|
system: msx2plus
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "Panasonic floppy disk ROM of the MSX2+ machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:236-262"
|
||||||
|
|
||||||
|
- name: "MSXTR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXTR.rom"
|
||||||
|
system: msxturbor
|
||||||
|
required: true
|
||||||
|
size: 32768
|
||||||
|
description: "turbo R main BIOS, mapped through the Panasonic DRAM mapper"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperDRAM.c:88-99"
|
||||||
|
|
||||||
|
- name: "MSXTREXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXTREXT.rom"
|
||||||
|
system: msxturbor
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "turbo R sub ROM, mapped through the Panasonic DRAM mapper"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperDRAM.c:88-99"
|
||||||
|
|
||||||
|
- name: "MSXTRMUS.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXTRMUS.rom"
|
||||||
|
system: msxturbor
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "turbo R MSX-MUSIC ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXTROPT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXTROPT.rom"
|
||||||
|
system: msxturbor
|
||||||
|
required: true
|
||||||
|
size: 16384
|
||||||
|
description: "turbo R firmware ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXDOS23.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXDOS23.rom"
|
||||||
|
system: msxturbor
|
||||||
|
required: true
|
||||||
|
size: 65536
|
||||||
|
description: "MSX-DOS 2.3 disk ROM of the turbo R machine"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133, MSX.emu/src/blueMSX/Memory/romMapperTC8566AF.c:236-262"
|
||||||
|
|
||||||
|
- name: "coleco.rom"
|
||||||
|
path: "Machines/COL - ColecoVision/coleco.rom"
|
||||||
|
system: colecovision
|
||||||
|
required: true
|
||||||
|
size: 8192
|
||||||
|
description: "ColecoVision BIOS, slot 0-0 page 0"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "SUNRISEIDE.rom"
|
||||||
|
path: "Machines/Shared Roms/SUNRISEIDE.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
description: "Sunrise IDE controller ROM"
|
||||||
|
note: >-
|
||||||
|
The one ROM path written in the code instead of a machine definition. Read when
|
||||||
|
the Sunrise IDE device is inserted from the ROM/Disk Control menu and when a disk
|
||||||
|
image of 1 MB or more is mounted as a hard drive. Without it the mapper maps a
|
||||||
|
blank 512 KB ROM and the device still answers.
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Memory/MegaromCartridge.c:302-311, MSX.emu/src/main/EmuMenuViews.cc:403-413, MSX.emu/src/main/Main.cc:588-603, MSX.emu/src/blueMSX/Memory/romMapperSunriseIDE.c:194-211"
|
||||||
|
|
||||||
|
- name: "MSXAR.ROM"
|
||||||
|
path: "Machines/Shared Roms/MSXAR.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Arabic BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "ARAB1.ROM"
|
||||||
|
path: "Machines/Shared Roms/ARAB1.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Arabic character ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXBR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXBR.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Brazilian BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MICROSOLDISK.ROM"
|
||||||
|
path: "Machines/Shared Roms/MICROSOLDISK.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "Microsol floppy disk ROM of the Brazilian machines"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXFR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXFR.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 French BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXG.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXG.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 German BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXJ.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXJ.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Japanese BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXKR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXKR.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Korean BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXHAN.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXHAN.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 8192
|
||||||
|
description: "MSX1 Korean Hangul ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXR.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Russian BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXR2.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXR2.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Estonian BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXSE.ROM"
|
||||||
|
path: "Machines/Shared Roms/MSXSE.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Swedish BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSXSP.rom"
|
||||||
|
path: "Machines/Shared Roms/MSXSP.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX1 Spanish BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "NATIONALDISK.rom"
|
||||||
|
path: "Machines/Shared Roms/NATIONALDISK.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "National floppy disk ROM, shared by eight MSX1 definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "GCVMX80.ROM"
|
||||||
|
path: "Machines/Shared Roms/GCVMX80.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 8192
|
||||||
|
description: "Microsol VMX-80 character ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "RS232.ROM"
|
||||||
|
path: "Machines/Shared Roms/RS232.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 8192
|
||||||
|
description: "RS-232 interface ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "FMPAC.rom"
|
||||||
|
path: "Machines/Shared Roms/FMPAC.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
description: "FM-PAC cartridge ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "BEERIDE.ROM"
|
||||||
|
path: "Machines/Shared Roms/BEERIDE.ROM"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "Beer IDE controller ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "NOVAXIS.rom"
|
||||||
|
path: "Machines/Shared Roms/NOVAXIS.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "Gouda SCSI controller ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "nowindDos1.rom"
|
||||||
|
path: "Machines/Shared Roms/nowindDos1.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 524288
|
||||||
|
description: "Nowind MSX-DOS 1 image"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "nowindDos2.rom"
|
||||||
|
path: "Machines/Shared Roms/nowindDos2.rom"
|
||||||
|
system: msx
|
||||||
|
required: false
|
||||||
|
size: 524288
|
||||||
|
description: "Nowind MSX-DOS 2 image"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2AR.ROM"
|
||||||
|
path: "Machines/Shared Roms/MSX2AR.ROM"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Arabic BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2AREXT.ROM"
|
||||||
|
path: "Machines/Shared Roms/MSX2AREXT.ROM"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 Arabic sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "ARABIC.rom"
|
||||||
|
path: "Machines/Shared Roms/ARABIC.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Arabic character ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "PAINT.rom"
|
||||||
|
path: "Machines/Shared Roms/PAINT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 65536
|
||||||
|
description: "Arabic Painter ROM of the MSX2 Arabic definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "SWP.rom"
|
||||||
|
path: "Machines/Shared Roms/SWP.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "Arabic word processor ROM of the MSX2 Arabic definition"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2BR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2BR.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Brazilian BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2BREXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2BREXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 Brazilian sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2FR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2FR.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 French BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2FREXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2FREXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 French sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2G.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2G.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 German BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2GEXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2GEXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 German sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2J.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2J.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Japanese BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2JEXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2JEXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 Japanese sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2KR.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2KR.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Korean BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2KREXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2KREXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Korean sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2HAN.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2HAN.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Korean Hangul ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "HANGUL.rom"
|
||||||
|
path: "Machines/Shared Roms/HANGUL.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 131072
|
||||||
|
description: "Korean Hangul character ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2R.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2R.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Russian BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2R2.ROM"
|
||||||
|
path: "Machines/Shared Roms/MSX2R2.ROM"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Estonian BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2REXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2REXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 sub ROM of the Russian and Estonian definitions"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2SE.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2SE.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Swedish BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2SP.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2SP.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 32768
|
||||||
|
description: "MSX2 Spanish BIOS"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
|
- name: "MSX2SPEXT.rom"
|
||||||
|
path: "Machines/Shared Roms/MSX2SPEXT.rom"
|
||||||
|
system: msx2
|
||||||
|
required: false
|
||||||
|
size: 16384
|
||||||
|
description: "MSX2 Spanish sub ROM"
|
||||||
|
source_ref: "MSX.emu/src/blueMSX/Board/Machine.c:300-339,450-468,1168-1181, MSX.emu/src/main/RomLoader.cc:57-92,94-133"
|
||||||
|
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
emulator: Mupen64Plus AE
|
||||||
|
type: standalone
|
||||||
|
core_classification: community_fork
|
||||||
|
source: "https://github.com/mupen64plus-ae/mupen64plus-ae"
|
||||||
|
upstream: "https://github.com/mupen64plus-ae/mupen64plus-ae"
|
||||||
|
profiled_date: "2026-08-12"
|
||||||
|
source_commit: "25cfb7a0cf27517f796fb2baf92606f3ae9417f3"
|
||||||
|
core_version: "3.0.249 (beta)"
|
||||||
|
display_name: "Nintendo - Nintendo 64 (Mupen64Plus AE)"
|
||||||
|
cores:
|
||||||
|
- mupen64plus-ae
|
||||||
|
- MUPEN64PLUS-AE
|
||||||
|
- org.mupen64plusae.v3.alpha
|
||||||
|
systems:
|
||||||
|
- nintendo-64
|
||||||
|
- nintendo-64dd
|
||||||
|
mode: standalone
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
Android front end under the paulscode.android.mupen64plusae namespace,
|
||||||
|
published as org.mupen64plusae.v3.alpha (app/build.gradle:24). Everything it
|
||||||
|
runs is vendored in tree rather than pulled as a submodule:
|
||||||
|
mupen64plus-core, the hle, cxd4 and parallel RSP plugins, the GLideN64,
|
||||||
|
glide64mk2, gln64, rice, angrylion-plus and parallel video plugins, its own
|
||||||
|
audio, touchscreen and raphnet input plugins, and a miniupnp bridge for
|
||||||
|
netplay (settings.gradle:1). ES-DE launches it for both n64 and n64dd with an
|
||||||
|
ACTION_VIEW intent carrying a storage access uri, which the splash screen
|
||||||
|
forwards to the gallery (AndroidManifest.xml:80-101, SplashActivity.java:134).
|
||||||
|
|
||||||
|
Cartridge boot needs no boot ROM. The PIF boot sequence is simulated
|
||||||
|
(device/pif/bootrom_hle.c:48, entered from device/r4300/interrupt.c:445,496
|
||||||
|
and main/main.c:1875) and the CIC-NUS-6105 challenge is answered by an
|
||||||
|
algorithm rather than a stored table (device/pif/n64_cic_nus_6105.c:93).
|
||||||
|
Nothing fills the PIF ROM window from a file.
|
||||||
|
|
||||||
|
Which 64DD IPL is used is not decided by the code. Two settings hold a path
|
||||||
|
and both end up as the same working file dd_rom.n64: the global one, titled
|
||||||
|
64DD IPL (J), read when the launched file is itself a disk, and a per game
|
||||||
|
one, titled 64DD IPL, read when a cartridge is launched with a disk attached
|
||||||
|
and only while the support64dd toggle is on (CoreService.java:606-620,
|
||||||
|
GlobalPrefs.java:421,727, GamePrefs.java:579-599,
|
||||||
|
CoreInterface.java:144,231,459-488). The core offers a callback that would
|
||||||
|
name the image per disk region and the front end leaves it null
|
||||||
|
(CoreInterface.java:223, main/main.c:1082-1086), so whichever image sits in
|
||||||
|
the slot is the one loaded. A disk is recognised only when its system data
|
||||||
|
header matches and carries one of three region words, 0xe848d316 for Japan,
|
||||||
|
0x2263ee56 for the United States and 0x00000000 for development
|
||||||
|
(RomHeader.java:180-220); the word sets a country code used for the ROM
|
||||||
|
database and cheat lookup, never for picking the IPL. Launching a bare disk
|
||||||
|
with the global slot empty stops before the core starts
|
||||||
|
(CoreService.java:638-639), and since disk only games still need a cartridge
|
||||||
|
image the application feeds the m64p_test_rom.v64 asset in its place
|
||||||
|
(CoreService.java:643-644). Disk content inside a .zip or .7z is unpacked to
|
||||||
|
the working directory first (CoreInterface.java:490-522).
|
||||||
|
|
||||||
|
Transfer Pak carts come from four per player path settings copied into the
|
||||||
|
working directory as playerN_gb_rom.gb and playerN_gb_ram.gb
|
||||||
|
(CoreService.java:566-575, GamePrefs.java:933-960,
|
||||||
|
CoreInterface.java:142-143,175-189,235-236,420-457). The core rejects a cart
|
||||||
|
under 32 KiB and an unknown type byte at 0x147 (device/gb/gb_cart.c:996-1009)
|
||||||
|
and fixes no name, size or hash, so neither the cart nor its save carries an
|
||||||
|
entry here.
|
||||||
|
|
||||||
|
Seven data files ship inside the package, each keyed to a version number and
|
||||||
|
unpacked on first start into the private files directory, which is also what
|
||||||
|
the core is told is SharedDataPath (ExtractAssetsOrCleanupTask.java:63-73,
|
||||||
|
SplashActivity.java:90,399-402, AppData.java:391-403,
|
||||||
|
NativeConfigFiles.java:111). mupen64plus.ini is the ROM database, read by the
|
||||||
|
core (main/rom.c:473-490 from api/frontend.c:106) and by the gallery
|
||||||
|
(SplashActivity.java:447). mupencheat.default is copied over
|
||||||
|
Profiles/customCheats.txt into mupencheat.txt and parsed in Java
|
||||||
|
(SplashActivity.java:443, CheatUtils.java:88-96, GamePrefsActivity.java:548);
|
||||||
|
the core's own cheat.c opens no file. font.ttf is reached by GLideN64 only
|
||||||
|
after /system/fonts/DroidSans.ttf fails, that name being what the front end
|
||||||
|
writes as the configured font (TextDrawer.cpp:209-210,222-228,
|
||||||
|
NativeConfigFiles.java:291); the core's OSD, the other upstream reader of
|
||||||
|
that name (osd/osd.c:40), is absent from the Android source list
|
||||||
|
(mupen64plus-core.mk:24-101). RiceVideoLinux.ini holds rice's per ROM
|
||||||
|
settings (rice Config.cpp:38,933-953), Glide64mk2.ini glide64mk2's
|
||||||
|
(glide64mk2 Main.cpp:1581-1586), and gln64.conf with gln64rom.conf gln64's
|
||||||
|
global and per ROM settings (gln64 Config.cpp:245-252,296-302).
|
||||||
|
|
||||||
|
Two more assets are read straight out of the package and never unpacked:
|
||||||
|
m64p_test_rom.v64, and GLideN64.custom.ini, whose per ROM overrides the front
|
||||||
|
end reads itself and writes into mupen64plus.cfg (AppData.java:396-397,
|
||||||
|
ConfigFile.java:225-229, NativeConfigFiles.java:223,227). GLideN64 also asks
|
||||||
|
the core for GLideN64.custom.ini in SharedDataPath, where it was never
|
||||||
|
placed, so that native lookup finds nothing
|
||||||
|
(mupenplus/Config_mupenplus.cpp:332-344). The touchscreen skins, the shader
|
||||||
|
sources and the controller, touchscreen and emulation profile templates are
|
||||||
|
used from the package the same way (AppData.java:392,401-403,
|
||||||
|
GlobalPrefs.java:530, ShaderLoader.java:85).
|
||||||
|
|
||||||
|
Optional content with no canonical artifact: hi-res texture packs under the
|
||||||
|
user data directory, imported from a user archive (GlobalPrefs.java:469,
|
||||||
|
ExtractTexturesFragment.java), the <ROM>_HIRESTEXTURES.htc and .hts caches
|
||||||
|
the plugin builds from them, read back for their storage flag
|
||||||
|
(NativeConfigFiles.java:365-376), customCheats.txt, custom touchscreen skins
|
||||||
|
and cover art (GlobalPrefs.java:481,486-487), and alp_screen.vert with
|
||||||
|
alp_screen.frag, which angrylion-plus opens as working directory relative
|
||||||
|
paths before falling back to its embedded shaders
|
||||||
|
(angrylion-plus output/vdac.c:119-127,167-174,246-247).
|
||||||
|
|
||||||
|
Written rather than obtained: mupen64plus.cfg and the plugin sections in it,
|
||||||
|
the mempak, eeprom, flashram and sram saves given default content when absent
|
||||||
|
(main/main.c:1015-1078,1619-1622) and the 64DD disk save in whichever of the
|
||||||
|
two formats SaveDiskFormat selects (main/main.c:365,1176-1235), savestates
|
||||||
|
with the rcheevos progress file written beside them
|
||||||
|
(CoreService.java:335,407-413), screenshots, the texture dump and cache
|
||||||
|
directories, the GLideN64 shader cache and romInfoCache.cfg
|
||||||
|
(GlobalPrefs.java:466-487, NativeConfigFiles.java:108-111).
|
||||||
|
|
||||||
|
Two files in the tree this build never reads. cxd4's rsp_conf.bin: its reader
|
||||||
|
is the zilmar variant of update_conf behind #if !defined(M64P_PLUGIN_API),
|
||||||
|
and the build defines that macro (mupen64plus-rsp-cxd4.mk:8), so the variant
|
||||||
|
compiled takes its settings from the core config API and ignores the filename
|
||||||
|
it is handed (mupen64plus-rsp-cxd4 module.c:83-93,239,637-659). And
|
||||||
|
parallel-rdp's shader directory, registered as a filesystem protocol only
|
||||||
|
under PARALLEL_RDP_SHADER_DIR, which the Android build leaves undefined, so
|
||||||
|
the SPIR-V compiled into the plugin is what runs
|
||||||
|
(parallel-rdp rdp_renderer.cpp:74-78).
|
||||||
|
|
||||||
|
files:
|
||||||
|
- name: "64DD_IPL_JP.n64"
|
||||||
|
aliases: ["64DD_IPL_v12_JPN.bin", "64DD_IPL.bin"]
|
||||||
|
system: nintendo-64dd
|
||||||
|
required: true
|
||||||
|
validation: [signature]
|
||||||
|
description: "64DD IPL ROM (Japanese retail)"
|
||||||
|
note: >
|
||||||
|
The image every commercially released disk needs, and the one the global
|
||||||
|
setting is named for. No name is fixed by the code: the path comes from a
|
||||||
|
document picker and the file is copied to dd_rom.n64 before the core sees
|
||||||
|
it. The core reads it whole, then byteswaps after identifying the first
|
||||||
|
word as one of 0x80270740 (z64), 0x40072780 (n64) or 0x27804007 (v64);
|
||||||
|
any other value logs an invalid IPL and disables 64DD. Size is not
|
||||||
|
checked and no hash is computed.
|
||||||
|
source_ref: "app/src/main/java/paulscode/android/mupen64plusae/jni/CoreService.java:606-620,638-639, app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:459-488, app/src/main/java/paulscode/android/mupen64plusae/persistent/GlobalPrefs.java:421,727, mupen64plus-core/upstream/src/main/main.c:1080-1145"
|
||||||
|
|
||||||
|
- name: "64DD_IPL_US.n64"
|
||||||
|
aliases: ["64DD_IPL_USA.bin", "IPL_USA.n64"]
|
||||||
|
system: nintendo-64dd
|
||||||
|
required: true
|
||||||
|
validation: [signature]
|
||||||
|
description: "64DD IPL ROM (American retail)"
|
||||||
|
note: >
|
||||||
|
Needed for a disk whose system data carries the US region word
|
||||||
|
0x2263ee56, which the header reader accepts alongside the Japanese and
|
||||||
|
development words. The front end holds one IPL path at a time and never
|
||||||
|
branches on that region, so this image is loaded by putting it in the
|
||||||
|
same setting. Same load path, format check and absence of size or hash
|
||||||
|
validation as the Japanese image.
|
||||||
|
source_ref: "app/src/main/java/paulscode/android/mupen64plusae/util/RomHeader.java:180-220, app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:223,459-488, mupen64plus-core/upstream/src/main/main.c:1080-1145"
|
||||||
|
|
||||||
|
- name: "64DD_IPL_DEV.n64"
|
||||||
|
aliases: ["64DD_IPL_DEV.bin", "IPL_DEV.n64"]
|
||||||
|
system: nintendo-64dd
|
||||||
|
required: true
|
||||||
|
validation: [signature]
|
||||||
|
description: "64DD IPL ROM (development)"
|
||||||
|
note: >
|
||||||
|
Needed for a disk whose system data carries the development region word
|
||||||
|
0x00000000, the third value the header reader accepts before giving up on
|
||||||
|
a file as a disk. Shares the single IPL setting with the other two
|
||||||
|
images. Same load path, format check and absence of size or hash
|
||||||
|
validation.
|
||||||
|
source_ref: "app/src/main/java/paulscode/android/mupen64plusae/util/RomHeader.java:180-220, app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:223,459-488, mupen64plus-core/upstream/src/main/main.c:1080-1145"
|
||||||
Reference in new issue
Block a user