mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
gpsp (GBA, open BIOS fallback), ecwolf (ecwolf.pk3), prboom (prboom.wad), x1 (Sharp X1, 5 files in xmil/), minivmac (MacII.ROM/MacIIx.ROM), theodore (Thomson, all embedded), crocods (CPC 6128, all embedded), vba_next (GBA, HLE fallback), same_cdi (CD-i, 3 MAME ZIPs + 2 undeclared), beetle_lynx (lynxboot.img) 71 total profiles. Cross-reference: 690 undeclared, 186 in repo.
66 lines
2.7 KiB
YAML
66 lines
2.7 KiB
YAML
emulator: gpSP
|
|
type: libretro
|
|
source: "https://github.com/libretro/gpsp"
|
|
cores:
|
|
- gpsp
|
|
systems:
|
|
- nintendo-gba
|
|
|
|
notes: |
|
|
gpSP is a Game Boy Advance emulator originally by Exophase, ported to
|
|
libretro. Historically it required the official GBA BIOS to run. Current
|
|
versions ship a built-in open-source BIOS (bios/open_gba_bios.bin) compiled
|
|
from bios/source/ that covers most games.
|
|
|
|
The core option gpsp_bios controls BIOS selection:
|
|
auto (default) - try official gba_bios.bin, fall back to built-in
|
|
builtin - always use the built-in open-source BIOS
|
|
official - try gba_bios.bin, warn and fall back to built-in if missing
|
|
|
|
A second option gpsp_boot_mode selects startup behavior:
|
|
game (default) - skip BIOS intro, boot directly into game
|
|
bios - run the BIOS boot animation before launching
|
|
|
|
BIOS loading path (libretro/libretro.c:1093-1131):
|
|
1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)
|
|
2. Append "/gba_bios.bin"
|
|
3. load_bios() reads 0x4000 (16 KB) into bios_rom[]
|
|
4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode)
|
|
5. On failure, memcpy open_gba_bios_rom[] as fallback
|
|
|
|
The official BIOS improves compatibility for a few games that rely on
|
|
precise SWI behavior or BIOS checksum verification. The built-in BIOS
|
|
works for the vast majority of the GBA library.
|
|
|
|
files:
|
|
# -------------------------------------------------------
|
|
# Game Boy Advance - BIOS (optional, built-in fallback)
|
|
# -------------------------------------------------------
|
|
- name: gba_bios.bin
|
|
system: nintendo-gba
|
|
required: false
|
|
size: 16384 # 16 KB (0x4000)
|
|
note: "Official GBA BIOS. Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot logo."
|
|
source_ref: "libretro/libretro.c:1111"
|
|
|
|
platform_details:
|
|
gba:
|
|
bios_size: 16384 # 16 KB
|
|
hle_bios: true
|
|
source_ref: "libretro/libretro.c:1107-1131, bios/source/"
|
|
notes: |
|
|
The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source
|
|
reimplementation compiled from bios/source/. It implements most
|
|
SWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
|
|
arithmetic, decompression, sound, multiboot).
|
|
|
|
Validation is minimal: load_bios() in gba_memory.c reads exactly
|
|
0x4000 bytes. The libretro frontend checks bios_rom[0] == 0x18
|
|
(ARM branch instruction at reset vector) to reject garbage files.
|
|
No hash or checksum verification is performed.
|
|
|
|
The bios_type enum (main.h:56-61) defines three modes:
|
|
auto_detect - try official first, fall back to built-in
|
|
builtin_bios - skip file load entirely, use open_gba_bios_rom
|
|
official_bios - try file, warn on failure, still fall back
|