I am the author and maintainer of ModelsBuilder, an essential tool for the Umbraco CMS. If you use it regularly, or any of my other Open Source tools, you may want to consider my GitHub Sponsorship Program and help ensure that the tools you depend on are maintained in a sustainable way. Thanks!

Remember Rick Dangerous?

Posted on June 5, 2019 in hacks , xrick

Way before Lara Croft, back in the 1980's and early 1990's, Rick Dangerous was the Indiana Jones of computer games, running away from rolling rocks, avoiding traps, from South America to a futuristic missile base via Egypt and the Schwarzendumpf castle.

Rick Dangerous

Produced by Firebird and developed by Core Design (both long gone now), this platform game was conceived by Terry Lloyd and Simon Phipps and released in 1989—see the Rick Dangerous Resurrected site for tons of details.

I fell in love with the game around 1990, and started to crack and reverse the IBM PC (x86 CPU) version. No IDA Pro nor emulators at that time: all I had was plain MS-DOS debug command, and paper. But it was pretty magic to understand how it all worked.

xrick

Ten years later, around 2000, I decided to port the game from assembly to C, so that it could run on the now ubiquitous Windows platform, and on Linux, thanks to the SDL library. And xrick was born. I also reversed the Atari ST (68k CPU) version of the game, in order to extract the much nicer graphics and sounds.

I released a few versions, including the December 12, 2002 final version that was complete and has since been ported over to Windows, Linux, BeOs, Amiga, QNX, Nintendo DS, GameCube, etc. and all sorts of gaming consoles, phones and devices.

And then, nothing much happened. A Rick Dangerous Flash version was released, and I cannot remember whether it was based upon xrick or not. Few people submitted fixes, but I had no time, really.

2019

And then... it is now 2019, WebAssembly has become more mainstream, and emscripten has SDL2 support, and there was this challenge: can xrick run natively in the browser?

xrick

Well, the answer is, yes it can! Go play at xrick.net! It should work on any recent-enough browser that supports WebAssembly.

All I had to do was... port from SDL1 to SDL2, understand how the rendering loop works in WebAssembly, and tweak a few things so emscripten could compile the code. Which is now available in its own GitHub repository. Feel free to contribute!

And before you ask (because that's the most FAQ): no, I do not have reversed Rick Dangerous 2, and certainly do not have time to do so. You'll have to wait until I retire.

comments powered by Disqus