Files
libretro/emulators/gam4980.yml
T
Abdessamad Derraz d42236fc84 fix: cite the gam4980 fork at the revision pinned
The refs described upstream's libretro.c while source_commit named the fork, where the loader moved to src/ and a missing ROM now shuts the core down cleanly. A bump no longer advances a pin no ref resolves in.
2026-10-18 19:32:14 +02:00

70 lines
2.5 KiB
YAML

emulator: GAM4980
type: libretro
core_classification: pure_libretro
source: "https://github.com/ThisBoringWorld/gam4980"
upstream: "https://codeberg.org/iyzsong/gam4980"
profiled_date: "2026-03-23"
source_commit: "eeaa531b55e7127ab4b5e0bdc5ceba686df59c6a"
core_version: "0.2"
display_name: "GAM4980"
cores:
- gam4980
systems:
- bbk-longman-4980
# GAM4980 emulates the BBK Longman 4980 (A4980/A4988) electronic dictionary.
# Original code from https://codeberg.org/iyzsong/gam4980, based on the
# BA4988 BBK simulator by Wuyun. Uses a 6502-based CPU with banked ROM access.
#
# ROM loading (src/libretro.c:707-746, sys_init):
# Opens romdir/8.BIN and reads 0x200000 bytes (2 MB) into sys.rom_8 (font ROM).
# Opens romdir/E.BIN and reads 0x200000 bytes (2 MB) into sys.rom_e (OS ROM).
# A missing file shows "GAM4980: Missing 8.BIN" (or E.BIN) and the core
# shuts down through RETRO_ENVIRONMENT_SHUTDOWN.
#
# Memory map (src/libretro.c:109-110, 302-305):
# 0x800000-0x9FFFFF rom_8 (font ROM, 8.BIN)
# 0xE00000-0xFFFFFF rom_e (OS ROM, E.BIN)
#
# No hash validation. No size validation. The .info declares firmware_count=0.
notes: |
Place 8.BIN and E.BIN in the RetroArch system/gam4980/ subdirectory.
Both files must be 2 MB dumps from a BBK Longman 4980 dictionary:
8.BIN - font ROM, dumped from address range 0x800000-0x9FFFFF
E.BIN - OS ROM, dumped from address range 0xE00000-0xFFFFFF
Game files use the .gam extension.
files:
- name: "gam4980/8.BIN"
size: 2097152
required: true
system: bbk-longman-4980
note: "Font ROM (2 MB). Loaded at 0x800000."
source_ref: "src/libretro.c:730-737"
- name: "gam4980/E.BIN"
size: 2097152
required: true
system: bbk-longman-4980
note: "OS ROM (2 MB). Loaded at 0xE00000."
source_ref: "src/libretro.c:739-746"
platform_details:
bios_mapping:
target: "0x800000-0x9FFFFF (font), 0xE00000-0xFFFFFF (OS) in banked address space"
source_ref: "src/libretro.c:109-110, 302-305"
note: |
sys.rom_8 and sys.rom_e are flat 2 MB arrays. The CPU accesses them
through bank-switched memory (PA() macro resolves virtual to physical
address). rom_8_vread and rom_e_vread handle indirect reads via
the banking system.
load_path:
source_ref: "src/libretro.c:1193-1197"
note: |
retro_init() builds the path as {system_directory}/gam4980/ and
passes it to sys_init(). Files must be named exactly 8.BIN and
E.BIN (case sensitive on Linux). No .info firmware declarations
exist, so RetroArch won't warn about missing files at scan time.