What we build to read the cartridges, released as open-source libraries — each with a page to try it in the browser.
The 2A03 APU in TypeScript: register writes in, samples out. Turn the chip on and flip its bits by hand — every control here is a bit of a real register.