Files
libretro/emulators/sameboy.yml
Abdessamad Derraz e13e8734b9 chore: standardize notes: to note: in file entries
240 file-level entries used notes: instead of the canonical note:
field. verify.py and cross_reference.py only read note:, so these
were silently ignored.
2026-03-29 10:02:20 +02:00

124 lines
4.5 KiB
YAML

emulator: SameBoy
type: libretro
core_classification: official_port
source: "https://github.com/libretro/SameBoy"
upstream: "https://github.com/LIJI32/SameBoy"
profiled_date: "2026-03-25"
core_version: "0.15.4"
display_name: "Nintendo - Game Boy / Color (SameBoy)"
cores:
- sameboy
systems:
- nintendo-gb
- nintendo-gbc
- nintendo-sgb
notes: |
SameBoy is a high-accuracy Game Boy, Game Boy Color and Super Game Boy
emulator by LIJI32 (official_port: same author maintains upstream and
libretro fork).
All boot ROMs are optional. SameBoy compiles open-source boot ROM
replacements from BootROMs/*.asm and embeds them into the libretro
binary (extern arrays dmg_boot, cgb_boot, agb_boot, sgb_boot,
sgb2_boot in libretro.c:129-130). These are SameBoy-authored
replacements, not Nintendo originals.
The libretro port (boot_rom_load, libretro.c:512-588) tries to load
an external boot ROM from the system directory first. Filename is
constructed as "{model}_boot.bin". If missing, the embedded boot ROM
is used as fallback.
Boot ROM selection depends on the sameboy_model core option
(request_boot_rom in Core/gb.c:1587-1625):
DMG_B -> GB_BOOT_ROM_DMG -> dmg_boot.bin
SGB_NTSC/PAL -> GB_BOOT_ROM_SGB -> sgb_boot.bin
SGB2 -> GB_BOOT_ROM_SGB2 -> sgb2_boot.bin
CGB_A..E -> GB_BOOT_ROM_CGB -> cgb_boot.bin
AGB_A/GBP_A -> GB_BOOT_ROM_AGB -> agb_boot.bin
.info declares firmware_count=2 (dmg, cgb only). Actual reachable
files in the libretro port are 5 (adds sgb, sgb2, agb).
Unreachable boot ROMs in the libretro port (array entries exist in
boot_rom_load but no model option triggers them):
- dmg0_boot.bin: GB_MODEL_DMG_0 commented out (Core/gb.h:100)
- mgb_boot.bin: GB_MODEL_MGB active but not exposed by core options
- cgb0_boot.bin: GB_MODEL_CGB_0 active but not exposed by core options
Upstream standalone (v1.0.3) supports these plus cgbE_boot.bin and
agb0_boot.bin (10 boot ROM types total).
No validation performed on loaded boot ROMs. GB_load_boot_rom_from_buffer
(Core/gb.c:266-273) does a plain memcpy capped at 0x900 bytes.
files:
- name: "dmg_boot.bin"
system: nintendo-gb
description: "Game Boy (DMG) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "libretro.c:519,530,556 (boot_rom_load); Core/gb.c:1594 (request_boot_rom)"
- name: "sgb_boot.bin"
system: nintendo-sgb
description: "Super Game Boy (SGB) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "libretro.c:521,532,556; Core/gb.c:1600-1604"
note: "Used for SGB_NTSC, SGB_PAL models. Also loaded when borrowing SGB border (Core/gb.c:264)."
- name: "sgb2_boot.bin"
system: nintendo-sgb
description: "Super Game Boy 2 (SGB2) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "libretro.c:522,533,556; Core/gb.c:1607"
- name: "cgb_boot.bin"
system: nintendo-gbc
description: "Game Boy Color (CGB) boot ROM"
required: false
hle_fallback: true
size: 2304
source_ref: "libretro.c:524,535,556; Core/gb.c:1613-1618"
note: "Used for CGB revisions A through E in the libretro port."
- name: "agb_boot.bin"
system: nintendo-gbc
description: "Game Boy Advance in GBC mode (AGB) boot ROM"
required: false
hle_fallback: true
size: 2304
source_ref: "libretro.c:525,536,556; Core/gb.c:1621"
note: "Enables GBA-enhanced palettes in compatible GBC games."
builtin_boot_roms:
description: |
Open-source boot ROM replacements compiled from BootROMs/ assembly.
Not Nintendo originals.
sources:
- "BootROMs/dmg_boot.asm -> dmg_boot (256 bytes)"
- "BootROMs/sgb_boot.asm -> sgb_boot (256 bytes)"
- "BootROMs/sgb2_boot.asm -> sgb2_boot (256 bytes)"
- "BootROMs/cgb_boot.asm -> cgb_boot (2304 bytes)"
- "BootROMs/agb_boot.asm -> agb_boot (2304 bytes)"
prebuilt_hashes:
dmg_boot.bin:
md5: "60f1d849a435e9053b8ac0fd5776804a"
sha1: "da853c8102acfff6b8e5a973ce0cd181f3dbb709"
sgb_boot.bin:
md5: "be77bbd03f8675478f6e3d2176f3cb56"
sha1: "27267e45c8408857267231ba6c18bfbd052536e2"
sgb2_boot.bin:
md5: "b4331a9e612b4738867a30af9c96df52"
sha1: "576678d0fc3892b80471d7067ce6014e6af77ed5"
cgb_boot.bin:
md5: "6b68be48dab6a7298a8c07e00c136b4e"
sha1: "9884b972110a63c9e86fb3bd241bd2e39ca82bb9"
agb_boot.bin:
md5: "7e095aa30941da3086fa0e9221335370"
sha1: "3b6231bdf840fb889f402d0ae89f21adb077323a"