Files
libretro/emulators/ti99sim.yml
T
Abdessamad Derraz b75f4979a3 fix: declare the ctg that ti99sim actually builds
Five cartridge hashes matched no file the collection holds. A .ctg is
not a dump: convert-ctg builds it from the .dat descriptor in the
repository and the pre-0.174 MAME images scripts/setup fetches, so the
question was not which dump is right but what the pinned source
produces.

Built at the pinned commit and replayed through the canonical recipe,
three of them reproduce the held file bit for bit: cf7+.ctg,
ti-pcard.ctg and Gram Kracker.ctg. The declared values reproduce
nothing, so the declarations were the error.

TI-994A.ctg and ti-disk.ctg are what Recalbox pins by md5, and v0.16.0
builds something else. Two legitimate versions: the primary stays
Recalbox's, the v0.16.0 output joins .variants/ under its hash prefix,
and the declaration points at what it describes. All five now resolve
sha1_exact.
2026-08-23 14:13:36 +02:00

68 lines
3.1 KiB
YAML

emulator: ti99sim
display_name: "TI-99/Sim"
type: standalone
source: https://github.com/christianhaitian/ti99sim
upstream: https://www.mrousseau.org/programs/ti99sim/
profiled_date: "2026-03-29"
source_commit: "e3608541943b5258afe45b74e3f78e723df1fcbd"
core_version: "0.16.0"
cores:
- ti99sim
systems:
- ti99
notes: |
Marc Rousseau's TI-99/4A simulator (since 1993). Standalone only, no libretro port.
Uses proprietary .ctg cartridge format for ROM packaging (CPU ROM + GROMs + RAM config).
Raw ROM dumps must be converted to .ctg via the convert-ctg utility.
File search order: CWD, CWD/console/ (v0.16.0) or CWD/roms/ (<=0.0.11),
~/.ti99sim/console/, /opt/ti99sim/console/.
v0.16.0 adds SHA1-based auto-discovery for device ROMs in the console/ directory.
Recalbox packages ti99sim as a standalone emulator for the ti994a system.
files:
- name: TI-994A.ctg
required: true
description: "Console ROM cartridge containing CPU ROMs, system GROMs, and RAM configuration"
source_ref: "src/core/ti994a.cpp:122-131 (v0.16.0), src/sdl/main.cpp:407-411 (v0.0.11)"
sha1: "1d63879573a201cab6c883327240ddc148732ccd"
note: "SHA1 is of .ctg format. v0.16.0 also recognizes console v2.2 (sha1 16e275faae427465ba4dd4c2bf8569f6546d32dd)."
- name: spchrom.bin
required: false
size: 32768
description: "TMS5220/TMS6100 Speech Synthesizer vocabulary ROM"
source_ref: "src/core/tms5220.cpp:190-213 (v0.16.0), src/core/tms5220.cpp:194-213 (v0.0.11)"
validation: [size]
hle_fallback: true
note: "Raw binary, not .ctg format. Must be exactly 32768 bytes. First byte must be 0xAA. Falls back to empty speech ROM if missing or invalid."
- name: ti-disk.ctg
required: false
description: "TI Disk Controller DSR ROM (CRU >1100)"
source_ref: "src/core/device-support.cpp:52 (v0.16.0), src/sdl/main.cpp:452-476 (v0.0.11)"
sha1: "a092153d87615d64e025c118b16a0c6ec70e6fe7"
note: "SHA1 is of .ctg format. Disk emulation disabled without this file."
- name: "Gram Kracker.ctg"
required: false
description: "Miller Graphics Gram Kracker ROM manipulation peripheral"
source_ref: "src/core/ti994a-gk.cpp:56 (v0.16.0), src/sdl/ti994a-sdl.cpp:78 (v0.0.11)"
sha1: "56dd520570cdcdd60dda2eedc8af1e02a781dcc5"
note: "SHA1 is of the .ctg convert-ctg builds at the pinned commit. Gram Kracker features disabled without this file."
- name: ti-pcard.ctg
required: false
description: "TI P-Code Card (UCSD Pascal) DSR ROM"
source_ref: "src/core/device-support.cpp:53 (v0.16.0)"
sha1: "c7bf5fcfea0502011dca76d12efcc242e23421b9"
note: "SHA1 is of the .ctg convert-ctg builds at the pinned commit from the .dat in roms/ and the pre-0.174 MAME images scripts/setup fetches. v0.16.0+ only."
- name: cf7+.ctg
required: false
description: "CF7+/nanoPEB CompactFlash interface DSR ROM"
source_ref: "src/core/device-support.cpp:51 (v0.16.0)"
sha1: "698c638e1773244a6bf8a353c87d210047cce402"
note: "SHA1 is of the .ctg convert-ctg builds at the pinned commit from the .dat in roms/ and the pre-0.174 MAME images scripts/setup fetches. v0.16.0+ only."