Bruce Lee - Return of Fury

"Postpartum"

Final loader picture by Sparkler

Background

I've always had a peculiar fascination with this game, at times bordering to obsession. In 1985, when I was 9 years old, my best friend's older brother descended over the hill showing us two games he had tucket inside his jacket. One of them was Bruce Lee, and the other I can't remember.

Bruce Lee tape and cover

Curiously, my friend's brother actually resembled Bruce in that cover. We played it to death in it's fun two player mode, which I believe is the key to the longevity of my fond memories of this game. Over the years I always had it in the back of my mind. In 1996, I attempted a remake for the Amiga, and had something playable, but don't remember why it wasn't finished.

Reverse Engineering

Fast forward to 2016, 2017. I hobbied myself by creating an "extended" C64 emulator in C# which allowed me to start disassembling/documenting games while playing them. Bruce was a natural choice for this experiment. In April 2018, I had the disassembly fully relocatable, which means that it was now possible to move code and data around without side-effects.

The first thing I did was to replace the sound-effects engine with my own, simply because I wanted to do a sfx routine. I kept the original sound data and priority system. I added a little "oomph" to the punch sound, though.

The next step was to analyze and create an encoder for the compressed map data. It was a straightforward RLE algorithm. I built a map editing environment using Tiled. This made it easy to start experimenting with maps, and also let me document the code further. The first map I created was this:

Bruce Lee - Return of Fury first map

I made it to look similar to the original game, only "35 years later", which is why it looks to be in shambles. (The moon was added later.) I rewrote the "reveal" routine, which is used to show the ladder after collecting the right lamp. It was rather elaborate, and I used it for only 2-3 maps. That was a little wasteful. After making four maps, the whole project was then shelved in May after the initial rush and satisfaction of the effort had worn off.

New World

It wasn't until November 2018 that I decided to go for an entirely new world for the game, and in January 2019 the final map was in. It was getting harder coming up with map ideas, as the number of tiles available are severely limited. All the "hazards" code was rewritten, 3 player mode, continue option, title, game over + ending music, and other bits'n'bobs were added. Additionally, I was only a few bytes away from having to reorganize the sprite pointers, so I decided to call it a day there.

For the ending screen, I chose to have Bruce "emerge to the sunlight", which also allowed me to re-fit the moon to a sun only by setting the colours. I did a brief, ad-libbed version of the main theme from Fist of Fury, and made him jump in victory — a nod to the original game.

While waiting for the "loader" picture by Sparkler, who was busy painting a picture for Mancave, I got a tingle of creativity and did a loader tune. To test the loader code, I tweaked Kelly Day's original loader picture, as shown below. We had attempted to compose a version of "Time" by Pink Floyd, as this was used in the first film starring Bruce Lee, The Big Boss, but it didn't work out as a SID. However, there's still a ticking clock in the start of the tune as a homage to The Floyd.

Temporary loader picture

You can download the first revision of the loader here:

Download Bruce Loader Rev 1.PRG (02/2019)

The tune is a thinly veiled tribute to two of the most famous C64 musicians, Martin Galway and Rob Hubbard. The music player is my own, but with Hubbard's signature pulse, vibrato and arpeggio code transplanted in from his "Monty on the Run" routine. It's a sort of mash-up of a Galway-esque melody played through Hubbard's tech. It's quite short, as my editor has no sequencer, just long patterns. I tried to make up for it with some progression — which was the point of not having a sequencer in the first place.

Pre-release

Teasing it on Twitter immediately sparked some interest, and before long some high-profile retro personalities inquired me about the game. The first to feature the game on Youtube was Louie at RetroGamerNation: on 2019-02-11

He followed this up with an article on Vintage Is the New Old: Bruce Lee Return of Fury on it's way to the C64

On 2019-02-13 I implemented the missing parts: Map 21 (a revisit map) lacked a "fire" that was in the original, max. 3 continues were added, some text tweaked, some bug fix, selectable hard mode, and finally a more plausible demo movement.

Someone on Lemon64 asked if it was possible to play as Bruce in the original yellow colour, so I put it in (Push up in the player select screen to switch colours.). Some think that the game was "white-washed" to be politically correct. My belief is that Bruce was yellow in the original game not because he was Asian, but rather because of the cool yellow jumpsuit he wore in Game of Death. I thought it looked cooler if he was in his bare upper body, this time ready for some serious ass-kicking.

After confirming with Sparkler that he'd be able to finish the loader picture in two weeks, we announced the release date to be 2019-03-01.

In the final week I tested the game on NTSC, fixed a few tiny bugs, and changed the colour of a few maps to break up monotony. The "skip every 6th frame" trick on NTSC for the loader didn't sound right, so I left it out.

Sparkler finished the amazing loader picture on 2019-02-25. The remaining test and final changes on 2019-02-26. Linking was kindly done by Microbit.

A final show-stopper bug was found 2019-02-28, but was hopefully squashed. Oh well, too late now, it's final!

Release

Friday morning on 01 March 2019, Roy and I uploaded the final d64 to itch.io and csdb, and started announcing it on social media and the web.

The "crackers" were at it, and within hours they had released a +1 (aka. trained) version on csdb.dk. More followed, but on Sunday the last one appeared, even featuring with highscore saver and fix for Action Replay! I'm impressed at the tenacity of some hackers, but then I think of myself and... OK, I get it. Mr. Knight Rider of Excess kindly PM'd me how to fix the Action Replay bug, so I'll implement that in a later bugfix-release.

Overall, the reception was very positive, with most players excited to try out a new world in their old favourite. Some found it brutally hard, while others didn't mind the increased difficulty.

The one thing that really made my day was when Mr. Ron Fortier himself quoted the release tweet, and said "Looks fantastic!". Starstruck!

Longtail

A few days later, the hype was over and something else caught the attention of retronauts. The game is now in "longtail" mode, where more casual and new C64 players will discover it and forget it as the years go on.

Total downloads as of 2019-03-04 were: CSDB 672 and Itch: 1473. Not bad!

Longtail updates

2019-04-29

I was approached by some nice Atari fans, and helped them out documenting some of the disassembly of the original A400/800 game. After comparing the two game disassemblies, I can confirm that the C64 code is an almost direct port of the original version.

This also sparked a remake effort on the Atari Age forums, which looks very promising indeed! Check out the forum thread here.

2019-07-10

I'm working on an official Easyflash release of this game, with some bug fixes, tweaks and bonus material. Progress is slow, but it's getting there. It'll be released when it's deemed ready.

2019-10-18

Return of Fury has been superceded by Return of Fury+:

Return of Fury+ announced in Bruce Lee Duology pack

2019-12-30

Return of Fury voted 6th place in the RGN Gamer's Choice 2019 Awards!

2020-07-26

According to this AtariAge thread there's some development in the ROF Atari port!

Credits

Links

If you have any, let me know