emulator: Gambatte type: libretro core_classification: community_fork source: "https://github.com/libretro/gambatte-libretro" upstream: "https://github.com/sinamas/gambatte" profiled_date: "2026-03-23" source_commit: "d9d6cd06382d1ced30de34d56d3609452323dab1" core_version: "v0.5.0" display_name: "Nintendo - Game Boy / Color (Gambatte)" cores: - gambatte systems: [nintendo-gb, nintendo-gbc] notes: | Accuracy-focused GB/GBC emulator. No BIOS required for normal operation: the built-in HLE boot sequence skips the Nintendo logo animation. Core option gambatte_gb_bootloader (default: enabled) enables loading official boot ROMs from the system directory for the real startup animation. If missing, emulation works without them. Boot ROM selection by hardware mode: - DMG: gb_bios.bin (256 bytes) - CGB or GBA: gbc_bios.bin (2304 bytes) 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. The upstream standalone supports SGB boot ROM loading, but the libretro port does not implement this. With GB Colorization set to "custom", a DMG game reads the first of palettes/.pal, palettes/
.pal and palettes/default.pal under the system directory. Each line sets one of the twelve background and sprite colours as Background0= to Sprite%2023= with a 24-bit RGB value. Colours the file leaves out keep their previous value (libgambatte/libretro/libretro.cpp:2012-2191, libgambatte/libretro/libretro.cpp:2521-2522, libgambatte/libretro/libretro.cpp:2582-2583). files: - name: "gb_bios.bin" system: nintendo-gb description: "Original Game Boy (DMG-01) boot ROM" required: false hle_fallback: true min_size: 256 validation: [size] source_ref: "source libgambatte/libretro/libretro.cpp:1426-1486 (get_bootloader_from_file), source libgambatte/libretro/libretro.cpp:1734-1742, source libgambatte/src/bootloader.cpp:30-65 (load)" note: "Mapped at 0x0000-0x00FF, swapped out when register 0xFF50 is written." - name: "gbc_bios.bin" system: nintendo-gbc description: "Game Boy Color (CGB-001) boot ROM" required: false hle_fallback: true min_size: 2304 validation: [size] source_ref: "source libgambatte/libretro/libretro.cpp:1426-1486 (get_bootloader_from_file), source libgambatte/libretro/libretro.cpp:1734-1742, source libgambatte/src/bootloader.cpp:30-65 (load)" note: "Mapped at 0x0000-0x08FF with cartridge data preserved at 0x0100-0x01FF. Also used for GBA mode with a patch at 0xF2. Presence required for FORCE_CGB flag when hw mode is GBC or GBA." - name: "default.pal" path: "palettes/default.pal" system: nintendo-gb description: "Custom DMG colour palette" required: false unsourceable: "user-created palette, the core and its repository distribute none" source_ref: "source libgambatte/libretro/libretro.cpp:2012-2091, source libgambatte/libretro/libretro.cpp:2521-2522, source libgambatte/libretro/libretro.cpp:2582-2583" note: "Read only when GB Colorization is custom and no palette named after the ROM file or the header title exists."