World Warrior

A couple of years back I had uploaded a gameplay video of World Warrior, an unreleased Amiga (AGA chipset) game of mine, and every now and again, I get requests to make it available online. I finally did! World Warrior was originally a working title, and the game is to Street Fighter 2 what Blaze is to Sonic: a blatant rip off. Admittedly, as a kid, copyright law was never my forte.

Notwithstanding the ample representation the beat ’em up genre finds on the Amiga, it is undeniable that the SF2 port is a train wreck. Having played the game in the arcades and on console, the Amiga version always made me throw up a little in my mouth, until one day, in a fit of rage, I shaved my hair, smashed the game floppies, ground them to ash, poured the ashes on my head, and swore before the gods a solemn oath: that I would write my own beat ’em up. In assembly language. OK, this might not be exactly how it happened, cause I still have the disks lying around, but, well, memory is a stranger and history is for fools.

Having gained some experience from writing Blaze, I set out to write proper tools to help me design the character composites, animations, hit-boxes and so on, before even writing a single line of game code. In the end, I had developed a powerful animation system, where each character frame was composited from tiny pieces, tightly packed into a sort of texture atlas. I had opted for this approach for two reasons: first, I wanted to reuse character bits and pieces throughout animation frames, and second, well, memory constraints. I had also learned a nifty trick to scroll the screen at 50 Hz, even though the game was running at a lower frame rate (25 Hz, I believe). It’s possible that the atrocious flickering that plagues the game is due to a bug in the scrolling, which I had later fixed; the patch but was lost with the binaries and sources when my hard disk gave up the ghost.

The requirements I set for the animation system were simple: it was to recreate SF2 and FF characters and their dynamics faithfully, including the slowdowns and vibrations that occur when a player lands a hard hit on an opponent. SF2 used a six-button configuration, three for punches and three for kicks, graded in order of strength: low, mid and hard. It was hard to port over this control scheme to the Amiga with its single-button controllers, so I dropped the mid-strength moves and used a button press in conjunction with a joystick push in a cardinal direction to provide a low/hard punch/kick system. To this day, I still can’t say whether this was a good decision. Having neither friends nor computer AI players to play against, I never really got to test the control scheme properly.

Looking at game’s graphics, I must admit they look like puke strewn on the screen (dat green!), but, hey, I was never a graphic artist. My uncle had a video camera which I borrowed to help me digitise the backgrounds before retouching them in Deluxe Paint and compositing them for the game. The background is built from bits of video capture of the bastions near Porte des Bombes and original artwork.

Run brother! The large green puke of doom is coming for us!
This is what the bastions near Porte des Bombes look like today, courtesy of Google.

I’m still not sure why anyone would want to play this flickering mess, but if you do, you can download it from here. It’s even more unfinished than Blaze; the option screen doesn’t work and you can only play against another human player… and the round goes on forever as there’s no health system.


Adios Amiga

Really and truly, I never expected the video of Blaze I posted online a couple of weeks ago to generate so much interest. What surprised me most of all is the love Amiga users still have for the machine and how active the community is, to this day! Just the other day I was witness to an exchange between users (on the EAB) about the best (read: fastest) way to draw blitter objects in a multidirectional scrolling 2d-engine – it was both entertaining and enlightening.

Anyway, I digress. I never expected people to find Blaze interesting, but what do I know of people? To me it was a learning experience and an homage to a game I played to death. Moving on from Blaze, I made another attempt at programming a clone of two other all-time favourites of mine: Fatal Fury and Street Fighter II! The working title of the game was World Warrior. I know, I know, I could get an award for how unimaginative the name is.  Le video below:

Although I can’t remember why I had stopped working on the game (probably it was school commitments or the like), I had been pretty happy with the character animation and compositing system I had crafted. Like Blaze, World Warrior was written entirely in assembly, although unlike the former, the code was much cleaner and modular. The game also had 50 Hz scrolling, although the actual character animation and sprite updates ran at 25 Hz. The version shown in the video is not the latest version developed, but an earlier copy I had copied to diskette (probably to show to my friends or something).

Unfortunately, the assets, source code and tools are lost forever – the bastard below broke – I lost tons of other stuff in the process. The problem seems to be a faulty controller. Sigh.


Well, this was my last *big* project on the Amiga before moving on to PC (some twenty years ago), so please take all my technical recollections with a pinch of salt!

Edit: More pictures of the faulty HDD, a Conner Peripherals CP 2064:

Blaze Source Code (Redux)

After a Saturday night of disk swapping and casual tinkering, I managed to find all the necessary source files for building Blaze. I set up a development environment in an FS-UAE A1200 virtual machine and tried my hand at rebuilding the binaries. I hadn’t expected the process to go so smoothly.

For those interested in building the game from source, you can download the complete code here. I’ve also recorded a short video about how to assemble the game using Devpac 3.18, followed by a playthrough of the demo level from the binaries just built. Please note that you still need the assets (graphics, maps, enemy layouts, etc) to run the game. Just in case, you can grab a copy here.

I also managed to salvage some tools and work-in-progress graphics that never made it in the demo. I will be making them available in a coming post.

In the meantime, enjoy!

It’s alive!

Things have taken a turn for the better thanks to my pals at MNE. They fixed the problem, a faulty power brick, in no time. Thanks Jordan and Stefano!


Time hasn’t been very kind to the A1200’s internal HDD. The drive is kaput – most likely a problem with the controller. Source code and assets from later projects are now gone, including my last big project on the Amiga: a Street Fighter 2 clone. Fortunately, Blaze was pre-A1200, so I still have all the stuff on floppies. Patrick, our go to guy from IT Services, has kindly offered to replace the faulty HDD with a 2GB one he had salvaged from a dead laptop. The new HDD will save me tons of diskette swapping, so thanks Pat!


Blaze Source Code

Since the last post, curiosity got the best of me so I dusted my old A1200 and fired it up. I managed to load some of my old stuff and even play Blaze on it (but only after disabling CPU caches).

This got me thinking: there’s a bazillion small things I wrote ages ago that are still on floppies… maybe it’s time I moved them to some sturdier media, just in case? Given somebody in the last post asked for the source code of Blaze, I thought I’d start with that. After finally managing to find a disk drive that could read 720K-formatted floppies, I transferred the bulk of the source to PC. Pastebin here: Blaze Source Code [Warning: it’s very badly written!]

Fifteen minutes later, my A1200 just died: assets (graphics and maps) and tools I used to design the maps with are still on the damn floppies 😦

Edit: Not to worry though, an enterprising user of the English Amiga Board has ripped both sprites and tile blocks from the game disk; get them here.


A trip down (video game) memory lane

This morning I was reminiscing with some colleagues about the golden age of the Amiga, and casually brought up some anecdotes about stuff I had written for it. After some poking I dug up my only surviving artefact from that era: Blaze, a platform game inspired by Sonic the Hedgehog, which I had conveniently converted to ADF some years back. I recorded a video of myself playing the game and posted it to YouTube. Now, I realise that, being the programmer notwithstanding, I suck at playing the game…

Download Blaze ADF.