Match most files in overlay117

This commit is contained in:
Nomura
2023-01-01 22:29:48 +01:00
parent 87d7b5e80c
commit ec44b24415
21 changed files with 6020 additions and 7278 deletions

View File

@@ -1,22 +0,0 @@
.public sub_020067E8
.public sub_02006814
.public sub_0200681C
.public sub_0200682C
.public sub_02006830
.public sub_02006840
.public sub_02006844
.public sub_02017FC8
.public sub_0201807C
.public sub_02032E64
.public sub_02032EE8
.public sub_02035E18
.public sub_0203608C
.public sub_020364F0
.public sub_02036540
.public sub_020388F4
.public MI_CpuFill8
.public ov4_021D1F18
.public ov114_0225C700
.public ov114_0225CA54
.public ov117_022605D8
.public ov117_02260630

View File

@@ -1,300 +0,0 @@
.include "macros/function.inc"
.include "overlay117/ov117_02260440.inc"
.text
thumb_func_start ov117_02260440
ov117_02260440: ; 0x02260440
push {r3, r4, r5, lr}
add r4, r0, #0
bl sub_02006840
add r5, r0, #0
mov r0, #3
mov r1, #0x6e
lsl r2, r0, #0x11
bl sub_02017FC8
add r0, r4, #0
mov r1, #0x40
mov r2, #0x6e
bl sub_0200681C
add r4, r0, #0
mov r1, #0
mov r2, #0x40
bl MI_CpuFill8
add r0, r4, #0
add r1, r5, #0
bl ov117_022605D8
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end ov117_02260440
thumb_func_start ov117_02260474
ov117_02260474: ; 0x02260474
push {r4, r5, r6, lr}
add r6, r0, #0
add r4, r1, #0
bl sub_0200682C
add r5, r0, #0
add r0, r6, #0
bl sub_02006840
add r6, r0, #0
add r0, r5, #0
bl ov117_02260630
cmp r0, #1
bne _02260496
mov r0, #1
pop {r4, r5, r6, pc}
_02260496:
ldr r0, [r4, #0]
cmp r0, #8
bls _0226049E
b _022605B0
_0226049E:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022604AA: ; jump table
.short _022604BC - _022604AA - 2 ; case 0
.short _022604D8 - _022604AA - 2 ; case 1
.short _022604F4 - _022604AA - 2 ; case 2
.short _02260510 - _022604AA - 2 ; case 3
.short _0226052C - _022604AA - 2 ; case 4
.short _02260554 - _022604AA - 2 ; case 5
.short _0226057A - _022604AA - 2 ; case 6
.short _02260590 - _022604AA - 2 ; case 7
.short _022605B0 - _022604AA - 2 ; case 8
_022604BC:
add r0, r5, #0
mov r1, #0
add r0, #0x31
strb r1, [r0]
ldr r0, _022605B8 ; =0x02266908
add r1, r5, #0
mov r2, #0x6e
bl sub_020067E8
str r0, [r5, #0x28]
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_022604D8:
ldr r0, [r5, #0x28]
bl sub_02006844
cmp r0, #1
bne _022605B4
ldr r0, [r5, #0x28]
bl sub_02006814
mov r0, #0
str r0, [r5, #0x28]
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_022604F4:
add r0, r5, #0
mov r1, #1
add r0, #0x31
strb r1, [r0]
ldr r0, _022605BC ; =0x022668F8
add r1, r5, #0
mov r2, #0x6e
bl sub_020067E8
str r0, [r5, #0x28]
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_02260510:
ldr r0, [r5, #0x28]
bl sub_02006844
cmp r0, #1
bne _022605B4
ldr r0, [r5, #0x28]
bl sub_02006814
mov r0, #0
str r0, [r5, #0x28]
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_0226052C:
add r6, #0x38
ldrb r0, [r6]
cmp r0, #0
beq _02260538
bl ov4_021D1F18
_02260538:
add r0, r5, #0
mov r1, #2
add r0, #0x31
strb r1, [r0]
ldr r0, _022605B8 ; =0x02266908
add r1, r5, #0
mov r2, #0x6e
bl sub_020067E8
str r0, [r5, #0x28]
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_02260554:
ldr r0, [r5, #0x28]
bl sub_02006844
cmp r0, #1
bne _022605B4
ldr r0, [r5, #0x28]
bl sub_02006814
mov r1, #0
str r1, [r5, #0x28]
ldr r0, [r5, #0x38]
cmp r0, #1
bne _02260572
str r1, [r4, #0]
b _022605B4
_02260572:
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_0226057A:
mov r0, #0
mov r1, #1
bl sub_020388F4
mov r0, #0xde
bl sub_020364F0
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_02260590:
mov r0, #0xde
bl sub_02036540
cmp r0, #1
beq _022605A8
bl sub_02035E18
add r5, r0, #0
bl sub_02032E64
cmp r5, r0
bge _022605B4
_022605A8:
ldr r0, [r4, #0]
add r0, r0, #1
str r0, [r4, #0]
b _022605B4
_022605B0:
mov r0, #1
pop {r4, r5, r6, pc}
_022605B4:
mov r0, #0
pop {r4, r5, r6, pc}
; .align 2, 0
_022605B8: .word 0x02266908
_022605BC: .word 0x022668F8
thumb_func_end ov117_02260474
thumb_func_start ov117_022605C0
ov117_022605C0: ; 0x022605C0
push {r4, lr}
add r4, r0, #0
bl sub_0200682C
add r0, r4, #0
bl sub_02006830
mov r0, #0x6e
bl sub_0201807C
mov r0, #1
pop {r4, pc}
thumb_func_end ov117_022605C0
thumb_func_start ov117_022605D8
ov117_022605D8: ; 0x022605D8
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r7, r1, #0
bl sub_0203608C
mov r5, #0
add r4, r5, #0
_022605E6:
add r0, r4, #0
bl sub_02032EE8
cmp r0, #0
beq _022605FA
add r0, r6, r5
add r0, #0x2c
strb r4, [r0]
add r5, r5, #1
b _02260602
_022605FA:
add r1, r6, r4
add r1, #0x2c
mov r0, #0xff
strb r0, [r1]
_02260602:
add r4, r4, #1
cmp r4, #4
blt _022605E6
add r0, r6, #0
add r0, #0x30
strb r5, [r0]
add r0, r7, #0
add r0, #0x38
ldrb r1, [r0]
add r0, r6, #0
add r0, #0x3c
strb r1, [r0]
str r7, [sp]
add r1, r7, #0
add r1, #0x39
ldr r2, [r7, #0x34]
add r7, #0x38
ldrb r1, [r1]
ldrb r3, [r7]
add r0, r6, #0
bl ov114_0225C700
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov117_022605D8
thumb_func_start ov117_02260630
ov117_02260630: ; 0x02260630
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
add r1, #0x3d
ldrb r1, [r1]
cmp r1, #0
bne _0226064E
bl ov114_0225CA54
cmp r0, #1
bne _0226064E
add r0, r4, #0
mov r1, #1
add r0, #0x3d
strb r1, [r0]
_0226064E:
add r0, r4, #0
add r0, #0x3d
ldrb r0, [r0]
cmp r0, #1
bne _02260662
ldr r0, [r4, #0x28]
cmp r0, #0
bne _02260662
mov r0, #1
pop {r4, pc}
_02260662:
mov r0, #0
pop {r4, pc}
; .align 2, 0
thumb_func_end ov117_02260630
.rodata
.global Unk_ov117_022668F8
Unk_ov117_022668F8: ; 0x022668F8
.incbin "incbin/overlay117_rodata.bin", 0x0, 0x10
.global Unk_ov117_02266908
Unk_ov117_02266908: ; 0x02266908
.incbin "incbin/overlay117_rodata.bin", 0x10, 0x20 - 0x10

View File

@@ -1,261 +0,0 @@
.public sub_02002AC8
.public sub_02002AE4
.public sub_02002B20
.public sub_02002D7C
.public sub_02002F38
.public sub_02002F54
.public sub_02002F70
.public sub_02002FA0
.public sub_02002FEC
.public sub_02003050
.public sub_02003070
.public sub_02003694
.public sub_02003858
.public sub_020038B0
.public sub_02005748
.public sub_0200681C
.public sub_0200682C
.public sub_02006830
.public sub_02006840
.public sub_02006C24
.public sub_02006CA8
.public sub_020070E8
.public sub_0200710C
.public sub_0200964C
.public sub_0200966C
.public sub_02009704
.public sub_0200B144
.public sub_0200B190
.public sub_0200B1EC
.public sub_0200B358
.public sub_0200B3F0
.public sub_0200C6E4
.public sub_0200C704
.public sub_0200C738
.public sub_0200C73C
.public sub_0200C7C0
.public sub_0200C7EC
.public sub_0200C800
.public sub_0200C808
.public sub_0200C8D4
.public sub_0200CB30
.public sub_0200CBDC
.public sub_0200CC3C
.public sub_0200CD7C
.public sub_0200CDC4
.public sub_0200CE0C
.public sub_0200CE24
.public sub_0200CE3C
.public sub_0200CE54
.public sub_0200D0B0
.public sub_0200D9B0
.public sub_0200D9E8
.public sub_0200DA58
.public sub_0200DAA4
.public sub_0200DC48
.public sub_0200F174
.public sub_0200F2AC
.public sub_0200F2C0
.public sub_0200F370
.public sub_02012744
.public sub_020127BC
.public sub_02014000
.public sub_02014014
.public sub_0201411C
.public sub_020144C4
.public sub_020144CC
.public sub_020145B4
.public sub_020145F4
.public sub_0201469C
.public sub_020146C0
.public sub_020146F4
.public sub_02014730
.public sub_02014784
.public sub_020170D8
.public sub_02017110
.public sub_02017164
.public sub_02017190
.public sub_020171A0
.public sub_02017204
.public sub_02017240
.public sub_02017258
.public sub_0201727C
.public sub_02017288
.public sub_02017294
.public sub_02017348
.public sub_02017350
.public sub_0201736C
.public sub_02017798
.public sub_02017DD4
.public sub_02018144
.public sub_020181C4
.public sub_020182CC
.public sub_02018340
.public sub_02018368
.public sub_020183C4
.public sub_02019044
.public sub_02019120
.public sub_02019184
.public sub_02019690
.public sub_02019CB8
.public sub_02019EBC
.public sub_0201A7E8
.public sub_0201A8FC
.public sub_0201A9A4
.public sub_0201ADA4
.public sub_0201C2B8
.public sub_0201C3C0
.public sub_0201D78C
.public sub_0201DBEC
.public sub_0201DC3C
.public sub_0201DCAC
.public sub_0201E3D8
.public sub_0201E450
.public sub_0201E530
.public sub_0201FE94
.public sub_0201FF00
.public sub_0201FF0C
.public sub_0201FF68
.public sub_0201FF74
.public sub_0201FFD0
.public sub_0201FFE8
.public sub_020203AC
.public sub_020203B8
.public sub_020203D4
.public sub_020203EC
.public sub_020206BC
.public sub_020206D0
.public sub_02020854
.public GF_AssertFail
.public sub_02023790
.public sub_020237BC
.public sub_020241B4
.public sub_020241BC
.public sub_02024220
.public sub_020242C4
.public sub_02025F04
.public sub_0203608C
.public sub_020364F0
.public sub_02036540
.public sub_02038A1C
.public sub_02039734
.public sub_02039794
.public NNS_G3dGlbFlushP
.public NNS_G3dGlbSetBaseTrans
.public NNS_G3dGlbSetBaseScale
.public NNS_G3dGlbLightVector
.public NNS_G3dGlbLightColor
.public NNS_G3dGlbMaterialColorDiffAmb
.public NNS_G3dGlbMaterialColorSpecEmi
.public NNS_G3dGeBufferOP_N
.public MTX_Identity33_
.public G2x_SetBlendAlpha_
.public G3X_SetFog
.public G3X_SetClearColor
.public MIi_CpuClear32
.public MI_Copy36B
.public MI_CpuFill8
.public _s32_div_f
.public ov4_021D1E74
.public ov114_0225C7A4
.public ov114_0225C7CC
.public ov114_0225CA98
.public ov114_0225CAD4
.public ov114_0225CB38
.public ov114_0225CB74
.public ov114_0225CB8C
.public ov114_0225CBB0
.public ov114_0225CBE0
.public ov117_02260DA0
.public ov117_02260E14
.public ov117_02260E34
.public ov117_02260EB8
.public ov117_02260EC0
.public ov117_02260F64
.public ov117_02260F7C
.public ov117_022610D8
.public ov117_02261280
.public ov117_02261368
.public ov117_022613B8
.public ov117_022613EC
.public ov117_022614AC
.public ov117_02261574
.public ov117_022615E0
.public ov117_02261644
.public ov117_02261668
.public ov117_0226168C
.public ov117_022618E8
.public ov117_02261940
.public ov117_022619F8
.public ov117_02261A2C
.public ov117_02261AC4
.public ov117_02261AC8
.public ov117_02261C28
.public ov117_02261C2C
.public ov117_02261DD0
.public ov117_02261F08
.public ov117_02261F3C
.public ov117_02261FA4
.public ov117_02261FF4
.public ov117_0226200C
.public ov117_022620A0
.public ov117_022620E0
.public ov117_0226217C
.public ov117_022621D4
.public ov117_02262200
.public ov117_02262270
.public ov117_022622B8
.public ov117_022622C4
.public ov117_0226235C
.public ov117_022623B0
.public ov117_02262448
.public ov117_02262664
.public ov117_022626AC
.public ov117_022626B0
.public ov117_02262760
.public ov117_02262798
.public ov117_02262950
.public ov117_02263CF4
.public ov117_02263D80
.public ov117_02263EF8
.public ov117_022641E4
.public ov117_02264508
.public ov117_02264560
.public ov117_022648E0
.public ov117_02264914
.public ov117_02264930
.public ov117_02264AB0
.public ov117_02264AF0
.public ov117_02264BF8
.public ov117_02264D1C
.public ov117_02264FB0
.public ov117_0226504C
.public ov117_02265064
.public ov117_022651E0
.public ov117_02265210
.public ov117_02265254
.public ov117_02265ABC
.public ov117_02265B3C
.public ov117_02265C1C
.public ov117_02265DB8
.public ov117_02265EB0
.public ov117_02265EC8
.public ov117_02265F34
.public ov117_02266130
.public ov117_02266150
.public ov117_02266210
.public ov117_02266238
.public ov117_02266244
.public ov117_02266268
.public ov117_02266274
.public ov117_022665FC
.public ov117_02266624
.public ov117_02266648
.public ov117_022666A4
.public ov117_022666C0
.public ov117_02266730
.public ov117_02266784
.public ov117_022667F4
.public ov117_02266834
.public ov117_0226687C
.public ov117_022668B8

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
.public sub_02005748
.public sub_020057D4
.public sub_02006C24
.public sub_02006CA8
.public sub_0200CC3C
.public sub_0200CDC4
.public sub_0200CE24
.public sub_0200CE54
.public sub_0200CE6C
.public sub_0200D070
.public sub_0200D080
.public sub_0200D090
.public sub_0200D0A0
.public sub_0200D0F4
.public sub_0200D324
.public sub_0200D364
.public sub_0200D3F4
.public sub_0200D500
.public GF_AssertFail
.public NNS_G3dGeBufferOP_N
.public FX_Atan2Idx
.public _ll_sdiv
.public ov117_02262A38
.public ov117_02263168
.public ov117_02263448
.public ov117_022637AC
.public ov117_022637E4
.public ov117_0226384C
.public ov117_022638AC

View File

@@ -1,986 +0,0 @@
.include "macros/function.inc"
.include "overlay117/ov117_022626B0_arm.inc"
.text
arm_func_start ov117_02262D98
ov117_02262D98: ; 0x02262D98
stmfd sp!, {r4, r5, r6, lr}
sub sp, sp, #0x80
add r3, sp, #0
mov r6, #0
_02262DA8:
mov r0, r6, lsl #1
add r5, r0, #1
smull r1, r0, r5, r5
umull ip, r2, r5, r1
mla r2, r5, r0, r2
mov r4, r5, asr #0x1f
umull lr, r0, r5, ip
mla r2, r4, r1, r2
mla r0, r5, r2, r0
mla r0, r4, ip, r0
mov r1, lr, lsr #0x18
orr r1, r1, r0, lsl #8
add r0, r6, #1
strb r1, [r3, r6]
and r6, r0, #0xff
cmp r6, #0x7f
blo _02262DA8
mov ip, #0xff
add r1, sp, #0
mov r0, #0x34
mov r2, #0x20
strb ip, [r3, #0x7f]
bl NNS_G3dGeBufferOP_N
add sp, sp, #0x80
ldmia sp!, {r4, r5, r6, pc}
arm_func_end ov117_02262D98
arm_func_start ov117_02262E0C
ov117_02262E0C: ; 0x02262E0C
stmfd sp!, {r4, lr}
mov lr, #0
mov r4, lr
mov ip, lr
mov r1, #0x80000
_02262E20:
add r3, r0, lr, lsl #5
str ip, [r3, #0xc]
str r4, [r3, #0x10]
str ip, [r3, #0x14]
sub r2, r4, #0x10000
str r2, [r3, #0x18]
str r1, [r3, #0x1c]
str r4, [r3, #0x20]
str r1, [r3, #0x24]
add lr, lr, #1
str r2, [r3, #0x28]
cmp lr, #8
sub r4, r4, #0x10000
blt _02262E20
ldmia sp!, {r4, pc}
arm_func_end ov117_02262E0C
arm_func_start ov117_02262E5C
ov117_02262E5C: ; 0x02262E5C
stmfd sp!, {r4, lr}
mov lr, #0
mov r4, lr
mov ip, lr
mov r1, #0x80000
_02262E70:
add r3, r0, lr, lsl #5
str ip, [r3, #0x10c]
str r4, [r3, #0x110]
str ip, [r3, #0x114]
add r2, r4, #0x10000
str r2, [r3, #0x118]
str r1, [r3, #0x11c]
str r4, [r3, #0x120]
str r1, [r3, #0x124]
add lr, lr, #1
mov r4, r2
str r2, [r3, #0x128]
cmp lr, #8
blt _02262E70
ldmia sp!, {r4, pc}
arm_func_end ov117_02262E5C
arm_func_start ov117_02262EAC
ov117_02262EAC: ; 0x02262EAC
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x48
mov sb, #0
ldr r6, _02263164 ; =0x1FF00000
mov sl, r0
mov r4, sb
add r8, sp, #2
add r7, sp, #0
mov fp, sb
mov r5, sb
_02262ED4:
mov r0, #1
str r0, [sp, #0x44]
mov r0, #0x40
add r1, sp, #0x44
mov r2, #1
bl NNS_G3dGeBufferOP_N
add r1, sl, sb, lsl #5
ldr r0, [r1, #0xc]
ldr r1, [r1, #0x10]
mov r2, r8
mov r3, r7
bl ov117_02263168
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x10c]
ldr r1, [r1, #0x110]
mov r0, r0, lsl #8
mov r1, r1, lsl #8
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r0, r0, asr #0x10
mov r1, r1, lsr #0x10
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
orr r0, r1, r0, lsr #16
str r0, [sp, #0x40]
mov r0, #0x22
add r1, sp, #0x40
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r0, #0x21
add r1, sp, #0x3c
mov r2, #1
str r6, [sp, #0x3c]
bl NNS_G3dGeBufferOP_N
ldrh r3, [sp, #2]
ldrh r2, [sp]
mov r0, #0x23
add r1, sp, #0x34
orr r2, r3, r2, lsl #16
str r2, [sp, #0x34]
mov r2, #2
str r5, [sp, #0x38]
bl NNS_G3dGeBufferOP_N
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x14]
ldr r1, [r1, #0x18]
mov r2, r8
mov r3, r7
bl ov117_02263168
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x114]
ldr r1, [r1, #0x118]
mov r0, r0, lsl #8
mov r1, r1, lsl #8
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r0, r0, asr #0x10
mov r1, r1, lsr #0x10
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
orr r0, r1, r0, lsr #16
str r0, [sp, #0x30]
mov r0, #0x22
add r1, sp, #0x30
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r0, #0x21
add r1, sp, #0x2c
mov r2, #1
str r6, [sp, #0x2c]
bl NNS_G3dGeBufferOP_N
ldrh r3, [sp, #2]
ldrh r2, [sp]
mov r0, #0x23
add r1, sp, #0x24
orr r2, r3, r2, lsl #16
str r2, [sp, #0x24]
mov r2, #2
str r4, [sp, #0x28]
bl NNS_G3dGeBufferOP_N
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x24]
ldr r1, [r1, #0x28]
mov r2, r8
mov r3, r7
bl ov117_02263168
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x124]
ldr r1, [r1, #0x128]
mov r0, r0, lsl #8
mov r1, r1, lsl #8
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r0, r0, asr #0x10
mov r1, r1, lsr #0x10
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
orr r0, r1, r0, lsr #16
str r0, [sp, #0x20]
mov r0, #0x22
add r1, sp, #0x20
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r0, #0x21
add r1, sp, #0x1c
mov r2, #1
str r6, [sp, #0x1c]
bl NNS_G3dGeBufferOP_N
ldrh r3, [sp, #2]
ldrh r2, [sp]
mov r0, #0x23
add r1, sp, #0x14
orr r2, r3, r2, lsl #16
str r2, [sp, #0x14]
mov r2, #2
str fp, [sp, #0x18]
bl NNS_G3dGeBufferOP_N
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x1c]
ldr r1, [r1, #0x20]
mov r2, r8
mov r3, r7
bl ov117_02263168
add r1, sl, sb, lsl #5
ldr r0, [r1, #0x11c]
ldr r1, [r1, #0x120]
mov r0, r0, lsl #8
mov r1, r1, lsl #8
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r0, r0, asr #0x10
mov r1, r1, lsr #0x10
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
orr r0, r1, r0, lsr #16
str r0, [sp, #0x10]
mov r0, #0x22
add r1, sp, #0x10
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r0, #0x21
add r1, sp, #0xc
mov r2, #1
str r6, [sp, #0xc]
bl NNS_G3dGeBufferOP_N
mov r0, #0
str r0, [sp, #8]
ldrh r3, [sp, #2]
ldrh r2, [sp]
mov r0, #0x23
add r1, sp, #4
orr r2, r3, r2, lsl #16
str r2, [sp, #4]
mov r2, #2
bl NNS_G3dGeBufferOP_N
mov r1, #0
mov r0, #0x41
mov r2, r1
bl NNS_G3dGeBufferOP_N
add sb, sb, #1
cmp sb, #8
blt _02262ED4
add sp, sp, #0x48
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
; .align 2, 0
_02263164: .word 0x1FF00000
arm_func_end ov117_02262EAC
arm_func_start ov117_02263168
ov117_02263168: ; 0x02263168
stmfd sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0, asr #0x1f
mov r5, r1
mov r1, r4, lsl #0xc
mov r7, r2
mov r6, r3
orr r1, r1, r0, lsr #20
mov r0, r0, lsl #0xc
mov r2, #0x80000
mov r3, #0
bl _ll_sdiv
mov r1, r5, asr #0x1f
mov r1, r1, lsl #0xc
mov r4, r0
orr r1, r1, r5, lsr #20
mov r0, r5, lsl #0xc
mov r2, #0x80000
mov r3, #0
bl _ll_sdiv
mov r5, r0
ldr r0, _0226326C ; =0x00007FFF
cmp r4, r0
ble _022631C8
bl GF_AssertFail
_022631C8:
mov r0, #0x8000
rsb r0, r0, #0
cmp r4, r0
bge _022631DC
bl GF_AssertFail
_022631DC:
ldr r0, _0226326C ; =0x00007FFF
cmp r5, r0
ble _022631EC
bl GF_AssertFail
_022631EC:
mov r0, #0x8000
rsb r0, r0, #0
cmp r5, r0
bge _02263200
bl GF_AssertFail
_02263200:
ldr r0, _0226326C ; =0x00007FFF
sub r1, r4, #0x800
cmp r1, r0
ble _02263214
bl GF_AssertFail
_02263214:
mov r0, #0x8000
sub r1, r4, #0x800
rsb r0, r0, #0
cmp r1, r0
bge _0226322C
bl GF_AssertFail
_0226322C:
ldr r0, _0226326C ; =0x00007FFF
add r1, r5, #0x800
cmp r1, r0
ble _02263240
bl GF_AssertFail
_02263240:
mov r0, #0x8000
add r1, r5, #0x800
rsb r0, r0, #0
cmp r1, r0
bge _02263258
bl GF_AssertFail
_02263258:
sub r0, r4, #0x800
strh r0, [r7]
add r0, r5, #0x800
strh r0, [r6]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
; .align 2, 0
_0226326C: .word 0x00007FFF
arm_func_end ov117_02263168
arm_func_start ov117_02263270
ov117_02263270: ; 0x02263270
stmfd sp!, {r3, r4, r5, lr}
mov r4, r0
ldr r1, [r4, #0x238]
cmp r1, #1
ldrne r1, [r4, #0x218]
cmpne r1, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r2, [r4, #0x270]
ldr r3, _0226333C ; =0x02266B07
ldr r1, _02263340 ; =0x02266B05
ldrb lr, [r3, r2, lsl #2]
ldr r5, [r4, #0x230]
ldrb r3, [r1, r2, lsl #2]
ldr ip, [r4, #0x20c]
add r1, lr, r5, asr #12
cmp ip, r3
blt _022632E4
ldr r3, _02263344 ; =0x02266B06
ldrb r3, [r3, r2, lsl #2]
cmp ip, r3
bgt _022632E4
ldr ip, [r4, #0x210]
cmp ip, r1
blt _022632E4
ldr r3, _02263348 ; =0x02266B08
ldrb r2, [r3, r2, lsl #2]
cmp ip, r2
ble _022632EC
_022632E4:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_022632EC:
mov r2, #1
str r2, [r4, #0x238]
ldr r2, [r4, #0x20c]
str r2, [r4, #0x224]
ldr r2, [r4, #0x210]
str r2, [r4, #0x228]
ldr r2, [r4, #0x210]
sub r1, r2, r1
str r1, [r4, #0x22c]
ldr r2, [r4, #0x20]
ldr r1, [r4, #0x10]
sub r1, r1, r2
add r1, r1, r1, lsr #31
add r1, r2, r1, asr #1
rsb r1, r1, #0
str r1, [r4, #0x230]
bl ov117_022638AC
str r0, [r4, #0x240]
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
; .align 2, 0
_0226333C: .word 0x02266B07
_02263340: .word 0x02266B05
_02263344: .word 0x02266B06
_02263348: .word 0x02266B08
arm_func_end ov117_02263270
arm_func_start ov117_0226334C
ov117_0226334C: ; 0x0226334C
stmfd sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5, #0x238]
mov r4, #0
cmp r0, #1
bne _022633E8
ldr r2, [r5, #0x23c]
ldr r1, [r5, #0x210]
cmp r1, r2
movlt r0, r4
strltb r4, [r5, #0x274]
ldmltia sp!, {r3, r4, r5, pc}
streqb r4, [r5, #0x274]
moveq r0, #1
ldmeqia sp!, {r3, r4, r5, pc}
sub r0, r4, #1
cmp r2, r0
beq _022633BC
cmp r1, r2
ble _022633BC
ldr r0, _02263440 ; =0x00000577
bl sub_020057D4
cmp r0, #0
bne _022633BC
ldr r0, _02263440 ; =0x00000577
bl sub_02005748
mov r0, #1
strb r0, [r5, #0x274]
_022633BC:
ldr r1, [r5, #0x270]
ldr r0, _02263444 ; =0x02266B07
ldr ip, [r5, #0x210]
ldr r3, [r5, #0x22c]
ldr r2, [r5, #0x230]
ldrb r0, [r0, r1, lsl #2]
sub r1, ip, r3
str ip, [r5, #0x23c]
add r0, r2, r0, lsl #12
rsb r2, r0, r1, lsl #12
b _022633F4
_022633E8:
ldr r0, [r5, #0x248]
mov r4, #1
rsb r2, r0, #0
_022633F4:
mov r0, r5
mov r1, r4
bl ov117_02263448
cmp r0, #0
beq _0226341C
cmp r0, #1
cmpne r0, #2
bne _0226341C
mov r0, r5
blx ov117_02262A38
_0226341C:
ldr r2, [r5, #0x20]
ldr r1, [r5, #0x10]
mov r0, #1
sub r1, r1, r2
add r1, r1, r1, lsr #31
add r1, r2, r1, asr #1
rsb r1, r1, #0
str r1, [r5, #0x230]
ldmia sp!, {r3, r4, r5, pc}
; .align 2, 0
_02263440: .word 0x00000577
_02263444: .word 0x02266B07
arm_func_end ov117_0226334C
arm_func_start ov117_02263448
ov117_02263448: ; 0x02263448
stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov r4, r0
ldr r5, [r4, #0x10]
ldr r3, [r4, #0x20]
rsb r6, r5, #0
rsb r7, r3, #0
sub r3, r6, r7
add r3, r3, r3, lsr #31
mov r5, r2
mov r2, #0
mov sb, r1
add r8, r7, r3, asr #1
str r2, [sp, #8]
bl ov117_022637AC
cmp r0, #0
beq _022634A0
cmp r0, #1
beq _022634B4
cmp r0, #2
beq _022634E0
b _02263508
_022634A0:
add r1, r6, r5
add r0, r7, r5
str r1, [sp, #0x10]
str r0, [sp, #0xc]
b _02263508
_022634B4:
add r0, sp, #0x10
str r0, [sp]
add sl, sp, #0xc
mov r0, r4
mov r1, r5
mov r2, r6
mov r3, r7
str sl, [sp, #4]
bl ov117_022637E4
str r0, [sp, #8]
b _02263508
_022634E0:
add r0, sp, #0xc
str r0, [sp]
add sl, sp, #0x10
mov r0, r4
mov r1, r5
mov r2, r7
mov r3, r6
str sl, [sp, #4]
bl ov117_022637E4
str r0, [sp, #8]
_02263508:
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
sub r0, r2, r1
add r0, r0, r0, lsr #31
add r5, r1, r0, asr #1
cmp r8, r5
cmpeq r6, r2
cmpeq r7, r1
addeq sp, sp, #0x14
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
cmp r5, #0
movlt r5, #0
cmp r2, #0
movlt r0, #0
strlt r0, [sp, #0x10]
cmp r1, #0
movlt r0, #0
strlt r0, [sp, #0xc]
cmp r5, #0x64000
movgt r0, #1
strgt r0, [sp, #8]
ldr r0, [sp, #0x10]
movgt r5, #0x64000
cmp r0, #0x64000
ble _02263580
mov r0, #0x64000
str r0, [sp, #0x10]
mov r0, #1
str r0, [sp, #8]
_02263580:
ldr r0, [sp, #0xc]
cmp r0, #0x64000
ble _0226359C
mov r0, #0x64000
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #8]
_0226359C:
mov r0, r4
mov r1, sb
bl ov117_022637AC
cmp r0, #0
beq _022635C0
cmp r0, #1
beq _02263600
cmp r0, #2
beq _022635E0
_022635C0:
ldr r0, [sp, #0xc]
mov r1, #0x40000
sub r0, r0, r5
bl FX_Atan2Idx
add r1, r0, #0x8000
mov r1, r1, lsl #0x10
mov fp, r1, lsr #0x10
b _02263624
_022635E0:
ldr r0, [sp, #0xc]
mov r1, #0x40000
sub r0, r0, r5
bl FX_Atan2Idx
add r1, r0, #0x8000
mov r1, r1, lsl #0x10
mov fp, r1, lsr #0x10
b _02263624
_02263600:
ldr r0, [sp, #0x10]
mov r1, #0x40000
sub r0, r0, r5
rsb r1, r1, #0
bl FX_Atan2Idx
mov fp, r0
add r0, fp, #0x8000
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
_02263624:
mov r1, fp, asr #4
mov r7, r1, lsl #1
add r2, r7, #1
ldr r1, _022637A4 ; =0x020F983C
mov r2, r2, lsl #1
ldrsh r3, [r1, r2]
mov r2, r0, asr #4
mov r6, r2, lsl #1
mov r2, r3, lsl #6
add r2, r2, #0x40000
str r2, [r4, #0xc]
mov r2, r7, lsl #1
ldrsh r7, [r1, r2]
add r2, r6, #1
mov r2, r2, lsl #1
add r7, r5, r7, lsl #6
rsb r7, r7, #0
str r7, [r4, #0x10]
ldrsh r7, [r1, r2]
ldr r2, _022637A8 ; =0x92492493
rsb r3, r5, #0x70000
mov r7, r7, lsl #6
add r7, r7, #0x40000
mov r6, r6, lsl #1
str r7, [r4, #0x1c]
ldrsh r6, [r1, r6]
smull r1, lr, r2, r3
add r1, r5, r6, lsl #6
rsb r6, r1, #0
add lr, r3, lr
mov r1, r3, lsr #0x1f
str r6, [r4, #0x20]
cmp r0, #0x8000
add lr, r1, lr, asr #2
smullls r1, r6, r2, r0
addls r6, r0, r6
movls r1, r0, lsr #0x1f
bls _022636D0
rsb r1, r0, #0x10000
rsb r3, r1, #0
smull r1, r6, r2, r3
add r6, r3, r6
mov r1, r3, lsr #0x1f
_022636D0:
add r6, r1, r6, asr #2
ldr r3, _022637A4 ; =0x020F983C
mov r7, r6
mov r8, lr
mov ip, #1
_022636E4:
sub r1, fp, r7
mov r1, r1, asr #4
mov r1, r1, lsl #1
add r2, r3, r1, lsl #1
ldrsh sb, [r2, #2]
sub r2, r0, r7
mov r1, r1, lsl #1
mov sb, sb, lsl #6
add sl, sb, #0x40000
mov r2, r2, asr #4
mov sb, r2, lsl #1
add r2, r4, ip, lsl #5
str sl, [r2, #0xc]
ldrsh r1, [r3, r1]
mov sl, sb, lsl #1
add sb, r3, sb, lsl #1
add r1, r5, r1, lsl #6
add r1, r8, r1
rsb r1, r1, #0
str r1, [r2, #0x10]
ldrsh r1, [sb, #2]
add r7, r7, r6
add ip, ip, #1
mov r1, r1, lsl #6
add r1, r1, #0x40000
str r1, [r2, #0x1c]
ldrsh r1, [r3, sl]
cmp ip, #7
add r1, r5, r1, lsl #6
add r1, r8, r1
rsb r1, r1, #0
str r1, [r2, #0x20]
ldr r1, [r2, #0xc]
add r8, r8, lr
str r1, [r2, #-0xc]
ldr r1, [r2, #0x10]
str r1, [r2, #-8]
ldr r1, [r2, #0x1c]
str r1, [r2, #4]
ldr r1, [r2, #0x20]
str r1, [r2, #8]
blt _022636E4
ldr r0, [sp, #8]
cmp r0, #1
moveq r0, #2
movne r0, #0
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
; .align 2, 0
_022637A4: .word 0x020F983C
_022637A8: .word 0x92492493
arm_func_end ov117_02263448
arm_func_start ov117_022637AC
ov117_022637AC: ; 0x022637AC
cmp r1, #1
moveq r0, #0
bxeq lr
ldr r2, [r0, #0x21c]
ldr r1, [r0, #0x224]
sub r0, r2, #0x10
cmp r1, r0
movlt r0, #1
bxlt lr
add r0, r2, #0x10
cmp r1, r0
movgt r0, #2
movle r0, #0
bx lr
arm_func_end ov117_022637AC
arm_func_start ov117_022637E4
ov117_022637E4: ; 0x022637E4
stmfd sp!, {r4, lr}
ldr lr, [sp, #8]
add r4, r2, r1
mov r0, #0
cmp r4, #0x64000
subgt r0, r4, #0x64000
subgt r1, r1, r0
movgt r0, #1
ldr ip, [sp, #0xc]
str r2, [lr]
str r3, [ip]
add r4, r2, r1
str r4, [lr]
cmp r3, r2
strgt r3, [ip]
ldmgtia sp!, {r4, pc}
mov r2, #0x19
mul r2, r1, r2
ldr lr, _02263848 ; =0x51EB851F
mov r1, r2, lsr #0x1f
smull r2, r4, lr, r2
add r4, r1, r4, asr #5
sub r1, r3, r4
str r1, [ip]
ldmia sp!, {r4, pc}
; .align 2, 0
_02263848: .word 0x51EB851F
arm_func_end ov117_022637E4
arm_func_start ov117_0226384C
ov117_0226384C: ; 0x0226384C
stmfd sp!, {r3, r4, r5, lr}
ldr r5, [r0, #0x20]
ldr r1, [r0, #0x10]
ldr r4, [r0, #0x1c]
sub r1, r1, r5
add r1, r1, r1, lsr #31
ldr lr, [r0, #0xc]
ldr ip, [r0, #0xe4]
ldr r3, [r0, #0xd4]
ldr r2, [r0, #0xd8]
add r0, r5, r1, asr #1
sub r0, r2, r0
sub r2, r4, lr
sub r1, ip, r3
add r1, r2, r1
rsb r0, r0, #0
smull r2, r0, r1, r0
adds r1, r2, #0x800
adc r0, r0, #0
mov r1, r1, lsr #0xc
orr r1, r1, r0, lsl #20
add r0, r1, r1, lsr #31
mov r0, r0, asr #1
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov117_0226384C
arm_func_start ov117_022638AC
ov117_022638AC: ; 0x022638AC
stmfd sp!, {r3, lr}
bl ov117_0226384C
mov r2, #0x64
umull r3, r1, r0, r2
mov r0, r0, asr #0x1f
mla r1, r0, r2, r1
mov r0, r3
mov r3, #0
mov r2, #0x3200000
bl _ll_sdiv
ldmia sp!, {r3, pc}
arm_func_end ov117_022638AC
arm_func_start ov117_022638D8
ov117_022638D8: ; 0x022638D8
stmfd sp!, {r3, r4, r5, lr}
sub sp, sp, #0x18
mov r5, r0
mov r0, #0xad
mov r1, #0x6e
bl sub_02006C24
mov r4, r0
str r4, [sp]
mov r0, #0x3a
str r0, [sp, #4]
mov r0, #0
str r0, [sp, #8]
mov r1, #1
str r1, [sp, #0xc]
ldr r0, _022639B4 ; =0x00002715
str r1, [sp, #0x10]
str r0, [sp, #0x14]
ldr r0, [r5, #0x8c]
ldr r2, [r5, #0x24]
ldr r3, [r5, #0x28]
mov r1, #2
bl sub_0200CDC4
mov r0, #0
str r0, [sp]
mov r1, #1
ldr r0, _022639B8 ; =0x00002713
str r1, [sp, #4]
str r0, [sp, #8]
ldr r0, [r5, #0x24]
ldr r1, [r5, #0x28]
mov r2, r4
mov r3, #0x37
bl sub_0200CC3C
mov r0, #0
str r0, [sp]
ldr r0, _022639B8 ; =0x00002713
mov r2, r4
str r0, [sp, #4]
ldr r0, [r5, #0x24]
ldr r1, [r5, #0x28]
mov r3, #0x39
bl sub_0200CE24
mov r0, #0
str r0, [sp]
ldr r0, _022639B8 ; =0x00002713
mov r2, r4
str r0, [sp, #4]
ldr r0, [r5, #0x24]
ldr r1, [r5, #0x28]
mov r3, #0x38
bl sub_0200CE54
mov r0, r4
bl sub_02006CA8
add sp, sp, #0x18
ldmia sp!, {r3, r4, r5, pc}
; .align 2, 0
_022639B4: .word 0x00002715
_022639B8: .word 0x00002713
arm_func_end ov117_022638D8
arm_func_start ov117_022639BC
ov117_022639BC: ; 0x022639BC
stmfd sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x28]
ldr r1, _022639F8 ; =0x00002713
bl sub_0200D070
ldr r0, [r4, #0x28]
ldr r1, _022639F8 ; =0x00002713
bl sub_0200D090
ldr r0, [r4, #0x28]
ldr r1, _022639F8 ; =0x00002713
bl sub_0200D0A0
ldr r0, [r4, #0x28]
ldr r1, _022639FC ; =0x00002715
bl sub_0200D080
ldmia sp!, {r4, pc}
; .align 2, 0
_022639F8: .word 0x00002713
_022639FC: .word 0x00002715
arm_func_end ov117_022639BC
arm_func_start ov117_02263A00
ov117_02263A00: ; 0x02263A00
stmfd sp!, {r4, r5, lr}
sub sp, sp, #0x34
ldr lr, _02263A68 ; =0x02266B38
mov r5, r0
ldmia lr!, {r0, r1, r2, r3}
add ip, sp, #0
mov r4, ip
stmia ip!, {r0, r1, r2, r3}
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldr r0, [lr]
mov r2, r4
str r0, [ip]
ldr r0, [r5, #0x24]
ldr r1, [r5, #0x28]
bl sub_0200CE6C
mov r4, r0
mov r1, #0
bl sub_0200D3F4
ldr r0, [r4, #0]
bl sub_0200D324
mov r0, r4
add sp, sp, #0x34
ldmia sp!, {r4, r5, pc}
; .align 2, 0
_02263A68: .word 0x02266B38
arm_func_end ov117_02263A00
arm_func_start ov117_02263A6C
ov117_02263A6C: ; 0x02263A6C
stmfd sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r2, [r6, #0x238]
mov r5, r1
cmp r2, #0
moveq r4, #0
beq _02263A94
mov r1, #0
bl ov117_022637AC
add r4, r0, #1
_02263A94:
ldr r1, [r6, #0x270]
ldr r0, _02263AE0 ; =0x02266B07
ldr r3, [r6, #0x21c]
ldrb r0, [r0, r1, lsl #2]
ldr r2, [r6, #0x230]
mov r1, r3, lsl #0x10
add r0, r0, r2, asr #12
mov r2, r0, lsl #0x10
mov r0, r5
mov r1, r1, asr #0x10
mov r2, r2, asr #0x10
mov r3, #0x160000
bl sub_0200D500
mov r0, r5
mov r1, r4
bl sub_0200D364
ldr r0, [r5, #0]
bl sub_0200D324
ldmia sp!, {r4, r5, r6, pc}
; .align 2, 0
_02263AE0: .word 0x02266B07
arm_func_end ov117_02263A6C
arm_func_start ov117_02263AE4
ov117_02263AE4: ; 0x02263AE4
ldr ip, _02263AEC ; =sub_0200D0F4
bx ip
; .align 2, 0
_02263AEC: .word sub_0200D0F4
arm_func_end ov117_02263AE4
.rodata
.global Unk_ov117_02266B04
Unk_ov117_02266B04: ; 0x02266B04
.incbin "incbin/overlay117_rodata.bin", 0x20C, 0x20D - 0x20C
.global Unk_ov117_02266B05
Unk_ov117_02266B05: ; 0x02266B05
.incbin "incbin/overlay117_rodata.bin", 0x20D, 0x21A - 0x20D
.global Unk_ov117_02266B12
Unk_ov117_02266B12: ; 0x02266B12
.incbin "incbin/overlay117_rodata.bin", 0x21A, 0x240 - 0x21A
.global Unk_ov117_02266B38
Unk_ov117_02266B38: ; 0x02266B38
.incbin "incbin/overlay117_rodata.bin", 0x240, 0x274 - 0x240

View File

@@ -1,46 +0,0 @@
.public sub_0200393C
.public sub_02005748
.public sub_02006AC0
.public sub_02018144
.public sub_020181C4
.public sub_020182F0
.public sub_0201CBCC
.public GF_AssertFail
.public NNS_G3dGeFlushBuffer
.public NNS_G3dGeBufferOP_N
.public NNS_G3dGetTex
.public GX_BeginLoadTexPltt
.public GX_LoadTexPltt
.public GX_EndLoadTexPltt
.public DC_FlushRange
.public MI_CpuFill8
.public MI_CpuCopy8
.public _s32_div_f
.public ov117_02261600
.public ov117_0226296C
.public ov117_02262998
.public ov117_022629E0
.public ov117_02262A38
.public ov117_02262A70
.public ov117_02262B98
.public ov117_02262C3C
.public ov117_02262C60
.public ov117_02262CB8
.public ov117_02262CE8
.public ov117_02262CFC
.public ov117_02262D4C
.public ov117_02262D98
.public ov117_02262E0C
.public ov117_02262E5C
.public ov117_02262EAC
.public ov117_02263270
.public ov117_0226334C
.public ov117_022638AC
.public ov117_022638D8
.public ov117_022639BC
.public ov117_02263A00
.public ov117_02263A6C
.public ov117_02263AE4
.public ov117_02263DC4
.public ov117_02264E14
.public ov117_02264E3C

View File

@@ -1,891 +0,0 @@
.include "macros/function.inc"
.include "overlay117/ov117_022626B0_thumb.inc"
.text
thumb_func_start ov117_022626B0
ov117_022626B0: ; 0x022626B0
push {r3, r4, r5, lr}
mov r1, #0x9e
add r5, r0, #0
mov r0, #0x6e
lsl r1, r1, #2
bl sub_02018144
mov r2, #0x9e
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
bl MI_CpuFill8
ldr r0, [r5, #0]
ldr r1, [r0, #0x34]
mov r0, #0x27
lsl r0, r0, #4
str r1, [r4, r0]
add r0, r4, #0
bl ov117_02262B98
add r0, r4, #0
blx ov117_02262E0C
add r0, r4, #0
blx ov117_02262E5C
ldr r0, [r5, #0]
ldr r0, [r0, #0x34]
cmp r0, #1
beq _02262706
cmp r0, #2
bne _0226271A
mov r1, #1
mov r0, #0x26
lsl r1, r1, #0x12
lsl r0, r0, #4
str r1, [r4, r0]
mov r1, #0x1a
lsl r1, r1, #0xe
add r0, r0, #4
str r1, [r4, r0]
b _02262728
_02262706:
mov r1, #9
mov r0, #0x26
lsl r1, r1, #0x10
lsl r0, r0, #4
str r1, [r4, r0]
mov r1, #7
lsl r1, r1, #0x10
add r0, r0, #4
str r1, [r4, r0]
b _02262728
_0226271A:
mov r1, #6
mov r0, #0x26
lsl r1, r1, #0x10
lsl r0, r0, #4
str r1, [r4, r0]
add r0, r0, #4
str r1, [r4, r0]
_02262728:
mov r0, #0x87
mov r1, #0x80
lsl r0, r0, #2
str r1, [r4, r0]
mov r1, #0x28
add r0, r0, #4
str r1, [r4, r0]
add r0, r5, #0
blx ov117_022638D8
add r0, r5, #0
blx ov117_02263A00
mov r1, #0x8d
lsl r1, r1, #2
str r0, [r4, r1]
ldr r1, [r4, r1]
add r0, r4, #0
blx ov117_02263A6C
mov r1, #2
mov r0, #0x92
lsl r1, r1, #0xc
lsl r0, r0, #2
str r1, [r4, r0]
add r0, r4, #0
pop {r3, r4, r5, pc}
; .align 2, 0
thumb_func_end ov117_022626B0
thumb_func_start ov117_02262760
ov117_02262760: ; 0x02262760
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x8d
add r4, r1, #0
lsl r0, r0, #2
ldr r0, [r4, r0]
blx ov117_02263AE4
add r0, r5, #0
blx ov117_022639BC
ldr r0, [r4, #0]
bl sub_020181C4
mov r0, #0x93
lsl r0, r0, #2
ldr r0, [r4, r0]
bl sub_020181C4
mov r0, #0x25
lsl r0, r0, #4
ldr r0, [r4, r0]
bl sub_020181C4
add r0, r4, #0
bl sub_020181C4
pop {r3, r4, r5, pc}
thumb_func_end ov117_02262760
thumb_func_start ov117_02262798
ov117_02262798: ; 0x02262798
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
mov r1, #0x91
add r5, r0, #0
mov r0, #0
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r5, #0x20]
cmp r0, #2
bne _022627D8
ldr r0, _02262938 ; =0x00001758
add r2, r1, #0
ldr r3, [r5, r0]
sub r2, #0x38
str r3, [r4, r2]
add r2, r0, #4
ldr r3, [r5, r2]
add r2, r1, #0
sub r2, #0x34
str r3, [r4, r2]
add r2, r0, #0
add r2, #8
ldr r3, [r5, r2]
add r2, r1, #0
sub r2, #0x30
str r3, [r4, r2]
add r0, #0xc
ldr r0, [r5, r0]
sub r1, #0x2c
str r0, [r4, r1]
b _02262820
_022627D8:
ldr r0, _0226293C ; =0x00002FB8
ldr r2, [r5, r0]
cmp r2, #0
beq _022627E8
add r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #1
bne _02262800
_022627E8:
mov r1, #0x83
lsl r1, r1, #2
mov r2, #0
str r2, [r4, r1]
add r0, r1, #4
str r2, [r4, r0]
add r0, r1, #0
add r0, #8
str r2, [r4, r0]
add r1, #0xc
str r2, [r4, r1]
b _02262820
_02262800:
ldr r2, _02262940 ; =0x021BF6BC
add r0, r1, #0
ldrh r3, [r2, #0x1c]
sub r0, #0x38
str r3, [r4, r0]
add r0, r1, #0
ldrh r3, [r2, #0x1e]
sub r0, #0x34
str r3, [r4, r0]
add r0, r1, #0
ldrh r3, [r2, #0x22]
sub r0, #0x30
sub r1, #0x2c
str r3, [r4, r0]
ldrh r0, [r2, #0x20]
str r0, [r4, r1]
_02262820:
add r0, r4, #0
blx ov117_02263270
mov r0, #0x85
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
bne _02262846
add r0, r4, #0
bl ov117_02262A38
ldr r0, [r4, #0x20]
cmp r0, #0
bne _02262846
bne _02262846
mov r0, #0x9d
mov r1, #0
lsl r0, r0, #2
strb r1, [r4, r0]
_02262846:
add r0, r4, #0
blx ov117_0226334C
add r0, r4, #0
bl ov117_02262A70
mov r1, #0x8d
lsl r1, r1, #2
ldr r1, [r4, r1]
add r0, r4, #0
blx ov117_02263A6C
mov r0, #0x9a
lsl r0, r0, #2
ldrsh r1, [r4, r0]
cmp r1, #0
ble _0226287C
add r1, #8
strh r1, [r4, r0]
ldrsh r1, [r4, r0]
cmp r1, #0x1e
ble _02262876
mov r1, #0x1e
strh r1, [r4, r0]
_02262876:
add r0, r4, #0
bl ov117_02262CFC
_0226287C:
ldr r0, _02262944 ; =0x00002FBC
ldr r1, [r5, r0]
cmp r1, #0
bne _02262934
sub r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #1
bne _02262934
mov r2, #0x91
lsl r2, r2, #2
ldr r1, [r4, r2]
cmp r1, #0
ble _02262934
add r0, r2, #0
add r0, #0x18
ldr r0, [r4, r0]
add r2, #0xdc
mov r7, #0
cmp r0, r2
bge _022628C4
add r0, r4, #0
bl ov117_02262CB8
cmp r0, #1
bne _022628D4
mov r0, #0x9a
mov r1, #8
lsl r0, r0, #2
strh r1, [r4, r0]
add r1, r7, #0
add r0, #0xd
strb r1, [r4, r0]
ldr r0, _02262948 ; =0x00000576
bl sub_02005748
b _022628D4
_022628C4:
add r0, r4, #0
bl ov117_02262CE8
mov r0, #0x9a
add r1, r7, #0
lsl r0, r0, #2
strh r1, [r4, r0]
mov r7, #1
_022628D4:
mov r1, #0x91
lsl r1, r1, #2
ldr r1, [r4, r1]
add r0, r4, #0
bl ov117_0226296C
add r6, r0, #0
cmp r7, #1
bne _022628F2
mov r0, #0x19
mul r0, r6
mov r1, #0x64
bl _s32_div_f
add r6, r6, r0
_022628F2:
ldr r1, _0226294C ; =0x00002FC8
add r0, r5, #0
ldr r1, [r5, r1]
add r2, r6, #0
add r3, sp, #0
bl ov117_02264E14
add r0, r5, #0
add r1, sp, #0
bl ov117_02264E3C
add r0, r5, #0
add r1, sp, #0
bl ov117_02263DC4
mov r1, #0x91
lsl r1, r1, #2
ldr r1, [r4, r1]
add r0, r4, #0
bl ov117_02262998
mov r2, #0x91
lsl r2, r2, #2
ldr r2, [r4, r2]
add r0, r5, #0
add r1, r4, #0
add r3, r7, #0
bl ov117_022629E0
mov r0, #0x91
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
_02262934:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
; .align 2, 0
_02262938: .word 0x00001758
_0226293C: .word 0x00002FB8
_02262940: .word 0x021BF6BC
_02262944: .word 0x00002FBC
_02262948: .word 0x00000576
_0226294C: .word 0x00002FC8
thumb_func_end ov117_02262798
thumb_func_start ov117_02262950
ov117_02262950: ; 0x02262950
push {r3, lr}
ldr r0, _02262968 ; =0x00000276
ldrb r2, [r1, r0]
cmp r2, #1
bne _02262964
mov r2, #0
strb r2, [r1, r0]
add r0, r1, #0
bl ov117_02262C3C
_02262964:
pop {r3, pc}
nop
_02262968: .word 0x00000276
thumb_func_end ov117_02262950
thumb_func_start ov117_0226296C
ov117_0226296C: ; 0x0226296C
cmp r1, #0x62
blt _02262976
mov r2, #0x4b
lsl r2, r2, #4
b _0226297A
_02262976:
mov r2, #0xa
mul r2, r1
_0226297A:
mov r1, #0x27
lsl r1, r1, #4
ldr r0, [r0, r1]
ldr r3, _02262990 ; =_s32_div_f
lsl r1, r0, #2
ldr r0, _02262994 ; =0x02266FD8
ldr r0, [r0, r1]
mov r1, #0x64
mul r0, r2
bx r3
nop
_02262990: .word _s32_div_f
_02262994: .word 0x02266FD8
thumb_func_end ov117_0226296C
thumb_func_start ov117_02262998
ov117_02262998: ; 0x02262998
mov r2, #0x91
lsl r2, r2, #2
ldr r1, [r0, r2]
cmp r1, #0x62
blt _022629B2
add r1, r2, #4
ldr r3, [r0, r1]
mov r1, #1
lsl r1, r1, #0xc
add r3, r3, r1
add r1, r2, #4
str r3, [r0, r1]
b _022629CC
_022629B2:
blt _022629C4
add r1, r2, #4
ldr r3, [r0, r1]
mov r1, #1
lsl r1, r1, #0xc
add r3, r3, r1
add r1, r2, #4
str r3, [r0, r1]
b _022629CC
_022629C4:
mov r3, #2
lsl r3, r3, #0xc
add r1, r2, #4
str r3, [r0, r1]
_022629CC:
mov r1, #0x92
lsl r1, r1, #2
mov r2, #0x11
ldr r3, [r0, r1]
lsl r2, r2, #0xc
cmp r3, r2
ble _022629DC
str r2, [r0, r1]
_022629DC:
bx lr
; .align 2, 0
thumb_func_end ov117_02262998
thumb_func_start ov117_022629E0
ov117_022629E0: ; 0x022629E0
push {r3, lr}
cmp r3, #1
bne _022629FE
mov r2, #0x91
lsl r2, r2, #2
ldr r2, [r1, r2]
cmp r2, #0x62
blt _022629FE
mov r1, #0
bl ov117_02261600
ldr r0, _02262A30 ; =0x0000057A
bl sub_02005748
pop {r3, pc}
_022629FE:
mov r2, #0x91
lsl r2, r2, #2
ldr r2, [r1, r2]
cmp r2, #0x62
bge _02262A2E
ldr r2, [r1, #0x20]
ldr r1, [r1, #0x10]
cmp r1, r2
bge _02262A1E
mov r1, #2
bl ov117_02261600
ldr r0, _02262A34 ; =0x00000578
bl sub_02005748
pop {r3, pc}
_02262A1E:
cmp r1, r2
ble _02262A2E
mov r1, #1
bl ov117_02261600
ldr r0, _02262A34 ; =0x00000578
bl sub_02005748
_02262A2E:
pop {r3, pc}
; .align 2, 0
_02262A30: .word 0x0000057A
_02262A34: .word 0x00000578
thumb_func_end ov117_022629E0
thumb_func_start ov117_02262A38
ov117_02262A38: ; 0x02262A38
push {r4, lr}
mov r1, #0x8e
add r4, r0, #0
lsl r1, r1, #2
ldr r2, [r4, r1]
cmp r2, #0
beq _02262A6C
mov r2, #0
str r2, [r4, r1]
sub r2, r2, #1
add r1, r1, #4
str r2, [r4, r1]
blx ov117_022638AC
mov r1, #9
lsl r1, r1, #6
ldr r2, [r4, r1]
sub r2, r2, r0
add r0, r1, #4
str r2, [r4, r0]
ldr r0, [r4, r0]
cmp r0, #0x19
bge _02262A6C
mov r2, #0
add r0, r1, #4
str r2, [r4, r0]
_02262A6C:
pop {r4, pc}
; .align 2, 0
thumb_func_end ov117_02262A38
thumb_func_start ov117_02262A70
ov117_02262A70: ; 0x02262A70
push {r4, r5, r6, lr}
sub sp, #0x38
add r5, r0, #0
ldr r0, _02262B80 ; =0x2D8B6127
add r1, sp, #0x1c
str r0, [sp, #0x1c]
mov r0, #0x32
mov r2, #1
bl NNS_G3dGeBufferOP_N
ldr r0, _02262B84 ; =0x00007FFF
add r1, sp, #0x18
str r0, [sp, #0x18]
mov r0, #0x33
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r1, #0
mov r0, #0x11
add r2, r1, #0
bl NNS_G3dGeBufferOP_N
mov r0, #0
str r0, [sp, #0x2c]
mov r0, #0x13
lsl r0, r0, #0xc
str r0, [sp, #0x30]
ldr r0, _02262B88 ; =0xFFFFB000
add r1, sp, #0x2c
str r0, [sp, #0x34]
mov r0, #0x1c
mov r2, #3
bl NNS_G3dGeBufferOP_N
mov r0, #0x99
lsl r0, r0, #2
ldr r4, [r5, r0]
add r0, r0, #6
ldrsh r0, [r5, r0]
mov r1, #0x64
mul r0, r4
bl _s32_div_f
mov r1, #0x26
lsl r1, r1, #4
add r6, r4, r0
add r0, r1, #0
ldr r4, [r5, r1]
add r0, #8
add r1, #0xc
ldrsh r2, [r5, r0]
ldrsh r0, [r5, r1]
mov r1, #0x64
add r0, r2, r0
mul r0, r4
bl _s32_div_f
add r0, r4, r0
str r0, [sp, #0x20]
mov r0, #1
lsl r0, r0, #0xc
str r0, [sp, #0x28]
mov r0, #0x1b
add r1, sp, #0x20
mov r2, #3
str r6, [sp, #0x24]
bl NNS_G3dGeBufferOP_N
mov r0, #3
str r0, [sp, #0x14]
mov r0, #0x10
add r1, sp, #0x14
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r1, #0
mov r0, #0x15
add r2, r1, #0
bl NNS_G3dGeBufferOP_N
mov r0, #2
str r0, [sp, #0x10]
mov r0, #0x10
add r1, sp, #0x10
mov r2, #1
bl NNS_G3dGeBufferOP_N
mov r0, #1
add r1, r0, #0
bl ov117_02262D4C
blx ov117_02262D98
ldr r1, [r5, #4]
mov r2, #1
ldr r0, [r1, #0x2c]
lsl r4, r0, #0x10
ldr r0, [r1, #8]
lsl r0, r0, #0x10
lsr r1, r0, #0x10
ldr r0, _02262B8C ; =0x1FFFFFFF
and r1, r0
ldr r0, _02262B90 ; =0x72400000
orr r0, r1
str r0, [sp, #0xc]
mov r0, #0x2a
add r1, sp, #0xc
bl NNS_G3dGeBufferOP_N
lsr r0, r4, #0x11
str r0, [sp, #8]
mov r0, #0x2b
add r1, sp, #8
mov r2, #1
bl NNS_G3dGeBufferOP_N
ldr r0, _02262B94 ; =0x001F00C1
add r1, sp, #4
str r0, [sp, #4]
mov r0, #0x29
mov r2, #1
bl NNS_G3dGeBufferOP_N
add r0, r5, #0
blx ov117_02262EAC
mov r2, #1
mov r0, #0x12
add r1, sp, #0
str r2, [sp]
bl NNS_G3dGeBufferOP_N
bl NNS_G3dGeFlushBuffer
add sp, #0x38
pop {r4, r5, r6, pc}
; .align 2, 0
_02262B80: .word 0x2D8B6127
_02262B84: .word 0x00007FFF
_02262B88: .word 0xFFFFB000
_02262B8C: .word 0x1FFFFFFF
_02262B90: .word 0x72400000
_02262B94: .word 0x001F00C1
thumb_func_end ov117_02262A70
thumb_func_start ov117_02262B98
ov117_02262B98: ; 0x02262B98
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0xad
mov r1, #0x1d
mov r2, #0x6e
bl sub_02006AC0
str r0, [r5, #0]
bl NNS_G3dGetTex
str r0, [r5, #4]
bl sub_0201CBCC
ldr r6, [r5, #4]
ldrh r0, [r6, #0x30]
ldr r7, [r6, #0x38]
lsl r4, r0, #3
ldr r0, [r6, #0x2c]
lsl r0, r0, #0x10
lsr r0, r0, #0xd
str r0, [sp]
mov r0, #0x93
lsl r0, r0, #2
ldr r0, [r5, r0]
cmp r0, #0
beq _02262BD0
bl GF_AssertFail
_02262BD0:
mov r0, #0x6e
add r1, r4, #0
bl sub_02018144
mov r1, #0x93
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0x6e
add r1, r4, #0
bl sub_02018144
mov r1, #0x25
lsl r1, r1, #4
str r0, [r5, r1]
sub r1, r1, #4
ldr r1, [r5, r1]
add r0, r6, r7
add r2, r4, #0
bl MI_CpuCopy8
mov r1, #0x25
lsl r1, r1, #4
ldr r1, [r5, r1]
add r0, r6, r7
add r2, r4, #0
bl MI_CpuCopy8
mov r0, #0x25
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r4, #0
bl DC_FlushRange
mov r1, #0x96
ldr r0, [sp]
lsl r1, r1, #2
str r0, [r5, r1]
sub r0, r1, #4
str r4, [r5, r0]
ldr r0, [r5, #4]
ldr r0, [r0, #0x14]
cmp r0, #0
bne _02262C2A
bl GF_AssertFail
_02262C2A:
ldr r2, [r5, #4]
ldr r0, [r5, #0]
ldr r1, [r2, #0x14]
add r1, r2, r1
sub r1, r1, r0
bl sub_020182F0
pop {r3, r4, r5, r6, r7, pc}
; .align 2, 0
thumb_func_end ov117_02262B98
thumb_func_start ov117_02262C3C
ov117_02262C3C: ; 0x02262C3C
push {r4, lr}
add r4, r0, #0
bl GX_BeginLoadTexPltt
mov r2, #0x25
lsl r2, r2, #4
add r1, r2, #0
ldr r0, [r4, r2]
add r1, #8
add r2, r2, #4
ldr r1, [r4, r1]
ldr r2, [r4, r2]
bl GX_LoadTexPltt
bl GX_EndLoadTexPltt
pop {r4, pc}
; .align 2, 0
thumb_func_end ov117_02262C3C
thumb_func_start ov117_02262C60
ov117_02262C60: ; 0x02262C60
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
lsl r0, r1, #1
add r0, r1, r0
mov r1, #0x32
lsl r0, r0, #0xa
lsl r1, r1, #4
bl _s32_div_f
add r0, #0x80
asr r3, r0, #8
cmp r3, #0x10
ble _02262C7E
mov r3, #0x10
_02262C7E:
mov r2, #0x93
mov r0, #0x1f
lsl r2, r2, #2
str r0, [sp]
add r1, r2, #4
ldr r0, [r4, r2]
add r2, #8
ldr r2, [r4, r2]
lsl r3, r3, #0x18
lsl r2, r2, #0xf
ldr r1, [r4, r1]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
bl sub_0200393C
mov r1, #0x25
lsl r1, r1, #4
ldr r0, [r4, r1]
add r1, r1, #4
ldr r1, [r4, r1]
bl DC_FlushRange
ldr r0, _02262CB4 ; =0x00000276
mov r1, #1
strb r1, [r4, r0]
add sp, #4
pop {r3, r4, pc}
; .align 2, 0
_02262CB4: .word 0x00000276
thumb_func_end ov117_02262C60
thumb_func_start ov117_02262CB8
ov117_02262CB8: ; 0x02262CB8
push {r4, lr}
mov r2, #0x97
lsl r2, r2, #2
ldr r3, [r0, r2]
mov r4, #0
add r1, r3, r1
str r1, [r0, r2]
add r1, r2, #0
ldr r3, [r0, r2]
add r1, #0xc4
cmp r3, r1
blt _02262CD8
add r1, r2, #0
add r1, #0xc4
str r1, [r0, r2]
mov r4, #1
_02262CD8:
mov r1, #0x97
lsl r1, r1, #2
ldr r1, [r0, r1]
bl ov117_02262C60
add r0, r4, #0
pop {r4, pc}
; .align 2, 0
thumb_func_end ov117_02262CB8
thumb_func_start ov117_02262CE8
ov117_02262CE8: ; 0x02262CE8
mov r1, #0x97
ldr r3, _02262CF8 ; =ov117_02262C60
mov r2, #0
lsl r1, r1, #2
str r2, [r0, r1]
ldr r1, [r0, r1]
bx r3
nop
_02262CF8: .word ov117_02262C60
thumb_func_end ov117_02262CE8
thumb_func_start ov117_02262CFC
ov117_02262CFC: ; 0x02262CFC
push {r4, lr}
mov r2, #0x9a
add r4, r0, #0
lsl r2, r2, #2
ldrsh r1, [r4, r2]
cmp r1, #0
beq _02262D44
add r1, r2, #0
add r1, #0xd
ldrb r1, [r4, r1]
add r3, r1, #1
add r1, r2, #0
add r1, #0xd
strb r3, [r4, r1]
add r1, r2, #0
add r1, #0xd
ldrb r1, [r4, r1]
cmp r1, #4
bne _02262D32
sub r2, #0xc
ldr r2, [r4, r2]
lsr r1, r2, #0x1f
add r1, r2, r1
asr r1, r1, #1
bl ov117_02262C60
pop {r4, pc}
_02262D32:
cmp r1, #8
bne _02262D44
sub r2, #0xc
ldr r1, [r4, r2]
bl ov117_02262C60
ldr r0, _02262D48 ; =0x00000275
mov r1, #0
strb r1, [r4, r0]
_02262D44:
pop {r4, pc}
nop
_02262D48: .word 0x00000275
thumb_func_end ov117_02262CFC
thumb_func_start ov117_02262D4C
ov117_02262D4C: ; 0x02262D4C
push {r4, lr}
sub sp, #8
add r4, r1, #0
cmp r0, #0
beq _02262D5A
mov r0, #1
b _02262D5C
_02262D5A:
mov r0, #0
_02262D5C:
lsl r1, r0, #0xf
ldr r0, _02262D90 ; =0x21085EF7
mov r2, #1
orr r0, r1
str r0, [sp, #4]
mov r0, #0x30
add r1, sp, #4
bl NNS_G3dGeBufferOP_N
cmp r4, #0
beq _02262D76
mov r0, #1
b _02262D78
_02262D76:
mov r0, #0
_02262D78:
lsl r1, r0, #0xf
ldr r0, _02262D94 ; =0x00007FFF
mov r2, #1
orr r0, r1
str r0, [sp]
mov r0, #0x31
add r1, sp, #0
bl NNS_G3dGeBufferOP_N
add sp, #8
pop {r4, pc}
nop
_02262D90: .word 0x21085EF7
_02262D94: .word 0x00007FFF
thumb_func_end ov117_02262D4C

View File

@@ -5423,193 +5423,6 @@ _02266494:
; .align 2, 0
thumb_func_end ov117_02266440
thumb_func_start ov117_02266498
ov117_02266498: ; 0x02266498
push {r3, r4, r5, lr}
mov r1, #0xc
mov r2, #0x6e
add r5, r0, #0
bl sub_0200681C
mov r1, #0
mov r2, #0xc
add r4, r0, #0
bl MI_CpuFill8
add r0, r5, #0
bl sub_02006840
str r0, [r4, #0]
mov r0, #1
pop {r3, r4, r5, pc}
; .align 2, 0
thumb_func_end ov117_02266498
thumb_func_start ov117_022664BC
ov117_022664BC: ; 0x022664BC
push {r3, r4, r5, lr}
add r5, r1, #0
bl sub_0200682C
add r4, r0, #0
ldr r0, [r4, #0]
add r1, r0, #0
add r1, #0x3d
ldrb r1, [r1]
cmp r1, #1
bne _02266542
add r1, r0, #0
add r1, #0x3e
ldrb r1, [r1]
cmp r1, #0
beq _022664E4
cmp r1, #1
beq _02266506
cmp r1, #2
b _0226651E
_022664E4:
bl sub_0200F2AC
cmp r0, #1
bne _022664F0
bl sub_0200F2C0
_022664F0:
mov r0, #0
bl sub_0200F370
ldr r1, [r4, #0]
add r0, r1, #0
add r0, #0x3e
ldrb r0, [r0]
add r1, #0x3e
add r0, r0, #1
strb r0, [r1]
b _0226653E
_02266506:
bl ov114_0225CA98
cmp r0, #1
bne _0226653E
ldr r1, [r4, #0]
add r0, r1, #0
add r0, #0x3e
ldrb r0, [r0]
add r1, #0x3e
add r0, r0, #1
strb r0, [r1]
b _0226653E
_0226651E:
ldr r0, [r4, #4]
cmp r0, #0
beq _0226652C
bl ov114_0225C838
mov r0, #0
str r0, [r4, #4]
_0226652C:
ldr r0, [r4, #8]
cmp r0, #0
beq _0226653A
bl ov114_0225C904
mov r0, #0
str r0, [r4, #8]
_0226653A:
mov r0, #1
pop {r3, r4, r5, pc}
_0226653E:
mov r0, #0
pop {r3, r4, r5, pc}
_02266542:
ldr r1, [r5, #0]
cmp r1, #5
bhi _022665E0
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02266554: ; jump table
.short _02266560 - _02266554 - 2 ; case 0
.short _02266574 - _02266554 - 2 ; case 1
.short _02266584 - _02266554 - 2 ; case 2
.short _022665A8 - _02266554 - 2 ; case 3
.short _022665BC - _02266554 - 2 ; case 4
.short _022665E0 - _02266554 - 2 ; case 5
_02266560:
add r0, #0x31
ldrb r0, [r0]
cmp r0, #0
bne _0226656E
mov r0, #1
str r0, [r5, #0]
b _022665E4
_0226656E:
mov r0, #3
str r0, [r5, #0]
b _022665E4
_02266574:
mov r1, #0x6e
bl ov114_0225C82C
str r0, [r4, #4]
ldr r0, [r5, #0]
add r0, r0, #1
str r0, [r5, #0]
b _022665E4
_02266584:
ldr r0, [r4, #4]
bl ov114_0225C8BC
cmp r0, #1
bne _022665E4
ldr r0, [r4, #4]
bl ov114_0225C8CC
ldr r1, [r4, #0]
str r0, [r1, #0x34]
ldr r0, [r4, #4]
bl ov114_0225C838
mov r0, #0
str r0, [r4, #4]
mov r0, #5
str r0, [r5, #0]
b _022665E4
_022665A8:
add r1, r0, #0
add r1, #0x10
mov r2, #0x6e
bl ov114_0225C8F8
str r0, [r4, #8]
ldr r0, [r5, #0]
add r0, r0, #1
str r0, [r5, #0]
b _022665E4
_022665BC:
ldr r0, [r4, #8]
bl ov114_0225C9A0
cmp r0, #1
bne _022665E4
ldr r0, [r4, #8]
bl ov114_0225C9A4
ldr r1, [r4, #0]
str r0, [r1, #0x38]
ldr r0, [r4, #8]
bl ov114_0225C904
mov r0, #0
str r0, [r4, #8]
mov r0, #5
str r0, [r5, #0]
b _022665E4
_022665E0:
mov r0, #1
pop {r3, r4, r5, pc}
_022665E4:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end ov117_022664BC
thumb_func_start ov117_022665E8
ov117_022665E8: ; 0x022665E8
push {r4, lr}
add r4, r0, #0
bl sub_0200682C
add r0, r4, #0
bl sub_02006830
mov r0, #1
pop {r4, pc}
; .align 2, 0
thumb_func_end ov117_022665E8
.rodata
.global Unk_ov117_02266B6C

View File

@@ -1,4 +0,0 @@
.public GF_AssertFail
.public sub_02032798
.public sub_020359DC
.public ov117_02262044

View File

@@ -1,145 +0,0 @@
.include "macros/function.inc"
.include "overlay117/ov117_022665FC.inc"
.text
thumb_func_start ov117_022665FC
ov117_022665FC: ; 0x022665FC
ldr r3, _02266608 ; =sub_02032798
add r2, r0, #0
ldr r0, _0226660C ; =0x02266FE4
mov r1, #4
bx r3
nop
_02266608: .word sub_02032798
_0226660C: .word 0x02266FE4
thumb_func_end ov117_022665FC
thumb_func_start ov117_02266610
ov117_02266610: ; 0x02266610
mov r0, #0x14
bx lr
thumb_func_end ov117_02266610
thumb_func_start ov117_02266614
ov117_02266614: ; 0x02266614
mov r0, #4
bx lr
thumb_func_end ov117_02266614
thumb_func_start ov117_02266618
ov117_02266618: ; 0x02266618
add r1, r0, #0
add r0, r3, #0
ldr r3, _02266620 ; =ov117_02262044
bx r3
; .align 2, 0
_02266620: .word ov117_02262044
thumb_func_end ov117_02266618
thumb_func_start ov117_02266624
ov117_02266624: ; 0x02266624
push {r3, lr}
mov r0, #0x18
mov r2, #0x14
bl sub_020359DC
cmp r0, #1
bne _02266636
mov r0, #1
pop {r3, pc}
_02266636:
mov r0, #0
pop {r3, pc}
; .align 2, 0
thumb_func_end ov117_02266624
thumb_func_start ov117_0226663C
ov117_0226663C: ; 0x0226663C
mov r0, #0xbf
mov r1, #1
lsl r0, r0, #6
str r1, [r3, r0]
bx lr
; .align 2, 0
thumb_func_end ov117_0226663C
thumb_func_start ov117_02266648
ov117_02266648: ; 0x02266648
push {r3, lr}
mov r1, #0
mov r0, #0x19
add r2, r1, #0
bl sub_020359DC
cmp r0, #1
bne _0226665C
mov r0, #1
pop {r3, pc}
_0226665C:
mov r0, #0
pop {r3, pc}
thumb_func_end ov117_02266648
thumb_func_start ov117_02266660
ov117_02266660: ; 0x02266660
push {r4, r5, r6, lr}
add r4, r3, #0
ldr r3, [r4, #0]
ldr r1, [r2, #0]
add r5, r3, #0
add r5, #0x30
ldrb r5, [r5]
mov r2, #0
cmp r5, #0
ble _0226668E
_02266674:
add r6, r3, #0
add r6, #0x2c
ldrb r6, [r6]
cmp r0, r6
bne _02266686
lsl r0, r2, #2
add r0, r4, r0
str r1, [r0, #0xc]
b _0226668E
_02266686:
add r2, r2, #1
add r3, r3, #1
cmp r2, r5
blt _02266674
_0226668E:
ldr r0, [r4, #0]
add r0, #0x30
ldrb r0, [r0]
cmp r2, r0
blt _0226669C
bl GF_AssertFail
_0226669C:
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
pop {r4, r5, r6, pc}
thumb_func_end ov117_02266660
thumb_func_start ov117_022666A4
ov117_022666A4: ; 0x022666A4
push {r3, lr}
mov r0, #0x64
str r0, [sp]
mov r0, #0x17
add r1, sp, #0
mov r2, #4
bl sub_020359DC
cmp r0, #1
bne _022666BC
mov r0, #1
pop {r3, pc}
_022666BC:
mov r0, #0
pop {r3, pc}
thumb_func_end ov117_022666A4
.rodata
.global Unk_ov117_02266FE4
Unk_ov117_02266FE4: ; 0x02266FE4
.incbin "incbin/overlay117_rodata.bin", 0x6EC, 0x71C - 0x6EC

View File

@@ -1,7 +0,0 @@
.public sub_0203608C
.public MI_CpuFill8
.public ov117_02262130
.public ov117_0226238C
.public ov117_02263AF0
.public ov117_02263DC4
.public ov117_02264808

View File

@@ -1,333 +0,0 @@
.include "macros/function.inc"
.include "overlay117/ov117_022666C0.inc"
.text
thumb_func_start ov117_022666C0
ov117_022666C0: ; 0x022666C0
push {r4, lr}
add r4, r1, #0
ldr r2, [r4, #0]
lsl r3, r2, #2
ldr r2, _022666E4 ; =0x02267014
ldr r2, [r2, r3]
cmp r2, #0
beq _022666E0
blx r2
add r0, r4, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #1
pop {r4, pc}
_022666E0:
mov r0, #0
pop {r4, pc}
; .align 2, 0
_022666E4: .word 0x02267014
thumb_func_end ov117_022666C0
thumb_func_start ov117_022666E8
ov117_022666E8: ; 0x022666E8
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
add r4, r1, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #1
str r0, [sp]
add r2, sp, #4
ldmia r4!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r5, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end ov117_022666E8
thumb_func_start ov117_02266714
ov117_02266714: ; 0x02266714
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
bl sub_0203608C
ldrb r1, [r4, #4]
cmp r1, r0
beq _0226672C
add r0, r5, #0
add r1, r4, #4
bl ov117_02263DC4
_0226672C:
pop {r3, r4, r5, pc}
; .align 2, 0
thumb_func_end ov117_02266714
thumb_func_start ov117_02266730
ov117_02266730: ; 0x02266730
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r6, r0, #0
add r5, r1, #0
add r4, r2, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #2
str r0, [sp]
add r0, sp, #0
strh r5, [r0, #4]
mov r1, #5
strb r1, [r0, #6]
strb r4, [r0, #7]
add r0, r6, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r3, r4, r5, r6, pc}
; .align 2, 0
thumb_func_end ov117_02266730
thumb_func_start ov117_02266760
ov117_02266760: ; 0x02266760
push {r3, r4, r5, lr}
add r4, r1, #0
ldr r1, _02266780 ; =0x00002FD0
add r5, r0, #0
ldr r2, [r5, r1]
add r2, r2, #1
str r2, [r5, r1]
bl ov117_02264808
ldrb r1, [r4, #6]
ldrb r2, [r4, #7]
add r0, r5, #0
bl ov117_0226238C
pop {r3, r4, r5, pc}
nop
_02266780: .word 0x00002FD0
thumb_func_end ov117_02266760
thumb_func_start ov117_02266784
ov117_02266784: ; 0x02266784
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r0, #0
add r5, r1, #0
add r4, r2, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
add r6, r3, #0
bl MI_CpuFill8
mov r0, #3
str r0, [sp]
add r0, sp, #0
strh r5, [r0, #4]
strb r4, [r0, #6]
mov r1, #4
strb r1, [r0, #7]
strb r6, [r0, #8]
add r0, r7, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r4, r5, r6, r7, pc}
; .align 2, 0
thumb_func_end ov117_02266784
thumb_func_start ov117_022667B8
ov117_022667B8: ; 0x022667B8
push {r3, r4, r5, lr}
add r4, r1, #0
ldrh r1, [r4, #4]
add r5, r0, #0
ldr r0, _022667E8 ; =0x00002FC8
ldr r3, _022667EC ; =0x00001428
str r1, [r5, r0]
ldr r1, [r5, #0]
ldrb r2, [r4, #6]
add r1, #0x30
ldrb r1, [r1]
ldr r0, [r5, #0x2c]
add r3, r5, r3
bl ov117_02263AF0
ldr r0, _022667F0 ; =0x00002FCC
mov r1, #1
str r1, [r5, r0]
ldrb r1, [r4, #7]
ldrb r2, [r4, #8]
add r0, r5, #0
bl ov117_0226238C
pop {r3, r4, r5, pc}
; .align 2, 0
_022667E8: .word 0x00002FC8
_022667EC: .word 0x00001428
_022667F0: .word 0x00002FCC
thumb_func_end ov117_022667B8
thumb_func_start ov117_022667F4
ov117_022667F4: ; 0x022667F4
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
add r4, r1, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #4
str r0, [sp]
mov r1, #2
add r0, sp, #0
strb r1, [r0, #4]
strb r4, [r0, #5]
add r0, r5, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r4, r5, pc}
; .align 2, 0
thumb_func_end ov117_022667F4
thumb_func_start ov117_02266820
ov117_02266820: ; 0x02266820
add r2, r1, #0
mov r1, #3
str r1, [r0, #0x20]
ldrb r1, [r2, #4]
ldr r3, _02266830 ; =ov117_0226238C
ldrb r2, [r2, #5]
bx r3
nop
_02266830: .word ov117_0226238C
thumb_func_end ov117_02266820
thumb_func_start ov117_02266834
ov117_02266834: ; 0x02266834
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
add r4, r1, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #5
str r0, [sp]
mov r1, #3
add r0, sp, #0
strb r1, [r0, #4]
strb r4, [r0, #5]
add r0, r5, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r4, r5, pc}
; .align 2, 0
thumb_func_end ov117_02266834
thumb_func_start ov117_02266860
ov117_02266860: ; 0x02266860
add r3, r1, #0
ldr r1, _02266874 ; =0x00002FBC
mov r2, #1
str r2, [r0, r1]
mov r1, #6
str r1, [r0, #0x20]
ldrb r1, [r3, #4]
ldrb r2, [r3, #5]
ldr r3, _02266878 ; =ov117_0226238C
bx r3
; .align 2, 0
_02266874: .word 0x00002FBC
_02266878: .word ov117_0226238C
thumb_func_end ov117_02266860
thumb_func_start ov117_0226687C
ov117_0226687C: ; 0x0226687C
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r6, r0, #0
add r5, r1, #0
add r4, r2, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #6
str r0, [sp]
add r0, sp, #0
strb r5, [r0, #4]
strb r4, [r0, #5]
add r0, r6, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r3, r4, r5, r6, pc}
; .align 2, 0
thumb_func_end ov117_0226687C
thumb_func_start ov117_022668A8
ov117_022668A8: ; 0x022668A8
ldr r3, _022668B4 ; =ov117_0226238C
add r2, r1, #0
ldrb r1, [r2, #4]
ldrb r2, [r2, #5]
bx r3
nop
_022668B4: .word ov117_0226238C
thumb_func_end ov117_022668A8
thumb_func_start ov117_022668B8
ov117_022668B8: ; 0x022668B8
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
add r4, r1, #0
add r0, sp, #0
mov r1, #0
mov r2, #0x14
bl MI_CpuFill8
mov r0, #7
str r0, [sp]
mov r1, #6
add r0, sp, #0
strb r1, [r0, #4]
strb r4, [r0, #5]
add r0, r5, #0
add r1, sp, #0
bl ov117_02262130
add sp, #0x14
pop {r4, r5, pc}
; .align 2, 0
thumb_func_end ov117_022668B8
thumb_func_start ov117_022668E4
ov117_022668E4: ; 0x022668E4
add r2, r1, #0
mov r1, #1
str r1, [r0, #0x20]
ldrb r1, [r2, #4]
ldr r3, _022668F4 ; =ov117_0226238C
ldrb r2, [r2, #5]
bx r3
nop
_022668F4: .word ov117_0226238C
thumb_func_end ov117_022668E4
; 0x022668F8
.rodata
.global Unk_ov117_02267014
Unk_ov117_02267014: ; 0x02267014
.incbin "incbin/overlay117_rodata.bin", 0x71C, 0x73C - 0x71C
.bss
.space 0x0

View File

@@ -2166,13 +2166,13 @@ Overlay overlay116
Overlay overlay117
{
After overlay114
Object asm/overlay117/ov117_02260440.o
Object asm/overlay117/ov117_02260668.o
Object asm/overlay117/ov117_022626B0_thumb.o
Object asm/overlay117/ov117_022626B0_arm.o
Object src/overlay117/ov117_02260440.o
Object src/overlay117/ov117_02260668.o
Object src/overlay117/ov117_022626B0.o
Object asm/overlay117/ov117_02263AF0.o
Object asm/overlay117/ov117_022665FC.o
Object asm/overlay117/ov117_022666C0.o
Object src/overlay117/ov117_02266498.o
Object src/overlay117/ov117_022665FC.o
Object src/overlay117/ov117_022666C0.o
}
Overlay overlay118

View File

@@ -0,0 +1,181 @@
#include <nitro.h>
#include <string.h>
#include <dwc.h>
#include "struct_decls/struct_020067E8_decl.h"
#include "struct_defs/struct_0208BE5C.h"
#include "overlay117/struct_ov117_02260440.h"
#include "overlay117/struct_ov117_022605C0.h"
#include "unk_020067E8.h"
#include "unk_02017E74.h"
#include "unk_020329E0.h"
#include "unk_02034198.h"
#include "unk_020363E8.h"
#include "unk_020366A0.h"
#include "overlay004/ov4_021D0D80.h"
#include "overlay114/ov114_0225C700.h"
#include "overlay117/ov117_02260440.h"
#include "overlay117/ov117_02260668.h"
#include "overlay117/ov117_02266498.h"
static const UnkStruct_0208BE5C Unk_ov117_022668F8 = {
ov117_02260668,
ov117_0226098C,
ov117_02260C10,
0xFFFFFFFF
};
static const UnkStruct_0208BE5C Unk_ov117_02266908 = {
ov117_02266498,
ov117_022664BC,
ov117_022665E8,
0xFFFFFFFF
};
static void ov117_022605D8(UnkStruct_ov117_022605C0 * param0, UnkStruct_ov117_02260440 * param1);
static BOOL ov117_02260630(UnkStruct_ov117_022605C0 * param0);
int ov117_02260440 (UnkStruct_020067E8 * param0, int * param1)
{
UnkStruct_ov117_02260440 * v0 = sub_02006840(param0);
UnkStruct_ov117_022605C0 * v1;
sub_02017FC8(3, 110, 0x60000);
v1 = sub_0200681C(param0, sizeof(UnkStruct_ov117_022605C0), 110);
MI_CpuClear8(v1, sizeof(UnkStruct_ov117_022605C0));
ov117_022605D8(v1, v0);
return 1;
}
int ov117_02260474 (UnkStruct_020067E8 * param0, int * param1)
{
UnkStruct_ov117_022605C0 * v0 = sub_0200682C(param0);
UnkStruct_ov117_02260440 * v1 = sub_02006840(param0);
if (ov117_02260630(v0) == 1) {
return 1;
}
switch (*param1) {
case 0:
v0->unk_31 = 0;
v0->unk_28 = sub_020067E8(&Unk_ov117_02266908, v0, 110);
(*param1)++;
break;
case 1:
if (sub_02006844(v0->unk_28) == 1) {
sub_02006814(v0->unk_28);
v0->unk_28 = NULL;
(*param1)++;
}
break;
case 2:
v0->unk_31 = 1;
v0->unk_28 = sub_020067E8(&Unk_ov117_022668F8, v0, 110);
(*param1)++;
break;
case 3:
if (sub_02006844(v0->unk_28) == 1) {
sub_02006814(v0->unk_28);
v0->unk_28 = NULL;
(*param1)++;
}
break;
case 4:
if (v1->unk_38) {
ov4_021D1F18();
}
v0->unk_31 = 2;
v0->unk_28 = sub_020067E8(&Unk_ov117_02266908, v0, 110);
(*param1)++;
break;
case 5:
if (sub_02006844(v0->unk_28) == 1) {
sub_02006814(v0->unk_28);
v0->unk_28 = NULL;
if (v0->unk_38 == 1) {
(*param1) = 0;
} else {
(*param1)++;
}
}
break;
case 6:
sub_020388F4(0, 1);
sub_020364F0(222);
(*param1)++;
break;
case 7:
if ((sub_02036540(222) == 1) || (sub_02035E18() < sub_02032E64())) {
(*param1)++;
}
break;
case 8:
default:
return 1;
}
return 0;
}
int ov117_022605C0 (UnkStruct_020067E8 * param0, int * param1)
{
UnkStruct_ov117_022605C0 * v0 = sub_0200682C(param0);
sub_02006830(param0);
sub_0201807C(110);
return 1;
}
static void ov117_022605D8 (UnkStruct_ov117_022605C0 * param0, UnkStruct_ov117_02260440 * param1)
{
int v0, v1, v2, v3;
v3 = sub_0203608C();
v2 = 0;
v1 = 0;
for (v0 = 0; v0 < 4; v0++) {
if (sub_02032EE8(v0) != NULL) {
param0->unk_2C[v1] = v0;
if (v0 == v3) {
v2 = v1;
}
v1++;
} else {
param0->unk_2C[v0] = 0xffff;
}
}
param0->unk_30 = v1;
param0->unk_3C = param1->unk_38;
ov114_0225C700(&param0->unk_00, param1->unk_39, param1->unk_34, param1->unk_38, &param1->unk_00);
}
static BOOL ov117_02260630 (UnkStruct_ov117_022605C0 * param0)
{
if (param0->unk_3D == 0) {
if (ov114_0225CA54(&param0->unk_00) == 1) {
param0->unk_3D = 1;
}
}
if (param0->unk_3D == 1) {
if (param0->unk_28 == NULL) {
return 1;
}
}
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,970 @@
#include <nitro.h>
#include <string.h>
#include "data_021BF67C.h"
#include "inlines.h"
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_defs/struct_0200D0F4.h"
#include "overlay104/struct_ov104_0223F9E0.h"
#include "overlay117/struct_ov117_02261280.h"
#include "overlay117/struct_ov117_02264E84.h"
#include "unk_02002F38.h"
#include "unk_02005474.h"
#include "unk_020068C8.h"
#include "unk_0200C6E4.h"
#include "unk_02017E74.h"
#include "unk_0201C970.h"
#include "overlay117/ov117_02260668.h"
#include "overlay117/ov117_022626B0.h"
#include "overlay117/ov117_02263AF0.h"
typedef struct {
fx32 unk_00;
fx32 unk_04;
} UnkStruct_ov117_022626B0_sub1_sub1;
typedef struct {
UnkStruct_ov117_022626B0_sub1_sub1 unk_00;
UnkStruct_ov117_022626B0_sub1_sub1 unk_08;
UnkStruct_ov117_022626B0_sub1_sub1 unk_10;
UnkStruct_ov117_022626B0_sub1_sub1 unk_18;
} UnkStruct_ov117_022626B0_sub1;
typedef struct {
UnkStruct_ov117_022626B0_sub1_sub1 unk_00;
UnkStruct_ov117_022626B0_sub1_sub1 unk_08;
UnkStruct_ov117_022626B0_sub1_sub1 unk_10;
UnkStruct_ov117_022626B0_sub1_sub1 unk_18;
} UnkStruct_ov117_022626B0_sub2;
typedef struct UnkStruct_ov117_022626B0_t {
NNSG3dResFileHeader * unk_00;
NNSG3dResTex * unk_04;
u16 unk_08;
UnkStruct_ov117_022626B0_sub1 unk_0C[8];
UnkStruct_ov117_022626B0_sub2 unk_10C[8];
int unk_20C;
int unk_210;
int unk_214;
int unk_218;
int unk_21C;
int unk_220;
int unk_224;
int unk_228;
int unk_22C;
fx32 unk_230;
UnkStruct_0200D0F4 * unk_234;
int unk_238;
int unk_23C;
int unk_240;
int unk_244;
fx32 unk_248;
u16 * unk_24C;
u16 * unk_250;
u32 unk_254;
u32 unk_258;
s32 unk_25C;
fx32 unk_260;
fx32 unk_264;
s16 unk_268;
s16 unk_26A;
s16 unk_26C;
int unk_270;
u8 unk_274;
u8 unk_275;
u8 unk_276;
} UnkStruct_ov117_022626B0;
static void ov117_02262B98(UnkStruct_ov117_022626B0 * param0);
static void ov117_02262E0C(UnkStruct_ov117_022626B0 * param0);
static void ov117_02262E5C(UnkStruct_ov117_022626B0 * param0);
static void ov117_02262EAC(UnkStruct_ov117_022626B0 * param0);
static void ov117_02262A70(UnkStruct_ov117_022626B0 * param0);
static BOOL ov117_02263270(UnkStruct_ov117_022626B0 * param0);
static int ov117_0226334C(UnkStruct_ov117_022626B0 * param0);
static int ov117_02263448(UnkStruct_ov117_022626B0 * param0, int param1, fx32 param2);
static int ov117_022637AC(UnkStruct_ov117_022626B0 * param0, int param1);
static int ov117_022637E4(UnkStruct_ov117_022626B0 * param0, fx32 param1, fx32 param2, fx32 param3, fx32 * param4, fx32 * param5);
static fx32 ov117_0226384C(UnkStruct_ov117_022626B0 * param0);
static int ov117_022638AC(UnkStruct_ov117_022626B0 * param0);
static void ov117_02263168(fx32 param0, fx32 param1, fx16 * param2, fx16 * param3);
static void ov117_02262A38(UnkStruct_ov117_022626B0 * param0);
static int ov117_0226296C(UnkStruct_ov117_022626B0 * param0, int param1);
static void ov117_02262998(UnkStruct_ov117_022626B0 * param0, int param1);
static void ov117_02262C3C(UnkStruct_ov117_022626B0 * param0);
static void ov117_02262C60(UnkStruct_ov117_022626B0 * param0, int param1);
static BOOL ov117_02262CB8(UnkStruct_ov117_022626B0 * param0, int param1);
static void ov117_02262CE8(UnkStruct_ov117_022626B0 * param0);
static void ov117_02262CFC(UnkStruct_ov117_022626B0 * param0);
static void ov117_022629E0(UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022626B0 * param1, int param2, int param3);
void ov117_02262D4C(BOOL param0, BOOL param1);
void ov117_02262D98();
static void ov117_022638D8(UnkStruct_ov117_02261280 * param0);
static void ov117_022639BC(UnkStruct_ov117_02261280 * param0);
static UnkStruct_0200D0F4 * ov117_02263A00(UnkStruct_ov117_02261280 * param0);
static void ov117_02263A6C(UnkStruct_ov117_022626B0 * param0, UnkStruct_0200D0F4 * param1);
static void ov117_02263AE4(UnkStruct_0200D0F4 * param0);
static const fx16 Unk_ov117_02266B12[3 * 6] = {
0x0,
0x0,
FX16_ONE - 1,
0x0,
FX16_ONE - 1,
0x0,
FX16_ONE - 1,
0x0,
0x0,
0x0,
0x0,
-FX16_ONE + 1,
0x0,
-FX16_ONE + 1,
0x0,
-FX16_ONE + 1,
0x0,
0x0
};
static const UnkStruct_ov104_0223F9E0 Unk_ov117_02266B38 = {
0x0,
0x0,
0x0,
0x0,
0xE,
0x0,
NNS_G2D_VRAM_TYPE_2DMAIN,
{0x2713, 0x2715, 0x2713, 0x2713, 0xFFFFFFFF, 0xFFFFFFFF},
0x1,
0x0
};
static const struct {
u8 unk_00;
u8 unk_01;
u8 unk_02;
u8 unk_03;
} Unk_ov117_02266B05[] = {
{0x40, 0xC0, 0x10, 0xA8},
{0x28, 0xD8, 0x0, 0xA8},
{0x54, 0xAC, 0x8, 0xA8}
};
extern const s32 Unk_ov117_02266FD8[];
inline void inline_ov117_02262EAC (int param0)
{
NNS_G3dGeNormal(Unk_ov117_02266B12[param0 * 3], Unk_ov117_02266B12[param0 * 3 + 1], Unk_ov117_02266B12[param0 * 3 + 2]);
}
UnkStruct_ov117_022626B0 * ov117_022626B0 (UnkStruct_ov117_02261280 * param0)
{
UnkStruct_ov117_022626B0 * v0;
v0 = sub_02018144(110, sizeof(UnkStruct_ov117_022626B0));
MI_CpuClear8(v0, sizeof(UnkStruct_ov117_022626B0));
v0->unk_270 = param0->unk_00->unk_34;
ov117_02262B98(v0);
ov117_02262E0C(v0);
ov117_02262E5C(v0);
switch (param0->unk_00->unk_34) {
case 2:
v0->unk_260 = ((6 * 16 * FX32_ONE) - 2 * 16 * FX32_ONE);
v0->unk_264 = ((6 * 16 * FX32_ONE) + 1 * 16 * FX32_ONE / 2);
break;
case 1:
v0->unk_260 = ((6 * 16 * FX32_ONE) + 3 * 16 * FX32_ONE);
v0->unk_264 = ((6 * 16 * FX32_ONE) + 1 * 16 * FX32_ONE);
break;
default:
v0->unk_260 = (6 * 16 * FX32_ONE);
v0->unk_264 = (6 * 16 * FX32_ONE);
break;
}
v0->unk_21C = 128;
v0->unk_220 = 40;
ov117_022638D8(param0);
v0->unk_234 = ov117_02263A00(param0);
ov117_02263A6C(v0, v0->unk_234);
v0->unk_248 = 0x2000;
return v0;
}
void ov117_02262760 (UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022626B0 * param1)
{
ov117_02263AE4(param1->unk_234);
ov117_022639BC(param0);
sub_020181C4(param1->unk_00);
sub_020181C4(param1->unk_24C);
sub_020181C4(param1->unk_250);
sub_020181C4(param1);
}
void ov117_02262798 (UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022626B0 * param1)
{
param1->unk_244 = 0;
if (param0->unk_20 == 2) {
param1->unk_20C = param0->unk_174C.unk_0C;
param1->unk_210 = param0->unk_174C.unk_10;
param1->unk_214 = param0->unk_174C.unk_14;
param1->unk_218 = param0->unk_174C.unk_18;
} else if ((param0->unk_2FB8 == 0) || (param0->unk_2FBC == 1)) {
param1->unk_20C = 0;
param1->unk_210 = 0;
param1->unk_214 = 0;
param1->unk_218 = 0;
} else {
param1->unk_20C = Unk_021BF67C.unk_5C;
param1->unk_210 = Unk_021BF67C.unk_5E;
param1->unk_214 = Unk_021BF67C.unk_62;
param1->unk_218 = Unk_021BF67C.unk_60;
}
ov117_02263270(param1);
if (param1->unk_214 == 0) {
ov117_02262A38(param1);
if ((param1->unk_0C[0].unk_10.unk_04 == 0) && (param1->unk_0C[0].unk_10.unk_04 == 0)) {
param1->unk_274 = 0;
}
}
ov117_0226334C(param1);
ov117_02262A70(param1);
ov117_02263A6C(param1, param1->unk_234);
if (param1->unk_268 > 0) {
param1->unk_268 += 8;
if (param1->unk_268 > 30) {
param1->unk_268 = 30;
}
ov117_02262CFC(param1);
}
if ((param0->unk_2FBC == 0) && (param0->unk_2FB8 == 1)) {
if (param1->unk_244 > 0) {
UnkStruct_ov117_02264E84 v0;
int v1 = 0, v2 = 0;
s32 v3;
if (param1->unk_25C < 800) {
v1 = ov117_02262CB8(param1, param1->unk_244);
if (v1 == 1) {
param1->unk_268 = 8;
param1->unk_275 = 0;
sub_02005748(1398);
}
} else {
ov117_02262CE8(param1);
param1->unk_268 = 0;
v2 = 1;
}
v3 = ov117_0226296C(param1, param1->unk_244);
if (v2 == 1) {
v3 += v3 * 25 / 100;
}
ov117_02264E14(param0, param0->unk_2FC8, v3, &v0);
ov117_02264E3C(param0, &v0);
ov117_02263DC4(param0, &v0);
ov117_02262998(param1, param1->unk_244);
ov117_022629E0(param0, param1, param1->unk_244, v2);
param1->unk_244 = 0;
}
}
}
void ov117_02262950 (UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022626B0 * param1)
{
if (param1->unk_276 == 1) {
param1->unk_276 = 0;
ov117_02262C3C(param1);
}
}
static int ov117_0226296C (UnkStruct_ov117_022626B0 * param0, int param1)
{
int v0;
if (param1 >= 98) {
v0 = 1200;
} else {
v0 = param1 * 10;
}
v0 = v0 * Unk_ov117_02266FD8[param0->unk_270] / 100;
return v0;
}
static void ov117_02262998 (UnkStruct_ov117_022626B0 * param0, int param1)
{
if (param0->unk_244 >= 98) {
param0->unk_248 += 0x1000;
} else if (param0->unk_244 >= 98) {
param0->unk_248 += 0x1000;
} else {
param0->unk_248 = 0x2000;
}
if (param0->unk_248 > 0x11000) {
param0->unk_248 = 0x11000;
}
}
static void ov117_022629E0 (UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022626B0 * param1, int param2, int param3)
{
if ((param3 == 1) && (param1->unk_244 >= 98)) {
ov117_02261600(param0, 0);
sub_02005748(1402);
} else if (param1->unk_244 >= 98) {
(void)0;
} else {
if (param1->unk_0C[0].unk_00.unk_04 < param1->unk_0C[0].unk_10.unk_04) {
ov117_02261600(param0, 2);
sub_02005748(1400);
} else if (param1->unk_0C[0].unk_00.unk_04 > param1->unk_0C[0].unk_10.unk_04) {
ov117_02261600(param0, 1);
sub_02005748(1400);
}
}
}
static void ov117_02262A38 (UnkStruct_ov117_022626B0 * param0)
{
if (param0->unk_238 == 0) {
return;
}
param0->unk_238 = 0;
param0->unk_23C = -1;
{
int v0;
v0 = ov117_022638AC(param0);
param0->unk_244 = param0->unk_240 - v0;
if (param0->unk_244 < 25) {
param0->unk_244 = 0;
}
}
}
static void ov117_02262A70 (UnkStruct_ov117_022626B0 * param0)
{
u32 v0, v1;
NNS_G3dGeLightVector(GX_LIGHTID_0, FX16_SQRT1_3, -FX16_SQRT1_3, -FX16_SQRT1_3);
NNS_G3dGeLightColor(GX_LIGHTID_0, GX_RGB(31, 31, 31));
NNS_G3dGePushMtx();
{
fx16 v2 = FX_SinIdx(param0->unk_08);
fx16 v3 = FX_CosIdx(param0->unk_08);
NNS_G3dGeTranslate(0, (9 + 10) * FX32_ONE, -5 * FX32_ONE);
NNS_G3dGeScale(param0->unk_260 + param0->unk_260 * (param0->unk_268 + param0->unk_26C) / 100, param0->unk_264 + param0->unk_264 * param0->unk_26A / 100, (FX32_ONE));
}
{
NNS_G3dGeMtxMode(GX_MTXMODE_TEXTURE);
NNS_G3dGeIdentity();
NNS_G3dGeMtxMode(GX_MTXMODE_POSITION_VECTOR);
}
ov117_02262D4C(1, 1);
ov117_02262D98();
v0 = NNS_GfdGetTexKeyAddr(param0->unk_04->texInfo.vramKey);
v1 = NNS_GfdGetPlttKeyAddr(param0->unk_04->plttInfo.vramKey);
NNS_G3dGeTexImageParam(GX_TEXFMT_PLTT256, GX_TEXGEN_TEXCOORD, GX_TEXSIZE_S128, GX_TEXSIZE_T128, GX_TEXREPEAT_NONE, GX_TEXFLIP_NONE, GX_TEXPLTTCOLOR0_TRNS, v0);
NNS_G3dGeTexPlttBase(v1, GX_TEXFMT_PLTT256);
NNS_G3dGePolygonAttr(GX_LIGHTMASK_0, GX_POLYGONMODE_MODULATE, GX_CULL_NONE, 0, 31, GX_POLYGON_ATTR_MISC_NONE);
ov117_02262EAC(param0);
NNS_G3dGePopMtx(1);
NNS_G3dGeFlushBuffer();
}
static void ov117_02262B98 (UnkStruct_ov117_022626B0 * param0)
{
param0->unk_00 = sub_02006AC0(173, 29, 110);
param0->unk_04 = NNS_G3dGetTex(param0->unk_00);
sub_0201CBCC(param0->unk_04);
{
u32 v0;
void * v1;
u32 v2;
v0 = (u32)param0->unk_04->plttInfo.sizePltt << 3;
v1 = (u8 *)param0->unk_04 + param0->unk_04->plttInfo.ofsPlttData;
v2 = (param0->unk_04->plttInfo.vramKey & 0xffff) << 3;
GF_ASSERT(param0->unk_24C == NULL);
param0->unk_24C = sub_02018144(110, v0);
param0->unk_250 = sub_02018144(110, v0);
MI_CpuCopy8(v1, param0->unk_24C, v0);
MI_CpuCopy8(v1, param0->unk_250, v0);
DC_FlushRange(param0->unk_250, v0);
param0->unk_258 = v2;
param0->unk_254 = v0;
}
{
u8 * v3;
u32 v4;
GF_ASSERT(param0->unk_04->texInfo.ofsTex != 0);
v3 = (u8 *)param0->unk_04 + param0->unk_04->texInfo.ofsTex;
v4 = (u32)(v3 - (u8 *)param0->unk_00);
sub_020182F0(param0->unk_00, v4);
}
}
static void ov117_02262C3C (UnkStruct_ov117_022626B0 * param0)
{
GX_BeginLoadTexPltt();
GX_LoadTexPltt(param0->unk_250, param0->unk_258, param0->unk_254);
GX_EndLoadTexPltt();
}
static void ov117_02262C60 (UnkStruct_ov117_022626B0 * param0, int param1)
{
int v0;
v0 = (12 << 8) * param1 / 800;
v0 = (v0 + 0x80) >> 8;
if (v0 > 16) {
v0 = 16;
}
sub_0200393C(param0->unk_24C, param0->unk_250, param0->unk_254 / 2, v0, 0x1f);
DC_FlushRange(param0->unk_250, param0->unk_254);
param0->unk_276 = 1;
}
static BOOL ov117_02262CB8 (UnkStruct_ov117_022626B0 * param0, int param1)
{
BOOL v0 = 0;
param0->unk_25C += param1;
if (param0->unk_25C >= 800) {
param0->unk_25C = 800;
v0 = 1;
}
ov117_02262C60(param0, param0->unk_25C);
return v0;
}
static void ov117_02262CE8 (UnkStruct_ov117_022626B0 * param0)
{
param0->unk_25C = 0;
ov117_02262C60(param0, param0->unk_25C);
}
static void ov117_02262CFC (UnkStruct_ov117_022626B0 * param0)
{
if (param0->unk_268 == 0) {
return;
}
param0->unk_275++;
if (param0->unk_275 == 4) {
ov117_02262C60(param0, param0->unk_25C / 2);
} else if (param0->unk_275 == 4 * 2) {
ov117_02262C60(param0, param0->unk_25C);
param0->unk_275 = 0;
}
}
static const GXRgb DEMO_DIFFUSE_COL = GX_RGB(23, 23, 23);
static const GXRgb DEMO_AMBIENT_COL = GX_RGB(8, 8, 8);
static const GXRgb DEMO_SPECULAR_COL = GX_RGB(31, 31, 31);
static const GXRgb DEMO_EMISSION_COL = GX_RGB(0, 0, 0);
static const u32 LIGHTING_L_DOT_S_SHIFT = 8;
void ov117_02262D4C (BOOL param0, BOOL param1)
{
NNS_G3dGeMaterialColorDiffAmb(DEMO_DIFFUSE_COL, DEMO_AMBIENT_COL, param0);
NNS_G3dGeMaterialColorSpecEmi(DEMO_SPECULAR_COL, DEMO_EMISSION_COL, param1);
}
#include <nitro/code32.h>
void ov117_02262D98 ()
{
u8 i;
u32 v0[32];
u8 * v1 = (u8 *)&v0[0];
const u8 v2 = 32 * sizeof(u32);
for (i = 0; i < v2 - 1; i++) {
v1[i] = (u8)(((s64)(i * 2 + 1) * (i * 2 + 1) * (i * 2 + 1) * (i * 2 + 1)) >> (LIGHTING_L_DOT_S_SHIFT * (4 - 1)));
}
v1[v2 - 1] = 0xFF;
NNS_G3dGeShininess(&v0[0]);
}
#include <nitro/codereset.h>
static void ov117_02262E0C (UnkStruct_ov117_022626B0 * param0)
{
int v0;
fx32 v1;
fx32 v2;
v2 = ((-(128 * FX32_ONE)) - 0) / 8;
for (v0 = 0; v0 < 8; v0++) {
v1 = 0 + v0 * v2;
param0->unk_0C[v0].unk_00.unk_00 = 0;
param0->unk_0C[v0].unk_00.unk_04 = v1;
param0->unk_0C[v0].unk_08.unk_00 = 0;
param0->unk_0C[v0].unk_08.unk_04 = v1 + v2;
param0->unk_0C[v0].unk_10.unk_00 = ((128 * FX32_ONE));
param0->unk_0C[v0].unk_10.unk_04 = v1;
param0->unk_0C[v0].unk_18.unk_00 = ((128 * FX32_ONE));
param0->unk_0C[v0].unk_18.unk_04 = v1 + v2;
}
}
static void ov117_02262E5C (UnkStruct_ov117_022626B0 * param0)
{
int v0;
fx32 v1;
fx32 v2;
v2 = 128 * FX32_ONE / 8;
for (v0 = 0; v0 < 8; v0++) {
v1 = v0 * v2;
param0->unk_10C[v0].unk_00.unk_00 = 0;
param0->unk_10C[v0].unk_00.unk_04 = v1;
param0->unk_10C[v0].unk_08.unk_00 = 0;
param0->unk_10C[v0].unk_08.unk_04 = v1 + v2;
param0->unk_10C[v0].unk_10.unk_00 = 128 * FX32_ONE;
param0->unk_10C[v0].unk_10.unk_04 = v1;
param0->unk_10C[v0].unk_18.unk_00 = 128 * FX32_ONE;
param0->unk_10C[v0].unk_18.unk_04 = v1 + v2;
}
}
static void ov117_02262EAC (UnkStruct_ov117_022626B0 * param0)
{
int v0;
fx64 v1, v2;
fx16 v3, v4;
for (v0 = 0; v0 < 8; v0++) {
NNS_G3dGeBegin(GX_BEGIN_QUADS);
ov117_02263168(param0->unk_0C[v0].unk_00.unk_00, param0->unk_0C[v0].unk_00.unk_04, &v3, &v4);
NNS_G3dGeTexCoord(param0->unk_10C[v0].unk_00.unk_00, param0->unk_10C[v0].unk_00.unk_04);
inline_ov117_02262EAC(0);
NNS_G3dGeVtx(v3, v4, 0);
ov117_02263168(param0->unk_0C[v0].unk_08.unk_00, param0->unk_0C[v0].unk_08.unk_04, &v3, &v4);
NNS_G3dGeTexCoord(param0->unk_10C[v0].unk_08.unk_00, param0->unk_10C[v0].unk_08.unk_04);
inline_ov117_02262EAC(0);
NNS_G3dGeVtx(v3, v4, 0);
ov117_02263168(param0->unk_0C[v0].unk_18.unk_00, param0->unk_0C[v0].unk_18.unk_04, &v3, &v4);
NNS_G3dGeTexCoord(param0->unk_10C[v0].unk_18.unk_00, param0->unk_10C[v0].unk_18.unk_04);
inline_ov117_02262EAC(0);
NNS_G3dGeVtx(v3, v4, 0);
ov117_02263168(param0->unk_0C[v0].unk_10.unk_00, param0->unk_0C[v0].unk_10.unk_04, &v3, &v4);
NNS_G3dGeTexCoord(param0->unk_10C[v0].unk_10.unk_00, param0->unk_10C[v0].unk_10.unk_04);
inline_ov117_02262EAC(0);
NNS_G3dGeVtx(v3, v4, 0);
NNS_G3dGeEnd();
}
}
static void ov117_02263168 (fx32 param0, fx32 param1, fx16 * param2, fx16 * param3)
{
fx32 v0, v1;
v0 = (FX16_ONE)*(fx64)param0 / (128 * FX32_ONE);
v1 = (FX16_ONE)*(fx64)param1 / (128 * FX32_ONE);
GF_ASSERT(v0 <= FX16_MAX);
GF_ASSERT(v0 >= FX16_MIN);
GF_ASSERT(v1 <= FX16_MAX);
GF_ASSERT(v1 >= FX16_MIN);
v0 -= ((FX16_ONE) / 2);
v1 += ((FX16_ONE) / 2);
GF_ASSERT(v0 <= FX16_MAX);
GF_ASSERT(v0 >= FX16_MIN);
GF_ASSERT(v1 <= FX16_MAX);
GF_ASSERT(v1 >= FX16_MIN);
*param2 = v0;
*param3 = v1;
}
static BOOL ov117_02263270 (UnkStruct_ov117_022626B0 * param0)
{
int v0;
if ((param0->unk_238 == 1) || (param0->unk_218 == 0)) {
return 0;
}
v0 = (param0->unk_230 >> FX32_SHIFT) + Unk_ov117_02266B05[param0->unk_270].unk_02;
if ((param0->unk_20C < Unk_ov117_02266B05[param0->unk_270].unk_00) || (param0->unk_20C > Unk_ov117_02266B05[param0->unk_270].unk_01) || (param0->unk_210 < v0) || (param0->unk_210 > Unk_ov117_02266B05[param0->unk_270].unk_03)) {
return 0;
}
param0->unk_238 = 1;
param0->unk_224 = param0->unk_20C;
param0->unk_228 = param0->unk_210;
param0->unk_22C = param0->unk_210 - v0;
param0->unk_230 = -(param0->unk_0C[0].unk_10.unk_04 + (param0->unk_0C[0].unk_00.unk_04 - param0->unk_0C[0].unk_10.unk_04) / 2);
param0->unk_240 = ov117_022638AC(param0);
return 1;
}
static int ov117_0226334C (UnkStruct_ov117_022626B0 * param0)
{
int v0 = 0;
fx32 v1;
int v2;
int v3;
if (param0->unk_238 == 1) {
if (param0->unk_210 < param0->unk_23C) {
param0->unk_274 = 0;
return 0;
} else if (param0->unk_210 == param0->unk_23C) {
param0->unk_274 = 0;
return 1;
}
if ((param0->unk_23C != -1) && (param0->unk_210 > param0->unk_23C) && (sub_020057D4(1399) == 0)) {
sub_02005748(1399);
param0->unk_274 = 1;
}
v3 = param0->unk_210 - param0->unk_22C;
v1 = (v3 << FX32_SHIFT) - (param0->unk_230 + (Unk_ov117_02266B05[param0->unk_270].unk_02 << FX32_SHIFT));
param0->unk_23C = param0->unk_210;
} else {
v0 = 1;
v1 = -param0->unk_248;
}
v2 = ov117_02263448(param0, v0, v1);
switch (v2) {
case 0:
default:
break;
case 1:
case 2:
ov117_02262A38(param0);
break;
}
param0->unk_230 = -(param0->unk_0C[0].unk_10.unk_04 + (param0->unk_0C[0].unk_00.unk_04 - param0->unk_0C[0].unk_10.unk_04) / 2);
return 1;
}
static int ov117_02263448 (UnkStruct_ov117_022626B0 * param0, int param1, fx32 param2)
{
fx32 v0, v1, v2, v3, v4, v5, v6;
fx32 v7, v8;
fx32 v9, v10;
u16 v11, v12;
int v13 = 0;
if ((param1 == 0) && (param2 < 0)) {
(void)0;
}
v0 = param0->unk_210 << FX32_SHIFT;
v3 = -param0->unk_0C[0].unk_00.unk_04;
v4 = -param0->unk_0C[0].unk_10.unk_04;
v7 = v4 + (v3 - v4) / 2;
switch (ov117_022637AC(param0, param1)) {
case 0:
v5 = v3 + param2;
v6 = v4 + param2;
break;
case 1:
v13 = ov117_022637E4(param0, param2, v3, v4, &v5, &v6);
break;
case 2:
v13 = ov117_022637E4(param0, param2, v4, v3, &v6, &v5);
break;
}
v8 = v6 + (v5 - v6) / 2;
if ((v7 == v8) && (v3 == v5) && (v4 == v6)) {
return 0;
}
if (v8 < 0) {
v8 = 0;
}
if (v5 < 0) {
v5 = 0;
}
if (v6 < 0) {
v6 = 0;
}
if (v8 > (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE)) {
v8 = (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE);
v13 = 1;
}
if (v5 > (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE)) {
v5 = (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE);
v13 = 1;
}
if (v6 > (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE)) {
v6 = (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE);
v13 = 1;
}
{
fx32 v14, v15;
int v16;
v16 = 64;
switch (ov117_022637AC(param0, param1)) {
case 0:
default:
if (v5 < v6) {
v14 = v16 * FX32_ONE;
} else if (v5 > v6) {
v14 = -v16 * FX32_ONE;
} else {
v14 = 0;
}
v14 = v16 * FX32_ONE;
v15 = v6 - v8;
v11 = FX_Atan2Idx(v15, v14);
v12 = v11 + 0x8000;
break;
case 2:
v14 = v16 * FX32_ONE;
v15 = (v6 - v8);
v11 = FX_Atan2Idx(v15, v14);
v12 = v11 + 0x8000;
break;
case 1:
v14 = -v16 * FX32_ONE;
v15 = v5 - v8;
v12 = FX_Atan2Idx(v15, v14);
v11 = v12 + 0x8000;
break;
}
}
{
fx32 v17 = ((128 * FX32_ONE) / 2) / FX32_ONE;
param0->unk_0C[0].unk_00.unk_00 = v17 * FX_CosIdx(v12) + ((128 * FX32_ONE) / 2);
param0->unk_0C[0].unk_00.unk_04 = -(v17 * FX_SinIdx(v12) + v8);
param0->unk_0C[0].unk_10.unk_00 = v17 * FX_CosIdx(v11) + ((128 * FX32_ONE) / 2);
param0->unk_0C[0].unk_10.unk_04 = -(v17 * FX_SinIdx(v11) + v8);
{
int v18;
fx32 v19;
s32 v20;
v19 = (((128 * FX32_ONE) / 8 * (8 - 1)) - v8) / (8 - 1);
if (v11 > 0x8000) {
v20 = -(0x10000 - v11) / (8 - 1);
} else {
v20 = v11 / (8 - 1);
}
for (v18 = 1; v18 < (8 - 1); v18++) {
param0->unk_0C[v18].unk_00.unk_00 = v17 * FX_CosIdx(v12 - v20 * v18) + ((128 * FX32_ONE) / 2);
param0->unk_0C[v18].unk_00.unk_04 = -(v17 * FX_SinIdx(v12 - v20 * v18) + v8 + v19 * v18);
param0->unk_0C[v18].unk_10.unk_00 = v17 * FX_CosIdx(v11 - v20 * v18) + ((128 * FX32_ONE) / 2);
param0->unk_0C[v18].unk_10.unk_04 = -(v17 * FX_SinIdx(v11 - v20 * v18) + v8 + v19 * v18);
param0->unk_0C[v18 - 1].unk_08.unk_00 = param0->unk_0C[v18].unk_00.unk_00;
param0->unk_0C[v18 - 1].unk_08.unk_04 = param0->unk_0C[v18].unk_00.unk_04;
param0->unk_0C[v18 - 1].unk_18.unk_00 = param0->unk_0C[v18].unk_10.unk_00;
param0->unk_0C[v18 - 1].unk_18.unk_04 = param0->unk_0C[v18].unk_10.unk_04;
}
}
}
if (v13 == 1) {
return 2;
}
return 0;
}
static int ov117_022637AC (UnkStruct_ov117_022626B0 * param0, int param1)
{
if (param1 == 1) {
return 0;
}
if (param0->unk_224 < param0->unk_21C - 16) {
return 1;
}
if (param0->unk_224 > param0->unk_21C + 16) {
return 2;
}
return 0;
}
static int ov117_022637E4 (UnkStruct_ov117_022626B0 * param0, fx32 param1, fx32 param2, fx32 param3, fx32 * param4, fx32 * param5)
{
int v0 = 0;
*param4 = param2;
*param5 = param3;
if (param2 + param1 > (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE)) {
param1 -= (param2 + param1) - (((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE);
v0 = 1;
}
*param4 = param2 + param1;
if (param3 <= param2) {
*param5 = param3 - (param1 * 25 / 100);
} else {
*param5 = param3;
}
return v0;
}
static fx32 ov117_0226384C (UnkStruct_ov117_022626B0 * param0)
{
fx32 v0, v1, v2;
fx32 v3, v4, v5;
fx32 v6;
int v7 = (8 - 1) - 1;
v3 = param0->unk_0C[0].unk_10.unk_04 + (param0->unk_0C[0].unk_00.unk_04 - param0->unk_0C[0].unk_10.unk_04) / 2;
v2 = -(param0->unk_0C[v7].unk_08.unk_04 - v3);
v4 = param0->unk_0C[0].unk_10.unk_00 - param0->unk_0C[0].unk_00.unk_00;
v5 = param0->unk_0C[v7].unk_18.unk_00 - param0->unk_0C[v7].unk_08.unk_00;
v6 = FX_Mul(v4 + v5, v2) / 2;
return v6;
}
static int ov117_022638AC (UnkStruct_ov117_022626B0 * param0)
{
fx32 v0;
int v1;
v0 = ov117_0226384C(param0);
v1 = 100 * (fx64)v0 / (((((((128 * FX32_ONE)) - 0) + (((128 * FX32_ONE)) - 0)) * (fx64)((((128 * FX32_ONE) / 8 * (8 - 1)) - 12 * FX32_ONE))) >> FX32_SHIFT) / 2);
return v1;
}
static void ov117_022638D8 (UnkStruct_ov117_02261280 * param0)
{
UnkStruct_02006C24 * v0;
v0 = sub_02006C24(173, 110);
sub_0200CDC4(param0->unk_8C, 2, param0->unk_24, param0->unk_28, v0, 58, 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 10005);
sub_0200CC3C(param0->unk_24, param0->unk_28, v0, 55, 0, NNS_G2D_VRAM_TYPE_2DMAIN, 10003);
sub_0200CE24(param0->unk_24, param0->unk_28, v0, 57, 0, 10003);
sub_0200CE54(param0->unk_24, param0->unk_28, v0, 56, 0, 10003);
sub_02006CA8(v0);
}
static void ov117_022639BC (UnkStruct_ov117_02261280 * param0)
{
sub_0200D070(param0->unk_28, 10003);
sub_0200D090(param0->unk_28, 10003);
sub_0200D0A0(param0->unk_28, 10003);
sub_0200D080(param0->unk_28, 10005);
}
static UnkStruct_0200D0F4 * ov117_02263A00 (UnkStruct_ov117_02261280 * param0)
{
UnkStruct_0200D0F4 * v0;
UnkStruct_ov104_0223F9E0 v1;
v1 = Unk_ov117_02266B38;
v0 = sub_0200CE6C(param0->unk_24, param0->unk_28, &v1);
sub_0200D3F4(v0, 0);
sub_0200D324(v0->unk_00);
return v0;
}
static void ov117_02263A6C (UnkStruct_ov117_022626B0 * param0, UnkStruct_0200D0F4 * param1)
{
int v0;
if (param0->unk_238 == 0) {
v0 = 0;
} else {
v0 = ov117_022637AC(param0, 0) + 1;
}
sub_0200D500(param1, param0->unk_21C, (param0->unk_230 >> FX32_SHIFT) + Unk_ov117_02266B05[param0->unk_270].unk_02, ((192 + 160) << FX32_SHIFT));
sub_0200D364(param1, v0);
sub_0200D324(param1->unk_00);
}
static void ov117_02263AE4 (UnkStruct_0200D0F4 * param0)
{
sub_0200D0F4(param0);
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,117 @@
#include <nitro.h>
#include <string.h>
#include <dwc.h>
#include "struct_decls/struct_020067E8_decl.h"
#include "overlay114/struct_ov114_0225D678_decl.h"
#include "overlay114/struct_ov114_0225E854_decl.h"
#include "overlay117/struct_ov117_022605C0.h"
#include "unk_020067E8.h"
#include "unk_0200F174.h"
#include "overlay114/ov114_0225C700.h"
#include "overlay117/ov117_02266498.h"
typedef struct {
UnkStruct_ov117_022605C0 * unk_00;
UnkStruct_ov114_0225D678 * unk_04;
UnkStruct_ov114_0225E854 * unk_08;
} UnkStruct_ov117_02266498;
int ov117_02266498 (UnkStruct_020067E8 * param0, int * param1)
{
UnkStruct_ov117_02266498 * v0;
v0 = sub_0200681C(param0, sizeof(UnkStruct_ov117_02266498), 110);
MI_CpuClear8(v0, sizeof(UnkStruct_ov117_02266498));
v0->unk_00 = sub_02006840(param0);
return 1;
}
int ov117_022664BC (UnkStruct_020067E8 * param0, int * param1)
{
UnkStruct_ov117_02266498 * v0 = sub_0200682C(param0);
if (v0->unk_00->unk_3D == 1) {
switch (v0->unk_00->unk_3E) {
case 0:
if (sub_0200F2AC() == 1) {
sub_0200F2C0();
}
sub_0200F370(0x0);
v0->unk_00->unk_3E++;
break;
case 1:
if (ov114_0225CA98(&v0->unk_00->unk_00) == 1) {
v0->unk_00->unk_3E++;
}
break;
default:
case 2:
if (v0->unk_04 != NULL) {
ov114_0225C838(v0->unk_04);
v0->unk_04 = NULL;
}
if (v0->unk_08 != NULL) {
ov114_0225C904(v0->unk_08);
v0->unk_08 = NULL;
}
return 1;
}
return 0;
}
switch (*param1) {
case 0:
if (v0->unk_00->unk_31 == 0) {
*param1 = 1;
} else {
*param1 = 3;
}
break;
case 1:
v0->unk_04 = ov114_0225C82C(&v0->unk_00->unk_00, 110);
(*param1)++;
break;
case 2:
if (ov114_0225C8BC(v0->unk_04) == 1) {
v0->unk_00->unk_34 = ov114_0225C8CC(v0->unk_04);
ov114_0225C838(v0->unk_04);
v0->unk_04 = NULL;
(*param1) = 5;
}
break;
case 3:
v0->unk_08 = ov114_0225C8F8(&v0->unk_00->unk_00, &v0->unk_00->unk_10, 110);
(*param1)++;
break;
case 4:
if (ov114_0225C9A0(v0->unk_08) == 1) {
v0->unk_00->unk_38 = ov114_0225C9A4(v0->unk_08);
ov114_0225C904(v0->unk_08);
v0->unk_08 = NULL;
(*param1) = 5;
}
break;
case 5:
default:
return 1;
}
return 0;
}
int ov117_022665E8 (UnkStruct_020067E8 * param0, int * param1)
{
UnkStruct_ov117_02266498 * v0 = sub_0200682C(param0);
sub_02006830(param0);
return 1;
}

View File

@@ -0,0 +1,103 @@
#include <nitro.h>
#include <string.h>
#include "struct_defs/struct_02039A58.h"
#include "overlay117/struct_ov117_02261280.h"
#include "overlay117/struct_ov117_022621D4.h"
#include "unk_02032798.h"
#include "unk_02034198.h"
#include "overlay117/ov117_02260668.h"
#include "overlay117/ov117_022665FC.h"
static void ov117_02266618(int param0, int param1, void * param2, void * param3);
static void ov117_0226663C(int param0, int param1, void * param2, void * param3);
static void ov117_02266660(int param0, int param1, void * param2, void * param3);
static int ov117_02266610(void);
static int ov117_02266614(void);
static const UnkStruct_02039A58 Unk_ov117_02266FE4[] = {
{NULL, sub_0203294C, NULL},
{ov117_02266660, ov117_02266614, NULL},
{ov117_02266618, ov117_02266610, NULL},
{ov117_0226663C, sub_0203294C, NULL}
};
void ov117_022665FC (void * param0)
{
int v0 = sizeof(Unk_ov117_02266FE4) / sizeof(UnkStruct_02039A58);
sub_02032798(Unk_ov117_02266FE4, v0, param0);
GF_ASSERT(sizeof(UnkStruct_ov117_022621D4) < 256);
}
static int ov117_02266610 (void)
{
return sizeof(UnkStruct_ov117_022621D4);
}
static int ov117_02266614 (void)
{
return sizeof(u32);
}
static void ov117_02266618 (int param0, int param1, void * param2, void * param3)
{
UnkStruct_ov117_02261280 * v0 = param3;
ov117_02262044(v0, param0, param2);
}
BOOL ov117_02266624 (UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022621D4 * param1)
{
if (sub_020359DC(24, param1, sizeof(UnkStruct_ov117_022621D4)) == 1) {
return 1;
}
return 0;
}
static void ov117_0226663C (int param0, int param1, void * param2, void * param3)
{
UnkStruct_ov117_02261280 * v0 = param3;
v0->unk_2FC0 = 1;
}
BOOL ov117_02266648 (UnkStruct_ov117_02261280 * param0)
{
if (sub_020359DC(25, NULL, 0) == 1) {
return 1;
}
return 0;
}
static void ov117_02266660 (int param0, int param1, void * param2, void * param3)
{
UnkStruct_ov117_02261280 * v0 = param3;
u32 * v1 = param2;
u32 v2;
int v3;
v2 = v1[0];
for (v3 = 0; v3 < v0->unk_00->unk_30; v3++) {
if (v0->unk_00->unk_2C[v3] == param0) {
v0->unk_0C[v3] = v2;
break;
}
}
GF_ASSERT(v3 < v0->unk_00->unk_30);
v0->unk_08++;
}
BOOL ov117_022666A4 (UnkStruct_ov117_02261280 * param0)
{
u32 v0 = 100;
if (sub_020359DC(23, &v0, sizeof(u32)) == 1) {
return 1;
}
return 0;
}

View File

@@ -0,0 +1,188 @@
#include <nitro.h>
#include <string.h>
#include "overlay117/struct_ov117_02261280.h"
#include "overlay117/struct_ov117_022621D4.h"
#include "overlay117/struct_ov117_02264E84.h"
#include "unk_02034198.h"
#include "overlay117/ov117_02260668.h"
#include "overlay117/ov117_02263AF0.h"
#include "overlay117/ov117_022666C0.h"
static void ov117_022668A8(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void ov117_02266714(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void ov117_02266760(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void ov117_022667B8(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void ov117_02266820(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void ov117_02266860(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void ov117_022668E4(UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1);
static void(*const Unk_ov117_02267014[])(UnkStruct_ov117_02261280 *, const UnkStruct_ov117_022621D4 *) = {
NULL,
ov117_02266714,
ov117_02266760,
ov117_022667B8,
ov117_02266820,
ov117_02266860,
ov117_022668A8,
ov117_022668E4,
};
#ifdef _NITRO
SDK_COMPILER_ASSERT(NELEMS(Unk_ov117_02267014) == 8);
#endif
BOOL ov117_022666C0 (UnkStruct_ov117_02261280 * param0, UnkStruct_ov117_022621D4 * param1)
{
if (Unk_ov117_02267014[param1->unk_00] != NULL) {
Unk_ov117_02267014[param1->unk_00](param0, param1);
MI_CpuClear8(param1, sizeof(UnkStruct_ov117_022621D4));
return 1;
}
return 0;
}
void ov117_022666E8 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_02264E84 * param1)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 1;
v0.unk_04_val4 = *param1;
ov117_02262130(param0, &v0);
}
static void ov117_02266714 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
if (param1->unk_04_val4.unk_00 == sub_0203608C()) {
return;
}
ov117_02263DC4(param0, &param1->unk_04_val4);
}
void ov117_02266730 (UnkStruct_ov117_02261280 * param0, int param1, u8 param2)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 2;
v0.unk_04_val5.unk_00 = param1;
v0.unk_04_val5.unk_02 = 5;
v0.unk_04_val5.unk_03 = param2;
ov117_02262130(param0, &v0);
}
static void ov117_02266760 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
param0->unk_2FD0++;
ov117_02264808(param0);
ov117_0226238C(param0, param1->unk_04_val5.unk_02, param1->unk_04_val5.unk_03);
}
void ov117_02266784 (UnkStruct_ov117_02261280 * param0, int param1, int param2, u8 param3)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 3;
v0.unk_04_val6.unk_00 = param1;
v0.unk_04_val6.unk_02 = param2;
v0.unk_04_val6.unk_03 = 4;
v0.unk_04_val6.unk_04 = param3;
ov117_02262130(param0, &v0);
}
static void ov117_022667B8 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
param0->unk_2FC8 = param1->unk_04_val6.unk_00;
ov117_02263AF0(param0->unk_2C, param0->unk_00->unk_30, param1->unk_04_val6.unk_02, &param0->unk_1428);
param0->unk_2FCC = 1;
ov117_0226238C(param0, param1->unk_04_val6.unk_03, param1->unk_04_val6.unk_04);
}
void ov117_022667F4 (UnkStruct_ov117_02261280 * param0, u8 param1)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 4;
v0.unk_04_val1.unk_00 = 2;
v0.unk_04_val1.unk_01 = param1;
ov117_02262130(param0, &v0);
}
static void ov117_02266820 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
param0->unk_20 = 3;
ov117_0226238C(param0, param1->unk_04_val2.unk_00, param1->unk_04_val2.unk_01);
}
void ov117_02266834 (UnkStruct_ov117_02261280 * param0, u8 param1)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 5;
v0.unk_04_val3.unk_00 = 3;
v0.unk_04_val3.unk_01 = param1;
ov117_02262130(param0, &v0);
}
static void ov117_02266860 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
param0->unk_2FBC = 1;
param0->unk_20 = 6;
ov117_0226238C(param0, param1->unk_04_val3.unk_00, param1->unk_04_val3.unk_01);
}
void ov117_0226687C (UnkStruct_ov117_02261280 * param0, int param1, u8 param2)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 6;
v0.unk_04_val1.unk_00 = param1;
v0.unk_04_val1.unk_01 = param2;
ov117_02262130(param0, &v0);
}
static void ov117_022668A8 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
ov117_0226238C(param0, param1->unk_04_val1.unk_00, param1->unk_04_val1.unk_01);
}
void ov117_022668B8 (UnkStruct_ov117_02261280 * param0, u8 param1)
{
UnkStruct_ov117_022621D4 v0;
MI_CpuClear8(&v0, sizeof(UnkStruct_ov117_022621D4));
v0.unk_00 = 7;
v0.unk_04_val1.unk_00 = 6;
v0.unk_04_val1.unk_01 = param1;
ov117_02262130(param0, &v0);
}
static void ov117_022668E4 (UnkStruct_ov117_02261280 * param0, const UnkStruct_ov117_022621D4 * param1)
{
param0->unk_20 = 1;
ov117_0226238C(param0, param1->unk_04_val2.unk_00, param1->unk_04_val2.unk_01);
}