Codetapper’s Amiga Retro Site!
Martin Pedersen wrote two of the most technically impressive vertically scrolling shoot’em-ups ever released on the Amiga. Martin coded both games by himself, with Torben Larsen designing the graphics. Both games pushed the boundaries of the Amiga hardware and featured stunning music and sound effects.
Martin met graphics artist Torben while writing the game The Vikings in 1985. Martin programmed the Amstrad version, while Torben was working on the graphics for the C64 version. They felt limited with the Amstrad’s technical abilities, and decided to investigate the Amiga. After being impressed with what they saw, they decided to develop games for it.
Martin’s Amiga softography consists of the following games:
- Hybris (1988) – code
- Battle Squadron (1989) – code
- Battle Squadron 2: Aviators (1990) – code (game unfinished)
- Hugo (1992) – code for one level
Battle Squadron was also converted to the Sega Megadrive/Genesis in 1990.
Renewed interest in retro games has seen Martin convert Battle Squadron to iOS, and it is now is now available directly for download on the App Store (or see www.cope-com.com for details).
A famous piece of trivia regarding Battle Squadron is the fact that the reviewer at Amiga Computing actually awarded the game a score of more than 100%!
Work on a sequel to Battle Squadron (called Aviators) was begun, but sadly this game was never finished.
Was the game Hybris based on any particular arcade game or combination of games?
It was to some extent inspired by popular games from the arcades of the time, but of course there was also a lot of our own inspiration in it.
Who came up with the name Hybris, and does it mean anything?
It was actually Søren Grønbech, who did Sword of Sodan, that came up with the name, and who we were working with at the time. He had heard the word in “ancient history” in high school. It means to be over-courageous… fits well with the game 😉
How long did the game take to write?
Hybris took a little bit less than a year to develop.
How old were you when you wrote the game?
I was 16 when I wrote Hybris.
Wow! What was a typical day like while writing the game? 9am to 5pm?
It was definitely not 9 to 5 😉 Often it was late into the night, or should I say early morning. I went to high school at the same time, but managed to get stuff done even on school days. Torben, who did the graphics, was in the US part of the time, and I went over there for school holidays… sometimes extending the holidays a bit 😉 Then we worked at all kinds of odd hours…
What was the development system you used?
Both Torben and I used floppy drives in the development process… yes it sounds a bit old school 😉
It was not so bad though, since I would load all data files into fast mem initially, and there it would be safe until I turned off the computer. So it was only saving and loading the source files that took a bit of time.
The game seems to have silky smooth 50Hz scrolling. Does the game ever drop a frame or were all the attack waves designed so it’s always a constant 50Hz?
Hybris should never go down in frame rate because most of the graphics are sprites. Bobs, which are relatively more processor demanding to display, are only used for ground enemies, and the center part of your own ship.
The game makes heavy use of sprite tricks! (Disabling sprites in an emulator yields a very empty screen!) Can you recall any interesting stories about the development of the sprite routines?
The biggest effort on the sprites was the score sprites “on top of everything”. The rest of the sprites are grouped in such a way that no problems occur in practice.
The score panel at the top of the screen uses a nice trick where sprites 0 and 1 have their sprite data set and are repositioned horizontally across the screen “racing the beam”. Did you come up with that effect or had you seen it in another game?
Good description of what actually goes on technically 🙂
This was Torben’s idea and was not seen on the Amiga before. There was an immense amount of fiddling to make this fit. It is essentially timed down to the exact processor cycle 😉
Can you remember what was the most impressive vertical shooter on the Amiga before Cope-Com set the new standard?
Thanks 🙂 I actually don’t know what was there before. I did not play that many games at the time… I preferred to develop them 😉
Did you borrow any ideas/tricks from other games? (Specifically related to Amiga hardware tricks)
We got inspired by what we saw in the arcades, but how it was implemented technically was entirely our own doing. It may sound a bit arrogant, but we were pretty sure that what we were doing for the game was the most advanced on the Amiga 😉
Are there ever situations in the game where more than 8 sprites will be on the same line and hence an object will disappear? Or was everything carefully designed so that wouldn’t happen?
It was designed not to happen… but I will not rule out that it can under some circumstances…
I believe the game is running in 32 colour mode, but in reality you only have 20 colours for all the backgrounds as the 4 sprite pairs use 3 pens each using up the other 12 colours. Is that correct?
Torben designed the formal palette very cleverly so even if we could not reach full 32 colours we did have substantially more than 20. For starters, the “transparent colour” of each of the sprite pairs, i.e. colour 16, 20, 24, and 28 could be used freely, since they were never shown in the sprites 😉 But actually the number of colours on the screen is more like around 100 due to the copper effects. That is why it looks so fresh even for today 🙂
Was it hard for Torben to design all the graphics that would fit into the restrictions set by the Amiga hardware? Was he a programmer at all so understood the limitations or you set them down at the start of the project?
We did not make so many plans from the beginning, but rather started work to get things on the screen. Even if Torben was not a programmer on our projects at that time he had earlier made small demos on C64 and therefore clearly understood the overall tech specs of the Amiga… so that was relatively smooth. But of course there were a lot of revisions of graphics and code along the way 😉
Was Hybris the most technically advanced shoot’em-up on the Amiga at that point in time? I personally didn’t own an Amiga when the game was released but can’t think of much before 1989 that was as technically advanced!
Thank you. I believe so as well and it got a lot of attention from gamers at that time and as one Amiga magazine wrote “…stunned shooters. Had to be dragged away from the joystick!”
What was the reason for making the display area 256×256 pixels? Was that more to match most of the arcade games at the time or was it done to enable more DMA time?
The main reason for having the black edges of the left and right was to give an arcade feel. On many arcades the screen was turned 90 degrees to give the “tall effect”, which is highly suitable for shoot’em-ups.
Can you tell me a little of the technical details about how you stored the enemy attack wave data?
The attack waves on Hybris were quite interesting. First, I used a 32 bit longword to hold each of the x and y positions. The lowest 16 bits were the “decimals” and the higher 16 bits were the position in pixels. This made it easy to access the pixel position directly (only when moving the enemy were the “decimals” necessary).
The wave movement is actually quite simple. There is both a “speed” that is added each frame, and then an “acceleration” that is added to the “speed”, also each frame. This continues for a certain number of frames, whereafter the next set of parameters are loaded. This is what gives the “wavy” movements. Each of the attack waves are initiated when a specific position on the level is reached.
Did you design the entire game on paper before coding or did it evolve as it was being written?
No. It was very much a dynamic process. Very little was designed upfront. First there was just a ship and some desert background 😉
The music and sound effects in the game were brilliant (in my opinion!). What kind of specification was Paul van der Valk given for creating the sound?
Yes, you are not alone out there 😉 We did not really put any requirements upfront. Paul was a coder, so he was really able to manipulate the sound to his liking. And it did turn out as some of the very best music on the Amiga…
Did you decide in advance a certain amount of memory would be reserved for sound and Paul had to stick to that limit, or was it a bit more flexible? Was there a memory map?
Yes, we did have a memory map for the game. I still have it on paper in handwriting 😉 It was however not defined from the beginning. At one point when we needed sound FX and music we made room for that and we did think a bit about it on the way and adjusted continuously.
How did you end up meeting/working with Paul?
For Hybris we knew from our contacts within the Amiga demo scene a Dutch scener, who knew Paul VDV.
There was a “how to crack” tutorial posted on the internet in the early 1990’s and it specifically mentioned Hybris as a difficult game to crack because it purposefully used up as much memory as possible (of the 512k available at the time!). Was there any attempt to use all memory possible to make it hard or was it simply that all the graphics and sound in the game took up a lot of space?
We did use almost every single byte of the 512Kb, because we needed it for the game 😉
Do you have any idea about sales figures for the game?
Yes it sold quite a lot, at least somewhere in the tens of thousand worldwide.
Were you given a set fee for writing the game, and did you get royalties?
I got an amount when signing the contract and when delivering the final version. There was probably also another milestone along the way. I was supposed to receive royalties, but since Discovery went bust this never amounted to anything 😦
Was it a risk making an Amiga exclusive game at the time? (I think Atari STs were apparently 3 times as plentiful in the UK as Amigas then)
We were hooked on the Amiga right away, and never thought much about the more limited Atari.
Were you ever asked to make an ST version of the game?
We did talk about it a bit, but since Discovery disappeared it did not materialize so we decided to stick to the Amiga for further development.
How accurate were the self-portraits in the Hybris attract sequence? Ciáran Brennan in his review for The One magazine stated that “those couldn’t possibly look like the authors!” Your response?
You can see that it is us, but I think there is a bit of artist touch in there as well. “Pixel pushing” was the trend of the day 😉
How happy were you with the reviews of the game?
That was one of the really fascinating parts, being just a teenager and having your product described in a magazine distributed all over the world (recall it was well before the internet!). I still have some of the original prints. Hybris got pretty good ratings, so we were quite pleased.
I am very happy that somebody took the time to make a list of the reviews as this would have been hard to find. We used it quite a lot for Battle Squadron ONE when we got restarted… and will also need it for Hybris 🙂
Did you re-use the basic game engine from Hybris for Battle Squadron, or did you pretty much have to rewrite the entire thing?
The design of BS was fundamentally different that Hybris. Some of the code was however re-used.
Was the 2 player mode something you decided early on or were you given feedback about Hybris lacking the 2 player option?
We knew from the beginning that we wanted 2-player. That would be the primary upgrade from Hybris. This of course included left/right scroll, and numerous other enhancements…
The amazing Predator effect where the enemy appears to be almost invisible – can you describe how that was done on the Amiga? (I can only guess that it’s some blitter trick and you’re shifting the shape of the baddie background sideways a pixel or two or something!)
Yes, it is using the blitter. It takes the data from the background (from the old position) and puts it into a buffer, and then reprints this buffer on the new position using the mask of the enemy… Now I actually wonder if it could have been done in one step, but there might have been issues in shifting the bits differently for the source and destination – got a bit rusty on the Amiga hardware over the years 😉
In the intro it sounds like it’s speaking “Welcome to Battle Squadron” – is that actually a (very small?) speech sample or is your brain filling in the speech guessing that’s what it’s saying?
It is indeed a sample. Ron Klaren must have sampled it… quite brilliant move 😉
The end screen states it took 8 months to write the game. Did you know early on approximately how long it would take or you were given that as a deadline?
We did not really plan how long it would take at the beginning, though from previous experience we of course had an idea that it might be about a year. It was only when the game was about halfway done that it became relevant with deadlines and that sort of thing.
Were you still at school at this stage? The end screen says you were 18 years old. Or had you finished by then?
I was still in school, last year of high school, which is 3 years in Denmark.
Are there any technical tricks you were especially proud of in this game over Hybris?
Technically, BS builds on Hybris, but of course with some major improvements. To have bigger and more colourful enemies in BS we switched from sprites to bobs. This had the negative effect that we had to go down in frame rate from every frame to every second frame (for the enemy bobs, not the sprites).
It was still necessary to be clever about the time required to print the bobs, so when the raster was about 1/3 down the CRT, enemies in the top part of the screen stared being erased and reprinted. Then when the raster was 2/3 down, more enemies could be erased/printed. When the raster was below the bottom of the screen all enemies could be deleted/printed.
This avoids having to use double buffering, while still having about 1.5 frames to delete/print the bobs. Overall this saves a lot of processor time… that in turn could be used to have more enemies on the screen 🙂
Most of the enemies in the game require multiple hits to kill (at least with the default weapon). Was this a deliberate choice to force the player to go for weapon upgrades or simply to make the game more difficult?
It was mostly to make the game more difficult. It would be too easy if all enemies just required one missile 😉
Did you get much feedback about the difficulty level of the game? Could the two of you sail through it easily?
We of course got a bit of feedback here and there, but the whole process was mostly run by Torben and myself. At the time I could easily “sail” through the game… multiple times 😉
The Predator effect was amazing, yet I can’t think of another game on the Amiga that used it! Do you know of any other games that copied your effect? It seems to be one of the most widely remarked upon things in the game!
Yes, it was of course one of the major new enhancements compared to Hybris. Surprisingly, I don’t know of any other games that did something similar. One things we talked about later, was that maybe we could have used the effect a bit more, to integrate it a bit more in the gameplay… but maybe we will still have a chance later 🙂
For those of us that aren’t programmers, can you describe the overall steps that are going on every 50th of a second? (eg. read joystick, move all baddies, sort them into Y coordinate order, restore backgrounds behind all blitted baddies, save backgrounds behind current positions, copy into copperlist etc). I’m not sure many people appreciate all the steps the programmer has to do the “old” way where you did not have the CPU power to redraw the entire screen every update like on modern hardware!
Well, you describe it very well in your question already 🙂 I have put a small excerpt of the code below. I guess it’s pretty obvious what most of the calls do 😉 I had the “idea” to just use caps (for simplicity… maybe not wise after all…) and that all labels should be 6 letters (towards the end I had to extend to 7).
Another similar, yet more complex piece of code handles the the “other frame” where the enemies are deleted/printed… and background scrolled. I used a lot of numbering for labels… to avoid having to come up with new names all the time. VIDxxx is short for “videre”, which is “onwards” in Danish. It was kind of a sister label to LOOPxx that I also used 😉
JSR TSTJOY BSR TSTFIR BSR FADERS BSR MOVPLY BSR MOVMIS BSR SMARTB BSR MOVBUL VID616: BSR STRSPR JSR LISTER BTST #1,COUNTR+1-VARIBL(A5) BNE.S VID113 MOVE.L #PL1DAT,PLYCHK-VARIBL(A5) MOVE.L #SCO1UP+8,PLYSCO-VARIBL(A5) BRA.S VID114 VID113: MOVE.L #PL2DAT,PLYCHK-VARIBL(A5) MOVE.L #SCO2UP+8,PLYSCO-VARIBL(A5) VID114: BSR CHKMIS BSR CHKGRO BSR CHKBUL BSR CHKCOL BSR PRISCO BSR ENTNAM TST.W LISCNT-VARIBL(A5) BNE.S VID617 CMP.W #1500,DEMCNT-VARIBL(A5) BGE.S VID617 BSR RASCOL BSR FLASHR BSR ROLBUL VID617: BSR CONBUL BSR CHEMOD
The game doesn’t seem to be running via the vertical blank interrupt unlike Hybris! The VBL only kicks in when you fly between the top and bottom parts of the map and when you die. What was the reason for this? Was there some efficiency gain doing it this way or something?
Actually, only the music runs solely as interrupt, in both Hybris and Battle Squadron. For the general code there is a good deal of “waiting for the raster” in both games…
Were there any easter eggs, secrets or bugs that made it into the game?
There is nothing hidden in BS, besides the cheat mode activation. We simply did not have time at the end. There is a small bug in BS that started happening towards the end. Sometimes one of the colors in the palette would be changed… to black if I remember right. I never did figure out what this was… but it also was very rare… maybe it is gone 🙂
You worked with Ron Klaren and Ivo Zoer for the sound/music. What was it like working with them and what did each of them do? What specs were they given?
Yvo did the player and Ron did the music. We worked remotely since they were in the Netherlands, so we did not gain any real “working relationship”. Later Yvo was in the US as the same time as me, and we had a great time 🙂 We did not really give any specs, except that it should not take up too much processor time 😉
Now for a nice technical question! Do you have any idea how many raster lines the music routine took to play? How many of the Amiga’s 4 sound channels did you allocate for the music?
These tests were done quickly… and more than 20 years ago 😉 If I remember correctly then it was something like 5-10% of the raster time, but not exactly the same each frame. All 4 channels are used for the music, but certain sound FX take over 2 of the channels when needed. In the new iOS version this is no longer an issue 🙂
What was the most difficult thing programming-wise in the game?
There was a lot of things that required extensive tweaking to work. It’s a bit difficulty to say if they were actually difficult, or just time consuming. Bugs were almost always a pain to figure out.
You chose this time to publish via Innerprise. What was the reason for this? Had Discovery already gone broke by that stage? The Hall of Light database has Innerprise listed as a developer, and a note saying that it is also known as Discovery. Is that even correct?
Discovery and Innerprise were not the same company. Innerprise was formed by a sales/marketing person who left Discovery. So you might want to update that 😉 Discovery was still in existence at the time, but I don’t remember the timing of how it all went down… we were too focused on making Battle Squadron 🙂
At what point was the publisher found? Was it easy to get it published after the success or Hybris?
Since we already were in contact with Innerprise it was much easier than with Hybris, but actually Hybris had not really been difficulty to “sell” either.
Did you have regular meetings with the publisher or sent discs in the mail, modem’d files and phone calls etc?
Torben and I did most of the work. Sometimes we would receive suggestions for changes, but it was very limited. We talked on the phone maybe every two weeks, Torben and I much more often 😉
I would send the files via a 2400 baud modem. I remember one of the last versions, where the connection cut during the last second (this was an hour long process), due to a faulty wire on my phone line. This was really bad timing, since I actually thought my modem had broken…
Most reviews from the game seemed to review in their November, December or January issues (which were usually released in the month prior). Did you have to get the game finished to make the Xmas shopping list or was that pure luck?
There were timing issues like that. But I only vaguely remember how the deadlines were set to match that…
What did you guys think about the 109% mark awarded by Amiga Computing? I must admit I thought it was a misprint when I first sorted the database (as I didn’t key in that entry) and couldn’t believe that a game received more than 100%!)
We were of course ecstatic! 100% would have been great, but above 100%… well 😉 A few people I later talked to were actually a bit “upset”, saying that it should not really be possible to get more than 100% 😉
What made you decide to re-make Battle Squadron for iOS? Did you receive a lot of feedback in recent years or something?
It was a few things that fell into place. We had started talking about selling the game for emulators, but then thought that we might as well re-code the game ourselves 😉
Can you describe how you went about converting the game from 68000 source to the iPad/iPod/iPhone? I presume you had to rewrite the entire game in C/C++ and convert and resize all the graphics?
I started out on a PC, since I did not have a Mac. After a couple of months I got a Mac and got it working on the simulated iPhone, and a month later actually on an iPhone. It was a bit tough at the beginning, since I had to get back into 68k assembler, and also C/C++, which had also been several years.
How difficult was the conversion process?
An initial challenge was actually to get the files transferred out of the Amiga, and to PC. I had to buy various hardware items to get this done, and get help from various fora – thanks for that 🙂
On iOS the original Amiga graphics files are actually loaded into memory and converted live to OpenGL format. The game itself was converted in 5-6 months, essentially line by line. One of the things that took a bit longer than anticipated was the full implementation on iOS… but that should be easier next time 😉
For those of you that own an iPad, iPhone or iPod Touch, you can now purchase the game directly from the App store! Considering the original game cost 25 pounds, the current price of 1.99 is a bargain!
Battle Squadron 2
I’ve only seen brief bits and pieces on the internet but it looks like it was a beat’em-up to start with rather than a space-shooter. What was the reason for that? Later in the BS2 rolling demo on the Cope-Com site there’s some mega weapons though!
Like you said, it was actually both a shoot’em-up and beat’em-up. We were trying to come up with something new. By “punching” the enemies you could conserve their “power”, which could then be picked up. This would be destroyed if you blasted them. It was to have a bit of strategy in the game.
Can you give any specifics about what happened to the game and why it wasn’t finished?
At that time things began to go downhill for Innerprise, and Torben had had a little bit too much of this happening… all companies we had sold our games to had gone bust 😉
How did you end up working as part of a team on this game?
Denmark is a small country so the Amiga community in Copenhagen was relatively small. Torben got in contact with these guys so that’s how it started.
Can you tell me a little about your involvement in Hugo?
For Hugo there were 4 levels in the initial version. I wrote the one where Hugo is in the forest… the only one that updates each frame I might add 😉
Who came up with the idea for the game and all the levels and how did you get allocated the forest level?
The basic idea was from the company we worked for. I think they had some initial ideas on the 4 different levels.
How long did it take you to write your part?
It’s a bit far back now, but I think it took some months.
I heard somewhere it was used as a telephone game so people could play it online on a kids TV show – is that correct?
Yes, that is true. You would use your touch-phone to control the movement of Hugo… quite fun 🙂 In some countries they had not switched to touch tone yet (remember this was the early 90s) so we had to make Hugo for “rotary dial” phones as well… there was a huge lag, so we had to reprogram the user interface 😉
Were there any problems or technical challenges with the game, having to adapt your code to fit whatever the main “shell” of the game used or were they all pretty much standalone levels?
Each of the levels were pretty much standalone, but as I remember it was a bit tricky to make it all fit together… this was fortunately not my job 😉
Do you still have the source code and all graphics for your Amiga games? If so, would you ever release them to the community assuming you have the rights to them?
Yes. I had all the floppy disks nicely organized in a single box with all the source and data files. That was the starting point for BS ONE. Surprisingly, almost all the disks could be read without problems. I put a small excerpt of the source code above. I have thought about releasing the source code and other printed “memorabilia” previously, but now that we are making the games for iOS I thought I would put that off a bit longer 😉
What other vertically scrolling shooters impressed you? Here’s a few names off the top of my head: Sidewinder, 1943, Sonic Boom, Xenon 2, SWIV, Banshee, Mega Typhoon…
I liked the 194x series from the arcades. Xenon 2 I also played once or twice, maybe also a couple of the other ones. I however have to admit that I was so much into making the games at the time that I did not play so many other ones 😉
Which games in general can you think of that technically impressed or baffled as to how something impressive was done?
I remember I was impressed by how “Shadow of the Beast” looked and performed, but I did not play it so much. We were very much into games that update every frame, probably from the arcades, so that was the sort of thing I was looking for…
Did you ever receive any fan mail? (Back in the 80s/early 90s here, before the internet of course!)
It was indeed many years before the internet… something I have often “laughed” about 😉 No, there was not really anything like that. Of course I would hear from time to time how people loved the games, and still to this day. But definitely that is clearer now with the Internet and e-mail. Also, we did not promote Cope-Com much at the time, as much as other companies would promote their brand.
Are you aware of the amazing program WHDLoad that enables you to play almost all the classic commercial games on a “modern” Amiga from hard drive?
I have been out of the business too long to keep up with these kinds of things 😉 But I have played various games, including Battle Squadron, on WinUAE.
What do you think of the many people out there that have collected, catalogued, scanned and preserved all the old games, magazine reviews and then created websites – infinitely more work than the publishers would ever do?
I am really impressed and happy that somebody took the time to do this. A lot of our work, and evaluation of it, would have been lost forever if somebody had not done this. It is quite nice to sit and read these things, which I also have from time to time over the past 10-15 years.
Are you still in Denmark these days?
We are indeed in Denmark… and always have been 😉
What are you up to these days besides converting Battle Squadron to iOS? Is that your ’employment’ or a purely a hobby?
This is definitely a hobby project. I actually do research in biotech now, so I am probably a bit “off” the general path of coders of that time 😉
It has been a pleasure Martin, and I wish you a great deal of success with the re-release of your fantastic Amiga games!
For those of you that own an iPad, iPhone or iPod Touch, you can now download it from the App Store (or see www.cope-com.com for details).