Back in 1987, a very special tool was released for the Commodore 64 called the Shoot 'Em Up Construction Kit, or SEUCK for short.
It was made by a company called Sensible Software and published by Outlaw (which was part of Palace Software).
SEUCK was amazing because it let kids create your own shoot 'em up video games, even if you didn't know how to code even a little
SEUCK also came with four free demo games.
It was a fantastic tool for its time. Being able to create a whole game, with all its graphics, sounds, and levels, all fitting into the Commodore 64's limited memory, was a big deal.
The ability to save a finished game with its own fast loader was incredibly cool and helped many young programmers learn how tape loaders worked.
However, games made with SEUCK sometimes SUCKED:
As it turned out, when SEUCK saved a "finished" game, it often left almost the entire game editor hidden inside the game's code! This used up a lot of memory.
This meant that if someone knew a little trick, they could open up your game, go back into the SEUCK editor, change things, and even re-release it as their own.
It involved typing a special command called a POKE (which changes a specific number in the computer's memory) and then a SYS command (which tells the computer to run a program starting at a certain memory spot).
Back in the day, people with special "freezer cartridges" (like the Action Replay) could pause a game, look at its memory, and discover these secrets.
Martin Piper back-engineered SEUCK to fix those issues and enhance these games.
The question why I did it is very much linked to the technical details of how the original SEUCK worked. All those years ago the SEUCK guys didn't have access to all the modern ideas we now have about the C64. For example te multiplexor in the original SEUCK compared to modern multiplexors is not that good, the sorting is slow, the collision detection routine has a bug in it and it generally cannot cope well with many sprites. The SEUCK game code also doesn't use that much optimisation and this is partly because some of the memory has to be used for the editor code. In general, problems can be optimised by throwing memory at them for look-up tables or unrolling code. But with all these shortcomings I still like the original SEUCK, as do a few other active people on the modern C64 scene.
Here's where SEUCK's background and map data was found in the Commodore 64's memory:
This new code was organized into files:
scroller_data.asm: This file listed all the important C64 memory addresses discovered (like $F800 for characters, $0900 for the map, etc.). The new program would read the original SEUCK data from these locations.scroller_single.asm: This was the heart of the new engine. It contained:
The Result? A beautifully smooth, fast-scrolling display using the original SEUCK graphics data but powered by a brand-new, super-efficient engine