9

I want to make a surprise for my father.

Back in the 80s my father made a game for a custom clone (called Santaka) of the ZX Spectrum. I have all the digital files needed for it to work, but I'm hitting my head against the wall at this point.

I want to do a three part project:

  1. Make a cross-platform port of his game for modern PC systems
  2. (optional) enchance sprites/graphics a bit
  3. (probably not that realistic) build a RPi based custom arcade machine with a legit CRT to play the game

The problems I encountered so far are:

  • Most of the open source emulators don't support non-ASCII character encoding so some letters look garbled
  • The most important bug: the loading screen... When I start the game on any emulator it just gets stuck on the loading screen which is saying to remove the magnetic tape. Any idea how to do that? No emulators I tried seem to have this functionality.

For that I want to achieve the following:

  • Extract the source code (yes I've already asked he doesn't have it anymore or it's really hard to find).
  • Extract the sprites etc
  • Possibly enhance the game logic
  • Port and compile it for Windows and Linux

Any leads would be appreciated and would make a great birthday present for my dad ^^

Any CPU manuals, anything would be appreciated. I work in IT and used to work as a developer so this task is definitely doable.

UPDATE

I managed to go thru the loading screen on the FUSE emulator by waiting around one minute.

I also managed to extract 9998 lines of BASIC code.

8
  • 7
    It sounds like easiest to customize an existing emulator with differences that make the code run like it ran on the custom clone hardware.
    – Justme
    Commented May 31, 2023 at 20:24
  • 4
    To me it seems to be less work to find a capable emulator for the original game than to port the source into the modern world. However, I feel your desire of possible enhancements. -- Anyway, I have no idea what you want from us. Searching and testing emulators is your task, searching documentation is also an easy task for you as it is wide-spread, and for any obstacle you mention we miss relevant information. You might rather tackle each of them in separate questions. Commented Jun 1, 2023 at 6:04
  • 1
    Re: "remove the magnetic tape", there is no way for a Spectrum to detect the presence or absence of a tape that is not playing or has already reached its end. Are you sure that isn't just a "please stop the tape"-type message to confirm that the software is loaded, and it's actually just sitting there waiting for a keypress or something like that?
    – Tommy
    Commented Jun 1, 2023 at 17:25
  • 2
    What about getting him on board with what you have now, and finish it together. It might be a great shared experience! Commented Jun 1, 2023 at 20:58
  • 1
    There's an Australian guy with a YouTube channel who seems to have a collection of Eastern Bloc Speccy clones including a Santaka 002 which he did a video on eight months ago. Apparently the machine has a bunch of ROMs. Commented Jun 2, 2023 at 2:52

3 Answers 3

3

Just some thoughts:

  1. To decompile the game, you could use IDA Pro (if you could manage to buy a copy, you get me :) or Ghidra. They both support Z80.

  2. You can enhance graphics without changing the gameplay or game code. Look for Spec256 emulator and its graphics mode. In short, it is equivalent of 8 simulataneously running emulated ZX Spectrums, each having the same control code and data, but different graphics data. The resulting 256-colors mode is made by combining 8 1-bit 6144 screens of the emulated Spectrums.

  3. Regarding porting: you can just bundle an emulator with the emulated game into a single executable.

  4. Fixing non-loading game: you probably need to trace the error cause by converting the sound tape to (for example) .tzx format and then step through the code (i.e. debug it) to find the cause. Any decent emulator is able to debug ZX Spectrum code it runs.

7
  • It is clear from some of the comments that the game is written in BASIC. Commented Jun 1, 2023 at 7:57
  • Lots of useful info, appreciate it! How do I do the 3rd point? I managed to "boot" the game by simply waiting around 1min Commented Jun 1, 2023 at 15:58
  • Also which data format do I need to decompile? z80, TAP? Commented Jun 1, 2023 at 16:00
  • p.3: You take the emulator (in source code) and bundle it with (for example) a snapshot file, and change the init code not to look for external input/arguments to load anything or run vanilla basic ROM, but to directly perform load of a snapshot and run it. Alternatively, you attache .tap file inside and make it auto-boot (force emulator to type automatically the venerable LOAD ""<enter>).
    – lvd
    Commented Jun 1, 2023 at 16:31
  • p.1: The general idea here is to load the code in the emulated Spectrum memory, then set a breakpoint at the code start. At that point, you dump the memory contents off the emulator, remembering its absolute position and then disasm it. However, if your game is indeed basic-only, disassembly won't help you a bit.
    – lvd
    Commented Jun 1, 2023 at 16:33
3

Most/all of the requirements you describe can be done using a ZX Spectrum Next, an existing and manufactured product.

It has the Spectrum compatibility and hardware sprites you want, using an FPGA to do it all. The Accelerated model contains a Raspberry Pi Zero as a co-processor, which you also mention. And it's all boxed and ready to develop on, in a ZX Spectrum+ style case. Just depends if the price is within your budget.

enter image description here

6
  • I would still need to fit the encoding apparently and I apparently don't have the ROM of the Santaka and it's already thrown away since it had (some probably repairable) damage to it later on Commented Jun 1, 2023 at 15:59
  • 1
    @SirMuffington, you'll have to find the Santaka ROM for whatever solution you use. Having found it, you can use this machine as a platform. Everything on it is reprogrammable, including what would have been a ROM in the old machines.
    – TonyM
    Commented Jun 1, 2023 at 22:27
  • Didn't manage to find a ROM online :/ and it's a hard to get item nowadays... Commented Jun 5, 2023 at 17:07
  • @SirMuffington, then without a Santaka ROM image file, or even a physical Santaka ROM IC to copy, isn't the whole project dead in the water? Whether you make, buy or simulate a computer, no ROM means no project, right?
    – TonyM
    Commented Jun 5, 2023 at 21:54
  • not quite. The game may be written for the original Santaka, which is a ZX Spectrum 48K+ (which itself is just repackaged ZX Spectrum 48K btw) clone with additional functionality added it seems, but it's still possible to port it to the nearest neighbour ZX Spectrum 48K by removing the special characters and rewriting some logic. I'm down to like 5 errors already in the zxbasic compiler ^^ Commented Jun 6, 2023 at 17:31
1

You state in a comment that you have extracted the BASIC source code for the programme. Assuming that the Santaka used the Sinclair Basic interpreter, you might be able to transfer these source code files to a modern Windows PC and run them in an interpreter such as https://github.com/ZXDunny/SpecBAS

If this is successful, you might try to set up a Raspberry PI with a similar interpreter.

As pointed out by others, it would be easier to just use an emulator.

2
  • 1
    Appreciate it, I will try it out! Commented Jun 1, 2023 at 16:03
  • Loading the file doesn't work, it simply sees no files, pasted in the BASIC code, it does not run - no errors, nothing :/ Commented Jun 2, 2023 at 15:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .