diff --git a/asm/non_matching/game/math/sa2__sub_80835E0.inc b/asm/non_matching/game/math/sa2__sub_80835E0.inc deleted file mode 100644 index 27597e8b2..000000000 --- a/asm/non_matching/game/math/sa2__sub_80835E0.inc +++ /dev/null @@ -1,119 +0,0 @@ -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #2 - ldrsh r1, [r6, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _08083608 - ldr r0, [r5, #8] - muls r0, r1, r0 - asrs r4, r0, #0xa - movs r2, #2 - ldrsh r0, [r5, r2] - muls r0, r1, r0 - asrs r0, r0, #0xa - strh r0, [r5, #2] - b _0808360A -_08083608: - ldr r4, [r5, #8] -_0808360A: - movs r0, #4 - ldrsh r1, [r6, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _08083628 - ldr r0, [r5, #0xc] - muls r0, r1, r0 - asrs r7, r0, #0xa - movs r2, #4 - ldrsh r0, [r5, r2] - muls r0, r1, r0 - asrs r0, r0, #0xa - strh r0, [r5, #4] - b _0808362A -_08083628: - ldr r7, [r5, #0xc] -_0808362A: - ldrh r0, [r6] - mov ip, r0 - mov r0, ip - cmp r0, #0 - beq _08083694 - ldr r3, _08083690 @ =gSineTable - ldrh r1, [r6] - movs r2, #0x80 - lsls r2, r2, #1 - mov r8, r2 - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r4, #0 - muls r2, r0, r2 - asrs r2, r2, #8 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r7, r0 - asrs r0, r0, #8 - subs r2, r2, r0 - ldr r0, [r6, #8] - adds r0, r0, r2 - str r0, [r5, #8] - ldrh r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r4, #0 - muls r2, r0, r2 - asrs r2, r2, #8 - add r1, r8 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r7, r0 - asrs r0, r0, #8 - adds r2, r2, r0 - ldr r0, [r6, #0xc] - adds r0, r0, r2 - b _0808369E - .align 2, 0 -_08083690: .4byte gSineTable -_08083694: - ldr r0, [r6, #8] - adds r0, r0, r4 - str r0, [r5, #8] - ldr r0, [r6, #0xc] - adds r0, r0, r7 -_0808369E: - str r0, [r5, #0xc] - ldrh r0, [r5] - add r0, ip - ldr r2, _080836B8 @ =0x000003FF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r5] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080836B8: .4byte 0x000003FF - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__sub_8084B54.inc b/asm/non_matching/game/math/sa2__sub_8084B54.inc deleted file mode 100644 index fca6853d5..000000000 --- a/asm/non_matching/game/math/sa2__sub_8084B54.inc +++ /dev/null @@ -1,148 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - ldr r6, _08084C6C @ =gSineTable - lsls r4, r2, #1 - adds r4, r4, r6 - ldrh r4, [r4] - mov sl, r4 - mov r4, sl - lsls r4, r4, #0x10 - mov sl, r4 - movs r4, #0x80 - lsls r4, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #1 - adds r2, r2, r6 - ldrh r2, [r2] - mov ip, r2 - mov r2, ip - lsls r2, r2, #0x10 - mov ip, r2 - lsls r2, r1, #1 - adds r2, r2, r6 - ldrh r2, [r2] - mov r8, r2 - mov r2, r8 - lsls r2, r2, #0x10 - mov r8, r2 - adds r1, r1, r4 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - mov sb, r1 - mov r1, sb - lsls r1, r1, #0x10 - mov sb, r1 - lsls r1, r3, #1 - adds r1, r1, r6 - ldrh r5, [r1] - lsls r5, r5, #0x10 - adds r3, r3, r4 - lsls r3, r3, #1 - adds r3, r3, r6 - ldrh r4, [r3] - lsls r4, r4, #0x10 - asrs r4, r4, #0x14 - mov r2, sb - asrs r2, r2, #0x14 - mov sb, r2 - mov r2, sb - muls r2, r4, r2 - asrs r2, r2, #0xa - asrs r5, r5, #0x14 - mov r1, sl - asrs r1, r1, #0x14 - mov sl, r1 - mov r3, sl - muls r3, r5, r3 - asrs r3, r3, #0xa - mov r1, r8 - asrs r1, r1, #0x14 - mov r8, r1 - mov r1, r8 - muls r1, r3, r1 - asrs r1, r1, #0xa - adds r2, r2, r1 - movs r6, #0 - strh r2, [r0, #2] - mov r2, ip - asrs r2, r2, #0x14 - mov ip, r2 - mov r1, ip - muls r1, r5, r1 - asrs r1, r1, #0xa - strh r1, [r0, #4] - rsbs r1, r4, #0 - mov r2, r8 - muls r2, r1, r2 - asrs r2, r2, #0xa - mov r1, sb - muls r1, r3, r1 - asrs r1, r1, #0xa - adds r2, r2, r1 - strh r2, [r0, #6] - rsbs r1, r5, #0 - mov r2, sb - muls r2, r1, r2 - asrs r2, r2, #0xa - mov r3, sl - muls r3, r4, r3 - asrs r3, r3, #0xa - mov r1, r8 - muls r1, r3, r1 - asrs r1, r1, #0xa - adds r2, r2, r1 - strh r2, [r0, #8] - mov r1, ip - muls r1, r4, r1 - asrs r1, r1, #0xa - strh r1, [r0, #0xa] - mov r2, r8 - muls r2, r5, r2 - asrs r2, r2, #0xa - mov r1, sb - muls r1, r3, r1 - asrs r1, r1, #0xa - adds r2, r2, r1 - strh r2, [r0, #0xc] - mov r4, r8 - mov r1, ip - muls r1, r4, r1 - asrs r1, r1, #0xa - strh r1, [r0, #0xe] - mov r1, sl - rsbs r1, r1, #0 - strh r1, [r0, #0x10] - mov r2, sb - mov r1, ip - muls r1, r2, r1 - asrs r1, r1, #0xa - strh r1, [r0, #0x12] - str r6, [r0, #0x1c] - str r6, [r0, #0x18] - str r6, [r0, #0x14] - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08084C6C: .4byte gSineTable - - @ Unused - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_8083504.inc b/asm/non_matching/game/math/sa2__unused_sub_8083504.inc deleted file mode 100644 index 73a5ea022..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_8083504.inc +++ /dev/null @@ -1,120 +0,0 @@ -.syntax unified -.text - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - movs r0, #2 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _0808352E - ldr r0, [r6, #8] - muls r0, r1, r0 - asrs r3, r0, #0xa - movs r2, #2 - ldrsh r0, [r6, r2] - muls r0, r1, r0 - asrs r0, r0, #0xa - strh r0, [r7, #2] - b _08083530 -_0808352E: - ldr r3, [r6, #8] -_08083530: - movs r0, #4 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _0808354E - ldr r0, [r6, #0xc] - muls r0, r1, r0 - asrs r4, r0, #0xa - movs r2, #4 - ldrsh r0, [r6, r2] - muls r0, r1, r0 - asrs r0, r0, #0xa - strh r0, [r7, #4] - b _08083550 -_0808354E: - ldr r4, [r6, #0xc] -_08083550: - ldrh r0, [r5] - cmp r0, #0 - beq _080835B8 - ldr r0, _080835B4 @ =gSineTable - mov ip, r0 - ldrh r1, [r5] - movs r2, #0x80 - lsls r2, r2, #1 - mov r8, r2 - adds r0, r1, r2 - lsls r0, r0, #1 - add r0, ip - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r3, #0 - muls r2, r0, r2 - asrs r2, r2, #8 - lsls r1, r1, #1 - add r1, ip - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r4, r0 - asrs r0, r0, #8 - subs r2, r2, r0 - ldr r0, [r5, #8] - adds r0, r0, r2 - str r0, [r7, #8] - ldrh r1, [r5] - lsls r0, r1, #1 - add r0, ip - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r3, #0 - muls r2, r0, r2 - asrs r2, r2, #8 - add r1, r8 - lsls r1, r1, #1 - add r1, ip - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r4, r0 - asrs r0, r0, #8 - adds r2, r2, r0 - ldr r0, [r5, #0xc] - adds r0, r0, r2 - b _080835C2 - .align 2, 0 -_080835B4: .4byte gSineTable -_080835B8: - ldr r0, [r5, #8] - adds r0, r0, r3 - str r0, [r7, #8] - ldr r0, [r5, #0xc] - adds r0, r0, r4 -_080835C2: - str r0, [r7, #0xc] - ldrh r0, [r5] - ldrh r6, [r6] - adds r0, r0, r6 - ldr r2, _080835DC @ =0x000003FF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r7] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080835DC: .4byte 0x000003FF - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_80836BC.inc b/asm/non_matching/game/math/sa2__unused_sub_80836BC.inc deleted file mode 100644 index 7835a12fc..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_80836BC.inc +++ /dev/null @@ -1,120 +0,0 @@ -.syntax unified -.text - @ code similar to sub_80835E0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #2 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _080836E4 - ldr r0, [r6, #8] - muls r0, r1, r0 - asrs r4, r0, #0xa - movs r2, #2 - ldrsh r0, [r6, r2] - muls r0, r1, r0 - asrs r0, r0, #0xa - strh r0, [r5, #2] - b _080836E6 -_080836E4: - ldr r4, [r6, #8] -_080836E6: - movs r0, #4 - ldrsh r1, [r5, r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _08083704 - ldr r0, [r6, #0xc] - muls r0, r1, r0 - asrs r7, r0, #0xa - movs r2, #4 - ldrsh r0, [r6, r2] - muls r0, r1, r0 - asrs r0, r0, #0xa - strh r0, [r5, #4] - b _08083706 -_08083704: - ldr r7, [r6, #0xc] -_08083706: - ldrh r0, [r5] - mov ip, r0 - mov r0, ip - cmp r0, #0 - beq _08083770 - ldr r3, _0808376C @ =gSineTable - ldrh r1, [r5] - movs r2, #0x80 - lsls r2, r2, #1 - mov r8, r2 - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r4, #0 - muls r2, r0, r2 - asrs r2, r2, #8 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r7, r0 - asrs r0, r0, #8 - subs r2, r2, r0 - ldr r0, [r5, #8] - adds r0, r0, r2 - str r0, [r5, #8] - ldrh r1, [r5] - lsls r0, r1, #1 - adds r0, r0, r3 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - adds r2, r4, #0 - muls r2, r0, r2 - asrs r2, r2, #8 - add r1, r8 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - lsls r0, r0, #0x10 - asrs r0, r0, #0x16 - muls r0, r7, r0 - asrs r0, r0, #8 - adds r2, r2, r0 - ldr r0, [r5, #0xc] - adds r0, r0, r2 - b _0808377A - .align 2, 0 -_0808376C: .4byte gSineTable -_08083770: - ldr r0, [r5, #8] - adds r0, r0, r4 - str r0, [r5, #8] - ldr r0, [r5, #0xc] - adds r0, r0, r7 -_0808377A: - str r0, [r5, #0xc] - ldrh r0, [r6] - add r0, ip - ldr r2, _08083794 @ =0x000003FF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r5] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08083794: .4byte 0x000003FF - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_8083798.inc b/asm/non_matching/game/math/sa2__unused_sub_8083798.inc deleted file mode 100644 index 832852ee0..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_8083798.inc +++ /dev/null @@ -1,102 +0,0 @@ - - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r1, #2 - ldrsh r0, [r7, r1] - movs r4, #0x80 - lsls r4, r4, #3 - cmp r0, r4 - beq _080837C2 - movs r0, #0x80 - lsls r0, r0, #0xd - movs r2, #2 - ldrsh r1, [r7, r2] - bl Div - strh r0, [r7, #2] - movs r0, #2 - ldrsh r1, [r7, r0] - ldr r0, [r7, #8] - muls r0, r1, r0 - asrs r0, r0, #0xa - str r0, [r7, #8] -_080837C2: - movs r1, #4 - ldrsh r0, [r7, r1] - cmp r0, r4 - beq _080837E4 - movs r0, #0x80 - lsls r0, r0, #0xd - movs r2, #4 - ldrsh r1, [r7, r2] - bl Div - strh r0, [r7, #4] - movs r0, #4 - ldrsh r1, [r7, r0] - ldr r0, [r7, #0xc] - muls r0, r1, r0 - asrs r0, r0, #0xa - str r0, [r7, #0xc] -_080837E4: - ldrh r0, [r7] - subs r0, r4, r0 - ldr r2, _0808383C @ =0x000003FF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r7] - cmp r0, #0 - beq _08083844 - ldr r5, [r7, #8] - rsbs r5, r5, #0 - ldr r6, _08083840 @ =gSineTable - ldrh r1, [r7] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r1, r2 - lsls r0, r0, #1 - adds r0, r0, r6 - ldrh r3, [r0] - lsls r3, r3, #0x10 - asrs r3, r3, #0x16 - adds r4, r5, #0 - muls r4, r3, r4 - asrs r4, r4, #8 - ldr r2, [r7, #0xc] - rsbs r2, r2, #0 - lsls r1, r1, #1 - adds r1, r1, r6 - ldrh r1, [r1] - lsls r1, r1, #0x10 - asrs r1, r1, #0x16 - adds r0, r2, #0 - muls r0, r1, r0 - asrs r0, r0, #8 - subs r4, r4, r0 - muls r1, r5, r1 - asrs r1, r1, #8 - adds r0, r2, #0 - muls r0, r3, r0 - asrs r0, r0, #8 - adds r1, r1, r0 - str r1, [r7, #0xc] - str r4, [r7, #8] - b _08083850 - .align 2, 0 -_0808383C: .4byte 0x000003FF -_08083840: .4byte gSineTable -_08083844: - ldr r0, [r7, #8] - rsbs r0, r0, #0 - str r0, [r7, #8] - ldr r0, [r7, #0xc] - rsbs r0, r0, #0 - str r0, [r7, #0xc] -_08083850: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_80838CC.inc b/asm/non_matching/game/math/sa2__unused_sub_80838CC.inc deleted file mode 100644 index a2823539c..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_80838CC.inc +++ /dev/null @@ -1,110 +0,0 @@ - - -.syntax unified -.text - push {r4, r5, r6, lr} - movs r3, #6 - ldrsh r4, [r0, r3] - movs r5, #0 - ldrsh r3, [r1, r5] - muls r3, r4, r3 - movs r6, #0 - ldrsh r5, [r0, r6] - movs r6, #6 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - adds r3, r3, r4 - movs r4, #2 - ldrsh r5, [r0, r4] - movs r6, #4 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - adds r3, r3, r4 - movs r4, #4 - ldrsh r5, [r0, r4] - movs r6, #2 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - subs r3, r3, r4 - asrs r3, r3, #0xa - strh r3, [r2] - movs r3, #6 - ldrsh r4, [r0, r3] - movs r5, #2 - ldrsh r3, [r1, r5] - muls r3, r4, r3 - movs r6, #0 - ldrsh r5, [r0, r6] - movs r6, #4 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - subs r3, r3, r4 - movs r4, #2 - ldrsh r5, [r0, r4] - movs r6, #6 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - adds r3, r3, r4 - movs r4, #4 - ldrsh r5, [r0, r4] - movs r6, #0 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - adds r3, r3, r4 - asrs r3, r3, #0xa - strh r3, [r2, #2] - movs r3, #6 - ldrsh r4, [r0, r3] - movs r5, #4 - ldrsh r3, [r1, r5] - muls r3, r4, r3 - movs r6, #0 - ldrsh r5, [r0, r6] - movs r6, #2 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - adds r3, r3, r4 - movs r4, #2 - ldrsh r5, [r0, r4] - movs r6, #0 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - subs r3, r3, r4 - movs r4, #4 - ldrsh r5, [r0, r4] - movs r6, #6 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - adds r3, r3, r4 - asrs r3, r3, #0xa - strh r3, [r2, #4] - movs r3, #6 - ldrsh r4, [r0, r3] - movs r5, #6 - ldrsh r3, [r1, r5] - muls r3, r4, r3 - movs r6, #0 - ldrsh r5, [r0, r6] - movs r6, #0 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - subs r3, r3, r4 - movs r4, #2 - ldrsh r5, [r0, r4] - movs r6, #2 - ldrsh r4, [r1, r6] - muls r4, r5, r4 - subs r3, r3, r4 - movs r5, #4 - ldrsh r4, [r0, r5] - movs r6, #4 - ldrsh r0, [r1, r6] - muls r0, r4, r0 - subs r3, r3, r0 - asrs r3, r3, #0xa - strh r3, [r2, #6] - pop {r4, r5, r6} - pop {r0} - bx r0 - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_808399C.inc b/asm/non_matching/game/math/sa2__unused_sub_808399C.inc deleted file mode 100644 index f57f6e846..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_808399C.inc +++ /dev/null @@ -1,91 +0,0 @@ - -.syntax unified -.text - push {r4, r5, r6, r7, lr} - movs r2, #6 - ldrsh r3, [r0, r2] - movs r4, #0 - ldrsh r2, [r1, r4] - muls r2, r3, r2 - movs r7, #0 - ldrsh r6, [r0, r7] - movs r4, #6 - ldrsh r3, [r1, r4] - muls r3, r6, r3 - adds r2, r2, r3 - movs r7, #2 - ldrsh r5, [r0, r7] - movs r4, #4 - ldrsh r3, [r1, r4] - muls r3, r5, r3 - adds r2, r2, r3 - movs r7, #4 - ldrsh r4, [r0, r7] - movs r7, #2 - ldrsh r3, [r1, r7] - muls r3, r4, r3 - subs r2, r2, r3 - asrs r2, r2, #0xa - strh r2, [r0] - movs r2, #6 - ldrsh r3, [r0, r2] - movs r7, #2 - ldrsh r2, [r1, r7] - muls r2, r3, r2 - movs r7, #4 - ldrsh r3, [r1, r7] - muls r3, r6, r3 - subs r2, r2, r3 - movs r7, #6 - ldrsh r3, [r1, r7] - muls r3, r5, r3 - adds r2, r2, r3 - movs r7, #0 - ldrsh r3, [r1, r7] - muls r3, r4, r3 - adds r2, r2, r3 - asrs r2, r2, #0xa - strh r2, [r0, #2] - movs r2, #6 - ldrsh r3, [r0, r2] - movs r7, #4 - ldrsh r2, [r1, r7] - muls r2, r3, r2 - movs r7, #2 - ldrsh r3, [r1, r7] - muls r3, r6, r3 - adds r2, r2, r3 - movs r7, #0 - ldrsh r3, [r1, r7] - muls r3, r5, r3 - subs r2, r2, r3 - movs r7, #6 - ldrsh r3, [r1, r7] - muls r3, r4, r3 - adds r2, r2, r3 - asrs r2, r2, #0xa - strh r2, [r0, #4] - movs r2, #6 - ldrsh r3, [r0, r2] - movs r7, #6 - ldrsh r2, [r1, r7] - muls r2, r3, r2 - movs r7, #0 - ldrsh r3, [r1, r7] - muls r3, r6, r3 - subs r2, r2, r3 - movs r6, #2 - ldrsh r3, [r1, r6] - muls r3, r5, r3 - subs r2, r2, r3 - movs r7, #4 - ldrsh r1, [r1, r7] - muls r1, r4, r1 - subs r2, r2, r1 - asrs r2, r2, #0xa - strh r2, [r0, #6] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_8084904.inc b/asm/non_matching/game/math/sa2__unused_sub_8084904.inc deleted file mode 100644 index a8146a099..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_8084904.inc +++ /dev/null @@ -1,54 +0,0 @@ - -.syntax unified -.text - push {r4, r5, lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r1, r2, #0 - movs r0, #0 - ldr r5, _08084960 @ =gSineTable - movs r3, #0 -_08084914: - stm r1!, {r3} - adds r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _08084914 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x12] - strh r0, [r1, #0xa] - strh r0, [r1, #2] - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r4, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strh r0, [r2, #0xa] - strh r1, [r2, #0xc] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - strh r1, [r2, #0x10] - strh r0, [r2, #0x12] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08084960: .4byte gSineTable - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_8084964.inc b/asm/non_matching/game/math/sa2__unused_sub_8084964.inc deleted file mode 100644 index db4d71f79..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_8084964.inc +++ /dev/null @@ -1,54 +0,0 @@ - - -.syntax unified -.text - push {r4, r5, lr} - adds r3, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r1, r3, #0 - movs r0, #0 - ldr r5, _080849C0 @ =gSineTable - movs r2, #0 -_08084974: - stm r1!, {r2} - adds r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _08084974 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x12] - strh r0, [r1, #0xa] - strh r0, [r1, #2] - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - lsls r1, r1, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, r2 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strh r0, [r3, #2] - lsrs r2, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - strh r1, [r3, #6] - strh r2, [r3, #0xe] - strh r0, [r3, #0x12] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080849C0: .4byte gSineTable - -.syntax divided diff --git a/asm/non_matching/game/math/sa2__unused_sub_80849C4.inc b/asm/non_matching/game/math/sa2__unused_sub_80849C4.inc deleted file mode 100644 index 5c74bb456..000000000 --- a/asm/non_matching/game/math/sa2__unused_sub_80849C4.inc +++ /dev/null @@ -1,55 +0,0 @@ - - -.syntax unified -.text - push {r4, r5, lr} - adds r2, r0, #0 - lsls r1, r1, #0x10 - lsrs r4, r1, #0x10 - adds r1, r2, #0 - movs r0, #0 - ldr r5, _08084A20 @ =gSineTable - movs r3, #0 -_080849D4: - stm r1!, {r3} - adds r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _080849D4 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x12] - strh r0, [r1, #0xa] - strh r0, [r1, #2] - lsls r0, r4, #1 - adds r0, r0, r5 - ldrh r1, [r0] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r4, r3 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - strh r0, [r2, #2] - strh r1, [r2, #4] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - rsbs r1, r1, #0 - strh r1, [r2, #8] - strh r0, [r2, #0xa] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08084A20: .4byte gSineTable - -.syntax divided diff --git a/src/game/math.c b/src/game/math.c index abdc95310..7cc927532 100644 --- a/src/game/math.c +++ b/src/game/math.c @@ -5,13 +5,14 @@ /* NOTE: Module imported from SA2 */ -struct UNK_8085F1C_1 *sa2__sub_8085EC4(struct UNK_8085F1C *p1); +struct UNK_8085F1C_1 *SA2_LABEL(sub_8085EC4)(struct UNK_8085F1C *p1); +// TODO: This is just UNK_8085F1C_1 typedef struct { s16 unk0; s16 unk2; s16 unk4; - u16 unk6; + s16 unk6; u16 unk8; u16 unkA; u16 unkC; @@ -23,6 +24,21 @@ typedef struct { u32 unk1C; } UNK_8085D14; +// Something different? +typedef struct { + u16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s32 unk8; + s32 unkC; + u16 unk10; + u16 unk12; + u32 unk14; + u32 unk18; + u32 unk1C; +} UNK_8085D14_2; + // Only used in here u32 gRngPrevValue = 0; u32 gRngValue = 0; @@ -37,9 +53,10 @@ typedef struct { void *unkC; } UNK_8085DEC; -bool8 sa2__sub_8085D98(UNK_8085DEC *thing, UNK_8085DEC *target); +bool8 SA2_LABEL(sub_8085D98)(UNK_8085DEC *thing, UNK_8085DEC *target); -#define RAND_CONST 0x37119371; +#define RAND_CONST 0x37119371; +#define Q_6_10_MUL(qValA, qValB) ((qValA * qValB) >> 10) NONMATCH("asm/non_matching/game/math/sa2__unused_sub_80832FC.inc", void sa2__sub_80832FC()) { } END_NONMATCH @@ -47,27 +64,134 @@ END_NONMATCH NONMATCH("asm/non_matching/game/math/sa2__unused_sub_808343C.inc", void sa2__sub_808343C()) { } END_NONMATCH -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8083504.inc", void sa2__sub_8083504()) { } -END_NONMATCH +void SA2_LABEL(sub_8083504)(UNK_8085D14_2 *arg0, UNK_8085D14_2 *arg1, UNK_8085D14_2 *arg2) +{ + s32 var_r3, var_r4; -// TODO: match this -NONMATCH("asm/non_matching/game/math/sa2__sub_80835E0.inc", void sa2__sub_80835E0(struct UNK_8085F1C *p2, s32 *b)) { } -END_NONMATCH + if (arg1->unk2 != 0x400) { + var_r3 = (arg1->unk2 * arg0->unk8) >> 0xA; + arg2->unk2 = ((arg1->unk2 * arg0->unk2) >> 0xA); + } else { + var_r3 = arg0->unk8; + } + if (arg1->unk4 != 0x400) { + var_r4 = (arg1->unk4 * arg0->unkC) >> 0xA; + arg2->unk4 = ((arg1->unk4 * arg0->unk4) >> 0xA); + } else { + var_r4 = arg0->unkC; + } -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_80836BC.inc", void sa2__sub_80836BC()) { } -END_NONMATCH + if (arg1->unk0 != 0) { + arg2->unk8 = (arg1->unk8 + (((var_r3 * (COS(arg1->unk0) >> 6)) >> 8) - ((var_r4 * (SIN(arg1->unk0) >> 6)) >> 8))); + arg2->unkC = arg1->unkC + (((var_r3 * (SIN(arg1->unk0) >> 6)) >> 8) + ((var_r4 * (COS(arg1->unk0) >> 6)) >> 8)); + } else { + arg2->unk8 = (arg1->unk8 + var_r3); + arg2->unkC = arg1->unkC + var_r4; + } + arg2->unk0 = ((arg0->unk0 + arg1->unk0) & (SIN_PERIOD - 1)); +} -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8083798.inc", void sa2__sub_8083798()) { } -END_NONMATCH +// This is used in this file, but it's not used by the game +void SA2_LABEL(sub_80835E0)(UNK_8085D14_2 *arg0, UNK_8085D14_2 *arg1) +{ + s32 var_r3, var_r4; + + if (arg1->unk2 != 0x400) { + var_r3 = (s32)(arg1->unk2 * arg0->unk8) >> 0xA; + arg0->unk2 = (s16)((s32)(arg1->unk2 * arg0->unk2) >> 0xA); + } else { + var_r3 = arg0->unk8; + } + if (arg1->unk4 != 0x400) { + var_r4 = (s32)(arg1->unk4 * arg0->unkC) >> 0xA; + arg0->unk4 = (s16)((s32)(arg1->unk4 * arg0->unk4) >> 0xA); + } else { + var_r4 = arg0->unkC; + } + if (arg1->unk0 != 0) { + arg0->unk8 = (arg1->unk8 + (((var_r3 * (COS(arg1->unk0) >> 6)) >> 8) - ((var_r4 * (SIN(arg1->unk0) >> 6)) >> 8))); + arg0->unkC = arg1->unkC + (((var_r3 * (SIN(arg1->unk0) >> 6)) >> 8) + ((var_r4 * (COS(arg1->unk0) >> 6)) >> 8)); + } else { + arg0->unk8 = (s32)(arg1->unk8 + var_r3); + arg0->unkC = arg1->unkC + var_r4; + } + arg0->unk0 = ((arg0->unk0 + arg1->unk0) & (SIN_PERIOD - 1)); +} + +void SA2_LABEL(sub_80836BC)(UNK_8085D14_2 *arg0, UNK_8085D14_2 *arg1) +{ + s32 var_r3, var_r4; + + if (arg1->unk2 != 0x400) { + var_r3 = (s32)(arg1->unk2 * arg0->unk8) >> 0xA; + arg1->unk2 = (s16)((s32)(arg1->unk2 * arg0->unk2) >> 0xA); + } else { + var_r3 = arg0->unk8; + } + if (arg1->unk4 != 0x400) { + var_r4 = (s32)(arg1->unk4 * arg0->unkC) >> 0xA; + arg1->unk4 = (s16)((s32)(arg1->unk4 * arg0->unk4) >> 0xA); + } else { + var_r4 = arg0->unkC; + } + if (arg1->unk0 != 0) { + arg1->unk8 = (arg1->unk8 + (((var_r3 * (COS(arg1->unk0) >> 6)) >> 8) - ((var_r4 * (SIN(arg1->unk0) >> 6)) >> 8))); + arg1->unkC = arg1->unkC + (((var_r3 * (SIN(arg1->unk0) >> 6)) >> 8) + ((var_r4 * (COS(arg1->unk0) >> 6)) >> 8)); + } else { + arg1->unk8 = (s32)(arg1->unk8 + var_r3); + arg1->unkC = arg1->unkC + var_r4; + } + arg1->unk0 = ((arg0->unk0 + arg1->unk0) & (SIN_PERIOD - 1)); +} + +void SA2_LABEL(sub_8083798)(UNK_8085D14_2 *arg0) +{ + u16 temp_r0; + + if (arg0->unk2 != 0x400) { + arg0->unk2 = Div(0x100000, arg0->unk2); + arg0->unk8 = (arg0->unk2 * arg0->unk8) >> 0xA; + } + if (arg0->unk4 != 0x400) { + arg0->unk4 = Div(0x100000, arg0->unk4); + arg0->unkC = (arg0->unk4 * arg0->unkC) >> 0xA; + } + temp_r0 = (0x400 - arg0->unk0) & 0x3FF; + arg0->unk0 = temp_r0; + if (temp_r0 != 0) { + s32 unk8, unkC; + unk8 = ((-arg0->unk8 * (COS(arg0->unk0) >> 6)) >> 8) - ((-arg0->unkC * (SIN(arg0->unk0) >> 6)) >> 8); + unkC = ((-arg0->unk8 * (SIN(arg0->unk0) >> 6)) >> 8) + ((-arg0->unkC * (COS(arg0->unk0) >> 6)) >> 8); + + arg0->unkC = unkC; + arg0->unk8 = unk8; + return; + } + arg0->unk8 = (0 - arg0->unk8); + arg0->unkC = (0 - arg0->unkC); +} NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8083858.inc", void sa2__sub_8083858()) { } END_NONMATCH -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_80838CC.inc", void sa2__sub_80838CC()) { } -END_NONMATCH +void SA2_LABEL(sub_80838CC)(UNK_8085D14 *arg0, UNK_8085D14 *arg1, UNK_8085D14 *arg2) +{ + arg2->unk0 = (((arg0->unk6 * arg1->unk0) + (arg0->unk0 * arg1->unk6) + (arg0->unk2 * arg1->unk4)) - (arg0->unk4 * arg1->unk2)) >> 0xA; + arg2->unk2 = (((arg0->unk6 * arg1->unk2) - (arg0->unk0 * arg1->unk4)) + (arg0->unk2 * arg1->unk6) + (arg0->unk4 * arg1->unk0)) >> 0xA; + arg2->unk4 = ((((arg0->unk6 * arg1->unk4) + (arg0->unk0 * arg1->unk2)) - (arg0->unk2 * arg1->unk0)) + (arg0->unk4 * arg1->unk6)) >> 0xA; + arg2->unk6 = ((((arg0->unk6 * arg1->unk6) - (arg0->unk0 * arg1->unk0)) - (arg0->unk2 * arg1->unk2)) - (arg0->unk4 * arg1->unk4)) >> 0xA; +} -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_808399C.inc", void sa2__sub_808399C()) { } -END_NONMATCH +void SA2_LABEL(sub_808399C)(UNK_8085D14 *arg0, UNK_8085D14 *arg1) +{ + s16 r6 = arg0->unk0; + s16 r5 = arg0->unk2; + s16 r4 = arg0->unk4; + arg0->unk0 = (((arg0->unk6 * arg1->unk0) + (r6 * arg1->unk6) + (r5 * arg1->unk4)) - (r4 * arg1->unk2)) >> 10; + arg0->unk2 = (((arg0->unk6 * arg1->unk2) - (r6 * arg1->unk4)) + (r5 * arg1->unk6) + (r4 * arg1->unk0)) >> 10; + arg0->unk4 = ((((arg0->unk6 * arg1->unk4) + (r6 * arg1->unk2)) - (r5 * arg1->unk0)) + (r4 * arg1->unk6)) >> 10; + arg0->unk6 = ((((arg0->unk6 * arg1->unk6) - (r6 * arg1->unk0)) - (r5 * arg1->unk2)) - (r4 * arg1->unk4)) >> 10; +} NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8083A48.inc", void sa2__sub_8083A48()) { } END_NONMATCH @@ -100,21 +224,98 @@ END_NONMATCH NONMATCH("asm/non_matching/game/math/sa2__unused_sub_808477C.inc", void sa2__sub_808477C()) { } END_NONMATCH -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8084904.inc", void sa2__sub_8084904()) { } -END_NONMATCH +void SA2_LABEL(sub_8084904)(UNK_8085D14 *arg0, u16 arg1) +{ + u32 *r1; + s16 temp_r0; + s16 temp_r1; + u8 i; -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8084964.inc", void sa2__sub_8084964()) { } -END_NONMATCH + r1 = (u32 *)arg0; + for (i = 0; i < sizeof(UNK_8085D14); i += 4) { + *r1++ = 0; + }; + ((UNK_8085D14 *)r1)->unk12 = 0x400; + ((UNK_8085D14 *)r1)->unkA = 0x400; + ((UNK_8085D14 *)r1)->unk2 = 0x400; + temp_r1 = SIN(arg1) >> 4; + temp_r0 = COS(arg1) >> 4; + arg0->unkA = temp_r0; + arg0->unkC = temp_r1; + arg0->unk10 = -temp_r1; + arg0->unk12 = temp_r0; +} -NONMATCH("asm/non_matching/game/math/sa2__unused_sub_80849C4.inc", void sa2__sub_80849C4()) { } -END_NONMATCH +void SA2_LABEL(sub_8084964)(UNK_8085D14 *arg0, u16 arg1) +{ + u32 *r1; + s16 temp_r0; + s16 temp_r1; + u8 i; + + r1 = (u32 *)arg0; + for (i = 0; i < sizeof(UNK_8085D14); i += 4) { + *r1++ = 0; + }; + ((UNK_8085D14 *)r1)->unk12 = 0x400; + ((UNK_8085D14 *)r1)->unkA = 0x400; + ((UNK_8085D14 *)r1)->unk2 = 0x400; + temp_r1 = SIN(arg1) >> 4; + temp_r0 = COS(arg1) >> 4; + arg0->unk2 = temp_r0; + arg0->unk6 = -temp_r1; + arg0->unkE = temp_r1; + arg0->unk12 = temp_r0; +} + +void SA2_LABEL(sub_80849C4)(UNK_8085D14 *arg0, u16 arg1) +{ + u32 *r1; + s16 temp_r0; + s16 temp_r1; + u8 i; + + r1 = (u32 *)arg0; + for (i = 0; i < sizeof(UNK_8085D14); i += 4) { + *r1++ = 0; + }; + ((UNK_8085D14 *)r1)->unk12 = 0x400; + ((UNK_8085D14 *)r1)->unkA = 0x400; + ((UNK_8085D14 *)r1)->unk2 = 0x400; + temp_r1 = SIN(arg1) >> 4; + temp_r0 = COS(arg1) >> 4; + arg0->unk2 = temp_r0; + arg0->unk4 = temp_r1; + arg0->unk8 = -temp_r1; + arg0->unkA = temp_r0; +} NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8084A24.inc", void sa2__sub_8084A24()) { } END_NONMATCH -// TODO: match this -NONMATCH("asm/non_matching/game/math/sa2__sub_8084B54.inc", void sa2__sub_8084B54(struct UNK_8085F1C_1 *a, u16 b, u16 c, u16 d)) { } -END_NONMATCH +void SA2_LABEL(sub_8084B54)(struct UNK_8085F1C_1 *matrix, u16 anglez, u16 angley, u16 anglex) +{ + s16 sy = SIN(angley) >> 4; + s16 cy = COS(angley) >> 4; + s16 sz = SIN(anglez) >> 4; + s16 cz = COS(anglez) >> 4; + s16 sx = SIN(anglex) >> 4; + s16 cx = COS(anglex) >> 4; + + matrix->unk2[0] = Q_6_10_MUL(cx, cz) + Q_6_10_MUL(Q_6_10_MUL(sx, sy), sz); + matrix->unk2[1] = Q_6_10_MUL(sx, cy); + matrix->unk2[2] = Q_6_10_MUL(-cx, sz) + Q_6_10_MUL(Q_6_10_MUL(sx, sy), cz); + matrix->unk2[3] = Q_6_10_MUL(-sx, cz) + Q_6_10_MUL(sz, Q_6_10_MUL(sy, cx)); + matrix->unk2[4] = Q_6_10_MUL(cx, cy); + matrix->unk2[5] = Q_6_10_MUL(sz, sx) + Q_6_10_MUL(cz, Q_6_10_MUL(sy, cx)); + matrix->unk2[6] = Q_6_10_MUL(cy, sz); + matrix->unk2[7] = -sy; + matrix->unk2[8] = Q_6_10_MUL(cy, cz); + + matrix->unk1C = 0; + matrix->unk18 = 0; + matrix->unk14 = 0; +} NONMATCH("asm/non_matching/game/math/sa2__unused_sub_8084C70.inc", void sa2__sub_8084C70()) { } END_NONMATCH @@ -171,11 +372,11 @@ END_NONMATCH void sa2__sub_8084B54(struct UNK_8085F1C_1 *, u16, u16, u16); -struct UNK_8085F1C_1 *sa2__sub_80853F8(struct UNK_8085F1C *p1) +struct UNK_8085F1C_1 *SA2_LABEL(sub_80853F8)(struct UNK_8085F1C *p1) { if (!(p1->unkC & 1)) { if (p1->unk10 == 1) { - sa2__sub_8084B54(&p1->unk34, p1->unk54, p1->unk56, p1->unk58); + SA2_LABEL(sub_8084B54)(&p1->unk34, p1->unk54, p1->unk56, p1->unk58); p1->unk34.unk2[0] = (p1->unk5C * p1->unk34.unk2[0]) >> 10; p1->unk34.unk2[1] = (p1->unk5C * p1->unk34.unk2[1]) >> 10; p1->unk34.unk2[2] = (p1->unk5C * p1->unk34.unk2[2]) >> 10; @@ -248,7 +449,7 @@ u32 AbsMax(s32 a, s32 b) // AbsSumMul // NOTE(Jace): Seems to approximate the length of a vector // If so, 'NormalizeVector' might be a reasonable name? -u32 sa2__sub_8085530(s32 a, s32 b) +u32 SA2_LABEL(sub_8085530)(s32 a, s32 b) { if (a < 0) { a = -a; @@ -265,7 +466,7 @@ u32 sa2__sub_8085530(s32 a, s32 b) } } -s16 sa2__sub_808558C(u16 angleA, u16 angleB, u8 numDecimalBits) +s16 SA2_LABEL(sub_808558C)(u16 angleA, u16 angleB, u8 numDecimalBits) { u32 c1 = (1 << numDecimalBits); u16 c2 = c1 - 1; @@ -280,14 +481,14 @@ s16 sa2__sub_808558C(u16 angleA, u16 angleB, u8 numDecimalBits) } } -u32 sa2__sub_80855C0(s32 a, s32 b, s32 c, u8 d) +u32 SA2_LABEL(sub_80855C0)(s32 a, s32 b, s32 c, u8 d) { s64 e = (s64)c * (a - b); return a - (e >> d); } -u16 sa2__sub_80855F8(u16 r7, u16 r2, u8 r6, s16 r5, u8 r4) +u16 SA2_LABEL(sub_80855F8)(u16 r7, u16 r2, u8 r6, s16 r5, u8 r4) { u16 r2_2 = r2; u32 r3 = (1 << r6); @@ -305,7 +506,7 @@ u16 sa2__sub_80855F8(u16 r7, u16 r2, u8 r6, s16 r5, u8 r4) return (r7 + val) & ((1 << r6) - 1); } -s32 sa2__sub_8085654(s32 a, s32 b, s32 c, u8 d, u8 e) +s32 SA2_LABEL(sub_8085654)(s32 a, s32 b, s32 c, u8 d, u8 e) { do { a -= (((s64)c * (s64)(a - b))) >> d; @@ -315,7 +516,7 @@ s32 sa2__sub_8085654(s32 a, s32 b, s32 c, u8 d, u8 e) return a; } -s32 sa2__sub_8085698(s32 a, s32 b, s32 c, u8 d, u8 e) +s32 SA2_LABEL(sub_8085698)(s32 a, s32 b, s32 c, u8 d, u8 e) { do { b = a - ((((s64)c * (s64)(a - b))) >> d); @@ -325,19 +526,19 @@ s32 sa2__sub_8085698(s32 a, s32 b, s32 c, u8 d, u8 e) return b; } -s32 sa2__sub_80856DC(s32 a, s32 b, s32 c) { return (a * 7 + b * 6 - c) / 12; } +s32 SA2_LABEL(sub_80856DC)(s32 a, s32 b, s32 c) { return (a * 7 + b * 6 - c) / 12; } -s32 sa2__sub_80856F8(s32 a, s32 b, s32 c) { return ((b * 6 - a) + c * 7) / 12; } +s32 SA2_LABEL(sub_80856F8)(s32 a, s32 b, s32 c) { return ((b * 6 - a) + c * 7) / 12; } -s32 sa2__sub_8085714(s32 a, s32 b, s32 c) { return ((a + b * 8) - c) >> 3; } +s32 SA2_LABEL(sub_8085714)(s32 a, s32 b, s32 c) { return ((a + b * 8) - c) >> 3; } -s32 sa2__sub_8085720(s32 a, s32 b, s32 c) { return ((b * 8 - a) + c) >> 3; } +s32 SA2_LABEL(sub_8085720)(s32 a, s32 b, s32 c) { return ((b * 8 - a) + c) >> 3; } -s32 sa2__sub_808572C(s32 a, s32 b, s32 c, s32 d, u32 e, u8 f) { return ((s64)(b - a) * (s64)((1 << f) - c)) >> f; } +s32 SA2_LABEL(sub_808572C)(s32 a, s32 b, s32 c, s32 d, u32 e, u8 f) { return ((s64)(b - a) * (s64)((1 << f) - c)) >> f; } -s32 sa2__sub_8085758(s32 a, s32 b) { return b - a; } +s32 SA2_LABEL(sub_8085758)(s32 a, s32 b) { return b - a; } -s32 sa2__sub_808575C(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) +s32 SA2_LABEL(sub_808575C)(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) { a = c - a; a += a >> 1; @@ -345,10 +546,10 @@ s32 sa2__sub_808575C(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) return ((s64)(a) * ((1 << g) - d)) >> g; } -s32 sa2__sub_8085798(s32 a, s32 b, s32 c) { return ((c - a) + ((c - a) >> 1)) - (b >> 1); } +s32 SA2_LABEL(sub_8085798)(s32 a, s32 b, s32 c) { return ((c - a) + ((c - a) >> 1)) - (b >> 1); } // same as sa2__sub_808575C -s32 sa2__sub_80857A4(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) +s32 SA2_LABEL(sub_80857A4)(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) { a = c - a; a += a >> 1; @@ -356,9 +557,9 @@ s32 sa2__sub_80857A4(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) return ((s64)(a) * ((1 << g) - d)) >> g; } -s32 sa2__sub_80857E0(s32 a, s32 b, s32 c) { return ((c - a) + ((c - a) >> 1)) - (b >> 1); } +s32 SA2_LABEL(sub_80857E0)(s32 a, s32 b, s32 c) { return ((c - a) + ((c - a) >> 1)) - (b >> 1); } -s32 sa2__sub_80857EC(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) +s32 SA2_LABEL(sub_80857EC)(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) { s32 h = ((s64)(b - a) * (s64)(f + (1 << g))) >> g; s64 i = ((s64)(c - b) * (s64)((1 << g) - f)) >> g; @@ -367,7 +568,7 @@ s32 sa2__sub_80857EC(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) return ((s64)(j + h64) * (s64)((1 << g) - d)) >> g; } -s32 sa2__sub_80858A4(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) +s32 SA2_LABEL(sub_80858A4)(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) { s32 h = ((s64)(b - a) * (s64)(f + (1 << g))) >> g; s64 i = ((s64)(c - b) * (s64)((1 << g) - f)) >> g; @@ -376,7 +577,7 @@ s32 sa2__sub_80858A4(s32 a, s32 b, s32 c, s32 d, s32 e, s32 f, u8 g) return ((s64)(j + h64) * (s64)((1 << g) - d)) >> g; } -s32 sa2__sub_808595C(s32 a, s32 b, s32 c) +s32 SA2_LABEL(sub_808595C)(s32 a, s32 b, s32 c) { s32 e = (b - a); s32 f = (c - b); @@ -385,7 +586,7 @@ s32 sa2__sub_808595C(s32 a, s32 b, s32 c) return e + f; } -s16 sa2__sub_8085968(s16 *unk28, u16 param1) +s16 SA2_LABEL(sub_8085968)(s16 *unk28, u16 param1) { s32 r7, r3, r5; u32 r0; @@ -406,7 +607,7 @@ s16 sa2__sub_8085968(s16 *unk28, u16 param1) return r0 / 4096; } -u16 sa2__sub_80859F4(s16 *unk28, u16 unk5C) +u16 SA2_LABEL(sub_80859F4)(s16 *unk28, u16 unk5C) { s32 r7, r3, r5; u32 r0; @@ -463,7 +664,7 @@ s16 sa3__sub_80B1560(s16 *unk28, u16 unk5C) return r0 / 4096; } -void sa2__sub_8085A88(UNK_8085D14 *p1) +void SA2_LABEL(sub_8085A88)(UNK_8085D14 *p1) { p1->unk0 = 0; p1->unk2 = 0x400; @@ -473,7 +674,7 @@ void sa2__sub_8085A88(UNK_8085D14 *p1) *(u32 *)&p1->unkC = 0; } -void sa2__sub_8085A9C(UNK_8085D14 *p1, u8 p2) +void SA2_LABEL(sub_8085A9C)(UNK_8085D14 *p1, u8 p2) { u16 dist = Sqrt(SQUARE(p1->unk0) + SQUARE(p1->unk2) + SQUARE(p1->unk4)); u32 thing = (p2 << 1); @@ -483,13 +684,13 @@ void sa2__sub_8085A9C(UNK_8085D14 *p1, u8 p2) p1->unk4 = (div * p1->unk4) >> p2; } -s32 sa2__sub_8085B00(UNK_8085D14 *p1, UNK_8085D14 *p2, u8 p4) +s32 SA2_LABEL(sub_8085B00)(UNK_8085D14 *p1, UNK_8085D14 *p2, u8 p4) { u32 something = p4; return ((p1->unk0 * p2->unk0) + (p1->unk2 * p2->unk2) + (p1->unk4 * p2->unk4)) >> p4; } -void sa2__sub_8085B34(UNK_8085D14 *p1, UNK_8085D14 *p2, UNK_8085D14 *p3, u8 p4) +void SA2_LABEL(sub_8085B34)(UNK_8085D14 *p1, UNK_8085D14 *p2, UNK_8085D14 *p3, u8 p4) { u32 something = p4; p3->unk0 = ((p1->unk2 * p2->unk4) - (p1->unk4 * p2->unk2)) >> something; @@ -497,7 +698,7 @@ void sa2__sub_8085B34(UNK_8085D14 *p1, UNK_8085D14 *p2, UNK_8085D14 *p3, u8 p4) p3->unk4 = ((p1->unk0 * p2->unk2) - (p1->unk2 * p2->unk0)) >> something; } -void sa2__sub_8085B90(UNK_8085D14 *p1) +void SA2_LABEL(sub_8085B90)(UNK_8085D14 *p1) { p1->unk4 = 0; p1->unk2 = 0; @@ -506,14 +707,14 @@ void sa2__sub_8085B90(UNK_8085D14 *p1) p1->unk6 = 0x400; } -void sa2__sub_8085BA0(UNK_8085D14 *p1) +void SA2_LABEL(sub_8085BA0)(UNK_8085D14 *p1) { p1->unk0 = -p1->unk0; p1->unk2 = -p1->unk2; p1->unk4 = -p1->unk4; } -void sa2__sub_8085BB4(UNK_8085D14 *p1, u16 rad) +void SA2_LABEL(sub_8085BB4)(UNK_8085D14 *p1, u16 rad) { s32 sin; rad = rad >> 1; @@ -524,7 +725,7 @@ void sa2__sub_8085BB4(UNK_8085D14 *p1, u16 rad) p1->unk6 = COS(rad) >> 4; } -void sa2__sub_8085BEC(UNK_8085D14 *p1, u16 rad) +void SA2_LABEL(sub_8085BEC)(UNK_8085D14 *p1, u16 rad) { s32 sin; rad = rad >> 1; @@ -535,7 +736,7 @@ void sa2__sub_8085BEC(UNK_8085D14 *p1, u16 rad) p1->unk6 = COS(rad) >> 4; } -void sa2__sub_8085C24(UNK_8085D14 *p1, u16 rad) +void SA2_LABEL(sub_8085C24)(UNK_8085D14 *p1, u16 rad) { s32 sin; rad = rad >> 1; @@ -546,7 +747,7 @@ void sa2__sub_8085C24(UNK_8085D14 *p1, u16 rad) p1->unk6 = COS(rad) >> 4; } -void sa2__sub_8085C5C(UNK_8085D14 *p1, u16 rad, UNK_8085D14 *p3) +void SA2_LABEL(sub_8085C5C)(UNK_8085D14 *p1, u16 rad, UNK_8085D14 *p3) { s32 sin; rad = rad >> 1; @@ -557,7 +758,7 @@ void sa2__sub_8085C5C(UNK_8085D14 *p1, u16 rad, UNK_8085D14 *p3) p1->unk6 = COS(rad) >> 4; } -void sa2__sub_8085CA8(UNK_8085D14 *p1) +void SA2_LABEL(sub_8085CA8)(UNK_8085D14 *p1) { u8 i; UNK_8085D14 *curr = p1; @@ -574,7 +775,7 @@ void sa2__sub_8085CA8(UNK_8085D14 *p1) } } -void sa2__sub_8085CC0(UNK_8085D14 *p1) +void SA2_LABEL(sub_8085CC0)(UNK_8085D14 *p1) { u8 i; UNK_8085D14 *curr = p1; @@ -594,7 +795,7 @@ void sa2__sub_8085CC0(UNK_8085D14 *p1) curr->unk2 = 0x400; } -void sa2__sub_8085CE4(UNK_8085D14 *p1, u32 p2, u32 p3, u32 p4) +void SA2_LABEL(sub_8085CE4)(UNK_8085D14 *p1, u32 p2, u32 p3, u32 p4) { u8 i; UNK_8085D14 *curr = p1; @@ -618,7 +819,7 @@ void sa2__sub_8085CE4(UNK_8085D14 *p1, u32 p2, u32 p3, u32 p4) p1->unk1C = p4; } -void sa2__sub_8085D14(UNK_8085D14 *p1, u32 p2, u32 p3, u32 p4) +void SA2_LABEL(sub_8085D14)(UNK_8085D14 *p1, u32 p2, u32 p3, u32 p4) { u8 i; UNK_8085D14 *curr = p1; @@ -642,7 +843,7 @@ void sa2__sub_8085D14(UNK_8085D14 *p1, u32 p2, u32 p3, u32 p4) p1->unk12 = p4; } -void sa2__sub_8085D44(UNK_8085DEC *thing) +void SA2_LABEL(sub_8085D44)(UNK_8085DEC *thing) { thing->unk0 = NULL; thing->start = NULL; @@ -650,7 +851,7 @@ void sa2__sub_8085D44(UNK_8085DEC *thing) thing->unkC = NULL; } -UNK_8085DEC *sa2__sub_8085D50(UNK_8085DEC *thing) +UNK_8085DEC *SA2_LABEL(sub_8085D50)(UNK_8085DEC *thing) { while (thing->unk0 != NULL) { thing = thing->unk0; @@ -659,24 +860,24 @@ UNK_8085DEC *sa2__sub_8085D50(UNK_8085DEC *thing) return thing; } -void sa2__sub_8085D64(UNK_8085DEC *thing) +void SA2_LABEL(sub_8085D64)(UNK_8085DEC *thing) { if (thing->unk0 != NULL) { - sa2__sub_8085D98(thing->unk0, thing); + SA2_LABEL(sub_8085D98)(thing->unk0, thing); } } -void sa2__sub_8085D78(UNK_8085DEC *thing, UNK_8085DEC *target) +void SA2_LABEL(sub_8085D78)(UNK_8085DEC *thing, UNK_8085DEC *target) { if (target->unk0 != NULL) { - sa2__sub_8085D98(target->unk0, target); + SA2_LABEL(sub_8085D98)(target->unk0, target); } target->unk0 = thing; target->next = thing->start; thing->start = target; } -bool8 sa2__sub_8085D98(UNK_8085DEC *thing, UNK_8085DEC *target) +bool8 SA2_LABEL(sub_8085D98)(UNK_8085DEC *thing, UNK_8085DEC *target) { UNK_8085DEC *curr = thing->start; UNK_8085DEC *prev = NULL; @@ -700,7 +901,7 @@ bool8 sa2__sub_8085D98(UNK_8085DEC *thing, UNK_8085DEC *target) return FALSE; } -u16 sa2__sub_8085DD0(UNK_8085DEC *thing) +u16 SA2_LABEL(sub_8085DD0)(UNK_8085DEC *thing) { u16 num = 0; thing = thing->start; @@ -712,7 +913,7 @@ u16 sa2__sub_8085DD0(UNK_8085DEC *thing) return num; } -UNK_8085DEC *sa2__sub_8085DEC(UNK_8085DEC *thing, u16 num) +UNK_8085DEC *SA2_LABEL(sub_8085DEC)(UNK_8085DEC *thing, u16 num) { thing = thing->start; while (thing != NULL && num != 0) { @@ -723,21 +924,21 @@ UNK_8085DEC *sa2__sub_8085DEC(UNK_8085DEC *thing, u16 num) return thing; } -UNUSED void sa2__sub_8085E10(struct UNK_8085F1C *p1, struct UNK_8085F1C *p2) { memcpy(p2, &p1->unk10, 0x10); } +UNUSED void SA2_LABEL(sub_8085E10)(struct UNK_8085F1C *p1, struct UNK_8085F1C *p2) { memcpy(p2, &p1->unk10, 0x10); } -UNUSED void sa2__sub_8085E24(struct UNK_8085F1C *p1, struct UNK_8085F1C *p2) { memcpy(&p1->unk10, p2, 0x10); } +UNUSED void SA2_LABEL(sub_8085E24)(struct UNK_8085F1C *p1, struct UNK_8085F1C *p2) { memcpy(&p1->unk10, p2, 0x10); } -UNUSED void sa2__sub_8085E38(struct UNK_8085F1C *p1, struct UNK_8085F1C *p2) +UNUSED void SA2_LABEL(sub_8085E38)(struct UNK_8085F1C *p1, struct UNK_8085F1C *p2) { memcpy(p2, &p1->unk10, 0x10); while (p1 = p1->unk0, p1 != NULL) { - sa2__sub_80835E0(p2, &p1->unk10); + SA2_LABEL(sub_80835E0)((UNK_8085D14_2 *)p2, (UNK_8085D14_2 *)&p1->unk10); } } -void sa2__sub_8085E64(struct UNK_8085F1C *p1) +void SA2_LABEL(sub_8085E64)(struct UNK_8085F1C *p1) { u8 i; struct UNK_8085F1C_1 *curr; @@ -762,7 +963,7 @@ void sa2__sub_8085E64(struct UNK_8085F1C *p1) p1->unkC |= 1; } -void sa2__sub_8085E94(struct UNK_8085F1C *p1) +void SA2_LABEL(sub_8085E94)(struct UNK_8085F1C *p1) { p1->unk10 = 1; p1->unk58 = 0; @@ -776,12 +977,12 @@ void sa2__sub_8085E94(struct UNK_8085F1C *p1) p1->unk5C = 0x400; } -struct UNK_8085F1C_1 *sa2__sub_8085EC4(struct UNK_8085F1C *p1) +struct UNK_8085F1C_1 *SA2_LABEL(sub_8085EC4)(struct UNK_8085F1C *p1) { struct UNK_8085F1C_1 *sub = NULL; if (p1->unk0 != NULL) { - sub = sa2__sub_8085EC4(p1); + sub = SA2_LABEL(sub_8085EC4)(p1); } if ((p1->unkC & 3) == 3) { @@ -790,37 +991,37 @@ struct UNK_8085F1C_1 *sa2__sub_8085EC4(struct UNK_8085F1C *p1) } } else { if (!(p1->unkC & 1)) { - sa2__sub_80853F8(p1); + SA2_LABEL(sub_80853F8)(p1); p1->unkC |= 0x1; p1->unkC &= ~0x2; } } - sa2__sub_8083B88(&p1->unk34, sub, &p1->unk14); + SA2_LABEL(sub_8083B88)(&p1->unk34, sub, &p1->unk14); return &p1->unk14; } -struct UNK_8085F1C_1 *sa2__sub_8085F1C(struct UNK_8085F1C *p1) +struct UNK_8085F1C_1 *SA2_LABEL(sub_8085F1C)(struct UNK_8085F1C *p1) { struct UNK_8085F1C_1 *sub = NULL; if (p1->unk0 != NULL) { - sub = sa2__sub_8085EC4(p1); + sub = SA2_LABEL(sub_8085EC4)(p1); } if ((p1->unkC & 3) == 3) { if (sub != NULL) { - sa2__sub_8083B88(&p1->unk34, sub, &p1->unk14); + SA2_LABEL(sub_8083B88)(&p1->unk34, sub, &p1->unk14); } } else { if (!(p1->unkC & 1)) { - sa2__sub_80853F8(p1); + SA2_LABEL(sub_80853F8)(p1); p1->unkC |= 0x1; p1->unkC &= ~0x2; } - sa2__sub_8083B88(&p1->unk34, sub, &p1->unk14); + SA2_LABEL(sub_8083B88)(&p1->unk34, sub, &p1->unk14); } return &p1->unk14;