mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-31 16:17:19 -05:00
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.
82 lines
3.4 KiB
YAML
82 lines
3.4 KiB
YAML
emulator: piece-emu
|
|
type: libretro
|
|
core_classification: official_port
|
|
source: "https://github.com/autch/piece-emu"
|
|
upstream: "https://github.com/autch/piece-emu"
|
|
profiled_date: "2026-09-17"
|
|
source_commit: "08ec4b45176e8df0d6d6f67e56b87e847cd64a65"
|
|
core_version: "0.1"
|
|
version_basis:
|
|
kind: file
|
|
path: "src/libretro/piece_libretro.cpp"
|
|
pattern: 'info->library_version\s+=\s+"([^"]+)'
|
|
display_name: "Aquaplus - P/ECE (piece-emu)"
|
|
cores:
|
|
- piece
|
|
systems:
|
|
- aquaplus-piece
|
|
|
|
notes: |
|
|
Aquaplus P/ECE emulator (EPSON S1C33209 SoC, S1C33000 CPU core) by
|
|
Autch. The repository ships an SDL3 standalone, a headless runner and
|
|
the libretro core, all built from the same core, soc, board and system
|
|
sources (src/libretro/CMakeLists.txt:17-57).
|
|
|
|
The content is a P/ECE Flash Image (.pfi): a 40-byte PFIHEADER carrying
|
|
the SYSTEMINFO block, then the raw flash contents at the stored offset
|
|
(src/pfi_format.h:22-47). retro_get_system_info sets need_fullpath to
|
|
false, so the frontend hands the file over as a memory blob
|
|
(src/libretro/piece_libretro.cpp:225-233). retro_load_game checks the
|
|
PFI signature and SYSTEMINFO.size == 32, sizes SRAM and flash from
|
|
SYSTEMINFO, copies the flash bytes into an SST39VF flash device and
|
|
starts the CPU at the reset vector read from flash base 0xC00000
|
|
(src/libretro/piece_libretro.cpp:271-362,
|
|
src/debug/pfi_loader_blob.cpp:20-91). The P/ECE kernel, its PFFS file
|
|
system and the installed applications (.pex) all live in that flash
|
|
image. The bus maps internal IRAM, external SRAM, external flash and
|
|
I/O only (src/core/bus.hpp:75-79 and src/core/bus.hpp:239). The core
|
|
carries no embedded boot code, and retro_set_environment registers
|
|
core options and nothing else (src/libretro/piece_libretro.cpp:204-218).
|
|
No environment call asks for the system directory.
|
|
|
|
RETRO_MEMORY_SAVE_RAM exposes the whole flash as a PFI image (original
|
|
header, then the flash bytes, re-copied sector by sector when the
|
|
kernel writes), so the frontend's .srm is itself a bootable .pfi
|
|
(src/libretro/piece_libretro.cpp:334-352, 538-564, 614-624). A stored
|
|
.srm with a valid header replaces the flash on the first frame
|
|
(src/libretro/piece_libretro.cpp:398-420).
|
|
|
|
A .pfi is produced from the official Aquaplus PieceSystem 1.20 updater
|
|
with the bundled mkpfi. mkpfi checks the "Piece Kernel Program"
|
|
signature at offset 8 of all.bin, writes the boot vector 0x00C02004
|
|
into sector 0, leaves sector 1 blank and copies all.bin from sector 2
|
|
(src/tools/mkpfi.c:14, 88-95, 115-135). A fresh image boots to the
|
|
launcher with startup.pex, date.pex and gamepad.pex installed, and games
|
|
are added with pfar.
|
|
|
|
The .info reports display_version 0.3, while the code announces 0.1.
|
|
|
|
files: []
|
|
|
|
platform_details:
|
|
flash_image:
|
|
format: "PFI"
|
|
header_size: 40
|
|
flash_base: "0xC00000"
|
|
sector_size: 4096
|
|
source_ref: "src/pfi_format.h:22-47, src/debug/pfi_loader_blob.cpp:20-91"
|
|
kernel_source:
|
|
name: "PieceSystem 1.20 updater"
|
|
url: "https://aquaplus.jp/piece/dl/update120.exe"
|
|
archive: "LHA self-extracting executable"
|
|
members:
|
|
- path: "piece/update/all.bin"
|
|
size: 516096
|
|
flash: "512 KB factory units"
|
|
command: "mkpfi -512kb piece/update/all.bin piece.pfi"
|
|
- path: "piece/update/2mb/all.bin"
|
|
size: 516096
|
|
flash: "2 MB modified units"
|
|
command: "mkpfi -2mb piece/update/2mb/all.bin piece.pfi"
|
|
source_ref: "src/tools/mkpfi.c:14, 88-95, 115-135"
|