The story of creating a network game on the ZX Spectrum


    Quake on an emulator without a second ZX Spectrum connected

    The first full-fledged network game on the ZX Spectrum. It works on any two clones speccy 48kb of memory or more, with the presence of an AY-3-8910 or YM2149F coprocessor. Since few people know that at speccy it was possible to do such things, I would slightly reveal the secret of creating this game.

    In 2003, a summer day, raking a fresh downloaded folder. I came across a new number AlcoNews # 17, there was an interesting article about connecting two Spectrum via AY-3-8910 that the most important thing was that it was very simple 3 wiring and two Spectrum. Bugsy was just modding speccy at that time. Due to such a combination of circumstances, we immediately decided to do this revision on our zs scorpion 256kb.

    As an application, AlcoNews had a program demonstrating the operation of this network, but, unfortunately, it was not working (it turned out that there was a broken archive). I immediately started trying to look for a problem in the hardware to test the ports, but it turned out that they were fully working and then the next step was to make a simple bit transfer with the interrupt disabled.

    Then there was a study of the features of these ports in different states of the computer. With the help of them, it was possible to find out the status of the computer: on, off, unexpected disconnection, termination of transmission.

    A driver was written that could itself determine who it is the Master or Slave on which the transmission is started, and complete synchronization and transfer of bytes was also done. And it was possible to turn on turbo mode on one computer, but not on the second. The transfer was still successful. The driver call was made very simple. The same ldir only in place of it calls the driver function. Then I tried to transfer memory blocks, the Spectrum screen was transmitted faster than on a tape recorder.

    Having played enough with the data transfer, I wrote a simple chat. You could enter text and send it to another computer. Later I finalized it, added text coloring and switching the language layout there. I inserted it into the game as a separate option (for some reason, then it did not occur to me to insert it into the game process)

    At first there was an attempt to make the game a maze, where it was necessary to run to the exit faster than the opponent. But it seemed to me that it would be too simple. Just at the same time I was playing Quake 3 arena. And the idea came by itself, why not make Quake in 2D (Now this idea is extremely popular, make popular 2D games on mobile devices). The game turned out to be almost all the interesting features of this Quake selection of skin`s, maps, as well as the limits of the round. By the way, in the game, 3 bytes are transmitted all the time to each computer: X, Y and the player’s action.

    Then I wanted the people to see the game as much as possible, so the system requirements were the most minimal ZX Spectrum 48kb and AY-3-8910 coprocessor. But, unfortunately, no one saw it on real Spectrum, and naturally this was not supported in the emulator.

    Also popular now: