Settings

Theme

Chopper Commando Revisited

blog.loadzero.com

45 points by loadzero 6 years ago · 22 comments

Reader

loadzeroOP 6 years ago

Author here.

I used to play this 2D flick-screen CGA DOS helicopter game as a kid, and I remember enjoying the simple presentation combined with what would now be called sandbox elements.

I thought it was really cool that you could eject from the helicopter and still run around and do things as a little sprite dude, and then get back in and fly off.

When I saw that the source was available, and had a poke around, I decided it wouldn't take (too) much effort to do a modern port, and make the game natively playable on today's machines.

It was a fun little project, certainly easier than my previous game restoration (Space Invaders in C), and it was interesting to explore the creation of a young Mark Currie, cranking out a bedroom coded game in Turbo Pascal.

So, here it is, a modern port of "Chopper Commando" from early 90s Turbo Pascal on DOS, to C and SDL running on modern unix (linux/mac) and the web.

Enjoy.

  • loadzeroOP 6 years ago

    As a postscript,

    For the web hackers out there - the lossless animation at the start of the article is not a <video> or a gif.

    I got annoyed with how video codecs destroy pixel art, and other things, so I wrote my own.

    This was almost more fun than doing the port.

    • frou_dh 6 years ago

      Incidentally, that's why I'm not interested in playing any games using a streaming service like OnLive, Google Stadia, etc.

      Ever since PCs have had DVI and consoles have had HDMI, gaming has been pristine lossless imagery. Go to IP video streaming and have compression artefacts taking a dump on every single frame? No thanks!

  • jrrrr 6 years ago

    Thanks for doing this! I too have a lot of nostalgia for this game, which had a depth to it beyond most of the other stuff I was playing at the time.

    What was the porting process like? Use any tools to assist with it?

    • loadzeroOP 6 years ago

      I'm glad to see that others remember this fondly as well.

      The Pascal to C translation was a bit gruelling. I'd like to say that I'd written a fancy transpiler for it, but it came down to a 20 line ruby script, some vim macros and a ton of elbow grease.

      I added the functions to emulate the Turbo Pascal library as I went. This was a bit more fun, because I got to play around with implementing line drawing, circle drawing and flood filling, and really low level stuff like that.

      The final stages, adding in threading to handle emulating the keyboard buffer, framebuffer and PC speaker was also a lot of fun.

      I plan to cover at least some of these things in part two.

      • fiddlerwoaroof 6 years ago

        Why not use something like freepascal with SDL bindings?

        • loadzeroOP 6 years ago

          With these restoration projects, I am usually looking to maximise code portability and minimise dependencies, which for me means C.

          Sticking with Pascal would have been more authentic to the original source code, but I think that would have been more painful for me to deal with, and come with a lot of unknown unknowns.

          I would likely also have been sacrificing my ability to port it onto the web and other interesting targets.

          • pjmlp 6 years ago

            FreePascal WebAssembly is almost fully there and FPC already has plenty of supported targets, basically almost any CPU that matters.

            However it is your project, your decisions.

          • fiddlerwoaroof 6 years ago

            Yeah, that makes sense, I mentioned freepascal specifically because it has pretty broad platform support (and can generate LLVM bitcode). But, maybe the cost of translating to C is worth it.

  • kbenson 6 years ago

    I loved this game as a kid. I think I only ever had a demo, because I don't remember being able to play different missions, but I played that simple demo a lot, and revisited it over the years. It had just enough free control and different actions to make screwing around rewarding and fun.

    Thanks for porting it!

  • pjmlp 6 years ago

    Why not FreePascal? That would have been my approach.

  • willtheperson 6 years ago

    Woah, someone else who played this game!

    I spent many hours on my PC Jr trying to climb the ranks.

    Thanks for making this!

olliej 6 years ago

I always liked the wonderful game “sopwith” which I believe has been rewritten/updated over the years

  • loadzeroOP 6 years ago

    I have not played it, but it does look to likely be an early inspiration for Chopper Commando.

    It would be nice if someone made a web version of 'Sopwith', too.

transitorykris 6 years ago

Ah yes. The Mark Currie zone. Going all the screens to the right and shooting a hole in the hill and flying through it got you re-armed. And don’t hit the text, it’s quite solid.

  • RhysU 6 years ago

    Aaaaahhhhh my head!

    Also, the slowdowns on partially off-screen explosions.

sbuttgereit 6 years ago

I never played this one... but the article did take me back to a game I greatly loved: Choplifter, which I played on the c64.

I remember being impressed that the helicopter in the game could pitch and yaw and such... at the time it seemed so polished.

https://en.wikipedia.org/wiki/Choplifter

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection