Jet Set Willy remake for ZPUino
Author: Alvaro Lopes
Back in mid-80 I was a proud owner of a ZX Spectrum 48K, and one of the games I enjoyed the most (and never managed to finish) was Jet Set Willy.
Recently, while working on ZPUino platform, I thought why not add a VGA adaptor like the one present on speccie? That's what I did indeed, and then I needed something which could use the adaptor, and display something cool. Then I
remembered JSW, and googled for implementations. I found a commented disassembly of the original game and I thought I can remake this in "C", and use the original game art to recreate the original game.
Basically the flow was to read and understand the assembly (for Z80), and implement it in "C" for the ZPUino, while keeping the memory usage low. To do this, all resources (actually the original ROM) were kept on the SPI flash, and I had to be very careful about performance, because unlike the original game which used dual buffering techiques, I had to draw the entire scene during the vertical refresh. Luckly, ZPUino had enough power to do that.
The game consists of several rooms, filled with enemies and objects. The objective of the game is to successfully collect all items in the game so Maria will allow you to go to bed.
The room is displayed on the game area, which is 32x16 blocks (8x8). Lives, time and other information are displayed below this area. Each room consists of several actors and the room design itself.
The guardians are the little fellows that protect the objects from being collected. The guardians can be:
- Normal guardians (horizontal-moving and vertical-moving)
- Arrows (going left or right)
Arcade MegaWing Controls
The game is a remake for the ZPUino softprocessor with integrated ZX Spectrum VGA. a Papilio One 500 with Arcade Megawing is needed to run the game.
The game implementation is not complete - some stuff is missing, like ropes, arrows, entry/exit screens, lifes, Maria and the Toilet. Also no sound implementation was done.
A huge thanks to Matthew Smith & Software Projects, the original author of the game,
J.G.Harston for the commented disassembly, and all Papilio guys for their support.