SNES Development
Stunt Race FX

Stunt Race FX / Wild Trax

The following information is for the US version of the game.

Track Data

Locations

OffsetDescription
1F4A5 - 1F4F8Track Data pointers (3 bytes per track, 28 tracks)
28000Menu “Track” Data
2807400- Easy Ride Track Data
28AB901- Aqua Tunnel Track Data
2990B02- Sunset Valley Track Data
2A4FC03- Night Owl Track Data
2B28504- King’s Forest Track Data
2BF9205- Sea Breeze Track Data
2CADA06- White Land Track Data
2D7F407- Night Cruise Track Data
6800008- Lake Side Track Data
68CF909- Big Ravine Track Data
69B5E0A- Sky Ramp Track Data
6AD250B- Harbor City Track Data
6BD710C- Rock Field Track Data
6CC710D- Up’N Down Track Data
ADB6F0E- Ice Dance Track Data
6DF8C0F- Blue Lake Track Data
AC00010- Cotton Farm Track Data
AC6C311- Toxic Desert Track Data
ACD4C12- Marine Pipe Track Data
AD44413- Port Arena Track Data
2E50914- Bonus 1 Track Data
2EBB715- Bonus 2 Track Data
2F24516- Bonus 3 Track Data
AEEB717- Radio Control 1 Track Data
AF10618- Radio Control 2 Track Data
AF31319- Radio Control 3 Track Data
AF50A1A- Radio Control 4 Track Data
6F1261B- Test Run Track Data

Format/Commands

0x06: Track Start
Start of track data.

0x1A: Flags 1

1A bb 00
   bb     Unknown (set to 01 in Radio Control tracks) 

0x14: Flags 2
For unknown reasons, the 0x14 command appears more than once on several tracks, even though it can be used to set multiple bits simultaneously.

14 pp PP
   pp     Low byte: 
            bit 0: Rain 
            bit 1: Falling snow 
            bit 2: Unknown 
            bit 3: Unknown 
            bit 4: SPLASH death on Y=0000 plane (combine with bit 5 to give the illusion of deep water) 
            bit 5: Y=0000 plane and certain collision types are wet (combine with bit 4 to give the illusion of deep water) 
            bit 6: Snow on track 
            bit 7: More friction on track 
     PP  High byte: 
           bits 8-16: Unknown

0x08: Object Direction
This command affects every object defined after it, until another 0x08 command is used.

08 dd 
   dd  Direction:
         00: North 
         40: West 
         80: South 
         C0: East 

0x0E: Vehicle Objects

0E xx XX yy YY zz ZZ 40 A0 00 00 ll mm 08 00 00 00 00 00 00 00 02 vv VV II dd 

   XXxx    X-coordinate (signed; 8000-7FFF) 
   YYyy    Y-coordinate (signed) 
   ZZzz    Z-coordinate (signed) 
   08mmll  ASM Pointer (high byte is always 08): 
             AF0F: Player 1 
             AFD7: Player 2 
             B079: Enemy (Radio Control) 
             B1BA: Enemy 1 
             B1C7: Enemy 2 
             B1D4: Enemy 3 
   VVvv    Car type: 
             81B9: F-Type (Player 1's default setting) 
             82E5: 2WD 
             8411: 4WD 
             853D: Coupé (Player 2's default setting in Battle Trax) 
             8669: Trailer 
             876E: Enemy F-Type (Enemy 1's default setting) 
             8886: Unused Enemy 3WD 
             8990: Enemy 4WD (Enemy 2's default setting) 
             8AA8: Enemy Coupé (Enemy 3's default setting) 
   II      ID: 
             01: Player 1 
             02: Player 2 
             04: Enemy 1 
             08: Enemy 2 
             10: Enemy 3 
             40: Enemy (Radio Control)

0x12: Vehicle Starting Coordinates
Radio Control enemies don’t need this command.

 12 JJ xx XX yy YY zz ZZ dd 
 
   JJ  ID: 
         01: Player 1 
         02: Player 2/Enemy 1 
         03: Enemy 2 
         04: Enemy 3 

0x16 / 0x18: Startup / Camera Routine
0x16 is for Player 1 and 0x18 is for Player 2.

16 ll mm 08 
18 ll mm 08 

  08 mm ll  ASM Pointer (high byte is always 08): 
              8E26: Player enters Trailer? (Bonus Trax) 
              8E5D: Start inside of Trailer (Stunt Trax) 
              8F8E: Vehicle moves forward at start (Radio Control) 
              917D: Camera zooms in from back (Battle Trax) 
              919F: Default 

0x02 / 0x0C: Standard Objects
0x02 objects overlap the previous object; 0x0C objects go behind the previous object.

02 xx XX yy YY zz ZZ kk KK 00 00 ll mm hh rr RR tt TT uu UU ww WW
0C xx XX yy YY zz ZZ kk KK 00 00 ll mm hh rr RR tt TT uu UU ww WW

KKkk  Model ID
        A040-FE6C
        Each value increments by 1C, so the second value is A05C, then A078, A094, A0B0 and so on.
QQqq  Collision ID
        Same range of values as the Model ID, but set to 0000 for objects without collision.
hhmmll  ASM pointer 
RRrr, TTtt, UUuu, WWww  Unknown Flags; related to collision 
        Note: Usually, the first standard object on a track is the 3D "GOAL" text.

0x0A: Animated Objects

0A xx XX yy YY zz ZZ kk KK 00 00 ll mm hh rr RR tt TT uu UU ww WW __ -- 00 

__ Unknown variable (values used: 02, 05, 08, and 10) 
--  Unknown variable (values used: 01 or 02) 

0x04: Path Coordinate Data
This data is used to tell CPU cars where to go, as well as determining if the player is going in the wrong direction.

04 nn NN xx XX yy YY zz ZZ ss SS xx XX yy YY ... etc. 

NNnn: Number of Path Points
      Can be set to 00 for tracks without a path.
SSss= Unknown
      Common values are 014A, 019C, 01B8 and 025D. 025D tends to be the value used on straightaways.
      While the lower values are used on different types of turns.
Note: The first point is always 64h past the start line, while the last point is 64h before the start line. 

An incomplete listing of objects, as well as screen captures of them, can be found in this archive: Stunt Race FX Objects

Original information discovered by Mattrizzle.