Files
libretro/emulators/gambatte.yml
Abdessamad Derraz de1940d57c 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

59 lines
2.6 KiB
YAML

emulator: Gambatte
type: libretro
source: "https://github.com/libretro/gambatte-libretro"
profiled_date: "2026-03-18"
core_version: "v0.5.0"
display_name: "Nintendo - Game Boy / Color (Gambatte)"
systems: [nintendo-gb, nintendo-gbc]
notes: |
Gambatte is a Game Boy / Game Boy Color emulator focused on accuracy.
No BIOS is required for normal operation. The core has a built-in
HLE boot sequence that skips the Nintendo logo animation by default.
When the core option "gambatte_gb_bootloader" is set to "enabled"
(the default), the core looks for official boot ROMs in the system
directory to play the real startup logo animation. If the files are
missing, emulation still works without them.
The boot ROM loaded depends on the hardware mode:
- DMG (original Game Boy): gb_bios.bin (256 bytes, 0x100)
- CGB (Game Boy Color) or GBA mode: gbc_bios.bin (2304 bytes, 0x900)
In GBA mode the core patches the CGB boot ROM at 0xF2 to fake
GBA detection (ld b,0x01), enabling GBA-enhanced features in
compatible GBC games (Shantae, Zelda Oracle series, etc.).
File path construction: libretro.cpp get_bootloader_from_file()
joins RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with each filename
directly - no subdirectories.
Gambatte does NOT use sgb_bios.bin. The SGB palette references in
the source are color lookup tables for DMG palette colorization,
not actual Super Game Boy boot ROM loading.
files:
# --- DMG boot ROM (optional, enables startup animation) ---
- name: "gb_bios.bin"
system: nintendo-gb
description: "Original Game Boy (DMG-01) boot ROM"
required: false
hle_fallback: true
size: 256
md5: "32fbbd84168d3482956eb3c5051637f5"
sha1: "4ed31ec6b0b175bb109c0eb5fd3d193da823339f"
source_ref: "libretro.cpp:1304-1364 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
notes: "Mapped at 0x0000-0x00FF, swapped out when register 0xFF50 is written. Core option gambatte_gb_bootloader must be enabled."
# --- CGB boot ROM (optional, enables startup animation) ---
- name: "gbc_bios.bin"
system: nintendo-gbc
description: "Game Boy Color (CGB-001) boot ROM"
required: false
hle_fallback: true
size: 2304
md5: "dbfce9db9deaa2567f6a84fde55f9680"
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
source_ref: "libretro.cpp:1304-1364 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
notes: "Mapped at 0x0000-0x08FF with cartridge data preserved at 0x0100-0x01FF. Also used for GBA-enhanced mode with a patch at 0xF2. Presence required for FORCE_CGB flag when hw mode is set to GBC or GBA."