Posts: 41
Threads: 21
Joined: Mar 2018
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.
Posts: 41
Threads: 21
Joined: Mar 2018
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
Show Content All the files in the main BIGF archive
Size of bigf archive: 14.56 MB
Number of files: 69
[3d.big] offset = 0x4f4, length = 0x5f4062
Size of bigf archive: 5.95 MB
Number of files: 101
[arrow.rnd] offset = 0x83c, length = 0x1bd
[nastrodm.nsh] offset = 0x9fc, length = 0x34804
[nastrodm.obs] offset = 0x35200, length = 0x5d1
[nastrodm.rnd] offset = 0x357d4, length = 0xc0f2
[nastrodm.tdb] offset = 0x418c8, length = 0xc4
[nbankone.nsh] offset = 0x4198c, length = 0x37ead
[nbankone.obs] offset = 0x7983c, length = 0x554
[nbankone.rnd] offset = 0x79d90, length = 0xc73c
[nbankone.tdb] offset = 0x864cc, length = 0xc8
[nbike.nsh] offset = 0x86594, length = 0x11460
[nbike.rnd] offset = 0x979f4, length = 0xae74
[ndaytona.nsh] offset = 0xa2868, length = 0x3640f
[ndaytona.obs] offset = 0xd8c78, length = 0x625
[ndaytona.rnd] offset = 0xd92a0, length = 0xbed1
[ndaytona.tdb] offset = 0xe5174, length = 0xd2
[nedison1.nsh] offset = 0xe5248, length = 0x3318e
[nedison1.obs] offset = 0x1183d8, length = 0x5e5
[nedison1.rnd] offset = 0x1189c0, length = 0xb59e
[nedison1.tdb] offset = 0x123f60, length = 0xc9
[nedison2.nsh] offset = 0x12402c, length = 0x32575
[nedison2.obs] offset = 0x1565a4, length = 0x5aa
[nedison2.rnd] offset = 0x156b50, length = 0xbb38
[nedison2.tdb] offset = 0x162688, length = 0xd7
[nfreest2.nsh] offset = 0x162760, length = 0x43476
[nfreest2.obs] offset = 0x1a5bd8, length = 0x384
[nfreest2.rnd] offset = 0x1a5f5c, length = 0x7459
[nfreest2.tdb] offset = 0x1ad3b8, length = 0x4f
[nfreest3.nsh] offset = 0x1ad408, length = 0x2d241
[nfreest3.obs] offset = 0x1da64c, length = 0x37c
[nfreest3.rnd] offset = 0x1da9c8, length = 0x9432
[nfreest3.tdb] offset = 0x1e3dfc, length = 0x50
[nfreestl.nsh] offset = 0x1e3e4c, length = 0x2f54b
[nfreestl.obs] offset = 0x213398, length = 0x2cf
[nfreestl.rnd] offset = 0x213668, length = 0x8778
[nfreestl.tdb] offset = 0x21bde0, length = 0x4f
[ngeorgia.nsh] offset = 0x21be30, length = 0x2de7c
[ngeorgia.obs] offset = 0x249cac, length = 0x542
[ngeorgia.rnd] offset = 0x24a1f0, length = 0xae16
[ngeorgia.tdb] offset = 0x255008, length = 0xce
[nkingd.nsh] offset = 0x2550d8, length = 0x3717e
[nkingd.obs] offset = 0x28c258, length = 0x5e0
[nkingd.rnd] offset = 0x28c838, length = 0xbf4e
[nkingd.tdb] offset = 0x298788, length = 0xbe
[nmetrod.nsh] offset = 0x298848, length = 0x30938
[nmetrod.obs] offset = 0x2c9180, length = 0x4d5
[nmetrod.rnd] offset = 0x2c9658, length = 0xa13a
[nmetrod.tdb] offset = 0x2d3794, length = 0xc5
[nnovice1.nsh] offset = 0x2d385c, length = 0x34bc4
[nnovice1.obs] offset = 0x308420, length = 0x4dc
[nnovice1.rnd] offset = 0x3088fc, length = 0x8afc
[nnovice1.tdb] offset = 0x3113f8, length = 0xa2
[nnovice2.nsh] offset = 0x31149c, length = 0x2d478
[nnovice2.obs] offset = 0x33e914, length = 0x51e
[nnovice2.rnd] offset = 0x33ee34, length = 0xb994
[nnovice2.tdb] offset = 0x34a7c8, length = 0xb4
[nnovice3.nsh] offset = 0x34a87c, length = 0x2dac6
[nnovice3.obs] offset = 0x378344, length = 0x4ba
[nnovice3.rnd] offset = 0x378800, length = 0x9838
[nnovice3.tdb] offset = 0x382038, length = 0xd2
[nnovice4.nsh] offset = 0x38210c, length = 0x32d12
[nnovice4.obs] offset = 0x3b4e20, length = 0x46a
[nnovice4.rnd] offset = 0x3b528c, length = 0x897c
[nnovice4.tdb] offset = 0x3bdc08, length = 0xb7
[nnovice5.nsh] offset = 0x3bdcc0, length = 0x30165
[nnovice5.obs] offset = 0x3ede28, length = 0x540
[nnovice5.rnd] offset = 0x3ee368, length = 0xa232
[nnovice5.tdb] offset = 0x3f859c, length = 0xd2
[npontiac.nsh] offset = 0x3f8670, length = 0x35bd1
[npontiac.obs] offset = 0x42e244, length = 0x57e
[npontiac.rnd] offset = 0x42e7c4, length = 0xb77b
[npontiac.tdb] offset = 0x439f40, length = 0xdd
[nqualcom.nsh] offset = 0x43a020, length = 0x34bfc
[nqualcom.obs] offset = 0x46ec1c, length = 0x5ca
[nqualcom.rnd] offset = 0x46f1e8, length = 0xc5d3
[nqualcom.tdb] offset = 0x47b7bc, length = 0xd5
[nrayjame.nsh] offset = 0x47b894, length = 0x32825
[nrayjame.obs] offset = 0x4ae0bc, length = 0x5bb
[nrayjame.rnd] offset = 0x4ae678, length = 0xccaf
[nrayjame.tdb] offset = 0x4bb328, length = 0xdf
[nrcadome.nsh] offset = 0x4bb408, length = 0x2edbb
[nrcadome.obs] offset = 0x4ea1c4, length = 0x54b
[nrcadome.rnd] offset = 0x4ea710, length = 0xb835
[nrcadome.tdb] offset = 0x4f5f48, length = 0xdc
[nsamboyd.nsh] offset = 0x4f6024, length = 0x28104
[nsamboyd.obs] offset = 0x51e128, length = 0x537
[nsamboyd.rnd] offset = 0x51e660, length = 0xaa28
[nsamboyd.tdb] offset = 0x529088, length = 0xe2
[nsuperd.nsh] offset = 0x52916c, length = 0x3ad63
[nsuperd.obs] offset = 0x563ed0, length = 0x652
[nsuperd.rnd] offset = 0x564524, length = 0xccd8
[nsuperd.tdb] offset = 0x5711fc, length = 0xcf
[ntexassd.nsh] offset = 0x5712cc, length = 0x364f4
[ntexassd.obs] offset = 0x5a77c0, length = 0x51a
[ntexassd.rnd] offset = 0x5a7cdc, length = 0xb767
[ntexassd.tdb] offset = 0x5b3444, length = 0xce
[ntranswo.nsh] offset = 0x5b3514, length = 0x331bc
[ntranswo.obs] offset = 0x5e66d0, length = 0x4e9
[ntranswo.rnd] offset = 0x5e6bbc, length = 0xb73d
[ntranswo.tdb] offset = 0x5f22fc, length = 0xc1
[test3.nsh] offset = 0x5f23c0, length = 0x84d
[test3.rnd] offset = 0x5f2c10, length = 0x1452
[bike.bnk] offset = 0x5f4558, length = 0x2e654
[crowd.bnk] offset = 0x622bac, length = 0x25e70
[front.bnk] offset = 0x648a1c, length = 0x38244
[eng250.bnk] offset = 0x680c60, length = 0x1a854
[eng400.bnk] offset = 0x69b4b4, length = 0x1c8d8
[front.big] offset = 0x6b7d8c, length = 0x22e7c5
Size of bigf archive: 2.18 MB
Number of files: 102
[albertyn.nsh] offset = 0x7c8, length = 0x5749
[arrodwn.nsh] offset = 0x5f14, length = 0xc0
[arroleft.nsh] offset = 0x5fd4, length = 0xb5
[arrorite.nsh] offset = 0x608c, length = 0xb7
[arroup.nsh] offset = 0x6144, length = 0xbc
[arrows.nsh] offset = 0x6200, length = 0x225
[av_camops.nsh] offset = 0x6428, length = 0x653
[back1.nsh] offset = 0x6a7c, length = 0xab52
[back2.nsh] offset = 0x115d0, length = 0xfc41
[back3.nsh] offset = 0x21214, length = 0x9eaa
[back4.nsh] offset = 0x2b0c0, length = 0xd7a7
[back5.nsh] offset = 0x38868, length = 0xb9ef
[back6.nsh] offset = 0x44258, length = 0xc0da
[back7.nsh] offset = 0x50334, length = 0x14261
[back8.nsh] offset = 0x64598, length = 0x7ec7
[back9.nsh] offset = 0x6c460, length = 0xd485
[brown.nsh] offset = 0x798e8, length = 0x624b
[button.nsh] offset = 0x7fb34, length = 0x5692
[chase1.nsh] offset = 0x851c8, length = 0x215f
[chase2.nsh] offset = 0x87328, length = 0x218f
[chase3.nsh] offset = 0x894b8, length = 0x2182
[contrl2.nsh] offset = 0x8b63c, length = 0x24f2
[craig.nsh] offset = 0x8db30, length = 0x5c47
[deegan.nsh] offset = 0x93778, length = 0x5023
[dine13b.nfn] offset = 0x9879c, length = 0x248f
[dine15b.nfn] offset = 0x9ac2c, length = 0x2a07
[dine18b.nfn] offset = 0x9d634, length = 0x34ac
[dowd.nsh] offset = 0xa0ae0, length = 0x578b
[eaintro.nsh] offset = 0xa626c, length = 0x5cc1
[emig.nsh] offset = 0xabf30, length = 0x5244
[ferry.nsh] offset = 0xb1174, length = 0x5f22
[fullover.nsh] offset = 0xb7098, length = 0x67b
[gonzalez.nsh] offset = 0xb7714, length = 0x5c46
[head.nsh] offset = 0xbd35c, length = 0x21e6
[helparro.nsh] offset = 0xbf544, length = 0xde
[henry.nsh] offset = 0xbf624, length = 0x5607
[huffman.nsh] offset = 0xc4c2c, length = 0x5d2c
[hughes.nsh] offset = 0xca958, length = 0x59c2
[lamson.nsh] offset = 0xd031c, length = 0x5bcb
[larocco.nsh] offset = 0xd5ee8, length = 0x5d6e
[lawrence.nsh] offset = 0xdbc58, length = 0x5e80
[legalscr.nsh] offset = 0xe1ad8, length = 0x1264e
[line.nsh] offset = 0xf4128, length = 0x2c4
[line2.nsh] offset = 0xf43ec, length = 0x28a
[mblogo.nsh] offset = 0xf4678, length = 0x13b06
[metzger.nsh] offset = 0x108180, length = 0x5a6d
[ncal.nsh] offset = 0x10dbf0, length = 0x6bd
[no01.nsh] offset = 0x10e2b0, length = 0x4c49
[no09.nsh] offset = 0x112efc, length = 0x3e42
[nopic.nsh] offset = 0x116d40, length = 0x41bf
[nubuts.nsh] offset = 0x11af00, length = 0x129b
[partover.nsh] offset = 0x11c19c, length = 0x2d4
[path.nsh] offset = 0x11c470, length = 0x21e1
[pg_front.pgn] offset = 0x11e654, length = 0x2e3a
[pgl_back.nsh] offset = 0x121490, length = 0x11dbc
[pichon.nsh] offset = 0x13324c, length = 0x5998
[ratingbar.nsh] offset = 0x138be4, length = 0x1a6
[reynard.nsh] offset = 0x138d8c, length = 0x52aa
[roy.nsh] offset = 0x13e038, length = 0x5187
[single.nsh] offset = 0x1431c0, length = 0x3460
[slider.nsh] offset = 0x146620, length = 0x389
[smail.nsh] offset = 0x1469ac, length = 0x629e
[sxlogo.nsh] offset = 0x14cc4c, length = 0x1000
[title.nsh] offset = 0x14dc4c, length = 0x1d9d6
[tortelli.nsh] offset = 0x16b624, length = 0x5af3
[trk_bobp.nsh] offset = 0x171118, length = 0x6977
[trk_dis.nsh] offset = 0x177a90, length = 0x617a
[trk_eif1.nsh] offset = 0x17dc0c, length = 0x67ac
[trk_eif2.nsh] offset = 0x1843b8, length = 0x6bd7
[trk_frca.nsh] offset = 0x18af90, length = 0x6866
[trk_frjs.nsh] offset = 0x1917f8, length = 0x68f1
[trk_ftex.nsh] offset = 0x1980ec, length = 0x6284
[trk_gad.nsh] offset = 0x19e370, length = 0x624a
[trk_had.nsh] offset = 0x1a45bc, length = 0x7100
[trk_hhhmd.nsh] offset = 0x1ab6bc, length = 0x6f44
[trk_ircad.nsh] offset = 0x1b2600, length = 0x687e
[trk_lasd.nsh] offset = 0x1b8e80, length = 0x6e34
[trk_neif.nsh] offset = 0x1bfcb4, length = 0x62ce
[trk_ngad.nsh] offset = 0x1c5f84, length = 0x6284
[trk_nqs.nsh] offset = 0x1cc208, length = 0x6cb6
[trk_nrjs.nsh] offset = 0x1d2ec0, length = 0x6783
[trk_ntwd.nsh] offset = 0x1d9644, length = 0x6c88
[trk_psd.nsh] offset = 0x1e02cc, length = 0x6c8d
[trk_qs.nsh] offset = 0x1e6f5c, length = 0x7643
[trk_rjs.nsh] offset = 0x1ee5a0, length = 0x6e47
[trk_sbsb.nsh] offset = 0x1f53e8, length = 0x6d7f
[trk_seakd.nsh] offset = 0x1fc168, length = 0x70aa
[trk_tex.nsh] offset = 0x203214, length = 0x6902
[trk_twd.nsh] offset = 0x209b18, length = 0x7386
[voss.nsh] offset = 0x210ea0, length = 0x5769
[ward.nsh] offset = 0x21660c, length = 0x5c94
[windham.nsh] offset = 0x21c2a0, length = 0x5c3e
[yarrowl.nsh] offset = 0x221ee0, length = 0x2e3
[yarrowr.nsh] offset = 0x2221c4, length = 0x11e
[yesno.nsh] offset = 0x2222e4, length = 0x2288
[front.eng] offset = 0x22456c, length = 0x19dd
[front.fre] offset = 0x225f4c, length = 0x1700
[front.ger] offset = 0x22764c, length = 0x1757
[front.ita] offset = 0x228da4, length = 0x169e
[front.dut] offset = 0x22a444, length = 0x164d
[front.swe] offset = 0x22ba94, length = 0x1701
[front.spa] offset = 0x22d198, length = 0x162d
[game.big] offset = 0x8e6554, length = 0xa51eb
Size of bigf archive: 660.35 KB
Number of files: 88
[amab.nsh] offset = 0x6d8, length = 0x188d
[arial8bk.nfn] offset = 0x1f68, length = 0x272c
[arial8bk0.nfn] offset = 0x4694, length = 0xebf
[arial8bk1.nfn] offset = 0x5554, length = 0x96
[arial8bk2.nfn] offset = 0x55ec, length = 0x1716
[arial9nb.nfn] offset = 0x6d04, length = 0x2347
[arial9nb0.nfn] offset = 0x904c, length = 0x1a3d
[arial9nb1.nfn] offset = 0xaa8c, length = 0x8a
[arial9nb2.nfn] offset = 0xab18, length = 0x270f
[arialnsg1b9.nfn] offset = 0xd228, length = 0x292a
[arrodwn.nsh] offset = 0xfb54, length = 0xc0
[arroleft.nsh] offset = 0xfc14, length = 0xb5
[arrorite.nsh] offset = 0xfccc, length = 0xb7
[arroup.nsh] offset = 0xfd84, length = 0xbc
[arrows.nsh] offset = 0xfe40, length = 0x199
[av_camops.nsh] offset = 0xffdc, length = 0x1411
[barhop.nsh] offset = 0x113f0, length = 0x6384
[blimp.nsh] offset = 0x17774, length = 0x277f
[bybar.nsh] offset = 0x19ef4, length = 0x76
[cambut.nsh] offset = 0x19f6c, length = 0xd7
[chase1.nsh] offset = 0x1a044, length = 0x2963
[chase2.nsh] offset = 0x1c9a8, length = 0x2aaa
[chase3.nsh] offset = 0x1f454, length = 0x2aa2
[demo2.nsh] offset = 0x21ef8, length = 0x179c
[emblem.nsh] offset = 0x23694, length = 0xef2
[exit.nsh] offset = 0x24588, length = 0x2b4
[flags.nsh] offset = 0x2483c, length = 0x113
[flg2.nsh] offset = 0x24950, length = 0x1711
[fullover.nsh] offset = 0x26064, length = 0x6da
[head.nsh] offset = 0x26740, length = 0x293f
[hel7bc.nfn] offset = 0x29080, length = 0x2123
[hel7bc0.nfn] offset = 0x2b1a4, length = 0x1847
[hel7bc1.nfn] offset = 0x2c9ec, length = 0x5f
[hel7bc2.nfn] offset = 0x2ca4c, length = 0x26f4
[helparro.nsh] offset = 0x2f140, length = 0x113
[ig_contrl.nsh] offset = 0x2f254, length = 0x1fbc
[ig_nubuts.nsh] offset = 0x31210, length = 0xce2
[ig_pauseb3.nsh] offset = 0x31ef4, length = 0x30bc
[ig_trck.nsh] offset = 0x34fb0, length = 0x535e
[logo2.nsh] offset = 0x3a310, length = 0x18a1
[logo3.nsh] offset = 0x3bbb4, length = 0x126d
[mblogo.nsh] offset = 0x3ce24, length = 0x1fd0
[nacnac.nsh] offset = 0x3edf4, length = 0x63a1
[p_albert.nsh] offset = 0x45198, length = 0x2777
[p_brown.nsh] offset = 0x47910, length = 0x2370
[p_button.nsh] offset = 0x49c80, length = 0x269f
[p_craig.nsh] offset = 0x4c320, length = 0x2799
[p_deegan.nsh] offset = 0x4eabc, length = 0x2069
[p_dowd.nsh] offset = 0x50b28, length = 0x24cb
[p_emig.nsh] offset = 0x52ff4, length = 0x24c7
[p_ferry.nsh] offset = 0x554bc, length = 0x26b8
[p_gonzal.nsh] offset = 0x57b74, length = 0x2429
[p_henry.nsh] offset = 0x59fa0, length = 0x2606
[p_huffma.nsh] offset = 0x5c5a8, length = 0x267d
[p_huges.nsh] offset = 0x5ec28, length = 0x2857
[p_hughes.nsh] offset = 0x61480, length = 0x2857
[p_lamson.nsh] offset = 0x63cd8, length = 0x271d
[p_larocc.nsh] offset = 0x663f8, length = 0x249d
[p_lawren.nsh] offset = 0x68898, length = 0x2759
[p_metzge.nsh] offset = 0x6aff4, length = 0x251e
[p_nopic.nsh] offset = 0x6d514, length = 0x2752
[p_pichon.nsh] offset = 0x6fc68, length = 0x2680
[p_reynar.nsh] offset = 0x722e8, length = 0x25e8
[p_roy.nsh] offset = 0x748d0, length = 0x25da
[p_smail.nsh] offset = 0x76eac, length = 0x2707
[p_tortel.nsh] offset = 0x795b4, length = 0x2559
[p_voss.nsh] offset = 0x7bb10, length = 0x235d
[p_ward.nsh] offset = 0x7de70, length = 0x24c1
[p_windha.nsh] offset = 0x80334, length = 0x23a0
[partover.nsh] offset = 0x826d4, length = 0x340
[path.nsh] offset = 0x82a14, length = 0x2ad1
[pause.nsh] offset = 0x854e8, length = 0x331a
[pg_game.pgn] offset = 0x88804, length = 0x186f
[pg_ovly.pgn] offset = 0x8a074, length = 0x199a
[points.nsh] offset = 0x8ba10, length = 0x6b5
[ratingbar.nsh] offset = 0x8c0c8, length = 0x187
[replay.nsh] offset = 0x8c250, length = 0x551e
[reverse.nsh] offset = 0x91770, length = 0x28ff
[sideclic.nsh] offset = 0x94070, length = 0x948e
[tach.nsh] offset = 0x9d500, length = 0x10c2
[tower.nsh] offset = 0x9e5c4, length = 0x2a76
[game.eng] offset = 0xa103c, length = 0x992
[game.fre] offset = 0xa19d0, length = 0x940
[game.ger] offset = 0xa2310, length = 0x984
[game.ita] offset = 0xa2c94, length = 0x969
[game.dut] offset = 0xa3600, length = 0x942
[game.swe] offset = 0xa3f44, length = 0x97c
[game.spa] offset = 0xa48c0, length = 0x92b
[database.big] offset = 0x98b740, length = 0x9cf
Size of bigf archive: 2.45 KB
Number of files: 2
[dbfield.dbf] offset = 0x38, length = 0x591
[dbtrack.dbt] offset = 0x5cc, length = 0x403
[path.big] offset = 0x98c110, length = 0xf070
Size of bigf archive: 60.02 KB
Number of files: 63
[astrodm0.bip] offset = 0x530, length = 0x425
[astrodm1.bip] offset = 0x958, length = 0x42f
[astrodm2.bip] offset = 0xd88, length = 0x443
[bankone0.bip] offset = 0x11cc, length = 0x3d8
[bankone1.bip] offset = 0x15a4, length = 0x3d6
[bankone2.bip] offset = 0x197c, length = 0x3a7
[daytona0.bip] offset = 0x1d24, length = 0x411
[daytona1.bip] offset = 0x2138, length = 0x42d
[daytona2.bip] offset = 0x2568, length = 0x429
[edison10.bip] offset = 0x2994, length = 0x3e1
[edison11.bip] offset = 0x2d78, length = 0x3ba
[edison12.bip] offset = 0x3134, length = 0x370
[edison20.bip] offset = 0x34a4, length = 0x3ec
[edison21.bip] offset = 0x3890, length = 0x424
[edison22.bip] offset = 0x3cb4, length = 0x3ef
[georgia0.bip] offset = 0x40a4, length = 0x401
[georgia1.bip] offset = 0x44a8, length = 0x35e
[georgia2.bip] offset = 0x4808, length = 0x407
[kingd0.bip] offset = 0x4c10, length = 0x427
[kingd1.bip] offset = 0x5038, length = 0x415
[kingd2.bip] offset = 0x5450, length = 0x41a
[metrod0.bip] offset = 0x586c, length = 0x3f5
[metrod1.bip] offset = 0x5c64, length = 0x40f
[metrod2.bip] offset = 0x6074, length = 0x425
[novice10.bip] offset = 0x649c, length = 0x1a8
[novice11.bip] offset = 0x6644, length = 0x19f
[novice12.bip] offset = 0x67e4, length = 0x14c
[novice20.bip] offset = 0x6930, length = 0x2e2
[novice21.bip] offset = 0x6c14, length = 0x2fa
[novice22.bip] offset = 0x6f10, length = 0x2bc
[novice30.bip] offset = 0x71cc, length = 0x3c1
[novice31.bip] offset = 0x7590, length = 0x33f
[novice32.bip] offset = 0x78d0, length = 0x3a7
[novice40.bip] offset = 0x7c78, length = 0x2a7
[novice41.bip] offset = 0x7f20, length = 0x340
[novice42.bip] offset = 0x8260, length = 0x2f3
[novice50.bip] offset = 0x8554, length = 0x3c8
[novice51.bip] offset = 0x891c, length = 0x350
[novice52.bip] offset = 0x8c6c, length = 0x394
[pontiac0.bip] offset = 0x9000, length = 0x3ec
[pontiac1.bip] offset = 0x93ec, length = 0x3eb
[pontiac2.bip] offset = 0x97d8, length = 0x41d
[qualcom0.bip] offset = 0x9bf8, length = 0x33b
[qualcom1.bip] offset = 0x9f34, length = 0x361
[qualcom2.bip] offset = 0xa298, length = 0x32e
[rayjame0.bip] offset = 0xa5c8, length = 0x4c3
[rayjame1.bip] offset = 0xaa8c, length = 0x492
[rayjame2.bip] offset = 0xaf20, length = 0x493
[rcadome0.bip] offset = 0xb3b4, length = 0x3eb
[rcadome1.bip] offset = 0xb7a0, length = 0x401
[rcadome2.bip] offset = 0xbba4, length = 0x420
[samboyd0.bip] offset = 0xbfc4, length = 0x3e9
[samboyd1.bip] offset = 0xc3b0, length = 0x401
[samboyd2.bip] offset = 0xc7b4, length = 0x3f9
[superd0.bip] offset = 0xcbb0, length = 0x423
[superd1.bip] offset = 0xcfd4, length = 0x426
[superd2.bip] offset = 0xd3fc, length = 0x42e
[texassd0.bip] offset = 0xd82c, length = 0x418
[texassd1.bip] offset = 0xdc44, length = 0x40b
[texassd2.bip] offset = 0xe050, length = 0x422
[transwo0.bip] offset = 0xe474, length = 0x442
[transwo1.bip] offset = 0xe8b8, length = 0x3c6
[transwo2.bip] offset = 0xec80, length = 0x3f0
[sxmusic0.bnk] offset = 0x99b180, length = 0x241b4
[sxmusic0.eam] offset = 0x9bf334, length = 0x38
[sxmusic1.bnk] offset = 0x9bf36c, length = 0x5db3c
[sxmusic1.eam] offset = 0xa1cea8, length = 0x3e8
[sxmusic2.bnk] offset = 0xa1d290, length = 0x26f5c
[sxmusic2.eam] offset = 0xa441ec, length = 0x3dc
[sxmusic3.bnk] offset = 0xa445c8, length = 0x2fc24
[sxmusic3.eam] offset = 0xa741ec, length = 0x428
[sxmusic4.bnk] offset = 0xa74614, length = 0x3f374
[sxmusic4.eam] offset = 0xab3988, length = 0x3e0
[sxmusic5.bnk] offset = 0xab3d68, length = 0x2d7b0
[sxmusic5.eam] offset = 0xae1518, length = 0x40
[sxmusic6.bnk] offset = 0xae1558, length = 0x35c30
[sxmusic6.eam] offset = 0xb17188, length = 0x4c
[speech.n64] offset = 0xb171d4, length = 0x8d15
[30tur0.sbk] offset = 0xb1feec, length = 0xfcc
[atgate.sbk] offset = 0xb20eb8, length = 0x4fa8
[free.sbk] offset = 0xb25e60, length = 0x5ce54
[bar.sbk] offset = 0xb82cb4, length = 0x4898
[gatdn.sbk] offset = 0xb8754c, length = 0xe7d4
[heatr.sbk] offset = 0xb95d20, length = 0x8dc4
[lcqr.sbk] offset = 0xb9eae4, length = 0x1be4c
[ldrch.sbk] offset = 0xbba930, length = 0x296f8
[ldrlp.sbk] offset = 0xbe4028, length = 0x1876c
[mainr.sbk] offset = 0xbfc794, length = 0x12b94
[misc.sbk] offset = 0xc0f328, length = 0x6f48
[posch.sbk] offset = 0xc16270, length = 0x2a1b0
[colid0.sbk] offset = 0xc40420, length = 0x14454
[rcrsh.sbk] offset = 0xc54874, length = 0x95c8
[ftrk.sbk] offset = 0xc5de3c, length = 0x13224
[msdst.sbk] offset = 0xc71060, length = 0xa6a4
[hole.sbk] offset = 0xc7b704, length = 0xc8c0
[win.sbk] offset = 0xc87fc4, length = 0x142d0
[stunt.sbk] offset = 0xc9c294, length = 0x1f2ac
[ucrsh.sbk] offset = 0xcbb540, length = 0x2d31c
[usrlp.sbk] offset = 0xce885c, length = 0x1ea30
[uknkd.sbk] offset = 0xd0728c, length = 0xbd0c
[wel.sbk] offset = 0xd12f98, length = 0x263b8
[erdln.sbk] offset = 0xd39350, length = 0x12fd0
[lap.sbk] offset = 0xd4c320, length = 0x1ae30
[rnd.sbk] offset = 0xd67150, length = 0xe8ec
[svnu.sbk] offset = 0xd75a3c, length = 0x29718
[plc.sbk] offset = 0xd9f154, length = 0x93a0
[trn.sbk] offset = 0xda84f4, length = 0xb3ac
[heat.sbk] offset = 0xdb38a0, length = 0x4200
[30up.sbk] offset = 0xdb7aa0, length = 0x7f18
[vnu.sbk] offset = 0xdbf9b8, length = 0x1c208
[rdln.sbk] offset = 0xddbbc0, length = 0xe3d4
[rdwn.sbk] offset = 0xde9f94, length = 0x15168
[rdnwn.sbk] offset = 0xdff0fc, length = 0x280c4
[rdn.sbk] offset = 0xe271c0, length = 0x191c
[rdnn.sbk] offset = 0xe28adc, length = 0x8558
[erdwn.sbk] offset = 0xe31034, length = 0x1bcd8
[enwn.sbk] offset = 0xe4cd0c, length = 0x319a4
[erdn.sbk] offset = 0xe7e6b0, length = 0x201c
[enn.sbk] offset = 0xe806cc, length = 0xd224
[eand.sbk] offset = 0xe8d8f0, length = 0x428
[and.sbk] offset = 0xe8dd18, length = 0x5b8
[replay.big] offset = 0xe8e2d0, length = 0x1ac3
Size of bigf archive: 6.69 KB
Number of files: 4
[nreplay.000] offset = 0x60, length = 0x892
[nreplay.001] offset = 0x8f4, length = 0x4d7
[nreplay.002] offset = 0xdcc, length = 0x75e
[nreplay.003] offset = 0x152c, length = 0x597
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