Files
libretro/emulators/irogb.yml
T
Abdessamad Derraz e7aa9e870b fix: state libretro core versions from their code
Each libretro profile records version_basis and core_version is read
there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba
0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build
takes its version from git carry the nearest tag in describe form
(flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders
copied from .info files (Git, SVN) are replaced by the code's statement,
and a code that states none is null with kind none.
2026-10-27 19:21:27 +01:00

70 lines
3.0 KiB
YAML

emulator: IroGB
type: libretro
core_classification: official_port
source: "https://github.com/AlexSutila/IroGB"
upstream: "https://github.com/AlexSutila/IroGB"
profiled_date: "2026-09-03"
source_commit: "7b6bb9b1f9cbf04e49eea0dc89c54635c2b54056"
core_version: "v1.0.0"
version_basis:
kind: file
path: "src/frontend/libretro/libretro_host.cpp"
pattern: 'info->library_version\s+=\s+"([^"]+)'
display_name: "Nintendo - Game Boy / Color (IroGB)"
cores:
- irogb
systems:
- nintendo-gb
- nintendo-gbc
notes: |
IroGB is a Game Boy and Game Boy Color emulator by Alex Sutila. The
libretro frontend lives in src/frontend/libretro of the same repository
as the SDL3, raylib and Python frontends. The buildbot builds the
repository default branch, release, with cmake -DBUILD_LIBRETRO=ON
-DNO_CORE_FILESYSTEM=ON (.gitlab-ci.yml:10-14).
Boot ROMs are read from the root of the system directory
(src/frontend/libretro/libretro_host.cpp:61-84). The irogb_bios core
option picks the file: dmg opens dmg_boot.bin, cgb opens cgb_boot.bin,
auto (the default) tries cgb_boot.bin then dmg_boot.bin, none opens
nothing (src/frontend/libretro/libretro_host.cpp:86-113). Under auto a
DMG cartridge boots through the CGB boot ROM whenever cgb_boot.bin is
present and gets the CGB colouring of monochrome games. The
irogb_monochrome_dmg option turns that off.
BootROM accepts a file of exactly 256 or 2304 bytes and rejects any
other size (src/memory/boot.cpp:10-24). The size also picks the machine:
a 2304-byte image starts in CGB mode (src/gbc.cpp:330-340). 256 bytes
covers DMG, DMG0, MGB and SGB dumps, 2304 bytes CGB, CGB0, AGB0 and AGB
dumps (includes/memory/boot.hpp:9-30). Only the two names above are
ever opened. No hash is checked.
Without a boot ROM, or when the file fails to open or has another size,
the core continues with skip_bios(), which loads post-boot CPU and MMIO
values, unmaps the boot ROM and sets CGB mode from the cartridge header
(src/gbc.cpp:342-349, src/gbc.cpp:387-405, src/gbc.cpp:489-490).
The .info declares cgb_bios.bin, but the code opens cgb_boot.bin.
files:
- name: "dmg_boot.bin"
system: nintendo-gb
description: "Game Boy (DMG) boot ROM"
required: false
hle_fallback: true
size: 256
validation: [size]
source_ref: "src/frontend/libretro/libretro_host.cpp:91, src/frontend/libretro/libretro_host.cpp:106, src/frontend/libretro/libretro_host.cpp:61-84, src/memory/boot.cpp:10-24"
note: "Opened with irogb_bios set to dmg, or to auto when cgb_boot.bin is absent."
- name: "cgb_boot.bin"
system: nintendo-gbc
description: "Game Boy Color (CGB) boot ROM"
required: false
hle_fallback: true
size: 2304
validation: [size]
source_ref: "src/frontend/libretro/libretro_host.cpp:97, src/frontend/libretro/libretro_host.cpp:104, src/frontend/libretro/libretro_host.cpp:61-84, src/memory/boot.cpp:10-24, src/gbc.cpp:330-340"
note: "Opened with irogb_bios set to cgb or auto. Under auto it also boots DMG cartridges in CGB mode."