Welcome to my Great 1000 Miles Rally tech page.
Unless unexpected free time, this day , 10 October 2007, is the last time I update this page.
I give you all I have, make good use of it!
Be free to use these informations for FREE projects, not commercial.
Great 1000 Miles Rally is a copyrighted software from Kaneko.
GTMR is one of these games which makes me love MAME.
Without MAME, I would never tested it...and played it so much!
This game is pretty simple :
an old fashioned 2D race, you VS the others cars.
So why GTMR ? The gameplay and the speed sensation.
I never liked 2D race game until GTMR and play only a few 3D race game (SegaRally, VRally2, BurnOut..and a lot WipeOut!) .
I'm fan of the 'tips' they used to give you the feeling of great speed, mainly these strange clowds scrolling very fast (more visible in Evoluzione version). And, on top of that, it uses my favorite CPU : a M68000 CPU !!
Oh, and if you have a PCB of the Evoluzione model to sell, drop me a mail ;)
► Reverse Engineering
I used the standard version of GTMR (not USA nor Evoluzion)
Be careful with that because the MAME driver source code is based on that is called GTMR but in fact it's based on the USA version, so some address are wrong. In fact, the MAME team changed a lot the rom set name so you'll be lost as I am!
So, the game version is easy to check with the first screen : 'TB05MM-EU "1000 MIGLIA" MASTER UP= 94/07/18 15:12:35'
The 2 main roms are U1 and U2, you need to interleave them in order to analyse the code : create a u68k.bin where every even byte is from U2 and odd byte from U1
I successfully used Inter.exe from the Intelligent reassembler you can find at Arcadev
You now have the full M68K rom...Let's see what is inside!
I use IDA because I love the way it disassembles and its script command.
I'll update the script file any times I make a good step in.
|Select car screen
|Select map screen
- The test check is very basic
- 3 interrupts (as you can see on the MAME source) and a LOT of Trap#2
2 sprites methods : fixed sprites and animated sprites. Animated sprites are flushed into fixed sprites on interrupt
- There are some garbarge about a 'test circuit' and a 'presentation version', not cleaned for final build
- The default Hi scores are easy to hack (to permanently save your record?)
What I'm still looking for :
- tracks map (full)
- sprites data (found some)
- musics (found some)
- demo handling
More on : Trap #2
If your 68K emulator doesn't support Trap, you won't be able to run GTMR.
When GTMR call TRAP2, it initialize register D1 with an id.
This id is the function id TRAP2 must call
Something like call trap2[id]
The full jump table is available at 0xE810
More on : Jump objects
A jump object is mainly a function array
You store the function pointer, its parameter and its priority.
On interrupt, the game calls each function with its own parameters.
More on : Animated sprites
Animated sprites are defined by bank
Each bank have a number of frames and a first sprite
Unfortunatly, the banks don't follow the tiles list (bank 0 doesn't use the first tile...)
Each bank/animated sprite is defined in a list available at 0xA3444
Use GTME to see/dump them all (but the last ones, since 'sprites' wasn't dumped)
Gift : a funny one (NEKO means CAT in japanese!)
More on : Cars
I thought every cars has its own properties (faster but slow to accelerate, etc....) but in fact, they all have the same properties :(
Use GTME to adjust them
More on : High Score
Each track have it's own high score (the default one)
Not one per track, but one per checkpoint of each track
It's very easy to mod it.
The interesting thing is the number of checkpoints...it seems there is too much checkpoints per track (more than used)
The record screen doesn't draw the last 2 scores but keeps it.
More on : Tracks
Objects/Sprites on tracks are found (people, jumper, etc..)
Need to find how the ground, terrain hability and buildings are defined.
It's hard to get it so I think I can share it
|GTRM IDA Script
You need IDA 5.x because IDA 4.x crash on this heavy file
05 August 2007
02 June 2007
don't use NPC yet
All of this exists because some people on the Net made a wonderful work before
MAME Team - the best arcade
emulator, with sources!
And a lot of thanks to Luca Elia, who made the Kaneko MAME driver