Files
libretro/emulators/geargrafx.yml
T
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +02:00

93 lines
4.1 KiB
YAML

emulator: Geargrafx
type: libretro
core_classification: official_port
source: "https://github.com/drhelius/Geargrafx"
upstream: "https://github.com/drhelius/Geargrafx"
profiled_date: "2026-03-23"
source_commit: "b6a81478b54e27af7076b57fd6a8974a1c3f7137"
core_version: "1.6.0"
display_name: "NEC - PC Engine / SuperGrafx / CD (Geargrafx)"
cores:
- geargrafx
systems:
- nec-pc-engine
- nec-supergrafx
- nec-pc-engine-cd
notes: |
Geargrafx is a PC Engine / TurboGrafx-16 / SuperGrafx / CD-ROM emulator by
Ignacio Sanchez (drhelius). HuCard games run without BIOS.
CD-ROM games require a System Card BIOS from the system directory. The core
option "geargrafx_cdrom_bios" selects which card: Auto (default, maps to
syscard3.pce), System Card 1, System Card 2, System Card 3, or Game Express.
load_bios() in libretro.cpp builds "{system_directory}/{filename}" and calls
core->LoadBios(path, true) for the syscard, then always attempts to load
gexpress.pce via core->LoadBios(path, false).
LoadBios() in media.cpp reads the file, strips a 512-byte header if present,
computes CRC32, and checks it against k_game_database entries flagged with
GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS. If the CRC32 is not
found, the BIOS is marked as "Unknown" and invalid, but loading still proceeds.
Size is checked against expected constants and logged if wrong, but not enforced.
Game Express CD-ROM games are auto-detected via CRC32 lookup in game_db.h
(GG_GAMEDB_GAME_EXPRESS flag). Arcade Card games are also detected from
game_db.h and enable extra 0x30000 bytes of Card RAM for Super CD-ROM mode.
files:
- name: "syscard3.pce"
description: "Super CD-ROM System Card 3.0"
size: 262144
required: true
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:608, platforms/libretro/libretro.cpp:623-625, src/media.cpp:387-484, src/defines.h:52, src/game_db.h:50, src/game_db.h:53"
note: >
Default BIOS for CD-ROM games (cdrom_bios Auto or System Card 3).
game_db.h recognizes Japan (CRC32 6D9A73EF) and USA (CRC32 2B5B75FE)
variants under the same filename.
- name: "syscard2.pce"
description: "CD-ROM System Card 2.0"
size: 262144
required: false
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:607, platforms/libretro/libretro.cpp:617-618, src/media.cpp:387-484, src/game_db.h:48-49, src/game_db.h:52"
note: >
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h
recognizes three variants: v2.0 Japan (CRC32 52520BC6), v2.1 Japan
(CRC32 283B74E0), and USA (CRC32 FF2A5EC3).
- name: "syscard1.pce"
description: "CD-ROM System Card 1.0 (Japan)"
size: 262144
required: false
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:606, platforms/libretro/libretro.cpp:614-615, src/media.cpp:387-484, src/game_db.h:47"
note: >
cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only.
CRC32 3F9F95A4.
- name: "gexpress.pce"
description: "Game Express CD Card"
size: 32768
required: false
validation: [size, crc32]
source_ref: "platforms/libretro/libretro.cpp:609, platforms/libretro/libretro.cpp:609-610, platforms/libretro/libretro.cpp:508-509, src/media.cpp:387-484, src/defines.h:53, src/game_db.h:54-55"
note: >
Always loaded alongside the selected System Card BIOS (platforms/libretro/libretro.cpp:642).
Required for Game Express CD-ROM titles. game_db.h recognizes Blue Version
(CRC32 51A12D90) and Green Version (CRC32 16AAF05A).
valid_bios_crc32:
syscard:
- { crc32: "3F9F95A4", name: "CD-ROM System Card 1.0 (J)" }
- { crc32: "52520BC6", name: "CD-ROM System Card 2.0 (J)" }
- { crc32: "283B74E0", name: "CD-ROM System Card 2.1 (J)" }
- { crc32: "6D9A73EF", name: "Super CD-ROM System 3.0 (J)" }
- { crc32: "FF2A5EC3", name: "TurboGrafx CD System Card 2.0 (USA)" }
- { crc32: "2B5B75FE", name: "TurboGrafx CD Super System 3.0 (USA)" }
game_express:
- { crc32: "51A12D90", name: "Game Express Card Blue Version (J)" }
- { crc32: "16AAF05A", name: "Game Express Card Green Version (J)" }