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

67 lines
2.6 KiB
YAML

emulator: PD777
type: libretro
core_classification: community_fork
source: "https://github.com/mittonk/PD777"
upstream: "https://github.com/W88DodPECuThLOl/PD777"
profiled_date: "2026-03-24"
source_commit: "331af5f53cc0ffbab90f915681c8dfe3a4cda0a2"
core_version: "1.01.01"
version_basis:
kind: file
path: "source/libretro/libretro.cpp"
pattern: 'library_version\s*=\s*"([^"]+)"'
display_name: "Epoch - Cassette Vision (PD777)"
cores:
- pd777
systems:
- epochcv
notes: |
PD777 is an Epoch Cassette Vision emulator (NEC uPD777C CPU), by
W88DodPECuThLOl. Libretro port by Ken Mitton (mittonk).
No BIOS or firmware files required. The .info file declares firmware_count = 0.
Game loading in source/libretro/libretro.cpp:retro_load_game() (line 404-532).
The core loads a code ROM file (.bin777) directly from the content path, then
attempts to load a pattern ROM file (.ptn777) by replacing the extension.
If neither file is found, the core falls back to hardcoded ROM data compiled
from source/core/rom.cpp (Battle Vader program + pattern ROM dumps from
oguchi-rd.com).
The code ROM supports three formats:
- Raw order: exactly 0xF00 bytes, program words in sequential address order
- Raw address: address/data pairs (compiled-in rawRom[] array)
- Formatted: header starting with "_CassetteVision_000" magic, version 0 or 1,
includes key mapping, title, and code section at offset 0x100
The pattern ROM supports three formats:
- Formatted: 0x340 bytes, header "*CassetteVision*0000", 7x7 + 8x7 CG patterns
- Raw bitstream: 0x4D0 bytes, bit-packed 7x7 and 8x7 character patterns
- Built-in: fallback to patternRom[] / patternRom8[] arrays in rom.cpp
The system directory path is retrieved via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
but is not used for any file loading.
Game identification uses a checksum over the loaded ROM to detect known cassettes
(Battle Vader, Galaxian, etc.) and apply per-game key mappings and bent character
tables. 11 cassette IDs are recognized (1-9, 11, 12).
Supported extensions: zip, bin777, ptn777.
files: []
platform_details:
cpu: "NEC uPD777C (uPD774 variant)"
system: "Epoch Cassette Vision (1981)"
region: "Japan"
notes: |
The Cassette Vision uses a NEC uPD777C (or uPD774 variant) as its main
processor. Program ROM and pattern/character ROM are per-cartridge, not
system-level. There is no system BIOS - the CPU executes directly from
the cartridge ROM.
The emulator supports analog paddles (4 paddles mapped to 2 analog sticks),
lever switches, push buttons, course switch, and a lightgun peripheral.