Files
libretro/emulators/vba_next.yml
2026-03-25 12:23:32 +01:00

46 lines
1.7 KiB
YAML

emulator: VBA-Next
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/vba-next"
upstream: "https://github.com/visualboyadvance-m/visualboyadvance-m"
profiled_date: "2026-03-25"
core_version: "SVN"
display_name: "Nintendo - Game Boy Advance (VBA Next)"
cores:
- vba_next
systems:
- nintendo-gba
notes: |
Frozen snapshot of VBA-M circa 2011, optimized for libretro by Squarepusher.
Built-in HLE BIOS (myROM array, src/gba.cpp:8423) handles all standard SWI
calls. No external BIOS file needed for most games.
BIOS loading gated by HAVE_HLE_BIOS (build/Makefile.common:3) and core option
vbanext_bios (default: enabled). When enabled, retro_init resolves gba_bios.bin
in system_dir (libretro/libretro.cpp:198-202). CPUInit loads via utilLoad(),
validates size == 0x4000, sets useBios = true (src/gba.cpp:12430-12438). On
failure, myROM is memcpy'd as HLE fallback (src/gba.cpp:12443).
With real BIOS, execution starts at 0x00000000 (BIOS entry point). Without,
jumps to 0x08000000 (ROM entry), skipping boot animation
(src/gba.cpp:12657-12675).
CPUIsGBABios accepts extensions: .gba, .agb, .bin, .bios, .rom
(src/gba.cpp:8851-8873).
Upstream VBA-M CPUInit (src/core/gba/gba.cpp:3674-3702) is functionally
identical. No divergences in BIOS handling.
files:
- name: gba_bios.bin
system: nintendo-gba
required: false
hle_fallback: true
size: 16384
validation: [size]
description: "GBA BIOS"
note: "Optional. HLE replacement handles all standard SWI calls. Real BIOS adds startup logo and may improve edge-case accuracy."
source_ref: "libretro/libretro.cpp:198-202, src/gba.cpp:12430-12438"