Show HN: After a decade of reversing, I got co-op working in DOS Wing Commander
Posted by daniel_rh 1 day ago
Comments
Comment by daniel_rh 1 day ago
Over ten years my brother and I went through a set of experiments (stop and go, turn, communicate) while probing the memory. We uncovered where the variables were, how to inject calls into the game functions, and how to sync the gamestate across the network, so we can fly the story missions together.
My favorite finding is that the camera lives in entity slot 0x3D, which is possibly a "3D" reference by the original developers.
You can play it at https://fireflyk64.github.io/dosbox in browser. If you own Wing Commander, drag in the installer since no game files are hosted. If you don't, the page will load the original DOS/3Dfx version of Vega Strike, before I open sourced it. I upscaled and redid DOS Vega Strike art using AI, but it now has multiplayer and a similar feel.
I'll be in the lobby for the next few hours if anyone wants to fly together.
Disclosure: I also used AI for the final step to help compile for the browser and port our TCP networking stack to WebRTC with voice and solve a few lingering bugs.
Comment by cadr 1 day ago
Comment by spiritplumber 16 hours ago
guess what me and kuprin who met on the privateer remake forum are a couple, and i got citizenship <3
miss you!
Comment by n0th3rwcf4n2026 7 hours ago
Anyways just wanted to say I appreciated all the work you did and thought it was cool to randomly run across you here!
Comment by frikk 1 day ago
Comment by daniel_rh 1 day ago
However, that original WC-only 8+ years of figuring out how the data segment was organized and how to call original functions was all by-hand hacking. It was indeed like cutting through a dark forest with no guide.
Comment by genxy 1 day ago
Comment by atakmim 1 day ago
Comment by daniel_rh 7 hours ago
Comment by EmX_3000 1 day ago
EDIT: I will point out that people would often submit letters to computer magazines with the memory locations of popular games as time went on. But this could take months or a year or more, and a game might never have its secrets laid bare so I suspect a LOT of people just did it manually at home.
Comment by photios 1 day ago
Never heard of WozMon before. I was a happy Game Wizard user :D
https://web.archive.org/web/19970119194137/http://www.gwiz.c...
Comment by vidarh 1 day ago
Comment by daniel_rh 1 day ago
Comment by EmX_3000 1 day ago
Comment by adzm 1 day ago
Comment by daniel_rh 1 day ago
But there is still a revolution where most game files are JSON or plain text (like that build list from Star Trek Armada 2).
Comment by EmX_3000 1 day ago
Comment by t3r 1 day ago
Comment by InsidiousWombat 1 day ago
That was, mind you, in game released prematurely with ton of bugs. They found time for that.
How I know that ? I didn't cheat knowingly. I just used the editor, couldn't make up my mind and I was going between the steps once or twice. I thought I forgot to spend some skill points, turned out when you went back to the skills screen, the ones you picked stayed but the game gave you new set of points to spend
They found the time for cheater heckling but not to make their character creator work right ;)
Comment by asdff 1 day ago
And then you have to figure the devs realize you can do this and reverse engineer the entire game anyhow. Why even obfuscate it is the real question. Makes their workflow a little more awkward potentially and doesn’t do the intended thing.
I blame the nontechnical C suite. They don’t understand what I just wrote. So to them, this instead makes perfect sense. Lock it down, never mind why or if the lock works, just lock it and tell me its done. Command comes from upon high and so marches the industry and the hackers after them.
Comment by smolder 1 day ago
So, to game developers in the less-early-but-still-early days, letting people cheat their way through even a single player game was a danger in that it took away the prestige of actually succeeding by normal means. It was a shameful thing to do despite the triviality. To them, getting a high score or completing a game was serious business, and cheating deserved countermeasures. Nowadays people openly cheat in competitive games where it DOES impact other people, with no remorse. I would prefer the extreme where all cheating is treated like crime over the opposite where people are proud of their ability to install an aimbot.
Comment by harry_F 1 day ago
Comment by daniel_rh 20 hours ago
Comment by herodoturtle 1 day ago
What a brilliantly fun project to share with the world. Thank you to the authors.
Comment by InsidiousWombat 1 day ago
Comment by JeppyG 1 day ago
Comment by ShakataGaNai 1 day ago
Comment by dond1986 1 day ago
Comment by daniel_rh 1 day ago
One problem I'm noticing is that people are much more interested in one-click play (which means using the Open Source RetroVega space game, which I checked in at https://github.com/danielrh/wcmulti/tree/master/retrovega ) rather than going through the trouble to dig up the installer and get the full year 1990 retro experience with Wing Commander. I worry that making older games work is not worth the time it takes if no one tries it.
Comment by Tepix 1 day ago
Comment by daniel_rh 1 day ago
Comment by abrookewood 1 day ago
Comment by nnnlog 1 day ago
Comment by xjlin0 16 hours ago
Comment by 0xmattclark 1 day ago
Comment by shopcutout 1 day ago
Comment by AmazingEveryDay 1 day ago
Comment by daniel_rh 1 day ago
Comment by terminalcommand 1 day ago
Comment by alexandrustanci 1 day ago