feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
emulator: gpSP
|
|
|
|
|
type: libretro
|
feat: add emulator/system pack generation, validation checks, path resolution
add --emulator, --system, --standalone, --list-emulators, --list-systems
to verify.py and generate_pack.py. packs are RTU with data directories,
regional BIOS variants, and archive support.
validation: field per file (size, crc32, md5, sha1) with conflict
detection. by_path_suffix index in database.json for regional variant
resolution via dest_hint. restructure GameCube IPL to regional subdirs.
66 E2E tests, full pipeline verified.
2026-03-22 14:02:20 +01:00
|
|
|
core_classification: community_fork
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
source: "https://github.com/libretro/gpsp"
|
2026-03-24 09:33:06 +01:00
|
|
|
upstream: "https://github.com/davidgfnet/gpsp"
|
|
|
|
|
profiled_date: "2026-03-23"
|
2026-03-18 05:19:57 +01:00
|
|
|
core_version: "Git"
|
|
|
|
|
display_name: "Nintendo - Game Boy Advance (gpSP)"
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
cores:
|
|
|
|
|
- gpsp
|
|
|
|
|
systems:
|
|
|
|
|
- nintendo-gba
|
|
|
|
|
|
|
|
|
|
notes: |
|
2026-03-24 09:33:06 +01:00
|
|
|
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
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
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
|
|
|
|
|
|
2026-03-24 09:33:06 +01:00
|
|
|
BIOS loading path (libretro/libretro.c:1100-1131):
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
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
|
|
|
|
|
|
2026-03-24 09:33:06 +01:00
|
|
|
The official BIOS improves compatibility for games that rely on
|
|
|
|
|
precise SWI behavior or BIOS checksum verification.
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
|
2026-03-24 09:33:06 +01:00
|
|
|
Upstream (notaz/Exophase) required the official BIOS with no fallback.
|
|
|
|
|
The built-in open-source BIOS is a davidgfnet/libretro addition.
|
feat: add emulator/system pack generation, validation checks, path resolution
add --emulator, --system, --standalone, --list-emulators, --list-systems
to verify.py and generate_pack.py. packs are RTU with data directories,
regional BIOS variants, and archive support.
validation: field per file (size, crc32, md5, sha1) with conflict
detection. by_path_suffix index in database.json for regional variant
resolution via dest_hint. restructure GameCube IPL to regional subdirs.
66 E2E tests, full pipeline verified.
2026-03-22 14:02:20 +01:00
|
|
|
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
files:
|
|
|
|
|
- name: gba_bios.bin
|
|
|
|
|
system: nintendo-gba
|
|
|
|
|
required: false
|
feat: hle_fallback on 39 emulator profiles (266 entries)
Batch analysis of all 273 profiles to identify HLE/embedded
fallbacks. Added hle_fallback: true where the core has verified
software replacement for missing BIOS files:
- Embedded ROMs: vice (102), ep128emu (22), fuse (18), frodo (4)
- HLE BIOS: bsnes* (33 across 3 profiles), puae (9 AROS),
noods (4), melonds* (6 FreeBIOS), flycast (3 reios)
- Open-source replacements: sameboy (8), pokemini (1), gpsp (1)
- Built-in fallbacks: np2kai (7), atari800 (6 Altirra),
picodrive (3), quasi88 (4), gambatte (2)
Conservative: only added where notes or source code confirm HLE.
Skipped 50+ profiles where files are optional alternatives, not
HLE replaceable (neocd, opera, kronos, pcem, etc.)
2026-03-19 13:03:48 +01:00
|
|
|
hle_fallback: true
|
2026-03-24 09:33:06 +01:00
|
|
|
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:1111, gba_memory.c:2568-2579"
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
|
|
|
|
|
platform_details:
|
|
|
|
|
gba:
|
2026-03-24 09:33:06 +01:00
|
|
|
bios_size: 16384
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
hle_bios: true
|
2026-03-24 09:33:06 +01:00
|
|
|
source_ref: "libretro/libretro.c:1100-1131, bios/source/"
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
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).
|
|
|
|
|
|
2026-03-24 09:33:06 +01:00
|
|
|
No hash or checksum verification is performed. The only check
|
|
|
|
|
is bios_rom[0] == 0x18 (ARM branch at reset vector).
|
feat: add 10 emulator profiles (batch 6)
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.
2026-03-17 19:39:19 +01:00
|
|
|
|
|
|
|
|
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
|