Under the microscope: Smashing Drive (GameCube, Xbox)
Xbox gets second billing for a reason
In this edition I’m examining Smashing Drive, a “crazy taxi” game from Galeco and Namco. Smashing Drive was one of Gamespot’s nominees for Worst Game on GameCube in 2002 (it lost out to Jeremy McGrath Supercross World), which is part of what drew me to it – I have some affection for bad games.
Cheat sites (e.g. GameFAQs) have some dubious codes listed for this game:
Enter the codes at the map screen.
Extra Ammunition: Y, X, X, B, Y, X, X, B
Extra Health: X, B, X, B, X, B, X, B
Extra Money: Y, B, Y, B, X, A, X, A, Down, Up
Why am I saying these are dubious? Well, this game does sort of have health and money, but it doesn’t have a map screen or ammunition.
I took a look at the GameCube version and found some cheat codes that actually work. I also looked at the Xbox version and found why the cheat codes don’t work on it. Details are below!
The cheat codes
Enter this sequence at the Press Start screen:
A, B, B, A, B,
A, B, Y, X, YThis will unlock the Rush Hour, Night Owl, and Dusk & Wired shifts:
Enter this sequence at the Press Start screen also:
Z, A, B, Y, X,
A, B, B, A, YThis will add animations of passengers entering and leaving your cab:
Technical details
I used the Dolphin emulator’s Cheats Manager to find where Smashing Drive stores controller input. That led me to the function at 8000afd4, which has logic like this:
When the player presses a button, record that fact in the buffer at
80156a18.When the buffer length reaches 10, check it against three cheat sequences.
If one of the cheat sequences matches the buffer contents, set a flag.
The “unlock everything” looks like this:
800e0d14 0000 2000 # A button
800e0d18 0000 0800 # B button
800e0d1c 0000 0800 # B button
800e0d20 0000 2000 # A button
800e0d24 0000 0800 # B button
800e0d28 0000 2000 # A button
800e0d2c 0000 0800 # B button
800e0d30 0000 1000 # Y button
800e0d34 0000 0400 # X button
800e0d38 0000 1000 # Y buttonI puzzled out the mapping of buttons to hex patterns by looking at Dolphin’s memory viewer and writing down what went into the buffer.
I said “three cheat sequences,” but only listed two codes above. What gives? Well, there’s a third one:
B, Up, Z, Z, Y,
B, A, Z, Z, YThe flag at 801ee618 gets set if you enter it, but it doesn’t really do anything in-game. The Game Over screen reads the value, but there’s no noticeable difference if it’s set versus cleared.
How about the Xbox version? It’s got the cheat sequences starting at f0340 in the main executable. They’re encoded as little endian, but the values are the same:
0008 0000 # Button 1
0400 0000 # Button 2
0000 2000 # Button 3
0000 2000 # Button 4
0010 0000 # Button 5
0008 0000 # Button 6
0020 0000 # Button 7
0000 2000 # Button 8
0000 2000 # Button 9
0010 0000 # Button 10There are two problems here: (1) The Xbox controller can’t produce all of these bit patterns, and (2) If you hit the Xbox’s A button, it takes you away from the Press Start screen - this ends the cheat code entry process. So the cheats are impossible to enter!
I conclude that the porting and QA processes for this game weren’t super detail-oriented.
Outro
For notes on another game with cheat code button mapping issues, see my article on Buzz Lightyear of Star Command. And for many more cheat code excavation articles, see my archive here at Substack.
I’ll be back with more retro game reverse engineering finds soon - thanks for reading.



