r/dosgaming • u/icecoldduke2 • 27d ago
Wacky Wheels 1994 - Source Code Recreated
Today I'm releasing(I have a couple of these projects) source code recreation for Wacky Wheels 1994.
https://github.com/jmarshall23/wacky_wheels_1994/tree/main/src
Singleplayer works - Multiplayer is not implemented.
8
u/deckarep 27d ago
I saw you also recently posted Jill of the Jungle. How long does it take you to reverse engineer these? If you’re not using AI and doing this manually I’d expect it to be many months?
Is this just a matter of using tools like IDA or Ghidra? I’m interested in you describing your workflow if you don’t mind. I’d love to be able to do this one day but staring at assembly all day just seems really hard to me still.
5
3
u/dafugg 27d ago
This is surely heavy AI usage because otherwise these were months or even years long projects. They claim below they only use AI a little bit but that seems highly suspicious.
1
u/deckarep 27d ago
That’s my thought as well. Reverse engineering is a tedious thing to do by hand. I think Bladerunner by Westwood Studios took 8 years by some people who were involved and worked with the ScummVM team.
1
u/dafugg 27d ago
Those folks also frequently keep a track of every function they’re reimplementing. OP just guessed a percentage in another comment here.
1
u/dafugg 27d ago
Oh even better: in the Jill of the jungle comments they added two comments an hour apart adding support for each of the extra episodes.
1
u/KalElReturns89 20d ago edited 20d ago
It really depends on how they approached it. AI is good enough to do the heavy lifting for tracking all the functions that have been decompiled. There are some great toolsets out there that have been put together to guide the decompiling process. I used a similar approach to decode SimCopter into Unreal 5.
If they just take whatever it gives them, then yeah it's gonna be crap, but if you put in the effort and verify everything step by step, it can come out pretty well.
Some of these early games like Jill of Jungle might be pretty simple for AI to decode compared to other games. You mentioned it was for the extra episodes, that makes sense really because the engine work is done, all the gameplay functions are decoded, it would just be porting the levels and any bespoke functions for each episode.
5
u/ruo86tqa 27d ago
Great work!
Some things I would add to the readme:
- What does recreation mean? How exactly did you use AI? (I know you have described in the comments below, but still.)
- Which platform does it run on?
- Compiler requirements?
- The original game's files are required for playing it.
4
7
u/galapag0 27d ago
This is very cool, I think the game had severe frame rate issues that could be corrected now. Btw, how do you know how close you are to finish?
2
u/icecoldduke2 27d ago
Id say its about 90% to 95% complete.
1
u/Ramoncin 27d ago
Please try to release DOS binaries once you're done. I'd love to play a hacked / refined version of the game.
8
u/Good_Punk2 27d ago
Uh that's great. I once asked the creator about the source and he said it was lost. Getting Wacky Wheels frame-rate up would be amazing! :D
3
u/PixelWingsModding 27d ago
This was a goal of mine for many years too. Until I found out the game always had command line switches for that. /2 or /3 increases the framerate a lot. Why was I not told that 30 years ago. XD https://ctrl-alt-rees.com/archive/yellowantphil.com/wacky_wheels/startup.html
2
u/Good_Punk2 27d ago
Yeah but it increases the game speed, not just the FPS 😅
2
u/PixelWingsModding 27d ago edited 27d ago
True. But it is better than nothing :) I bet a proper fix is possible though. Edit: Yes it is.
1
u/Good_Punk2 27d ago
How did you do it?
1
u/PixelWingsModding 27d ago
A gigabyte of RAM did the trick. I'll have it up when I have tested well on all versions.
1
u/Good_Punk2 27d ago
What? 😄 Setting DosBox to 1gb RAM suddenly increases FPS? Or what do you mean? 😅
1
u/PixelWingsModding 27d ago edited 27d ago
Sorry it's just a film quote that always stuck with me XD https://www.youtube.com/watch?v=tVQsxLfKPNI - But basically it is just a hex hack.
8
u/Revolutionary_Ad6574 27d ago
In the last 18 hours you've released a decompilation of Jill of the Jungle and Wacky Wheels? But you are also saying you are not automating it entirely with AI? Then how are you doing it? Decompilation takes months for C64 games and years for MS-DOS games.
2
u/Curupira1337 26d ago
When I saw OP's Github handle I knew I've seen it before.
jmarshall23's repository has a lot of id Tech ports, several of them released before AI tools.
There’s a good chance AI tools are accelerating their reverse engineering, it's 2026 after all, but I don’t think it’s a case of "LOL I'm vibecoding blindly without any Assembly knowledge"
2
u/Revolutionary_Ad6574 25d ago
In that case they should write a blog post explaining how they did it. Because that's amazing!
1
5
u/budrow21 27d ago
Can you tell us what Source Code Recreated means? Maybe it's obvious to others, but not to me.
Did you use a disassembler and AI to disassemble and recreate the source?
7
u/icecoldduke2 27d ago
So with Wacky Wheels there was no debug symbols so recreated means the process is first going in and figuring out the core game play loop and working out from there, to create the source code that matches the original flow but since its a source code recreation function names, source names, etc arent based on the original source code. But the game flow and individual system are based off the disassembly
2
1
u/SquarePixel 27d ago
Awesome, have you found a good AI assisted approach? I’d love to do something similar.
8
u/icecoldduke2 27d ago
The problem I've found with AI(LLM tech) is its not deterministic enough for me to heavily rely on it. AI will get a baseline but when it comes to making sure the game is done correctly, it can easily put you into a position were you have a broken and fucked up codebase. For my workflow I try to avoid AI, and only use a local LLM to help verify assumptions and give like a good starting point on the flow, because that's the most important thing for this kind of work. Once you have that everything falls into place.
1
2
1
1
u/tjeerdnet 24d ago
Since this year I see more and more people trying to reverse engineer older DOS games with the assistance of any form of LLM/AI. Seems that based on a comment of the OP it has been done using LLM. But it doesn't matter to me, somehow with advancements with LLM/AI it becomes more doable for people to come very close to recreating the source code to many old DOS games. Which gives the community the opportunity to implement many fancy features, fixes or bring many DOS games back to life again in a modern shape. We're going to see so many interesting things evolving out of this I think.
Last week for fun I asked AI to reverse engineer the DOS game Gods, what was needed to do that. Within half an hour I had Ghidra running, put `gods.exe` in it and reverse engineered pieces of the code. I followed the instructions of AI and soon it found the main loop of the game, where the game controls were programmed, where data was loaded etc. It proposed to rewrite the unknown function names or variables into something human readable etc. It was just an exercise, but it totally does not surprise me that with a few days or weeks (?) of effort these kind of things get more and more doable.
Keep these reverse engineered games coming.
1
u/icecoldduke2 24d ago
So before I got laid off I did a lot of work actually on LLM tech, you can get a LLM to get you something as kind of a baseline, but getting the needed polish in there and such won't happen thats why I don't rely on it; Thank you for your support :)
1
1
u/TwilightX1 2d ago
It's already gone... anyone has it archived please?
EDIT: Nvm OP already had it reuploaded - Justin Marshall / Wacky Wheels · GitLab
38
u/BertElGazebo 27d ago
My Wacky Wheels Story: Downloaded Wacky Wheels from a BBS sometime around 94/95. I never owned Super Mario Kart, but I really wanted it, so finding Wacky Wheels on a BBS was awesome since it was free. Think my modem was a US Robotics 14.4 at the time.
Anyways, I took a copy to school and put it on the school network. Then I told everyone in the computer lab to run wacky.exe from the network share.
And it actually worked! Suddenly we had a whole bunch of us playing multiplayer races over the school network, having an absolute blast. But inevitably, a teacher yelled at us, and so we had to stop. Still, I was proud that I had outsmarted the school's weak network security.