Files
libretro/emulators/minivmac37.yml
T
Abdessamad Derraz 3199bc2a55 fix: state standalone versions from their code
Each standalone profile records where its version is read: the source
at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden
v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package),
or, where no reading can be made, kind unverified with the reason: a
host the tools cannot read, a forge gone or not answering, no build
recorded as read, a pin on another branch. Those keep their value,
unconfirmed.
2026-10-27 19:21:40 +01:00

72 lines
3.3 KiB
YAML

emulator: "Mini vMac 37"
type: standalone
core_classification: community_fork
source: "https://github.com/minivmac/minivmac"
profiled_date: "2026-10-20"
source_commit: "6860a9a7f372c461b25dc42974b191a453ebcfb2"
core_version: "37.03"
version_basis:
kind: file
path: "setup/SPBASDEF.i"
pattern: '#define MajorVersion (\d+)\s*\n#define MinorVersion (\d+)'
format: "{1}.{2}"
display_name: "Apple - Macintosh Plus (Mini vMac 37)"
mode: standalone
cores: ["minivmac"]
built_by: [retropie]
systems:
- apple-macintosh
notes: |
Mini vMac 37.03 (setup/SPBASDEF.i:21-24), maintained from Paul C. Pratt's
code (setup/SPBASDEF.i:30). The emulated model, the ROM name, the ROM size
and the accepted checksums are fixed when the setup tool writes the build configuration, so one binary runs
one model. The default model is the Macintosh Plus (setup/SPBLDOPT.i:101,108).
The entries below describe a build with -m Plus, which is also the default.
The setup tool names the ROM after the model (setup/SPCNFGAP.i:28-63):
Twig43.ROM (Twig43), Twiggy.ROM (Twiggy), Mac128K.ROM (128K),
MacPlusKanji.ROM (Kanji), MacSE.ROM (SE), SEFDHD.ROM (SEFDHD), Classic.ROM
(Classic), PB100.ROM (PB100), MacII.ROM (II), MacIIx.ROM (IIx) and vMac.ROM
for 512Ke and Plus. ROM sizes per model are set at setup/SPBLDOPT.i:3229-3257
and the per-model checksums at setup/SPCNFGAP.i:81-126. A build for another
model reads only the name of that model.
The SDL backend (-api sdl, sd2 or sd3, src/OSGLUSDL.c) looks for the ROM in
this order (src/OSGLUSDL.c:606-620): the path given by --rom or -r
(src/OSGLUSDL.c:4962-4968), the directory given by -d or else the directory
of the executable from SDL_GetBasePath (src/OSGLUSDL.c:576-604,5185), the
mnvm_rom folder under SDL_GetPrefPath("gryphel", "minivmac")
(src/OSGLUSDL.c:546-573,5187), then the working directory. The executable
directory and the preference folder are searched only on SDL 2 and later
(src/OSGLUSDL.c:67-72). The default Linux backend is X11
(setup/GNBLDOPT.i:1609-1621), which searches the command line path, the
executable directory, ~/.gryphel/mnvm_rom/ and the working directory
(src/OSGLUXWN.c:957-1022).
When no ROM loads, the emulator keeps running and waits for a ROM image
dropped on its window (src/OSGLUSDL.c:470-483,620).
At startup the SDL backend mounts disk1.dsk to disk9.dsk from the executable
directory, stopping at the first missing one (src/OSGLUSDL.c:486-540). These
are user disk images.
files:
- name: "vMac.ROM"
system: apple-macintosh
path: "vMac.ROM"
required: true
min_size: 131072
validation: [size]
source_ref: "setup/SPCNFGAP.i:60-63,115-124, setup/SPBLDOPT.i:3240-3243, src/OSGLUSDL.c:435-468,606-620, src/CONTROLM.h:1314-1326,1344-1388"
note: >
Macintosh Plus ROM. LoadMacRomFrom reads kROM_Size bytes, 131072 for the
Plus (setup/SPCNFGGL.i:73-77), and rejects a shorter file. ROM_IsValid
then compares the first long word of the image with the three Plus
checksums 0x4D1EEEE1 (v1), 0x4D1EEAE1 (v2) and 0x4D1F8172 (v3), and
recomputes the sum of the 16-bit words from offset 4 over 131072 bytes,
which must equal the stored value. A ROM that fails either test is
refused. The -chr 0 setup option compiles both tests out
(setup/SPBLDOPT.i:3288-3311, setup/SPCNFGAP.i:128-130,
src/CONTROLM.h:1309-1310).