OpenZXRom

[All OpenZXRom updates]

[OpenZXRom splash screen: 'Open a snapshot, or press enter to load from a tape image']
This is a side project of mine that’s barely started, but I’ve dropped mentions of it in enough places (picking up interested feedback along the way) that it badly needs to get released before it becomes vapourware. Pasting from the readme file:

OpenZXrom is a ROM image for the Sinclair ZX Spectrum computer, created with the aim of being as compatible as possible with Sinclair’s original 16/48K ROM while containing none of the original copyrighted code. It is released under the GNU General Public License.

Update 2006-05-17: New version out. Now emulates enough to play Egghead 4!

Download OpenZXRom 2006-05-17


Basically, Amstrad have been very nice about allowing the Spectrum ROMs to be used in emulators, but a free software licence it ain’t. Having a free software replacement is a good thing for any number of reasons, but the two that have come up so far in the real world are:

  • It will allow people to re-create the Spectrum in hardware (which Amstrad’s grant of permission specifically excludes)
  • If we can get Fuse to no longer depend on a large chunk of proprietary code, it stands a chance of being approved to go into Debian

It’s never going to be a 100% functional replacement for the Sinclair ROM, and it’s not going to be anywhere near that for a long time – but as long as it’s good enough to run the majority of games, that’s a worthwhile result. (Currently there’s not much there at all, other than a text printing routine – but hey, it can run Manic Miner.) It’s also not a proper clean-room implementation, because, let’s face it, anyone with an interest in contributing to this project has seen the Spectrum ROM disassembly already – but it’s all new code, written with different design goals, and will be credibly different enough to keep the lawyers satisfied.

3 Responses to “OpenZXRom”

  1. icabod says:

    I read a little about this on the WOS forums – it’s an interesting idea. With regards game support I guess it would work for generic stuff, and then specific hacks would be required for specific “clusters” of games. One thing that I’d recommend is implementation of a calculator — make sure all those 1k intro’s work correctly.
    I’d be interested in helping out here-and-there, and I actually haven’t looked at the ROM disassembly. I know, wierd isn’t it!
    I’ll post something about this later on raww.org – first up I need breakfast.

  2. matt says:

    Cheers for the raww.org post!

    The calculator isn’t something I’m especially looking forward to (Taylor series… Eep!), but it is a rather essential piece of the jigsaw – one of the most likely things machine code programs will want to tap into. We’ll need some minimal floating-point stuff fairly soon when we get round to reading Basic loaders, to pull out the number from a RANDOMIZE USR line if nothing else.

  3. icabod says:

    With regards the calculator, I managed to find something of interest on the webernet: linky.

Leave a Reply