mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 05:53:23 -05:00
189 lines
7.2 KiB
YAML
189 lines
7.2 KiB
YAML
emulator: Virtual Jaguar
|
|
type: libretro
|
|
core_classification: community_fork
|
|
source: "https://github.com/libretro/virtualjaguar-libretro"
|
|
upstream: "http://shamusworld.gotdns.org/git/virtualjaguar"
|
|
profiled_date: "2026-09-04"
|
|
source_commit: "f9a3c89f58836cb2c45a42ad4edfac047050f30a"
|
|
core_version: "v2.1.0"
|
|
display_name: "Atari - Jaguar (Virtual Jaguar)"
|
|
cores:
|
|
- virtualjaguar
|
|
systems:
|
|
- atari-jaguar
|
|
|
|
notes: |
|
|
The boot ROMs are still compiled in, generated by bin2c, but the core no
|
|
longer only uses them. Staging moved out of retro_load_game into
|
|
stage_cart_boot_rom, which reads a file first and falls back to the
|
|
embedded array (libretro.c:5339-5382). BT_M_SERIES tries jagboot_m.rom in
|
|
the system directory; BT_CUSTOM, a value the enum did not carry before,
|
|
searches six names across the system directory and two subdirectories
|
|
(libretro.c:5293-5337). Either way the file has to be 0x20000 bytes, the
|
|
size copied to jagMemSpace + 0xE00000; anything shorter is a short read and
|
|
the embedded Series K takes over.
|
|
|
|
The Jaguar CD BIOS is the larger change. stage_cd_bios calls
|
|
load_external_cd_bios, which walks three name groups over five directories
|
|
(libretro.c:5049-5158). The group order follows the
|
|
virtualjaguar_cd_bios_type option, then generic names, then the other type,
|
|
because a lone file of the wrong type still beats the embedded copy: the
|
|
user put it there deliberately. A candidate is accepted at exactly 0x40000
|
|
bytes and recognised by CRC32 against two constants
|
|
(libretro.c:4964-4965,4971-5048).
|
|
|
|
The "BIOS" core option (virtualjaguar_bios, disabled by default) still
|
|
controls whether the boot ROM is executed at startup. When enabled, the
|
|
boot ROM entry point is copied to jaguarMainRAM
|
|
(src/core/jaguar.c:1466-1468). When disabled, jaguarRunAddress is written
|
|
directly, skipping the boot animation.
|
|
|
|
Nothing here is required: every path falls back to an embedded copy, and a
|
|
file only replaces it. The embedded arrays are the dumps themselves:
|
|
jaguarBootROM and jaguarBootROM_M hash to the CRC32 values biosdb.c names
|
|
Series K and Model M, jaguarCDBootROM and jaguarDevCDBootROM to the two
|
|
values the CD BIOS test accepts (src/bios/jagbios.c, src/bios/jagbios_m.c,
|
|
src/bios/jagcdbios.c, src/bios/jagdevcdbios.c, src/core/biosdb.c:20-21,
|
|
libretro.c:4964-4965). A file changes what runs only under BT_CUSTOM,
|
|
where any image of 0x20000 bytes is loaded and an unrecognised checksum
|
|
is logged (libretro.c:5245-5284).
|
|
|
|
files:
|
|
- name: "[BIOS] Atari Jaguar CD (World).j64"
|
|
system: atari-jaguar
|
|
required: false
|
|
size: 262144
|
|
crc32: "687068d5"
|
|
validation: [size, crc32]
|
|
aliases:
|
|
- "[BIOS] Atari Jaguar CD (World).rom"
|
|
- "[BIOS] Atari Jaguar CD (World).bin"
|
|
- "jaguarcd_bios.bin"
|
|
- "jagcd_bios.bin"
|
|
- "jaguarcd.bin"
|
|
- "jagcd.bin"
|
|
- "Jaguar CD BIOS.rom"
|
|
- "Jaguar CD BIOS.bin"
|
|
description: "Jaguar CD retail BIOS, replacing the embedded copy"
|
|
source_ref: "libretro.c:4964, libretro.c:4971-5048, libretro.c:5049-5158, libretro.c:5159-5175"
|
|
note: >-
|
|
Searched in the system directory and under Atari - Jaguar,
|
|
Atari - Jaguar CD, jaguar and jaguarcd. Accepted at exactly 262144
|
|
bytes and recognised by its CRC32; a file of the right size whose
|
|
checksum matches neither constant is counted as rejected and the
|
|
embedded BIOS is used. The generic names are tried after the type the
|
|
virtualjaguar_cd_bios_type option selects.
|
|
|
|
- name: "[BIOS] Atari Jaguar Developer CD (World).j64"
|
|
system: atari-jaguar
|
|
required: false
|
|
size: 262144
|
|
crc32: "55a0669c"
|
|
validation: [size, crc32]
|
|
aliases:
|
|
- "[BIOS] Atari Jaguar Developer CD (World).rom"
|
|
- "[BIOS] Atari Jaguar Developer CD (World).bin"
|
|
description: "Jaguar CD developer BIOS, selected by virtualjaguar_cd_bios_type"
|
|
source_ref: "libretro.c:4965, libretro.c:5049-5158"
|
|
note: >-
|
|
Same search and the same size and checksum test as the retail BIOS.
|
|
Whichever type the option does not select is still tried last.
|
|
|
|
- name: jagboot.rom
|
|
system: atari-jaguar
|
|
required: false
|
|
size: 131072
|
|
validation: [size]
|
|
aliases:
|
|
- boot.rom
|
|
- boot0.rom
|
|
- "[BIOS] Atari Jaguar (World).j64"
|
|
- "[BIOS] Atari Jaguar Stubulator '94 (World).j64"
|
|
- "[BIOS] Atari Jaguar Stubulator '93 (World).j64"
|
|
description: "Cart boot ROM read when the BIOS type is set to custom"
|
|
source_ref: "libretro.c:5293-5337, libretro.c:5339-5356"
|
|
note: >-
|
|
Reached only through BT_CUSTOM. Searched in the system directory and
|
|
under Atari - Jaguar and jaguar. No checksum is tested; a read shorter
|
|
than 131072 bytes leaves the embedded Series K in place.
|
|
|
|
- name: jagboot_m.rom
|
|
system: atari-jaguar
|
|
required: false
|
|
size: 131072
|
|
validation: [size]
|
|
aliases:
|
|
- boot.rom
|
|
description: "Model-M cart boot ROM, read when the BIOS type is Model M"
|
|
source_ref: "libretro.c:5358-5380"
|
|
note: >-
|
|
Read from the system directory only, as jagboot_m.rom, and only when
|
|
biosType is BT_M_SERIES. A short read falls back to the embedded
|
|
Model M array, which carries the same bytes as the Model M dump.
|
|
|
|
analysis:
|
|
embedded_bios:
|
|
k_series_boot_rom:
|
|
source_file: src/bios/jagbios.c
|
|
header: src/bios/jagbios.h
|
|
symbol: jaguarBootROM
|
|
size: 131072 # 0x20000, 128 KB
|
|
description: "Jaguar K-series boot ROM"
|
|
filedb_crc: "0xFB731AAA"
|
|
filedb_name: "[BIOS] Atari Jaguar (World)"
|
|
|
|
m_series_boot_rom:
|
|
source_file: src/bios/jagbios_m.c
|
|
header: src/bios/jagbios_m.h
|
|
symbol: jaguarBootROM_M
|
|
size: 131072 # 0x20000, 128 KB
|
|
description: "Jaguar M-series boot ROM"
|
|
biosdb_crc: "0xAE25BDF5"
|
|
biosdb_name: "Model M boot ROM"
|
|
|
|
cd_boot_rom:
|
|
source_file: src/bios/jagcdbios.c
|
|
header: src/bios/jagcdbios.h
|
|
symbol: jaguarCDBootROM
|
|
size: 262144 # 0x40000, 256 KB
|
|
description: "Jaguar CD boot ROM"
|
|
filedb_crc: "0x687068D5"
|
|
filedb_name: "[BIOS] Atari Jaguar CD (World)"
|
|
|
|
dev_cd_boot_rom:
|
|
source_file: src/bios/jagdevcdbios.c
|
|
header: src/bios/jagdevcdbios.h
|
|
symbol: jaguarDevCDBootROM
|
|
size: 262144 # 0x40000, 256 KB
|
|
description: "Jaguar Developer CD boot ROM"
|
|
filedb_crc: "0x55A0669C"
|
|
filedb_name: "[BIOS] Atari Jaguar Developer CD (World)"
|
|
|
|
bios_type_enum:
|
|
source_ref: "src/core/settings.h:61"
|
|
values:
|
|
- BT_K_SERIES
|
|
- BT_M_SERIES
|
|
- BT_STUBULATOR_1
|
|
- BT_STUBULATOR_2
|
|
- BT_CUSTOM
|
|
|
|
core_option:
|
|
key: virtualjaguar_bios
|
|
label: "BIOS (Cartridges)"
|
|
description: "Which BIOS a cartridge boots with: disabled is HLE, enabled runs the boot ROM."
|
|
default: disabled
|
|
source_ref: "libretro_core_options.h:588-600"
|
|
|
|
bios_loading:
|
|
mechanism: embedded
|
|
load_address: "0xE00000"
|
|
load_size: "0x20000"
|
|
source_ref: "libretro.c:5339-5383, libretro.c:6332"
|
|
selection_logic: "BT_CUSTOM reads a file, BT_M_SERIES tries jagboot_m.rom, otherwise the embedded array"
|
|
external_loading: true
|
|
note: |
|
|
jagBootPath and CDBootPath struct fields are never set in the libretro
|
|
port. The standalone Virtual Jaguar GUI uses them but that code path
|
|
is not compiled into the libretro core.
|