sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

entry.s (1369B)


      1 // assembler directives
      2 .set noat      // allow manual use of $at
      3 .set noreorder // don't insert nops after branches
      4 
      5 #include "macros.inc"
      6 
      7 
      8 .section .text, "ax"
      9 
     10 glabel entry_point
     11 .if VERSION_CN == 1
     12     lui   $t0, %lo(_mainSegmentNoloadStartHi)
     13     ori   $t0, %lo(_mainSegmentNoloadStartLo)
     14     lui   $t1, %lo(_mainSegmentNoloadSizeHi)
     15     ori   $t1, %lo(_mainSegmentNoloadSizeLo)
     16 .L80249010:
     17     sw    $zero, ($t0)
     18     sw    $zero, 4($t0)
     19     addi  $t0, $t0, 8
     20     addi  $t1, $t1, -8
     21     bnez  $t1, .L80249010
     22      nop
     23     lui   $sp, %lo(gIdleThreadStackHi)
     24     ori   $sp, %lo(gIdleThreadStackLo)
     25     lui   $t2, %lo(main_funcHi)
     26     ori   $t2, %lo(main_funcLo)
     27     jr    $t2
     28      nop
     29 .else
     30     lui   $t0, %hi(_mainSegmentNoloadStart) // $t0, 0x8034
     31     lui   $t1, %lo(_mainSegmentNoloadSizeHi) // lui $t1, 2
     32     addiu $t0, %lo(_mainSegmentNoloadStart) // addiu $t0, $t0, -0x6df0
     33     ori   $t1, %lo(_mainSegmentNoloadSizeLo) // ori $t1, $t1, 0xcee0
     34 .L80246010:
     35     addi  $t1, $t1, -8
     36     sw    $zero, ($t0)
     37     sw    $zero, 4($t0)
     38     bnez  $t1, .L80246010
     39      addi  $t0, $t0, 8
     40     lui   $t2, %hi(main_func) // $t2, 0x8024
     41     lui   $sp, %hi(gIdleThreadStack) // $sp, 0x8020
     42     addiu $t2, %lo(main_func) // addiu $t2, $t2, 0x6dc4
     43     jr    $t2
     44      addiu $sp, %lo(gIdleThreadStack) // addiu $sp, $sp, 0xa00
     45 .endif
     46     nop
     47     nop
     48     nop
     49     nop
     50     nop
     51     nop