This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
super_mario_64:star_select_rendering [2018/03/09 18:18] trenavix created |
super_mario_64:star_select_rendering [2018/10/14 12:52] (current) miles fixed some stuff...added info. |
||
---|---|---|---|
Line 6: | Line 6: | ||
===== Level Script ===== | ===== Level Script ===== | ||
- | The level script for the star act selector starts at 0x2A6238. | + | The level script for the star act selector starts at 0x2A6238 and is part of the main menu level script (2A6120-2A65B0). |
<code> | <code> | ||
- | 2A6238 [118] AccumAsm1 11 08 0000 8024BE14 | + | 2A6238 [118]: AccumAsm1 11 08 0000 8024BE14 |
- | 2A6240 [120] CondJump 0C 0C 0200 00000000 140001C0 | + | 2A6240 [120]: CondJump 0C 0C 0200 00000000 140001C0 |
- | 2A624C [12C] StartLoad 1B 04 0000 | + | 2A624C [12C]: StartLoad 1B 04 0000 |
- | 2A6250 [130] LoadASM 16 10 0000 8016F000 0021F4C0 00269EA0 | + | 2A6250 [130]: LoadASM 16 10 0000 8016F000 0021F4C0 00269EA0 |
- | 2A6260 [140] MIO0->Seg 18 0C 0007 002A65B0 002ABCA0 | + | 2A6260 [140]: MIO0->Seg 18 0C 0007 002A65B0 002ABCA0 |
- | 2A626C [14C] EndLoad 1D 04 0000 | + | 2A626C [14C]: EndLoad 1D 04 0000 |
- | 2A6270 [150] StartArea 1F 08 0200 14000408 | + | 2A6270 [150]: StartArea 1F 08 0200 14000408 |
- | 2A6278 [158] PlaceObj 24 18 1F00 24181F00 0000FF9C 00000000 00000000 04000000 13003048 | + | 2A6278 [158]: PlaceObj 24 18 1F00 24181F00 0000FF9C 00000000 00000000 04000000 13003048 |
- | 2A6290 [170] Collision 2E 08 0000 0700DE30 | + | 2A6290 [170]: Collision 2E 08 0000 0700DE30 |
- | 2A6298 [178] EndArea 20 04 0000 | + | 2A6298 [178]: EndArea 20 04 0000 |
- | 2A629C [17C] 1E 04 0000 | + | 2A629C [17C]: AllocPool 1E 04 0000 |
- | 2A62A0 [180] 29 04 0200 | + | 2A62A0 [180]: 29 04 0200 |
- | 2A62A4 [184] FadeColor 33 08 0010 FFFFFF00 | + | 2A62A4 [184]: FadeColor 33 08 0010 FFFFFF00 |
- | 2A62AC [18C] Delay03 03 04 0010 | + | 2A62AC [18C]: Delay03 03 04 0010 |
- | 2A62B0 [190] Music37 37 04 000D | + | 2A62B0 [190]: Music37 37 04 000D |
- | 2A62B4 [194] AccumAsm1 11 08 0000 80177560 | + | 2A62B4 [194]: AccumAsm1 11 08 0000 80177560 |
- | 2A62BC [19C] AccumAsm2 12 08 0000 80177610 | + | 2A62BC [19C]: AccumAsm2 12 08 0000 80177610 |
- | 2A62C4 [1A4] GetPut 3C 04 0002 | + | 2A62C4 [1A4]: GetPut 3C 04 0002 |
- | 2A62C8 [1A8] 38 04 00BE | + | 2A62C8 [1A8]: 38 04 00BE |
- | 2A62CC [1AC] FadeColor 33 08 0110 FFFFFF00 | + | 2A62CC [1AC]: FadeColor 33 08 0110 FFFFFF00 |
- | 2A62D4 [1B4] Delay03 03 04 0010 | + | 2A62D4 [1B4]: Delay03 03 04 0010 |
- | 2A62D8 [1B8] 1C 04 0000 | + | 2A62D8 [1B8]: Cleanup 1C 04 0000 |
- | 2A62DC [1BC] Delay04 04 04 0001 | + | 2A62DC [1BC]: Delay04 04 04 0001 |
- | 2A62E0 [1C0] EndLevel 02 04 0000 | + | 2A62E0 [1C0]: EndLevel 02 04 0000 |
</code> | </code> | ||
===== Geo Layout ===== | ===== Geo Layout ===== | ||
- | The geo layout for the act selector is defined by the StartArea 0x1F level command above (seg 14000408, ROM 2A6528) | + | The geo layout for the act selector is defined by the StartArea 0x1F level command above. (seg 14000408, ROM 2A6528) |
<code> | <code> | ||
- | 0x0800000A, 0x00A00078, 0x00A00078 | + | 2A6528: [ 08 00 00 0A 00A00078 00A00078 ] // Set screen rendering area |
- | 0x04000000 | + | 2A6534: [ 04 00 00 00 ] |
- | 0x0C000000 | + | 2A6538: [ 0C 00 00 00 ] |
- | 0x04000000 | + | 2A653C: [ 04 00 00 00 ] |
- | 0x09000064 | + | 2A6540: [ 09 00 00 64 ] |
- | 0x04000000 | + | 2A6544: [ 04 00 00 00 ] |
- | 0x1900FFFF, 0x00000000 // BG color (RGBA) = white | + | 2A6548: [ 19 00 FFFF 00000000 // Draw solid color background (RGBA) |
- | 0x05000000 | + | 2A6550: [ 05 00 00 00 ] |
- | 0x05000000 | + | 2A6554: [ 05 00 00 00 ] |
- | 0x0C010000 | + | 2A6558: [ 0C 01 00 00 ] |
- | 0x04000000 | + | 2A655C: [ 04 00 00 00 ] |
- | 0x0A00002D, 0x006461A8 | + | 2A6560: [ 0A 00 002D 0064 61A8 ] |
- | 0x04000000 | + | 2A6568: [ 04 00 00 00 ] |
- | 0x0F000000, 0x00000000, 0x03E80000, 0x00000000, 0x00000000 | + | 2A656C: [ 0F 00 0000 0000 0000 03E8 0000 0000 0000 00000000 ] |
- | 0x04000000 | + | 2A6580: [ 04 00 00 00 ] |
- | 0x17000000 | + | 2A6584: [ 17 00 00 00 ] // Setup display lists for level objects |
- | 0x05000000 | + | 2A6588: [ 05 00 00 00 ] |
- | 0x05000000 | + | 2A658C: [ 05 00 00 00 ] |
- | 0x05000000 | + | 2A6590: [ 05 00 00 00 ] |
- | 0x0C000000 | + | 2A6594: [ 0C 00 00 00 ] |
- | 0x04000000 | + | 2A6598: [ 04 00 00 00 ] |
- | 0x18000000, Geo18_80177518 // renders 2D text and course texture | + | 2A659C: [ 18 00 00 00 80177518 ] // Create display list(s) from the ASM function 0x80177518 |
- | 0x05000000 | + | 2A65A4: [ 05 00 00 00 ] |
- | 0x05000000 | + | 2A65A8: [ 05 00 00 00 ] |
- | 0x01000000 | + | 2A65AC: [ 01 00 00 00 ] // End geometry layout |
</code> | </code> | ||
===== Star Behavior Script ===== | ===== Star Behavior Script ===== | ||
- | The rotating star behavior contains two ASM routines 80176B20 and 80176DF0 which generate the act selection stars and rotate the selected star. | + | The rotating star behavior (seg 13003048, ROM 21CE48) contains two ASM routines 80176B20 and 80176DF0 which generate the act selection stars and rotate the selected star. |
<code> | <code> | ||
- | 00 08 00 00 | + | 21CE48 [3048]: 00 08 00 00 |
- | 11 01 00 01 | + | 21CE4C [304C]: 11 01 00 01 |
- | 0C 00 00 00 80176B20 // ROM: 0x226FE0, Creates menu stars | + | 21CE50 [3050]: 0C 00 00 00 80176B20 // ROM: 0x226FE0, Creates menu stars |
- | 08 00 00 00 | + | 21CE58 [3058]: 08 00 00 00 |
- | 0C 00 00 00 80176DF0 // ROM: 0x2272B0, Rotate stars/select act | + | 21CE5C [305C]: 0C 00 00 00 80176DF0 // ROM: 0x2272B0, Rotate stars/select act |
- | 09 00 00 00 | + | 21CE64 [3064]: 09 00 00 00 |
</code> | </code> | ||