Skip to content

Objects

Rena Kunisaki edited this page Dec 24, 2018 · 6 revisions

Objects that can be moved or destroyed, such as item boxes, trees, and the giant sign in Mario Raceway, are stored in the same format as Course Paths. Like the paths, they are stored at hardcoded offsets in segment 6.

This list lists the location of each track's initialization routine in RAM, and the objects it loads in order:

Object Offset
0x00 Mario Raceway 0x8029DBBC
Item Boxes 0x9498
Piranha Plants 0x9518
Trees 0x9570
0x01 Choco Mountain 0x8029DC88
Item Boxes 0x7250
Falling Rocks 0x7230
2D Path 0x4480
0x02 Bowser's Castle 0x8029DCA8
Trees 0x9290
Item Boxes 0x9370
0x03 Banshee Boardwalk 0x8029DCC8
Item Boxes 0xB3D0
0x04 Yoshi Valley 0x8029DCDC
Trees 0x180A0
Item Boxes 0x18110
0x05 Frappe Snowland 0x8029DD40
Trees 0x7718
Item Boxes 0x7810
2D Path 0x34A0
0x06 Koopa Troopa Beach 0x8029DD60
Item Boxes 0x18E78
Palm Trees 0x18F70
2D Path 0xADE0
0x07 Royal Raceway 0x8029DDA8
Trees 0xDA78
Item Boxes 0xDB80
Piranha Plants 0xD9F0
2D Path 0xB5B8
0x08 Luigi Raceway 0x8029DDD4
Trees 0xFE80
Item Boxes 0xFDE8
0x09 Moo Moo Farm 0x8029DDF4
Trees (not loaded in 4-player mode) 0x14330
Item Boxes 0x143E0
0x0A Toad's Turnpike 0x8029DE28
Item Boxes 0x23AE0
0x0B Kalimari Desert 0x8029DE3C
Trees 0x22F08
Item Boxes 0x22E88
0x0C Sherbet Land 0x8029DFD4
Item Boxes 0x9B80
2D Path 0x4BF8
0x0D Rainbow Road 0x8029DFE8
Item Boxes 0x16338
0x0E Wario Stadium 0x8029DFFC
Item Boxes 0xCB40
0x0F Block Fort 0x8029E0D0
Item Boxes 0x38
0x10 Skyscraper 0x8029E0E4
Item Boxes 0x80
0x11 Double Deck 0x8029E0F8
Item Boxes 0x28
0x12 DK's Jungle Parkway 0x8029E10C
Item Boxes 0x13EC0
0x13 Big Donut 0x8029E130
Item Boxes 0x58

The initialization routine calls the following routine to load the objects, with register A0 set to the RSP address of the object positions:

  • 0x8029D830: Item boxes
  • 0x8029D584: Trees
  • 0x8029CC14: Piranha plants
  • 0x8029CD80: Palm trees (Koopa Beach)
  • 0x8029D018: Falling rocks (Choco Mountain)

Trees (except palm trees), bushes, and cacti are all the same object with different graphics. Special item boxes (rigged to always give a blue shell) aren't handled here. 2D paths are used for the overview map. (XXX why don't all tracks have them? Maybe there's another function?)

The tracks' initialization routines also load some other objects:

  • Yoshi Valley calls 0x802B529C to load the giant egg
    • A0 = SP + 0x40
    • A1 = X position
    • A2 = Y position
    • A3 = Z position
    • Removing this call makes the egg invisible and places it at coordinates 0,0,0
  • DK's Jungle Parkway calls 0x8029D9F8 (from 0x8029E118); this causes coconuts to be thrown.
  • 0x8029E380 calls 0x802A84F4 when loading Luigi Raceway and maybe some others (XXX):
    • A0 = 0x0F035568 (pointing at something in/after segment 7 data?)
    • A1 = 0x0400
    • A2 = 0x0800
    • Looks similar to an object loading routine
    • Disabling it seems to have no effect
Clone this wiki locally