Skip to content

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