The emulator behind amberfolio.org is AGPL-3.0. It emulates only what SSI's Gold Box games need (an 8086, EGA, the timer, the PC speaker and the Tandy sound chip) and runs the original Pool of Radiance unchanged: natively on Windows, macOS and Linux, built from source, or as WebAssembly in a browser.

Where the lines are:

  • The emulator is open source; the website is not. Every page on the site that runs the emulator links to the exact source commit it was built from.
  • No game is included. The repository holds only facts about the program (addresses, offsets, SHA-256s), with a content guard in CI. Players bring their own GOG or Steam copy, which never leaves their browser.
  • Every enhancement switches off. The automap, the game's printed journal on its own screen and the rest are optional; with them all off, CI checks that a run ends in exactly the same machine state as a build without them. The site also reads the game's text to a screen reader, though not its pictures, so the game can't be played without sight through it.

It was built with heavy use of AI coding tools, and the whole history is public. Desktop browsers, iPhone, iPad and Android; a controller with the usual layout works, without remapping yet. Questions about the licensing split, or the code, are welcome.

Not affiliated with the rights holders of Pool of Radiance or the Gold Box games.

 

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.