When someone brought this to my attention this evening I was a little lost. Apparently Rare had decided to test out the concept of ZX Spectrum emulation the N64 and some left over code and games were found in the GoldenEye Rom.
It isn’t hard to believe, Rare is a UK based company that once developed for the ZX Spectrum which was to the UK as the Commodor 64 was to the US. But you have to wonder why it would be inside the code for GoldenEye and why it was just left there as dead data.
But it wouldn’t be the first time dead data was left in games be it for something in game that the players were never suppose to be able to access after being used once or just as old data of a previous build. But a whole emulator and games; seems kind of sloppy. It would seem that it would just be a bit of chance as GoldenEye was in development while the emulator was being tried and in probably some rush the code was just quickly disabled when the game was ready to be shipped.
There is only one way to get to the emulation and that is by applying a patch to the game since the code is disabled, so most likely for most of us that is by using an N64 emulator. So you have to have a rip of the game, open it in an emulator apply the patch to re-enable to ZX emulator then you can run the emulation in the emulation. Anyone else feeling dizzy now?
Here is a quote from the original post explaining what is going on:
“In actual fact, the emulator was supposed to run without the aid of the monitor program. Critical subroutines were copied out or hardcoded. In its current state, however, the monitor is required.
Originally, the emulator was run much the same way that stages are run. Unlike stages which run by switching to menu 11, the emulator runs by switching to menu 25. When initialized, it reads what buttons are held on controller 3. Depending on the button held is which game would be loaded. From there, the monitor program and selected snapshot file are loaded from ROM, and if necessary these files are decompressed.
Only controller 1 is detected. This is mapped as a Kempston joystick on port 31. Necessary buttons to start each game (usually keyboard ‘0’) and any additional keys to play the game are mapped to the keyboard port 254 halfwords. These are set on a per-game basis, but general controls are A/B to start a game, Z for the ‘action’ button, and L to unload the emulator and return to gameplay.
Each emulation cycle lasts 69888 Spectrum cycles. Each opcode consumes a certain amount of this cycle count. At the end, the screen is drawn to the Spectrum screen buffer, and this is displayed like an image using usual N64 microcode. Emulation continues as long as menu 25 is called.”
There is a lot more going on and to figure out the patch you’ll need to read up on the original post. Here at The Rare Witch Project