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.
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!
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.
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.
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.
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.
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.