mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
feat: profile xm6 pro-68k, typeg and zesarux
X68000 and ZX Spectrum emulators read from their own source trees.
This commit is contained in:
1 parent
367d4efaac
commit
825aa78bc5
3 files changed
+1719
No files matched your search
@@ -0,0 +1,263 @@
|
||||
emulator: xm6pro68k
|
||||
type: standalone
|
||||
core_classification: enhanced_fork
|
||||
source: "https://mijet.eludevisibility.org/XM6%20Pro-68k/XM6%20Pro-68k.html"
|
||||
upstream: closed-source
|
||||
based_on: "XM6 v2.06 by PI."
|
||||
profiled_date: "2026-08-10"
|
||||
core_version: "260726"
|
||||
display_name: "XM6 Pro-68k (Sharp X68000)"
|
||||
mode: standalone
|
||||
cores:
|
||||
- xm6pro68k
|
||||
- xm6pro
|
||||
- XM6PRO68K
|
||||
- XM6PRO68K-WINDOWS
|
||||
systems:
|
||||
- sharp-x68000
|
||||
|
||||
notes: |
|
||||
Closed-source Windows fork of PI's XM6 v2.06 (README.txt:6) by M.I.J.E.T.,
|
||||
distributed only from mijet.eludevisibility.org as three 7-Zip packages: the
|
||||
program, a mandatory DLL Package and an optional Web Package that adds signed
|
||||
update downloads. Version.txt in the build analysed here reads 260726. The first
|
||||
release, 120303, forked XM6 v2.05. XM6.exe is a 32-bit MFC application whose
|
||||
import directory names mfc90u.dll and MSVCR90.dll, so the Visual C++ 2008 runtime
|
||||
carried by the DLL Package, or the redistributable, must sit beside the executable
|
||||
for the process to start; a second non-Unicode build lives in MBCS/ and needs the
|
||||
same files duplicated there. ES-DE launches it through the XM6PRO68K and
|
||||
XM6PRO68K-WINDOWS find rules with the working directory set to the emulator
|
||||
folder, on Linux under Wine or Proton. RetroBat registers it as xm6pro
|
||||
(Program.cs:189, Installer.cs:151), runs XM6.exe from its own directory and
|
||||
rewrites XM6.ini before launch (Xm6pro.Generator.cs:22-79).
|
||||
|
||||
System files are resolved beside XM6.exe. XM6 v2.06 declares them in
|
||||
Filepath::SystemFile[] (vm/filepath.cpp:394-405) and Filepath::SysFile
|
||||
(vm/filepath.cpp:121-137) builds each path from SystemDir when one is set and from
|
||||
the executable's own directory otherwise. XM6 Pro-68k references all ten names,
|
||||
nine of them in one contiguous string block mirroring that table in reverse, and
|
||||
exposes no ROM directory setting, while README.txt:71-73 requires the DLL Package
|
||||
files to be extracted next to the executable rather than into a subdirectory.
|
||||
Loading goes through Fileio::Load and
|
||||
Fileio::Read (vm/fileio.cpp:35-51, 175-192), which succeed only when the file
|
||||
holds at least the requested byte count, so every size below is a floor: a longer
|
||||
file loads and its tail is ignored. The XM6 v2.06 sources cited throughout are
|
||||
readable in mixerjdp/XM6_Libretro, which preserves the vm/ layer.
|
||||
|
||||
Machine selection follows ROM presence. Memory::Init (vm/memory.cpp:171-196)
|
||||
loads the base SASI machine, then probes XVI, Compact and X68030 in that order and
|
||||
keeps the first that succeeds. Memory::LoadROM (vm/memory.cpp:236-372) pairs each
|
||||
machine with its ROMs: XVI and Compact need their IPL plus SCSIINROM.DAT, X68030
|
||||
needs IPLROM30.DAT plus ROM30.DAT read at 0x20000 bytes instead of 0x2000, and the
|
||||
base machine needs no SCSI ROM. Internal SCSI is the interface built into the
|
||||
X68000 SUPER and later models, external SCSI is the CZ-6BS1 add-on board
|
||||
(Reference Manual.txt:1529-1536).
|
||||
|
||||
Two files diverge from XM6 v2.06. The base IPL ROM is compiled into the
|
||||
executable: "The program now includes an internal copy of the basic IPL ROM. It
|
||||
will still try to load IPL ROMs externally first" (Change Log.txt:125-126), and
|
||||
README.txt:23-25 tells users to leave IPLROM.DAT out because loading it only costs
|
||||
startup time. The hard CG ROM requirement was dropped (Change Log.txt:129), so a
|
||||
missing font ROM yields garbage glyphs instead of failing initialisation
|
||||
(README.txt:277-278).
|
||||
|
||||
Two menu tools synthesise replacements. Synthesize replacement CG-ROM builds
|
||||
CGROM.TMP from the installed MS Gothic and MS Mincho fonts and aborts when either
|
||||
is absent; README.txt:294-296 warns that different machines produce different
|
||||
files. Synthesize replacement SCSI ROMs asks for a Human68k version 3.02 disk
|
||||
image, dialog default HUMAN302.XDF with filter *HUMAN*3*02*.???, extracts
|
||||
/BIN/FORMAT.X and writes SCSIINROM.DAT and SCSIEXROM.DAT.
|
||||
|
||||
The ROM Warning section of the Advanced options holds three startup checks, all
|
||||
enabled by default and individually suppressible: an IPLROM.DAT version check
|
||||
naming version 1.0 (05/07/1987) as recommended, a CGROM.DAT contents check and a
|
||||
SCSIEXROM.DAT / SCSIINROM.DAT contents check. Each raises a dialog; none rejects
|
||||
the file, so no hash below is enforced by the program.
|
||||
|
||||
Reference Manual.txt ships with the program and Software Notes.txt is fetched by
|
||||
the Web Package through Scripts\Update Notes.bat. Both are prose documents that
|
||||
the Help menu and Help > Peruse Notes hand to a text editor, not data XM6 parses.
|
||||
XM6.ini and XM6U.ini are written by the program.
|
||||
|
||||
files:
|
||||
# -- IPL ROMs, one per emulated model, each read at 0x20000 bytes --
|
||||
|
||||
- name: IPLROM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
has_builtin: true
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
md5: 7fd4caabac1d9169e289f0f7bbf71d8e
|
||||
sha1: 0ed038ed2133b9f78c6e37256807424e0d927560
|
||||
description: "X68000 boot ROM, base SASI model"
|
||||
source_ref: "Change Log.txt:125-126, README.txt:23-25, XM6 2.06 vm/memory.cpp:256-276"
|
||||
note: >-
|
||||
XM6.exe carries this ROM internally and only reads the file when it is
|
||||
present, so the emulator boots without it. The embedded copy sits at file
|
||||
offset 1337256 in .rdata of the Unicode build and 1288176 in the MBCS build,
|
||||
stored in the 16-bit pairwise swapped form the loader produces at
|
||||
vm/memory.cpp:278-285; unswapped it is the 131072-byte dump hashed here,
|
||||
catalogued by TOSEC as Sharp X68000 Boot ROM (1987)(Sharp), and it is the
|
||||
version 1.0 (05/07/1987) the startup warning recommends. README.txt:23-25
|
||||
advises against installing the file at all because reading and swapping it
|
||||
only lengthens startup.
|
||||
|
||||
- name: IPLROMXV.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "X68000 XVI boot ROM"
|
||||
source_ref: "XM6 2.06 vm/memory.cpp:178-180, 261-263"
|
||||
note: >-
|
||||
Probed after the base machine loads. Its presence, together with
|
||||
SCSIINROM.DAT, is what makes the XVI machine available; absent, the base
|
||||
X68000 still runs. No internal copy is compiled into XM6.exe.
|
||||
|
||||
- name: IPLROMCO.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "X68000 Compact boot ROM"
|
||||
source_ref: "XM6 2.06 vm/memory.cpp:181-185, 264-266"
|
||||
note: >-
|
||||
Probed after XVI. Selects the Compact machine when found, and that machine
|
||||
also needs SCSIINROM.DAT. No internal copy is compiled into XM6.exe.
|
||||
|
||||
- name: IPLROM30.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "X68030 boot ROM"
|
||||
source_ref: "XM6 2.06 vm/memory.cpp:186-190, 267-269"
|
||||
note: >-
|
||||
Probed last. Selects the X68030 machine, which also needs ROM30.DAT. No
|
||||
internal copy is compiled into XM6.exe.
|
||||
|
||||
# -- X68030 SCSI ROM, the one SCSI ROM read at 0x20000 bytes --
|
||||
|
||||
- name: ROM30.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "X68030 SCSI ROM"
|
||||
source_ref: "README.txt:25, XM6 2.06 vm/memory.cpp:316-319, 334-337"
|
||||
note: >-
|
||||
The SCSI half of the X68030 machine, and the only SCSI ROM read at 0x20000
|
||||
bytes rather than 0x2000. Without it LoadROM(X68030) fails and the X68030
|
||||
machine is not offered. README.txt:25 calls it non-critical and notes that
|
||||
installing it can cost performance.
|
||||
|
||||
# -- Font ROM, read at 0xc0000 bytes, CGROM.DAT first then CGROM.TMP --
|
||||
|
||||
- name: CGROM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
bundled: true
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
md5: cb0a5cfcf7247a7eab74bb2716260269
|
||||
sha1: 8d72c5b4d63bb14c5dbdac495244d659aa1498b6
|
||||
description: "X68000 character generator ROM"
|
||||
source_ref: "README.txt:277-278, Change Log.txt:129, XM6 2.06 vm/memory.cpp:287-295"
|
||||
note: >-
|
||||
Supplies the glyphs for text the X68000 renders. Stock XM6 v2.06 fails
|
||||
initialisation when neither font file loads; XM6 Pro-68k dropped that
|
||||
requirement, so a missing font ROM shows garbage glyphs and the emulator
|
||||
keeps running, and what remains is the suppressible contents warning.
|
||||
The mandatory DLL Package ships this exact 786432-byte file, catalogued by
|
||||
TOSEC as Sharp X68000 CG ROM (1987)(Sharp); the hash identifies that copy and
|
||||
is not verified by the program.
|
||||
|
||||
- name: CGROM.TMP
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
description: "Synthesised font ROM, fallback when CGROM.DAT is absent"
|
||||
source_ref: "README.txt:292-296, XM6 2.06 vm/memory.cpp:290-294"
|
||||
note: >-
|
||||
Read only when CGROM.DAT is missing, at the same size. Tools > Synthesize
|
||||
replacement CG-ROM writes it from the installed MS Gothic and MS Mincho fonts
|
||||
and fails when either is absent. No hash is declared because the output
|
||||
depends on the fonts of the machine that generated it. XM6 refuses to use it
|
||||
while CGROM.DAT is present.
|
||||
|
||||
# -- SCSI ROMs, read at 0x2000 bytes, required by the interface they drive --
|
||||
|
||||
- name: SCSIINROM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
bundled: true
|
||||
min_size: 8192
|
||||
validation: [size]
|
||||
md5: aeb4607a14612606c833227437aaa16a
|
||||
sha1: 15a17798839a3f7f361119205aebc301c2df5967
|
||||
description: "Internal SCSI interface ROM, X68000 SUPER and later"
|
||||
source_ref: "Reference Manual.txt:1529-1536, XM6 2.06 vm/memory.cpp:309-315"
|
||||
note: >-
|
||||
Needed to use internal SCSI drives, and also loaded as part of the XVI and
|
||||
Compact machines, so those two models are unavailable without it whatever
|
||||
their IPL. The mandatory DLL Package ships this exact 8192-byte file and the
|
||||
hash identifies that copy; the startup contents check only warns.
|
||||
|
||||
- name: SCSIEXROM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
bundled: true
|
||||
min_size: 8160
|
||||
validation: [size]
|
||||
md5: 237be014374b74d327f15f250d4d62bf
|
||||
sha1: 49616c09a8986ffe6a12ad600febe512f7ba8ae4
|
||||
description: "External SCSI interface ROM, CZ-6BS1 board"
|
||||
source_ref: "Reference Manual.txt:1529-1536, XM6 2.06 vm/memory.cpp:320-324, 346-357"
|
||||
note: >-
|
||||
Needed to use the external SCSI interface, which is the only SCSI variant
|
||||
that can coexist with SASI. The loader first reads 0x2000 bytes and, on
|
||||
failure, retries with the 0x1fe0-byte WinX68k layout loaded at buffer offset
|
||||
0x20, so 8160 is the real floor. The mandatory DLL Package ships the
|
||||
8192-byte form hashed here.
|
||||
|
||||
# -- Battery-backed NVRAM --
|
||||
|
||||
- name: SRAM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size: 16384
|
||||
description: "X68000 SRAM image, boot device and memory switch settings"
|
||||
source_ref: "Reference Manual.txt:1366-1368, 2648-2651, XM6 2.06 vm/filepath.cpp:404"
|
||||
note: >-
|
||||
Read at startup and rewritten on exit when the contents changed, so XM6
|
||||
creates it on first run and a supplied image only preloads the settings. The
|
||||
Tools > SRAM menu reloads, duplicates and write-protects it, and the boot
|
||||
counter option updates it on exit. Size is the X68000 SRAM size and is not
|
||||
checked by the program.
|
||||
|
||||
# -- Optional libraries loaded by name at runtime, shipped in the DLL Package --
|
||||
|
||||
- name: 7z.dll
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
bundled: true
|
||||
description: "7-Zip library for .7z, .zip and .xz support"
|
||||
source_ref: "README.txt:166-170, XM6.exe strings 7z.dll, Optional DLL Not Present"
|
||||
note: >-
|
||||
Absent from the import directory and looked up by name at runtime, so XM6
|
||||
starts without it and reports Optional DLL Not Present, Archive support is
|
||||
not available. Enables loading disk images and state files from archives and
|
||||
writing XZ-compressed state files.
|
||||
|
||||
- name: zlib1.dll
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
bundled: true
|
||||
description: "zlib, used for PNG output and deflate archives"
|
||||
source_ref: "README.txt:322-323, XM6.exe strings 7z.dll or zlib1.dll"
|
||||
note: >-
|
||||
Looked up by name at runtime alongside 7z.dll and named in the same Optional
|
||||
DLL Not Present dialog. README.txt:322-323 credits the PNG Reference Library
|
||||
and zlib for the screenshot support.
|
||||
@@ -0,0 +1,412 @@
|
||||
emulator: xm6typeg
|
||||
type: standalone
|
||||
core_classification: enhanced_fork
|
||||
source: "http://retropc.net/pi/xm6/index.html"
|
||||
upstream: closed-source
|
||||
based_on: "XM6 v2.06 by PI."
|
||||
profiled_date: "2026-08-10"
|
||||
core_version: "3.38"
|
||||
display_name: "XM6 TypeG (Sharp X68000)"
|
||||
mode: standalone
|
||||
cores:
|
||||
- xm6typeg
|
||||
- XM6TYPEG
|
||||
- XM6TYPEG-WINDOWS
|
||||
systems:
|
||||
- sharp-x68000
|
||||
|
||||
notes: |
|
||||
Closed-source Windows fork of XM6 v2.06, extended by GIMONS from 2010 and
|
||||
maintained again by PI. since version 3.34 (xm6g.pdf p.1, p.3). Distributed from
|
||||
PI's XM6 page as a single archive, xm6_typeg_338_20260223.zip, holding an x64
|
||||
xm6g.exe, the Visual C++ 2015-2019 runtime it imports (mfc140u.dll,
|
||||
msvcp140.dll, vcruntime140.dll, vcruntime140_1.dll) and the 32-page manual
|
||||
xm6g.pdf. No source is published; the analysis below reads xm6g.exe, and the
|
||||
XM6 v2.06 sources cited alongside are PI's own release, xm6_206s.zip from the
|
||||
same page. ES-DE launches it through the XM6TYPEG and XM6TYPEG-WINDOWS find
|
||||
rules with the working directory set to the emulator folder, on Linux under
|
||||
Wine or Proton. The archive alone does not run: the manual opens with that
|
||||
warning (xm6g.pdf p.5).
|
||||
|
||||
Machines emulated are X68000, XVI, Compact, X68030 and the 040turbo and
|
||||
060turbo accelerator configurations (xm6g.pdf p.3). System files are resolved
|
||||
beside xm6g.exe. A twenty-entry name table at xm6g.exe:0x140592350 holds them,
|
||||
against ten in Filepath::SystemFile[] (XM6 2.06 vm/filepath.cpp:472-483), and
|
||||
each path is built by copying the name, splitting it, and refilling drive and
|
||||
directory from GetModuleFileNameW, the sequence XM6 2.06 spells out in
|
||||
Filepath::SysFile and Filepath::SetBaseDir (vm/filepath.cpp:88-105, 172-186).
|
||||
The path is rebuilt from the module path on every load, with no configured
|
||||
directory taking part. Loading reads a fixed byte count and compares it
|
||||
against the count returned, so every min_size below is a floor: a longer file
|
||||
loads and its tail is ignored.
|
||||
|
||||
Two files are mandatory. LoadROM (xm6g.exe:0x1404fc9a5) leaves through its
|
||||
failure exit when the IPL read fails, and the CG read falls back to CGROM.TMP
|
||||
before failing the same way, which is the string "XM6 requires two ROM files,
|
||||
IPLROM.DAT file and CGROM.DAT(or CGROM.TMP) file." Nothing in the executable
|
||||
substitutes for either. The system options page probes IPLROM.DAT,
|
||||
IPLROMXV.DAT, IPLROMCO.DAT and IPLROM30.DAT with GetFileSizeEx and accepts a
|
||||
file only at exactly 131072 bytes (xm6g.exe:0x140428f80, size test at
|
||||
0x14042920a).
|
||||
|
||||
XM6 Utility, published separately at the same address, synthesises CGROM.TMP
|
||||
from the installed Windows fonts and SCSIINROM.DAT or SCSIEXROM.DAT from the
|
||||
Human68k version 3.02 disk image HUMAN302.XDF, which it requires at 0x134000
|
||||
bytes (XM6Util scsirom.cpp:86-90). It stamps the SCSI ROMs with "XM6 " at
|
||||
offset 0x1ff8 and a version at 0x1ffc (XM6Util scsirom.cpp:243-245), and
|
||||
xm6g.exe reads both files back and tests that signature
|
||||
(xm6g.exe:0x14050147c, 0x1405015e0) to raise the startup warning that names
|
||||
these files as substitutes and discourages them. Nothing rejects the file, and
|
||||
no genuine ROM is hashed anywhere in the executable.
|
||||
|
||||
SCSI ROM requirements follow the machine (xm6g.pdf p.17). SCSIINROM.DAT is
|
||||
needed by SUPER, XVI and Compact and by any machine set to the internal SCSI
|
||||
interface; SCSIEXROM.DAT drives the CZ-6BS1 external board, which is the only
|
||||
SCSI variant the SASI models can take. X68030 needs neither, its SCSI ROM
|
||||
being part of IPLROM30.DAT or IPLROM30S.DAT. IPLROM30S.DAT and ROM30S.DAT are
|
||||
a pair used only when Expansion ROM is enabled on the X68030 options tab, for
|
||||
ROMs patched for 060turbo (xm6g.pdf p.17).
|
||||
|
||||
The Mercury Unit carries an OPN (YMF288) whose rhythm section is sampled from
|
||||
external files. The fmgen and X68Sound engines read six WAV files named from a
|
||||
table at xm6g.exe:0x1405c0090 (0x1404ed610, CreateFileW at 0x1404ed8bf); the
|
||||
ymfm engine reads ym2608_adpcm_rom.bin instead (0x140574fec, ReadFile at
|
||||
0x140575095), which is why the rhythm level control is documented as inert for
|
||||
ymfm.
|
||||
|
||||
xm6g.ini and the state file STATE.XM6, the twentieth table entry, are written
|
||||
by the program and are not listed below. RTC.DAT and the SRAM files are listed
|
||||
because they are battery-backed images with hardware counterparts that preload
|
||||
settings when supplied, even though XM6 TypeG creates them on exit when they
|
||||
are absent (xm6g.pdf p.18).
|
||||
|
||||
files:
|
||||
# -- IPL ROMs, one per emulated model, read at 0x20000 bytes and byte-swapped --
|
||||
|
||||
- name: IPLROM.DAT
|
||||
system: sharp-x68000
|
||||
required: true
|
||||
size: 131072
|
||||
validation: [size]
|
||||
description: "X68000 boot ROM version 1.0, base models"
|
||||
source_ref: "xm6g.pdf p.16, xm6g.exe:0x1404fc9a5 (read at 0x1404fcbb7), xm6g.exe:0x14042920a, XM6 2.06 vm/memory.cpp:249-270"
|
||||
note: >-
|
||||
Covers the first model, ACE, EXPERT, PRO and SUPER. LoadROM reads 0x20000
|
||||
bytes and fails when fewer are returned, and the failure aborts
|
||||
initialisation. The startup warning naming version 1.00 (05/07/1987) as
|
||||
recommended only advises; it does not reject the file. The recommended
|
||||
source is the free X68BIOSE.LZH package (xm6g.pdf p.6).
|
||||
|
||||
- name: IPLROMXV.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size: 131072
|
||||
validation: [size]
|
||||
description: "X68000 XVI boot ROM version 1.1"
|
||||
source_ref: "xm6g.pdf p.16, xm6g.exe:0x14042927c, XM6 2.06 vm/memory.cpp:256-258"
|
||||
note: >-
|
||||
Selects the XVI machine, which also needs SCSIINROM.DAT. The options page
|
||||
offers the machine only when this file is exactly 131072 bytes.
|
||||
|
||||
- name: IPLROMCO.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size: 131072
|
||||
validation: [size]
|
||||
description: "X68000 Compact boot ROM version 1.2"
|
||||
source_ref: "xm6g.pdf p.16, xm6g.exe:0x14042946b, XM6 2.06 vm/memory.cpp:259-261"
|
||||
note: >-
|
||||
Selects the Compact machine, which also needs SCSIINROM.DAT. Same exact
|
||||
size test as the other IPL ROMs.
|
||||
|
||||
- name: IPLROM30.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size: 131072
|
||||
validation: [size]
|
||||
description: "X68030 boot ROM version 1.3, $FE0000-$FFFFFF half"
|
||||
source_ref: "xm6g.pdf p.16, xm6g.exe:0x14042965a, XM6 2.06 vm/memory.cpp:262-264"
|
||||
note: >-
|
||||
Upper half of the X68030 and X68030 Compact boot ROM, paired with
|
||||
ROM30.DAT. It carries the SCSI ROM for those machines, so neither
|
||||
SCSIINROM.DAT nor SCSIEXROM.DAT applies to them.
|
||||
|
||||
- name: ROM30.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "X68030 boot ROM version 1.3, $FC0000-$FDFFFF half"
|
||||
source_ref: "xm6g.pdf p.16, xm6g.exe:0x1404fd1f8, XM6 2.06 vm/memory.cpp:311-313, 328-335"
|
||||
note: >-
|
||||
Lower half of the X68030 boot ROM, loaded through the SCSI ROM slot and
|
||||
the only one of those read at 0x20000 bytes rather than 0x2000. Without it
|
||||
the X68030 machine does not load.
|
||||
|
||||
- name: IPLROM30S.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "Expansion boot ROM, $FE0000-$FEFFFF"
|
||||
source_ref: "xm6g.pdf p.16-17, xm6g.exe:0x140592350 index 4"
|
||||
note: >-
|
||||
Read in place of IPLROM30.DAT when Expansion ROM is checked on the X68030
|
||||
options tab, the setting stored as EXTROM. Paired with ROM30S.DAT and
|
||||
intended for ROMs patched for 060turbo.
|
||||
|
||||
- name: ROM30S.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 131072
|
||||
validation: [size]
|
||||
description: "Expansion boot ROM, lower half"
|
||||
source_ref: "xm6g.pdf p.16, xm6g.exe:0x1404fd201"
|
||||
note: >-
|
||||
The other half of the expansion pair, loaded through the same SCSI ROM
|
||||
slot as ROM30.DAT and read at the same size.
|
||||
|
||||
# -- CG ROMs, read at 0xc0000 bytes, model specific first then CGROM.DAT then CGROM.TMP --
|
||||
|
||||
- name: CGROM.DAT
|
||||
system: sharp-x68000
|
||||
required: true
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
description: "X68000 character generator ROM"
|
||||
source_ref: "xm6g.pdf p.17-18, xm6g.exe:0x1404fcf11 (read at 0x1404fd013), XM6 2.06 vm/memory.cpp:283-289"
|
||||
note: >-
|
||||
Supplies the glyphs the X68000 renders, mapped at $F00000-$FBFFFF. Used by
|
||||
the base models and as the fallback for every machine whose own CG ROM is
|
||||
absent. Initialisation fails when neither this file nor CGROM.TMP loads.
|
||||
|
||||
- name: CGROMXV.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
description: "X68000 XVI character generator ROM"
|
||||
source_ref: "xm6g.pdf p.17-18, xm6g.exe:0x1404fcd99"
|
||||
note: >-
|
||||
Preferred when the XVI machine is selected. CGROM.DAT is used when it is
|
||||
missing.
|
||||
|
||||
- name: CGROMCO.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
description: "X68000 Compact character generator ROM"
|
||||
source_ref: "xm6g.pdf p.17-18, xm6g.exe:0x1404fcdac"
|
||||
note: >-
|
||||
Preferred when the Compact machine is selected, with the same fallback to
|
||||
CGROM.DAT.
|
||||
|
||||
- name: CGROM30.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
description: "X68030 character generator ROM"
|
||||
source_ref: "xm6g.pdf p.17-18, xm6g.exe:0x1404fcc36 (read at 0x1404fcd42)"
|
||||
note: >-
|
||||
Preferred when X68030 or X68030 Compact is selected, with the same
|
||||
fallback to CGROM.DAT.
|
||||
|
||||
- name: CGROM.TMP
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 786432
|
||||
validation: [size]
|
||||
description: "Synthesised font ROM, fallback when no CG ROM is present"
|
||||
source_ref: "xm6g.pdf p.18, p.6, xm6g.exe:0x1404fd041, XM6 2.06 vm/memory.cpp:286-289"
|
||||
note: >-
|
||||
Read at the same size, only after CGROM.DAT fails. XM6 Utility builds it
|
||||
from the fonts installed on the machine that generated it, so no hash is
|
||||
declared. XM6 TypeG treats it as non-recommended and raises a suppressible
|
||||
startup warning whenever it is in use.
|
||||
|
||||
# -- SCSI ROMs, tried at 0x20000 then 0x2000, external also at 0x1fe0 --
|
||||
|
||||
- name: SCSIINROM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 8192
|
||||
size_options: [8192, 131072]
|
||||
validation: [size]
|
||||
description: "Internal SCSI interface ROM, SUPER and later"
|
||||
source_ref: "xm6g.pdf p.17, xm6g.exe:0x1404fd1ef (reads at 0x1404fd327, 0x1404fd3dd), XM6 2.06 vm/memory.cpp:305-310, 328-345"
|
||||
note: >-
|
||||
Required by SUPER, XVI and Compact, and by any machine whose SCSI
|
||||
interface option is set to internal, that option defaulting to none. The
|
||||
loader tries 0x20000 bytes first and falls back to 0x2000. A copy carrying
|
||||
"XM6 " at offset 0x1ff8 was synthesised by XM6 Utility and raises the
|
||||
startup warning.
|
||||
|
||||
- name: SCSIEXROM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
min_size: 8160
|
||||
size_options: [8160, 8192, 131072]
|
||||
validation: [size]
|
||||
description: "External SCSI interface ROM, CZ-6BS1 board"
|
||||
source_ref: "xm6g.pdf p.17, xm6g.exe:0x1404fd20a (retry at 0x1404fd419), XM6 2.06 vm/memory.cpp:316-318, 341-352"
|
||||
note: >-
|
||||
Drives the CZ-6BS1 board, the only SCSI variant the first model, ACE,
|
||||
EXPERT and PRO can take, and mutually exclusive with the internal
|
||||
interface everywhere else. After 0x20000 and 0x2000 the loader retries at
|
||||
0x1fe0 bytes into buffer offset 0x20, the WinX68k high-speed layout, so
|
||||
8160 is the real floor.
|
||||
|
||||
# -- Battery-backed images, read at startup, written on exit when changed --
|
||||
|
||||
- name: SRAM.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size_options: [16384, 65536]
|
||||
description: "SRAM image for EXPERT and the other base models"
|
||||
source_ref: "xm6g.pdf p.18, xm6g.exe:0x140592350 index 14, XM6 2.06 vm/sram.cpp:70-81, 112"
|
||||
note: >-
|
||||
Holds the boot device and memory switch settings for the first model, ACE,
|
||||
EXPERT, PRO and SUPER. A supplied image preloads those settings. The
|
||||
standard capacity is the 16 KB X68000 SRAM; the SRAM64K modification the
|
||||
emulator reproduces raises it to 64 KB. No size is enforced.
|
||||
|
||||
- name: SRAMXVI.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size_options: [16384, 65536]
|
||||
description: "SRAM image for XVI"
|
||||
source_ref: "xm6g.pdf p.18, xm6g.exe:0x140592350 index 15"
|
||||
note: >-
|
||||
Per-model SRAM introduced by XM6 TypeG, which keeps one image per machine
|
||||
instead of the single SRAM.DAT of XM6 v2.06.
|
||||
|
||||
- name: SRAMCMP.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size_options: [16384, 65536]
|
||||
description: "SRAM image for Compact"
|
||||
source_ref: "xm6g.pdf p.18, xm6g.exe:0x140592350 index 16"
|
||||
note: >-
|
||||
Read when the Compact machine is selected.
|
||||
|
||||
- name: SRAM030.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
size_options: [16384, 65536]
|
||||
description: "SRAM image for X68030, 040turbo and 060turbo"
|
||||
source_ref: "xm6g.pdf p.18, xm6g.exe:0x140592350 index 17"
|
||||
note: >-
|
||||
Shared by X68030, X68030 Compact and the 040turbo and 060turbo
|
||||
configurations.
|
||||
|
||||
- name: RTC.DAT
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "RTC alarm settings for timer start"
|
||||
source_ref: "xm6g.pdf p.18, xm6g.exe:0x140592350 index 18"
|
||||
note: >-
|
||||
Alarm registers of the battery-backed clock, used by the timer start
|
||||
feature and applying to every machine. XM6 TypeG creates it on exit when
|
||||
it is absent.
|
||||
|
||||
# -- Mercury Unit rhythm samples, read by the OPN (YMF288) section --
|
||||
|
||||
- name: ym2608_adpcm_rom.bin
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "YM2608 ADPCM-A rhythm ROM, ymfm engine"
|
||||
source_ref: "xm6g.exe:0x140574eb0 (name at 0x140574fec, read at 0x140575095)"
|
||||
note: >-
|
||||
Rhythm source for the Mercury Unit OPN when the FM engine is set to ymfm.
|
||||
The name is appended to a directory and the file is read whole; when it is
|
||||
absent the rhythm section stays silent and the emulator runs.
|
||||
|
||||
- name: 2608_BD.WAV
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "Mercury Unit rhythm sample, bass drum"
|
||||
source_ref: "xm6g.exe:0x1404ed610, name table 0x1405c0090, CreateFileW at 0x1404ed8bf"
|
||||
note: >-
|
||||
One of the six rhythm samples the fmgen and X68Sound engines read for the
|
||||
Mercury Unit OPN. The name is built as 2608_ plus the table entry plus
|
||||
.WAV. A missing file is handled through ERROR_FILE_NOT_FOUND and leaves
|
||||
that instrument silent.
|
||||
|
||||
- name: 2608_SD.WAV
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "Mercury Unit rhythm sample, snare drum"
|
||||
source_ref: "xm6g.exe:0x1404ed610, name table 0x1405c0090"
|
||||
|
||||
- name: 2608_TOP.WAV
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "Mercury Unit rhythm sample, top cymbal"
|
||||
source_ref: "xm6g.exe:0x1404ed610, name table 0x1405c0090"
|
||||
|
||||
- name: 2608_HH.WAV
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "Mercury Unit rhythm sample, hi-hat"
|
||||
source_ref: "xm6g.exe:0x1404ed610, name table 0x1405c0090"
|
||||
|
||||
- name: 2608_TOM.WAV
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "Mercury Unit rhythm sample, tom-tom"
|
||||
source_ref: "xm6g.exe:0x1404ed610, name table 0x1405c0090"
|
||||
|
||||
- name: 2608_RIM.WAV
|
||||
system: sharp-x68000
|
||||
aliases:
|
||||
- 2608_RYM.WAV
|
||||
required: false
|
||||
description: "Mercury Unit rhythm sample, rim shot"
|
||||
source_ref: "xm6g.exe:0x1404ed610, name table 0x1405c0090, 0x1404ed808-0x1404ed841"
|
||||
note: >-
|
||||
Last of the six. This entry alone has a second accepted name,
|
||||
2608_RYM.WAV, the spelling carried by widely circulated sample sets.
|
||||
|
||||
# -- Libraries looked up by name at runtime, absent from the import directory --
|
||||
|
||||
- name: X68Sound.dll
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "FM synthesis engine by m_puusan"
|
||||
source_ref: "xm6g.pdf p.29, p.31, xm6g.exe:LoadLibraryW at 0x140488dfb"
|
||||
note: >-
|
||||
One of the three FM engines the sound options offer, alongside the
|
||||
built-in fmgen and ymfm. Not shipped in the archive; without it that
|
||||
engine cannot be selected.
|
||||
|
||||
- name: c86ctl.dll
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "Control library for external OPM hardware"
|
||||
source_ref: "xm6g.exe:0x1404b2da6, version query at 0x1404b2daa"
|
||||
note: >-
|
||||
Loaded by name to drive a real YM2151 through a C86BOX class device
|
||||
instead of software synthesis. The executable reads its file version
|
||||
before use.
|
||||
|
||||
- name: pcidebug.dll
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
description: "PCI access library used by the debug interface"
|
||||
source_ref: "xm6g.exe:LoadLibraryW at 0x1404fa344, FreeLibrary at 0x1404fa2f5"
|
||||
note: >-
|
||||
Loaded on demand and freed again. Absent, the feature that needs it is
|
||||
unavailable and the emulator continues.
|
||||
|
||||
- name: SOUND Canvas VA.dll
|
||||
system: sharp-x68000
|
||||
required: false
|
||||
path: "%ProgramFiles%/Roland/Sound Canvas VA/SOUND Canvas VA.dll"
|
||||
description: "Roland Sound Canvas VA plugin used as MIDI output"
|
||||
source_ref: "xm6g.exe:0x14048418a, INI key VstSCVA"
|
||||
note: >-
|
||||
Hosted as the MIDI output device when the VSTi option is selected. The
|
||||
path is fixed to the Roland installation directory and the setting is
|
||||
stored as VstSCVA.
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user