Files
libretro/emulators/gam4980.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

75 lines
2.7 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"
upstream_commit: "32c531d3e7159081afd8dee72e8266153821095d"
core_version: "0.2"
version_basis:
kind: file
path: "src/libretro.c"
pattern: 'info->library_version\s+=\s+"([^"]+)'
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: "source 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: "source 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.