r/EmuDev • • 11h ago

Amber Folio: a targeted 8086/EGA/Tandy emulator for SSI's Gold Box games, checked against real-chip vectors

0 Upvotes

Amber Folio emulates only the PC that SSI's Gold Box games actually touch, and nothing else: an 8086, EGA, the 8253 timer, the PC speaker, the Tandy 1000's SN76489-family sound chip, and the handful of DOS calls the game makes. Pool of Radiance (1988) runs on it unmodified, overlay manager and all. Source, AGPL: https://github.com/amberfolio/amberfolio

Design choices that might interest this sub:

  • CPU conformance. Checked against SingleStepTests/8088 v2: all 323 files, about ten thousand cases each, registers, flags and memory compared after every case. Undefined flags must match bit for bit too, with no masks. Where the Intel manual and the recorded chip disagree, the chip wins.
  • One virtual clock. Nothing reads host time. A run is keys, ticks and state hashes, so sessions replay exactly and are committed as tests, with no game content in them.
  • Enhancements as "seams". CS:IP breakpoints qualified by which overlay is resident, with native handlers. They fail closed: an unknown binary, or an overlay that isn't loaded, means the seam does nothing. With every seam off, a run's machine state is identical to a build with no seam engine at all, checked by recorded pairs in CI.
  • Log, don't fake. An unimplemented instruction or port stops the machine and says where, rather than guessing.
  • Facts, not data. The repo holds addresses, offsets and SHA-256s, never game code, data or a disassembly, with a content guard on every commit.

Hosts: an SDL desktop build (Windows, macOS, Linux, from source) and a WebAssembly build. The web one runs at https://amberfolio.org in desktop browsers and on iPhone, iPad and Android, from your own GOG or Steam copy; the files stay in the browser.

Built with heavy use of AI coding tools (Claude Code, exclusively), and I'd rather say so here than have someone find it. Not affiliated with the games' rights holders.


r/EmuDev • • 7h ago

Question Any meetup around London UK

2 Upvotes

Hi all,

I am creating a product that would be of interest to people playing retro games and by extension to emu devs.

Let’s just say a “modern home computer”, like a c64 but with arm64, tons of ram and a gpu. And crucially, very, very low input lag.

I was wondering if there was an in-person meetup of emu devs around London where I could show it off, talk it through, and get some feedback and help.

I don’t need a lot of people at the moment, just a bunch of technically minded people to have an informal technical conversation with.

If there isn’t such a meetup and anyone of you is curious, please comment and let’s arrange for meeting up. Date and location will be shared via private messages.

Thank you all for your attention 😀


r/EmuDev • • 5h ago

SNES ppu.toys: a SNES PPU + S-DSP model driven by Lua, live in your browser

3 Upvotes

I've been building ppu.toys, a "ShaderToy for the SNES PPU". I posted about this a few weeks ago and I finally finished a video walkthrough of the studio. AI was used extensively when building the website and core wasm emulation.

Watch the walkthrough here: https://youtu.be/4NtyIM-2uLM

This is an emulation of the PPU, the 65816 or SPC700 are not part of the equation. A Lua frame() function writes VRAM/CGRAM/OAM and the PPU registers directly, and per-scanline hooks act like HDMA. The core is headless Rust, compiled to WASM for the browser studio.

How it works:

  • Memory is byte-accurate (word-addressed VRAM, 15-bit CGRAM, OAM). Each frame resolves into a 224-row line table: frame defaults, plus scanline hooks
  • A per-pixel compositor then renders it: priorities, main/sub screens, windows, color math.
  • Supports BG modes 0–4 (with offset-per-tile in 2 and 4) and Mode 7, including EXTBG. OAM evaluation applies the 32-sprite and 34-sliver limits and sets the STAT77 flags.
  • A trace inspector walks any output pixel back through the layers and the compositing decision to the BGR555 value.
  • The S-DSP is ported from ferris's snes-apu. The site features a full sequencer to create loops

I built this as a playground for myself to really stretch the limits of what was possible on these classic graphic chips. Early experiments on exporting ppu.toys creations to ROMs have been incredibly promising, so stay tuned for exciting updates!

I hope you enjoy the site as much as I enjoyed creating it!

Site: https://ppu.toys

Core + CLI: https://github.com/LioraLabs/ppu.toys (cargo install ppu-cli)