Emulators¶
One file per emulator, holding what was found out about it on this device and what was concluded: how it presents frames, how it is paced, where its threads run, what was measured, and what is still open. The aim is that nobody has to re-derive a decision, and that a later change can be checked against the numbers that justified the current one.
| Emulator | Systems | File |
|---|---|---|
| ARMSX2 (libretro) | PS2 | ARMSX2.md |
| NeoCD (libretro) | Neo Geo CD | NeoCD.md |
| SwanStation (libretro) | PlayStation | SwanStation.md |
Each file keeps these sections, leaving out what does not apply:
- What runs: package, version, patches, frontend.
- Presentation: swapchain or not, how a frame reaches the panel.
- Pacing: what clock drives emulation, queue depths, latency.
- Audio: buffers, what is latency and what is only capacity.
- CPU and core mapping: which thread runs where and why, and the
coremap-checklayout that tests it. - Settings and why: every non-default we force, with its reason.
- Measurements: date, build, game, settings, result. Append, do not rewrite.
- Open questions.
Per-disc core options use the serial read by ps-chd-id from a CHD.
runemu.sh merges /usr/config/games/<system>/<serial>.opt into a session
copy of the global core options. A file at
/storage/.config/games/<system>/<serial>.opt replaces the shipped override;
an empty file disables it. The global options stay unchanged. Metal Slug 2
uses neocd/NGCD-00241.opt to set its 68000 to 150%.
The core layout of the SoC that every mapping refers to is in ../CPU_ISOLATION.md.