Files
libretro/emulators/gpsp.yml
Abdessamad Derraz 58f3006d20 docs: add core_version, display_name to all 260 emulator profiles
Every profile now has:
- profiled_date: date of source code analysis
- core_version: version from libretro-core-info .info files
- display_name: human-readable name from .info files

260/260 profiles complete. 294/294 libretro cores covered.
Standalone emulators (cemu, rpcs3, xemu, vita3k) versioned manually.
2026-03-18 05:20:05 +01:00

69 lines
2.8 KiB
YAML

emulator: gpSP
type: libretro
source: "https://github.com/libretro/gpsp"
profiled_date: "2026-03-18"
core_version: "Git"
display_name: "Nintendo - Game Boy Advance (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