Files
libretro/emulators/sameboy.yml
T
Abdessamad Derraz b3b3880c19 chore: say which repository each source_ref cites
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
2026-10-20 09:23:41 +02:00

130 lines
5.1 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"
source_commit: "aa158a889a48b538a0302873704a34577c8eb67d"
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/libretro.c:513-589) 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"
installed_on: [recalbox]
system: nintendo-gb
description: "Game Boy (DMG) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "source libretro/libretro.c:519, source libretro/libretro.c:530, source libretro/libretro.c:556 (boot_rom_load), source Core/gb.c:1594 (request_boot_rom)"
- name: "sgb_boot.bin"
installed_on: [recalbox]
system: nintendo-sgb
description: "Super Game Boy (SGB) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "source libretro/libretro.c:521, source libretro/libretro.c:532, source libretro/libretro.c:556, source 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"
installed_on: [recalbox]
system: nintendo-sgb
description: "Super Game Boy 2 (SGB2) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "source libretro/libretro.c:522, source libretro/libretro.c:533, source libretro/libretro.c:556, source Core/gb.c:1607"
- name: "cgb_boot.bin"
installed_on: [recalbox]
system: nintendo-gbc
description: "Game Boy Color (CGB) boot ROM"
required: false
hle_fallback: true
size: 2304
source_ref: "source libretro/libretro.c:524, source libretro/libretro.c:535, source libretro/libretro.c:556, source Core/gb.c:1613-1618"
note: "Used for CGB revisions A through E in the libretro port."
- name: "agb_boot.bin"
installed_on: [recalbox]
system: nintendo-gbc
description: "Game Boy Advance in GBC mode (AGB) boot ROM"
required: false
hle_fallback: true
size: 2304
source_ref: "source libretro/libretro.c:525, source libretro/libretro.c:536, source libretro/libretro.c:556, source 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"