Files
libretro/emulators/virtualjaguar.yml
Abdessamad Derraz e13e8734b9 chore: standardize notes: to note: in file entries
240 file-level entries used notes: instead of the canonical note:
field. verify.py and cross_reference.py only read note:, so these
were silently ignored.
2026-03-29 10:02:20 +02:00

118 lines
3.9 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: "2025-03-25"
core_version: "v2.1.0"
display_name: "Atari - Jaguar (Virtual Jaguar)"
cores:
- virtualjaguar
systems:
- atari-jaguar
notes: |
Virtual Jaguar embeds all BIOS ROMs directly in the source code as C arrays
(bin2c generated). No external BIOS files are loaded at runtime. The core
selects between K-series and M-series boot ROMs based on vjs.biosType,
then copies 0x20000 bytes to jagMemSpace + 0xE00000 (libretro.c:902-904).
The "BIOS" core option (virtualjaguar_bios, disabled by default) controls
whether the embedded boot ROM is executed at startup. When enabled, the
boot ROM entry point is copied to jaguarMainRAM (jaguar.c:644-645).
When disabled, jaguarRunAddress is written directly, skipping the boot
animation. Either way the embedded ROM data is always present in memory.
The jagBootPath and CDBootPath fields in VJSettings exist in the struct
(settings.h:36-37) but are never populated or used in the libretro port.
No call to RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY or fopen for BIOS files.
Jaguar CD emulation: the CD boot ROM (jaguarCDBootROM, 0x40000 bytes) is
also embedded but Jaguar CD support is incomplete in this core. The
cdrom.c references "CD BIOS" in comments only.
No external BIOS files are required or loaded by this core.
files: []
analysis:
embedded_bios:
k_series_boot_rom:
source_file: src/jagbios.c
header: src/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/jagbios2.c
header: src/jagbios2.h
symbol: jaguarBootROM2
size: 131072 # 0x20000, 128 KB
description: "Jaguar M-series boot ROM"
cd_boot_rom:
source_file: src/jagcdbios.c
header: src/jagcdbios.h
symbol: jaguarCDBootROM
size: 262144 # 0x40000, 256 KB
description: "Jaguar CD boot ROM"
filedb_crc: "0x687068D5"
filedb_name: "[BIOS] Atari Jaguar CD (World)"
stubulator_93:
source_file: src/jagstub1bios.c
header: src/jagstub1bios.h
symbol: jaguarDevBootROM1
size: 131072 # 0x20000, 128 KB
description: "Jaguar Stubulator '93 dev BIOS"
filedb_crc: "0xE60277BB"
filedb_name: "[BIOS] Atari Jaguar Stubulator '93 (World)"
stubulator_94:
source_file: src/jagstub2bios.c
header: src/jagstub2bios.h
symbol: jaguarDevBootROM2
size: 131072 # 0x20000, 128 KB
description: "Jaguar Stubulator '94 dev BIOS"
filedb_crc: "0x8D15DBC6"
filedb_name: "[BIOS] Atari Jaguar Stubulator '94 (World)"
dev_cd_boot_rom:
source_file: src/jagdevcdbios.c
header: src/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: "settings.h:46"
values:
- BT_K_SERIES
- BT_M_SERIES
- BT_STUBULATOR_1
- BT_STUBULATOR_2
core_option:
key: virtualjaguar_bios
label: "BIOS"
description: "Use the Jaguar BIOS, required for some games."
default: disabled
source_ref: "libretro_core_options.h:123"
bios_loading:
mechanism: embedded
load_address: "0xE00000"
load_size: "0x20000"
source_ref: "libretro.c:902-904"
selection_logic: "biosType == BT_K_SERIES ? jaguarBootROM : jaguarBootROM2"
external_loading: false
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.