Virtual Jaguar - RetroBIOS¶
| Type | libretro |
| Classification | community_fork |
| Source | https://github.com/libretro/virtualjaguar-libretro |
| Upstream | http://shamusworld.gotdns.org/git/virtualjaguar |
| Version | v2.1.0 |
| Profiled | 2025-03-25 |
| Cores | virtualjaguar |
| Systems | atari-jaguar |
Source analysis
embedded_bios:
**k_series_boot_rom:**
- **source_file:** src/jagbios.c
- **header:** src/jagbios.h
- **symbol:** jaguarBootROM
- **size:** 131072
- **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
- **description:** Jaguar M-series boot ROM
**cd_boot_rom:**
- **source_file:** src/jagcdbios.c
- **header:** src/jagcdbios.h
- **symbol:** jaguarCDBootROM
- **size:** 262144
- **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
- **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
- **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
- **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
- **notes:** 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.
Technical 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.
No BIOS or firmware files required. Generated on 2026-03-25T14:56:43Z