Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- arch n64.cpu
- endian msb
- //output "", create
- include "LIB\N64.inc"
- include "LIB\macros.inc"
- origin 0x0
- insert "LIB\Super Mario 64 (U) [!].z64"
- // Title Screen
- origin 0xF1F80
- Asciiz("TASK4")
- origin 0xF1F88
- Asciiz(" US")
- // All Stars Yellow
- origin 0xAD548
- beq r0, r0, 0xAD56C // 812F2548 1000
- origin 0x65FC4
- beq r0, r0, 0x65FD4 // 812AAFC4 1000
- //Always Have Special Triple Jump
- //origin 0x26828
- //nop // 8126B828 2400
- //1up->blue coin
- origin 0xEC952
- dh 0x30D4 //81331952 30D4
- dh 0x0077 //81331954 0077
- origin 0xA1510
- dh 0x1000 //812E6510 1000
- //Remove redcoin
- origin 0x21DCAC
- dh 0x1D00 //810EF02C 1D00
- //Remove fires
- origin 0x21AF68
- dh 0x1D00 //810EC2E8 1D00
- //Remove small bully
- origin 0x21D430
- dh 0x1D00 //810EE7B0 1D00
- //Remove boss bully
- origin 0x21D460
- dh 0x1D00 //810EE7E0 1D00
- //Remove spurt fire
- origin 0x21AF08
- dh 0x1D00 //810EC288 1D00
- //Walk On Lava
- origin 0xB900
- dh 0x1000 //81250900 1000
- // LLLposition
- origin 0x48D21C
- dh 0x0000 //8118BF64 0000
- dh 0x0700 //8118BF66 0700
- dh 0xE520 //8118BF68 E520
- // LLL face orientation
- origin 0x48D225
- dh 0x0000 //8118BF6C 0000
- // change star posi
- origin 0x48CE8C
- dh 0xFFFF //8118C66C FFFF
- dh 0x02BA //8118C66E 02BA
- dh 0x181C //8118C670 181C
- // No Music
- origin 0xD83F4
- dh 0x2405
- origin 0xD83F6
- dh 0x0000
- // Level Reset
- origin 0x57E9C
- nop // 8129CE9C 2400
- origin 0x57EC0
- nop // 8129CEC0 2400
- // Prevent timer reset at start of Koopa race
- origin 0x463C
- nop // 8124963C 2400
- // Prevent timer stop at end of Koopa race
- origin 0x4660
- nop // 81249660 2400
- // Manual Timer
- origin 0x4688
- sb k1, 0xB25E (at) // 81249688 A03B
- origin 0x4690
- nop // 81249690 2400
- //origin 0x6194
- //ori t2, t1, 0x0040 // 8024B197 0040
- origin 0x8C7C
- sb r0, 0x00EE (t5) // 8124DC7C A1A0 & 8124DC7E 00EE
- //stage music modifer
- origin 0x5024
- beq r0, r0, 0x5044 // 8124A024 1000
- // Star-Grab Timer
- origin 0x8C70
- base 0x8024DC70
- lb at, 0x00 (t5)
- ori t6, r0, 0x7F //8124DC70 81A1 && 8124DC74 340E && 8124DC76 007F
- beq r0, at, 0x8024DC7C
- origin 0x8C84
- sh t6, 0xFA (t5) //8124DC84 A5AE && 8124DC86 00FA
- // Centisecond
- origin 0x9E9C8
- addiu at, r0, 0x0A
- origin 0x9EA00
- mult t9, at
- mflo t1
- addiu at, r0, 0x03
- div t1, at
- mflo t2
- sh t2, 0x24 (sp)
- origin 0x9EA60
- addiu a2, a2, 0x83B4
- // Lag Frame Counter
- origin 0xE29AC // 803279AC
- jal 0x8027F4C8 // ROM 0x3A4C8
- origin 0x3BE0 // 80248BE0 Hijack BUF display
- lui t8, 0x8034
- lw t7, 0xB290 (t8) // Read current value
- lw t6, 0xB294 (t8) // Read previous value
- sw t7, 0xB294 (t8) // Copy current value to previous value
- subu t5, t7, t6 // Calculate difference between previous and current
- lw a3, 0xB298 (t8) // Load sum
- addu a3, a3, t5 // Expect 2 frames difference
- addiu a3, a3, 0xFFFE
- origin 0x3C14 // 80248C14
- sw a3, 0xB298 (t8) // Save sum
- origin 0x3A4C8 // RAM 0x8027F4C8
- lui t2,0x8034
- lw t3,0xB290(t2)
- addiu t3, t3, 0x0001
- sw t3, 0xB290 (t2) // Add 1 to the video interrupt counter
- j 0x80327B98 // Return to normal exception handling path
- nop
- // Lag as Lives
- origin 0x3C10 // 80248C10
- nop
- origin 0x9E77C // 802E377C
- lw a3, 0xB298 (a3)
- // Hijack Resource Meter
- origin 0x2D2C
- nop
- origin 0x2D34
- jal 0x8027E65C // ROM 0x3965C
- origin 0x3965C // RAM 0x8027E65C
- // Constant Writes
- lui t0, 0x8020
- lui t1, 0x8033
- lui t2, 0x8034
- // 120 Star File (Slot 3)
- addiu v0, r0, 0x1F10
- sh v0, 0x77E8 (t0) // 812077E8 1F10
- addiu v0, r0, 0xFFCB
- sh v0, 0x77EA (t0) // 812077EA FFCB
- addiu v0, r0, 0x7FFF
- sh v0, 0x77EC (t0) // 812077EC 7FFF
- sh v0, 0x77EE (t0) // 812077EE 7FFF
- addiu v0, r0, 0x7FFF
- sh v0, 0x77F0 (t0) // 802077F0 007F & 802077F1 007F
- sh v0, 0x77F2 (t0) // 802077F2 007F & 802077F3 007F
- sh v0, 0x77F4 (t0) // 802077F4 007F & 802077F5 007F
- sh v0, 0x77F6 (t0) // 802077F6 007F & 802077F7 007F
- sh v0, 0x77F8 (t0) // 802077F8 007F & 802077F9 007F
- sb v0, 0x77FA (t0) // 802077FA 007F
- addiu v0, r0, 0x0081
- sb v0, 0x77FB (t0) // 802077FB 0081
- addiu v0, r0, 0x0101
- sh v0, 0x77FC (t0) // 812077FC 0101
- addiu v0, r0, 0x0301
- sh v0, 0x77FE (t0) // 812077FE 0301
- addiu v0, r0, 0x0101
- sh v0, 0x7800 (t0) // 81207800 0101
- addiu v0, r0, 0x0181
- sh v0, 0x7802 (t0) // 81207802 0181
- // Remove Time Text
- sh r0, 0x83A8 (t2) // 813383A8 0000
- // Conditionals
- lui t0, 0x8020
- lui t1, 0x8028
- lui t2, 0x8033
- lui t3, 0x8034
- lui t4, 0x8036
- // Automatically Reset Timer at Star Select
- lb at, 0xB239 (t3)
- addiu v0, r0, 0x0004
- bne at, v0, Skip01 // D033B239 0004
- nop
- sh r0, 0xB26C (t3) // 8133B26C 0000
- Skip01:
- // Level Reset(L)
- lb at, 0xAFA1 (t3)
- addiu v0, r0, 0x0020
- bne at, v0, Skip02 // D033AFA1 0020
- nop
- addiu v0, r0, 0x0008
- sb v0, 0xB21E (t3) // 8033B21E 0008
- sh r0, 0xB262 (t3) // 8133B262 0000
- sh r0, 0xB218 (t3) // 8133B218 0000
- addiu v0, r0, 0x0002
- sb v0, 0xB248 (t3) // 8033B248 0002
- addiu v0, r0, 0x0005
- sh v0, 0x1414 (t4) // 81361414 0005
- Skip02:
- // Level Reset Camera Fix
- lb at, 0xB249 (t3)
- addiu v0, r0, 0x001D
- beq at, v0, Skip03 // D233B249 001D
- nop
- addiu v0, r0, 0x0001
- sh v0, 0x72DA (t1) // 812872DA 0001
- Skip03:
- bne at, v0, Skip04 // D033B249 001D
- nop
- sh r0, 0x72DA (t1) // 812872DA 0000
- Skip04:
- // Manual Timer reset on L
- lb at, 0xAFA1 (t3)
- addiu v0, r0, 0x0020
- bne at, v0, Skip05 // D033AFA1 0020
- nop
- sh r0, 0xB26C (t3) // 8133B26C 0000
- Skip05:
- // Star Select(L+R)
- lb at, 0xAFA1 (t3)
- addiu v0, r0, 0x0030
- bne at, v0, Skip07 // D033AFA1 0030
- nop
- addiu v0, r0, 0x0008
- sb v0, 0xB21E (t3) // 8033B21E 0008
- addiu v0, r0, 0x0004
- sh v0, 0xB238 (t3) // 8133B238 0004
- addiu v0, r0, 0x0002
- sb v0, 0xB248 (t3) // 8033B248 0002
- sh r0, 0xB26C (t3) // 8133B26C 0000
- // sw r0, 0xFED4 (t2) // 8132FED4 0000 & 8132FED6 0000
- lb at, 0xB249 (t3)
- addiu v0, r0, 0x000D
- bne at, v0, Not_THI // D033B249 000D
- nop
- THI:
- addiu v0, r0, 0x010A
- sh v0, 0xB24A (t3) // 8133B24A 020A
- beq r0, r0, Skip07
- nop
- Not_THI:
- addiu v0, r0, 0x010A
- sh v0, 0xB24A (t3) // 8133B24A 010A
- Skip07:
- // Lag Frame Counter
- lb at, 0xAFA1 (t3)
- addiu v0, r0, 0x0020
- bne at, v0, Skip08 // D033AFA1 0020
- nop
- sw r0, 0xB298 (t3) // 8133B298 0000 & 8133B29A 0000
- Skip08:
- // Lag Frame Counter Reset
- lb at, 0xB239 (t3)
- addiu v0, r0, 0x0004
- bne at, v0, Skip14 // D033B239 0004
- nop
- sw r0, 0xB298 (t3) // 8133B298 0000 & 8133B29A 0000
- Skip14:
- // Return
- jr ra
- nop
Advertisement
Add Comment
Please, Sign In to add comment