Hacker News new | past | comments | ask | show | jobs | submit login
Chopper Commando Revisited (loadzero.com)
45 points by loadzero 11 months ago | hide | past | favorite | 22 comments

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.


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.

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!

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?

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.

Why not use something like freepascal with SDL bindings?

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.

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.

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.

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!

Why not FreePascal? That would have been my approach.

See below.

No longer below. :) Answered there.

Woah, someone else who played this game!

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

Thanks for making this!

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

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.

Yes Sopwith was an inspiration so was F-15 Strike Eagle and F-19 Stealth Fighter by Microprose.

Ah, it does have a Microprose feel with the campaign, mission structure, and ejecting.

Thanks for giving me permission to publish the port, and cheers for writing a game that has given people some fun memories.

It's great also to see that you're still making games, 30 years on from this.

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.

Aaaaahhhhh my head!

Also, the slowdowns on partially off-screen explosions.

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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact