mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
162 lines
8.4 KiB
YAML
162 lines
8.4 KiB
YAML
emulator: Supermodel (Sinden fork)
|
|
type: standalone
|
|
core_classification: enhanced_fork
|
|
source: "https://github.com/DirtBagXon/model3emu-code-sinden"
|
|
upstream: "https://github.com/trzy/Supermodel"
|
|
author: "DirtBagXon"
|
|
profiled_date: "2026-10-23"
|
|
source_commit: "03318d26826e725338576a74945b3ea3fc7ebe5c"
|
|
prose_written_at: "03318d26826e725338576a74945b3ea3fc7ebe5c"
|
|
upstream_commit: "efbdc866fcddc9bff23da00b1722d17e52115567"
|
|
upstream_frozen: "The fork is rebased on trzy's tree at efbdc86, the revision its release names. Later trzy commits are not in the fork."
|
|
core_version: "0.4"
|
|
version_basis:
|
|
kind: file
|
|
path: "Src/Version.cpp"
|
|
pattern: 'const std::string series_version = "([^"]+)"'
|
|
display_name: "Sega - Model 3 (Supermodel, Sinden fork)"
|
|
verification: existence
|
|
cores:
|
|
- "supermodel3"
|
|
- "supermodel-sa"
|
|
systems:
|
|
- "sega-model1"
|
|
- "sega-model2"
|
|
- "sega-model3"
|
|
- "real3d-pro1000"
|
|
|
|
notes: |
|
|
DirtBagXon's Supermodel fork with Sinden light gun support, rebased on
|
|
trzy's tree at efbdc86, the revision its release 0.4-efbdc86-dbx names.
|
|
The version string is the series 0.4 followed by the git revision a build
|
|
passes, or by the build date and "-mm DirtBagXon (Sinden)". RetroPie
|
|
builds the main branch on x86 and the arm branch everywhere else, the arm
|
|
branch at commit 454ed3f when the system SDL2 is 2.0.22 or older. The arm
|
|
branch is a separate, older line (revision
|
|
6ae0cf2f237586c4a3cc791514ec1b0f3cd4c56c, "0.3a-8c6af68-arm-mm") and is
|
|
described in its own paragraph below. Entries carry the main branch.
|
|
ref: Src/Version.cpp:39-55
|
|
|
|
RetroPie copies Config/Games.xml, and on x86 the Assets directory, into
|
|
$md_conf_root/arcade/supermodel3 and starts the emulator from there. On
|
|
Linux the main branch resolves Config/, Assets/, NVRAM/ and Saves/
|
|
relative to the working directory when Config/ exists there, otherwise
|
|
under ~/.supermodel/ when present, otherwise under the XDG config and data
|
|
homes.
|
|
ref: Src/OSD/Unix/FileSystemPath.cpp:99-157, Src/OSD/SDL/Main.cpp:124-126
|
|
|
|
ROM sets are MAME format archives described by Games.xml. The game is
|
|
chosen by the archive's own file name, which must match a game name, and
|
|
the parent archive <parent>.zip is opened from the same directory. ROMs
|
|
inside are matched by CRC32. The main branch also runs Sega Model 1
|
|
and Model 2 boards: Games.xml holds 10 Model 1, 90 Model 2 and 63 Model 3
|
|
sets. Every board ROM of these sets, the Model 1 TGP program and
|
|
coprocessor tables included, is a region of the game's own set,
|
|
and a parent is another game, so a game reads nothing outside its
|
|
archives.
|
|
ref: Src/GameLoader.cpp:1145-1202, Src/GameLoader.cpp:277,
|
|
Src/OSD/SDL/Main.cpp:2703-2710
|
|
|
|
The main branch also emulates the Real3D Pro-1000 image generator, the
|
|
hardware the Model 3 graphics derive from. Games.xml declares it as the
|
|
set pro1000, whose two regions are the flash images of the Pro-1000 SDK
|
|
update: p1_p4.bin (boot stub and loop code) and p2.bin (INIT ROM). The
|
|
machine refuses to start without either region. A scsi_rom region is
|
|
optional, a synthetic image is built when it is absent.
|
|
ref: Config/Games.xml:10030-10054, Src/Pro1000/Pro1000.cpp:1999-2031,
|
|
Src/Pro1000/Pro1000.cpp:165-181
|
|
|
|
Supermodel.ini is optional. It is written from compiled-in defaults when
|
|
absent. NVRAM/<game>.nv is loaded when present and written on exit.
|
|
External GLSL shaders are read only when VertexShader or FragmentShader
|
|
names a file, both default to empty.
|
|
ref: Src/OSD/SDL/Main.cpp:1476-1496, Src/OSD/SDL/Main.cpp:2433,
|
|
Src/OSD/SDL/Main.cpp:816-847, Src/OSD/SDL/Main.cpp:1606-1607
|
|
|
|
The arm branch has no Pro-1000 emulation and no path resolution: the
|
|
paths Config/Supermodel.ini, Config/Games.xml, NVRAM/<game>.nv and
|
|
Saves/<game>.st<slot> are fixed and relative to the working directory.
|
|
Crosshairs are drawn as primitives, no Assets bitmap and no Music.xml are
|
|
read, which is why RetroPie installs Assets on x86 only. Its Games.xml
|
|
(63 sets, size 158300, sha1 ccbc64e2f5b9aefd89ff9acd7227eff230aed8ed)
|
|
differs from the main branch copy. ROCKNIX builds its supermodel-sa
|
|
package from the arm branch at b13fdd5, eight commits before that revision,
|
|
which prints version 0.3a-5c83d8a-arm-mm, with the same Games.xml and the
|
|
same fixed paths
|
|
(ROCKNIX projects/ROCKNIX/packages/emulators/standalone/supermodel-sa/package.mk:5).
|
|
|
|
files:
|
|
- name: "Games.xml"
|
|
path: "Config/Games.xml"
|
|
required: true
|
|
bundled: true
|
|
size: 498145
|
|
sha1: "c2bbcd686862fc5f14e80a5dee4eec504affa77f"
|
|
md5: "4b6145439a95d1a3cdee6f9367773562"
|
|
description: "ROM set definitions"
|
|
note: "Parsed by the GameLoader constructor. Without it no game is defined, the archive name matches nothing and main returns 1. The path is the GameXMLFile key, so -game-xml-file moves it. The hash is that of Config/Games.xml at the pinned revision, 164 sets, which RetroPie copies on every install. Shipped in the 0.4-efbdc86 Linux, macOS and Windows release archives."
|
|
source_ref: "source Src/OSD/SDL/Main.cpp:125, source Src/OSD/SDL/Main.cpp:1588, source Src/OSD/SDL/Main.cpp:2532-2537, source Src/GameLoader.cpp:658-667, source Src/GameLoader.cpp:1167-1172, source Src/GameLoader.cpp:1212-1214"
|
|
|
|
- name: "p1crosshair.bmp"
|
|
path: "Assets/p1crosshair.bmp"
|
|
required: true
|
|
bundled: true
|
|
size: 295992
|
|
sha1: "581cea232c296c7bd76f3101c3ae1bffdf5abf08"
|
|
md5: "9012018f50f707c1707009346eb5d18b"
|
|
description: "Player 1 light gun crosshair texture"
|
|
note: "Both bitmaps are loaded whatever CrosshairStyle holds, and a failed load aborts startup before the machine is created."
|
|
source_ref: "source Src/OSD/SDL/Crosshair.cpp:34-51, source Src/OSD/SDL/Main.cpp:2588-2595"
|
|
|
|
- name: "p2crosshair.bmp"
|
|
path: "Assets/p2crosshair.bmp"
|
|
required: true
|
|
bundled: true
|
|
size: 295992
|
|
sha1: "13c5e692c7acf2ec8243ac421d58fdf69c6c2370"
|
|
md5: "866dbf59a0e2d849de2365e1c953cc97"
|
|
description: "Player 2 light gun crosshair texture"
|
|
note: "Read in the same call as the player 1 bitmap and equally fatal when it fails to load. Both bitmaps are shipped in the 0.4-efbdc86 release archives."
|
|
source_ref: "source Src/OSD/SDL/Crosshair.cpp:35, source Src/OSD/SDL/Crosshair.cpp:48-51"
|
|
|
|
- name: "Music.xml"
|
|
path: "Config/Music.xml"
|
|
required: false
|
|
bundled: true
|
|
size: 9229
|
|
sha1: "5c86508cb337b604eecb9b881b4fc111d826f604"
|
|
md5: "6eeb3e30200e14aa28f958b8d34c2ded"
|
|
description: "Custom MPEG music track map"
|
|
note: "Consulted only for a game with a DSB1 or DSB2 board, and skipped when absent. RetroPie does not copy it. Shipped in the 0.4-efbdc86 release archives, the Windows zip with CRLF line endings (sha1 311d762fab940658466cf223bc441b0f5fda372b)."
|
|
source_ref: "source Src/OSD/SDL/Main.cpp:126, source Src/OSD/SDL/Main.cpp:975, source Src/Sound/MPEG/MpegAudio.cpp:89-103"
|
|
|
|
- name: "pro1000.zip"
|
|
required: true
|
|
category: bios_zip
|
|
system: real3d-pro1000
|
|
description: "Real3D Pro-1000 firmware set (SDK flash update, loop code 5.4, INIT ROM 54)"
|
|
note: "Loaded as the content of the pro1000 machine, named after the set. Required to run the Pro-1000 only, Model 3 games never read it."
|
|
source_ref: "source Config/Games.xml:10030-10054, source Src/Pro1000/Pro1000.cpp:1999-2010, source Src/GameLoader.cpp:1167-1172"
|
|
contents:
|
|
- name: "p1_p4.bin"
|
|
description: "Flash parts 1 and 4, boot stub and loop code, loaded at 0xFFF00000"
|
|
crc32: "6026a0db"
|
|
- name: "p2.bin"
|
|
description: "Flash part 2, INIT ROM, loaded at 0xFFF80000"
|
|
crc32: "945bbcf5"
|
|
|
|
- name: "3dlogo.cmem"
|
|
path: "Assets/3dlogo.cmem"
|
|
required: false
|
|
system: real3d-pro1000
|
|
description: "Pro-1000 SDK logo model, culling data"
|
|
note: "Read with 3dlogo.pmem into the synthetic SCSI ROM when the set has no scsi_rom region. Both files or neither, one alone is rejected with an error. The .pmem size must equal the polygon word count in the .cmem header, so both come from one model. The machine boots without them."
|
|
source_ref: "source Src/Pro1000/SyntheticSCSIROM.cpp:102-125, source Src/Pro1000/SyntheticSCSIROM.cpp:159-163, source Src/Pro1000/SyntheticSCSIROM.cpp:232"
|
|
|
|
- name: "3dlogo.pmem"
|
|
path: "Assets/3dlogo.pmem"
|
|
required: false
|
|
system: real3d-pro1000
|
|
description: "Pro-1000 SDK logo model, polygon data"
|
|
source_ref: "source Src/Pro1000/SyntheticSCSIROM.cpp:104-106, source Src/Pro1000/SyntheticSCSIROM.cpp:119-125, source Src/Pro1000/SyntheticSCSIROM.cpp:159-163"
|