Página 1 de 1

Crazy Taxi 3 - Modding (English version)

Enviado: 28 Out 2020, 14:49
por MS
 
Imagem
 



1. Introduction

Hi, i’m here today to talk about modding a game called Crazy Taxi 3: High Roller, developed by Hitmaker and published by Sega.
The game was released for Xbox in 2002 and for PC in 2004. The game never had much a modding community, only recently someone has created a tool that adjusts some game settings like be able to play at 60 FPS, use widescreen resolutions and change the FOV (previously this was only possible by hex editing the game's .exe).

2. Reason

Perhaps some people will ask: "But why the Crazy Taxi 3?" In addition to the fact that this is one of many games that were part of my childhood, i particularly think that this is the best of the three games in the Crazy Taxi series because it includes the levels of the previous games and apparently the vehicle that the player controls has better physics.

I also believe that every game deserves the possibility of being modded, thus giving more hours of fun, an opportunity for differentiation in its gameplay and also the fact that it brings more interest from people in the game.

3. Formats
 
The game uses these formats:

.art - My friend Meth0d managed to reverse engineer almost completly this format, here it is:

Código: Selecionar tudo

// HEADER

4 bytes - Total images in the file

// OFFSETS DIRECTORY
  // For each image
  4 bytes - Image Offset (in relation to the start of the file)

// IMAGES DIRECTORY
  // For each image

  4 bytes - Magic (GXTX)
  2 bytes - Width
  2 bytes - Height
  4 bytes - Image Size (Image Data)
  2 bytes - Unknown
  2 bytes - Formato (10 = DXT1 | 11 = DXT3)
  X bytes - Image Data

The bytes related to the format still contain some unknown values like 5, 4, 0 and some others. The formats for the textures that are used by the game are apparently these:

Código: Selecionar tudo

DXT1, DXT3, A8R8G8B8, A4R4G4B4, R5G6B5, A1R5G5B5

.bin - This is that format that is, let's say, generic, because each game that uses it has it's own version of it. A large part of this game uses this format to store sounds, collisions, "gameplay demos" and other things still unknown.

.mdl - It's similar to .art but it works a bit differently (for example, it has a "GXMD" only on the start of the file).

.xbx - Unused in the PC version.

.xgt - The file extension of the textures that are inside the .art files.

.ics - Apparently this format defines the sounds that the player's vehicle will use.

.d00 - Currently unknown.

.rpy - Replay files.

For the general sounds of the game it uses the .aiff format and for the songs the game uses  .ogg format.
 

4. Memory Adresses

I'm currently trying to document the game's memory addresses, here's what i've currently managed to document:

Código: Selecionar tudo

7BD2FC  // Game mode's timer (in seconds)
7BD310  // The total amount of money acquired by the player.
7BD314  // Taxi's fare
7BD334  // Passenger's timer (in seconds)
481BC8 // This controls the decrease of balloons on the "Crazy ballons" minigame (Crazy X mode)
473363 // Player's timer decrease command, change it to a NOP and it will freeze the timer
4732FE // This controls the passenger's timer decrease (change it to a NOP and it will freeze the timer)
00717890 // "Press Start!" blinking handle
718BD8 to 718BDA // Menu's sound adjuster current value (Option 1, 2 and 3)
71EAD8 // Speedometer define (0 = Disabled 5 = Enabled)
// NOP the adresses 43FEAD, 43FEAE,
                                            // 43FEAF, 43FEB0, 43FEB1 and                                               
// 43FEB2 to make the speedometer always render on screen.  
43D669 // Physics function.
541830 // Float value that controls the rotation speed.
(i think it also controls the jump acceleration)  
5. Tools

CT3Tweaker - The tool that i've talked about in the introduction, as previously said it gives you the possibility to increase the FPS limit from 30 to 60, use widescreen resolutions and change the FOV (Field of view). 
Author: stashymane
 
6. Conclusion

Well, this is the beginning of a long journey, if more people gets interested in helping it would be great and could speed up progress a lot and thus bring modding to a game that never had this opportunity.