MaRS232
Oh no, more silly nonsense. It was created for CSSCGC 2022.
MaRS232.MDR updated!
This "game" is designed for two ZX Spectrum machines each equipped with an Interface 1 and connected by RS232 link, with one Microdrive between them. (It was conceived to use the proprietary Sinclair Net protocol but alas that's not readily emulable so RS232 will have to do instead). We can emulate it using Fuse's IF1 and RS232 implementation*.
Loading the game
Here's the macOS zsh script I use to launch two instances of Fuse and connect them via a FIFO to simulate an RS232 link:
#!/bin/zsh
mkfifo fuse.rx fuse.tx
fuse --machine 48 --interface1 --microdrive-file MaRS232.MDR --rs232-tx fuse.rx --rs232-rx fuse.tx &
fuse --machine 128 --interface1 --rs232-tx fuse.tx --rs232-rx fuse.rx
rm fuse.rx
rm fuse.tx
I've used a 48K and a 128K here just to tell them apart a bit more easily, but it would work just as well with two 48Ks. 16K isn't supported becuase of the memory needed to store and transfer the SCREEN$
. I'm not sure about other RS232 interfaces, but they should work if compatible with the Interface 1. ZX Spectrum +2A and +3 are not supported.
Note Fuse doesn’t come with an Interface 1 ROM so you'll need to acquire that first. (Thanks to Andy for reminding me of this!) Either v1 or v2 should be fine, drop it into the same place Fuse keeps all its other ROMs. It should be named if1-2.rom.
- On the 48K Spectrum (which should have the Microdrive attached and the cartridge inserted) hit R for RUN then press ENTER
- Over on the 128K, drop into 128 BASIC and type
LOAD *"b"
then press ENTER. (You shouldn't need to interact directly with this Spectrum again, but the display must be visible). - The two should communicate (borders should flicker black and white).
- You will be asked whether you are using real hardware or not (i.e. emulation). It just corrects for key-repeat delay really. Enter n for "no" or any other key for yes.
- The 48K Spectrum is Mission Control. This Fuse window should have focus. Keystrokes will be automatically transmitted to the other Spectrum.
- The 128K Spectrum is the Mars rover, it will await commands and display information on the screen.
- Please note: interplanetary communication is hard! I bet even NASA need to turn it off and back on again sometimes. If the Mission Control jams up, just BREAK into the program and RUN it again. This is a fun ACCURATE SIMULATION meta-minigame and NOT a BUG.
* It's not quite the same as a real Interface 1 RS232 connection (it seems to do some buffering for example) so you'll be asked whether you are using real hardware or not, which just introduces a delay as a simple way to debounce the keystrokes before they are transmitted. My original solution to this was to wait for an ACK byte to be sent back from the remote Spectrum. This worked under emulation but not on the real devices. Gah! Hence the ugly option of just asking you at the start.
Playing the game
- The objective is to survive the harsh Martian atmosphere and move around collecting samples.
- Once the rover has
loadedlanded, it will await an initialisation command. (Press any key on Mission Control). - Just like at NASA, the keys Q, A, O and P are used to control the rover's movments. Moving uses a small amount of energy.
- The rover is equipped with a SOLAR PANEL and rechargeable BATTERY, as well as a HEATER to ward off the extremely low temperatures, especially at night.
- When the rover's battery is low, press S to deploy the solar panels. Of course, they are only effective during daytime.
- The rover CANNOT MOVE while the panels are deployed.
- When night falls, consider activating the HEATER by pressing H. But keep an eye on the BATTERY LEVEL!
- Movement is possible while the heater is on, but consumes lots of power.
- Manoeuvre the rover so that its ROBOTIC ARM is close to the rock sample and press C to collect.
- If the rover's battery is completely depleted, or the unit becomes damaged by getting too cold, then it's GAME OVER.
Demonstration
Thanks to the Library of PCG Clip Art - Disc 30 for the rocket graphic.
Yon wee robot is from inspired by Alien 8.
Wiring diagram
Note this is not a standard DE-9 null modem.
An RS232 cable is available from Sinclair Research. For details of how to obtain this cable, see the software and peripherals catalogue included with the ZX Interface 1. Alternatively you can wire up your own cable follows: