DONKEY KONG =========== Some time ago, there was a discussion here about a possible Donkey Kong for the Spectrum, which would be better than the ugly official Ocean version from 1986. There were some attempts to improve it, for example the Arcade Edition from 2019 with partially redrawn and recoloured graphics. There was also a new Retro-Sanctuary's version from 2017 made in AGD, a bit simpler. Then Highrise started to make his version, and later also Bubu. Both versions looked promising, but they were unfinished at the time. I started to make some graphics based on the original arcade version for Bubu, but finally he was busy with other great Spectrum arcade conversions and it turned out that Highrise too. Which I understand, mainly after making my own game, because it's very difficult and time demanding and I probably couldn't make multiple games at the same time. So in 2022, I decided to add a game to my graphics to make my own version. About a year earlier, I started to learn the Spectrum assembler and to make some vector graphics, but I thought it would be nice to make also something similar to famous Spectrum games. I stopped working on my vector game and I tried to learn and figure out how to make a sprite based game. By the way, making the 3D vector system was easier. It bothered me a bit that all Spectrum Donkey Kong attempts looked like typical Spectrum games, because they used 1-bit graphics on coloured background, and usually there was a massive colour clash which spoiled mainly the first stage. I didn't want to use sprites coloured by a background, or a background coloured by sprites, or 8 pixels movement, or a thick black border. Moreover, I wanted all sprites masked (including the monkey), with additional pixel and colour masks (which change in every frame), some sprites with more colours (Mario, springs), some of them filled with other colours (barrels on ladders, fires) and some with non-Spectrum colours (orange or blue-violet fire parts). I also remember a discussion about whether the girders should be red or purple, so I mixed both colours. And at least 12 sprites on the screen at the same time, plus the animated monkey in front of the background and behind sprites, plus the burning barrel in front of sprites, plus the banging hammer, plus moving ladders and belt pointers, plus the beeper sound, and all this at the same time in 25 frames per second. And all four stages with the same graphics, size, speed and behaviour as the arcade version - on the Spectrum 48K. Yes, a completely crazy idea, but what do I know about making games. All graphics were made in Art Studio, converted to various formats using several Basic programs, the assembler program was written in a simple text editor and compiled using Pasmo. Since I had no previous experience with this type of game, I had no reasonable plan and it's probably not surprising that I had problems to put everything in the Spectrum 48K's memory. So, I had to change some faster and longer program parts to slower and shorter parts, I had to use some already used parts as parts of other parts, and to put several things to the background buffer, which is erased when the main game starts, so we can see them only in the introduction. I was thinking about some kind of compression, but I didn't know how it would work during the game, so I didn't use it at all. The game uses a graphic system which is a bit crazy and it depends on computer timings, so the program detects the Spectrum type and make different adjustments automatically for every type of Spectrum or its clone, otherwise sprites could flicker. It should detect and adapt it for the english and swedish Spectrum 48K, english, spanish and arabic Spectrum +, english and spanish 128K, english, spanish, french and arabic +2, english, spanish and arabic +2A, +2B, +2E, english and spanish +3, +3E, Timex TC 2048, Pentagon, Scorpion, Didaktik M and Kompakt, Spectrum 48K NTSC, brazilian and argentinian TK90X and TK95, Leningrad, Vesta IK-30, HC-91, BK-001, Dubna and Inves Spectrum +. It works, only the Inves Spectrum + does some strange video memory corruption (I don't know why). I also learned how to make a simple raster multicolour effect for the title screen, which should work on the same computer types. I don't know if machines like Harlequin, Sam Coupé, ATM Turbo, Orel BK-08, Spectrum Next, Timex TC 2048 NTSC etc. have different timings, because either I haven't been able to test the game it their emulators, or I haven't figured out how to detect them. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- Good news! I read the previous discussion, reorganized several parts of the program and managed to do some improvements: In the "HOW HIGH" screen before every stage, there is the correct monkey picture and the correct font now. Therefore this screen is no longer needed in the introduction. I also corrected two little graphical errors, which I couldn't repair earlier. There is still one little error, but I have no more free memory. Maybe later. One of the main criticisms of this game was that it was too easy. Therefore, there are two gameplay changes now. In the third stage, the lifts are faster in level 2 and above. During the first several levels, the fires and the ghosts are a little faster in each subsequent level. Together with the gradually accelerating addition of barrels, fires, springs, and ghosts from the previous version, I hope the game is already hard enough in higher levels. I have several other ideas, but I would need some free memory. Maybe later. The second criticisms was the beeper sound. I personally like it and it was quite amusing to do. Making pulse-width modulation, sound volume and noise using the speaker vibrations, and tuning tones using a musical tuner has its charm. But now, there is a new possibility to turn on AY sound. It should work on every Spectrum type and clone with the AY sound chip, not only on Spectrum 128K. It is still a Spectrum 48K game, so Spectrum 48K with an external AY (Melodik, ZX-AY etc.) is enough. Several days ago, I made another change, so now it should also work with Fuller Box and DK'Tronics 3-Channel Sound Unit. If the program detects the AY chip (128K etc., Melodik etc., Fuller, DK'Tronics), it automatically selects AY sound (and changes ports for Fuller and DK'Tronics), but beeper/AY can also be selected in the controls screen. I had no previous experience with programming Spectrum 128K, so the AY sound player probably isn't perfect. Moreover, it only uses the same sound data as for the beeper (not enough memory for other tables), so it can do only one voice, but at least I added a phaser effect with a sub-oscillator to make it sound more arcade. The AY player has to compute different numbers from the beeper data using a division of 16-bit number / 8-bit number, which is quite slow and maybe the music isn't at perfect pitch, but it sounds OK. Other sound and noise effects also could be better with more memory (volume changes, noise frequency changes, multiple sounds at the same time etc.). The only thing I wanted to change but couldn't yet is the monkey ladder climbing animation, which is still only in the introduction. I will try to figure it out, but I am not sure if it would be possible. Two less important things still missing are a high score table and the monkey dance at the end. Here are two short videos of the updated game: http://phoenix.inf.upol.cz/~rachunl/test/dk-video3.mp4 http://phoenix.inf.upol.cz/~rachunl/test/dk-video4.mp4 The game detects and automatically adapts its variables for several more computer types including Orel BK-08, Spectrum Next (50 Hz - 48K, 128K, +3; 60 Hz - 48K, 128K, +3), Sam Coupé, Scorpion Turbo +, ATM Turbo and ATM Turbo 2+. I haven't yet found any emulation of the american version of Timex TC 2048 (NTSC) and several other popular types. I still appreciate tests on real computers, because I can't be sure that the game works correctly on machines which I know only from emulation. For example I still don't know which of several TK90X/TK95 emulators is accurate, because each of them emulates them differently (are there any TK90X or TK95 users in this forum?). So, this part of the program can still change in the future. I probably didn't find any emulator of Spectrum Next which emulates accurately all Next modes, as I found out from people who tested it on the real computer. As Loccy discovered, the game fortunately works correctly with the RGB output, but not with the HDMI output, because the Next uses different timings for HDMI and maybe also for VGA output (not tested yet - anyone with the Next using VGA?). The game is able to detect the Next with HDMI (or VGA - I don't know yet which mode it is), but I don't know its real timings, so I can't adapt it without the real computer. The HDMI (or VGA?) timings are currently based on the CSpect emulation. So, together with the 60 Hz mode and the Pentagon mode, there could be up to 24 types of timings (if the VGA mode is different from the other two). As for Sam Coupé, there is a Sam tape image and a disk image prepared. The game runs without any problems, but it looks the same as on the Spectrum 48K, because it's exactly the same program. It only detects the Sam and changes some variables, sound is unfortunately still only through the beeper, because I don't know very much about the SAA sound yet and whether my AY sound could be played through it. Thanks to Stefan for the disk loader and the interrupt patch, so the game doesn't need any Spectrum emulation on the Sam. Several people asked me about a possibility of proper versions for Spectrum 128K, Sam Coupé, Element ZX and some other Z80 computers. It would be very nice to adapt the game for all this, but it took a long time to make the Spectrum 48K version and I would like to make something else for a while. But probably I will manage to do some more little improvements in the current version and as I wrote before, I am thinking about the 128K version for the next year (I have to learn how Spectrum 128K works). Thanks to everyone who tested the game or gave me some ideas in this or other discussions. Here is a Christmas gift, a free complete Donkey Kong game. It's the same game as in the Arcade ZX Collection, only without the collection mark (so with the previous version of the loading screen) and with all those new features. Several people already had the first (non-collection) version of the game in September/October, but now it's updated and available to everyone. It's already uploaded to the Spectrum Computing archive, so anyone will be able to test it and write here if there are any bugs. It will appear in the next ZXDB update. The Arcade ZX Collection version is still available from Bubu with the possibility of those very nice cassettes, if you want to complete your collection. I already received my cassette and it looks great.