
Punchy Collection for Amiga
Punchy Collection: seven versions of Punchy, on the Amiga Version 1.4 (05-Nov-2026) MrDig Productions, 2026. Made 100% with AI. Questions, bug reports or just a hello: [email protected] The originals: Punchy © 1983-1985 Mr. Micro Ltd (Swinton, Manchester). Commodore 16 / Plus4 and VIC-20 versions by Evan Parton, Commodore 64 version by David Whittaker (code, graphics and music), ZX Spectrum and Amstrad CPC versions by ISSI, MSX and Tatung Einstein versions by Mr. Micro. This port: a non-commercial fan project. All game code, graphics and sound are those of the originals. Personal note Our first computer was a Commodore 16 with a tape deck, and we only had a handful of games for it. By far the best-looking game was Punchy, but it was always a pain to get it working. As young boys, we would start loading the game, the tape would start playing, and we would pray to the gaming gods. We would sit completely still and stay quiet, afraid that even the slightest movement or noise might interrupt the loading process, as the game often failed to load. But when it did load, we would leave the computer on for hours, playing what was, at least in our opinion, a brutally hard game. So we have fond memories of Punchy on the Commodore 16 and decided to port it to the Amiga. During that process, I discovered that there were actually quite a few different versions of Punchy out there, so I thought, why not make a collection of them? Enjoy! What is this? Punchy is based on the British Punch and Judy puppet show. Punch has locked Judy in the booth, and PC Bobby has to rescue her. He dodges what Punch throws, jumps the gaps and Punch himself, lands on the magic carpet over the alligators and catches Judy's sausages, across the screens of the stage. Mr. Micro brought the game out for many home computers in a short time, each version by its own author. This collection puts seven of them on one Amiga disk, with a start screen to choose from: Commodore 16 / Plus4 (1984, Evan Parton; also released by Commodore) Commodore 64 (1983, David Whittaker: one of his first games) VIC-20 (1984, Evan Parton) ZX Spectrum (1983, ISSI) MSX (1984, Mr. Micro) Amstrad CPC (1985, ISSI; released by Amsoft) Tatung Einstein (1985, Mr. Micro for Einsoft, with built-in speech) None of them is a remake, and none is an emulator. A native port or emulation? A native port. The original machine code of each version (6502 for the Commodores, Z80 for the others) was translated, instruction by instruction, into 68000 code. The translated program runs directly on the Amiga, with no CPU emulation while it plays. A small Amiga layer takes the place of each machine's hardware: Commodore 16 / Plus4: the TED chip Commodore 64: the VIC-II and the SID. The SID is played by Paula, with its waveforms, envelopes and an approximated filter. VIC-20: the VIC chip ZX Spectrum: the screen with its attributes, and the beeper MSX and Tatung Einstein: the TMS9918 video chip (its sprites become Amiga hardware sprites) and the AY-3-8910 sound chip Amstrad CPC: the CPC firmware (text screen, keyboard, the sound manager with its queues and envelopes, the timers), the screen and the sound chip The translators were checked frame by frame against models of the original machines. The timing is that of the originals: The Spectrum, MSX, Einstein and CPC versions count the Z80's clock cycles. The CPC firmware's timing was measured on the real firmware. The C64 version's BASIC part (title, instructions, rating, Hall of Fame) was rewritten in 68000 from the original listing, with the same timing. No ROMs are included: the routines of the original ROMs (Kernal, BASIC, Sinclair ROM, MSX BIOS, Einstein MOS, CPC firmware) that the games use were rewritten, and the letters come from own character sets in the style of the originals. System requirements Floppy disk: any Amiga with 512K Chip RAM and 512K more memory (as an A500 with memory expansion), Kickstart 1.3 or newer. Hard disk: the same, Kickstart 1.3 or newer. WHDLoad: WHDLoad 17 or newer the Kickstart 3.1 image kick40063.A600 (with its .RTB) in Devs:Kickstarts besides 512K Chip RAM, about 4 MB more (fast) memory, for the stereo music OCS, ECS and AGA. A plain 68000 is enough. Joystick in the joystick port (port 2), keyboard for some extras. In FS-UAE / WinUAE: an A500 with 1 MB is the reference machine. Three ways to run it All three contain the same menu and the same seven versions. 1. Floppy disk (PunchyCollection-1.4.adf) A bootable disk: put it in DF0: (or write it to a real floppy) and switch on. High scores are saved on the disk. 2. Hard disk (PunchyCollection-1.4.lha / .zip) Copy the PunchyCollection drawer anywhere on your hard disk. Double-click the Punchy icon, or from the Shell: cd PunchyCollection and then Punchy. High scores are saved in the drawer. Esc on the start screen goes back to Workbench. 3. WHDLoad (PunchyCollection-1.4-WHDLoad.lha / .zip) Copy the PunchyCollection drawer to your hard disk and double-click its icon. The collection runs under WHDLoad's Kickstart emulation, because the menu loads each version from disk and the versions read and write their high-score files. High scores are saved in data/ (or in WHDLoad's SavePath). F10 quits back to Workbench at any moment, also in a game. The start screen Joystick up/down, W/S or the cursor keys: choose a version 1 - 7: start that version directly Fire, Space or Return: start the chosen version Esc: quit In a game, Esc goes back to the start screen (and saves the high scores). If a version cannot be loaded (a damaged disk, or not enough free memory), the start screen says so in red. The start screen plays music (made with Suno): in stereo from the hard disk and under WHDLoad, in mono from the floppy. If a version needs the memory, the music makes way for it. Controls per version Commodore 16 / Plus4: joystick, or A / D walk, W / Space jump. 14 screens, one high score. Commodore 64: joystick (pull back: sausage), or the C64 keys: left Alt (= C=) left, Shift right, Space jump, S sausage. The cursor keys and W A S D also work as a joystick. H holds the game, G goes on, M / C switch the music on / off. The starting level on the instructions screen counts up by itself: press Space or Fire at the one you want. Hall of Fame. VIC-20: joystick, or A / D walk, W / Space jump. B switches the border between black and the VIC colour. Top ten. ZX Spectrum: joystick: left / right walk, fire jumps. Keys: 1-5 starting level (title screen), 0 start / jump, 6 / 7 or the cursor keys walk, H holds the game and 0 goes on. C + N together switches the moving clouds and the walking sound off / on. 16 screens, Police Commendations. MSX: joystick: left / right walk, fire jumps. Keys: the cursor keys walk, Space jumps. H holds the game, G goes on. 16 screens, Top Ten Player League. Amstrad CPC: joystick: left / right walk, down ducks, fire jumps and starts the game. The cursor keys work as on the CPC, Alt or Help = COPY. Hall of Fame. Tatung Einstein: joystick: left / right walk, down ducks, fire jumps. Keys as on the Einstein: Z / X walk (also the cursor keys), Shift jumps, Del ducks, Alt = GRAPH uses the sausages. 1 / 2 / 3 on the title screen: Slow / Normal / Fast. Top Ten Player League. Added features High scores are saved, for every version. On the disk, in the hard disk drawer, or in WHDLoad's data directory, when you leave a game with Esc. Most originals kept them only in memory (the Amstrad's Hall of Fame, for one); the Einstein wrote them to its own game disk. The best saved score is also the game's HIGH score from the start. All tables start at 0, so a first game gets into them. The VIC-20, MSX and Amstrad originals start at 010000, 0030000 and 015000. The C64 game shows a HIGH of 034599 that is in no table. The ZX Spectrum's tape loading screen (by ISSI, with "NOW LOADING") is shown for 4 seconds first, as while the game loads from tape. Fire, Space or Return skip it. Joystick everywhere: also in the versions that were played by keys only (the Spectrum game moves PC Bobby by the keys; the joystick presses them for you). One start screen for all seven, with the credits of each version. Secrets of the originals Found while translating the machine code. All of it is still in the games: Commodore 16: the title text "SPACE TO PLAY" is stored backwards in the program ("YALP OT ECAPS") and printed from the end. The copyright line is in Roman numerals: MR MICRO MCMLXXXIV. Commodore 64: The only copy found was cracked ("CRACKED BY PROBYTE ON 21 6 IN 1984"), with PROBYTE as all ten Hall of Fame names. The game's own BASIC still has a line, never called, that sets them to PUNCHY. Both are gone here: the names are MR MICRO. The RUN/STOP key is switched off, and if someone changes that, the game resets the C64. Leave the title alone and a DEMO MODE plays the screens. A score too low for the Hall of Fame: "AS YOUR RATING DOES NOT MERIT DISPLAY YOU HAVE BEEN DEMOTED!" VIC-20: the title screen ends with a dedication: "FOR ALAINE". Left in memory by whoever copied it: part of a C64 disk directory, a machine-code monitor's register line, and half of a trainer text, "P-10 LIVES NO SCO...". ZX Spectrum: Finish all 16 screens and the game says "CONGRATULATIONS, SIRRAH", then, in a flashing frame, "A CENTURY SCORE OF (C) NOTHING (C) !!!". The texts are written in mock old English: "PRAY ENTER THY EMBLEM USING THY LEFT AND ALSO THY RIGHT COMBAT CONTROLS". C + N is a secret switch for the clouds and the walking sound. The "7: joystick" choice on the title screen does nothing: the flag the game checks is never set. MSX: A secret cheat: hold the game with H and type Ctrl+B, Ctrl+O, Ctrl+O, Ctrl+T, Ctrl+S, Ctrl+Y ("BOOTSY"). A small flash appears next to the lives, and from then on Ctrl+C (while holding) skips to the next screen. The speech samples are cut short by a slip in the play loop (OR C instead of OR E). Tatung Einstein: one of the first Einstein games, with speech built in ("ROCK THE BABY" at the end of each screen). It shares much of its code with the MSX version. How it was made MrDig (the human) set the goal, made the decisions, and played and tested every build on FS-UAE: "does this feel like the original?". He sent screenshots and short video clips of everything that looked or sounded wrong, and compared with recordings of the originals. The AI did the research and wrote all the code and tools: the translators, the machine models, the Amiga layers and the test harnesses. It ran the automated tests (translated code against the models, frame by frame; stress tests in an Amiga emulator) and wrote down every finding. There were many small steps: build, test, MrDig plays, feedback comes back, improve. Known differences / notes The sound chips (SID, AY, the beeper) are played by Paula. The music and effects follow the originals note for note, but the sound is not bit-identical. The Spectrum's attribute colours: a character row shows at most 7 different colour pairs (the game never needs more; the tape's loading screen has 8 in two rows). On a plain A500 a few heavy moments of the Spectrum and MSX versions (the screen scrolling on to the next stage) can run a little slower than on the original machines. In an emulator on a 60 Hz screen (most PC and Mac screens) movement can never be completely smooth: the Amiga makes 50 frames per second. A real Amiga on a 50 Hz (PAL) screen does not have this. Have fun, and mind the alligators!
mrdig 1 games· 56 followers· 4 ratings· portfolio 29 View creator →











