Files
libretro/emulators/vircon32.yml
T
Abdessamad Derraz b3b3880c19 chore: say which repository each source_ref cites
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
2026-10-20 09:23:41 +02:00

88 lines
3.5 KiB
YAML

emulator: Vircon32
type: libretro
core_classification: official_port
source: "https://github.com/vircon32/vircon32-libretro"
upstream: "https://github.com/vircon32/ComputerSoftware"
profiled_date: "2026-03-25"
source_commit: "dd78c5cea1fcaa382b7492d0d813d6c1534914d7"
core_version: "2026.2.18"
display_name: "Vircon32"
cores:
- vircon32
systems:
- vircon32
notes: |
Vircon32 is a libretro core for the Vircon32 fantasy console, a 32-bit
virtual game console with fixed hardware specs (60 fps, 640x360, 16
sound channels, up to 4 gamepads).
The Standard BIOS v1.2 is embedded directly into the core binary as a
C header (embedded/StandardBios.h), generated from Assets/StandardBios.v32
at build time. The core never strictly requires an external BIOS file.
BIOS loading logic (libretro.cpp:415-429):
1. Check if system_dir/Vircon32Bios.v32 exists on disk
2. If found, load it via Console.LoadBiosFile() (external override)
3. If not found, load the embedded BIOS via LoadEmbeddedBios()
This runs inside context_reset() (libretro.cpp:473-474), which is called
whenever the OpenGL context is (re)created.
The BIOS file format is a V32 ROM with a specific signature
(ROMFileFormat::BiosSignature). It must contain exactly 1 texture and
1 sound. The loader validates the signature, file structure, and version
compatibility before loading program ROM, video ROM and audio ROM
(ConsoleLogic/V32Console.cpp:259-431).
The external BIOS file allows users to replace the boot animation with
a custom one. Game compatibility is not affected by BIOS choice.
files:
- name: "Vircon32Bios.v32"
system: vircon32
description: "Vircon32 console BIOS (custom override)"
required: false
hle_fallback: true
size: 1073060
md5: "73f04397cbb2dafcf2047b19a856153a"
sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80"
source_ref: "source libretro.cpp:422-425"
note: |
Optional external BIOS placed in the system directory root.
If present, overrides the embedded Standard BIOS v1.2.
The hashes above correspond to the Standard BIOS v1.2 bundled
in Assets/StandardBios.v32 of the source repo. Custom BIOSes
will have different hashes but must follow the V32 BIOS format.
platform_details:
embedded_bios:
version: "Standard BIOS v1.2"
source_ref: "source libretro.cpp:28, source Assets/StandardBios.v32"
file_size: 1073060
md5: "73f04397cbb2dafcf2047b19a856153a"
sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80"
note: |
The standard BIOS is compiled into the core binary as
embedded_StandardBios[] via a generated header file. It provides
the boot animation (Vircon32 logo + startup sound). LoadEmbeddedBios()
writes the raw bytes into a stringstream and passes it to
Console.LoadBiosData().
bios_format:
source_ref: "source VirconDefinitions/FileFormats.hpp, source ConsoleLogic/V32Console.cpp:259-431"
note: |
A V32 BIOS ROM file must have:
- BiosSignature in the header (distinct from CartridgeSignature)
- Exactly 1 texture (boot screen graphics)
- Exactly 1 sound (boot sound)
- Program ROM, Video ROM and Audio ROM in sequential layout
The loader validates all of this before accepting the file.
cartridge_format:
extensions: "v32"
source_ref: "source ConsoleLogic/V32Console.cpp:468-696"
note: |
Cartridges use CartridgeSignature with up to 256 textures and
1024 sounds. Program ROM can be up to 128M words (512 MB).