Donkey Kong =========== This game is for the ZX Spectrum computer and is based on the arcade game Donkey Kong from 1981 published by Nintendo. It is freeware, I don't charge any money for it. I made it for fun, as a programming challenge, and as an exercise in how to solve the well-known colour problems of ZX Spectrum. All arcade authors are credited in the game, as I make no claim to originality of the game ideas. It is a tribute to the creators of the original game and a demonstration that anyone can make nice-looking games, even for old cheap home computers that weren't designed for games. This is my first finished assembler game. I worked on it from 2022 to 2024, finished it in September 2024, and released the first version to a limited number of people in October 2024 to get some feedback. Probably the main attraction are colours, for which I had to figure out a special graphic system to reduce the Spectrum colour clash and make an illusion of several new colours. The game was also released by another publisher in November 2024 after our agreement, because I liked the idea of game cassettes like in the 1980s. It was released as part of a quite known home-made game collection, also exposing it to a wider audience. I wasn't directly part of that business (it was my choice), but it was nice to see my game on pretty cassettes and all the positive reactions. That version has a modified loading screen with the publisher and collection name. We also agreed that I could continue to distribute the game freely with the previous loading screen, and the publisher had no plans to release updated versions (the cassettes had already been made), so I continued to develop the game for the public. In November 2024, I made several graphical and gameplay improvements. In December 2024, I added AY sound (e.g. for ZX Spectrum 128K) and released the game for free as a TAP file on the Spectrum Computing website. In January 2025, I added background music. In February 2025, I made the control screen appear before each new game on computers with extended memory (e.g. ZX Spectrum 128K), added a missing part of the final animation, and released the game again on the same site. The game should work on all Spectrum compatible computers since the first ones from 1982. It is also an answer to a long-standing question: Is it possible to make a decent Donkey Kong game for ZX Spectrum? Lukas Rachunek Authors ------- Original arcade game (1981) Game design, graphics: Shigeru Miyamoto Program: Hirohisa Komanome Minoru Iinuma Mitsuhiro Nishida Yasuhiro Murata Sound: Yukio Kaneoka Hirokazu Tanaka ZX Spectrum version (2024) Program, graphics, sound, loading screen: Lukas Rachunek (Artonapilos) Object of the game ------------------ As Mario, the player must ascend a construction site and rescue his girlfriend Pauline from a giant ape Donkey Kong. Controls -------- Keyboard: P - right, O - left, Q - up, A - down, M - jump Keyboard controls are redefinable. left + jump = jump left right + jump = jump right The game can also be controlled using various types of joysticks: Kempston joystick Cursor / Protek / AGF joystick Sinclair / Interface 2 joystick (right joystick) Fuller joystick Timex joystick (left or right joystick) Sound options ------------- Sound: 48K - internal speaker 128K - AY sound chip (e.g. ZX Spectrum 128K or ZX Spectrum 48K with an external AY) Music: on - background music off - no background music Technical information --------------------- The game is for ZX Spectrum 48K. There isn't any special version for ZX Spectrum 128K or Timex computers, there is only one game file which should work on all Spectrum compatible computers (except ZX Spectrum 16K), including less compatible ones. But if the game is loaded to a computer with an AY sound chip or extended memory, it can use it for different sound or the repeated introduction. The game is available as a TAP file (digital tape image), which can be used in ZX Spectrum emulators. It can also be used on a real ZX Spectrum computer using a card reader (DivIDE, DivMMC etc.), or it can be transferred to an audio tape if you prefer an old-school loading experience of the 1980s. The game works on ZX Spectrum 48K (PAL, NTSC), ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2A, ZX Spectrum +2B, ZX Spectrum +2E, ZX Spectrum +3, ZX Spectrum +3E, Timex TC 2048 (PAL), Timex TC 2068, Timex TS 2068, Komputer 2086, Delta, Pentagon, Scorpion, Scorpion Turbo +, Didaktik Gama, Didaktik M, Didaktik Kompakt, TK90X (PAL-N, PAL-M), TK95 (PAL-N, PAL-M), Inves Spectrum +, Harlequin, Omni, Leningrad, Vesta IK-30, Orel BK-08, HC-91, BK-001, Dubna, Profi, KAY, ATM Turbo, ATM Turbo 2+, ZX Spectrum Next, N-Go, ZX-Uno and probably some others. On Dubna, the game works slowly in some situations because this computer only has half the processor frequency. I am not sure if the game works correctly on ZX Spectrum Next with HDMI output. I've had different feedback from different users, so I recommend using the RGB or VGA output of Spectrum Next. I don't know if the game works correctly on Timex TC 2048 NTSC, Czerweny CZ 2000, CZ Spectrum, CZ Spectrum Plus, DB Spectrum +, Elwro 800, Sprinter, Baltik, Hobbit, Samsung SPC-650, Spectral, HT 3080C, Sizif, ZX Spectrum Vega, The Spectrum or any other Spectrum compatible computers. I didn't find any emulator of these machines, nor any users, so I can't test it. There is an option to turn on AY sound. It should work on any ZX Spectrum type with an AY sound chip, not only on ZX Spectrum 128K's built-in AY. ZX Spectrum 48K with an external AY (Melodik, ZX-AY, Fuller Box, DK'Tronics 3-Channel Sound Unit) is sufficient, it also works on Timex's built-in AY. If the program detects an AY chip, it automatically selects AY sound, but internal speaker / AY can also be selected manually on the control screen. There is an option to turn on background music. It works for both the internal speaker and AY, and in both cases the music plays simultaneously with other sounds. When the background music is off, the AY sound effects use all three sound channels. When the background music is on, the AY sound effects use only two channels. When the background music is on, the sound of falling springs plays in the third game stage. On ZX Spectrum 128K and other computers with extended memory, the introduction and control screen appear before each new game, not only after loading the game. This feature also works on Didaktik Gama. The order of the game stages is based on the original Japanese arcade version from 1981. This order was also used in the 1980s versions for several home computers, including ZX Spectrum. There is also a later American arcade version from 1981 with a different order, which may appear as an option in my next version of the game. I didn't use any game-making engine, high-level language, program library, sound/music editor, modern graphics editor, automatic code generation or generative AI. The game is written manually in assembly language in the Joe text editor and compiled with Pasmo, the graphics are drawn in Art Studio in a ZX Spectrum emulator, and the sound is also written in assembly language. There is no raster multicolour engine or similar effects during gameplay, only the colouring of the standing monkey in the introduction is manually timed to use more colours that usual. I didn't use any source code of the original arcade game, I've never seen it, and I don't think it would be very useful on ZX Spectrum (although it uses the same Z80 processor), especially for me (I usually don't understand other people's programs very well). Therefore, even though I tried to make the game as accurate as possible, some of the behaviours are a little different. The graphics and sound are of course made after the arcade game, but it had to be done in a completely different way (especially character based two-colour Spectrum graphics). The controls are slightly modified compared to the arcade version for a smoother experience. The game doesn't run at the same speed as the original arcade game, because the arcade game runs on 60 Hz hardware, ZX Spectrum uses 50 Hz. If you don't like it, you can try running the original game at 50 Hz (83 % speed or a PAL machine) or this version at 60 Hz (120 % speed or a NTSC machine).