mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-30 20:36:48 -05:00
Merge branch 'master' of https://github.com/martmists/pokediamond into makelcf
This commit is contained in:
@@ -127,7 +127,19 @@ SECTIONS {
|
||||
FX_vec.o (.text)
|
||||
FX_atan.o (.text)
|
||||
FX.o (.text)
|
||||
libgx.o (.text)
|
||||
GX.o (.text)
|
||||
GX_state.o (.text)
|
||||
GX_vramcnt.o (.text)
|
||||
GX_bgcnt.o (.text)
|
||||
GX_g2.o (.text)
|
||||
GX_g3b.o (.text)
|
||||
GX_g3imm.o (.text)
|
||||
GX_g3x.o (.text)
|
||||
GX_g3_util.o (.text)
|
||||
GX_load2d.o (.text)
|
||||
GX_load3d.o (.text)
|
||||
GX_g3.o (.text)
|
||||
GX_asm.o (.text)
|
||||
OS_irqHandler.o (.text)
|
||||
OS_irqTable.o (.text)
|
||||
OS_interrupt.o (.text)
|
||||
|
||||
245
arm9/asm/GX.s
Normal file
245
arm9/asm/GX.s
Normal file
@@ -0,0 +1,245 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start GXx_SetMasterBrightness_
|
||||
GXx_SetMasterBrightness_: ; 0x020C5978
|
||||
cmp r1, #0x0
|
||||
moveq r1, #0x0
|
||||
streqh r1, [r0, #0x0]
|
||||
bxeq lr
|
||||
cmp r1, #0x0
|
||||
orrgt r1, r1, #0x4000
|
||||
strgth r1, [r0, #0x0]
|
||||
rsble r1, r1, #0x0
|
||||
orrle r1, r1, #0x8000
|
||||
strleh r1, [r0, #0x0]
|
||||
bx lr
|
||||
|
||||
arm_func_start GXS_SetGraphicsMode
|
||||
GXS_SetGraphicsMode: ; 0x020C59A4
|
||||
ldr r2, _020C59BC ; =0x04001000
|
||||
ldr r1, [r2, #0x0]
|
||||
bic r1, r1, #0x7
|
||||
orr r0, r1, r0
|
||||
str r0, [r2, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C59BC: .word 0x04001000
|
||||
|
||||
arm_func_start GX_SetGraphicsMode
|
||||
GX_SetGraphicsMode: ; 0x020C59C0
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r3, _020C5A28 ; =0x02106810
|
||||
mov lr, #0x4000000
|
||||
ldrh r12, [r3, #0x0]
|
||||
ldr lr, [lr, #0x0]
|
||||
ldr r3, _020C5A2C ; =0x021D33C0
|
||||
cmp r12, #0x0
|
||||
strh r0, [r3, #0x0]
|
||||
ldr r3, _020C5A30 ; =0xFFF0FFF0
|
||||
moveq r0, #0x0
|
||||
and r3, lr, r3
|
||||
orr r0, r3, r0, lsl #0x10
|
||||
orr r0, r1, r0
|
||||
orr r1, r0, r2, lsl #0x3
|
||||
mov r12, #0x4000000
|
||||
ldr r0, _020C5A2C ; =0x021D33C0
|
||||
str r1, [r12, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
cmp r0, #0x0
|
||||
ldreq r0, _020C5A28 ; =0x02106810
|
||||
moveq r1, #0x0
|
||||
streqh r1, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5A28: .word 0x02106810
|
||||
_020C5A2C: .word 0x021D33C0
|
||||
_020C5A30: .word 0xFFF0FFF0
|
||||
|
||||
arm_func_start GX_DispOn
|
||||
GX_DispOn: ; 0x020C5A34
|
||||
ldr r0, _020C5A78 ; =0x021D33C0
|
||||
ldr r1, _020C5A7C ; =0x02106810
|
||||
ldrh r2, [r0, #0x0]
|
||||
mov r0, #0x1
|
||||
strh r0, [r1, #0x0]
|
||||
cmp r2, #0x0
|
||||
moveq r1, #0x4000000
|
||||
ldreq r0, [r1, #0x0]
|
||||
orreq r0, r0, #0x10000
|
||||
streq r0, [r1, #0x0]
|
||||
bxeq lr
|
||||
mov r1, #0x4000000
|
||||
ldr r0, [r1, #0x0]
|
||||
bic r0, r0, #0x30000
|
||||
orr r0, r0, r2, lsl #0x10
|
||||
str r0, [r1, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5A78: .word 0x021D33C0
|
||||
_020C5A7C: .word 0x02106810
|
||||
|
||||
arm_func_start GX_DispOff
|
||||
GX_DispOff: ; 0x020C5A80
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
mov lr, #0x4000000
|
||||
ldr r12, [lr, #0x0]
|
||||
ldr r1, _020C5AC0 ; =0x02106810
|
||||
and r2, r12, #0x30000
|
||||
mov r3, #0x0
|
||||
ldr r0, _020C5AC4 ; =0x021D33C0
|
||||
mov r2, r2, lsr #0x10
|
||||
strh r3, [r1, #0x0]
|
||||
strh r2, [r0, #0x0]
|
||||
bic r0, r12, #0x30000
|
||||
str r0, [lr, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5AC0: .word 0x02106810
|
||||
_020C5AC4: .word 0x021D33C0
|
||||
|
||||
arm_func_start GX_VBlankIntr
|
||||
GX_VBlankIntr: ; 0x020C5AC8
|
||||
ldr r2, _020C5AF4 ; =0x04000004
|
||||
cmp r0, #0x0
|
||||
ldrh r0, [r2, #0x0]
|
||||
ldrneh r1, [r2, #0x0]
|
||||
and r0, r0, #0x8
|
||||
orrne r1, r1, #0x8
|
||||
strneh r1, [r2, #0x0]
|
||||
ldreqh r1, [r2, #0x0]
|
||||
biceq r1, r1, #0x8
|
||||
streqh r1, [r2, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5AF4: .word 0x04000004
|
||||
|
||||
arm_func_start GX_HBlankIntr
|
||||
GX_HBlankIntr: ; 0x020C5AF8
|
||||
ldr r2, _020C5B24 ; =0x04000004
|
||||
cmp r0, #0x0
|
||||
ldrh r0, [r2, #0x0]
|
||||
ldrneh r1, [r2, #0x0]
|
||||
and r0, r0, #0x10
|
||||
orrne r1, r1, #0x10
|
||||
strneh r1, [r2, #0x0]
|
||||
ldreqh r1, [r2, #0x0]
|
||||
biceq r1, r1, #0x10
|
||||
streqh r1, [r2, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5B24: .word 0x04000004
|
||||
|
||||
arm_func_start GX_Init
|
||||
GX_Init: ; 0x020C5B28
|
||||
stmdb sp!, {r4-r6,lr}
|
||||
ldr r3, _020C5C68 ; =0x04000304
|
||||
ldr r0, _020C5C6C ; =0xFFFFFDF1
|
||||
ldrh r2, [r3, #0x0]
|
||||
ldr r1, _020C5C70 ; =0x0000020E
|
||||
orr r2, r2, #0x8000
|
||||
strh r2, [r3, #0x0]
|
||||
ldrh r2, [r3, #0x0]
|
||||
and r0, r2, r0
|
||||
orr r0, r0, r1
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r3, #0x0]
|
||||
orr r0, r0, #0x1
|
||||
strh r0, [r3, #0x0]
|
||||
bl GX_InitGXState
|
||||
ldr r5, _020C5C74 ; =0x021D33BC
|
||||
ldrh r0, [r5, #0x0]
|
||||
cmp r0, #0x0
|
||||
bne _020C5B9C
|
||||
mvn r4, #0x2
|
||||
_020C5B78:
|
||||
bl OS_GetLockID
|
||||
mov r6, r0
|
||||
cmp r6, r4
|
||||
bne _020C5B8C
|
||||
bl OS_Terminate
|
||||
_020C5B8C:
|
||||
strh r6, [r5, #0x0]
|
||||
ldrh r0, [r5, #0x0]
|
||||
cmp r0, #0x0
|
||||
beq _020C5B78
|
||||
_020C5B9C:
|
||||
ldr r0, _020C5C78 ; =0x04000004
|
||||
mov r2, #0x0
|
||||
strh r2, [r0, #0x0]
|
||||
mov r1, #0x4000000
|
||||
ldr r0, _020C5C7C ; =0x02106814
|
||||
str r2, [r1, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
mvn r1, #0x0
|
||||
cmp r0, r1
|
||||
beq _020C5BF4
|
||||
ldr r1, _020C5C80 ; =0x04000008
|
||||
mov r3, #0x60
|
||||
bl MI_DmaFill32
|
||||
ldr r1, _020C5C84 ; =0x0400006C
|
||||
mov r2, #0x0
|
||||
ldr r0, _020C5C7C ; =0x02106814
|
||||
strh r2, [r1, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
ldr r1, _020C5C88 ; =0x04001000
|
||||
mov r3, #0x70
|
||||
bl MI_DmaFill32
|
||||
b _020C5C1C
|
||||
_020C5BF4:
|
||||
ldr r1, _020C5C80 ; =0x04000008
|
||||
mov r0, r2
|
||||
mov r2, #0x60
|
||||
bl MIi_CpuClear32
|
||||
ldr r3, _020C5C84 ; =0x0400006C
|
||||
mov r0, #0x0
|
||||
ldr r1, _020C5C88 ; =0x04001000
|
||||
mov r2, #0x70
|
||||
strh r0, [r3, #0x0]
|
||||
bl MIi_CpuClear32
|
||||
_020C5C1C:
|
||||
ldr r1, _020C5C8C ; =0x04000020
|
||||
mov r2, #0x100
|
||||
ldr r0, _020C5C90 ; =0x04000026
|
||||
strh r2, [r1, #0x0]
|
||||
ldr r1, _020C5C94 ; =0x04000030
|
||||
strh r2, [r0, #0x0]
|
||||
ldr r0, _020C5C98 ; =0x04000036
|
||||
strh r2, [r1, #0x0]
|
||||
ldr r1, _020C5C9C ; =0x04001020
|
||||
strh r2, [r0, #0x0]
|
||||
ldr r0, _020C5CA0 ; =0x04001026
|
||||
strh r2, [r1, #0x0]
|
||||
ldr r1, _020C5CA4 ; =0x04001030
|
||||
strh r2, [r0, #0x0]
|
||||
ldr r0, _020C5CA8 ; =0x04001036
|
||||
strh r2, [r1, #0x0]
|
||||
strh r2, [r0, #0x0]
|
||||
ldmia sp!, {r4-r6,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5C68: .word 0x04000304
|
||||
_020C5C6C: .word 0xFFFFFDF1
|
||||
_020C5C70: .word 0x0000020E
|
||||
_020C5C74: .word 0x021D33BC
|
||||
_020C5C78: .word 0x04000004
|
||||
_020C5C7C: .word 0x02106814
|
||||
_020C5C80: .word 0x04000008
|
||||
_020C5C84: .word 0x0400006C
|
||||
_020C5C88: .word 0x04001000
|
||||
_020C5C8C: .word 0x04000020
|
||||
_020C5C90: .word 0x04000026
|
||||
_020C5C94: .word 0x04000030
|
||||
_020C5C98: .word 0x04000036
|
||||
_020C5C9C: .word 0x04001020
|
||||
_020C5CA0: .word 0x04001026
|
||||
_020C5CA4: .word 0x04001030
|
||||
_020C5CA8: .word 0x04001036
|
||||
16
arm9/asm/GX_asm.s
Normal file
16
arm9/asm/GX_asm.s
Normal file
@@ -0,0 +1,16 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start GX_SendFifo48B
|
||||
GX_SendFifo48B: ; 0x020C9BE8
|
||||
ldmia r0!, {r2-r3,r12}
|
||||
stmia r1, {r2-r3,r12}
|
||||
ldmia r0!, {r2-r3,r12}
|
||||
stmia r1, {r2-r3,r12}
|
||||
ldmia r0!, {r2-r3,r12}
|
||||
stmia r1, {r2-r3,r12}
|
||||
ldmia r0!, {r2-r3,r12}
|
||||
stmia r1, {r2-r3,r12}
|
||||
bx lr
|
||||
422
arm9/asm/GX_bgcnt.s
Normal file
422
arm9/asm/GX_bgcnt.s
Normal file
@@ -0,0 +1,422 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start G2S_GetBG3CharPtr
|
||||
G2S_GetBG3CharPtr: ; 0x020C6F60
|
||||
ldr r1, _020C6FA8 ; =0x04001000
|
||||
ldr r0, _020C6FAC ; =0x0400100E
|
||||
ldr r1, [r1, #0x0]
|
||||
ldrh r2, [r0, #0x0]
|
||||
and r0, r1, #0x7
|
||||
cmp r0, #0x3
|
||||
blt _020C6F8C
|
||||
cmp r0, #0x6
|
||||
bge _020C6FA0
|
||||
ands r0, r2, #0x80
|
||||
bne _020C6FA0
|
||||
_020C6F8C:
|
||||
and r0, r2, #0x3c
|
||||
mov r0, r0, lsr #0x2
|
||||
mov r0, r0, lsl #0xe
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
_020C6FA0:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C6FA8: .word 0x04001000
|
||||
_020C6FAC: .word 0x0400100E
|
||||
|
||||
arm_func_start G2_GetBG3CharPtr
|
||||
G2_GetBG3CharPtr: ; 0x020C6FB0
|
||||
mov r0, #0x4000000
|
||||
ldr r1, [r0, #0x0]
|
||||
ldr r0, _020C700C ; =0x0400000E
|
||||
and r1, r1, #0x7
|
||||
cmp r1, #0x3
|
||||
ldrh r2, [r0, #0x0]
|
||||
blt _020C6FDC
|
||||
cmp r1, #0x6
|
||||
bge _020C7004
|
||||
ands r0, r2, #0x80
|
||||
bne _020C7004
|
||||
_020C6FDC:
|
||||
mov r0, #0x4000000
|
||||
ldr r1, [r0, #0x0]
|
||||
and r0, r2, #0x3c
|
||||
and r1, r1, #0x7000000
|
||||
mov r1, r1, lsr #0x18
|
||||
mov r1, r1, lsl #0x10
|
||||
add r1, r1, #0x6000000
|
||||
mov r0, r0, lsr #0x2
|
||||
add r0, r1, r0, lsl #0xe
|
||||
bx lr
|
||||
_020C7004:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C700C: .word 0x0400000E
|
||||
|
||||
arm_func_start G2S_GetBG2CharPtr
|
||||
G2S_GetBG2CharPtr: ; 0x020C7010
|
||||
ldr r1, _020C7050 ; =0x04001000
|
||||
ldr r0, _020C7054 ; =0x0400100C
|
||||
ldr r1, [r1, #0x0]
|
||||
ldrh r2, [r0, #0x0]
|
||||
and r0, r1, #0x7
|
||||
cmp r0, #0x5
|
||||
blt _020C7034
|
||||
ands r0, r2, #0x80
|
||||
bne _020C7048
|
||||
_020C7034:
|
||||
and r0, r2, #0x3c
|
||||
mov r0, r0, lsr #0x2
|
||||
mov r0, r0, lsl #0xe
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
_020C7048:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7050: .word 0x04001000
|
||||
_020C7054: .word 0x0400100C
|
||||
|
||||
arm_func_start G2_GetBG2CharPtr
|
||||
G2_GetBG2CharPtr: ; 0x020C7058
|
||||
mov r0, #0x4000000
|
||||
ldr r1, [r0, #0x0]
|
||||
ldr r0, _020C70AC ; =0x0400000C
|
||||
and r1, r1, #0x7
|
||||
cmp r1, #0x5
|
||||
ldrh r2, [r0, #0x0]
|
||||
blt _020C707C
|
||||
ands r0, r2, #0x80
|
||||
bne _020C70A4
|
||||
_020C707C:
|
||||
mov r0, #0x4000000
|
||||
ldr r1, [r0, #0x0]
|
||||
and r0, r2, #0x3c
|
||||
and r1, r1, #0x7000000
|
||||
mov r1, r1, lsr #0x18
|
||||
mov r1, r1, lsl #0x10
|
||||
add r1, r1, #0x6000000
|
||||
mov r0, r0, lsr #0x2
|
||||
add r0, r1, r0, lsl #0xe
|
||||
bx lr
|
||||
_020C70A4:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C70AC: .word 0x0400000C
|
||||
|
||||
arm_func_start G2S_GetBG1CharPtr
|
||||
G2S_GetBG1CharPtr: ; 0x020C70B0
|
||||
ldr r0, _020C70CC ; =0x0400100A
|
||||
ldrh r0, [r0, #0x0]
|
||||
and r0, r0, #0x3c
|
||||
mov r0, r0, asr #0x2
|
||||
mov r0, r0, lsl #0xe
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C70CC: .word 0x0400100A
|
||||
|
||||
arm_func_start G2_GetBG1CharPtr
|
||||
G2_GetBG1CharPtr: ; 0x020C70D0
|
||||
ldr r1, _020C7100 ; =0x0400000A
|
||||
mov r0, #0x4000000
|
||||
ldrh r1, [r1, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
and r0, r0, #0x7000000
|
||||
mov r0, r0, lsr #0x18
|
||||
and r1, r1, #0x3c
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r1, r1, asr #0x2
|
||||
add r0, r0, #0x6000000
|
||||
add r0, r0, r1, lsl #0xe
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7100: .word 0x0400000A
|
||||
|
||||
arm_func_start G2S_GetBG0CharPtr
|
||||
G2S_GetBG0CharPtr: ; 0x020C7104
|
||||
ldr r0, _020C7120 ; =0x04001008
|
||||
ldrh r0, [r0, #0x0]
|
||||
and r0, r0, #0x3c
|
||||
mov r0, r0, asr #0x2
|
||||
mov r0, r0, lsl #0xe
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7120: .word 0x04001008
|
||||
|
||||
arm_func_start G2_GetBG0CharPtr
|
||||
G2_GetBG0CharPtr: ; 0x020C7124
|
||||
ldr r1, _020C7154 ; =0x04000008
|
||||
mov r0, #0x4000000
|
||||
ldrh r1, [r1, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
and r0, r0, #0x7000000
|
||||
mov r0, r0, lsr #0x18
|
||||
and r1, r1, #0x3c
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r1, r1, asr #0x2
|
||||
add r0, r0, #0x6000000
|
||||
add r0, r0, r1, lsl #0xe
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7154: .word 0x04000008
|
||||
|
||||
arm_func_start G2S_GetBG3ScrPtr
|
||||
G2S_GetBG3ScrPtr: ; 0x020C7158
|
||||
ldr r1, _020C71D0 ; =0x04001000
|
||||
ldr r0, _020C71D4 ; =0x0400100E
|
||||
ldr r1, [r1, #0x0]
|
||||
ldrh r2, [r0, #0x0]
|
||||
and r3, r1, #0x7
|
||||
cmp r3, #0x6
|
||||
and r0, r2, #0x1f00
|
||||
mov r1, r0, lsr #0x8
|
||||
addls pc, pc, r3, lsl #0x2
|
||||
b _020C71C8
|
||||
_020C7180: ; 0x020C7180
|
||||
b _020C719C
|
||||
_020C7184: ; 0x020C7184
|
||||
b _020C719C
|
||||
_020C7188: ; 0x020C7188
|
||||
b _020C719C
|
||||
_020C718C: ; 0x020C718C
|
||||
b _020C71A8
|
||||
_020C7190: ; 0x020C7190
|
||||
b _020C71A8
|
||||
_020C7194: ; 0x020C7194
|
||||
b _020C71A8
|
||||
_020C7198: ; 0x020C7198
|
||||
b _020C71C0
|
||||
_020C719C:
|
||||
mov r0, r1, lsl #0xb
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
_020C71A8:
|
||||
ands r0, r2, #0x80
|
||||
movne r0, r1, lsl #0xe
|
||||
addne r0, r0, #0x6200000
|
||||
moveq r0, r1, lsl #0xb
|
||||
addeq r0, r0, #0x6200000
|
||||
bx lr
|
||||
_020C71C0:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
_020C71C8:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C71D0: .word 0x04001000
|
||||
_020C71D4: .word 0x0400100E
|
||||
|
||||
arm_func_start G2_GetBG3ScrPtr
|
||||
G2_GetBG3ScrPtr: ; 0x020C71D8
|
||||
ldr r0, _020C7260 ; =0x0400000E
|
||||
mov r2, #0x4000000
|
||||
ldr r1, [r2, #0x0]
|
||||
ldrh r3, [r0, #0x0]
|
||||
ldr r0, [r2, #0x0]
|
||||
and r12, r1, #0x7
|
||||
and r0, r0, #0x38000000
|
||||
mov r1, r0, lsr #0x1b
|
||||
and r0, r3, #0x1f00
|
||||
mov r2, r1, lsl #0x10
|
||||
cmp r12, #0x6
|
||||
mov r1, r0, lsr #0x8
|
||||
addls pc, pc, r12, lsl #0x2
|
||||
b _020C7258
|
||||
_020C7210:
|
||||
b _020C722C
|
||||
_020C7214:
|
||||
b _020C722C
|
||||
_020C7218:
|
||||
b _020C722C
|
||||
_020C721C:
|
||||
b _020C7238
|
||||
_020C7220:
|
||||
b _020C7238
|
||||
_020C7224:
|
||||
b _020C7238
|
||||
_020C7228:
|
||||
b _020C7250
|
||||
_020C722C:
|
||||
add r0, r2, #0x6000000
|
||||
add r0, r0, r1, lsl #0xb
|
||||
bx lr
|
||||
_020C7238:
|
||||
ands r0, r3, #0x80
|
||||
movne r0, r1, lsl #0xe
|
||||
addne r0, r0, #0x6000000
|
||||
addeq r0, r2, #0x6000000
|
||||
addeq r0, r0, r1, lsl #0xb
|
||||
bx lr
|
||||
_020C7250:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
_020C7258:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7260: .word 0x0400000E
|
||||
|
||||
arm_func_start G2S_GetBG2ScrPtr
|
||||
G2S_GetBG2ScrPtr: ; 0x020C7264
|
||||
ldr r1, _020C72DC ; =0x04001000
|
||||
ldr r0, _020C72E0 ; =0x0400100C
|
||||
ldr r1, [r1, #0x0]
|
||||
ldrh r2, [r0, #0x0]
|
||||
and r3, r1, #0x7
|
||||
cmp r3, #0x6
|
||||
and r0, r2, #0x1f00
|
||||
mov r1, r0, lsr #0x8
|
||||
addls pc, pc, r3, lsl #0x2
|
||||
b _020C72D4
|
||||
_020C728C: ; 0x020C728C
|
||||
b _020C72A8
|
||||
_020C7290: ; 0x020C7290
|
||||
b _020C72A8
|
||||
_020C7294: ; 0x020C7294
|
||||
b _020C72A8
|
||||
_020C7298: ; 0x020C7298
|
||||
b _020C72A8
|
||||
_020C729C: ; 0x020C729C
|
||||
b _020C72A8
|
||||
_020C72A0: ; 0x020C72A0
|
||||
b _020C72B4
|
||||
_020C72A4: ; 0x020C72A4
|
||||
b _020C72CC
|
||||
_020C72A8:
|
||||
mov r0, r1, lsl #0xb
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
_020C72B4:
|
||||
ands r0, r2, #0x80
|
||||
movne r0, r1, lsl #0xe
|
||||
addne r0, r0, #0x6200000
|
||||
moveq r0, r1, lsl #0xb
|
||||
addeq r0, r0, #0x6200000
|
||||
bx lr
|
||||
_020C72CC:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
_020C72D4:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C72DC: .word 0x04001000
|
||||
_020C72E0: .word 0x0400100C
|
||||
|
||||
arm_func_start G2_GetBG2ScrPtr
|
||||
G2_GetBG2ScrPtr: ; 0x020C72E4
|
||||
ldr r0, _020C736C ; =0x0400000C
|
||||
mov r2, #0x4000000
|
||||
ldr r1, [r2, #0x0]
|
||||
ldrh r3, [r0, #0x0]
|
||||
ldr r0, [r2, #0x0]
|
||||
and r12, r1, #0x7
|
||||
and r0, r0, #0x38000000
|
||||
mov r1, r0, lsr #0x1b
|
||||
and r0, r3, #0x1f00
|
||||
mov r2, r1, lsl #0x10
|
||||
cmp r12, #0x6
|
||||
mov r1, r0, lsr #0x8
|
||||
addls pc, pc, r12, lsl #0x2
|
||||
b _020C7364
|
||||
_020C731C:
|
||||
b _020C7338
|
||||
_020C7320:
|
||||
b _020C7338
|
||||
_020C7324:
|
||||
b _020C7338
|
||||
_020C7328:
|
||||
b _020C7338
|
||||
_020C732C:
|
||||
b _020C7338
|
||||
_020C7330:
|
||||
b _020C7344
|
||||
_020C7334:
|
||||
b _020C735C
|
||||
_020C7338:
|
||||
add r0, r2, #0x6000000
|
||||
add r0, r0, r1, lsl #0xb
|
||||
bx lr
|
||||
_020C7344:
|
||||
ands r0, r3, #0x80
|
||||
movne r0, r1, lsl #0xe
|
||||
addne r0, r0, #0x6000000
|
||||
addeq r0, r2, #0x6000000
|
||||
addeq r0, r0, r1, lsl #0xb
|
||||
bx lr
|
||||
_020C735C:
|
||||
mov r0, #0x6000000
|
||||
bx lr
|
||||
_020C7364:
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C736C: .word 0x0400000C
|
||||
|
||||
arm_func_start G2S_GetBG1ScrPtr
|
||||
G2S_GetBG1ScrPtr: ; 0x020C7370
|
||||
ldr r0, _020C738C ; =0x0400100A
|
||||
ldrh r0, [r0, #0x0]
|
||||
and r0, r0, #0x1f00
|
||||
mov r0, r0, asr #0x8
|
||||
mov r0, r0, lsl #0xb
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C738C: .word 0x0400100A
|
||||
|
||||
arm_func_start G2_GetBG1ScrPtr
|
||||
G2_GetBG1ScrPtr: ; 0x020C7390
|
||||
ldr r1, _020C73C0 ; =0x0400000A
|
||||
mov r0, #0x4000000
|
||||
ldrh r1, [r1, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
and r0, r0, #0x38000000
|
||||
mov r0, r0, lsr #0x1b
|
||||
and r1, r1, #0x1f00
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r1, r1, asr #0x8
|
||||
add r0, r0, #0x6000000
|
||||
add r0, r0, r1, lsl #0xb
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C73C0: .word 0x0400000A
|
||||
|
||||
arm_func_start G2S_GetBG0ScrPtr
|
||||
G2S_GetBG0ScrPtr: ; 0x020C73C4
|
||||
ldr r0, _020C73E0 ; =0x04001008
|
||||
ldrh r0, [r0, #0x0]
|
||||
and r0, r0, #0x1f00
|
||||
mov r0, r0, asr #0x8
|
||||
mov r0, r0, lsl #0xb
|
||||
add r0, r0, #0x6200000
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C73E0: .word 0x04001008
|
||||
|
||||
arm_func_start G2_GetBG0ScrPtr
|
||||
G2_GetBG0ScrPtr: ; 0x020C73E4
|
||||
ldr r1, _020C7414 ; =0x04000008
|
||||
mov r0, #0x4000000
|
||||
ldrh r1, [r1, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
and r0, r0, #0x38000000
|
||||
mov r0, r0, lsr #0x1b
|
||||
and r1, r1, #0x1f00
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r1, r1, asr #0x8
|
||||
add r0, r0, #0x6000000
|
||||
add r0, r0, r1, lsl #0xb
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7414: .word 0x04000008
|
||||
121
arm9/asm/GX_g2.s
Normal file
121
arm9/asm/GX_g2.s
Normal file
@@ -0,0 +1,121 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start G2x_ChangeBlendBrightness_
|
||||
G2x_ChangeBlendBrightness_: ; 0x020C7418
|
||||
cmp r1, #0x0
|
||||
ldrh r3, [r0, #0x0]
|
||||
bge _020C7444
|
||||
and r2, r3, #0xc0
|
||||
cmp r2, #0x80
|
||||
biceq r2, r3, #0xc0
|
||||
orreq r2, r2, #0xc0
|
||||
streqh r2, [r0, #0x0]
|
||||
rsb r1, r1, #0x0
|
||||
strh r1, [r0, #0x4]
|
||||
bx lr
|
||||
_020C7444:
|
||||
and r2, r3, #0xc0
|
||||
cmp r2, #0xc0
|
||||
biceq r2, r3, #0xc0
|
||||
orreq r2, r2, #0x80
|
||||
streqh r2, [r0, #0x0]
|
||||
strh r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G2x_SetBlendBrightnessExt_
|
||||
G2x_SetBlendBrightnessExt_: ; 0x020C7460
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr lr, [sp, #0x8]
|
||||
ldr r12, [sp, #0xc]
|
||||
orr r3, r3, lr, lsl #0x8
|
||||
cmp r12, #0x0
|
||||
orrge r1, r1, #0x80
|
||||
strh r3, [r0, #0x2]
|
||||
orrge r1, r1, r2, lsl #0x8
|
||||
strgeh r1, [r0, #0x0]
|
||||
strgeh r12, [r0, #0x4]
|
||||
addge sp, sp, #0x4
|
||||
ldmgeia sp!, {lr}
|
||||
bxge lr
|
||||
orr r1, r1, #0xc0
|
||||
orr r1, r1, r2, lsl #0x8
|
||||
strh r1, [r0, #0x0]
|
||||
rsb r1, r12, #0x0
|
||||
strh r1, [r0, #0x4]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start G2x_SetBlendBrightness_
|
||||
G2x_SetBlendBrightness_: ; 0x020C74B8
|
||||
cmp r2, #0x0
|
||||
orrlt r1, r1, #0xc0
|
||||
strlth r1, [r0, #0x0]
|
||||
rsblt r1, r2, #0x0
|
||||
strlth r1, [r0, #0x4]
|
||||
orrge r1, r1, #0x80
|
||||
strgeh r1, [r0, #0x0]
|
||||
strgeh r2, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G2x_SetBlendAlpha_
|
||||
G2x_SetBlendAlpha_: ; 0x020C74DC
|
||||
ldr r12, [sp, #0x0]
|
||||
orr r1, r1, #0x40
|
||||
orr r2, r1, r2, lsl #0x8
|
||||
orr r1, r3, r12, lsl #0x8
|
||||
orr r1, r2, r1, lsl #0x10
|
||||
str r1, [r0, #0x0]
|
||||
bx lr
|
||||
|
||||
arm_func_start G2x_SetBGyAffine_
|
||||
G2x_SetBGyAffine_: ; 0x020C74F8
|
||||
stmdb sp!, {r4-r6,lr}
|
||||
ldr r5, [r1, #0x0]
|
||||
ldr r4, [r1, #0x4]
|
||||
mov r12, r5, lsl #0xc
|
||||
mov lr, r4, lsl #0xc
|
||||
mov r5, r12, asr #0x10
|
||||
mov r4, lr, asr #0x10
|
||||
mov r12, r5, lsl #0x10
|
||||
mov lr, r4, lsl #0x10
|
||||
mov r5, r12, lsr #0x10
|
||||
mov r4, lr, lsr #0x10
|
||||
orr r4, r5, r4, lsl #0x10
|
||||
str r4, [r0, #0x0]
|
||||
ldr r5, [r1, #0x8]
|
||||
ldr r4, [r1, #0xc]
|
||||
mov r12, r5, lsl #0xc
|
||||
mov lr, r4, lsl #0xc
|
||||
mov r5, r12, asr #0x10
|
||||
mov r4, lr, asr #0x10
|
||||
mov r12, r5, lsl #0x10
|
||||
mov lr, r4, lsl #0x10
|
||||
ldr r4, [sp, #0x14]
|
||||
ldr r6, [sp, #0x10]
|
||||
mov r12, r12, lsr #0x10
|
||||
mov r5, lr, lsr #0x10
|
||||
orr r5, r12, r5, lsl #0x10
|
||||
str r5, [r0, #0x4]
|
||||
ldr r12, [r1, #0x4]
|
||||
sub r5, r4, r3
|
||||
ldr r4, [r1, #0xc]
|
||||
mul lr, r12, r5
|
||||
mul r5, r4, r5
|
||||
ldr r12, [r1, #0x0]
|
||||
sub r6, r6, r2
|
||||
ldr r4, [r1, #0x8]
|
||||
mla r1, r12, r6, lr
|
||||
mla r5, r4, r6, r5
|
||||
add r1, r1, r2, lsl #0xc
|
||||
add r2, r5, r3, lsl #0xc
|
||||
mov r1, r1, asr #0x4
|
||||
str r1, [r0, #0x8]
|
||||
mov r1, r2, asr #0x4
|
||||
str r1, [r0, #0xc]
|
||||
ldmia sp!, {r4-r6,lr}
|
||||
bx lr
|
||||
72
arm9/asm/GX_g3.s
Normal file
72
arm9/asm/GX_g3.s
Normal file
@@ -0,0 +1,72 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start G3_EndMakeDL
|
||||
G3_EndMakeDL: ; 0x020C9B18
|
||||
ldr r3, [r0, #0x0]
|
||||
ldr r2, [r0, #0x8]
|
||||
cmp r2, r3
|
||||
moveq r0, #0x0
|
||||
bxeq lr
|
||||
and r1, r3, #0x3
|
||||
cmp r1, #0x3
|
||||
addls pc, pc, r1, lsl #0x2
|
||||
b _020C9B8C
|
||||
_020C9B3C:
|
||||
b _020C9B4C
|
||||
_020C9B40:
|
||||
b _020C9B54
|
||||
_020C9B44:
|
||||
b _020C9B64
|
||||
_020C9B48:
|
||||
b _020C9B78
|
||||
_020C9B4C:
|
||||
sub r0, r3, r2
|
||||
bx lr
|
||||
_020C9B54:
|
||||
add r1, r3, #0x1
|
||||
str r1, [r0, #0x0]
|
||||
mov r1, #0x0
|
||||
strb r1, [r3, #0x0]
|
||||
_020C9B64:
|
||||
ldr r3, [r0, #0x0]
|
||||
mov r1, #0x0
|
||||
add r2, r3, #0x1
|
||||
str r2, [r0, #0x0]
|
||||
strb r1, [r3, #0x0]
|
||||
_020C9B78:
|
||||
ldr r3, [r0, #0x0]
|
||||
mov r1, #0x0
|
||||
add r2, r3, #0x1
|
||||
str r2, [r0, #0x0]
|
||||
strb r1, [r3, #0x0]
|
||||
_020C9B8C:
|
||||
ldr r1, [r0, #0x10]
|
||||
cmp r1, #0x0
|
||||
beq _020C9BB0
|
||||
ldr r3, [r0, #0x4]
|
||||
mov r1, #0x0
|
||||
add r2, r3, #0x4
|
||||
str r2, [r0, #0x4]
|
||||
str r1, [r3, #0x0]
|
||||
str r1, [r0, #0x10]
|
||||
_020C9BB0:
|
||||
ldr r1, [r0, #0x4]
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
ldr r0, [r0, #0x8]
|
||||
sub r0, r1, r0
|
||||
bx lr
|
||||
|
||||
arm_func_start G3_BeginMakeDL
|
||||
G3_BeginMakeDL: ; 0x020C9BC8
|
||||
str r2, [r0, #0xc]
|
||||
str r1, [r0, #0x8]
|
||||
str r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x10]
|
||||
bx lr
|
||||
503
arm9/asm/GX_g3_util.s
Normal file
503
arm9/asm/GX_g3_util.s
Normal file
@@ -0,0 +1,503 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start G3_RotZ
|
||||
G3_RotZ: ; 0x020C7FF0
|
||||
ldr r3, _020C8028 ; =0x04000468
|
||||
mov r2, #0x0
|
||||
str r1, [r3, #0x0]
|
||||
str r0, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
rsb r0, r0, #0x0
|
||||
str r0, [r3, #0x0]
|
||||
str r1, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
mov r0, #0x1000
|
||||
str r0, [r3, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C8028: .word 0x04000468
|
||||
|
||||
arm_func_start G3_RotY
|
||||
G3_RotY: ; 0x020C802C
|
||||
ldr ip, _020C8064 ; =0x04000468
|
||||
mov r3, #0x0
|
||||
str r1, [r12, #0x0]
|
||||
str r3, [r12, #0x0]
|
||||
rsb r2, r0, #0x0
|
||||
str r2, [r12, #0x0]
|
||||
str r3, [r12, #0x0]
|
||||
mov r2, #0x1000
|
||||
str r2, [r12, #0x0]
|
||||
str r3, [r12, #0x0]
|
||||
str r0, [r12, #0x0]
|
||||
str r3, [r12, #0x0]
|
||||
str r1, [r12, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C8064: .word 0x04000468
|
||||
|
||||
arm_func_start G3_RotX
|
||||
G3_RotX: ; 0x020C8068
|
||||
ldr r3, _020C80A0 ; =0x04000468
|
||||
mov r2, #0x1000
|
||||
str r2, [r3, #0x0]
|
||||
mov r2, #0x0
|
||||
str r2, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
str r1, [r3, #0x0]
|
||||
str r0, [r3, #0x0]
|
||||
str r2, [r3, #0x0]
|
||||
rsb r0, r0, #0x0
|
||||
str r0, [r3, #0x0]
|
||||
str r1, [r3, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C80A0: .word 0x04000468
|
||||
|
||||
arm_func_start G3i_LookAt_
|
||||
G3i_LookAt_: ; 0x020C80A4
|
||||
stmdb sp!, {r4-r9,lr}
|
||||
sub sp, sp, #0x24
|
||||
mov r9, r0
|
||||
ldr r6, [r9, #0x0]
|
||||
ldr r5, [r2, #0x0]
|
||||
add r0, sp, #0x0
|
||||
sub r5, r6, r5
|
||||
str r5, [sp, #0x0]
|
||||
ldr r7, [r9, #0x4]
|
||||
ldr r6, [r2, #0x4]
|
||||
mov r5, r1
|
||||
sub r1, r7, r6
|
||||
str r1, [sp, #0x4]
|
||||
ldr r6, [r9, #0x8]
|
||||
ldr r2, [r2, #0x8]
|
||||
mov r1, r0
|
||||
sub r2, r6, r2
|
||||
mov r8, r3
|
||||
str r2, [sp, #0x8]
|
||||
ldr r7, [sp, #0x40]
|
||||
bl VEC_Normalize
|
||||
add r1, sp, #0x0
|
||||
add r2, sp, #0xc
|
||||
mov r0, r5
|
||||
bl VEC_CrossProduct
|
||||
add r0, sp, #0xc
|
||||
mov r1, r0
|
||||
bl VEC_Normalize
|
||||
_020C8114: ; 0x020C8114
|
||||
add r0, sp, #0x0
|
||||
add r1, sp, #0xc
|
||||
add r2, sp, #0x18
|
||||
bl VEC_CrossProduct
|
||||
_020C8124: ; 0x020C8124
|
||||
cmp r8, #0x0
|
||||
beq _020C8184
|
||||
ldr r0, _020C8234 ; =0x04000440
|
||||
mov r1, #0x2
|
||||
str r1, [r0, #0x0]
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r4, _020C8238 ; =0x0400045C
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x18]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x0]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x10]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x1c]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x4]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x14]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x20]
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [sp, #0x8]
|
||||
str r0, [r4, #0x0]
|
||||
_020C8184:
|
||||
add r1, sp, #0xc
|
||||
mov r0, r9
|
||||
bl VEC_DotProduct
|
||||
rsb r6, r0, #0x0
|
||||
add r1, sp, #0x18
|
||||
mov r0, r9
|
||||
bl VEC_DotProduct
|
||||
rsb r5, r0, #0x0
|
||||
add r1, sp, #0x0
|
||||
mov r0, r9
|
||||
bl VEC_DotProduct
|
||||
_020C81B0: ; 0x020C81B0
|
||||
cmp r8, #0x0
|
||||
strne r6, [r4, #0x0]
|
||||
rsb r0, r0, #0x0
|
||||
strne r5, [r4, #0x0]
|
||||
strne r0, [r4, #0x0]
|
||||
cmp r7, #0x0
|
||||
addeq sp, sp, #0x24
|
||||
ldmeqia sp!, {r4-r9,lr}
|
||||
bxeq lr
|
||||
ldr r1, [sp, #0xc]
|
||||
str r1, [r7, #0x0]
|
||||
ldr r1, [sp, #0x18]
|
||||
str r1, [r7, #0x4]
|
||||
ldr r1, [sp, #0x0]
|
||||
str r1, [r7, #0x8]
|
||||
ldr r1, [sp, #0x10]
|
||||
str r1, [r7, #0xc]
|
||||
ldr r1, [sp, #0x1c]
|
||||
str r1, [r7, #0x10]
|
||||
ldr r1, [sp, #0x4]
|
||||
str r1, [r7, #0x14]
|
||||
ldr r1, [sp, #0x14]
|
||||
str r1, [r7, #0x18]
|
||||
ldr r1, [sp, #0x20]
|
||||
str r1, [r7, #0x1c]
|
||||
ldr r1, [sp, #0x8]
|
||||
str r1, [r7, #0x20]
|
||||
str r6, [r7, #0x24]
|
||||
str r5, [r7, #0x28]
|
||||
str r0, [r7, #0x2c]
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4-r9,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C8234: .word 0x04000440
|
||||
_020C8238: .word 0x0400045C
|
||||
|
||||
arm_func_start G3i_OrthoW_
|
||||
G3i_OrthoW_: ; 0x020C823C
|
||||
stmdb sp!, {r4-r11,lr}
|
||||
sub sp, sp, #0x34
|
||||
str r2, [sp, #0x8]
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [sp, #0x8]
|
||||
mov r2, r3
|
||||
ldr r7, [sp, #0x64]
|
||||
sub r0, r2, r0
|
||||
str r3, [sp, #0xc]
|
||||
str r1, [sp, #0x4]
|
||||
ldr r8, [sp, #0x60]
|
||||
ldr r6, [sp, #0x68]
|
||||
bl FX_InvAsync
|
||||
_020C8270: ; 0x020C8270
|
||||
cmp r7, #0x0
|
||||
ldrne r0, _020C8528 ; =0x04000440
|
||||
movne r1, #0x0
|
||||
ldrne r4, _020C852C ; =0x04000458
|
||||
strne r1, [r0, #0x0]
|
||||
cmp r6, #0x0
|
||||
beq _020C82B8
|
||||
mov r0, #0x0
|
||||
str r0, [r6, #0x4]
|
||||
str r0, [r6, #0x8]
|
||||
str r0, [r6, #0xc]
|
||||
str r0, [r6, #0x10]
|
||||
str r0, [r6, #0x18]
|
||||
str r0, [r6, #0x1c]
|
||||
str r0, [r6, #0x20]
|
||||
str r0, [r6, #0x24]
|
||||
str r0, [r6, #0x2c]
|
||||
str r8, [r6, #0x3c]
|
||||
_020C82B8:
|
||||
bl FX_GetDivResultFx64c
|
||||
mov r5, r0
|
||||
str r1, [sp, #0x14]
|
||||
ldr sb, _020C8530 ; =0x04000290
|
||||
mov r3, #0x0
|
||||
ldr r1, [sp, #0x0]
|
||||
ldr r0, [sp, #0x4]
|
||||
str r3, [r9, #0x0]
|
||||
mov r2, #0x1000
|
||||
sub r1, r1, r0
|
||||
ldr r0, _020C8534 ; =0x04000298
|
||||
str r2, [r9, #0x4]
|
||||
str r1, [r0, #0x0]
|
||||
cmp r8, #0x1000
|
||||
str r3, [r0, #0x4]
|
||||
beq _020C8318
|
||||
mov r9, r8, asr #0x1f
|
||||
umull r0, r1, r5, r8
|
||||
mla r1, r5, r9, r1
|
||||
ldr r5, [sp, #0x14]
|
||||
mla r1, r5, r8, r1
|
||||
bl _ll_sdiv
|
||||
mov r5, r0
|
||||
str r1, [sp, #0x14]
|
||||
_020C8318:
|
||||
ldr r0, [sp, #0x14]
|
||||
mov r2, r5, lsl #0xd
|
||||
mov r1, r0, lsl #0xd
|
||||
mov r0, #0x80000000
|
||||
adds r0, r2, r0
|
||||
orr r1, r1, r5, lsr #0x13
|
||||
adc r1, r1, #0x0
|
||||
cmp r7, #0x0
|
||||
mov r0, #0x0
|
||||
strne r1, [r4, #0x0]
|
||||
strne r0, [r4, #0x0]
|
||||
strne r0, [r4, #0x0]
|
||||
strne r0, [r4, #0x0]
|
||||
strne r0, [r4, #0x0]
|
||||
cmp r6, #0x0
|
||||
strne r1, [r6, #0x0]
|
||||
bl FX_GetDivResultFx64c
|
||||
mov r11, r0
|
||||
str r1, [sp, #0x2c]
|
||||
ldr r0, _020C8530 ; =0x04000290
|
||||
mov r3, #0x0
|
||||
mov r2, #0x1000
|
||||
str r3, [r0, #0x0]
|
||||
str r2, [r0, #0x4]
|
||||
ldr r9, [sp, #0x58]
|
||||
ldr r1, [sp, #0x5c]
|
||||
ldr r0, _020C8534 ; =0x04000298
|
||||
sub r1, r9, r1
|
||||
str r1, [r0, #0x0]
|
||||
cmp r8, #0x1000
|
||||
str r3, [r0, #0x4]
|
||||
beq _020C83B8
|
||||
mov r9, r8, asr #0x1f
|
||||
umull r0, r1, r11, r8
|
||||
mla r1, r11, r9, r1
|
||||
ldr r9, [sp, #0x2c]
|
||||
mla r1, r9, r8, r1
|
||||
bl _ll_sdiv
|
||||
mov r11, r0
|
||||
str r1, [sp, #0x2c]
|
||||
_020C83B8:
|
||||
ldr r0, [sp, #0x2c]
|
||||
mov r3, r11, lsl #0xd
|
||||
mov r2, r0, lsl #0xd
|
||||
mov r0, #0x80000000
|
||||
orr r2, r2, r11, lsr #0x13
|
||||
adds r0, r3, r0
|
||||
adc r0, r2, #0x0
|
||||
cmp r7, #0x0
|
||||
mov r1, #0x0
|
||||
strne r0, [r4, #0x0]
|
||||
strne r1, [r4, #0x0]
|
||||
strne r1, [r4, #0x0]
|
||||
strne r1, [r4, #0x0]
|
||||
strne r1, [r4, #0x0]
|
||||
cmp r6, #0x0
|
||||
strne r0, [r6, #0x14]
|
||||
bl FX_GetDivResultFx64c
|
||||
cmp r8, #0x1000
|
||||
beq _020C8428
|
||||
mov r9, r8, asr #0x1f
|
||||
mov r2, #0x1000
|
||||
mov r3, #0x0
|
||||
umull r12, r10, r0, r8
|
||||
mla r10, r0, r9, r10
|
||||
mov r0, r12
|
||||
mla r10, r1, r8, r10
|
||||
mov r1, r10
|
||||
bl _ll_sdiv
|
||||
_020C8428:
|
||||
mov r9, r1, lsl #0xd
|
||||
mov r10, r0, lsl #0xd
|
||||
mov r2, #0x80000000
|
||||
orr r9, r9, r0, lsr #0x13
|
||||
adds r2, r10, r2
|
||||
adc r2, r9, #0x0
|
||||
cmp r7, #0x0
|
||||
mov r3, #0x0
|
||||
strne r2, [r4, #0x0]
|
||||
strne r3, [r4, #0x0]
|
||||
cmp r6, #0x0
|
||||
strne r2, [r6, #0x28]
|
||||
ldr r3, [sp, #0xc]
|
||||
ldr r2, [sp, #0x8]
|
||||
add r9, r3, r2
|
||||
rsb lr, r9, #0x0
|
||||
ldr r3, [sp, #0x0]
|
||||
ldr r2, [sp, #0x4]
|
||||
ldr r9, [sp, #0x5c]
|
||||
add r2, r3, r2
|
||||
ldr r3, [sp, #0x58]
|
||||
rsb r12, r2, #0x0
|
||||
add r3, r9, r3
|
||||
mov r9, r12, asr #0x1f
|
||||
str r9, [sp, #0x20]
|
||||
mov r9, r3, asr #0x1f
|
||||
str r9, [sp, #0x24]
|
||||
umull r10, r9, r5, lr
|
||||
mov r2, lr, asr #0x1f
|
||||
str r2, [sp, #0x1c]
|
||||
str r10, [sp, #0x18]
|
||||
ldr r10, [sp, #0x1c]
|
||||
mov r2, #0x80000000
|
||||
mla r9, r5, r10, r9
|
||||
ldr r5, [sp, #0x14]
|
||||
mla r9, r5, lr, r9
|
||||
ldr r5, [sp, #0x18]
|
||||
adds r5, r5, r2
|
||||
adc r10, r9, #0x0
|
||||
ldr r5, [sp, #0x20]
|
||||
umull lr, r9, r11, r12
|
||||
mla r9, r11, r5, r9
|
||||
ldr r5, [sp, #0x2c]
|
||||
mla r9, r5, r12, r9
|
||||
adds r5, lr, r2
|
||||
adc r5, r9, #0x0
|
||||
umull r11, r9, r0, r3
|
||||
adds r2, r11, r2
|
||||
ldr r2, [sp, #0x24]
|
||||
mla r9, r0, r2, r9
|
||||
mla r9, r1, r3, r9
|
||||
adc r0, r9, #0x0
|
||||
cmp r7, #0x0
|
||||
strne r10, [r4, #0x0]
|
||||
strne r5, [r4, #0x0]
|
||||
strne r0, [r4, #0x0]
|
||||
strne r8, [r4, #0x0]
|
||||
cmp r6, #0x0
|
||||
strne r10, [r6, #0x30]
|
||||
strne r5, [r6, #0x34]
|
||||
strne r0, [r6, #0x38]
|
||||
add sp, sp, #0x34
|
||||
ldmia sp!, {r4-r11,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C8528: .word 0x04000440
|
||||
_020C852C: .word 0x04000458
|
||||
_020C8530: .word 0x04000290
|
||||
_020C8534: .word 0x04000298
|
||||
|
||||
arm_func_start G3i_PerspectiveW_
|
||||
G3i_PerspectiveW_: ; 0x020C8538
|
||||
stmdb sp!, {r4-r10,lr}
|
||||
mov r5, r0
|
||||
mov r0, r1
|
||||
mov r1, r5
|
||||
ldr r6, [sp, #0x24]
|
||||
mov r9, r2
|
||||
mov r8, r3
|
||||
ldr r5, [sp, #0x2c]
|
||||
bl FX_Div
|
||||
mov r7, r0
|
||||
cmp r6, #0x1000
|
||||
mulne r1, r7, r6
|
||||
movne r0, r1, asr #0xb
|
||||
addne r0, r1, r0, lsr #0x14
|
||||
movne r7, r0, asr #0xc
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r2, _020C8718 ; =0x04000290
|
||||
cmp r0, #0x0
|
||||
mov r3, #0x0
|
||||
str r3, [r2, #0x0]
|
||||
ldr r1, _020C871C ; =0x04000298
|
||||
str r7, [r2, #0x4]
|
||||
str r9, [r1, #0x0]
|
||||
ldrne r0, _020C8720 ; =0x04000440
|
||||
str r3, [r1, #0x4]
|
||||
ldrne r4, _020C8724 ; =0x04000458
|
||||
strne r3, [r0, #0x0]
|
||||
cmp r5, #0x0
|
||||
beq _020C85E4
|
||||
mov r1, #0x0
|
||||
str r1, [r5, #0x4]
|
||||
str r1, [r5, #0x8]
|
||||
str r1, [r5, #0xc]
|
||||
str r1, [r5, #0x10]
|
||||
str r1, [r5, #0x18]
|
||||
str r1, [r5, #0x1c]
|
||||
str r1, [r5, #0x20]
|
||||
str r1, [r5, #0x24]
|
||||
rsb r0, r6, #0x0
|
||||
str r0, [r5, #0x2c]
|
||||
str r1, [r5, #0x30]
|
||||
str r1, [r5, #0x34]
|
||||
str r1, [r5, #0x3c]
|
||||
_020C85E4:
|
||||
bl FX_GetDivResult
|
||||
ldr r3, [sp, #0x20]
|
||||
ldr r1, [sp, #0x28]
|
||||
ldr sb, _020C8718 ; =0x04000290
|
||||
mov r12, #0x0
|
||||
str r12, [r9, #0x0]
|
||||
mov r10, #0x1000
|
||||
ldr r2, _020C871C ; =0x04000298
|
||||
str r10, [r9, #0x4]
|
||||
sub r3, r8, r3
|
||||
str r3, [r2, #0x0]
|
||||
str r12, [r2, #0x4]
|
||||
cmp r1, #0x0
|
||||
beq _020C8644
|
||||
str r0, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r7, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
str r12, [r4, #0x0]
|
||||
_020C8644:
|
||||
cmp r5, #0x0
|
||||
strne r0, [r5, #0x0]
|
||||
strne r7, [r5, #0x14]
|
||||
bl FX_GetDivResultFx64c
|
||||
cmp r6, #0x1000
|
||||
beq _020C8680
|
||||
mov r2, r6, asr #0x1f
|
||||
umull r7, r3, r0, r6
|
||||
mla r3, r0, r2, r3
|
||||
mla r3, r1, r6, r3
|
||||
mov r0, r7
|
||||
mov r1, r3
|
||||
mov r2, #0x1000
|
||||
mov r3, #0x0
|
||||
bl _ll_sdiv
|
||||
_020C8680:
|
||||
ldr r3, [sp, #0x20]
|
||||
mov r10, r8, lsl #0x1
|
||||
add r12, r3, r8
|
||||
mov r2, r12, asr #0x1f
|
||||
umull r7, lr, r0, r12
|
||||
mla lr, r0, r2, lr
|
||||
mov r9, #0x80000000
|
||||
smull r3, r2, r10, r3
|
||||
mla lr, r1, r12, lr
|
||||
adds r7, r7, r9
|
||||
mov r8, #0x800
|
||||
adc r7, lr, #0x0
|
||||
adds r3, r3, r8
|
||||
adc r2, r2, #0x0
|
||||
mov r3, r3, lsr #0xc
|
||||
orr r3, r3, r2, lsl #0x14
|
||||
umull r10, r8, r0, r3
|
||||
mov r2, r3, asr #0x1f
|
||||
adds r9, r10, r9
|
||||
mla r8, r0, r2, r8
|
||||
mla r8, r1, r3, r8
|
||||
ldr r0, [sp, #0x28]
|
||||
adc r2, r8, #0x0
|
||||
cmp r0, #0x0
|
||||
mov r0, #0x0
|
||||
beq _020C8704
|
||||
str r7, [r4, #0x0]
|
||||
rsb r1, r6, #0x0
|
||||
str r1, [r4, #0x0]
|
||||
str r0, [r4, #0x0]
|
||||
str r0, [r4, #0x0]
|
||||
str r2, [r4, #0x0]
|
||||
str r0, [r4, #0x0]
|
||||
_020C8704:
|
||||
cmp r5, #0x0
|
||||
strne r7, [r5, #0x28]
|
||||
strne r2, [r5, #0x38]
|
||||
ldmia sp!, {r4-r10,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C8718: .word 0x04000290
|
||||
_020C871C: .word 0x04000298
|
||||
_020C8720: .word 0x04000440
|
||||
_020C8724: .word 0x04000458
|
||||
269
arm9/asm/GX_g3b.s
Normal file
269
arm9/asm/GX_g3b.s
Normal file
@@ -0,0 +1,269 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start G3B_End
|
||||
G3B_End: ; 0x020C75AC
|
||||
ldr r1, [r0, #0x0]
|
||||
mov r2, #0x41
|
||||
str r2, [r1, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_Begin
|
||||
G3B_Begin: ; 0x020C75D0
|
||||
ldr r2, [r0, #0x0]
|
||||
mov r3, #0x40
|
||||
str r3, [r2, #0x0]
|
||||
ldr r2, [r0, #0x4]
|
||||
str r1, [r2, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_LightColor
|
||||
G3B_LightColor: ; 0x020C7600
|
||||
ldr r3, [r0, #0x0]
|
||||
mov r12, #0x33
|
||||
str r12, [r3, #0x0]
|
||||
ldr r3, [r0, #0x4]
|
||||
orr r1, r2, r1, lsl #0x1e
|
||||
str r1, [r3, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_LightVector
|
||||
G3B_LightVector: ; 0x020C7634
|
||||
stmdb sp!, {r4-r5,lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr ip, _020C7694 ; =0x000003FF
|
||||
ldrsh r4, [sp, #0x10]
|
||||
ldr lr, [r0, #0x0]
|
||||
mov r5, #0x32
|
||||
str r5, [lr, #0x0]
|
||||
and lr, r12, r2, asr #0x3
|
||||
and r2, r12, r3, asr #0x3
|
||||
and r3, r12, r4, asr #0x3
|
||||
orr r2, lr, r2, lsl #0xa
|
||||
orr r3, r2, r3, lsl #0x14
|
||||
ldr r2, [r0, #0x4]
|
||||
orr r1, r3, r1, lsl #0x1e
|
||||
str r1, [r2, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7694: .word 0x000003FF
|
||||
|
||||
arm_func_start G3B_MaterialColorSpecEmi
|
||||
G3B_MaterialColorSpecEmi: ; 0x020C7698
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r12, [r0, #0x0]
|
||||
mov lr, #0x31
|
||||
cmp r3, #0x0
|
||||
movne r3, #0x1
|
||||
str lr, [r12, #0x0]
|
||||
orr r2, r1, r2, lsl #0x10
|
||||
moveq r3, #0x0
|
||||
ldr r1, [r0, #0x4]
|
||||
orr r2, r2, r3, lsl #0xf
|
||||
str r2, [r1, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_MaterialColorDiffAmb
|
||||
G3B_MaterialColorDiffAmb: ; 0x020C76EC
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r12, [r0, #0x0]
|
||||
mov lr, #0x30
|
||||
cmp r3, #0x0
|
||||
movne r3, #0x1
|
||||
str lr, [r12, #0x0]
|
||||
orr r2, r1, r2, lsl #0x10
|
||||
moveq r3, #0x0
|
||||
ldr r1, [r0, #0x4]
|
||||
orr r2, r2, r3, lsl #0xf
|
||||
str r2, [r1, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_PolygonAttr
|
||||
G3B_PolygonAttr: ; 0x020C7740
|
||||
orr r1, r1, r2, lsl #0x4
|
||||
ldr r2, [r0, #0x0]
|
||||
mov r12, #0x29
|
||||
str r12, [r2, #0x0]
|
||||
ldr r2, [sp, #0x8]
|
||||
orr r1, r1, r3, lsl #0x6
|
||||
ldr r3, [sp, #0x0]
|
||||
orr r1, r2, r1
|
||||
ldr r12, [sp, #0x4]
|
||||
orr r2, r1, r3, lsl #0x18
|
||||
ldr r1, [r0, #0x4]
|
||||
orr r2, r2, r12, lsl #0x10
|
||||
str r2, [r1, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_Vtx
|
||||
G3B_Vtx: ; 0x020C7790
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r12, [r0, #0x0]
|
||||
mov lr, #0x23
|
||||
str lr, [r12, #0x0]
|
||||
mov r1, r1, lsl #0x10
|
||||
mov r2, r2, lsl #0x10
|
||||
mov lr, r1, lsr #0x10
|
||||
mov r12, r2, lsr #0x10
|
||||
mov r1, r3, lsl #0x10
|
||||
ldr r2, [r0, #0x4]
|
||||
orr r3, lr, r12, lsl #0x10
|
||||
str r3, [r2, #0x0]
|
||||
ldr r2, [r0, #0x4]
|
||||
mov r1, r1, lsr #0x10
|
||||
str r1, [r2, #0x4]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x8
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_Normal
|
||||
G3B_Normal: ; 0x020C77F4
|
||||
stmdb sp!, {r4,lr}
|
||||
ldr ip, _020C7844 ; =0x000003FF
|
||||
ldr lr, [r0, #0x0]
|
||||
mov r4, #0x21
|
||||
str r4, [lr, #0x0]
|
||||
and lr, r12, r1, asr #0x3
|
||||
and r1, r12, r2, asr #0x3
|
||||
and r3, r12, r3, asr #0x3
|
||||
orr r2, lr, r1, lsl #0xa
|
||||
ldr r1, [r0, #0x4]
|
||||
orr r2, r2, r3, lsl #0x14
|
||||
str r2, [r1, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7844: .word 0x000003FF
|
||||
|
||||
arm_func_start G3B_Color
|
||||
G3B_Color: ; 0x020C7848
|
||||
ldr r2, [r0, #0x0]
|
||||
mov r3, #0x20
|
||||
str r3, [r2, #0x0]
|
||||
ldr r2, [r0, #0x4]
|
||||
str r1, [r2, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_LoadMtx44
|
||||
G3B_LoadMtx44: ; 0x020C7878
|
||||
stmdb sp!, {r4,lr}
|
||||
mov r4, r0
|
||||
bl G3BS_LoadMtx44
|
||||
ldr r0, [r4, #0x4]
|
||||
add r0, r0, #0x40
|
||||
str r0, [r4, #0x0]
|
||||
ldr r0, [r4, #0x0]
|
||||
add r0, r0, #0x4
|
||||
str r0, [r4, #0x4]
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_PopMtx
|
||||
G3B_PopMtx: ; 0x020C78A4
|
||||
ldr r2, [r0, #0x0]
|
||||
mov r3, #0x12
|
||||
str r3, [r2, #0x0]
|
||||
ldr r2, [r0, #0x4]
|
||||
str r1, [r2, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3B_PushMtx
|
||||
G3B_PushMtx: ; 0x020C78D4
|
||||
ldr r1, [r0, #0x0]
|
||||
mov r2, #0x11
|
||||
str r2, [r1, #0x0]
|
||||
ldr r1, [r0, #0x4]
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [r0, #0x0]
|
||||
add r1, r1, #0x4
|
||||
str r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
arm_func_start G3BS_LoadMtx44
|
||||
G3BS_LoadMtx44: ; 0x020C78F8
|
||||
mov r3, r0
|
||||
ldr r0, [r3, #0x0]
|
||||
mov r2, #0x16
|
||||
str r2, [r0, #0x0]
|
||||
mov r0, r1
|
||||
ldr ip, _020C7918 ; =MI_Copy64B
|
||||
ldr r1, [r3, #0x4]
|
||||
bx r12
|
||||
.balign 4
|
||||
_020C7918: .word MI_Copy64B
|
||||
37
arm9/asm/GX_g3imm.s
Normal file
37
arm9/asm/GX_g3imm.s
Normal file
@@ -0,0 +1,37 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start G3_MultMtx33
|
||||
G3_MultMtx33: ; 0x020C791C
|
||||
ldr r1, _020C7930 ; =0x04000400
|
||||
mov r2, #0x1a
|
||||
ldr ip, _020C7934 ; =MI_Copy36B
|
||||
str r2, [r1, #0x0]
|
||||
bx r12
|
||||
.balign 4
|
||||
_020C7930: .word 0x04000400
|
||||
_020C7934: .word MI_Copy36B
|
||||
|
||||
arm_func_start G3_MultMtx43
|
||||
G3_MultMtx43:
|
||||
ldr r1, _020C794C ; =0x04000400
|
||||
mov r2, #0x19
|
||||
ldr ip, _020C7950 ; =GX_SendFifo48B
|
||||
str r2, [r1, #0x0]
|
||||
bx r12
|
||||
.balign 4
|
||||
_020C794C: .word 0x04000400
|
||||
_020C7950: .word GX_SendFifo48B
|
||||
|
||||
arm_func_start G3_LoadMtx43
|
||||
G3_LoadMtx43: ; 0x020C7954
|
||||
ldr r1, _020C7968 ; =0x04000400
|
||||
mov r2, #0x17
|
||||
ldr ip, _020C796C ; =GX_SendFifo48B
|
||||
str r2, [r1, #0x0]
|
||||
bx r12
|
||||
.balign 4
|
||||
_020C7968: .word 0x04000400
|
||||
_020C796C: .word GX_SendFifo48B
|
||||
503
arm9/asm/GX_g3x.s
Normal file
503
arm9/asm/GX_g3x.s
Normal file
@@ -0,0 +1,503 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start GXi_NopClearFifo128_
|
||||
GXi_NopClearFifo128_: ; 0x020C7970
|
||||
mov r1, #0x0
|
||||
mov r2, #0x0
|
||||
mov r3, #0x0
|
||||
mov r12, #0x0
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
stmia r0, {r1-r3,r12}
|
||||
bx lr
|
||||
|
||||
arm_func_start G3X_SetHOffset
|
||||
G3X_SetHOffset: ; 0x020C7A04
|
||||
ldr r1, _020C7A10 ; =0x04000010
|
||||
str r0, [r1, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7A10: .word 0x04000010
|
||||
|
||||
arm_func_start G3X_GetBoxTestResult
|
||||
G3X_GetBoxTestResult: ; 0x020C7A14
|
||||
ldr r2, _020C7A38 ; =0x04000600
|
||||
ldr r1, [r2, #0x0]
|
||||
ands r1, r1, #0x1
|
||||
ldreq r1, [r2, #0x0]
|
||||
mvnne r0, #0x0
|
||||
andeq r1, r1, #0x2
|
||||
streq r1, [r0, #0x0]
|
||||
moveq r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7A38: .word 0x04000600
|
||||
|
||||
arm_func_start G3X_GetMtxStackLevelPJ
|
||||
G3X_GetMtxStackLevelPJ:
|
||||
ldr r2, _020C7A64 ; =0x04000600
|
||||
ldr r1, [r2, #0x0]
|
||||
ands r1, r1, #0x4000
|
||||
ldreq r1, [r2, #0x0]
|
||||
mvnne r0, #0x0
|
||||
andeq r1, r1, #0x2000
|
||||
moveq r1, r1, lsr #0xd
|
||||
streq r1, [r0, #0x0]
|
||||
moveq r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7A64: .word 0x04000600
|
||||
|
||||
arm_func_start G3X_GetMtxStackLevelPV
|
||||
G3X_GetMtxStackLevelPV:
|
||||
ldr r2, _020C7A90 ; =0x04000600
|
||||
ldr r1, [r2, #0x0]
|
||||
ands r1, r1, #0x4000
|
||||
ldreq r1, [r2, #0x0]
|
||||
mvnne r0, #0x0
|
||||
andeq r1, r1, #0x1f00
|
||||
moveq r1, r1, lsr #0x8
|
||||
streq r1, [r0, #0x0]
|
||||
moveq r0, #0x0
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7A90: .word 0x04000600
|
||||
|
||||
arm_func_start G3X_InitTable
|
||||
G3X_InitTable: ; 0x020C7A94
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr r0, _020C7B2C ; =0x02106814
|
||||
mvn r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, r1
|
||||
beq _020C7AE4
|
||||
mov r2, #0x0
|
||||
str r2, [sp, #0x0]
|
||||
ldr r1, _020C7B30 ; =0x04000330
|
||||
mov r3, #0x10
|
||||
str r2, [sp, #0x4]
|
||||
bl MI_DmaFill32Async
|
||||
ldr r0, _020C7B2C ; =0x02106814
|
||||
ldr r1, _020C7B34 ; =0x04000360
|
||||
ldr r0, [r0, #0x0]
|
||||
mov r2, #0x0
|
||||
mov r3, #0x60
|
||||
bl MI_DmaFill32
|
||||
b _020C7B04
|
||||
_020C7AE4:
|
||||
ldr r1, _020C7B30 ; =0x04000330
|
||||
mov r0, #0x0
|
||||
mov r2, #0x10
|
||||
bl MIi_CpuClear32
|
||||
ldr r1, _020C7B34 ; =0x04000360
|
||||
mov r0, #0x0
|
||||
mov r2, #0x60
|
||||
bl MIi_CpuClear32
|
||||
_020C7B04:
|
||||
mov r2, #0x0
|
||||
ldr r0, _020C7B38 ; =0x040004D0
|
||||
mov r1, r2
|
||||
_020C7B10:
|
||||
add r2, r2, #0x1
|
||||
str r1, [r0, #0x0]
|
||||
cmp r2, #0x20
|
||||
blt _020C7B10
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7B2C: .word 0x02106814
|
||||
_020C7B30: .word 0x04000330
|
||||
_020C7B34: .word 0x04000360
|
||||
_020C7B38: .word 0x040004D0
|
||||
|
||||
arm_func_start G3X_SetClearColor
|
||||
G3X_SetClearColor: ; 0x020C7B3C
|
||||
orr r0, r0, r1, lsl #0x10
|
||||
ldr r12, [sp, #0x0]
|
||||
orr r3, r0, r3, lsl #0x18
|
||||
cmp r12, #0x0
|
||||
ldr r1, _020C7B64 ; =0x04000350
|
||||
orrne r3, r3, #0x8000
|
||||
ldr r0, _020C7B68 ; =0x04000354
|
||||
str r3, [r1, #0x0]
|
||||
strh r2, [r0, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7B64: .word 0x04000350
|
||||
_020C7B68: .word 0x04000354
|
||||
|
||||
arm_func_start G3X_SetFogTable
|
||||
G3X_SetFogTable: ; 0x020C7B6C
|
||||
ldr ip, _020C7B78 ; =0x020CE2C4
|
||||
ldr r1, _020C7B7C ; =0x04000360
|
||||
bx r12
|
||||
.balign 4
|
||||
_020C7B78: .word 0x020CE2C4
|
||||
_020C7B7C: .word 0x04000360
|
||||
|
||||
arm_func_start G3X_SetEdgeColorTable
|
||||
G3X_SetEdgeColorTable: ; 0x020C7B80
|
||||
ldr ip, _020C7B90 ; =MIi_CpuCopy16
|
||||
ldr r1, _020C7B94 ; =0x04000330
|
||||
mov r2, #0x10
|
||||
bx r12
|
||||
.balign 4
|
||||
_020C7B90: .word MIi_CpuCopy16
|
||||
_020C7B94: .word 0x04000330
|
||||
|
||||
arm_func_start G3X_GetVectorMtx
|
||||
G3X_GetVectorMtx:
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r2, _020C7BD8 ; =0x04000600
|
||||
mov r1, r0
|
||||
ldr r0, [r2, #0x0]
|
||||
ands r0, r0, #0x8000000
|
||||
addne sp, sp, #0x4
|
||||
mvnne r0, #0x0
|
||||
ldmneia sp!, {lr}
|
||||
bxne lr
|
||||
ldr r0, _020C7BDC ; =0x04000680
|
||||
bl MI_Copy36B
|
||||
_020C7BC8: ; 0x020C7BC8
|
||||
mov r0, #0x0
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7BD8: .word 0x04000600
|
||||
_020C7BDC: .word 0x04000680
|
||||
|
||||
arm_func_start G3X_GetClipMtx
|
||||
G3X_GetClipMtx:
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r2, _020C7C20 ; =0x04000600
|
||||
mov r1, r0
|
||||
ldr r0, [r2, #0x0]
|
||||
ands r0, r0, #0x8000000
|
||||
addne sp, sp, #0x4
|
||||
mvnne r0, #0x0
|
||||
ldmneia sp!, {lr}
|
||||
bxne lr
|
||||
ldr r0, _020C7C24 ; =0x04000640
|
||||
bl MI_Copy64B
|
||||
_020C7C10: ; 0x020C7C10
|
||||
mov r0, #0x0
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7C20: .word 0x04000600
|
||||
_020C7C24: .word 0x04000640
|
||||
|
||||
arm_func_start G3X_SetFog
|
||||
G3X_SetFog: ; 0x020C7C28
|
||||
cmp r0, #0x0
|
||||
ldreq r2, _020C7C70 ; =0x04000060
|
||||
ldreq r0, _020C7C74 ; =0x0000CF7F
|
||||
ldreqh r1, [r2, #0x0]
|
||||
andeq r0, r1, r0
|
||||
streqh r0, [r2, #0x0]
|
||||
bxeq lr
|
||||
ldr r0, _020C7C78 ; =0x0400035C
|
||||
ldr ip, _020C7C70 ; =0x04000060
|
||||
strh r3, [r0, #0x0]
|
||||
mov r0, r2, lsl #0x8
|
||||
orr r0, r0, r1, lsl #0x6
|
||||
ldrh r3, [r12, #0x0]
|
||||
orr r0, r0, #0x80
|
||||
bic r1, r3, #0x3f40
|
||||
orr r0, r1, r0
|
||||
strh r0, [r12, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7C70: .word 0x04000060
|
||||
_020C7C74: .word 0x0000CF7F
|
||||
_020C7C78: .word 0x0400035C
|
||||
|
||||
arm_func_start G3X_ResetMtxStack_2
|
||||
G3X_ResetMtxStack_2: ; 0x020C7C7C
|
||||
stmdb sp!, {r4,lr}
|
||||
sub sp, sp, #0x8
|
||||
ldr r1, _020C7D18 ; =0x04000600
|
||||
ldr r0, [r1, #0x0]
|
||||
orr r0, r0, #0x8000
|
||||
str r0, [r1, #0x0]
|
||||
add r4, sp, #0x0
|
||||
_020C7C98:
|
||||
mov r0, r4
|
||||
bl G3X_GetMtxStackLevelPV
|
||||
_020C7CA0: ; 0x020C7CA0
|
||||
cmp r0, #0x0
|
||||
bne _020C7C98
|
||||
add r4, sp, #0x4
|
||||
_020C7CAC:
|
||||
mov r0, r4
|
||||
bl G3X_GetMtxStackLevelPJ
|
||||
_020C7CB4: ; 0x020C7CB4
|
||||
cmp r0, #0x0
|
||||
bne _020C7CAC
|
||||
ldr r2, _020C7D1C ; =0x04000440
|
||||
mov r1, #0x3
|
||||
str r1, [r2, #0x0]
|
||||
ldr r0, _020C7D20 ; =0x04000454
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x0]
|
||||
str r1, [r2, #0x0]
|
||||
ldr r1, [sp, #0x4]
|
||||
cmp r1, #0x0
|
||||
ldrne r0, _020C7D24 ; =0x04000448
|
||||
strne r1, [r0, #0x0]
|
||||
ldr r0, _020C7D1C ; =0x04000440
|
||||
mov r1, #0x2
|
||||
str r1, [r0, #0x0]
|
||||
ldr r2, [sp, #0x0]
|
||||
ldr r1, _020C7D24 ; =0x04000448
|
||||
ldr r0, _020C7D20 ; =0x04000454
|
||||
str r2, [r1, #0x0]
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x0]
|
||||
add sp, sp, #0x8
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7D18: .word 0x04000600
|
||||
_020C7D1C: .word 0x04000440
|
||||
_020C7D20: .word 0x04000454
|
||||
_020C7D24: .word 0x04000448
|
||||
|
||||
arm_func_start G3X_InitMtxStack
|
||||
G3X_InitMtxStack: ; 0x020C7D28
|
||||
stmdb sp!, {r4,lr}
|
||||
sub sp, sp, #0x8
|
||||
ldr r1, _020C7DC8 ; =0x04000600
|
||||
ldr r0, [r1, #0x0]
|
||||
orr r0, r0, #0x8000
|
||||
str r0, [r1, #0x0]
|
||||
add r4, sp, #0x0
|
||||
_020C7D44:
|
||||
mov r0, r4
|
||||
bl G3X_GetMtxStackLevelPV
|
||||
_020C7D4C: ; 0x020C7D4C
|
||||
cmp r0, #0x0
|
||||
bne _020C7D44
|
||||
add r4, sp, #0x4
|
||||
_020C7D58:
|
||||
mov r0, r4
|
||||
bl G3X_GetMtxStackLevelPJ
|
||||
_020C7D60: ; 0x020C7D60
|
||||
cmp r0, #0x0
|
||||
bne _020C7D58
|
||||
ldr r2, _020C7DCC ; =0x04000440
|
||||
mov r1, #0x3
|
||||
str r1, [r2, #0x0]
|
||||
ldr r0, _020C7DD0 ; =0x04000454
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x0]
|
||||
str r1, [r2, #0x0]
|
||||
ldr r1, [sp, #0x4]
|
||||
ldr r2, _020C7DD0 ; =0x04000454
|
||||
cmp r1, #0x0
|
||||
ldrne r0, _020C7DD4 ; =0x04000448
|
||||
mov r3, #0x0
|
||||
strne r1, [r0, #0x0]
|
||||
ldr r0, _020C7DCC ; =0x04000440
|
||||
str r3, [r2, #0x0]
|
||||
mov r1, #0x2
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, [sp, #0x0]
|
||||
ldr r0, _020C7DD4 ; =0x04000448
|
||||
str r1, [r0, #0x0]
|
||||
str r3, [r2, #0x0]
|
||||
add sp, sp, #0x8
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7DC8: .word 0x04000600
|
||||
_020C7DCC: .word 0x04000440
|
||||
_020C7DD0: .word 0x04000454
|
||||
_020C7DD4: .word 0x04000448
|
||||
|
||||
arm_func_start G3X_ClearFifo
|
||||
G3X_ClearFifo: ; 0x020C7DD8
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r0, _020C7E04 ; =0x04000400
|
||||
bl GXi_NopClearFifo128_
|
||||
ldr r1, _020C7E08 ; =0x04000600
|
||||
_020C7DEC:
|
||||
ldr r0, [r1, #0x0]
|
||||
ands r0, r0, #0x8000000
|
||||
bne _020C7DEC
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7E04: .word 0x04000400
|
||||
_020C7E08: .word 0x04000600
|
||||
|
||||
arm_func_start G3X_ResetMtxStack
|
||||
G3X_ResetMtxStack: ; 0x020C7E0C
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r2, _020C7E7C ; =0x04000600
|
||||
_020C7E18:
|
||||
ldr r0, [r2, #0x0]
|
||||
ands r0, r0, #0x8000000
|
||||
bne _020C7E18
|
||||
ldr r0, [r2, #0x0]
|
||||
ldr r1, _020C7E80 ; =0x04000060
|
||||
orr r0, r0, #0x8000
|
||||
str r0, [r2, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
orr r0, r0, #0x2000
|
||||
strh r0, [r1, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
orr r0, r0, #0x1000
|
||||
strh r0, [r1, #0x0]
|
||||
bl G3X_ResetMtxStack_2
|
||||
ldr r2, _020C7E84 ; =0x001F0080
|
||||
ldr r0, _020C7E88 ; =0x040004A4
|
||||
ldr r1, _020C7E8C ; =0x040004A8
|
||||
str r2, [r0, #0x0]
|
||||
mov r2, #0x0
|
||||
ldr r0, _020C7E90 ; =0x040004AC
|
||||
str r2, [r1, #0x0]
|
||||
str r2, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7E7C: .word 0x04000600
|
||||
_020C7E80: .word 0x04000060
|
||||
_020C7E84: .word 0x001F0080
|
||||
_020C7E88: .word 0x040004A4
|
||||
_020C7E8C: .word 0x040004A8
|
||||
_020C7E90: .word 0x040004AC
|
||||
|
||||
arm_func_start G3X_Init
|
||||
G3X_Init: ; 0x020C7E94
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
bl G3X_ClearFifo
|
||||
ldr r0, _020C7FAC ; =0x04000504
|
||||
mov r1, #0x0
|
||||
str r1, [r0, #0x0]
|
||||
ldr r1, _020C7FB0 ; =0x04000600
|
||||
_020C7EB0:
|
||||
ldr r0, [r1, #0x0]
|
||||
ands r0, r0, #0x8000000
|
||||
bne _020C7EB0
|
||||
ldr r0, _020C7FB4 ; =0x04000060
|
||||
mov r3, #0x0
|
||||
strh r3, [r0, #0x0]
|
||||
ldr r2, _020C7FB8 ; =0x04000010
|
||||
str r3, [r1, #0x0]
|
||||
str r3, [r2, #0x0]
|
||||
ldrh r12, [r0, #0x0]
|
||||
ldr r2, _020C7FBC ; =0xFFFFCFFD
|
||||
ldr r3, _020C7FC0 ; =0x0000CFFB
|
||||
orr r12, r12, #0x2000
|
||||
strh r12, [r0, #0x0]
|
||||
ldrh r12, [r0, #0x0]
|
||||
orr r12, r12, #0x1000
|
||||
strh r12, [r0, #0x0]
|
||||
ldrh r12, [r0, #0x0]
|
||||
and r2, r12, r2
|
||||
strh r2, [r0, #0x0]
|
||||
ldrh r2, [r0, #0x0]
|
||||
bic r2, r2, #0x3000
|
||||
orr r2, r2, #0x10
|
||||
strh r2, [r0, #0x0]
|
||||
ldrh r2, [r0, #0x0]
|
||||
and r2, r2, r3
|
||||
strh r2, [r0, #0x0]
|
||||
ldr r0, [r1, #0x0]
|
||||
orr r0, r0, #0x8000
|
||||
str r0, [r1, #0x0]
|
||||
ldr r0, [r1, #0x0]
|
||||
bic r0, r0, #0xc0000000
|
||||
orr r0, r0, #0x80000000
|
||||
str r0, [r1, #0x0]
|
||||
bl G3X_InitMtxStack
|
||||
ldr r0, _020C7FC4 ; =0x04000350
|
||||
mov r3, #0x0
|
||||
ldr r2, _020C7FC8 ; =0x00007FFF
|
||||
ldr r1, _020C7FCC ; =0x04000354
|
||||
str r3, [r0, #0x0]
|
||||
ldr r0, _020C7FD0 ; =0x04000356
|
||||
strh r2, [r1, #0x0]
|
||||
ldr r1, _020C7FD4 ; =0x04000358
|
||||
strh r3, [r0, #0x0]
|
||||
ldr r0, _020C7FD8 ; =0x0400035C
|
||||
str r3, [r1, #0x0]
|
||||
ldr r1, _020C7FDC ; =0x04000008
|
||||
strh r3, [r0, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bic r0, r0, #0x3
|
||||
strh r0, [r1, #0x0]
|
||||
bl G3X_InitTable
|
||||
ldr r2, _020C7FE0 ; =0x001F0080
|
||||
ldr r0, _020C7FE4 ; =0x040004A4
|
||||
ldr r1, _020C7FE8 ; =0x040004A8
|
||||
str r2, [r0, #0x0]
|
||||
mov r2, #0x0
|
||||
ldr r0, _020C7FEC ; =0x040004AC
|
||||
str r2, [r1, #0x0]
|
||||
str r2, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C7FAC: .word 0x04000504
|
||||
_020C7FB0: .word 0x04000600
|
||||
_020C7FB4: .word 0x04000060
|
||||
_020C7FB8: .word 0x04000010
|
||||
_020C7FBC: .word 0xFFFFCFFD
|
||||
_020C7FC0: .word 0x0000CFFB
|
||||
_020C7FC4: .word 0x04000350
|
||||
_020C7FC8: .word 0x00007FFF
|
||||
_020C7FCC: .word 0x04000354
|
||||
_020C7FD0: .word 0x04000356
|
||||
_020C7FD4: .word 0x04000358
|
||||
_020C7FD8: .word 0x0400035C
|
||||
_020C7FDC: .word 0x04000008
|
||||
_020C7FE0: .word 0x001F0080
|
||||
_020C7FE4: .word 0x040004A4
|
||||
_020C7FE8: .word 0x040004A8
|
||||
_020C7FEC: .word 0x040004AC
|
||||
1116
arm9/asm/GX_load2d.s
Normal file
1116
arm9/asm/GX_load2d.s
Normal file
File diff suppressed because it is too large
Load Diff
420
arm9/asm/GX_load3d.s
Normal file
420
arm9/asm/GX_load3d.s
Normal file
@@ -0,0 +1,420 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start GX_EndLoadClearImage
|
||||
GX_EndLoadClearImage: ; 0x020C95AC
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r0, _020C95F8 ; =0x02106814
|
||||
mvn r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, r1
|
||||
beq _020C95CC
|
||||
bl MI_WaitDma
|
||||
_020C95CC:
|
||||
ldr r0, _020C95FC ; =0x021D33FC
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GX_SetBankForClearImage
|
||||
ldr r1, _020C95FC ; =0x021D33FC
|
||||
mov r2, #0x0
|
||||
ldr r0, _020C9600 ; =0x021D340C
|
||||
str r2, [r1, #0x0]
|
||||
str r2, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C95F8: .word 0x02106814
|
||||
_020C95FC: .word 0x021D33FC
|
||||
_020C9600: .word 0x021D340C
|
||||
|
||||
arm_func_start GX_LoadClearImageDepth
|
||||
GX_LoadClearImageDepth: ; 0x020C9604
|
||||
stmdb sp!, {r4,lr}
|
||||
sub sp, sp, #0x8
|
||||
ldr r3, _020C9670 ; =0x021D340C
|
||||
ldr r2, _020C9674 ; =0x02106814
|
||||
ldr r12, [r3, #0x0]
|
||||
ldr lr, [r2, #0x0]
|
||||
mvn r2, #0x0
|
||||
mov r4, r0
|
||||
mov r3, r1
|
||||
cmp lr, r2
|
||||
add r2, r12, #0x20000
|
||||
beq _020C9658
|
||||
mov r12, #0x0
|
||||
str r12, [sp, #0x0]
|
||||
mov r0, lr
|
||||
mov r1, r4
|
||||
str r12, [sp, #0x4]
|
||||
bl MI_DmaCopy32Async
|
||||
add sp, sp, #0x8
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
_020C9658:
|
||||
mov r1, r2
|
||||
mov r2, r3
|
||||
bl MIi_CpuCopy32
|
||||
add sp, sp, #0x8
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C9670: .word 0x021D340C
|
||||
_020C9674: .word 0x02106814
|
||||
|
||||
arm_func_start GX_LoadClearImageColor
|
||||
GX_LoadClearImageColor: ; 0x020C9678
|
||||
stmdb sp!, {r4,lr}
|
||||
sub sp, sp, #0x8
|
||||
ldr r2, _020C96E0 ; =0x02106814
|
||||
ldr ip, _020C96E4 ; =0x021D340C
|
||||
ldr lr, [r2, #0x0]
|
||||
mvn r2, #0x0
|
||||
mov r4, r0
|
||||
mov r3, r1
|
||||
cmp lr, r2
|
||||
ldr r2, [r12, #0x0]
|
||||
beq _020C96C8
|
||||
mov r12, #0x0
|
||||
str r12, [sp, #0x0]
|
||||
mov r0, lr
|
||||
mov r1, r4
|
||||
str r12, [sp, #0x4]
|
||||
bl MI_DmaCopy32Async
|
||||
add sp, sp, #0x8
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
_020C96C8:
|
||||
mov r1, r2
|
||||
mov r2, r3
|
||||
bl MIi_CpuCopy32
|
||||
add sp, sp, #0x8
|
||||
ldmia sp!, {r4,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C96E0: .word 0x02106814
|
||||
_020C96E4: .word 0x021D340C
|
||||
|
||||
arm_func_start GX_BeginLoadClearImage
|
||||
GX_BeginLoadClearImage: ; 0x020C96E8
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
bl GX_ResetBankForClearImage
|
||||
ldr r1, _020C979C ; =0x021D33FC
|
||||
cmp r0, #0xc
|
||||
str r0, [r1, #0x0]
|
||||
addls pc, pc, r0, lsl #0x2
|
||||
b _020C9790
|
||||
_020C9708:
|
||||
b _020C9790
|
||||
_020C970C:
|
||||
b _020C976C
|
||||
_020C9710:
|
||||
b _020C973C
|
||||
_020C9714:
|
||||
b _020C973C
|
||||
_020C9718:
|
||||
b _020C9784
|
||||
_020C971C:
|
||||
b _020C9790
|
||||
_020C9720:
|
||||
b _020C9790
|
||||
_020C9724:
|
||||
b _020C9790
|
||||
_020C9728:
|
||||
b _020C9754
|
||||
_020C972C:
|
||||
b _020C9790
|
||||
_020C9730:
|
||||
b _020C9790
|
||||
_020C9734:
|
||||
b _020C9790
|
||||
_020C9738:
|
||||
b _020C9754
|
||||
_020C973C:
|
||||
ldr r0, _020C97A0 ; =0x021D340C
|
||||
mov r1, #0x6800000
|
||||
str r1, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
_020C9754:
|
||||
ldr r1, _020C97A4 ; =0x06840000
|
||||
ldr r0, _020C97A0 ; =0x021D340C
|
||||
add sp, sp, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
_020C976C:
|
||||
ldr r1, _020C97A8 ; =0x067E0000
|
||||
ldr r0, _020C97A0 ; =0x021D340C
|
||||
add sp, sp, #0x4
|
||||
str r1, [r0, #0x0]
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
_020C9784:
|
||||
ldr r1, _020C97AC ; =0x06820000
|
||||
ldr r0, _020C97A0 ; =0x021D340C
|
||||
str r1, [r0, #0x0]
|
||||
_020C9790:
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C979C: .word 0x021D33FC
|
||||
_020C97A0: .word 0x021D340C
|
||||
_020C97A4: .word 0x06840000
|
||||
_020C97A8: .word 0x067E0000
|
||||
_020C97AC: .word 0x06820000
|
||||
|
||||
arm_func_start GX_EndLoadTexPltt
|
||||
GX_EndLoadTexPltt: ; 0x020C97B0
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r0, _020C97FC ; =0x02106814
|
||||
mvn r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, r1
|
||||
beq _020C97D0
|
||||
bl MI_WaitDma
|
||||
_020C97D0:
|
||||
ldr r0, _020C9800 ; =0x021D3408
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GX_SetBankForTexPltt
|
||||
ldr r1, _020C9800 ; =0x021D3408
|
||||
mov r2, #0x0
|
||||
ldr r0, _020C9804 ; =0x021D3404
|
||||
str r2, [r1, #0x0]
|
||||
str r2, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C97FC: .word 0x02106814
|
||||
_020C9800: .word 0x021D3408
|
||||
_020C9804: .word 0x021D3404
|
||||
|
||||
arm_func_start GX_LoadTexPltt
|
||||
GX_LoadTexPltt: ; 0x020C9808
|
||||
stmdb sp!, {r4-r5,lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr ip, _020C9874 ; =0x021D3404
|
||||
ldr r3, _020C9878 ; =0x02106814
|
||||
ldr r4, [r12, #0x0]
|
||||
ldr lr, [r3, #0x0]
|
||||
mvn r12, #0x0
|
||||
mov r5, r0
|
||||
mov r3, r2
|
||||
cmp lr, r12
|
||||
add r4, r4, r1
|
||||
beq _020C9860
|
||||
mov r12, #0x0
|
||||
str r12, [sp, #0x0]
|
||||
mov r0, lr
|
||||
mov r1, r5
|
||||
mov r2, r4
|
||||
str r12, [sp, #0x4]
|
||||
bl MI_DmaCopy32Async
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
bx lr
|
||||
_020C9860:
|
||||
mov r1, r4
|
||||
bl MIi_CpuCopy32
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C9874: .word 0x021D3404
|
||||
_020C9878: .word 0x02106814
|
||||
|
||||
arm_func_start GX_BeginLoadTexPltt
|
||||
GX_BeginLoadTexPltt: ; 0x020C987C
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
bl GX_ResetBankForTexPltt
|
||||
mov r3, r0, asr #0x4
|
||||
ldr r2, _020C98B8 ; =0x021D3408
|
||||
ldr r1, _020C98BC ; =0x02103B3C
|
||||
mov r3, r3, lsl #0x1
|
||||
ldrh r3, [r1, r3]
|
||||
ldr r1, _020C98C0 ; =0x021D3404
|
||||
str r0, [r2, #0x0]
|
||||
mov r0, r3, lsl #0xc
|
||||
str r0, [r1, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C98B8: .word 0x021D3408
|
||||
_020C98BC: .word 0x02103B3C
|
||||
_020C98C0: .word 0x021D3404
|
||||
|
||||
arm_func_start GX_EndLoadTex
|
||||
GX_EndLoadTex: ; 0x020C98C4
|
||||
stmdb sp!, {lr}
|
||||
sub sp, sp, #0x4
|
||||
ldr r0, _020C9920 ; =0x02106814
|
||||
mvn r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, r1
|
||||
beq _020C98E4
|
||||
bl MI_WaitDma
|
||||
_020C98E4:
|
||||
ldr r0, _020C9924 ; =0x021D3410
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GX_SetBankForTex
|
||||
ldr r3, _020C9928 ; =0x021D3418
|
||||
mov r12, #0x0
|
||||
ldr r2, _020C992C ; =0x021D3414
|
||||
ldr r1, _020C9930 ; =0x021D3400
|
||||
ldr r0, _020C9924 ; =0x021D3410
|
||||
str r12, [r3, #0x0]
|
||||
str r12, [r2, #0x0]
|
||||
str r12, [r1, #0x0]
|
||||
str r12, [r0, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C9920: .word 0x02106814
|
||||
_020C9924: .word 0x021D3410
|
||||
_020C9928: .word 0x021D3418
|
||||
_020C992C: .word 0x021D3414
|
||||
_020C9930: .word 0x021D3400
|
||||
|
||||
arm_func_start GX_LoadTex
|
||||
GX_LoadTex: ; 0x020C9934
|
||||
stmdb sp!, {r4-r7,lr}
|
||||
sub sp, sp, #0xc
|
||||
ldr r3, _020C9A88 ; =0x021D3414
|
||||
mov r7, r0
|
||||
ldr r5, [r3, #0x0]
|
||||
mov r6, r2
|
||||
cmp r5, #0x0
|
||||
ldreq r0, _020C9A8C ; =0x021D3400
|
||||
ldreq r0, [r0, #0x0]
|
||||
addeq r2, r0, r1
|
||||
beq _020C9A34
|
||||
ldr r0, _020C9A90 ; =0x021D3418
|
||||
add r2, r1, r6
|
||||
ldr r4, [r0, #0x0]
|
||||
cmp r2, r4
|
||||
ldrlo r0, _020C9A8C ; =0x021D3400
|
||||
ldrcc r0, [r0, #0x0]
|
||||
addcc r2, r0, r1
|
||||
blo _020C9A34
|
||||
cmp r1, r4
|
||||
addcs r0, r5, r1
|
||||
subcs r2, r0, r4
|
||||
bhs _020C9A34
|
||||
ldr r2, _020C9A8C ; =0x021D3400
|
||||
ldr r0, _020C9A94 ; =0x02106814
|
||||
ldr r3, [r2, #0x0]
|
||||
ldr r0, [r0, #0x0]
|
||||
mvn r2, #0x0
|
||||
cmp r0, r2
|
||||
sub r4, r4, r1
|
||||
add r2, r3, r1
|
||||
beq _020C99CC
|
||||
cmp r4, #0x30
|
||||
bls _020C99CC
|
||||
mov r1, r7
|
||||
mov r3, r4
|
||||
bl MI_DmaCopy32
|
||||
b _020C99DC
|
||||
_020C99CC:
|
||||
mov r1, r2
|
||||
mov r0, r7
|
||||
mov r2, r4
|
||||
bl MIi_CpuCopy32
|
||||
_020C99DC:
|
||||
ldr r0, _020C9A94 ; =0x02106814
|
||||
mvn r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, r1
|
||||
beq _020C9A18
|
||||
mov r12, #0x0
|
||||
str r12, [sp, #0x0]
|
||||
mov r2, r5
|
||||
add r1, r7, r4
|
||||
sub r3, r6, r4
|
||||
str r12, [sp, #0x4]
|
||||
bl MI_DmaCopy32Async
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r7,lr}
|
||||
bx lr
|
||||
_020C9A18:
|
||||
mov r1, r5
|
||||
add r0, r7, r4
|
||||
sub r2, r6, r4
|
||||
bl MIi_CpuCopy32
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r7,lr}
|
||||
bx lr
|
||||
_020C9A34:
|
||||
ldr r0, _020C9A94 ; =0x02106814
|
||||
mvn r1, #0x0
|
||||
ldr r0, [r0, #0x0]
|
||||
cmp r0, r1
|
||||
beq _020C9A6C
|
||||
mov r4, #0x0
|
||||
str r4, [sp, #0x0]
|
||||
mov r1, r7
|
||||
mov r3, r6
|
||||
str r4, [sp, #0x4]
|
||||
bl MI_DmaCopy32Async
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r7,lr}
|
||||
bx lr
|
||||
_020C9A6C:
|
||||
mov r1, r2
|
||||
mov r0, r7
|
||||
mov r2, r6
|
||||
bl MIi_CpuCopy32
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4-r7,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C9A88: .word 0x021D3414
|
||||
_020C9A8C: .word 0x021D3400
|
||||
_020C9A90: .word 0x021D3418
|
||||
_020C9A94: .word 0x02106814
|
||||
|
||||
arm_func_start GX_BeginLoadTex
|
||||
GX_BeginLoadTex: ; 0x020C9A98
|
||||
stmdb sp!, {r4-r5,lr}
|
||||
sub sp, sp, #0x4
|
||||
bl GX_ResetBankForTex
|
||||
mov r1, #0x6
|
||||
mul r12, r0, r1
|
||||
ldr r3, _020C9AFC ; =0x02103B4C
|
||||
ldr r2, _020C9B00 ; =0x02103B4E
|
||||
ldr r1, _020C9B04 ; =0x02103B50
|
||||
ldrh r5, [r3, r12]
|
||||
ldrh r4, [r2, r12]
|
||||
ldrh lr, [r1, r12]
|
||||
ldr ip, _020C9B08 ; =0x021D3410
|
||||
ldr r3, _020C9B0C ; =0x021D3400
|
||||
mov r5, r5, lsl #0xc
|
||||
ldr r2, _020C9B10 ; =0x021D3414
|
||||
mov r4, r4, lsl #0xc
|
||||
ldr r1, _020C9B14 ; =0x021D3418
|
||||
mov lr, lr, lsl #0xc
|
||||
str r0, [r12, #0x0]
|
||||
str r5, [r3, #0x0]
|
||||
str r4, [r2, #0x0]
|
||||
str lr, [r1, #0x0]
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C9AFC: .word 0x02103B4C
|
||||
_020C9B00: .word 0x02103B4E
|
||||
_020C9B04: .word 0x02103B50
|
||||
_020C9B08: .word 0x021D3410
|
||||
_020C9B0C: .word 0x021D3400
|
||||
_020C9B10: .word 0x021D3414
|
||||
_020C9B14: .word 0x021D3418
|
||||
40
arm9/asm/GX_state.s
Normal file
40
arm9/asm/GX_state.s
Normal file
@@ -0,0 +1,40 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start GX_InitGXState
|
||||
GX_InitGXState: ; 0x020C5CAC
|
||||
ldr r0, _020C5D14 ; =0x021D33C4
|
||||
mov r3, #0x0
|
||||
ldr r2, _020C5D18 ; =0x04000240
|
||||
strh r3, [r0, #0x0]
|
||||
strh r3, [r0, #0x2]
|
||||
strh r3, [r0, #0x4]
|
||||
strh r3, [r0, #0x6]
|
||||
strh r3, [r0, #0x8]
|
||||
strh r3, [r0, #0xa]
|
||||
strh r3, [r0, #0xc]
|
||||
strh r3, [r0, #0xe]
|
||||
strh r3, [r0, #0x10]
|
||||
strh r3, [r0, #0x12]
|
||||
strh r3, [r0, #0x14]
|
||||
strh r3, [r0, #0x16]
|
||||
strh r3, [r0, #0x18]
|
||||
ldr r1, _020C5D1C ; =0x04000244
|
||||
str r3, [r2, #0x0]
|
||||
ldr r0, _020C5D20 ; =0x04000245
|
||||
strb r3, [r1, #0x0]
|
||||
ldr r1, _020C5D24 ; =0x04000246
|
||||
strb r3, [r0, #0x0]
|
||||
ldr r0, _020C5D28 ; =0x04000248
|
||||
strb r3, [r1, #0x0]
|
||||
strh r3, [r0, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020C5D14: .word 0x021D33C4
|
||||
_020C5D18: .word 0x04000240
|
||||
_020C5D1C: .word 0x04000244
|
||||
_020C5D20: .word 0x04000245
|
||||
_020C5D24: .word 0x04000246
|
||||
_020C5D28: .word 0x04000248
|
||||
1540
arm9/asm/GX_vramcnt.s
Normal file
1540
arm9/asm/GX_vramcnt.s
Normal file
File diff suppressed because it is too large
Load Diff
5256
arm9/asm/libgx.s
5256
arm9/asm/libgx.s
File diff suppressed because it is too large
Load Diff
@@ -3003,13 +3003,21 @@
|
||||
.extern FX_InvAsync
|
||||
.extern FX_Sqrt
|
||||
.extern G2S_GetBG0CharPtr
|
||||
.extern G2S_GetBG0ScrPtr
|
||||
.extern G2S_GetBG1CharPtr
|
||||
.extern G2S_GetBG1ScrPtr
|
||||
.extern G2S_GetBG2CharPtr
|
||||
.extern G2S_GetBG2ScrPtr
|
||||
.extern G2S_GetBG3CharPtr
|
||||
.extern G2S_GetBG3ScrPtr
|
||||
.extern G2_GetBG0CharPtr
|
||||
.extern G2_GetBG0ScrPtr
|
||||
.extern G2_GetBG1CharPtr
|
||||
.extern G2_GetBG1ScrPtr
|
||||
.extern G2_GetBG2CharPtr
|
||||
.extern G2_GetBG2ScrPtr
|
||||
.extern G2_GetBG3CharPtr
|
||||
.extern G2_GetBG3ScrPtr
|
||||
.extern G2x_SetBGyAffine_
|
||||
.extern G2x_SetBlendAlpha_
|
||||
.extern G2x_SetBlendBrightness_
|
||||
@@ -3068,6 +3076,7 @@
|
||||
.extern GX_GetBankForSubOBJExtPltt
|
||||
.extern GX_HBlankIntr
|
||||
.extern GX_Init
|
||||
.extern GX_InitGXState
|
||||
.extern GX_LoadBG0Char
|
||||
.extern GX_LoadBG0Scr
|
||||
.extern GX_LoadBG1Char
|
||||
@@ -3088,14 +3097,17 @@
|
||||
.extern GX_LoadTexPltt
|
||||
.extern GX_ResetBankForBG
|
||||
.extern GX_ResetBankForBGExtPltt
|
||||
.extern GX_ResetBankForClearImage
|
||||
.extern GX_ResetBankForOBJ
|
||||
.extern GX_ResetBankForOBJExtPltt
|
||||
.extern GX_ResetBankForSubBG
|
||||
.extern GX_ResetBankForSubOBJ
|
||||
.extern GX_ResetBankForTex
|
||||
.extern GX_ResetBankForTexPltt
|
||||
.extern GX_SendFifo48B
|
||||
.extern GX_SetBankForBG
|
||||
.extern GX_SetBankForBGExtPltt
|
||||
.extern GX_SetBankForClearImage
|
||||
.extern GX_SetBankForLCDC
|
||||
.extern GX_SetBankForOBJ
|
||||
.extern GX_SetBankForOBJExtPltt
|
||||
|
||||
Reference in New Issue
Block a user