Amber Folio is an emulator of just the hardware SSI's Gold Box games touch: an 8086, EGA, the 8253 timer, the PC speaker and the Tandy 1000's sound chip, plus the handful of DOS calls the games make. It's C++ compiled to WebAssembly (about 250 KB), and it also builds natively for Windows, macOS and Linux from source (no installers yet). Pool of Radiance (1988) runs on it unchanged, overlay manager and all.
A few details this crowd might like:
- CPU conformance: checked against the SingleStepTests 8088 vectors, recorded from a real chip. 323 files, flags compared bit for bit, undefined flags included, no masks.
- Virtual time: nothing reads the host clock, so a run is keys, ticks and state hashes. Recorded sessions hold no game content and are checked against each other in CI on every push.
- Enhancements as breakpoints: the extras (an automap, the printed journal on the game's own screen, a heal-in-camp command) hang off CS:IP addresses qualified by which overlay is resident, with native handlers. With every one switched off, a run's state hash must equal a build with no enhancement engine at all. That's a CI test, not a promise.
- Screen text: the core reads its own screen back as characters by matching 8×8 cells against the game's font, read out of its memory, so no font is shipped. The site uses it for screen-reader support: menus, lists and messages, not pictures, so the game can't be played without sight through it.
No game files, anywhere. The repo holds only facts (addresses, offsets, lengths, SHA-256s), with a content guard in CI. To play, you bring your own GOG or Steam copy (Forgotten Realms: The Archives – Collection Two); in the browser the files stay in local storage and are never uploaded. It runs in desktop browsers and on iPhone, iPad and Android, by keyboard or with a controller the browser recognises as standard (no remapping yet).
I built it with heavy use of AI coding tools, which is much of why the checking is tests rather than trust. Happy to go into any of it, and I'd like to hear how others here test timing-sensitive code without a wall clock.
Not affiliated with the rights holders of Pool of Radiance or the Gold Box games.
Sorry, I missed this one. The emulator is made for the GOG and Steam releases and recognises them by fingerprint. If your CD's copy of Pool of Radiance has the same files, it's recognised as that and everything works. If not, the player offers to play it anyway, but without the enhancements, the automap included: each one is a set of addresses in one particular release, so it can't be offered on a copy it doesn't know.
Since then, 1.0 is out, the emulator's first full release, still AGPL-3.0. And on self-hosting, which you asked earlier: the release carries the web host as well as the emulator, for a page that wants to run it, with every file's sha256 in a manifest. The amberfolio.org site itself isn't open source.
As ever: your own copy, which stays in your browser; built with heavy use of AI coding tools; not affiliated with the rights holders.