Files
libretro/emulators/gpsp.yml
T
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +02:00

67 lines
2.5 KiB
YAML

emulator: gpSP
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/gpsp"
upstream: "https://github.com/davidgfnet/gpsp"
profiled_date: "2026-03-23"
source_commit: "8d268a6bb2cd799f8f2791ebb544a7ef550cfc6f"
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, forked by
notaz for GP2X/Pandora, now maintained by davidgfnet for libretro.
Ships 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
BIOS loading path (libretro/libretro.c:1200-1236):
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 games that rely on
precise SWI behavior or BIOS checksum verification.
Upstream (notaz/Exophase) required the official BIOS with no fallback.
The built-in open-source BIOS is a davidgfnet/libretro addition.
files:
- name: gba_bios.bin
system: nintendo-gba
required: false
hle_fallback: true
size: 16384
description: "Official GBA BIOS"
note: "Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot animation."
source_ref: "libretro/libretro.c:1214, gba_memory.c:2568-2580"
platform_details:
gba:
bios_size: 16384
hle_bios: true
source_ref: "libretro/libretro.c:1200-1236, bios/source/core.s"
note: |
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).
No hash or checksum verification is performed. The only check
is bios_rom[0] == 0x18 (ARM branch at reset vector).
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