mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 02:13:28 -05:00
Each platform's own packages were read at the revision our data pins, for every emulator and core it ships: Batocera, Recalbox, RetroPie, ROCKNIX, Lakka, RetroDECK, RetroBat and EmuDeck. Files a package installs where the emulator reads them are recorded with installed_on, and files a release bundles but a package leaves out with not_bundled_on, so each platform's pack brings what its users lack and nothing they already have. The standalone profiles never checked before were held against their releases the same way. Batocera's imame4all is the mame2000 core. The primary neogeo.zip was a 7.7 KB placeholder no platform pins and no pack served: removed, the real dumps stay in .variants.
368 lines
16 KiB
YAML
368 lines
16 KiB
YAML
emulator: Oricutron
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://github.com/pete-gordon/oricutron"
|
|
upstream: "https://www.petergordon.org.uk/oricutron/"
|
|
profiled_date: "2026-08-08"
|
|
source_commit: "002279fce9fa756d1d63cdc40ae97939eb7de7ed"
|
|
core_version: "1.2.0"
|
|
display_name: "Tangerine - Oric (Oricutron)"
|
|
cores:
|
|
- oricutron
|
|
systems:
|
|
- oric
|
|
- oricatmos
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Oric-1, Oric-1 16K, Oric Atmos, Telestrat and Pravetz 8D emulator by Peter
|
|
Gordon. Recalbox packages it for its oricatmos system, ES-DE offers it for
|
|
oric alongside MAME and starts it with the working directory set to the
|
|
emulator directory.
|
|
|
|
ROM names are configured without the extension: load_rom appends ".rom"
|
|
(machine.c:1089-1093). The defaults are set in preinit_gui (gui.c:2283-2297)
|
|
behind ROMPREFIX, which is "roms/" everywhere except AmigaOS
|
|
("PROGDIR:roms/") and the emscripten build ("assets/roms/") (system.h:38-68).
|
|
A path read from oricutron.cfg goes through read_config_path
|
|
(main.c:341-347), which prepends the program directory resolved from argv[0]
|
|
(main.c:196-236), so a relative path resolves against the directory holding
|
|
the binary rather than the working directory.
|
|
|
|
The machine ROM is loaded by init_machine for the selected machine type and
|
|
a failure returns SDL_FALSE, after which the emulator exits
|
|
(main.c:1442-1446). The four disk controller ROMs are loaded once at startup
|
|
by load_diskroms (main.c:1407, machine.c:1249-1255) whatever the machine and
|
|
the drive setting. A failure only clears the matching flag and startup
|
|
continues. Of those flags only pravetzrom_valid is read afterwards
|
|
(machine.c:1055): the Microdisc, BD-500 and Jasmin buffers are mapped into
|
|
the CPU address space whether or not the file was read, so a missing file
|
|
leaves the selected controller running on zeroed memory.
|
|
|
|
Size is the only property the code checks. A machine ROM is rejected above
|
|
16384 bytes and is loaded right-aligned in its bank, so a shorter file is
|
|
accepted (machine.c:1101-1118). A disk controller ROM is read as one
|
|
fixed-length block, which fails when the file is shorter than that length
|
|
and ignores anything past it (machine.c:1120-1126). No hash is computed
|
|
anywhere in the tree.
|
|
|
|
Telestrat banks 0 to 4 hold RAM unless the config names a file for them
|
|
(machine.c:2029-2038). The Twilighte board is off by default and is switched
|
|
on with twilighte_board in oricutron.cfg (main.c:660). Its bank config is
|
|
opened as a bare relative path (oric_twilighte_board_plugin.c:132) and the
|
|
bank filenames in it are read with read_config_string rather than
|
|
read_config_path (oric_twilighte_board_plugin.c:174,182), so both resolve
|
|
against the working directory and not the program directory.
|
|
|
|
files:
|
|
- name: basic11b.rom
|
|
description: "Oric Atmos BASIC 1.1b ROM"
|
|
required: true
|
|
max_size: 16384
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "9451a1a09d8f75944dbd6f91193fc360f1de80ac"
|
|
md5: "a330779c42ad7d0c4ac6ef9e92788ec6"
|
|
source_ref: "gui.c:2283 (default roms/basic11b), main.c:553 (atmosrom), machine.c:2006-2007 (MACH_ATMOS)"
|
|
note: >
|
|
Atmos is the machine oricutron.cfg selects, so this is the ROM a stock
|
|
configuration needs. Also named by twilbankrom06 in the Twilighte board
|
|
config (plugins/twilighte_board/twilighte.cfg:3).
|
|
Shipped in roms/ of the 1.2 Windows and macOS archives and of
|
|
RetroBat's oricutron.7z.
|
|
|
|
- name: basic10.rom
|
|
description: "Oric-1 BASIC 1.0 ROM"
|
|
required: true
|
|
max_size: 16384
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "333116e6884d85aaa4dfc7578a91cceeea66d016"
|
|
md5: "ebe418ec8a6c85d5ac32956c9a96c179"
|
|
source_ref: "gui.c:2284 (default roms/basic10), main.c:554 (oric1rom), machine.c:1932-1933 (MACH_ORIC1_16K), machine.c:1969-1970 (MACH_ORIC1)"
|
|
note: "Serves both the 48K Oric-1 and the 16K Oric-1, selected with -m oric1 or -m o16k. Shipped in roms/ of the 1.2 Windows and macOS archives and of RetroBat's oricutron.7z."
|
|
|
|
- name: pravetzt.rom
|
|
description: "Pravetz 8D BASIC ROM"
|
|
required: true
|
|
max_size: 16384
|
|
validation: [size]
|
|
installed_on: [retropie, retrobat]
|
|
source_ref: "gui.c:2288 (default roms/pravetzt), main.c:558 (pravetzrom), machine.c:2082-2083 (MACH_PRAVETZ)"
|
|
note: "Selected with -m pravetz. roms/pravetzt-1.0.pch and .sym ship for an earlier revision of this ROM. The 1.2 Windows archive ships it and the 1.2 macOS archive does not."
|
|
|
|
- name: teleass.rom
|
|
description: "Telestrat TELEASS ROM, bank 5"
|
|
required: true
|
|
max_size: 16384
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "9e9af51dae3199cccf49ab3f0d47e2b9be4ba97d"
|
|
md5: "2324c9cc227c1327a72a667c97ed2990"
|
|
source_ref: "gui.c:2295 (default roms/teleass), main.c:588-589 (telebank5), machine.c:2029-2033 (MACH_TELESTRAT)"
|
|
note: "Shipped in roms/ of the 1.2 Windows and macOS archives and of RetroBat's oricutron.7z."
|
|
|
|
- name: hyperbas.rom
|
|
description: "Telestrat HYPER BASIC ROM, bank 6"
|
|
required: true
|
|
max_size: 16384
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "f5f70a0eb59f8cd6c261e179ae78ef906f68ed63"
|
|
md5: "364bf095e0dc4222d75354d50b8cddfc"
|
|
source_ref: "gui.c:2296 (default roms/hyperbas), main.c:588-589 (telebank6), machine.c:2029-2033 (MACH_TELESTRAT)"
|
|
note: "Shipped in roms/ of the 1.2 Windows and macOS archives and of RetroBat's oricutron.7z."
|
|
|
|
- name: telmon24.rom
|
|
description: "Telestrat TELEMON 2.4 ROM, bank 7"
|
|
required: true
|
|
max_size: 16384
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "86fc8dc0932f983efa199e31ae05a4424772f959"
|
|
md5: "9a432244d9ee4a49e8ddcde64af94e05"
|
|
source_ref: "gui.c:2297 (default roms/telmon24), main.c:588-589 (telebank7), machine.c:2029-2033 (MACH_TELESTRAT)"
|
|
note: "Bank 7 is the bank mapped at reset (machine.c:2041-2043). Shipped in roms/ of the 1.2 Windows and macOS archives and of RetroBat's oricutron.7z."
|
|
|
|
- name: microdis.rom
|
|
description: "Microdisc disk controller ROM"
|
|
required: false
|
|
min_size: 8192
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "0d2ef6e67322f48f4b7e08d8bbe68827e2074561"
|
|
md5: "df864344d2a2091c3f952bd1c5ce1707"
|
|
source_ref: "gui.c:2285 (default roms/microdis), main.c:555 (mdiscrom), machine.c:1251, machine.c:904-911 (mapped at $E000)"
|
|
note: >
|
|
Conditional: needed for the Microdisc controller, which is the drive type
|
|
a disk image falls back to when none is given (main.c:1409-1410,
|
|
1488-1489). Loaded whatever the machine and not fatal, and
|
|
setup_for_microdisc raises romdis, so an absent file leaves the $E000
|
|
overlay reading zeroes.
|
|
Shipped in roms/ of the 1.2 Windows and macOS archives, there as
|
|
MICRODIS.ROM, and of RetroBat's oricutron.7z.
|
|
|
|
- name: bd500.rom
|
|
description: "ByteDrive BD-500 disk controller ROM"
|
|
required: false
|
|
min_size: 8192
|
|
validation: [size]
|
|
installed_on: [retrobat]
|
|
source_ref: "gui.c:2286 (default roms/bd500), main.c:556 (bd500rom), machine.c:1252, machine.c:937-944 (mapped at $E000)"
|
|
note: >
|
|
Conditional: needed for the BD-500 controller, selected with -k bd500 or
|
|
by autodetecting a BD-500 image (main.c:1478-1481). Same non-fatal load
|
|
and same zeroed overlay as the Microdisc ROM. The rom16 and dos70 config
|
|
keys change how ROMDIS disables the chips (oricutron.cfg:98-106).
|
|
|
|
- name: jasmin.rom
|
|
description: "Jasmin disk controller ROM"
|
|
required: false
|
|
min_size: 2048
|
|
validation: [size]
|
|
bundled: true
|
|
not_bundled_on: [recalbox]
|
|
sha1: "70e59b8abd67092f050462abc6cb5271e4c15f01"
|
|
md5: "5136f764a7dbd1352519351fbb53a9f3"
|
|
source_ref: "gui.c:2287 (default roms/jasmin), main.c:557 (jasminrom), machine.c:1253, machine.c:836-844 (mapped at $F800)"
|
|
note: >
|
|
Conditional: needed for the Jasmin controller, selected with -k jasmin or
|
|
by autodetecting a Jasmin image (main.c:1468-1471). setup_for_jasmin
|
|
leaves romdis clear, so the machine still boots from its BASIC ROM.
|
|
Shipped in roms/ of the 1.2 Windows and macOS archives and of
|
|
RetroBat's oricutron.7z.
|
|
|
|
- name: 8dos2.rom
|
|
description: "Pravetz 8D floppy controller boot PROM"
|
|
required: false
|
|
min_size: 512
|
|
validation: [size]
|
|
installed_on: [retrobat]
|
|
source_ref: "gui.c:2289 (default roms/8dos2), main.c:559 (pravetz8drom), machine.c:1254, machine.c:1053-1058 (mapped at $320-$3FF)"
|
|
note: >
|
|
Conditional: needed for the Pravetz 8D drive. The only disk ROM whose
|
|
load flag is read back, so the Pravetz machine boots without it and only
|
|
the drive is lost. oricutron.cfg:44-45 gives roms/8dos as the other
|
|
value for this key, and roms/8dos.sym ships for it.
|
|
|
|
- name: kernel.rom
|
|
description: "Orix kernel, Twilighte board ROM bank 7"
|
|
required: false
|
|
max_size: 16384
|
|
validation: [size]
|
|
source_ref: "plugins/twilighte_board/twilighte.cfg:2 (twilbankrom07), plugins/twilighte_board/oric_twilighte_board_plugin.c:167-216 (parse and load), plugins/twilighte_board/oric_twilighte_board_plugin.c:63-115 (load_rom_twilighte)"
|
|
note: >
|
|
Loaded only when twilighte_board is on (main.c:660). A configured bank
|
|
file that cannot be read makes twilighte_oric_init return NULL.
|
|
ReadMe.txt:506-519 records the copy in the tree as Orix v2022.1 and
|
|
points at repo.orix.oric.org for later builds.
|
|
|
|
- name: shell.rom
|
|
description: "Orix shell, Twilighte board ROM bank 5"
|
|
required: false
|
|
max_size: 16384
|
|
validation: [size]
|
|
source_ref: "plugins/twilighte_board/twilighte.cfg:4 (twilbankrom05), plugins/twilighte_board/oric_twilighte_board_plugin.c:167-216 (parse and load), plugins/twilighte_board/oric_twilighte_board_plugin.c:63-115 (load_rom_twilighte)"
|
|
note: >
|
|
Loaded only when twilighte_board is on (main.c:660). ReadMe.txt:506
|
|
names kernel.rom in bank 7 and shell.rom in bank 5 as the minimum
|
|
configuration for the board to start.
|
|
|
|
analysis:
|
|
gui_images:
|
|
source_ref: "gui.c:100-117 (gimgs table), gui.c:425-492 (gimg_load), gui.c:2464-2466 (init_gui)"
|
|
lookup: "program directory + IMAGEPREFIX, which is images/ everywhere except AmigaOS and the emscripten build (system.h:38-68)"
|
|
validation: "uncompressed 24-bit BMP, one plane, at the exact width and height declared in the table"
|
|
fatal: true
|
|
note: >
|
|
init_gui returns SDL_FALSE on the first image it cannot read and the
|
|
emulator exits (main.c:1416-1420). The set ships in the source tree and
|
|
in the binary releases, and packagers install it beside the binary:
|
|
the RetroDECK recipe copies the whole images directory
|
|
(RetroDECK/components archive_later/oricutron/component_recipe.json) and
|
|
the ES-DE guide has Linux users take images and roms out of the Windows
|
|
archive (es-de USERGUIDE.md:3377-3391).
|
|
files:
|
|
- statusbar.bmp
|
|
- disk_ejected.bmp
|
|
- disk_idle.bmp
|
|
- disk_active.bmp
|
|
- disk_modified.bmp
|
|
- disk_modactive.bmp
|
|
- tape_ejected.bmp
|
|
- tape_pause.bmp
|
|
- tape_play.bmp
|
|
- tape_stop.bmp
|
|
- tape_record.bmp
|
|
- avirec.bmp
|
|
- gfx_oric1kbd.bmp
|
|
- gfx_atmoskbd.bmp
|
|
- gfx_pravetzkbd.bmp
|
|
conditional_entries:
|
|
note: >
|
|
gfx_oric1kbd.bmp sits behind WWW_NO_ORIC1 and gfx_pravetzkbd.bmp
|
|
behind WWW_NO_PRAVETZ (gui.c:112-118, gui.h:114-120), both of which
|
|
only cut down the emscripten build. A native build carries all
|
|
fifteen.
|
|
non_fatal:
|
|
- filename: winicon.bmp
|
|
source_ref: "gui.c:2306-2307"
|
|
note: "Read with SDL_LoadBMP and passed to SDL_COMPAT_WM_SetIcon, which takes a null surface."
|
|
unused:
|
|
- filename: status_bar.bmp
|
|
reason: "the gimgs table names statusbar.bmp and no code path reads this second file"
|
|
|
|
rom_sidecars:
|
|
note: >
|
|
Both sidecars are keyed on the ROM basename from the config, so renaming
|
|
or relocating a ROM moves them with it.
|
|
|
|
symbols:
|
|
pattern: "<rom basename>.sym"
|
|
source_ref: "machine.c:1129-1133 (load_rom), monitor.c:2676-2691 (mon_new_symbols)"
|
|
note: >
|
|
Read for all ten ROMs right after the ROM itself, with verbose off, so
|
|
an absent file is silent. Fills the debugger symbol tables and nothing
|
|
else. Compiled out under WWW_NO_MONITOR.
|
|
shipped:
|
|
- basic10.sym
|
|
- basic11b.sym
|
|
- pravetzt.sym
|
|
- teleass.sym
|
|
- telmon24.sym
|
|
- microdis.sym
|
|
- jasmin.sym
|
|
- bd500.sym
|
|
- 8dos2.sym
|
|
referenced_but_not_shipped:
|
|
- hyperbas.sym
|
|
|
|
patches:
|
|
pattern: "<rom basename>.pch"
|
|
source_ref: "machine.c:1726-1740 (load_patches), machine.c:1933,1970,2007,2033,2083 (call sites)"
|
|
note: >
|
|
Read for the machine ROMs only, never for the disk controller ROMs.
|
|
Carries the keyboard layout, the CLOAD/CSAVE filename decoding
|
|
addresses, the tape turbo hook addresses and any number of literal
|
|
byte patches. An absent file returns silently and leaves
|
|
pch_tt_available false (machine.c:1810-1815), so tape turbo stays off
|
|
and tapes load at real speed (tape.c:243, 1322-1462).
|
|
shipped:
|
|
- basic10.pch
|
|
- basic11b.pch
|
|
- pravetzt.pch
|
|
- telmon24.pch
|
|
referenced_but_not_shipped:
|
|
- teleass.pch
|
|
- hyperbas.pch
|
|
|
|
unconfigured_basenames:
|
|
note: >
|
|
These sidecars ship for ROM basenames no default config names. They
|
|
take effect only once a config key points at that basename, and each
|
|
one implies a ROM dump Oricutron can run.
|
|
files:
|
|
- filename: Bas122uk.pch
|
|
implies: "Oric BASIC 1.22 UK, as an atmosrom value"
|
|
- filename: Bas122fr.pch
|
|
implies: "Oric BASIC 1.22 French, as an atmosrom value"
|
|
- filename: Bas122de.pch
|
|
implies: "Oric BASIC 1.22 German, as an atmosrom value"
|
|
- filename: pravetzt-1.0.pch
|
|
implies: "Pravetz BASIC revision 1.0, as a pravetzrom value"
|
|
- filename: pravetzt-1.0.sym
|
|
implies: "Pravetz BASIC revision 1.0, as a pravetzrom value"
|
|
- filename: 8dos.sym
|
|
implies: "the earlier Pravetz 8-DOS boot PROM, offered as pravetz8drom in oricutron.cfg:44"
|
|
- filename: cumana.sym
|
|
implies: "a Cumana controller ROM, whose symbols run from $F800, the window jasminrom feeds"
|
|
- filename: sedoric.sym
|
|
implies: "a Sedoric DOS ROM, whose symbols name the Microdisc FDC registers at $310-$318"
|
|
|
|
unused_resources:
|
|
- filename: empty_orix.rom
|
|
reason: "no reference anywhere in the tree, and not named by any config default nor by twilighte.cfg"
|
|
- filename: orixbank1.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
- filename: orixbank2.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
- filename: orixbank3.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
- filename: orixbank4.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
- filename: orixbank5.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
- filename: orixbank6.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
- filename: orixbank7.rom
|
|
reason: "no reference anywhere in the tree, loadable only once a twilbankromNN key names it"
|
|
|
|
user_supplied_paths:
|
|
note: "Named on the command line or in the config, with no fixed filename"
|
|
entries:
|
|
- what: "disk, tape and snapshot images"
|
|
source_ref: "main.c:1361-1504, oricutron.cfg:63-86"
|
|
- what: "debugger symbol file, -s or --symbols"
|
|
source_ref: "main.c:1533-1545"
|
|
- what: "breakpoint list, -r or --breakpoint with a leading colon"
|
|
source_ref: "main.c:1547-1574"
|
|
- what: "keyboard mapping, autoload_keyboard_mapping"
|
|
source_ref: "main.c:665 (config key), main.c:2188, keyboard.c:587-598, oricutron.cfg:220"
|
|
- what: "CH376 sdcard and usbdrive trees, telestrat mode"
|
|
source_ref: "plugins/ch376/ch376.c:1186, ReadMe.txt:512-514"
|
|
|
|
generated_files:
|
|
written_only:
|
|
- printer_out.txt
|
|
- "AVI captures"
|
|
- "snapshots"
|
|
- "tape captures"
|
|
- "debugger log and memory dumps"
|
|
note: "Produced by the emulator, none is user-supplied"
|