Mario Kart 64 Hacking General Discussion « 1 ... 12 13 14 15 16
Users browsing this thread: 1 Guest(s)

(29-11-2016, 05:33 PM)queueRAM Wrote:
(29-11-2016, 08:02 AM)Nick Nelson Wrote: I thought I would post this here. I was able to use the notes from queueRAM and shygoo to help me with this project, so I just wanted to thank them!

Thank you for posting this - it is absolutely beautiful! I really appreciate that you posted the source as well - very nice GUI and HUD makes every well polished. I think I'm going to spend some time studying your NEAT implementation and the neural network paper you cited. Was there anything that you learned about MK64 objects structures or level data along the way that would be useful to share here as well?

Maybe not a whole lot of stuff, but I did spend about 55 hours messing with the RAM. So give me some time and I'll go through my notes and post them.

Absolute insanity. I love it! Very nice work.

Since swapping around courses in the main course table wasn't working, I decided to dig into the code to see if it handled anything special on a per-course basis. I tracked down every instance where the course ID (0x800DC5A0) is referenced and documented them. There ended up being 170+ of them, so it's kind of a lot to digest. I'm attaching an armips assembly file which documents each of them and any tables they use. Some are data tables, some are jump tables, some are just basic branch switch statements.

Also, I confirmed that course ID = 0x14 is the Award Ceremony. Many of the tables contain 21 entries and special code exists for 0x14 and non-0x14 cases.

Since there are so many references, I'm going to need help tracking down what they are all used for. Next steps are taking a look at when this code is called at run-time, figuring out how the dynamically populated arrays are generated, and digging into the specific loading functions.

In addition to the main course table @ 802B8D80/122390, here are some of the other course-related tables (but all of the course-specific code is relevant):
Code:
800DCBB4: table of array pointers (Mario Raceway uses 0x800DCB34, all others use 0x800DCAF4)
.org 0x800DCBB4 // 0DD7B4
.dw 0x800DCB34, 0x800DCAF4, 0x800DCAF4, 0x800DCAF4 // 00
.dw 0x800DCAF4, 0x800DCAF4, 0x800DCAF4, 0x800DCAF4 // 04
.dw 0x800DCAF4, 0x800DCAF4, 0x800DCAF4, 0x800DCAF4 // 08
.dw 0x800DCAF4, 0x800DCAF4, 0x800DCAF4, 0x800DCAF4 // 0C
.dw 0x800DCAF4, 0x800DCAF4, 0x800DCAF4, 0x800DCAF4 // 10
.dw 0x800DCAF4                                     // 14
// the two arrays:
.org 0x800DCAF4 // 0DD6F4
.dh 0x0014, 0x0005, 0x000A, 0x000F, 0x0014, 0x0019, 0x001E, 0x0023
.dh 0x001E, 0x0019, 0x0032, 0x004B, 0x0064, 0x007D, 0x0096, 0x00AF
.dh 0x0028, 0x001E, 0x003C, 0x005A, 0x0078, 0x0096, 0x00B4, 0x00D2
.dh 0x0032, 0x0028, 0x0050, 0x0078, 0x00A0, 0x00C8, 0x00F0, 0x0118
.org 0x800DCB34 // 0DD734
.dh 0x0014, 0x0005, 0x000A, 0x000F, 0x0014, 0x0019, 0x001E, 0x0023
.dh 0x001E, 0x0019, 0x002D, 0x0041, 0x005A, 0x0073, 0x008C, 0x00A5
.dh 0x0028, 0x0003, 0x0006, 0x0010, 0x002E, 0x0031, 0x003B, 0x0059
.dh 0x0032, 0x001E, 0x003C, 0x003F, 0x0049, 0x004E, 0x006C, 0x008A

Code:
// 8000ACAC: table of halfwords at 800DCA20, gets multiplied by another number
.org 0x800DCA20 // 0DD620
.dh 0x0030, 0x0035, 0x0035, 0x0035 // 00
.dh 0x0035, 0x0035, 0x0035, 0x0035 // 04
.dh 0x0030, 0x0030, 0x0028, 0x0035 // 08
.dh 0x0035, 0x0026, 0x0035, 0x0035 // 0C
.dh 0x0035, 0x0035, 0x0035, 0x0028 // 10
.dh 0x0035                         // 14

Code:
// 8000DD78: table of structs arrays at 800DCC08
// struct is 0x18 bytes, array of 7 per course = 168 bytes per course
// typedef struct {
//    u16 h00;
//    u16 h02;
//    float f04;
//    float f08;
//    float f0C;
//    float f10; // not sure where used
//      ??   14  // might be unused?
// } some_struct;
// some_struct data[COURSE_COUNT][7];
.org 0x800DCC08 // 0DD808
// 00: Mario Raceway
.dh 0x0028, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0109, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x011D, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01A4, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 01: Choco Mountain
.dh 0x008C, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00A5, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x014A, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0226, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0253, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 02: Bowser's Castle
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0104, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01B3, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 03: Banshee Boardwalk
.dh 0x006E, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00BE, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00FA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01DB, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0262, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 04: Yoshi Valley
.dh 0x0000, 0x0000 :: .float 0.8333333, -1533.0, -682.0, -103.0, 0.0
.dh 0x000A, 0x0000 :: .float 0.8333333, -1565.0, -619.0, -109.0, 0.0
.dh 0x0014, 0x0000 :: .float 0.8333333, -1529.0, -579.0, -109.0, 0.0
.dh 0x001E, 0x0000 :: .float 0.8333333, -1588.0, -534.0, -106.0, 0.0
.dh 0x0028, 0x0000 :: .float 0.8333333, -1598.0, -207.0, -105.0, 0.0
.dh 0x0032, 0x0000 :: .float 0.8333333, -1646.0, -147.0,  -93.0, 0.0
.dh 0x003C, 0x0000 :: .float 0.8333333, -2532.0, -445.0,  -90.0, 0.0
// 05: Frappe Snowland
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0122, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x015E, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 06: Koopa Troopa Beach
.dh 0x003C, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0078, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0118, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01B3, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 07: Royal Raceway
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0128, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0190, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x02EA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 08: Luigi Raceway
.dh 0x0032, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0131, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01B8, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0203, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 09: Moo Moo Farm
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x008C, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00E1, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x013C, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01B2, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 0A: Toad's Turnpike
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00FA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 0B: Kalimari Desert
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x008A, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0118, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0194, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x01FE, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 0C: Sherbet Land
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00FA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 0D: Rainbow Road
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00FA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 0E: Wario Stadium
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00C8, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00FA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 0F: Block Fort
.dh 0x0014, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0028, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x003C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0050, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0078, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x008C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
// 10: Skyscraper
.dh 0x0014, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0028, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x003C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0050, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0078, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x008C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
// 11: Double Deck
.dh 0x0014, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0028, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x003C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0050, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0078, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x008C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
// 12: DK's Jungle Parkway
.dh 0x0032, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0096, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00BE, 0x0001 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x00FA, 0x0003 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
.dh 0x0000, 0x0000 :: .float 0.8333333, 0.0, 0.0, 0.0, 0.0
// 13: Big Donut
.dh 0x0014, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0028, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x003C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0050, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0078, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x008C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
// 14: Award Ceremony
.dh 0x0003, 0x0005 :: .float 1.25, 0.0, 0.0, 0.0, 0.0
.dh 0x0028, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x003C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0050, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0064, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x0078, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0
.dh 0x008C, 0x0000 :: .float 1.0, 0.0, 0.0, 0.0, 0.0

Code:
// table of halfwords at 800DD9D0 (8 per course)
.org 0x800DD9D0 // 0DE5D0
.dh 0x0258, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 00: Mario Raceway
.dh 0x02BC, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 01: Choco Mountain
.dh 0x030C, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 02: Bowser's Castle
.dh 0x02EE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 03: Banshee Boardwalk
.dh 0x02B2, 0x02A8, 0x02B2, 0x0320, 0x0001, 0x0000, 0x0000, 0x0000 // 04: Yoshi Valley
.dh 0x02EE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 05: Frappe Snowland
.dh 0x02BC, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 06: Koopa Troopa Beach
.dh 0x03E8, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 07: Royal Raceway
.dh 0x02DA, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 08: Luigi Raceway
.dh 0x0230, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 09: Moo Moo Farm
.dh 0x03E8, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 0A: Toad's Turnpike
.dh 0x02BC, 0x0001, 0x0001, 0x0001, 0x0226, 0x0000, 0x0000, 0x0000 // 0B: Kalimari Desert
.dh 0x02BC, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 0C: Sherbet Land
.dh 0x076C, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 0D: Rainbow Road
.dh 0x0640, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 0E: Wario Stadium
.dh 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 0F: Block Fort
.dh 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 10: Skyscraper
.dh 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 11: Double Deck
.dh 0x0370, 0x0001, 0x0001, 0x0001, 0x01F4, 0x0000, 0x0000, 0x0000 // 12: DK's Jungle Parkway
.dh 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 // 13: Big Donut
.dh 0x01F4, 0x01F4, 0x01F4, 0x01F4, 0x0001, 0x0000, 0x0000, 0x0000 // 14: Award Ceremony

Code:
// table of floats at 800DCAA0
.org 0x800DCAA0 // 0DD6A0
.float 0.3, 0.3, 0.2, 0.4 // 00: 0x3E99999A, 0x3E99999A, 0x3E4CCCCD, 0x3ECCCCCD
.float 0.0, 0.3, 0.5, 0.4 // 04: 0x00000000, 0x3E99999A, 0x3F000000, 0x3ECCCCCD
.float 0.7, 0.5, 0.5, 0.3 // 08: 0x3F333333, 0x3F000000, 0x3F000000, 0x3E99999A
.float 0.3, 0.4, 0.6, 0.1 // 0C: 0x3E99999A, 0x3ECCCCCD, 0x3F19999A, 0x3DCCCCCD
.float 0.5, 0.5, 0.1, 0.5 // 10: 0x3F000000, 0x3F000000, 0x3DCCCCCD, 0x3F000000
.float 0.5                // 14: 0x3F000000

Code:
// float table @ 800DCA4C
.org 0x800DCA4C // 0DD64C
.float 50.0, 35.0, 35.0, 40.0 // 00: 0x42480000, 0x420C0000, 0x420C0000, 0x42200000
.float 35.0, 50.0, 50.0, 50.0 // 04: 0x420C0000, 0x42480000, 0x42480000, 0x42480000
.float 50.0, 50.0, 50.0, 50.0 // 08: 0x42480000, 0x42480000, 0x42480000, 0x42480000
.float 50.0, 50.0, 50.0, -1.0 // 0C: 0x42480000, 0x42480000, 0x42480000, 0xBF800000
.float -1.0, -1.0, 40.0, -1.0 // 10: 0xBF800000, 0xBF800000, 0x42200000, 0xBF800000
.float 40.0                   // 14: 0x42200000

Code:
// byte table @ 800E7664
.org 0x800E7664 // 0E8264
.db 0x01, 0x01, 0x02, 0x03 // 00
.db 0x03, 0x01, 0x00, 0x02 // 04
.db 0x00, 0x00, 0x01, 0x00 // 08
.db 0x02, 0x03, 0x02, 0x04 // 0C
.db 0x04, 0x04, 0x03, 0x04 // 10

Code:
// course ordering in cups table @ 800F2BB4
.org 0x800F2BB4 // 0F37B4
.dh 0x0008, 0x0009, 0x0006, 0x000B // LR, MMF, KTB, KD
.dh 0x000A, 0x0005, 0x0001, 0x0000 // TT, FS, CM, MR
.dh 0x000E, 0x000C, 0x0007, 0x0002 // WS, SL, RR, BC
.dh 0x0012, 0x0004, 0x0003, 0x000D // DK, YV, BB, RRd
.dh 0x0013, 0x000F, 0x0011, 0x0010 // BD, BF, DD, SS

Code:
// table @ 802B8AD0
.org 0x802B8AD0 // 1220E0
.dh 0x0080, 0x10B8, 0x17F8, 0x00D8, 0x1BE8, 0x7DF8 // 00
.dh 0x00FF, 0x00FF, 0x00FF, 0x00FF, 0x00FF, 0x00FF // 01
.dh 0x0030, 0x0608, 0xC178, 0x0000, 0x0000, 0x0000 // 02
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 03
.dh 0x0071, 0x0046, 0x00FF, 0x00FF, 0x00B8, 0x0063 // 04
.dh 0x001C, 0x000B, 0x005A, 0x0000, 0x0063, 0x00A4 // 05
.dh 0x0030, 0x0698, 0xD378, 0x00D8, 0x1BE8, 0x7DF8 // 06
.dh 0x00EE, 0x0090, 0x00FF, 0x00FF, 0x00E0, 0x00F0 // 07
.dh 0x0080, 0x10B8, 0x17F8, 0x00D8, 0x1BE8, 0x7DF8 // 08
.dh 0x0000, 0x0012, 0x00FF, 0x00C5, 0x00D3, 0x00FF // 09
.dh 0x0000, 0x0002, 0x005E, 0x00D1, 0x0041, 0x0017 // 0A
.dh 0x00C3, 0x00E7, 0x00FF, 0x00FF, 0x00C0, 0x0000 // 0B
.dh 0x0080, 0x10B8, 0x17F8, 0x00D8, 0x1BE8, 0x7DF8 // 0C
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 0D
.dh 0x0014, 0x001E, 0x0038, 0x0028, 0x003C, 0x006E // 0E
.dh 0x0080, 0x10B8, 0x17F8, 0x00D8, 0x1BE8, 0x7DF8 // 0F
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 10
.dh 0x0071, 0x0046, 0x00FF, 0x00FF, 0x00B8, 0x0063 // 11
.dh 0x00FF, 0x00AE, 0x0000, 0x00FF, 0x00E5, 0x007C // 12
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 13
// table @ 802B8BCC
.org 0x802B8BCC // 1221DC
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 00
.dh 0x00FF, 0x00FF, 0x00FF, 0x00FF, 0x00FF, 0x00FF // 01
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 02
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 03
.dh 0x005F, 0x0028, 0x000F, 0x0000, 0x0000, 0x0000 // 04
.dh 0x0000, 0x0063, 0x00A4, 0x0000, 0x0000, 0x0000 // 05
.dh 0x0030, 0x0698, 0xD378, 0x0000, 0x0000, 0x0000 // 06
.dh 0x00FF, 0x00E0, 0x00F0, 0x0000, 0x0000, 0x0000 // 07
.dh 0x00D8, 0x1BE8, 0x7DF8, 0x0000, 0x0000, 0x0000 // 08
.dh 0x00FF, 0x00B8, 0x0063, 0x0000, 0x0000, 0x0000 // 09
.dh 0x00D1, 0x0041, 0x0017, 0x0000, 0x0000, 0x0000 // 0A
.dh 0x00FF, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000 // 0B
.dh 0x00D8, 0x1BE8, 0x7DF8, 0x0080, 0x10B8, 0x17F8 // 0C
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 0D
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 0E
.dh 0x00D8, 0x1BE8, 0x7DF8, 0x0000, 0x0000, 0x0000 // 0F
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 10
.dh 0x00FF, 0x00E0, 0x00F0, 0x0000, 0x0000, 0x0000 // 11
.dh 0x0016, 0x0091, 0x0016, 0x0000, 0x0000, 0x0000 // 12
.dh 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 // 13


Attached Files
Size: 14.9 KB / Downloads: 5 .zip   mk64_course_refs.zip


Mario Kart 64 Hacking General Discussion « 1 ... 12 13 14 15 16
Users browsing this thread: 1 Guest(s)