RotM July 2019 - Supercross 2000
#1


This thread is dedicated to notes, files, and tools created for July 2019's RotM.



What is RotM?

ROM of the Month (RotM) is a new month-long event in the Hack64 discord server. Where a bot will randomly pick a Nintendo 64 game that has little to no hacking notes or tools, and then we will spend a month trying to figure out how it works. For July 2019, the bot has chosen the game "Supercross 2000". We are specifically hacking the North American version of the game.

More details can be found on the main wiki article: https://hack64.net/wiki/doku.php?id=rom_of_the_month

The wiki article for the game itself can be found here: https://hack64.net/wiki/doku.php?id=supercross_2000

The discussion on the current game is done on the Hack64 discord server under the #rotm channel. 



Online Files 

For easy collaboration, we are using HackMD to update files online in real time.

n64split config / RAM map: https://hackmd.io/OdGOPBJIQpOLmqAPP-Ahvw?edit



Feel free to post your own notes on the game in a reply to this thread.


Reply
#2
Summary

This post will be a simple summary of what was found in the discord server over this month.



1.) Compression Format

The compression format for Supercross 2000 is referred to "EAHD", you can tell if a block is compressed with this format if the first two bytes start with 0x10FB.

Python code to decompress EAHD blocks can be found here: https://hack64.net/wiki/doku.php?id=supe..._2000:eahd

2.) OVLN blocks

"OVLN" data blocks contains game code and other data compressed using EAHD. Once the block has been loaded into RAM, the decompression routine will immediately jump to a function specified in the OVLN header.

More info on OVLN blocks can be found here: https://hack64.net/wiki/doku.php?id=supe..._2000:ovln

3.) BIGF archives (.big)

BIGF archives contain all the file assets used in Supercross 2000. The files may or may not use EAHD compression. The main bigf archive is located at ROM offset 0x55F70 in the north american ROM.

A python tool to extract BIGF archives can be found here: https://github.com/hack64-net/rotm/tree/..._extractor

More info on BIGF archives can be found here: https://hack64.net/wiki/doku.php?id=supe..._2000:bigf

All the files in the main BIGF archive

4.) Texture files (.nsh)

SHPN files contain the data and relevant information used for textures in the game. This includes both menu textures and model textures. Supercross 2000 seems to only use the texture formats: I4, I8, CI4, and CI8. RGBA and IA textures are not used at all.

A tool to view all the texture files can be found here: https://github.com/hack64-net/rotm/tree/...hpn_viewer

More info on SHPN texture files can be found here: https://hack64.net/wiki/doku.php?id=supe..._2000:shpn

5.) 3D model files (.rnd)

RND files contain the data and relevant information for all the 3D models in the game. This includes the tracks, bikes, and the orange arrow.

A simple RND model viewer can be found here: https://github.com/hack64-net/rotm/tree/...rnd_viewer

More info on RND model files can be found here: https://hack64.net/wiki/doku.php?id=supercross_2000:rnd

6.) Font sheet files (.nfn)

FNTN files contain the data and relevant information for all the fonts in the game.

A simple FNTN font sheet viewer can be found here: https://github.com/hack64-net/rotm/tree/...ntn_viewer

More info on font sheet files can be found here: https://hack64.net/wiki/doku.php?id=supercross_2000:nfn

7.) Language files

Interestingly enough the game contains files for 7 different languages, even though the North American version of the game can only be played in English. The other 6 languages are: Spanish, French, German, Swedish, Italian, and Dutch.

More info on the language files can be found here: https://hack64.net/wiki/doku.php?id=supe...uage_files

8.) Other files

There are many file types that we were not able to fully decode, but given the bigf file structure we have some idea of what some of the files are used for.
  • .obs and .tdb are related to the track RND models.
  • .dbf and .dbt are database files.
  • .bip is a path file for the tracks.
  • .000, .001, .002, and .003 are replay files.
  • .bnk, .sbk, .eam, and speech.n64 are audio related files.
It is currently unknown to us what the .pgn files are for.

9.) Every cheat code

All the cheat codes that were found in the ROM are:

B1GSPR4Y
SK1PP1NG0K
N00FFTR4CK
BL0CKM3
SM4RTB0MB
H34DL3SS
N0R1D3RS
M0R3C4MS
H0P
PLVT0
N3PTVN3
VR4NVS
S4TVRN
JVP1T3R
M4RS
M00N
V3NVS
M3RCVRY
G14NTS
B1GB1K3S
N0CR4SH
Reply




Users browsing this thread: 2 Guest(s)