User Tools


Level Rendering Pointers

There is a lot of hardcoded dynamic F3DEX being generated for each level each frame. This page will serve as a document to keep track of everything that's going on during the level rendering.


0x80295A38 - The big function for level loading (not sure yet what everything does, but the big table that holds the pointers to level-specific render code is in it at 80295AAC)

0x80290DAC - This function appears to use the current level's surface information & rendering tables to determine which render group to use. This draws the level data around the current player.

Course Render Table

Course Name Render Pointer
Mario Raceway 0x80292464
Choco Mountain 0x80292920
Bowser's Castle 0x80292d98
Banshee Boardwalk 0x80292f80
Yoshi Valley 0x802933d8
Frappe Snowland 0x802934a0
Koopa Troopa Beach 0x802935f8
Royal Raceway 0x80293840
Luigi Raceway 0x80293a90
Moo Moo Farm 0x80293f3c
Toad's Turnpike 0x80294410
Kalimari Desert 0x80294730
Sherbet Land 0x802949b0
Rainbow Road 0x80294a7c
Wario Stadium 0x80294b2c
Block Fort 0x80294fdc
Skyscraper 0x80295094
Double Deck 0x8029522c
DK's Jungle Parkway 0x80295310
Big Donut 0x802954e8

Course Hardcoded Rendering

Here I'll list a few of the hardcoded F3DEX commands that are written into the functions above:

Block Fort:

  • [call 0x802b5d64]
  • BB000001 FFFFFFFF
  • B7000000 00000200
  • B6000000 00020000
  • 06000000 070015C0

Skyscraper:

  • [call 0x802b5d64]
  • BB000001 FFFFFFFF
  • B7000000 00000200
  • B6000000 00020000
  • 06000000 07000C60
  • 06000000 07000B70
  • 06000000 070006B8
  • 06000000 07000570
  • B6000000 00002000
  • 06000000 070010C8
  • B7000000 00002000
  • 06000000 07000258

Double Deck:

  • [call 0x802b5d64]
  • BB000001 FFFFFFFF
  • B7000000 00000200
  • B6000000 00020000
  • B6000000 00002000
  • 06000000 07000738
  • B6000000 00020000

Big Donut:

  • B7000000 00000200
  • B6000000 00020000
  • [call 0x802b5d64]
  • BB000001 FFFFFFFF
  • B7000000 00000200
  • [call 0x80290c20, prep for if statement, related to 0x80290DAC?]
  • | [if statement, not sure what it is]
  • | FCFFFFFF FFFE793C
  • | B900031D 00552078
  • | 06000000 07000DE8
  • | [end if statment]
  • 06000000 07000450
  • 06000000 07000AC0
  • 06000000 07000D20
  • 06000000 07000230