mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 21:43:23 -05:00
feat: profile cpcemu and dosbox variants
This commit is contained in:
1 parent
25f8537a4a
commit
56baa3f23f
5 files changed
+1626
-2
No files matched your search
@@ -0,0 +1,266 @@
|
||||
emulator: CPCemu
|
||||
type: standalone
|
||||
core_classification: other
|
||||
source: "https://www.cpc-emu.org/"
|
||||
upstream: "https://www.cpc-emu.org/"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "3.0.2"
|
||||
display_name: "Amstrad - CPC (CPCemu)"
|
||||
cores:
|
||||
- cpcemu
|
||||
systems:
|
||||
- amstrad-cpc
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Amstrad CPC emulator by Marco Vieth and Rainer Loritz, closed-source freeware
|
||||
for Windows, macOS, Linux, Android and iOS. Machines are the CPC 464, 664 and
|
||||
6128; the firmware identifier and the message catalogue also know the 464+,
|
||||
the 6128+ and the KC compact.
|
||||
|
||||
Two packages were used. The 3.0.2 Windows portable and macOS builds of
|
||||
2025-04-24 carry the same fourteen ROM files and the same data files, and
|
||||
provide the path constants, the message catalogue and the v3.0 help file. The
|
||||
2.5 Linux x86-64 build of 2022-08-13 is still the newest Linux release, the
|
||||
3.0.2 Linux archives listed on the download page being absent from the
|
||||
server, and provides the runtime behaviour:
|
||||
file opens traced with strace, required and optional decided by removing,
|
||||
truncating and patching each file and reading the emulator's own messages.
|
||||
|
||||
ROMs live in ROM_PATH, "./ROM/" in the shipped configuration, resolved against
|
||||
the working directory; the macOS build reads them from the application bundle
|
||||
Resources folder. Slots are filled by ROM_BLOCK lines naming a ROM number, a
|
||||
file in ROM_PATH and a 16 KB block position inside that file:
|
||||
|
||||
ROM_BLOCK = 255, "CPC6128.ROM", 0 lower ROM
|
||||
ROM_BLOCK = 0 , "CPC6128.ROM", 1 foreground ROM
|
||||
ROM_BLOCK = 7 , "CPCADOS.ROM", 0 AMSDOS
|
||||
ROM_BLOCK = 6 , "M4.ROM" , 0 M4 board
|
||||
|
||||
The shipped cpcemu0.cfg repeats the first three for every CPC_TYPE from 0 to
|
||||
5, with CPC464.ROM for types 0 and 3, CPC664.ROM for type 1 and CPC6128.ROM
|
||||
for types 2, 4 and 5, and adds the M4 line once for all types. A file named by
|
||||
a ROM_BLOCK line that cannot be opened prints "ROM: Cannot open file" and ends
|
||||
the process with status 3 before audio initialisation, whichever slot it fills
|
||||
and whether or not the matching device is enabled; deleting the line instead
|
||||
lets the emulator start.
|
||||
|
||||
The machine is identified from the foreground ROM, not from the lower half and
|
||||
not from CPC_TYPE. CPCemu reads the four-byte CPC ROM header at the start of
|
||||
block 1: byte 0 has to be 0x80, and byte 2 selects the machine, 0x00 for the
|
||||
464, 0x01 for the 664, 0x02 for the 6128. A random block 1 gives "ROM: No
|
||||
foreground ROM found.", an unlisted version byte gives "ROM: Unknown ROM
|
||||
version.", and both end on "CPC type not configured or ROM for CPC type not
|
||||
available. Unable to continue." The modification byte is ignored, the lower
|
||||
16 KB half is never inspected, and padding past 32768 bytes is accepted, so
|
||||
the length requirement is a lower bound: a block 1 has to exist.
|
||||
|
||||
Types 3, 4 and 5 need ROM images the packages do not carry. The help file
|
||||
states they have to be supplied in CPCEMU.CFG first, and no filename for them
|
||||
is compiled into the binary, the user names the file in the ROM_BLOCK line.
|
||||
Left on the shipped configuration those types load the 464 and 6128 files and
|
||||
report the machine those files describe. There is no cartridge support, the
|
||||
file types handled on the command line are dsk, sna, cfg and zip.
|
||||
|
||||
M4 board emulation is on by default. HACK.ROM, the board's lower ROM, is
|
||||
opened at every startup whatever M4_ENABLED holds, after M4_SD_PATH +
|
||||
NMIROM.BIN has been tried, so a NMIROM.BIN placed on the emulated SD card
|
||||
replaces it; with neither present the emulator prints "Unable to load
|
||||
HACK.ROM" and keeps running. M4.ROM contents are checked, a zeroed file boots
|
||||
the CPC and reports "M4 ROM not valid." The firmware updater downloads
|
||||
M4FIRM.BIN from spinpoint.org and rewrites M4.ROM and HACK.ROM in place.
|
||||
|
||||
Alongside the ROMs the binary reads its own payload from the program
|
||||
directory: cpcemu.msg, the message catalogue, whose absence leaves every
|
||||
message unprinted; cpcemu.dat, colours and key tables; cpcemu.hlp, the online
|
||||
help opened on F1; cpcemu.dbf, the poke database opened from the poke menu;
|
||||
and cpcemu0.cfg, the template used when no user configuration exists.
|
||||
Configuration is looked up first in the user profile, ~/.CPCemu/cpcemu.cfg on
|
||||
Linux, then cpcemu0.cfg in the working directory; with neither, startup stops
|
||||
on "CPCEMU: Use INSTALL first". The disc, tape and snapshot folders and the
|
||||
M4 SD card folder hold user content.
|
||||
|
||||
files:
|
||||
# -- Firmware, lower ROM in block 0 and foreground ROM in block 1 --
|
||||
- name: CPC6128.ROM
|
||||
path: "ROM/CPC6128.ROM"
|
||||
system: amstrad-cpc
|
||||
required: true
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: b96280dc6c95a48857b4b8eb931533ae
|
||||
sha1: 5977adbad3f7c1e0e082cd02fe76a700d9860c30
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/CPC6128.ROM, cpcemu0.cfg ROM_BLOCK 255 and 0 for CPC_TYPE 2, 4 and 5"
|
||||
note: >-
|
||||
CPC 6128 firmware and BASIC. Loaded for the shipped CPC_TYPE 2 and opened
|
||||
twice, once per block. Foreground ROM header 80 01 02 00.
|
||||
|
||||
- name: CPC464.ROM
|
||||
path: "ROM/CPC464.ROM"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: a993f85b88ac4350cf4d41554e87fe4f
|
||||
sha1: 56d39c463da60968d93e58b4ba0e675829412a20
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/CPC464.ROM, cpcemu0.cfg ROM_BLOCK 255 and 0 for CPC_TYPE 0 and 3"
|
||||
note: >-
|
||||
CPC 464 firmware and BASIC, selected by CPC_TYPE 0 or the -t 0 command
|
||||
line. Foreground ROM header 80 01 00 00.
|
||||
|
||||
- name: CPC664.ROM
|
||||
path: "ROM/CPC664.ROM"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: 5a384a2310f472c7857888371c00ed66
|
||||
sha1: 073a7665527b5bd8a148747a3947dbd3328682c8
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/CPC664.ROM, cpcemu0.cfg ROM_BLOCK 255 and 0 for CPC_TYPE 1"
|
||||
note: >-
|
||||
CPC 664 firmware and BASIC, selected by CPC_TYPE 1 or the -t 1 command
|
||||
line. Foreground ROM header 80 01 01 00.
|
||||
|
||||
# -- Disc ROM, slot 7 --
|
||||
- name: CPCADOS.ROM
|
||||
path: "ROM/CPCADOS.ROM"
|
||||
system: amstrad-cpc
|
||||
required: true
|
||||
size: 16384
|
||||
md5: aa2fb251814bd971b2b9874ab0971b3f
|
||||
sha1: 0e247123b9d3204784eeadb4629b9d35b9dfd984
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/CPCADOS.ROM, cpcemu0.cfg ROM_BLOCK 7 for every CPC_TYPE"
|
||||
note: >-
|
||||
AMSDOS disc ROM, the 8 KB image zero-padded to 16 KB. Declared for every
|
||||
machine by the shipped configuration, so startup ends on status 3 without
|
||||
it; dropping the ROM_BLOCK line instead boots with "ROM: No AMSDOS ROM
|
||||
found." and no disc support. Length is not checked, an 8 KB file installs
|
||||
the AMSDOS speedup all the same.
|
||||
|
||||
# -- M4 board, ROM slot 6 plus the board's own lower ROM --
|
||||
- name: M4.ROM
|
||||
path: "ROM/M4.ROM"
|
||||
system: amstrad-cpc
|
||||
required: true
|
||||
size: 16384
|
||||
validation: [signature]
|
||||
md5: 28a7e368badca8299ba24a15bb4ebe9b
|
||||
sha1: 05f9447d307ab17eae9e2100f91c36b0c9560d4b
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/M4.ROM, cpcemu0.cfg ROM_BLOCK 6, M4_ENABLED = 1"
|
||||
note: >-
|
||||
M4 board firmware by Duke. Declared by the shipped configuration, so
|
||||
startup ends on status 3 without it even when M4_ENABLED is 0. Contents
|
||||
are checked, a zeroed file boots and reports "M4 ROM not valid."
|
||||
|
||||
- name: HACK.ROM
|
||||
path: "ROM/HACK.ROM"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
size: 7994
|
||||
md5: ffcbcbce32223a152753d30766ad6215
|
||||
sha1: 582dd1706391f6f0161ad3486ae75a04fb0f7d5b
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM_PATH + /HACK.ROM, opened after M4_SD_PATH + NMIROM.BIN"
|
||||
note: >-
|
||||
M4 hack ROM, the lower ROM behind the Shift+F1 menu. Opened at every
|
||||
startup, and superseded by a NMIROM.BIN on the emulated SD card. Missing
|
||||
prints "Unable to load HACK.ROM" and emulation continues.
|
||||
|
||||
# -- National firmware, configured by the 3.0.2 keyboard layout dialog --
|
||||
- name: CPC6128.ROM.UK
|
||||
path: "ROM/National/CPC6128.ROM.UK"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: b96280dc6c95a48857b4b8eb931533ae
|
||||
sha1: 5977adbad3f7c1e0e082cd02fe76a700d9860c30
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/National/CPC6128.ROM.UK"
|
||||
note: >-
|
||||
English CPC 6128 firmware, the same image as CPC6128.ROM. Ships in the
|
||||
National folder without being named by any path constant.
|
||||
|
||||
- name: CPC6128.ROM.FR
|
||||
path: "ROM/National/CPC6128.ROM.FR"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: 5ee871d5600eb9b5a22989c295f902a5
|
||||
sha1: 200d59076dfef36db061d6d7d21d80021cab1237
|
||||
source_ref: "CPCemu 3.0.2: National/CPC6128.ROM.FR, keyboard layout dialog on first start"
|
||||
note: "French CPC 6128 firmware, configured when the French layout is picked."
|
||||
|
||||
- name: CPC6128.ROM.ES
|
||||
path: "ROM/National/CPC6128.ROM.ES"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: 0246740371010333385665dfeb7cd0ec
|
||||
sha1: 1acd01c2c03424a78b32c9440f4d890fb1104815
|
||||
source_ref: "CPCemu 3.0.2: National/CPC6128.ROM.ES, keyboard layout dialog on first start"
|
||||
note: "Spanish CPC 6128 firmware, configured when the Spanish layout is picked."
|
||||
|
||||
- name: CPC6128.ROM.DK
|
||||
path: "ROM/National/CPC6128.ROM.DK"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: ca1635fd992e2aa7a776b30da13467e5
|
||||
sha1: a9e7ee6355730f319a37c95ca0a714212b88c3b1
|
||||
source_ref: "CPCemu 3.0.2: National/CPC6128.ROM.DK, keyboard layout dialog on first start"
|
||||
note: "Danish CPC 6128 firmware, configured when the Danish layout is picked."
|
||||
|
||||
- name: CPC6128.ROM.SE
|
||||
path: "ROM/National/CPC6128.ROM.SE"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
min_size: 32768
|
||||
validation: [size, signature]
|
||||
md5: 8ca256a832e83c875f5432b3dee8a36f
|
||||
sha1: 6765a91a42fed68a807325bf62a728e5ac5d622f
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/National/CPC6128.ROM.SE"
|
||||
note: >-
|
||||
Swedish CPC 6128 firmware. Ships in the National folder without being
|
||||
named by any path constant, the layout dialog offering English, French,
|
||||
Spanish and Danish only.
|
||||
|
||||
# -- Expansion ROMs mapped through a user ROM_BLOCK line --
|
||||
- name: XDDOS210.ROM
|
||||
path: "ROM/XDDOS210.ROM"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
size: 16384
|
||||
md5: 1d91a9ef315b302d335cd7e04e8d8d86
|
||||
sha1: 2f1bd4d6e2d2e62818b01e6e7a26488362a7a8ee
|
||||
source_ref: "CPCemu 3.0.2: ROM/XDDOS210.ROM, cpcemu0.cfg commented ROM_BLOCK 7, help topic DOBBERTIN HD20 ENABLED"
|
||||
note: >-
|
||||
X-DDOS 2.10 by Dobbertin, the disc operating system of the HD20 hard disk.
|
||||
Required in a ROM slot to use DOBBERTIN_HD_ENABLED = 1. Added in 3.0, not
|
||||
shipped with 2.5.
|
||||
|
||||
- name: COPYMATE.ROM
|
||||
path: "ROM/COPYMATE.ROM"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
size: 16512
|
||||
md5: e9c4288eab8885a1e6ae7504a4736115
|
||||
sha1: 15d52de01320d9b954e03b4c2e71ec75fd301bbb
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/COPYMATE.ROM, cpcemu0.cfg commented ROM_BLOCK 4"
|
||||
note: >-
|
||||
Copy utility ROM, carrying a 128-byte AMSDOS file header ahead of the
|
||||
16 KB image. Shipped as the example expansion ROM of the configuration
|
||||
file and loaded once the line is uncommented.
|
||||
|
||||
- name: multface.rom
|
||||
path: "ROM/multface.rom"
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
size: 8192
|
||||
md5: 4c9f014e91d407cc6509fad0095ab909
|
||||
sha1: 1431ec628d38f000715545dd2186b684c5fe5a6f
|
||||
source_ref: "CPCemu 2.5/3.0.2: ROM/multface.rom, ROM_BLOCK filename or ROM Manager entry"
|
||||
note: >-
|
||||
Romantic Robot Multiface Two ROM. Ships in the ROM folder for the user to
|
||||
map into a slot, no path constant naming it.
|
||||
@@ -0,0 +1,247 @@
|
||||
emulator: DOSBox Pure Unleashed
|
||||
type: standalone
|
||||
core_classification: official_port
|
||||
source: "https://github.com/schellingb/dosbox-pure-unleashed"
|
||||
upstream: "https://github.com/schellingb/dosbox-pure"
|
||||
source_commit: "4a11412248ca4c862751a7d9e6818023795031e9"
|
||||
upstream_commit: "7f6e8fb7385fa446d1444d671063268520bf9b54"
|
||||
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure-unleashed/main/images/logo.png"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "1.0-preview6"
|
||||
display_name: "DOS (DOSBox Pure Unleashed)"
|
||||
cores:
|
||||
- dosbox-pure-unleashed
|
||||
- dosboxpure
|
||||
systems:
|
||||
- dos
|
||||
mode: standalone
|
||||
verification: sha1
|
||||
|
||||
notes: |
|
||||
Desktop build of DOSBox Pure by the same author. The repository holds only
|
||||
the platform layer (main.cpp, vfs_implementation.cpp) and compiles the
|
||||
emulation core from a sibling checkout of schellingb/dosbox-pure with
|
||||
-D__LIBRETRO__ -DDBP_STANDALONE, using ZillaLib for video, input and audio.
|
||||
ref: Makefile:7,9-14,34
|
||||
|
||||
No BIOS. Windows 3.x and 9x run as guest operating systems installed into
|
||||
the emulated DOS machine, not as separate emulated hardware.
|
||||
|
||||
System directory: the program keeps DOSBoxPure.cfg in a base directory and
|
||||
creates saves and system folders next to it. Base directory is
|
||||
%APPDATA%\DOSBoxPure on Windows when the user creates that folder, else the
|
||||
directory of the executable; $HOME/.config/DOSBoxPure on Linux and
|
||||
$HOME/Library/Application Support/DOSBoxPure on macOS, else the working
|
||||
directory. The system folder can be redirected with the path_system key in
|
||||
DOSBoxPure.cfg. It is returned to the core as RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
|
||||
ref: main.cpp:1985-2045,973-974
|
||||
|
||||
System directory scan (recursive, DBP_ScanSystem):
|
||||
*.SF2 and *.SF3 listed as General MIDI SoundFonts, any file whose last
|
||||
four characters are ".SF" plus one.
|
||||
*_CONTROL.ROM listed as Roland MT-32/CM-32L control ROMs.
|
||||
ref: dosbox_pure_libretro.cpp:1380-1412
|
||||
Both feed the Audio > MIDI SoundFont option, prefixed with the system
|
||||
directory path at apply time.
|
||||
ref: dosbox_pure_libretro.cpp:2495
|
||||
With no MIDI file selected, mpu401 is set to none and games fall back to
|
||||
their OPL or Sound Blaster music driver. A General MIDI over OPL
|
||||
synthesizer is built in and opens on midiconfig=adlib.
|
||||
ref: dosbox_pure_libretro.cpp:2497, midi_opl.h:46-49
|
||||
|
||||
MT-32 pairing: the PCM ROM is not scanned. Its name is derived from the
|
||||
control ROM path by replacing CONTROL with PCM, preserving the case of both
|
||||
letters, so MT32_CONTROL.ROM resolves MT32_PCM.ROM. Open fails unless both
|
||||
are found.
|
||||
ref: midi_mt32.h:182-201,194-195
|
||||
ZIP archives are accepted and picked by size instead of name: 65536 or
|
||||
131072 for control, 524288 or 1048576 for PCM.
|
||||
ref: midi_mt32.h:163
|
||||
Bundled MUNT (header-only mt32emu.h) validates size and SHA1 against a
|
||||
14 entry table and rejects anything else, failing Synth::open.
|
||||
ref: mt32emu.h:5185,2979-2989,3013-3020
|
||||
Each control ROM fixes the PCM size it accepts through its pcmCount: 128
|
||||
requires the 524288 byte MT-32 PCM ROM, 256 requires the 1048576 byte
|
||||
CM-32L PCM ROM. The MT-32 v2.x control ROMs carry pcmCount 128 and so pair
|
||||
with the MT-32 PCM ROM.
|
||||
ref: mt32emu.h:2586-2598,3167,3024-3029
|
||||
|
||||
SoundFonts are parsed by TinySoundFont with no size or hash check. SF3 ogg
|
||||
compressed samples decode through the bundled stb_vorbis.
|
||||
ref: midi_tsf.h:22,65,96-105
|
||||
|
||||
Per game override: a DOSBOX.SF2, or an MT32_PCM.ROM together with an
|
||||
MT32_CONTROL.ROM, found on the mounted C: drive replaces the option value
|
||||
and is marked fixed. The control ROM is matched through its 8.3 forms
|
||||
MT32TROL.ROM inside ZIPs and MT32_C~1.ROM on local file systems.
|
||||
ref: dosbox_pure_libretro.cpp:2803-2813
|
||||
MIDI ZIPs are looked up in the content directory before the system directory.
|
||||
ref: dosbox_pure_libretro.cpp:906-914
|
||||
|
||||
Keyboard layouts and codepages are compiled in, external keyboard.sys,
|
||||
keybrd2.sys, keybrd3.sys and EGA*.CPI loading is disabled.
|
||||
ref: include/config.h:58, dos_keyboard_layout.cpp:729-819
|
||||
|
||||
Other system directory entries carry no fixed identity and are not listed
|
||||
as files. Hard disk images (*.IMG, *.IMA, *.VHD of at least 7 MB and a
|
||||
multiple of 512 bytes) are created by the Install New Operating System
|
||||
feature and booted as C:. *.DOSZ archives are shells the user assembles,
|
||||
underlaid below C: and started through WINDOWS.BAT, AUTOEXEC.BAT or
|
||||
WINDOWS\WIN.COM. DOSBoxPureMidiCache.txt is written by the emulator when a
|
||||
scan exceeds two seconds and read back to skip later scans.
|
||||
ref: dosbox_pure_libretro.cpp:1413-1424,1425-1446,1452-1466,
|
||||
dosbox_pure_run.h:187-210,289-297
|
||||
|
||||
files:
|
||||
# -- MT-32 control ROMs (64 KB, pair with MT32_PCM.ROM) --
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.04"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5112,5129"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5113,5130"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5114,5131"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5115,5132"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5116,5133"
|
||||
|
||||
# -- MT-32 v2.x control ROMs (128 KB, pair with MT32_PCM.ROM) --
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.03"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5118,5135"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5119,5136"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5120,5137"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5121,5138"
|
||||
|
||||
# -- CM-32L / LAPC-I control ROMs (64 KB, pair with CM32L_PCM.ROM) --
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.00"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5122,5139"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5123,5140"
|
||||
|
||||
# -- CM-32LN / CM-500 / LAPC-N control ROM (64 KB, pairs with CM32L_PCM.ROM) --
|
||||
|
||||
- name: "CM32LN_CONTROL.ROM"
|
||||
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5124,5141"
|
||||
|
||||
# -- PCM ROMs --
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
description: "MT-32 PCM ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5126,5143"
|
||||
note: "accepted by every MT-32 control ROM, v1.x and v2.x (pcmCount 128)"
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32LN_PCM.ROM"]
|
||||
source_ref: "mt32emu.h:5127,5144"
|
||||
note: >
|
||||
accepted by the CM-32L and CM-32LN control ROMs (pcmCount 256). The
|
||||
alias covers the name derived from CM32LN_CONTROL.ROM.
|
||||
|
||||
# -- General MIDI SoundFont --
|
||||
|
||||
- name: "DOSBOX.SF2"
|
||||
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
source_ref: "dosbox_pure_libretro.cpp:1407,2805"
|
||||
note: >
|
||||
Any .SF2 or .SF3 in the system directory is listed in the MIDI option.
|
||||
DOSBOX.SF2 is the fixed name looked up on the mounted C: drive as a per
|
||||
game override.
|
||||
@@ -0,0 +1,642 @@
|
||||
emulator: DOSBox Staging
|
||||
type: standalone
|
||||
core_classification: enhanced_fork
|
||||
source: "https://github.com/dosbox-staging/dosbox-staging"
|
||||
upstream: "https://github.com/dosbox-staging/dosbox-staging"
|
||||
source_commit: "18756c8df3425db24373bb856d620ede868b7568"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "0.84.0-alpha"
|
||||
display_name: "DOS (DOSBox Staging)"
|
||||
cores:
|
||||
- dosbox-staging
|
||||
systems:
|
||||
- dos
|
||||
- ibm-pc
|
||||
- ibm-pcjr
|
||||
- tandy-1000
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Continuation of DOSBox on a C++23 codebase, SDL3, libmt32emu and FluidSynth
|
||||
from vcpkg. The machine setting selects a video adapter (hercules, cga,
|
||||
cga_mono, ega, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb,
|
||||
vesa_oldvbe) or a machine (pcjr, tandy).
|
||||
ref: dosbox.cpp:1317-1329, vcpkg.json
|
||||
|
||||
No system BIOS: the PC BIOS, video BIOS fonts, keyboard layouts and codepage
|
||||
tables are implemented in code.
|
||||
ref: int10_memory.cpp:160, dos_keyboard_layout_data.h
|
||||
|
||||
MIDI devices that need external data are mt32, soundcanvas and fluidsynth.
|
||||
A device that fails to initialise throws, MIDI_Init warns and retries with
|
||||
mididevice = port, then disables MIDI output. Emulation continues either way.
|
||||
ref: midi.cpp:794-850
|
||||
|
||||
MT-32/CM-32L: libmt32emu identifies every candidate by file size then SHA1,
|
||||
so file names carry no meaning; a directory scan caches which ROM ids each
|
||||
directory holds and logs anything unrecognised.
|
||||
ref: mt32_lasynth_model.cpp:36-97, munt ROMInfo.cpp:206-213
|
||||
A model needs one control ROM and one PCM ROM, supplied either as a full
|
||||
image (addROMFile) or as the two chip dumps merged in memory
|
||||
(mergeAndAddROMFiles): control halves are byte-interleaved, PCM halves are
|
||||
concatenated.
|
||||
ref: mt32_lasynth_model.cpp:114-151, munt ROMInfo.cpp:312-331
|
||||
model = auto resolves the first available of cm32l_102, cm32l_100,
|
||||
cm32ln_100, mt32_107, mt32_106, mt32_105, mt32_104, mt32_bluer, mt32_207,
|
||||
mt32_206, mt32_204, mt32_203; the aliases cm32l, mt32, mt32_old and mt32_new
|
||||
restrict that list. MIXER /LISTMIDI prints what was found.
|
||||
ref: mt32.cpp:278-331, 504-557
|
||||
Search order is romdir, then mt32-roms in the configuration directory, then
|
||||
the platform locations (C:\mt32-rom-data on Windows;
|
||||
~/Library/Audio/Sounds/MT32-Roms and /usr/{local/,}share/mt32-rom-data on
|
||||
macOS; $XDG_DATA_HOME/dosbox/mt32-roms, $XDG_DATA_HOME/mt32-rom-data,
|
||||
$XDG_DATA_DIRS/mt32-rom-data and $XDG_CONFIG_HOME/dosbox/mt32-roms on Linux).
|
||||
A relative romdir resolves against the working directory, so a game folder
|
||||
can carry its own set.
|
||||
ref: mt32.cpp:385-396, 416-485
|
||||
|
||||
Sound Canvas: the SC-55 is emulated by the Nuked SC55 CLAP plugin, loaded
|
||||
from a plugins directory next to the executable, in the configuration
|
||||
directory or under the XDG data directories. DOSBox Staging resolves the ROM
|
||||
directory candidates, canonicalises the ones that exist and exports them as
|
||||
SOUNDCANVAS_ROM_PATH; the plugin appends the per-model subdirectory, hashes
|
||||
every file under 4 MB it finds there and matches SHA256 against its table.
|
||||
ref: soundcanvas.cpp:326-373, support.cpp:351-379,
|
||||
Nuked-SC55-CLAP nuked_sc55.cpp:117-215, rom_loader.cpp:32-63,
|
||||
rom_io.cpp:271-564
|
||||
soundcanvas_model = auto resolves sc55_121, sc55_120, sc55_110, sc55_100,
|
||||
sc55_200, sc55mk2_101, sc55mk2_100 in that order by matching plugin names.
|
||||
The plugin publishes six descriptors: SC-55 v1.00, v1.10, v1.20, v1.21,
|
||||
v2.00 and SC-55mk2 v1.01.
|
||||
ref: soundcanvas.cpp:55-71, 80-147, Nuked-SC55-CLAP plugin.cpp:23-90
|
||||
|
||||
FluidSynth: the soundfont setting names a file, tried as given and with .sf2
|
||||
appended, in soundfont_dir, then soundfonts in the configuration directory,
|
||||
then the platform locations. fluid_synth_sfload is the only check. The
|
||||
SoundFont name from the RIFF INFO chunk and the file stem select reverb,
|
||||
chorus and filter presets for four known banks.
|
||||
ref: fluidsynth.cpp:107-230, 672-689, 816-883, 1229-1252
|
||||
|
||||
Bundled data ships with the program and is read from the resources directory
|
||||
next to the executable: FreeDOS codepages and keyboard layouts, translations,
|
||||
shaders and shader presets, CGA colour presets, drive noise samples, the
|
||||
mounted Y: drive utilities, the web interface and the manual pages.
|
||||
ref: support.cpp:300-320, dos_code_page.cpp:1828, dos_keyboard_layout.cpp:70,
|
||||
messages.cpp:1073, shader_manager.cpp:236,404, int10_modes.cpp:2302,
|
||||
disk_noise.cpp:187, autoexec.cpp:759
|
||||
|
||||
BIOSTEST.COM loads an arbitrary BIOS image at F000:0 and is compiled only
|
||||
when the debugger is enabled, which is off by default.
|
||||
ref: dos/CMakeLists.txt:81-83, biostest.h
|
||||
|
||||
files:
|
||||
# File names are documentation only: libmt32emu and the Sound Canvas plugin
|
||||
# scan their directory and identify every candidate by hash, so any name
|
||||
# works. The names used here are the ROM identifiers of libmt32emu and the
|
||||
# file names of the published Sound Canvas ROM pack.
|
||||
|
||||
# -- MT-32 control ROMs, full images (65536 bytes) --
|
||||
# Loaded through addROMFile. Interleaved chip dumps are listed below and
|
||||
# merged in memory when the full image is absent.
|
||||
|
||||
- name: "ctrl_mt32_1_04.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_04.rom"
|
||||
description: "MT-32 Control v1.04"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:110,154-160, munt ROMInfo.cpp:59,89"
|
||||
|
||||
- name: "ctrl_mt32_1_05.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_05.rom"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:114,162-168, munt ROMInfo.cpp:62,92"
|
||||
|
||||
- name: "ctrl_mt32_1_06.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_06.rom"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:118,170-176, munt ROMInfo.cpp:65,95"
|
||||
|
||||
- name: "ctrl_mt32_1_07.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_07.rom"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:122,178-184, munt ROMInfo.cpp:68,98"
|
||||
|
||||
- name: "ctrl_mt32_bluer.rom"
|
||||
path: "mt32-roms/ctrl_mt32_bluer.rom"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:126,186-192, munt ROMInfo.cpp:71,101"
|
||||
|
||||
# -- MT-32 v2.x control ROMs, full images (131072 bytes) --
|
||||
# MAME dumps mt32_2.0.3.ic28, mt32_2.0.4.ic28 and mt32_2.0.7.ic28.
|
||||
|
||||
- name: "ctrl_mt32_2_03.rom"
|
||||
path: "mt32-roms/ctrl_mt32_2_03.rom"
|
||||
description: "MT-32 Control v2.03"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:130,194-200, munt ROMInfo.cpp:73,103"
|
||||
|
||||
- name: "ctrl_mt32_2_04.rom"
|
||||
path: "mt32-roms/ctrl_mt32_2_04.rom"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:132,202-208, munt ROMInfo.cpp:74,104"
|
||||
|
||||
- name: "ctrl_mt32_2_06.rom"
|
||||
path: "mt32-roms/ctrl_mt32_2_06.rom"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:134,210-216, munt ROMInfo.cpp:75,105"
|
||||
|
||||
- name: "ctrl_mt32_2_07.rom"
|
||||
path: "mt32-roms/ctrl_mt32_2_07.rom"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:136,218-224, munt ROMInfo.cpp:76,106"
|
||||
|
||||
# -- CM-32L family control ROMs, full images (65536 bytes) --
|
||||
# MAME dumps lapc-i.v1.0.0.ic3.bin and cm32l_control.rom.
|
||||
|
||||
- name: "ctrl_cm32l_1_00.rom"
|
||||
path: "mt32-roms/ctrl_cm32l_1_00.rom"
|
||||
description: "CM-32L/LAPC-I Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:143,226-232, munt ROMInfo.cpp:77,107"
|
||||
|
||||
- name: "ctrl_cm32l_1_02.rom"
|
||||
path: "mt32-roms/ctrl_cm32l_1_02.rom"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:144,234-240, munt ROMInfo.cpp:78,108"
|
||||
|
||||
- name: "ctrl_cm32ln_1_00.rom"
|
||||
path: "mt32-roms/ctrl_cm32ln_1_00.rom"
|
||||
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:145,242-248, munt ROMInfo.cpp:79,109"
|
||||
|
||||
# -- MT-32 control ROM chip dumps (32768 bytes each) --
|
||||
# The _a dump holds the even bytes, the _b dump the odd ones; munt
|
||||
# interleaves the pair into the full 65536 byte image.
|
||||
# MAME dumps mt32_1.0.X.ic27.bin (_a) and mt32_1.0.X.ic26.bin (_b),
|
||||
# blue_ridge__mt32a.bin (_a) and blue_ridge__mt32b.bin (_b).
|
||||
|
||||
- name: "ctrl_mt32_1_04_a.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_04_a.rom"
|
||||
description: "MT-32 Control v1.04, even bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "9cd4858014c4e8a9dff96053f784bfaac1092a2e"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:111,154-160, munt ROMInfo.cpp:57,87"
|
||||
|
||||
- name: "ctrl_mt32_1_04_b.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_04_b.rom"
|
||||
description: "MT-32 Control v1.04, odd bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "fe8db469b5bfeb37edb269fd47e3ce6d91014652"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:112,154-160, munt ROMInfo.cpp:58,88"
|
||||
|
||||
- name: "ctrl_mt32_1_05_a.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_05_a.rom"
|
||||
description: "MT-32 Control v1.05, even bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "57a09d80d2f7ca5b9734edbe9645e6e700f83701"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:115,162-168, munt ROMInfo.cpp:60,90"
|
||||
|
||||
- name: "ctrl_mt32_1_05_b.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_05_b.rom"
|
||||
description: "MT-32 Control v1.05, odd bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "52e3c6666db9ef962591a8ee99be0cde17f3a6b6"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:116,162-168, munt ROMInfo.cpp:61,91"
|
||||
|
||||
- name: "ctrl_mt32_1_06_a.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_06_a.rom"
|
||||
description: "MT-32 Control v1.06, even bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "cc83bf23cee533097fb4c7e2c116e43b50ebacc8"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:119,170-176, munt ROMInfo.cpp:63,93"
|
||||
|
||||
- name: "ctrl_mt32_1_06_b.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_06_b.rom"
|
||||
description: "MT-32 Control v1.06, odd bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "bf4f15666bc46679579498386704893b630c1171"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:120,170-176, munt ROMInfo.cpp:64,94"
|
||||
|
||||
- name: "ctrl_mt32_1_07_a.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_07_a.rom"
|
||||
description: "MT-32 Control v1.07, even bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "13f06b38f0d9e0fc050b6503ab777bb938603260"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:123,178-184, munt ROMInfo.cpp:66,96"
|
||||
|
||||
- name: "ctrl_mt32_1_07_b.rom"
|
||||
path: "mt32-roms/ctrl_mt32_1_07_b.rom"
|
||||
description: "MT-32 Control v1.07, odd bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "c55e165487d71fa88bd8c5e9c083bc456c1a89aa"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:124,178-184, munt ROMInfo.cpp:67,97"
|
||||
|
||||
- name: "ctrl_mt32_bluer_a.rom"
|
||||
path: "mt32-roms/ctrl_mt32_bluer_a.rom"
|
||||
description: "MT-32 Control BlueRidge, even bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "11a6ae5d8b6ee328b371af7f1e40b82125aa6b4d"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:127,186-192, munt ROMInfo.cpp:69,99"
|
||||
|
||||
- name: "ctrl_mt32_bluer_b.rom"
|
||||
path: "mt32-roms/ctrl_mt32_bluer_b.rom"
|
||||
description: "MT-32 Control BlueRidge, odd bytes"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "e0934320d7cbb5edfaa29e0d01ae835ef620085b"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:128,186-192, munt ROMInfo.cpp:70,100"
|
||||
|
||||
# -- PCM ROMs --
|
||||
# Every MT-32 model, v1.x and v2.x, pairs with the MT-32 PCM ROM. The CM-32L
|
||||
# models pair with the 1 MB image, whose first half is the MT-32 PCM ROM.
|
||||
# MAME dumps r15449121.ic37.bin (ic9 on CM-32L boards), r15179844.ic21.bin,
|
||||
# r15179845.ic22.bin and r15179945.ic8.bin.
|
||||
|
||||
- name: "pcm_mt32.rom"
|
||||
path: "mt32-roms/pcm_mt32.rom"
|
||||
description: "MT-32 PCM ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
validation: [sha1, size]
|
||||
note: >
|
||||
also serves as the first half of the CM-32L PCM ROM, paired with
|
||||
pcm_cm32l_h.rom
|
||||
source_ref: "mt32.cpp:138,151, munt ROMInfo.cpp:83,113,115"
|
||||
|
||||
- name: "pcm_mt32_l.rom"
|
||||
path: "mt32-roms/pcm_mt32_l.rom"
|
||||
description: "MT-32 PCM ROM, first half"
|
||||
required: false
|
||||
size: 262144
|
||||
sha1: "3a1e19b0cd4036623fd1d1d11f5f25995585962b"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:139, munt ROMInfo.cpp:81,111"
|
||||
|
||||
- name: "pcm_mt32_h.rom"
|
||||
path: "mt32-roms/pcm_mt32_h.rom"
|
||||
description: "MT-32 PCM ROM, second half"
|
||||
required: false
|
||||
size: 262144
|
||||
sha1: "2cadb99d21a6a4a6f5b61b6218d16e9b43f61d01"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:140, munt ROMInfo.cpp:82,112"
|
||||
|
||||
- name: "pcm_cm32l.rom"
|
||||
path: "mt32-roms/pcm_cm32l.rom"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:147,226-248, munt ROMInfo.cpp:85,117"
|
||||
|
||||
- name: "pcm_cm32l_h.rom"
|
||||
path: "mt32-roms/pcm_cm32l_h.rom"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM, second half"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "3ad889fde5db5b6437cbc2eb6e305312fec3df93"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32.cpp:148, munt ROMInfo.cpp:84,116"
|
||||
|
||||
# -- Roland SC-55 wave ROMs --
|
||||
# Shared by every SC-55 firmware version. The plugin scans one model
|
||||
# directory at a time, so each SC-55-v* directory in use needs its own copy.
|
||||
|
||||
- name: "sc55_waverom1.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.21/sc55_waverom1.bin"
|
||||
description: "SC-55 wave ROM A (R15209276)"
|
||||
required: false
|
||||
max_size: 2097152
|
||||
sha256: "5655509a531804f97ea2d7ef05b8fec20ebf46216b389a84c44169257a4d2007"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:340, emu.cpp:238, pcm.h:83"
|
||||
|
||||
- name: "sc55_waverom2.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.21/sc55_waverom2.bin"
|
||||
description: "SC-55 wave ROM B (R15209277)"
|
||||
required: false
|
||||
max_size: 2097152
|
||||
sha256: "c655b159792d999b90df9e4fa782cf56411ba1eaa0bb3ac2bdaf09e1391006b1"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:342, emu.cpp:238, pcm.h:84"
|
||||
|
||||
- name: "sc55_waverom3.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.21/sc55_waverom3.bin"
|
||||
description: "SC-55 wave ROM C (R15209281)"
|
||||
required: false
|
||||
max_size: 1048576
|
||||
sha256: "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:344, emu.cpp:238, pcm.h:85"
|
||||
|
||||
# -- Roland SC-55 MCU ROMs, one pair per firmware version --
|
||||
|
||||
- name: "sc55_rom1.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.00/sc55_rom1.bin"
|
||||
description: "SC-55 v1.00 MCU ROM (R15199748)"
|
||||
required: false
|
||||
max_size: 32768
|
||||
sha256: "b4ecf44bc0520322b0d114d397951d3bf92ca6fa51d0d27b2407df58a6be2efe"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:336, emu.cpp:238, mcu.h:216"
|
||||
|
||||
- name: "sc55_rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.00/sc55_rom2.bin"
|
||||
description: "SC-55 v1.00 program ROM (R15449258)"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "014e2e21ea30de7a1e4f1cdea14dd9a719960535e257a9e40e98dbb1a5870226"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:338, emu.cpp:247-254, mcu.h:217"
|
||||
|
||||
- name: "sc55_rom1.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.10/sc55_rom1.bin"
|
||||
description: "SC-55 v1.10 MCU ROM (R15199736)"
|
||||
required: false
|
||||
max_size: 32768
|
||||
sha256: "2fe88ec39f3ef4b1de8cdf74527419467975c47f7aacfcd07605e01d54bd89b5"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:351, emu.cpp:238, mcu.h:216"
|
||||
|
||||
- name: "sc55_rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.10/sc55_rom2.bin"
|
||||
description: "SC-55 v1.10 program ROM (R15209275)"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "ec064d6c4fc70ec990911089d966043cb819fba0e26e6f6afdd0a05e5301b91b"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:353, emu.cpp:247-254, mcu.h:217"
|
||||
|
||||
- name: "sc55_rom1.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.20/sc55_rom1.bin"
|
||||
description: "SC-55 v1.20 and v1.21 MCU ROM (R15199778)"
|
||||
required: false
|
||||
max_size: 32768
|
||||
sha256: "7e1bacd1d7c62ed66e465ba05597dcd60dfc13fc23de0287fdbce6cf906c6544"
|
||||
validation: [sha256, size]
|
||||
note: "same dump in the SC-55-v1.20 and SC-55-v1.21 directories"
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:366,381, emu.cpp:238, mcu.h:216"
|
||||
|
||||
- name: "sc55_rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.20/sc55_rom2.bin"
|
||||
description: "SC-55 v1.20 program ROM (R15209337)"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "22ce6ca59e6332143b335525e81fab501ea6fccce4b7e2f3bfc2cc8bf6612ff6"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:368, emu.cpp:247-254, mcu.h:217"
|
||||
|
||||
- name: "sc55_rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55-v1.21/sc55_rom2.bin"
|
||||
description: "SC-55 v1.21 program ROM (R15209363)"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "effc6132d68f7e300aaef915ccdd08aba93606c22d23e580daf9ea6617913af1"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:383, emu.cpp:247-254, mcu.h:217"
|
||||
|
||||
- name: "sc55_rom1.bin"
|
||||
path: "soundcanvas-roms/SC-55-v2.00/sc55_rom1.bin"
|
||||
description: "SC-55 v2.00 MCU ROM (R15199799)"
|
||||
required: false
|
||||
max_size: 32768
|
||||
sha256: "24a65c97cdbaa847d6f59193523ce63c73394b4b693a6517ee79441f2fb8a3ee"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:396, emu.cpp:238, mcu.h:216"
|
||||
|
||||
- name: "sc55_rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55-v2.00/sc55_rom2.bin"
|
||||
description: "SC-55 v2.00 program ROM (R15209387)"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "f5dac35d450ab986570a209dff3816eec75cee669e161f54b51224b467dd0bcc"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:398, emu.cpp:247-254, mcu.h:217"
|
||||
|
||||
# -- Roland SC-55mk2 v1.01 --
|
||||
|
||||
- name: "rom1.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom1.bin"
|
||||
description: "SC-55mk2 v1.01 MCU ROM (R15199858)"
|
||||
required: false
|
||||
max_size: 32768
|
||||
sha256: "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:295, emu.cpp:238, mcu.h:216"
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 v1.01 program ROM (R00233567)"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:297, emu.cpp:247-254, mcu.h:217"
|
||||
|
||||
- name: "rom_sm.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom_sm.bin"
|
||||
description: "SC-55mk2 v1.01 sub-MCU ROM (R15199880)"
|
||||
required: false
|
||||
max_size: 4096
|
||||
sha256: "b0b5f865a403f7308b4be8d0ed3ba2ed1c22db881b8a8326769dea222f6431d8"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:299, emu.cpp:238, submcu.h:62"
|
||||
|
||||
- name: "waverom1.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/waverom1.bin"
|
||||
description: "SC-55mk2 wave ROM 16M (R15209359)"
|
||||
required: false
|
||||
max_size: 2097152
|
||||
sha256: "c6429e21b9b3a02fbd68ef0b2053668433bee0bccd537a71841bc70b8874243b"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:301, emu.cpp:238, pcm.h:83"
|
||||
|
||||
- name: "waverom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/waverom2.bin"
|
||||
description: "SC-55mk2 wave ROM 8M (R15279813)"
|
||||
required: false
|
||||
max_size: 2097152
|
||||
sha256: "5b753f6cef4cfc7fcafe1430fecbb94a739b874e55356246a46abe24097ee491"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:303, emu.cpp:238, pcm.h:84"
|
||||
|
||||
# -- SC-55mk2 program ROMs with Capital Tone Fallback restored --
|
||||
# Accepted in place of the stock SC-55mk2 program ROM.
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 program ROM, strict SC-55 tones, SC-55 v1.21 drums"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "64f8c9daf1021cf86ea4ddf03a29b81b5ea0c18e74f462833023436388bb9dc4"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:553"
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 program ROM, strict SC-55 tones, SC-55 v2.00 drums"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "14d14778caf46ffa9e3d608aa8e9c1a60c32bd4a536c26af3b2e1d81784c60f9"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:555"
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 program ROM, SC-55 tones, SC-55 v1.21 drums"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "10b3f09485a74bb014f1a940d5c67f380c7979b62891d540d788154c83f17430"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:557"
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 program ROM, SC-55 tones, SC-55 v2.00 drums"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "a2c720be1ab9115930d27f821a413c0366b7bf0c4ddfe0dadc5086136a1a4345"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:559"
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 program ROM, SC-55mkII tones, SC-55 v1.21 drums"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "16cec615da10089beffe6de5129ba8ba33fa1bf017a5e6b78ad1d6d15cf4708e"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:561"
|
||||
|
||||
- name: "rom2.bin"
|
||||
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
|
||||
description: "SC-55mk2 program ROM, SC-55mkII tones, SC-55 v2.00 drums"
|
||||
required: false
|
||||
max_size: 524288
|
||||
sha256: "c22bf7d34a3406530924d750b007bbdb470f3216c65086edb6e53023383ee907"
|
||||
validation: [sha256, size]
|
||||
source_ref: "Nuked-SC55-CLAP rom_io.cpp:563"
|
||||
|
||||
# -- FluidSynth SoundFont --
|
||||
|
||||
- name: "default.sf2"
|
||||
path: "soundfonts/default.sf2"
|
||||
description: "General MIDI SoundFont"
|
||||
required: false
|
||||
aliases:
|
||||
- "GeneralUser-GS.sf2"
|
||||
- "FluidR3_GM.sf2"
|
||||
- "Fluid_R3_GM_GS.sf2"
|
||||
- "4gmgsmt-sf2_04-compat.sf2"
|
||||
- "4GMGSMT.SF2"
|
||||
- "synthgs-sf2_04-compat.sf2"
|
||||
note: >
|
||||
any SoundFont loads; GeneralUser GS, Fluid R3, the AWE32 4MB GM/GS/MT
|
||||
bank and the Trevor0402 SC-55 SoundFont are recognised by filename or
|
||||
RIFF INFO name and get their own reverb, chorus and filter presets
|
||||
source_ref: "fluidsynth.cpp:672-689, 816-883, 1229-1242"
|
||||
|
||||
# -- PCjr system ROM --
|
||||
|
||||
- name: "system.rom"
|
||||
description: "IBM PCjr system ROM"
|
||||
required: false
|
||||
min_size: 57344
|
||||
validation: [size]
|
||||
note: >
|
||||
read during PCjr cartridge boot from the current DOS drive, then from
|
||||
the host working directory; bytes 0x3000 to 0xDFFF are copied to
|
||||
physical F3000. A short read leaves the region untouched and the
|
||||
cartridge still boots
|
||||
source_ref: "boot.cpp:379-397, 83-124"
|
||||
|
||||
# -- LOADROM images --
|
||||
# Read from the mounted DOS drive under the name given on the command line
|
||||
# and identified by their contents.
|
||||
|
||||
- name: "IBM PC Cassette BASIC ROM"
|
||||
description: "IBM BASIC ROM image mapped at F600:0"
|
||||
required: false
|
||||
size: 32768
|
||||
validation: [size]
|
||||
note: >
|
||||
accepted when the file is exactly 32768 bytes, starts with E9 8F 7E and
|
||||
carries the string IBM at offset 0x4CD4
|
||||
source_ref: "loadrom.cpp:56-80,95"
|
||||
|
||||
- name: "Video BIOS ROM"
|
||||
description: "Option ROM image mapped at C000:0 and initialised"
|
||||
required: false
|
||||
min_size: 16384
|
||||
max_size: 32768
|
||||
validation: [size]
|
||||
note: >
|
||||
accepted when the file is 16384 bytes or larger, starts with 55 AA,
|
||||
has byte 3 masked to E8 and carries the string IBM at offset 0x1E;
|
||||
needs an EGA or better machine type
|
||||
source_ref: "loadrom.cpp:56-75,88-93"
|
||||
@@ -0,0 +1,461 @@
|
||||
emulator: DOSBox-X
|
||||
type: standalone
|
||||
core_classification: enhanced_fork
|
||||
source: "https://github.com/joncampbell123/dosbox-x"
|
||||
upstream: "https://github.com/joncampbell123/dosbox-x"
|
||||
source_commit: "9fc3c0e000890504bcfc0ef5620cb97bdfc11262"
|
||||
profiled_date: "2026-08-08"
|
||||
core_version: "2026.08.02"
|
||||
display_name: "DOS (DOSBox-X)"
|
||||
cores:
|
||||
- dosbox-x
|
||||
- dosboxx
|
||||
systems:
|
||||
- dos
|
||||
- ibm-pc
|
||||
- ibm-pcjr
|
||||
- tandy-1000
|
||||
- pc-98
|
||||
mode: standalone
|
||||
|
||||
notes: |
|
||||
Fork of DOSBox SVN with its own DOS kernel. The machine setting picks the
|
||||
emulated hardware: mda, cga and its composite variants, hercules,
|
||||
hercules_plus, hercules_incolor, hercules_color, tandy, pcjr, amstrad,
|
||||
olivetti/m24/att6300, pc3270, ega, ega200, jega, mcga, vgaonly, the S3,
|
||||
Tseng, Paradise and ATI SVGA cards, the vesa variants, and pc98/pc9801/pc9821.
|
||||
fm_towns is marked STUB in the same list.
|
||||
ref: dosbox.cpp:1526-1562
|
||||
|
||||
No system BIOS: the PC BIOS, VGA BIOS, video fonts, keyboard layouts, codepage
|
||||
tables, the Z: drive utilities including GLIDE2X.OVL, and the TTF text font are
|
||||
compiled in.
|
||||
ref: int10_memory.cpp, dos_keyboard_layout_data.h, dos_codepages.h,
|
||||
builtin/glide2x.cpp:2861, output_ttf.cpp:664
|
||||
|
||||
Files named without a directory are searched in the working directory, the
|
||||
program directory, the user configuration directory and the resource
|
||||
directory. On Linux the configuration directory is $XDG_CONFIG_HOME/dosbox-x
|
||||
or ~/.config/dosbox-x, and the resource directory is $XDG_DATA_HOME/dosbox-x,
|
||||
then /usr/local/share/dosbox-x, then /usr/share/dosbox-x. Windows uses
|
||||
C:\DOSBox-X.
|
||||
ref: int10.cpp:1442-1485, cross.cpp:120-167
|
||||
|
||||
MT-32: libmt32emu is built from src/libs/mt32. Only four file names are ever
|
||||
opened, and each candidate is identified by exact file size then SHA1, so the
|
||||
name says nothing about the contents. addROMFile matches against the full
|
||||
image list only, which rejects the interleaved chip dumps.
|
||||
ref: midi_mt32.h:74-109, c_interface.cpp:442-462, ROMInfo.cpp:206-215
|
||||
mt32.model = auto opens CM32L_CONTROL.ROM then MT32_CONTROL.ROM, and
|
||||
CM32L_PCM.ROM then MT32_PCM.ROM; cm32l keeps only the CM32L names, mt32 only
|
||||
the MT32 names. The directory is mt32.romdir, then the working directory, then
|
||||
the resource directory, then the configuration directory. A missing pair logs
|
||||
the accepted file names and disables the device.
|
||||
ref: midi_mt32.h:246-275, dosbox.cpp:3571-3576
|
||||
|
||||
FluidSynth reads fluid.soundfont; fluid_synth_sfload is the only check. With
|
||||
the setting empty it probes /usr/share/soundfonts/default.sf2,
|
||||
/usr/share/sounds/sf2/FluidR3_GM.sf2 and GeneralUser_GS.sf2 on Linux, and
|
||||
C:\soundfonts\default.sf2 then the two same names under C:\DOSBox-X on Windows.
|
||||
ref: midi_synth.h:342-384, 462-480
|
||||
|
||||
PC-98 character generator, tried in order: FONT.ROM as generated by T98Tools,
|
||||
then the FONTX2 files named by pc-98 fontx sbcs and pc-98 fontx dbcs, then the
|
||||
file named by pc-98 anex86 font or ANEX86.BMP followed by FREECG98.BMP, then
|
||||
the built-in FREECG single-byte font and the built-in Japanese double-byte
|
||||
font. Each stage fills only what the previous one left empty.
|
||||
ref: int10.cpp:1882-1893, 1652-1675
|
||||
|
||||
PC-98 sound board BIOS: with pc-98 sound bios set, SOUND.ROM is read from the
|
||||
working directory into CC000h. Without it a callback Sound BIOS is installed
|
||||
at CEE0:0000 answering INT D2h.
|
||||
ref: pc98_fm.cpp:367-385, 416-434
|
||||
|
||||
DOS/V and CJK text: fontxsbcs, fontxsbcs16, fontxsbcs24, fontxdbcs,
|
||||
fontxdbcs14 and fontxdbcs24 name font files. LoadFontxFile reads a FONTX2
|
||||
header, otherwise tries BDF and PCF, otherwise accepts a raw bitmap font
|
||||
identified by its size, which covers ASC16 and ASCFONT.15 from UCDOS and ETen
|
||||
Chinese DOS, ASC24, HZK14, HZK16, HZK24 and STDFONT.15 and STDFONT.24.
|
||||
Unset settings fall back to the built-in font data.
|
||||
ref: int_dosv.cpp:654-749, 1631-1710, dosbox.cpp:2533-2568
|
||||
|
||||
BOOT -bios loads a BIOS image at the top of the first megabyte, truncated to
|
||||
128 KB, or 96 KB on PC-98 where it also looks for <image>.itf.rom, <image>.ITF.ROM,
|
||||
itf.rom and ITF.ROM to serve the bank switched Initial Firmware Test region
|
||||
through port 43Dh.
|
||||
ref: dos_programs.cpp:2243-2331
|
||||
|
||||
BIOSTEST.COM loads an image of up to 64 KB at F000:0 and restarts the CPU at
|
||||
the reset vector; it is compiled only when the debugger is enabled. The
|
||||
settings call binary on reset and call binary on boot load blobs of up to
|
||||
128 KB into the ROM BIOS area for CPU testing.
|
||||
ref: dos_programs.cpp:3578-3637, bios.cpp:13072-13145
|
||||
|
||||
Glide passthrough loads glide2x.dll, libglide2x.so or libglide2x.dylib.
|
||||
ref: glide.cpp:353-359, dosbox.cpp:3471-3473
|
||||
|
||||
ttf.font, ttf.fontbold, ttf.fontital and ttf.fontboit name a TTF, OTF, FON or
|
||||
TTC font resolved through the same search order plus the system font
|
||||
directories. Unset, the TTF output uses the built-in font, except on PC-98 or
|
||||
a double-byte code page where SarasaGothicFixed.ttf is tried first.
|
||||
ref: output_ttf.cpp:318-473, 653-668
|
||||
|
||||
Shipped in the resource directory: FREECG98.BMP, wqy_11pt.bdf, wqy_12pt.bdf,
|
||||
Nouveau_IBM.ttf, SarasaGothicFixed.ttf and the two reference configuration
|
||||
files.
|
||||
ref: src/Makefile.am:14-22
|
||||
|
||||
Overrides for data that is compiled in: the boot logo PNG, the mapper file,
|
||||
the customcodepage translation table, .kl layout files and the KEYBOARD.SYS
|
||||
to KEYBRD4.SYS libraries read from a mounted drive, the glshaders directory
|
||||
and the .lng translations.
|
||||
ref: bios.cpp:11321-11330, sdlmain.cpp:7001-7008,
|
||||
dos.cpp:4397-4420, dos_keyboard_layout.cpp:300-340,
|
||||
render.cpp:1538-1545, messages.cpp:294-320
|
||||
|
||||
files:
|
||||
# -- MT-32 and CM-32L control ROMs --
|
||||
# Read through addROMFile from mt32.romdir, the working directory, the
|
||||
# resource directory or the configuration directory. Both control file names
|
||||
# are opened in mt32.model = auto, so either name carries any of these images.
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.04"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:59,89"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:62,92"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:65,95"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:68,98"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:71,101"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.03"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:73,103"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:74,104"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:75,105"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:76,106"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
validation: [sha1, size]
|
||||
aliases: ["MT32_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:77,107"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
validation: [sha1, size]
|
||||
aliases: ["MT32_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:78,108"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||
validation: [sha1, size]
|
||||
aliases: ["MT32_CONTROL.ROM"]
|
||||
source_ref: "midi_mt32.h:81-89, ROMInfo.cpp:79,109"
|
||||
|
||||
# -- MT-32 and CM-32L PCM ROMs --
|
||||
# Every MT-32 control ROM pairs with the MT-32 PCM ROM, every CM-32L family
|
||||
# control ROM with the 1 MB image.
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
description: "MT-32 PCM ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32L_PCM.ROM"]
|
||||
source_ref: "midi_mt32.h:93-105, ROMInfo.cpp:83,113"
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
validation: [sha1, size]
|
||||
aliases: ["MT32_PCM.ROM"]
|
||||
source_ref: "midi_mt32.h:93-105, ROMInfo.cpp:85,117"
|
||||
|
||||
# -- FluidSynth SoundFont --
|
||||
|
||||
- name: "default.sf2"
|
||||
description: "General MIDI SoundFont"
|
||||
required: false
|
||||
aliases:
|
||||
- "FluidR3_GM.sf2"
|
||||
- "GeneralUser_GS.sf2"
|
||||
note: >
|
||||
any SF2 or SF3 file loads; fluid.soundfont names it and
|
||||
fluid_synth_sfload is the only check
|
||||
source_ref: "midi_synth.h:346-384, 462-473, dosbox.cpp:3710"
|
||||
|
||||
# -- PC-98 character generator --
|
||||
|
||||
- name: "FONT.ROM"
|
||||
description: "PC-98 character generator ROM, T98Tools layout"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 288768
|
||||
validation: [size]
|
||||
note: >
|
||||
256 8x8 cells at 0x0, 256 8x16 cells at 0x800, 96 by 92 16x16 cells at
|
||||
0x1800; a file of any other length is rejected. Enabled by
|
||||
pc-98 try font rom, on by default
|
||||
source_ref: "int10.cpp:1487-1549, dosbox.cpp:2477-2478"
|
||||
|
||||
- name: "ANEX86.BMP"
|
||||
description: "PC-98 character generator, Anex86 bitmap"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: >
|
||||
2048 by 2048 monochrome Windows bitmap, biSize 40, one plane, one bit per
|
||||
pixel, no compression, inverse colour scheme; the first row is the 8x16
|
||||
single-width set and the rest is 16x16 full-width. Also reachable through
|
||||
the pc-98 anex86 font setting, which is tried before FONT.ROM
|
||||
source_ref: "int10.cpp:1555-1647, dosbox.cpp:2481-2484"
|
||||
|
||||
- name: "FREECG98.BMP"
|
||||
description: "PC-98 character generator, free generated bitmap"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: >
|
||||
same bitmap layout as ANEX86.BMP and tried after it; ships in the resource
|
||||
directory
|
||||
source_ref: "int10.cpp:1577-1580, src/Makefile.am:17"
|
||||
|
||||
# -- CJK bitmap fonts --
|
||||
# Read when the guest code page is 936, 949, 950 or 951 and a character has no
|
||||
# equivalent in the built-in Japanese font. The .pcf form of each name is
|
||||
# tried after the .bdf form.
|
||||
|
||||
- name: "wqy_12pt.bdf"
|
||||
description: "WenQuanYi 16-pixel bitmap font"
|
||||
required: false
|
||||
aliases: ["wqy_12pt.pcf"]
|
||||
note: "ships in the resource directory"
|
||||
source_ref: "int_dosv.cpp:1197-1218, src/Makefile.am:19"
|
||||
|
||||
- name: "wqy_11pt.bdf"
|
||||
description: "WenQuanYi 14-pixel bitmap font"
|
||||
required: false
|
||||
aliases: ["wqy_11pt.pcf"]
|
||||
note: "ships in the resource directory"
|
||||
source_ref: "int_dosv.cpp:1296-1316, src/Makefile.am:18"
|
||||
|
||||
- name: "SarasaGothicFixed.ttf"
|
||||
description: "CJK fixed-width TrueType font"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
note: >
|
||||
tried by the TTF output on PC-98 and on double-byte code pages when
|
||||
ttf.font is unset, and by the printer when the selected typeface file is
|
||||
missing; ships in the resource directory
|
||||
source_ref: "output_ttf.cpp:655-668, printer.cpp:354-380, src/Makefile.am:21"
|
||||
|
||||
# -- Printer typefaces --
|
||||
# Read from the directory named by the printer fontpath setting, default
|
||||
# FONTS, then from the configuration, resource and program directories.
|
||||
# FT_New_Face is the only check.
|
||||
|
||||
- name: "roman.ttf"
|
||||
path: "FONTS/roman.ttf"
|
||||
description: "Printer Roman typeface"
|
||||
required: false
|
||||
note: "also the fallback typeface for any unmapped LQ selection"
|
||||
source_ref: "printer.cpp:320-321, 336-337, dosbox.cpp:4597"
|
||||
|
||||
- name: "sansserif.ttf"
|
||||
path: "FONTS/sansserif.ttf"
|
||||
description: "Printer Sans Serif typeface"
|
||||
required: false
|
||||
source_ref: "printer.cpp:323-324, dosbox.cpp:4597"
|
||||
|
||||
- name: "courier.ttf"
|
||||
path: "FONTS/courier.ttf"
|
||||
description: "Printer Courier typeface"
|
||||
required: false
|
||||
source_ref: "printer.cpp:326-327, dosbox.cpp:4597"
|
||||
|
||||
- name: "script.ttf"
|
||||
path: "FONTS/script.ttf"
|
||||
description: "Printer Script typeface"
|
||||
required: false
|
||||
source_ref: "printer.cpp:329-330, dosbox.cpp:4597"
|
||||
|
||||
- name: "ocra.ttf"
|
||||
path: "FONTS/ocra.ttf"
|
||||
description: "Printer OCR-A typeface"
|
||||
required: false
|
||||
note: "serves both the OCR-A and OCR-B selections"
|
||||
source_ref: "printer.cpp:332-334, dosbox.cpp:4597"
|
||||
|
||||
# -- PC-98 sound board BIOS --
|
||||
|
||||
- name: "SOUND.ROM"
|
||||
description: "PC-9801-26K/86 FM board BIOS"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
min_size: 16384
|
||||
validation: [size]
|
||||
note: >
|
||||
16 KB read into CC000h from the working directory only, when
|
||||
pc-98 sound bios and pc-98 load sound bios rom file are both set
|
||||
source_ref: "pc98_fm.cpp:367-385, dosbox.cpp:2378-2386"
|
||||
|
||||
# -- Video BIOS ROM images --
|
||||
# Loaded in place of the built-in INT 10h when vga bios use rom image is set.
|
||||
# The name comes from vga bios rom image, or from the machine type when that
|
||||
# setting is empty.
|
||||
|
||||
- name: "et4000.bin"
|
||||
description: "Tseng ET4000 video BIOS"
|
||||
required: false
|
||||
min_size: 1024
|
||||
max_size: 65536
|
||||
validation: [size]
|
||||
note: "default file name for machine = svga_et4000"
|
||||
source_ref: "dosbox.cpp:938-982, 2745-2757"
|
||||
|
||||
- name: "TRIO64 (Ver. 1.5-07) [VGA] (S3 Incorporated).bin"
|
||||
description: "S3 Trio64 video BIOS"
|
||||
required: false
|
||||
min_size: 1024
|
||||
max_size: 65536
|
||||
validation: [size]
|
||||
note: "default file name for machine = svga_s3"
|
||||
source_ref: "dosbox.cpp:943-945, 2745-2757"
|
||||
|
||||
- name: "Video BIOS option ROM"
|
||||
description: "Option ROM image mapped at C000:0 and initialised"
|
||||
required: false
|
||||
min_size: 16384
|
||||
max_size: 32768
|
||||
validation: [size]
|
||||
note: >
|
||||
read by LOADROM.COM from a mounted local drive; accepted when the file
|
||||
starts with 55 AA, byte 3 masked with 0xFC equals 0xE8 and the string IBM
|
||||
appears at offset 0x1E, and the machine is EGA or better
|
||||
source_ref: "dos_programs.cpp:3520-3546, 3557-3562"
|
||||
|
||||
# -- IBM ROM BASIC --
|
||||
|
||||
- name: "IBMROMBASIC-F6000h-1982-10-27.ROM"
|
||||
description: "IBM 5150 Cassette BASIC ROM"
|
||||
required: false
|
||||
min_size: 32768
|
||||
max_size: 65536
|
||||
validation: [size]
|
||||
note: >
|
||||
the ibm rom basic setting maps it just below the ROM BIOS and accepts
|
||||
32 KB to 64 KB in 4 KB steps; LOADROM.COM maps the same image at F600:0
|
||||
when it is exactly 32768 bytes, starts with E9 8F 7E and carries the
|
||||
string IBM at offset 0x4CD4
|
||||
source_ref: "bios.cpp:13007-13027, dos_programs.cpp:3547-3551, dosbox.cpp:1931-1933"
|
||||
|
||||
# -- PCjr --
|
||||
|
||||
- name: "system.rom"
|
||||
description: "IBM PCjr system ROM"
|
||||
required: false
|
||||
min_size: 57344
|
||||
validation: [size]
|
||||
note: >
|
||||
read during PCjr cartridge boot; bytes 0x3000 to 0xDFFF are copied to
|
||||
physical F3000. A short read leaves the region untouched and the cartridge
|
||||
still boots
|
||||
source_ref: "dos_programs.cpp:3058-3067"
|
||||
|
||||
# -- Whole system BIOS images --
|
||||
|
||||
- name: "System BIOS image"
|
||||
description: "PC/AT or PC-98 BIOS ROM image booted by BOOT -bios"
|
||||
required: false
|
||||
note: >
|
||||
loaded at the top of the first megabyte, rounded up to a paragraph and
|
||||
truncated to 128 KB, or to 96 KB on PC-98; a larger image is clamped
|
||||
rather than rejected
|
||||
source_ref: "dos_programs.cpp:2243-2292"
|
||||
|
||||
- name: "ITF.ROM"
|
||||
description: "PC-98 Initial Firmware Test BIOS"
|
||||
required: false
|
||||
max_size: 32768
|
||||
validation: [size]
|
||||
note: >
|
||||
served through the port 43Dh bank switch alongside a BOOT -bios image;
|
||||
<image>.itf.rom is tried before the bare name so one directory can hold
|
||||
several
|
||||
source_ref: "dos_programs.cpp:2294-2325"
|
||||
@@ -164,7 +164,10 @@ files:
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
validation: [sha1, size]
|
||||
source_ref: "mt32emu.h:5126,5143"
|
||||
note: "pairs with any MT-32 v1.x control ROM"
|
||||
note: >
|
||||
accepted by every MT-32 control ROM, v1.x and v2.x. Each control ROM
|
||||
fixes the PCM size it accepts through its pcmCount: 128 requires this
|
||||
524288 byte image. ref: mt32emu.h:2586-2598,3167,3025
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
@@ -173,8 +176,13 @@ files:
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
validation: [sha1, size]
|
||||
aliases: ["CM32LN_PCM.ROM"]
|
||||
source_ref: "mt32emu.h:5127,5144"
|
||||
note: "pairs with MT-32 v2.x or CM-32L control ROMs. Lower half aliases MT-32 PCM."
|
||||
note: >
|
||||
accepted by the CM-32L and CM-32LN control ROMs, which carry pcmCount
|
||||
256 and require this 1048576 byte image. The alias covers the name
|
||||
derived from CM32LN_CONTROL.ROM.
|
||||
ref: mt32emu.h:2586-2598,3167,3025, midi_mt32.h:194-195
|
||||
|
||||
# -- General MIDI SoundFont --
|
||||
|
||||
|
||||
Reference in new issue
Block a user