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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
.include "asm/macros.inc"
.include "global.inc"
.section .text
arm_func_start NNS_G2dDrawSpriteFast
NNS_G2dDrawSpriteFast: ; 0x020B0250
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
ldr r5, _020B02C0 ; =0x04000470
mov r0, r0, lsl #0xc
str r0, [r5, #0x0]
mov r4, r1, lsl #0xc
ldr r12, [sp, #0x10]
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x1c]
str r4, [r5, #0x0]
mov r4, r2, lsl #0xc
ldr r2, [sp, #0x18]
ldr lr, _020B02C4 ; =0x0400046C
str r4, [r5, #0x0]
mov r4, r3, lsl #0xc
ldr r3, [sp, #0x20]
str r4, [lr, #0x0]
mov r12, r12, lsl #0xc
str r12, [lr, #0x0]
mov r12, #0x1000
mov r0, r0, lsl #0xc
mov r1, r1, lsl #0xc
mov r2, r2, lsl #0xc
mov r3, r3, lsl #0xc
str r12, [lr, #0x0]
bl DrawOneQuad_
add sp, sp, #0x4
ldmia sp!, {r4-r5,pc}
.balign 4
_020B02C0: .word 0x04000470
_020B02C4: .word 0x0400046C
arm_func_end NNS_G2dDrawSpriteFast
arm_func_start NNS_G2dSetupSoftwareSpriteCamera
NNS_G2dSetupSoftwareSpriteCamera: ; 0x020B02C8
stmdb sp!, {lr}
sub sp, sp, #0x14
ldr r2, _020B0330 ; =0xBFFF0000
ldr r0, _020B0334 ; =0x04000580
mov r1, #0x400000
str r2, [r0, #0x0]
rsb r0, r1, #0x0
str r0, [sp, #0x0]
str r1, [sp, #0x4]
mov r0, #0x0
str r1, [sp, #0x8]
mov r1, #0x1
str r1, [sp, #0xc]
mov r2, r0
mov r1, #0xc0000
mov r3, #0x100000
str r0, [sp, #0x10]
bl G3i_OrthoW_
ldr r1, _020B0338 ; =0x0400044C
mov r2, #0x0
ldr r0, _020B033C ; =0x04000440
str r2, [r1, #0x0]
mov r1, #0x1
str r1, [r0, #0x0]
add sp, sp, #0x14
ldmia sp!, {pc}
.balign 4
_020B0330: .word 0xBFFF0000
_020B0334: .word 0x04000580
_020B0338: .word 0x0400044C
_020B033C: .word 0x04000440
arm_func_end NNS_G2dSetupSoftwareSpriteCamera
arm_func_start DrawOneQuad_
DrawOneQuad_: ; 0x020B0340
stmdb sp!, {r4-r6,lr}
mov r3, r3, lsl #0x8
mov r0, r0, lsl #0x8
mov r4, r3, asr #0x10
mov r3, r0, asr #0x10
mov r0, r4, lsl #0x10
mov r3, r3, lsl #0x10
mov r1, r1, lsl #0x8
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r2, r2, lsl #0x8
mov r2, r2, asr #0x10
mov r2, r2, lsl #0x10
ldr ip, _020B03F4 ; =0x04000500
mov lr, #0x1
mov r6, r0, lsr #0x10
mov r5, r3, lsr #0x10
mov r3, r1, lsr #0x10
mov r1, r2, lsr #0x10
ldr r4, _020B03F8 ; =0x04000488
str lr, [r12, #0x0]
orr r0, r5, r6, lsl #0x10
ldr lr, _020B03FC ; =0x0400048C
str r0, [r4, #0x0]
mov r0, #0x10000000
str r0, [lr, #0x0]
mov r12, #0x0
str r12, [lr, #0x0]
orr r2, r3, r6, lsl #0x10
ldr r0, _020B0400 ; =0x10001000
str r2, [r4, #0x0]
str r0, [lr, #0x0]
str r12, [lr, #0x0]
orr r0, r3, r1, lsl #0x10
str r0, [r4, #0x0]
mov r0, #0x1000
str r0, [lr, #0x0]
str r12, [lr, #0x0]
orr r0, r5, r1, lsl #0x10
str r0, [r4, #0x0]
str r12, [lr, #0x0]
ldr r0, _020B0404 ; =0x04000504
str r12, [lr, #0x0]
str r12, [r0, #0x0]
ldmia sp!, {r4-r6,pc}
.balign 4
_020B03F4: .word 0x04000500
_020B03F8: .word 0x04000488
_020B03FC: .word 0x0400048C
_020B0400: .word 0x10001000
_020B0404: .word 0x04000504
arm_func_end DrawOneQuad_
|