-
Notifications
You must be signed in to change notification settings - Fork 2
/
exit_course_specific.asm
62 lines (54 loc) · 868 Bytes
/
exit_course_specific.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.org 0x6668
jal 0x403d00
nop
nop
JAL 0x8024A700
OR A3, R0, R0
//close pause menu and disable controller input
OR A0, R0, R0
JAL 0x802497B8
OR A1, R0, R0
LUI AT, 0x8034
SH R0, 0xBACC (AT)
LH T1, 0xC848 (at)
LUI t3, 0xFFFF
ORI t3, t3, 0x7FFF
AND T2, T1, t3
SH T2, 0xC848 (AT)
nop
nop
nop
.org 0x1203d00
; current area
lw t3, 0x8032ddcc
; warp to find
li at, 0xf1
; 0x14 offsetof warpNodes in Area
; 0x8 offsetof next in ObjectWarpNode
; 0xc=0x14-0x8
addiu t3, t3, 0xc
loop777:
; load next and check if is the one necessary
lw t3, 0x08 (T3)
lbu t2, 0x0000 (T3)
bne t2, at, loop777
nop
; override arguments from the node
lhu a0, 0x8032ddf8
; ---- repeat those 3 lines to override exit warp
li a1, 0x17
beq a0, a1, override
nop
; castle ow
li a0, 0x6
li a1, 1
li a2, 0xa
b end
nop
override:
lbu a0, 0x0001 (t3)
lbu a1, 0x0002 (t3)
lbu a2, 0x0003 (t3)
end:
jr ra
nop