⬆️ ⬇️

The history of the creation of a network game on the ZX Spectrum



Quake on the emulator without a second connected ZX Spectrum


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



In 2003, a summer day, raking fresh folder downloaded. I Stumbled upon the new AlcoNews number # 17, there was an interesting article about connecting two Spectra through AY-3-8910 that the most important thing was that it was very simple 3 wiring and two Spectrum. At the time, Bugsy was in charge of modding speccy. By this coincidence, we immediately decided to make this refinement on our zs scorpion 256kb.



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



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

')

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



Having played enough with the transfer of data, wrote a simple chat. You could enter text and send to another computer. In consequence, I finalized it, added text coloring and switching language layouts there. Pasted it into the game as a separate option (for some reason it did not occur to insert it into the gameplay)



At first there was an attempt to make a game of the maze, where it was necessary to reach the exit faster than the opponent. But it seemed to me that it would be too easy. Just at that 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, to make popular 2D games on mobile devices). The game turned out to be almost all the interesting features of this Quake selection of skins, maps, as well as the limits of the round. In the game, by the way, all the time is transmitted by 3 bytes to each computer: X, Y and the player's action.



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

Source: https://habr.com/ru/post/126542/



All Articles