"Does something like this work on the A500?" - Yes! Tiny Bobble, Tiny Galaga, Tiny Invaders & Tinyus. Ghandy had a chat with Bartman of Abyss.
Three developers started out in the demoscene at Abyss. They release ancient arcade games via reverse engineering on the Amiga.
Bartman, Pink and FadeOne from Abyss always ask themselves the question: “Why isn’t this available on the Amiga?” Or even, “Why couldn’t this actually be implemented better?” Instead of complaining further, last year they started taking apart the source code of several games from different arcade machines to present them on the Amiga.
Tiny Bobble – die deutsche Version des Interviews ist hier verfügbar.
Not only did they have to reverse engineer the code. No, they also took the graphics, sprites and much more from the hardware from the 80s. The problem was, however, that both the chips for sound and graphics creation on the arcade machines were superior to those on the Amiaga.
Therefore, they had to come up with some ideas for the implementation. Bartman from Abyss aka Bernhard Wodok, explains how the homemade ports originally came about.
Abyss also released the music editor Pretracker in April 2019. And for all programmers, a convenient Windows-based C compiler. On this one you can run the code directly on the emulator WinUAE. Their demo tool with the cryptic name vscode-amiga-debug has already received several updates.
Bernhard (Bartman) last demonstrated the current version of the tool in his seminar at the Berlin party Deadline in Autumn.
Developer studio Shin’en founded in 1999
They founded their cross-platform games studio Shin’en, based in Munich, in 1999, followed by numerous games on the Gameboy Advance, Nintendo DS, Nintendo Switch and Wii U. Later, games on the Xbox One, Windows, PS4 and PS5 were added. Their latest title is the action-adventure puzzler The Touryst, which looks like it was inspired a bit by Minecraft’s block graphics. Apart from that, however, the two games have very little in common.
Lars “Ghandy” Sobiraj: To start with, it would be good if you could introduce yourselves briefly with a few details.
Abyss: Hi, we are Bartman (Bernhard), Pink (Manfred) and FadeOne (Martin). We are in our 40s and have been making demos for the Amiga since the early 1990s. Then we founded the game development studio Shin’en in 1999. Since then, we’ve cut back a lot on our scene productions, since we already make games full-time. Since then, however, we have continued to actively observe the scene.
At some point we noticed that many very good productions were coming out for all kinds of platforms, but not for OCS-Amiga (Amiga 500, 600, 2000). Pink then said that some of these good effects could actually be done on an Amiga. We wondered why nobody had done that yet.
That’s when he got the urge…
… to code an intro again himself. But coding in assembler was out of the question. It brought back memories of the 90s, where you spent weeks on a single effect and optimised it.
JP: Or is that related to your work together at your company? That the theme of gaming was brought to the fore? Tiny Bobble, Tiny Galaga, Tiny Invaders, Tinyus – did they all follow the same pattern?
Abyss: Pink then found a C compiler (vbcc) with which he could compile Amiga programs on the PC. But when I looked at the code that this compiler produced, I thought there must be something better.
I then found Bebbo’s gcc 6.2, which generates code twice as fast. I’m also in charge of tools at our company, so I set up Pink a development environment with this compiler.
At that time, there were already newer versions of gcc, but they couldn’t generate Amiga code. So I took a closer look and transferred parts of Bebbo’s changes to the new versions. That brought another 20-30% faster code. So now we were on a current compiler version. There were no more improvements for the time being.
However, the whole development cycle was not yet optimal. Compile, then start WinUAE, then start the intro by hand. So I wrote an extension for Visual Studio Code that simplifies everything. So all you have to do is press F5 to compile, then WinUAE starts automatically and then the intro.
Then, of course, there was the desire to debug, i.e. to set breakpoints, wade through variables and output debug text. I then added that as well.
Later, a profiler and graphics debugger were added. These are all features that you know from developing on modern platforms, but were rather unusual for the Amiga. For some features I also had to intervene in the code of WinUAE, but that brought us many advantages.
By the way, Tinyus, the Gradius arcade machine, ran on this hardware. And it originally ran Bubble Bobble in the Taito Arcade.
Abyss: We wanted to do something cool!
JP: Why did you switch from demos and intros to games in the first place? Or is that just temporary?
Abyss: Our goal was always to make something cool for the Amiga that didn’t exist yet. And it often happened when we looked at retro games that we thought: “Why isn’t there something like that for the Amiga?” or there were statements like: “That has to work better”.
So we got annoyed with the Amiga version of Bubble Bobble and made a better one: Tiny Bobble. It was very well received in the scene, and then of course you get the itch to make something new. Then you look at all kinds of games and analyse: “Does something like this work on the A500?”
Finally we came to Gradius/Nemesis, and asked ourselves why there had never been an Amiga version, although there were almost 100 platform games on the Amiga. With Bubble Bobble, the community had already written a level editor, which allowed us to use the original levels and sprites directly. Unfortunately, there was no such thing for Gradius. I then offered to reverse-engineer the original arcade code. I disassembled the original arcade ROM and ripped the background maps, sprites and object placement.
CPU of the arcade machines far superior compared to the Amiga
JP: You write that the original hardware was based on a Motorola 68000 with 10 MHz. What kind of machine was that running the original? Something for an arcade, a video game system for home?
Abyss: The original arcade hardware was superior to the Amiga 500 in many ways: The CPU was clocked faster, the graphics hardware could display two scrolling playfields and hundreds of zooming sprites. Nevertheless, the arcade often had slow-downs in more hectic situations.
So it was clear that there was not much we could do with the original code. We had to recode it much more efficiently. We had already gained experience with Tiny Bobble on how to get the most out of the Amiga graphics hardware.
JP: You did the music yourselves in each case, why?
Abyss: The original arcade hardware had a total of three sound chips, and the music used six voices. Of course, you can’t do that on the Amiga. I then wrote a tool that converts the original music into FastTracker format and Pink used that as a basis to optimise the music with Pretracker (Pink’s new Amiga soundtracker).
New projects are already in the making.
JP: What’s next? What hardware or classic games do you want to implement in the future?
Abyss: We are currently experimenting with something new. But there’s nothing to announce yet ;)
JP: Okay, I see. Bartman, thank you very much for the interview and keep up the good work!