I'm very happy to see this! Not so much because of TDIII (which I played, although not nearly as much as Stunts), but because there seems to be some momentum building around recreating old games using AI agents, and I love that! I had explored some related ideas [0] but throwing Claude at the problem seems super promising. The recent Crimsonland thing [1] was great!
Stunts was the greatest! You could make your own tracks, save replays and (IIRC) even resume gameplay from any point in the replay. My very favorite game of all time.
The community is still active! In the meanwhile the car format has been figured out, so that modern-day tournaments like ZakStunts feature vehicles not included in the original game.
This is an interesting area. I've felt that with AI, it would be nice to have a project that I work on "by hand" so that my general skills don't atrophy and I've been writing an implementation of the Kyra engine used by old DOS games like Eye of the Beholder. It's mostly well documented and there are full fledged implementations (like with ScummVM) so this is just exercise for me.
I wrote a decoder for the CPS file format they use for sprites and it worked file for all images except one. It rendered half the image properly and then scrambled the rest. I could see that the sprite information was there but there was some offset problem. I had claude dig into it in detail along and gave it the ScummVM source for reference. I also gave it Ghidra so that it could debug the actual EOB.EXE file but nothing we tried got it to render properly. Even SSI's own code which got from a modding wiki failed to render this image. My final conclusion was that it was a half done asset that somehow found its way into the asset archive and is never used in the game but that's a flaky conclusion given that its name is referenced in the EXE.
I've been having a lot of fun upscaling the sprites used for the cutscenes and remixing the music using AI. It's a game I played a lot as a kid so being able to tinker with it at a low level is a nice distraction.
It's purely a "fun" side project without deadlines or anything so I get to do what I want with it without any hassles about "being productive".
I love the idea. I used Claude Code / Sonnet 4.6 to get back to compile an old DOS game I wrote back around 1991 and for which I had lost the tooling (compiler / linker / notes / build files). It was on my todo list since years, decades even, but I never got to it. With a LLM it was easy: I didn't let the LLM do everything, I used it to find what needed fixing (like two macros I had used with names that were now clashing with "modern" compilers methods names etc.).
> I hacked together the art using my terrible Gimp skills and some Public Domain and Creative Commons assets from OpenGameArt
IMO AI models are better at generating pictures than at writing code, in that pictures do tolerate sloppy approximations. While code doesn't tolerate slop that much.
> IMO AI models are better at generating pictures than at writing code, in that pictures do tolerate sloppy approximations.
So does code. You can have poorly written code that runs slow but gets the job done because modern machines are powerful enough to make up the difference. (cough the majority of electron apps cough).
Youâre definitely going to get dinged more for AI art. People canât see the code, but they can see the art - thatâs their first experience with the game unless the code is so bad that it literally causes visible bugs.
I work heavily in the generative space and while standalone AI art has come a long way, maintaining visual consistency in sprite assets across an entire game still needs a ton of hand holding particularly if you require animated sprite assets without them looking "uncanny valley".
That's a great idea! Just haven't gotten that far yet (that article is pre-LLM, and I'm very early in a new AI-driven reconstruction). But yeah, taking the original extracted sprites and having Nano Banana upscale or redraw them is a great idea.
In October of 2013, Ross Scott did a review of Test Driver III in one of the early "Ross' Game Dungeon" episodes[1]. IIRC in the video, he mentioned that he's fascinated by game maps to the degree of a slight obsession, and would absolutely love if someone could reverse engineer the game assets and extract the maps.
Someone later went on to do just that and responded in the Accursed farms forum, Ross mentioned that in his July 2015 follow up video[2]. In the video he showed some map screen shots from the forum, including a surprisingly intricate map that was apparently only used for the the spinning car menu screen. IIRC the reverse engineering project was not quite complete at the time, since the README doesn't mention any of this, I assume this project is unrelated?
That said, it would be amazing to eventually get the extracted maps integrated into noclip.website[3].
Author here. The Rossâs Game Dungeon video was, to some degree, a motivation for me to start the reverse-engineering process, just for fun. The analysis took place over many years, and I figured out 95% of the format myself. AI helped me then with the coloring, which is pretty complex. I have read the Accursed Farms forum, of course. But it didn't help much.
The map mentioned there can be found as âUnknown Mapâ in the dropdown. However, I havenât yet connected that map to the menu screen. It might be called âTomâs Test Track,â because that string appears in the disassembly.
Integration into noclip might be easy, because I also have the geometry as a standalone .obj file.
I used to play the demo of Test Drive III. It only had one map I believe. But I loved that it was a sandbox, so you could drive anywhere. I specifically remember following along the railroad. It was way ahead of its time back then.
I remember the controversy over the original Postal, and then there were eventually 3 more sequels in that franchise. The culture resists at first and eventually loses the battle.
Time for a modernized port true to the original! I also liked the TrackMania series but I wish there was something reduced to the amazing essence of Stunts.
I used the MT32 audio. Not only because it sounded better, but because it would overload the CPU and slow down the game making it playable on my Pentium 75.
My old PC wasn't good enough to play the game. You could almost see each frame render. However, the PC speaker music was really nice and I used to run the game just to listen to that.
Wonderful stuff - thanks! I was thinking about doing this as well.
I just completed recreating one of my childhood favourites, Thrust. Opus 4.7 almost one-shot the game (was perfect in 30 mins based on just the wikipedia entry describing the game), and then I spent 3 full nights trying to build perfect algorithmic AI to auto play it. (It thoroughly failed, sticking to a sub-par algo that was ok, but not nearly as good as possible).
My next stop is reimplementing Mercenary. First open world game I played. On a 8b commodore Plus/4.
On Pacific Coast 3 you can see the infinite highway. I remember turning right to a highway and there was a highway exit that if I missed I would run again this highway as on Moebious' strip to the beginning. This gave the world an infinite vibe
Test Drive 2 (and 1) used a pseudo-3D renderer with scaled sprites (see https://www.mobygames.com/game/2107/the-duel-test-drive-ii/s...)
TD3 used a 'real' 3D engine, but as a result it needed a beefy machine for the day. Driving felt a lot slower too, I never found it as much fun as TD2.
Now do TD (the original)! I remember thinking it was something from the future when it came out on C64. Similar feeling of seeing something from two years from now with Mach 3 in the arcade.
I'm very happy to see this! Not so much because of TDIII (which I played, although not nearly as much as Stunts), but because there seems to be some momentum building around recreating old games using AI agents, and I love that! I had explored some related ideas [0] but throwing Claude at the problem seems super promising. The recent Crimsonland thing [1] was great!
[0] https://www.gabrielgambetta.com/remakes.html
[1] https://banteg.xyz/posts/crimsonland/
Stunts was the greatest! You could make your own tracks, save replays and (IIRC) even resume gameplay from any point in the replay. My very favorite game of all time.
The community is still active! In the meanwhile the car format has been figured out, so that modern-day tournaments like ZakStunts feature vehicles not included in the original game.
Reaume-from-replay is a feature mode games should have, really.
>But what if we could run the original binary game code unmodified, just with better art?
There's an entire category of rom hacks devoted to this - replacing just the sprite data.
You should also take a look at 3dSen. Itâs an emulator that works with original NES ROMs but transforms the graphics into 3D voxels.
https://store.steampowered.com/app/1147940/3dSen_PC/
This is an interesting area. I've felt that with AI, it would be nice to have a project that I work on "by hand" so that my general skills don't atrophy and I've been writing an implementation of the Kyra engine used by old DOS games like Eye of the Beholder. It's mostly well documented and there are full fledged implementations (like with ScummVM) so this is just exercise for me.
I wrote a decoder for the CPS file format they use for sprites and it worked file for all images except one. It rendered half the image properly and then scrambled the rest. I could see that the sprite information was there but there was some offset problem. I had claude dig into it in detail along and gave it the ScummVM source for reference. I also gave it Ghidra so that it could debug the actual EOB.EXE file but nothing we tried got it to render properly. Even SSI's own code which got from a modding wiki failed to render this image. My final conclusion was that it was a half done asset that somehow found its way into the asset archive and is never used in the game but that's a flaky conclusion given that its name is referenced in the EXE.
I've been having a lot of fun upscaling the sprites used for the cutscenes and remixing the music using AI. It's a game I played a lot as a kid so being able to tinker with it at a low level is a nice distraction.
It's purely a "fun" side project without deadlines or anything so I get to do what I want with it without any hassles about "being productive".
And a laser puzzle game Chromatron, https://quesma.com/blog/chromatron-recompiled/.
But it gets even wilder, as now creating a Game Boy Advance emulator became a benchmark, https://gbaeval.com/.
I played a lot of Stunts in the 1990s. I only learned in the 2010s that you could actually edit the terrain, too.
Me and some friends spent so much time playing https://en.wikipedia.org/wiki/Stunt_Island
The birth of machinima! One of the giants of 90s PC gaming, nothing even remotely like it on other platforms of the day.
Your blog entry:
https://www.gabrielgambetta.com/remakes.html
is wild!
I love the idea. I used Claude Code / Sonnet 4.6 to get back to compile an old DOS game I wrote back around 1991 and for which I had lost the tooling (compiler / linker / notes / build files). It was on my todo list since years, decades even, but I never got to it. With a LLM it was easy: I didn't let the LLM do everything, I used it to find what needed fixing (like two macros I had used with names that were now clashing with "modern" compilers methods names etc.).
> I hacked together the art using my terrible Gimp skills and some Public Domain and Creative Commons assets from OpenGameArt
IMO AI models are better at generating pictures than at writing code, in that pictures do tolerate sloppy approximations. While code doesn't tolerate slop that much.
Why not use AI for the assets?
> IMO AI models are better at generating pictures than at writing code, in that pictures do tolerate sloppy approximations.
So does code. You can have poorly written code that runs slow but gets the job done because modern machines are powerful enough to make up the difference. (cough the majority of electron apps cough).
Youâre definitely going to get dinged more for AI art. People canât see the code, but they can see the art - thatâs their first experience with the game unless the code is so bad that it literally causes visible bugs.
I work heavily in the generative space and while standalone AI art has come a long way, maintaining visual consistency in sprite assets across an entire game still needs a ton of hand holding particularly if you require animated sprite assets without them looking "uncanny valley".
That's a great idea! Just haven't gotten that far yet (that article is pre-LLM, and I'm very early in a new AI-driven reconstruction). But yeah, taking the original extracted sprites and having Nano Banana upscale or redraw them is a great idea.
In October of 2013, Ross Scott did a review of Test Driver III in one of the early "Ross' Game Dungeon" episodes[1]. IIRC in the video, he mentioned that he's fascinated by game maps to the degree of a slight obsession, and would absolutely love if someone could reverse engineer the game assets and extract the maps.
Someone later went on to do just that and responded in the Accursed farms forum, Ross mentioned that in his July 2015 follow up video[2]. In the video he showed some map screen shots from the forum, including a surprisingly intricate map that was apparently only used for the the spinning car menu screen. IIRC the reverse engineering project was not quite complete at the time, since the README doesn't mention any of this, I assume this project is unrelated?
That said, it would be amazing to eventually get the extracted maps integrated into noclip.website[3].
[1] https://accursedfarms.com/index.php?af-posts/537/test-drive-...
[2] https://accursedfarms.com/index.php?af-posts/522/follow-up-e...
[3] https://noclip.website/
Author here. The Rossâs Game Dungeon video was, to some degree, a motivation for me to start the reverse-engineering process, just for fun. The analysis took place over many years, and I figured out 95% of the format myself. AI helped me then with the coloring, which is pretty complex. I have read the Accursed Farms forum, of course. But it didn't help much.
The map mentioned there can be found as âUnknown Mapâ in the dropdown. However, I havenât yet connected that map to the menu screen. It might be called âTomâs Test Track,â because that string appears in the disassembly.
Integration into noclip might be easy, because I also have the geometry as a standalone .obj file.
I used to play the demo of Test Drive III. It only had one map I believe. But I loved that it was a sandbox, so you could drive anywhere. I specifically remember following along the railroad. It was way ahead of its time back then.
Between this and Stunts 4d https://en.wikipedia.org/wiki/Stunts_(video_game) what more could a kid ask for
Carmageddon would be what a kid could ask
I wonder / doubt it or something like it would shock anyone as much as it seemed to back then.
I remember the controversy over the original Postal, and then there were eventually 3 more sequels in that franchise. The culture resists at first and eventually loses the battle.
Super Off Road... https://en.wikipedia.org/wiki/Super_Off_Road
Time for a modernized port true to the original! I also liked the TrackMania series but I wish there was something reduced to the amazing essence of Stunts.
I'd ask for Rock n' Roll Racing!
I remember being mocked slightly when I was headbangin' and footstompin' to the soundtrack.
Oh wow, that's a game I haven't thought about in forever. Thanks for reminding me.
I remember a map where just at the start, you could turn around, jump over an open bridge and finish it in less than a minute.
On the other hand most maps have loops and I would regularly get lost, unable to finish it...
I can still hear the PC speaker music in my head.
I can hear the PC Speaker music in my head.... oh man! it was actually available in adlib! https://www.youtube.com/watch?v=ayInv3ZZRak
I used the MT32 audio. Not only because it sounded better, but because it would overload the CPU and slow down the game making it playable on my Pentium 75.
My old PC wasn't good enough to play the game. You could almost see each frame render. However, the PC speaker music was really nice and I used to run the game just to listen to that.
I actually came here to post this. It's iconic music, bleeps and bloops!
Wonderful stuff - thanks! I was thinking about doing this as well.
I just completed recreating one of my childhood favourites, Thrust. Opus 4.7 almost one-shot the game (was perfect in 30 mins based on just the wikipedia entry describing the game), and then I spent 3 full nights trying to build perfect algorithmic AI to auto play it. (It thoroughly failed, sticking to a sub-par algo that was ok, but not nearly as good as possible).
My next stop is reimplementing Mercenary. First open world game I played. On a 8b commodore Plus/4.
On Pacific Coast 3 you can see the infinite highway. I remember turning right to a highway and there was a highway exit that if I missed I would run again this highway as on Moebious' strip to the beginning. This gave the world an infinite vibe
Never played TD - How does it compare to Lotus? More of a simulation?
Yes, much more realistic for sure.
Neat viewer. I wonder, why boats and cars in groud view ended up in such high altitude?
Because I haven't found the special case in the disassembly for these "flying" objects. Probably I misinterpret the object coordinate somehow.
Oh man, the controls on mobile remind me of a bad dream where you donât quite have full control of your flying.
I always love any reverse engineered projects
Ah, that's so lovely! Will definitely try this!
I used to play an Amiga 500 version of this. I think it was Test Drive 2 though.
Test Drive 2 (and 1) used a pseudo-3D renderer with scaled sprites (see https://www.mobygames.com/game/2107/the-duel-test-drive-ii/s...) TD3 used a 'real' 3D engine, but as a result it needed a beefy machine for the day. Driving felt a lot slower too, I never found it as much fun as TD2.
Impressive dedication, reverse engineering 35 years old game files is no small task.
I was always fixated on trying to run over the chicken
I used to play this, thats awesome.
Bro , it's crazy!
Now do TD (the original)! I remember thinking it was something from the future when it came out on C64. Similar feeling of seeing something from two years from now with Mach 3 in the arcade.
Not even one map as jpg or png to see on the webpage!!!
Whats the point of this project? You expect us to load npm just to see some maps?!
Read the Readme.
They've linked to https://s-macke.github.io/Test-Drive-3-Maps/
this is not jpg or png but some dynamic stuff.
It freezes up my phone. Why do you need to complicate the stuff so much?
Direct jpg or png could be rendered even by pentium 100 with 32mb of ram...
Your last maid die of exhaustion? https://github.com/s-macke/Test-Drive-3-Maps/blob/master/ima...
Sorry, the maps are rendered in 3D so that you can fly around. I can of course make top-down screenshots of the maps. Thanks for your feedback.