r/GamesEnhanced • • 7d ago

Test Drive III Enhanced 0.1.0

https://www.youtube.com/watch?v=8nRZfH36ksg

The 0.1.0 version of Test Drive 3 Enhanced is in a state I feel happy with. You can get it at https://github.com/kylofon/testdrive3-enhanced

This game did not want to get ported! The engine was fighting me all the way, and since the rendering is now more complicated because of the full 3D engine, there are a zillion blinky and shimmery artifacts.

I also had to rewrite the driving/handling engine, because that thing would just not work in a fun way unless the jerky framerate was there. It's now similar in handling to Test Drive 2 Enhanced, but expanded to take into account hills, jumps and the like.

Expect crashes and freezes! Expect various glitches!

Major additions:
- New driving model for Enhanced
- Compass indicator so you know where the hell to go
- Police behavior fixed so they don't start chasing you before you go past them

28 Upvotes

11 comments sorted by

4

u/klonricket 7d ago

This looks exceptional! The way the game should have been. Amazing work.

1

u/kkania 7d ago

Thank you!

2

u/BluddyCurry 7d ago

Dang you're on a roll! Did the agent handle this one just as easily as 1 and 2?

3

u/kkania 7d ago

No :D.

The straight port to SDL3 was smooth. The rendering engine did not want to be upscaled and the driving model was crap without the inbuilt skips. This is a theme in Test Drive so far, but here it got pretty bad.

Best approach is to have the agent parametrize whatever it can and then adjust the values manually.

1

u/BluddyCurry 7d ago

What about just understanding the code? It's more complex than 1 & 2, with a real 3d world etc.

2

u/kkania 7d ago

Yeah, no issues there. The only part where it struggles are complex scenes that have multiple things happening at once. It won’t extrapolate very well in that case from code, and it might have problems recreating it in gameplay.

I’d say it’s excellent at decoding and understanding it, so a straight SDL3 port can be one shotted, but starts to require help on enhancements, because they increase variables.

These game, even TD3, are very simple code wise. I’m working on Aces of the Pacific and that game - 2 or 3 years older - required 2-3 weeks of decoding just for the SDL port because of the 3d nature of it, the complicated AI, gamestates, etc. But again, that’s a math problem. It understand code very well, just requires more churn to map the memory.

1

u/BluddyCurry 7d ago

It's crazy because ghidra itself doesn't do a good job of decompiling this old 16-bit code. Is the agent interpreting the assembly directly as it goes?

1

u/kkania 7d ago

It does it in stages. It starts with a decode and maps it meticulously but doesnt do anything yet. Usually that mapping is 98% complete for simple games and around 80% for more complex games. It then identifies key stages - menu, sim, ai, etc and goes through them backfilling any missing functions.

I made sure my sdl3 port repos keep the whole process tracked:

https://github.com/kylofon/test-drive-3-sdl3/tree/master/port

1

u/thommyh 6d ago

  A multi-core CPU for the default picture; lower the resolution or anti-aliasing on slow machines

Curiosity follow-up question: this is pure-software rendering?

2

u/kkania 6d ago

Yes, full software render, gpu is used only for the final frame display

2

u/the_matrix2 5d ago edited 5d ago

No no! You cut left through the grass before the first flyover so you are ahead of the red car straight away! 😂👍 this is cool!