Skip to content

Objects

RenaKunisaki edited this page Apr 21, 2016 · 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 | | Unknown | 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 | | Unknown | 0x34A0 |

| 0x06 Koopa Troopa Beach | 0x8029DD60 | | Item Boxes | 0x18E78 | | Palm Trees | 0x18F70 | | Unknown | 0xADE0 |

| 0x07 Royal Raceway | 0x8029DDA8 | | Trees | 0xDA78 | | Item Boxes | 0xDB80 | | Piranha Plants | 0xD9F0 | | Unknown | 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 | 0x22E8 |

| 0x0C Sherbet Land | 0x8029DFD4 | | Trees | 0x9B80 | | Unknown | 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.

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