Decomped sound envelope functions

Contributed by Rhokin in the SkyTemple Discord. https://discord.com/channels/710190644152369162/804247227991326730/1182773685317271634
This commit is contained in:
AnonymousRandomPerson 2023-12-08 22:15:27 -05:00
parent 99b7b9505c
commit ebd2d093b8
81 changed files with 59961 additions and 56798 deletions

View File

@ -5,6 +5,7 @@ PROC_LD := v5te
LCF_TEMPLATE := ARM9-TS.lcf.template
LIBS := -Llib -lsyscall -nostdlib
OPTFLAGS := -O4,s
OPTFLAGS_SDK := -O4,p
include config.mk

View File

@ -176,9 +176,9 @@
.public _022A3806
.public _022B966C
.public __addsf3
.public __divsi3
.public __floatsisf
.public __mulsf3
.public _s32_div_f
.public abs
.public ArrayFill32Fast
.public CART_REMOVED_IMG_DATA

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,9 @@
.public _020AEDB0
.public _022B966C
.public _022BCA70
.public __divsi3
.public __udivsi3
.public _s32_div_f
.public _start_AutoloadDoneCallback
.public _u32_div_f
.public abs
.public ArrayCopy16
.public ArrayCopy32

View File

@ -1,7 +1,7 @@
#pragma once
.public _020B0A5C
.public __divsi3
.public __udivsi3
.public _s32_div_f
.public _u32_div_f
.public ArrayCopy32
.public BAG_ITEMS_PTR_MIRROR
.public CardBackupError

View File

@ -1,7 +1,7 @@
#pragma once
.public _020AE224
.public __divsi3
.public __udivsi3
.public _s32_div_f
.public _u32_div_f
.public ArrayCopy16
.public ArrayCopy32
.public ArrayCopy32Fast

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public CloseCollectionMenu
.public CloseOptionsMenu
.public CloseTextBox

View File

@ -1,7 +1,7 @@
#pragma once
.public _020AFC4C
.public _020B0A5C
.public __divsi3
.public _s32_div_f
.public abs
.public AllocAndLoadFileInPack
.public BAG_ITEMS_PTR_MIRROR

View File

@ -3,9 +3,9 @@
.public _020A548A
.public _020A5490
.public __divsf3
.public __divsi3
.public __fixsfsi
.public __floatsisf
.public _s32_div_f
.public abs
.public AddBulkItemToStorage
.public AddItemToBagNoHeld

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public CloseAdvancedMenu
.public CloseDialogueBox
.public ClosePortraitBox

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AnimRelatedFunction__022F6F14
.public AnimRelatedFunction__022F7064
.public CloseAdvancedMenu

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public CloseAdvancedMenu
.public CloseDialogueBox
.public ClosePortraitBox

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AddItemToBagNoHeld
.public AddItemToStorage
.public Arm9LoadUnkFieldNa0x2029EC8

View File

@ -1,7 +1,7 @@
#pragma once
.public _020A1868
.public _020A18E0
.public __divsi3
.public _s32_div_f
.public CloseCollectionMenu
.public CloseDialogueBox
.public ClosePortraitBox

View File

@ -1,7 +1,7 @@
#pragma once
.public _020AFC4C
.public _020AFC70
.public __divsi3
.public _s32_div_f
.public AllocAndLoadFileInPack
.public ChangeGiratinaFormIfSkyDungeon
.public ClearHiddenStairs

View File

@ -1,6 +1,6 @@
#pragma once
.public _020AFC4C
.public __divsi3
.public _s32_div_f
.public abs
.public DIRECTIONS_XY
.public DISPLACEMENTS_WITHIN_2_LARGEST_FIRST

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AdvanceFrame

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public ChangeDungeonMusic

View File

@ -1,6 +1,6 @@
#pragma once
.public _020AFC4C
.public __divsi3
.public _s32_div_f
.public abs
.public AddHeldItemToBag
.public AddItemToBag

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public ApplyItemEffect
.public AreMovesEnabled

View File

@ -1,6 +1,6 @@
#pragma once
.public _020A1870
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public AiMovement

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public CanLearnIqSkill
.public CanSeeTarget
.public CanThrowItems

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AdvanceFrame
.public CheckLeaderTile
.public CheckNonLeaderTile

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public ActivateMotorDrive

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public AiMovement

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AiConsiderMove

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public CalcDamageFixedNoCategory

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public abs
.public AdvanceFrame
.public AreOrbsAllowedVeneer

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AdvanceFrame

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public ActivateStench
.public AdvanceFrame

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public AddHeldItemToBag
.public AdvanceFrame

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public ATK_STAT_IDX
.public BAG_ITEMS_PTR_MIRROR

View File

@ -1,6 +1,6 @@
#pragma once
.public _020AFC70
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public CalcSpeedStageWrapper
.public CalcStatusDuration

View File

@ -1,7 +1,7 @@
#pragma once
.public _020AFC4C
.public _020AFC70
.public __divsi3
.public _s32_div_f
.public abs
.public AllocAndLoadFileInPack
.public CORNER_CARDINAL_NEIGHBOR_IS_OPEN

View File

@ -1,5 +1,5 @@
#pragma once
.public __divsi3
.public _s32_div_f
.public AddItemToBagNoHeld
.public AddMoneyCarried
.public AdvanceFrame

View File

@ -1,6 +1,6 @@
#pragma once
.public _020AFC4C
.public __divsi3
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AddMoneyCarried

View File

@ -1,6 +1,6 @@
#pragma once
.public _020A1878
.public __divsi3
.public _s32_div_f
.public abs
.public AdvanceFrame
.public ApplyItemEffect

View File

@ -5511,14 +5511,14 @@ sub_0200514C: ; 0x0200514C
mov r8, r0
mla r0, r2, r5, r1
add r1, r5, r4
bl __divsi3
bl _s32_div_f
str r0, [r8]
ldr r0, [r6, #4]
ldr r2, [r7, #4]
mul r1, r0, r4
mla r0, r2, r5, r1
add r1, r5, r4
bl __divsi3
bl _s32_div_f
str r0, [r8, #4]
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end sub_0200514C
@ -12820,17 +12820,17 @@ _0200AF34:
mov r1, #0xff
mul r0, r2, r8
add r5, r5, #2
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #2]
str r0, [sp, #4]
mov r1, #0xff
mul r0, r2, r7
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #1]
str r0, [sp, #8]
mov r1, #0xff
mul r0, r2, r6
bl __divsi3
bl _s32_div_f
ldr r1, [sp, #4]
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
@ -12879,17 +12879,17 @@ _0200B014:
mov r1, #0xff
mul r0, r2, r8
add r5, r5, #2
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #2]
str r0, [sp, #0xc]
mov r1, #0xff
mul r0, r2, r7
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #1]
str r0, [sp, #0x10]
mov r1, #0xff
mul r0, r2, r6
bl __divsi3
bl _s32_div_f
ldr r1, [sp, #0xc]
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
@ -12966,17 +12966,17 @@ _0200B14C:
mov r1, #0xff
mul r0, r2, sb
add r6, r6, #2
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #2]
str r0, [sp, #4]
mov r1, #0xff
mul r0, r2, r8
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #1]
str r0, [sp, #8]
mov r1, #0xff
mul r0, r2, r7
bl __divsi3
bl _s32_div_f
ldr r1, [sp, #4]
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
@ -13025,17 +13025,17 @@ _0200B22C:
mov r1, #0xff
mul r0, r2, sb
add r6, r6, #2
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #2]
str r0, [sp, #0xc]
mov r1, #0xff
mul r0, r2, r8
bl __divsi3
bl _s32_div_f
ldrb r2, [r4, #1]
str r0, [sp, #0x10]
mov r1, #0xff
mul r0, r2, r7
bl __divsi3
bl _s32_div_f
ldr r1, [sp, #0xc]
mov r0, r0, lsl #0x10
mov r1, r1, lsl #0x10
@ -13721,7 +13721,7 @@ _0200BA38:
ldrsh r0, [r4, #0x12]
ldr r1, [r4, #0xc]
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
ldrsh r1, [r4, #0x10]
sub r0, r1, r0
strh r0, [r4, #0x14]
@ -13741,7 +13741,7 @@ _0200BA80:
ldrsh r0, [r4, #0x12]
ldr r1, [r4, #0xc]
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
ldrsh r1, [r4, #0x10]
add r0, r1, r0
strh r0, [r4, #0x14]
@ -13758,7 +13758,7 @@ _0200BAC8:
ldrsh r0, [r4, #0x12]
ldr r1, [r4, #0xc]
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
ldrsh r1, [r4, #0x10]
sub r0, r1, r0
_0200BAF8:
@ -13775,7 +13775,7 @@ _0200BB04:
ldrsh r0, [r4, #0x12]
ldr r1, [r4, #0xc]
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
ldrsh r1, [r4, #0x10]
add r0, r1, r0
_0200BB34:

File diff suppressed because it is too large Load Diff

55871
asm/main_0207509C.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6080,7 +6080,7 @@ ov00_022C16D4: ; 0x022C16D4
stmia r6, {r5, ip}
sub r0, r2, #1
mov r4, r3
bl __divsi3
bl _s32_div_f
str r0, [r6, #0xc]
mov r0, #0
str r0, [r6, #8]
@ -6459,7 +6459,7 @@ _022C1BF4:
mov r8, #0
add r0, r0, r1
sub r0, r0, #1
bl __divsi3
bl _s32_div_f
mov r2, r8
b _022C1C48
_022C1C38:
@ -7571,7 +7571,7 @@ ov00_022C2BB8: ; 0x022C2BB8
add r0, r1, r2
mov r1, r2
sub r0, r0, #1
bl __divsi3
bl _s32_div_f
add r0, r0, #0x1f
bic r0, r0, #0x1f
mov r0, r0, lsl #2
@ -10316,7 +10316,7 @@ _022C50D0:
ldr r8, [r7, #8]
add r0, r8, r1
sub r0, r0, #1
bl __udivsi3
bl _u32_div_f
mov r1, sb, lsl #1
ldrh r3, [r6, r1]
mov r2, r0, lsl #0x10
@ -13684,7 +13684,7 @@ ov00_022C7E20: ; 0x022C7E20
sub r1, r0, #2
mov r0, #0x1e
str r1, [r2, #8]
bl __divsi3
bl _s32_div_f
ldr r1, _022C7E4C ; =ov00_02325064
mov r2, #0x1e
str r0, [r1, #0xc]
@ -21532,7 +21532,7 @@ _022CE6F8:
ble _022CE71C
mov r0, r4
mov r1, r5
bl __divsi3
bl _s32_div_f
cmp r0, #0
mulgt r0, r5, r0
ldmgtia sp!, {r3, r4, r5, pc}
@ -30673,7 +30673,7 @@ _022D611C:
add r0, r0, #0x2000
ldr r6, [r0, #0x284]
mov r0, r6
bl __udivsi3
bl _u32_div_f
cmp r1, #0
bne _022D6188
ldr r4, _022D62C8 ; =0x00000728
@ -32181,7 +32181,7 @@ _022D7530:
add r0, r0, r2
blt _022D7530
_022D7544:
bl __divsi3
bl _s32_div_f
_022D7548:
and r0, r0, #0xff
ldmia sp!, {r3, pc}
@ -60004,7 +60004,7 @@ ov00_022EEB50: ; 0x022EEB50
ldr r0, [r0]
ldr r1, [r1, #0x50]
mla r0, r2, r0, r3
bl __udivsi3
bl _u32_div_f
ldr r0, _022EEB8C ; =ov00_02327720
mov r2, r1, asr #0x10
str r1, [r0]
@ -66693,7 +66693,7 @@ _022F449C:
blo _022F44D4
mov r0, sb
mov r1, r8
bl __udivsi3
bl _u32_div_f
mul r2, r0, r8
cmp sl, #0
addne r0, r0, #0x30
@ -67021,7 +67021,7 @@ ov00_022F4870: ; 0x022F4870
ldr r2, [r5, #0x14]
ldr r1, [r5, #8]
sub r0, r0, r2
bl __divsi3
bl _s32_div_f
mov r2, r0
mov r0, r5
mov r1, r4
@ -67131,7 +67131,7 @@ _022F49F0:
ldr r2, [r7, #0x14]
ldr r1, [r7, #8]
sub r0, r0, r2
bl __divsi3
bl _s32_div_f
add sp, sp, #0xc
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
arm_func_end ov00_022F4968
@ -68187,7 +68187,7 @@ ov00_022F5680: ; 0x022F5680
ldmeqia sp!, {r3, r4, r5, pc}
bl ov00_022F5644
mov r1, r4
bl __udivsi3
bl _u32_div_f
add r0, r1, r5
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov00_022F5680
@ -70539,7 +70539,7 @@ _022F7628:
bl ov00_022F75CC
mov r1, r7
add r0, r5, #1
bl __divsi3
bl _s32_div_f
add r6, r6, #1
cmp r6, #0x100
and r5, r1, #0xff
@ -89999,7 +89999,7 @@ _023086A0:
ov00_023086AC: ; 0x023086AC
stmdb sp!, {r3, lr}
ldr r0, [r0]
bl __divsi3
bl _s32_div_f
mov r0, r1
ldmia sp!, {r3, pc}
arm_func_end ov00_023086AC
@ -94036,7 +94036,7 @@ ov00_0230BFA0: ; 0x0230BFA0
bl ov00_0230C24C
ldr r0, [r0]
ldr r1, [r5]
bl __divsi3
bl _s32_div_f
bl ov00_0230C16C
mov r1, r0
mov r0, r4
@ -94112,7 +94112,7 @@ ov00_0230C098: ; 0x0230C098
ldr r2, [r7]
ldr r0, [r0]
mla r0, r1, r0, r2
bl __divsi3
bl _s32_div_f
bl ov00_0230C16C
mov r1, r0
mov r0, r4
@ -95485,11 +95485,11 @@ _0230D284:
ldrnesb r6, [r0, #-1]
mov r1, r7
add r0, sl, sb
bl __divsi3
bl _s32_div_f
mul r0, r6, r8
mov r6, r1
mov r1, r7
bl __divsi3
bl _s32_div_f
ldr r0, _0230D320 ; =ov00_0231BED4
ldrsb r3, [r0, r6]
ldrsb r2, [r0, r1]
@ -99155,7 +99155,7 @@ ov00_023102C8: ; 0x023102C8
ldrh r0, [r2, #4]
ldr r2, [r2]
mul r0, r2, r0
bl __udivsi3
bl _u32_div_f
mov r0, r1
ldmia sp!, {r3, pc}
arm_func_end ov00_023102C8
@ -102520,7 +102520,7 @@ _02313038:
rsb r2, r3, r2, lsl #24
add r2, r3, r2, ror #24
and r5, r2, #0xff
bl __divsi3
bl _s32_div_f
and r4, r1, #0xff
mov r0, r6
add r1, fp, r5
@ -103992,7 +103992,7 @@ _02314508:
and r0, r5, r0
bls _02314528
mov r1, sb
bl __udivsi3
bl _u32_div_f
mov r0, r1
_02314528:
cmp r0, sb
@ -105558,7 +105558,7 @@ _0231595C:
bne _02315948
_0231596C:
mov r0, ip
bl __udivsi3
bl _u32_div_f
mov r0, r1
ldmia sp!, {r3, pc}
.align 2, 0
@ -106238,7 +106238,7 @@ _02316168:
bne _02316154
_02316178:
mov r0, ip
bl __udivsi3
bl _u32_div_f
mov r0, r1
ldmia sp!, {r3, pc}
.align 2, 0
@ -106824,7 +106824,7 @@ ov00_02316920: ; 0x02316920
_0231694C:
mov r0, r4
mov r1, r5
bl __divsi3
bl _s32_div_f
ldrsb r1, [r6, r1]
mov r2, r4, lsr #0x1f
rsb r0, r2, r4, lsl #29

View File

@ -7757,13 +7757,13 @@ ov01_0232F830: ; 0x0232F830
bl InitPreprocessorArgs
ldr r1, _0232F904 ; =0x00002710
mov r0, r4
bl __udivsi3
bl _u32_div_f
ldr r1, _0232F904 ; =0x00002710
bl __udivsi3
bl _u32_div_f
str r1, [sp, #0x28]
ldr r1, _0232F904 ; =0x00002710
mov r0, r4
bl __udivsi3
bl _u32_div_f
mov r0, r5
str r1, [sp, #0x2c]
bl sub_02027B1C
@ -14316,11 +14316,11 @@ _023350EC:
bge _0233513C
mov r0, r5
mov r1, #0x12
bl __divsi3
bl _s32_div_f
mov r6, r1
mov r0, r5
mov r1, #0x12
bl __divsi3
bl _s32_div_f
mov r1, #0xc
mul r2, r6, r1
mov r1, r0, lsl #4
@ -14486,13 +14486,13 @@ ov01_02335280: ; 0x02335280
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
mov r0, r4
bl __divsi3
bl _s32_div_f
movs r6, r1
movne r5, #2
mov r0, r4
mov r1, #6
moveq r5, #0
bl __divsi3
bl _s32_div_f
add r0, r6, r0, lsl #3
add r0, r0, r5
mov r0, r0, lsl #0x10
@ -18303,7 +18303,7 @@ _02338438:
_02338474:
ldr r0, [sb, #0x58]
mov r1, #0xa
bl __divsi3
bl _s32_div_f
cmp r1, #0
bne _023384B8
ldr r0, _02338844 ; =ov01_0233C210

View File

@ -5556,7 +5556,7 @@ ov02_0232DD08: ; 0x0232DD08
ldr r0, [r0, #4]
sub r0, r0, r4
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
add r0, r4, r0
ldmia sp!, {r4, pc}
arm_func_end ov02_0232DD08
@ -6104,12 +6104,12 @@ _0232E17A:
str r0, [sp, #0x60]
ldr r0, [sp, #0xc]
lsl r1, r1, #2
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x14]
mov r1, #0xfa
ldr r0, [sp, #0xc]
lsl r1, r1, #2
bl __divsi3
bl _s32_div_f
mov r0, #0xfa
lsl r0, r0, #2
mul r0, r1
@ -9352,7 +9352,7 @@ _0232FAF0:
ldr r1, [sp]
add r0, r7, r0
ldr r1, [r1, #0xc]
bl __udivsi3
bl _u32_div_f
ldrb r0, [r4, r1]
add r6, r6, #1
strb r7, [r4, r1]
@ -9408,14 +9408,14 @@ ov02_0232FB4C: ; 0x0232FB4C
ldr r0, [r5]
ldr r1, [sp]
add r0, r0, #1
bl __udivsi3
bl _u32_div_f
lsl r0, r1, #0x18
lsr r7, r0, #0x18
ldrb r6, [r4, r7]
ldr r0, [r5, #4]
ldr r1, [sp]
add r0, r6, r0
bl __udivsi3
bl _u32_div_f
lsl r0, r1, #0x18
lsr r1, r0, #0x18
ldrb r0, [r4, r1]
@ -9425,7 +9425,7 @@ ov02_0232FB4C: ; 0x0232FB4C
strb r0, [r4, r7]
ldr r1, [r5, #0xc]
add r0, r6, r0
bl __udivsi3
bl _u32_div_f
ldrb r0, [r4, r1]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@ -9593,7 +9593,7 @@ ov02_0232FCA0: ; 0x0232FCA0
asr r4, r1, #1
add r1, r6, #0
add r7, r3, #0
bl __divsi3
bl _s32_div_f
mov r0, #0
cmp r4, #0
ble _0232FCD2

View File

@ -5693,7 +5693,7 @@ _02341688:
bge _023416F0
mov r0, r7
mov r1, #0x1b
bl __divsi3
bl _s32_div_f
cmp r1, #0
bne _023416E4
strb r6, [sl, r8]

View File

@ -2498,11 +2498,11 @@ ov10_022BEB2C: ; 0x022BEB2C
mul r2, r0, r6
strh r2, [r4, #0x26]
ldrsh r0, [r4, #0x24]
bl __divsi3
bl _s32_div_f
strh r0, [r4, #0x24]
ldrsh r0, [r4, #0x26]
add r1, r6, #1
bl __divsi3
bl _s32_div_f
strh r0, [r4, #0x26]
ldrsh r0, [r4, #0x26]
sub r0, r0, #9
@ -2828,7 +2828,7 @@ ov10_022BF01C: ; 0x022BF01C
mov r5, r0
mov r0, r6
mov r1, #0x258
bl __divsi3
bl _s32_div_f
mov r1, r1, lsl #0x10
ldrsh r3, [r4, #0x14]
mov r2, #0
@ -2861,7 +2861,7 @@ ov10_022BF088: ; 0x022BF088
mov r5, r0
mov r0, r6
mov r1, #0x258
bl __divsi3
bl _s32_div_f
mov r1, r1, lsl #0x10
ldrsh r3, [r4, #0x14]
mov r2, #0
@ -2894,7 +2894,7 @@ ov10_022BF0F4: ; 0x022BF0F4
mov r5, r0
mov r0, r6
mov r1, #0x258
bl __divsi3
bl _s32_div_f
mov r1, r1, lsl #0x10
ldrsh r3, [r4, #0x14]
mov r2, #0
@ -3618,7 +3618,7 @@ ov10_022BFA3C: ; 0x022BFA3C
mov r5, r0
mov r0, r6
mov r1, #0x258
bl __divsi3
bl _s32_div_f
mov r1, r1, lsl #0x10
ldrsh r3, [r4, #0x14]
mov r2, #0

View File

@ -21718,20 +21718,20 @@ _022EEA00:
_022EEA18:
ldr r0, [r4, #0x3c]
mov r1, #3
bl __divsi3
bl _s32_div_f
str r0, [r4, #0x44]
ldr r0, [r4, #0x40]
mov r1, #3
bl __divsi3
bl _s32_div_f
str r0, [r4, #0x48]
ldr r0, [r4, #0x34]
mov r1, #0x18
bl __divsi3
bl _s32_div_f
add r0, r1, #0x10
str r0, [r4, #0x4c]
ldr r0, [r4, #0x38]
mov r1, #0x18
bl __divsi3
bl _s32_div_f
str r1, [r4, #0x50]
ldmia sp!, {r4, pc}
arm_func_end ov11_022EE9B0
@ -26899,14 +26899,14 @@ _022F2B6C:
ldr r0, [r5]
mov r1, #0x480
add sl, sb, r8
bl __divsi3
bl _s32_div_f
ldr r0, _022F2F10 ; =ov11_023210D4
ldr r0, [r0, r4, lsl #2]
sub r0, r0, r1
str r0, [sb, r8]
ldr r0, [r5, #4]
ldr r1, _022F2F08 ; =0x0000049C
bl __divsi3
bl _s32_div_f
ldr r0, _022F2F10 ; =ov11_023210D4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0x8c]
@ -26971,7 +26971,7 @@ _022F2C74:
mov r0, sl
mov r1, #5
add sb, r6, r8
bl __divsi3
bl _s32_div_f
ldr r0, _022F2F14 ; =ov11_023210AC
ldr r3, [r0, r1, lsl #2]
ldr r1, [r5]
@ -26982,11 +26982,11 @@ _022F2C74:
sub r1, r3, r1
str r1, [r6, r8]
mov r1, #5
bl __divsi3
bl _s32_div_f
mov fp, r0
ldr r0, [r5, #4]
mov r1, #0x300
bl __divsi3
bl _s32_div_f
ldr r0, _022F2F14 ; =ov11_023210AC
add r0, r0, fp, lsl #2
ldr r0, [r0, #0x14]
@ -27049,7 +27049,7 @@ _022F2D7C:
ldrsh r2, [r7, #2]
mov r0, #0xa0
smulbb r0, r2, r0
bl __divsi3
bl _s32_div_f
b _022F2DB8
_022F2DB4:
mov r0, #0xa0
@ -27064,22 +27064,22 @@ _022F2DC8:
mov r0, sl
mov r1, #5
add sb, fp, r8
bl __divsi3
bl _s32_div_f
mov r7, r1
ldr r0, [r5]
mov r1, #0xf0
bl __divsi3
bl _s32_div_f
ldr r0, _022F2F18 ; =ov11_02321098
ldr r2, [r0, r7, lsl #2]
mov r0, sl
sub r1, r2, r1
str r1, [fp, r8]
mov r1, #5
bl __divsi3
bl _s32_div_f
mov r7, r0
ldr r0, [r5, #4]
mov r1, #0x300
bl __divsi3
bl _s32_div_f
ldr r0, _022F2F14 ; =ov11_023210AC
add r0, r0, r7, lsl #2
ldr r0, [r0, #0x14]
@ -66688,7 +66688,7 @@ _02314080:
add r1, r1, r7
str r8, [r1, #0x38]
mov r1, #0xf
bl __divsi3
bl _s32_div_f
ldr r3, [r4]
ldr r1, _023145FC ; =ov11_02323DD0
add r3, r3, r7
@ -66795,7 +66795,7 @@ _02314240:
mul sb, sl, r5
mov r0, sl
mov r1, fp
bl __divsi3
bl _s32_div_f
mov r0, sl, asr #2
add r0, sl, r0, lsr #29
mov r2, r0, asr #3
@ -66907,7 +66907,7 @@ _02314374:
ldr r2, [r7, #0x24]
rsb r2, r2, #0x64
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
mov r1, r5, asr #4
add r2, r7, r4
strh r0, [r2, #0x40]
@ -67208,7 +67208,7 @@ _023147F4:
ldr r1, [r4, #0x28]
ldr r0, [r4, #4]
add r1, r1, #8
bl __divsi3
bl _s32_div_f
cmp r1, #1
bne _0231482C
ldr r0, [r4, #8]
@ -67225,7 +67225,7 @@ _0231482C:
ldr r1, [r4, #0x28]
ldr r0, [r4, #4]
add r1, r1, #8
bl __divsi3
bl _s32_div_f
cmp r1, #0
bne _02314D24
ldr r1, [r4, #8]
@ -67264,7 +67264,7 @@ _023148CC:
ldr r1, [r4, #0x28]
ldr r0, [r4, #4]
add r1, r1, #6
bl __divsi3
bl _s32_div_f
cmp r1, #0
bne _02314D24
ldr r1, [r4, #8]
@ -67275,7 +67275,7 @@ _023148CC:
mov r1, #3
ldr r4, [r0, #8]
mov r0, r4
bl __divsi3
bl _s32_div_f
cmp r1, #0
bne _0231493C
add r0, r4, r4, lsr #31
@ -67295,12 +67295,12 @@ _0231493C:
ldr r0, [r0]
ldr r4, [r0, #8]
mov r0, r4
bl __divsi3
bl _s32_div_f
cmp r1, #0
bne _02314988
mov r0, r4
mov r1, #3
bl __divsi3
bl _s32_div_f
mov r1, r0, lsr #0x1f
rsb r0, r1, r0, lsl #30
add r0, r1, r0, ror #30
@ -67315,12 +67315,12 @@ _02314988:
ldr r0, [r0]
ldr r4, [r0, #8]
mov r0, r4
bl __divsi3
bl _s32_div_f
cmp r1, #1
bne _02314D24
mov r0, r4
mov r1, #3
bl __divsi3
bl _s32_div_f
mov r1, r0, lsr #0x1f
rsb r0, r1, r0, lsl #30
ldr r2, _02314D3C ; =ov11_02324460
@ -67378,7 +67378,7 @@ _02314A38:
mov r0, #0xb7
mul r0, r2, r0
mov r1, #0x140
bl __divsi3
bl _s32_div_f
ldr r0, [sb, #0xc]
mov fp, r1
add r0, r0, #1
@ -67388,7 +67388,7 @@ _02314A9C:
ldr sb, [r4]
mov r1, #3
ldr r0, [sb, #4]
bl __divsi3
bl _s32_div_f
cmp r1, #1
bne _02314CA0
ldr r0, [sb, #8]
@ -67405,7 +67405,7 @@ _02314A9C:
mov r0, #0x9f
mul r0, r2, r0
mov r1, #0x140
bl __divsi3
bl _s32_div_f
ldr r0, [sb, #0x10]
mov fp, r1
add r0, r0, #1
@ -67433,7 +67433,7 @@ _02314B04:
mov r0, #0x92
mul r0, r2, r0
mov r1, #0x140
bl __divsi3
bl _s32_div_f
ldr r0, [sb, #0x14]
mov fp, r1
add r0, r0, #1
@ -67443,7 +67443,7 @@ _02314B70:
ldr sb, [r4]
mov r1, #5
ldr r0, [sb, #4]
bl __divsi3
bl _s32_div_f
cmp r1, #2
bne _02314CA0
ldr r0, [sb, #8]
@ -67460,7 +67460,7 @@ _02314B70:
mov r0, #0x9b
mul r0, r2, r0
mov r1, #0x140
bl __divsi3
bl _s32_div_f
ldr r0, [sb, #0x18]
mov fp, r1
add r0, r0, #1
@ -67471,7 +67471,7 @@ _02314BD8:
mov r1, #5
ldr sb, [r0, #8]
mov r0, sb
bl __divsi3
bl _s32_div_f
cmp r1, #3
bne _02314CA0
mov r1, sb, lsr #0x1f
@ -67486,7 +67486,7 @@ _02314BD8:
ldr r2, [sb, #0x1c]
mov r1, #0x140
mul r0, r2, sl
bl __divsi3
bl _s32_div_f
ldr r0, [sb, #0x1c]
mov fp, r1
add r0, r0, #1
@ -67497,7 +67497,7 @@ _02314C3C:
mov r1, #6
ldr sb, [r0, #8]
mov r0, sb
bl __divsi3
bl _s32_div_f
cmp r1, #3
bne _02314CA0
mov r1, sb, lsr #0x1f
@ -67513,7 +67513,7 @@ _02314C3C:
ldr r0, _02314D40 ; =0x000001BF
mov r1, #0x140
mul r0, r2, r0
bl __divsi3
bl _s32_div_f
ldr r0, [sb, #0x20]
mov fp, r1
add r0, r0, #1
@ -67537,7 +67537,7 @@ _02314CA0:
mov r0, #0x3c00
mul r0, r2, r0
mov r1, r1, lsl #5
bl __divsi3
bl _s32_div_f
ldrh r1, [r6, #0x12]
rsb r0, r0, #0x200
mul r0, r1, r0
@ -68092,18 +68092,18 @@ _02315440:
mov r1, r4
ldrh r4, [r2, r0]
mov r0, #0x1000
bl __divsi3
bl _s32_div_f
mov r1, #0xa
mul r7, r0, r1
mul r0, r5, r4
mov r1, r7
bl __divsi3
bl _s32_div_f
ldr r2, [r8, #4]
mov r1, r7
add r2, r2, r0
mul r0, r6, r4
str r2, [r8, #4]
bl __divsi3
bl _s32_div_f
ldr r1, [r8, #8]
sub r0, r1, r0
str r0, [r8, #8]
@ -68792,7 +68792,7 @@ _02315E68:
add r0, r1, r0, lsr #30
mov r0, r0, asr #2
mov r1, #3
bl __divsi3
bl _s32_div_f
sub r1, r1, #0xc4
ldr r0, _02315ED4 ; =ov11_02324E34
str r1, [r4, #8]

View File

@ -1652,7 +1652,7 @@ _0238B8BC:
_0238B910:
mov r1, #0x15
add r0, r6, r7
bl __divsi3
bl _s32_div_f
mov r0, r1, lsl #1
ldrsh sl, [fp, r0]
mov r1, #0

View File

@ -932,7 +932,7 @@ SentryUpdateDisplay: ; 0x0238ADFC
beq _0238AECC
ldr r0, [r0, #0x874]
mov r1, #0x3c
bl __divsi3
bl _s32_div_f
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
cmp r0, #9
@ -2981,7 +2981,7 @@ SentryStateGetUserChoice: ; 0x0238CA94
ldr r0, [r2]
add r0, r0, #0x3000
ldr r0, [r0, #0x874]
bl __divsi3
bl _s32_div_f
mov r0, r0, lsl #0x10
mov r8, r0, asr #0x10
mov r1, r8, lsr #0x1f
@ -2993,7 +2993,7 @@ SentryStateGetUserChoice: ; 0x0238CA94
ldr r4, [r0]
add r0, r4, #0x3000
ldr r0, [r0, #0x874]
bl __divsi3
bl _s32_div_f
cmp r0, #0x10
bge _0238CDE0
mov r4, #0

View File

@ -2425,7 +2425,7 @@ _0238C448:
bl ov16_0238CC64
bl Rand16Bit
mov r1, #0x64
bl __divsi3
bl _s32_div_f
ldr r0, _0238CADC ; =OVERLAY16_UNKNOWN_POINTER__NA_238CE40
ldr r2, [r0]
strb r1, [r2, #6]

View File

@ -1015,7 +1015,7 @@ _0238AEE8:
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r1, #0x64
bl __divsi3
bl _s32_div_f
mov r5, r1, lsl #0x10
add r0, sb, #0x84
bl sub_02011E18
@ -1028,7 +1028,7 @@ _0238AEE8:
str r5, [sp]
bl Rand16Bit
ldr r1, [r5, #4]
bl __divsi3
bl _s32_div_f
ldr r2, [r5]
mov r0, #0x18
mla r0, r1, r0, r2

View File

@ -957,7 +957,7 @@ _0238AECC:
_0238AF00:
bl Rand16Bit
mov r1, #0x64
bl __divsi3
bl _s32_div_f
ldr r0, _0238B3D8 ; =_020A1868
ldrsh r0, [r0]
cmp r1, r0
@ -1888,7 +1888,7 @@ _0238BCA8:
_0238BCDC:
bl Rand16Bit
mov r1, #0x64
bl __divsi3
bl _s32_div_f
ldr r0, _0238C1B4 ; =_020A1868
ldrsh r0, [r0]
cmp r1, r0

View File

@ -718,7 +718,7 @@ _022DCB24:
mov fp, r6, lsl #5
mov r0, r2, asr #2
mov r6, r3, lsr #0x10
bl __divsi3
bl _s32_div_f
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@ -1374,7 +1374,7 @@ ov29_022DD518: ; 0x022DD518
mov r0, r0, asr #2
smulbb r2, r3, r2
mov r6, r2, lsl #5
bl __divsi3
bl _s32_div_f
mov r0, #1
str r0, [sp]
mov r0, #0xe

View File

@ -1436,7 +1436,7 @@ _022EA848:
bge _022EA910
rsb r0, r1, r1, lsl #8
mov r1, #0x1f
bl __divsi3
bl _s32_div_f
_022EA910:
ldr ip, _022EA95C ; =ov29_0237C850
mov r1, r4, lsl #0x10

View File

@ -163,7 +163,7 @@ _022EACFC: .word 0x000003E6
MusicTableIdxToMusicId: ; 0x022EAD00
stmdb sp!, {r4, lr}
mov r1, #0xaa
bl __divsi3
bl _s32_div_f
ldr r0, _022EAD5C ; =MUSIC_ID_TABLE
mov r1, r1, lsl #1
ldrh r4, [r0, r1]

View File

@ -199,7 +199,7 @@ ov29_022EC8A8: ; 0x022EC8A8
mov r0, r2
mov r1, #0x30
mov r4, r3
bl __divsi3
bl _s32_div_f
mov r3, r1, lsl #1
and r0, r3, #0xff
mov r2, r0, lsr #1

View File

@ -4067,14 +4067,14 @@ _022F3EE0:
ldrsh r0, [r7, r0]
mov r1, #0x18
add r0, r2, r0
bl __divsi3
bl _s32_div_f
ldr r1, _022F40B4 ; =0x0001A226
ldr r3, [sp, #4]
ldrsh r2, [r7, r1]
mov r7, r0
mov r1, #0x18
add r0, r3, r2
bl __divsi3
bl _s32_div_f
mov r8, r0
strh r7, [sb]
strh r8, [sb, #2]

View File

@ -711,7 +711,7 @@ _022F5C3C:
movgt r1, r0
mov r0, r1, lsl #3
mov r1, #0xa
bl __divsi3
bl _s32_div_f
ldrsh r1, [sb, #0x10]
cmp r1, r0
movge r4, #0

View File

@ -6000,7 +6000,7 @@ _022FC128:
str r0, [sp, #4]
mov r0, fp
mov r1, #0x258
bl __divsi3
bl _s32_div_f
ldr r0, _022FC230 ; =DUNGEON_PTR
mov r1, r1, lsl #0x10
ldr r0, [r0]
@ -6078,7 +6078,7 @@ InitEnemyStatsAndMoves: ; 0x022FC234
mov r8, r2
mov r7, r3
ldr r6, [sp, #0x34]
bl __divsi3
bl _s32_div_f
mov r0, r1, lsl #0x10
ldr r2, _022FC464 ; =DUNGEON_PTR
mov r4, r0, asr #0x10

View File

@ -2797,7 +2797,7 @@ _02302580:
mov r1, #0x64
ldrsh r0, [r0]
mov r0, r0, lsl #8
bl __divsi3
bl _s32_div_f
mov r1, r0
mov r0, r6, lsl #8
bl MultiplyByFixedPoint
@ -2812,7 +2812,7 @@ _023025C0:
mov r1, #0x64
ldrsh r0, [r0]
mov r0, r0, lsl #8
bl __divsi3
bl _s32_div_f
mov r1, r0
mov r0, r6, lsl #8
bl MultiplyByFixedPoint
@ -2827,7 +2827,7 @@ _023025F8:
mov r1, #0x64
ldrsh r0, [r0]
mov r0, r0, lsl #8
bl __divsi3
bl _s32_div_f
mov r1, r0
mov r0, r6, lsl #8
bl MultiplyByFixedPoint
@ -2848,7 +2848,7 @@ _02302650:
mov r1, #0x64
ldrsh r0, [r0]
mov r0, r0, lsl #8
bl __divsi3
bl _s32_div_f
mov r1, r0
mov r0, r6, lsl #8
bl MultiplyByFixedPoint

View File

@ -483,7 +483,7 @@ ov29_02304D20: ; 0x02304D20
ldr r1, [r5]
mov r0, #0x18
mov r1, r1, lsl #1
bl __divsi3
bl _s32_div_f
add r1, sb, #0x100
strh r0, [r1, #0xb4]
ldr r0, [sb, #0x1ac]
@ -496,7 +496,7 @@ ov29_02304D20: ; 0x02304D20
str r2, [sb, #0x1b0]
ldr r1, [r1]
mov r1, r1, lsl #1
bl __divsi3
bl _s32_div_f
strh r0, [r7, #0x18]
ldr r0, [r7, #0x10]
mov r0, r0, lsl #1
@ -516,7 +516,7 @@ _02304E80:
ldr r1, [r5]
mov r0, r4
add r1, r1, r1, lsl #1
bl __divsi3
bl _s32_div_f
add r1, r8, #0x100
strh r0, [r1, #0xb4]
ldr r0, [r8, #0x1ac]
@ -540,7 +540,7 @@ _02304E80:
mov r0, #0x18
ldr r1, [r1]
add r1, r1, r1, lsl #1
bl __divsi3
bl _s32_div_f
strh r0, [r7, #0x18]
ldr r0, [r7, #0x10]
add r0, r0, r0, lsl #1
@ -561,7 +561,7 @@ _02304F2C:
ldr r1, [r5]
mov r0, r6
mov r1, r1, lsl #2
bl __divsi3
bl _s32_div_f
add r1, sl, #0x100
strh r0, [r1, #0xb4]
ldr r0, [sl, #0x1ac]
@ -572,11 +572,11 @@ _02304F2C:
mov r0, r0, lsl #2
str r0, [sl, #0x1b0]
ldr r0, [sl, #0x1ac]
bl __divsi3
bl _s32_div_f
str r0, [sl, #0x1ac]
ldr r0, [sl, #0x1b0]
mov r1, #3
bl __divsi3
bl _s32_div_f
add r8, r8, #1
str r0, [sl, #0x1b0]
cmp r8, #3
@ -585,7 +585,7 @@ _02304F2C:
mov r0, #0x18
ldr r1, [r1]
mov r1, r1, lsl #2
bl __divsi3
bl _s32_div_f
strh r0, [r7, #0x18]
ldr r0, [r7, #0x10]
mov r0, r0, lsl #2
@ -597,7 +597,7 @@ _02304F2C:
_02304FC0:
ldr r1, [r5]
mov r0, #0x18
bl __divsi3
bl _s32_div_f
strh r0, [r7, #0x18]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@ -825,7 +825,7 @@ _02305314:
ldr r1, _02305584 ; =ov29_0237C9CC
mov r0, #0x18
ldr r1, [r1]
bl __divsi3
bl _s32_div_f
cmp r5, r0
blt _023051B0
_0230532C:

View File

@ -5681,7 +5681,7 @@ _0230C8E0:
str r0, [r1]
beq _0230C920
mov r1, fp
bl __divsi3
bl _s32_div_f
add r1, sp, #0x90
str r0, [r1]
_0230C920:
@ -5691,7 +5691,7 @@ _0230C920:
add r4, sp, #0x94
mov r1, r0
ldr r0, [r4]
bl __divsi3
bl _s32_div_f
str r0, [r4]
_0230C940:
ldr r0, [sp, #0x90]

View File

@ -165,7 +165,7 @@ _02315348:
mov r1, r1, lsl #8
bl MultiplyByFixedPoint
mov r1, #0x64
bl __divsi3
bl _s32_div_f
add r5, r5, r0, asr #8
_0231537C:
ldrsh r1, [sb, #0x12]
@ -1929,7 +1929,7 @@ _02316C08:
mov r1, r1, lsl #8
bl MultiplyByFixedPoint
mov r1, #0x64
bl __divsi3
bl _s32_div_f
bl sub_02001888
ldr r1, _02317108 ; =0x000003E7
add r8, r8, r0, asr #8

View File

@ -302,7 +302,7 @@ _0231A3A4:
beq _0231A404
ldrsh r0, [r5, #2]
mov r1, #0x258
bl __divsi3
bl _s32_div_f
ldr r0, _0231A45C ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, r1

View File

@ -292,7 +292,7 @@ _0231F1B0:
ldrsh r0, [r0, r1]
mov r1, #3
mov r0, r0, lsl #8
bl __divsi3
bl _s32_div_f
ldrsh sl, [sp, #0x40]
mov r1, #0x18
ldr r2, _0231F560 ; =ov29_0235171E
@ -303,7 +303,7 @@ _0231F1B0:
ldrsh r2, [r2, r3]
mov r1, #3
mov r0, r2, lsl #8
bl __divsi3
bl _s32_div_f
ldrsh r2, [sp, #0x42]
mov r1, #0x18
ldr sl, [r4, #0xc]
@ -313,7 +313,7 @@ _0231F1B0:
ldr r0, [r4, #0x10]
mov r1, sb
sub r0, fp, r0
bl __divsi3
bl _s32_div_f
str sl, [sp, #0x38]
ldr r1, [r4, #0x10]
str r0, [sp, #0x18]
@ -321,7 +321,7 @@ _0231F1B0:
str r1, [sp, #0x3c]
mov r1, sb
mov sl, #0
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x1c]
b _0231F31C
_0231F294:
@ -357,7 +357,7 @@ _0231F294:
_0231F308:
mov r0, #0x800
mov r1, sb
bl __divsi3
bl _s32_div_f
add r7, r7, r0
add sl, sl, #1
_0231F31C:

View File

@ -322,7 +322,7 @@ _0231F9C4:
smulbb r2, r2, fp
add r2, r2, #4
rsb r0, r0, r2, lsl #8
bl __divsi3
bl _s32_div_f
add r1, r4, sb, lsl #3
add r1, r1, #0x1000
str r0, [r1, #0x2f4]
@ -334,7 +334,7 @@ _0231F9C4:
smulbb r0, r0, r5
add r0, r0, #4
rsb r0, r2, r0, lsl #8
bl __divsi3
bl _s32_div_f
add r1, r4, sb, lsl #3
add r1, r1, #0x1000
str r0, [r1, #0x2f8]

View File

@ -150,11 +150,11 @@ _02320394:
sub r0, r6, r8
mov r1, #0xc
mov r5, #0
bl __divsi3
bl _s32_div_f
str r0, [sp]
sub r0, r7, sb
mov r1, #0xc
bl __divsi3
bl _s32_div_f
mov fp, r0
mov r4, r5
_023203C0:

View File

@ -2160,7 +2160,7 @@ _023232E4:
ldrsh r2, [r2, r4]
str r3, [sp, #0x10]
str r2, [sp, #0xc]
bl __divsi3
bl _s32_div_f
ldr r2, [sp, #0x84]
str r0, [sp, #0x18]
mul r1, r2, r0
@ -2175,7 +2175,7 @@ _0232335C:
_02323360:
mov r0, #0x80000
mov sb, #0
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x80]
mov r0, #1
bl ov29_0234B4CC
@ -2623,7 +2623,7 @@ _02323984:
mov r4, r0
mov r1, r6
mov r0, #0x18
bl __divsi3
bl _s32_div_f
str r0, [sp, #4]
ldr r0, [sp]
cmp r0, #2
@ -2643,7 +2643,7 @@ _02323A18:
_02323A20:
mov r0, #0x80000
mov r5, #0
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x1c]
ldrb r2, [r7, #0x4c]
ldr r1, _02323C38 ; =ov29_02352A8C

View File

@ -453,7 +453,7 @@ _0232A9B8:
add r0, r0, #0xc
rsb r0, r1, r0, lsl #8
mov r1, #0xc
bl __divsi3
bl _s32_div_f
ldrsh r3, [sp, #0x26]
mov r1, #0x18
ldr r2, [sb, #0x10]
@ -462,7 +462,7 @@ _0232A9B8:
mov r5, r0
rsb r0, r2, r1, lsl #8
mov r1, #0xc
bl __divsi3
bl _s32_div_f
mov r4, r0
add r0, sb, #4
bl ov29_022E2CA0

View File

@ -1320,7 +1320,7 @@ DoMoveTrumpCard: ; 0x0232D560
mov r0, #0x64
mul r0, r4, r0
moveq r1, #1
bl __divsi3
bl _s32_div_f
cmp r0, #0x19
bgt _0232D5BC
mov r0, r8

View File

@ -411,7 +411,7 @@ DigitCount: ; 0x02335670
b _023356B0
_0233569C:
mov r1, r4
bl __divsi3
bl _s32_div_f
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
add r5, r5, #1
@ -622,7 +622,7 @@ _023358E8:
mov r1, #0xa
strh r2, [sp]
strh fp, [sp, #2]
bl __divsi3
bl _s32_div_f
add r0, sb, r1
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
@ -640,7 +640,7 @@ _023358E8:
bl sub_0201F2A0
mov r0, sl
mov r1, #0xa
bl __divsi3
bl _s32_div_f
mov r0, r0, lsl #0x10
mov sl, r0, asr #0x10
add r0, r4, r7, lsl #3
@ -1588,7 +1588,7 @@ _02336094:
strh sl, [sp, #2]
strh r5, [sp, #8]
strh r5, [sp, #0xa]
bl __divsi3
bl _s32_div_f
mov r0, r1, lsl #3
strh r0, [sp, #0x16]
add r0, sp, #0
@ -1598,7 +1598,7 @@ _02336094:
bl sub_0201F2A0
mov r0, sb
mov r1, #0xa
bl __divsi3
bl _s32_div_f
mov r0, r0, lsl #0x10
mov sb, r0, asr #0x10
add r6, r6, #1

View File

@ -3502,13 +3502,13 @@ _0233A9DC:
_0233A9E4:
ldr r1, [sp, #8]
mov r0, #0x38
bl __divsi3
bl _s32_div_f
cmp r0, #7
movle r0, #1
strle r0, [sp, #8]
ldr r1, [sp, #4]
mov r0, #0x20
bl __divsi3
bl _s32_div_f
ldr r1, [r4]
cmp r0, #7
add r2, r1, #0x4000
@ -5446,13 +5446,13 @@ _0233C584:
_0233C590:
add r1, r4, #4
mov r0, #0x38
bl __divsi3
bl _s32_div_f
mov r6, r0
cmp r6, #2
add r1, r5, #4
mov r0, #0x20
movlt r6, #1
bl __divsi3
bl _s32_div_f
mov r7, r0
cmp r7, #2
movlt r7, #1
@ -6158,7 +6158,7 @@ _0233CFA8:
mov r0, r5
mov r1, r8
str r4, [sl, r6, lsl #2]
bl __divsi3
bl _s32_div_f
add r4, r4, r0
add r6, r6, #1
_0233CFC0:
@ -6173,7 +6173,7 @@ _0233CFDC:
mov r0, r4
mov r1, r7
str r6, [sb, r5, lsl #2]
bl __divsi3
bl _s32_div_f
add r6, r6, r0
add r5, r5, #1
_0233CFF4:
@ -10877,11 +10877,11 @@ _0234113C:
beq _02341228
add r0, r6, r6, lsl #2
mov r1, #0xa
bl __divsi3
bl _s32_div_f
mov r4, r0
mov r0, r6, lsl #3
mov r1, #0xa
bl __divsi3
bl _s32_div_f
mov r1, r0
mov r0, r4
bl DungeonRandRange
@ -11261,11 +11261,11 @@ _023416A0:
beq _02341754
rsb r0, r7, r7, lsl #3
mov r1, #0xa
bl __divsi3
bl _s32_div_f
mov r4, r0
mov r0, r7, lsl #3
mov r1, #0xa
bl __divsi3
bl _s32_div_f
mov r1, r0
mov r0, r4
bl DungeonRandRange
@ -12968,7 +12968,7 @@ _02342E30:
beq _02342EA4
bl DungeonRand16Bit
mov r1, #0x64
bl __divsi3
bl _s32_div_f
mov r5, r1
ldrb r6, [r6, #0x1b]
bl ShouldBoostHiddenStairsSpawnChance
@ -13515,7 +13515,7 @@ _023435BC:
mov fp, r0, lsl #0x10
ldr r0, [sp, #0x18]
mov r1, #0xa
bl __divsi3
bl _s32_div_f
ldr r3, [sl, #4]
ldr r0, [sp, #0x20]
str r3, [sp]

View File

@ -113,7 +113,7 @@ _02344C10:
bne _02344C10
bl DungeonRand16Bit
mov r1, #0xc
bl __divsi3
bl _s32_div_f
add r2, sp, #0
mov r0, #6
smlabb r0, r1, r0, r2

View File

@ -1034,7 +1034,7 @@ _023464C4:
ldr r2, [r6, #0xc]
add r0, r0, #4
rsb r0, r2, r0, lsl #8
bl __divsi3
bl _s32_div_f
add r1, sp, #0x6c
str r0, [r1, r8, lsl #3]
add r0, fp, r8, lsl #2
@ -1045,7 +1045,7 @@ _023464C4:
ldr r2, [r6, #0x10]
add r0, r0, #4
rsb r0, r2, r0, lsl #8
bl __divsi3
bl _s32_div_f
add r1, sp, #0x6c
add r1, r1, r8, lsl #3
str r0, [r1, #4]
@ -2028,7 +2028,7 @@ _02347224:
beq _023472B8
bl DungeonRand16Bit
mov r1, sb
bl __divsi3
bl _s32_div_f
mov r0, r1, lsl #0x10
add r1, sp, #0
mov r0, r0, asr #0x10
@ -2166,12 +2166,12 @@ _02347410:
sub r0, r8, r5
mov r1, #0x18
mov r7, r6
bl __divsi3
bl _s32_div_f
ldr r1, [sp, #0x10]
str r0, [sp, #8]
sub r0, sb, r1
mov r1, #0x18
bl __divsi3
bl _s32_div_f
str r0, [sp, #4]
mov r5, r6
_0234744C:

View File

@ -92,7 +92,7 @@ _02347C8C:
mov r1, fp
mov r0, #0x80000
mov r8, #0
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x18]
ldrsh r0, [r6, #2]
mov r1, #0x1800
@ -103,14 +103,14 @@ _02347C8C:
mul r1, r0, r1
sub r0, r1, r6
mov r1, fp
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x20]
ldr r0, [sp, #0xc]
mov r1, #0x1800
mul r1, r0, r1
sub r0, r1, r7
mov r1, fp
bl __divsi3
bl _s32_div_f
str r0, [sp, #0x1c]
mov r0, r8
str r0, [sp, #0x28]

View File

@ -77,9 +77,10 @@ PRECOMPILE_OBJ_DIR := $(dir $(PRECOMPILE_OBJ))
PRECOMPILE_DEPFILE := $(BUILD_DIR)/precompile/global.d
# Directories
LIB_SUBDIRS := NitroSDK
SRC_SUBDIR := src
ASM_SUBDIR := asm
LIB_SRC_SUBDIR := lib/src
LIB_SRC_SUBDIR := lib/src $(LIB_SUBDIRS:%=lib/%/src)
LIB_ASM_SUBDIR := lib/asm
ALL_SUBDIRS := $(SRC_SUBDIR) $(ASM_SUBDIR) $(LIB_SRC_SUBDIR) $(LIB_ASM_SUBDIR)
@ -117,7 +118,7 @@ XMAP := $(NEF).xMAP
EXCCFLAGS := -Cpp_exceptions off
MWCFLAGS = $(DEFINES) $(OPTFLAGS) -enum int -lang c99 $(EXCCFLAGS) -gccext,on -proc $(PROC) -msgstyle gcc -gccinc -i ./include -i ./include/library -i $(WORK_DIR)/files -I$(WORK_DIR)/lib/include -interworking -inline on,noauto -char signed -W all -W pedantic -W noimpl_signedunsigned -W noimplicitconv -W nounusedarg -W nomissingreturn -W error
MWCFLAGS = $(DEFINES) -enum int -lang c99 $(EXCCFLAGS) -gccext,on -proc $(PROC) -msgstyle gcc -gccinc -i ./include -i ./include/library -i $(WORK_DIR)/files -I$(WORK_DIR)/lib/include -interworking -inline on,noauto -char signed -W all -W pedantic -W noimpl_signedunsigned -W noimplicitconv -W nounusedarg -W nomissingreturn -W error
MWASFLAGS = $(DEFINES) -proc $(PROC_S) -gccinc -i . -i ./include -i $(WORK_DIR)/asm/include -i $(WORK_DIR)/files -i $(WORK_DIR)/lib/asm/include -i $(WORK_DIR)/lib/syscall/asm/include -I$(WORK_DIR)/lib/include -DSDK_ASM
MWLDFLAGS := -proc $(PROC) -nopic -nopid -interworking -map closure,unused -symtab sort -m _start -msgstyle gcc
@ -131,7 +132,8 @@ LIBRARY_INCLUDE_FLAGS := -I$(WORK_DIR)/lib/msl/include/MSL_C $(foreach dname,$(L
SRC_INCLUDE_FLAGS := -i ./include -i ./include/library -i $(WORK_DIR)/files $(LIBRARY_INCLUDE_FLAGS)
SDK_INCLUDE_FLAGS := $(LIBRARY_INCLUDE_FLAGS)
MW_COMPILE_SRC = $(WINE) $(MWCC) $(MWCFLAGS) $(SRC_INCLUDE_FLAGS) -i $(PRECOMPILE_OBJ_DIR) -prefix $(PRECOMPILE_OBJ_BASENAME)
MW_COMPILE_SRC = $(WINE) $(MWCC) $(OPTFLAGS) $(MWCFLAGS) $(SRC_INCLUDE_FLAGS) -i $(PRECOMPILE_OBJ_DIR) -prefix $(PRECOMPILE_OBJ_BASENAME)
MW_COMPILE_LIB = $(WINE) $(MWCC) $(OPTFLAGS_SDK) $(MWCFLAGS) $(SRC_INCLUDE_FLAGS) -i $(PRECOMPILE_OBJ_DIR) -prefix $(PRECOMPILE_OBJ_BASENAME)
MW_COMPILE_SRC_PRECOMPILE = $(WINE) $(MWCC) $(MWCFLAGS) $(SRC_INCLUDE_FLAGS)
MW_ASSEMBLE = $(WINE) $(MWAS) $(MWASFLAGS)
@ -184,6 +186,7 @@ ifeq ($(NODEP),)
DEPFILES := $(ALL_OBJS:%.o=%.d)
MW_COMPILE_SRC += $(DEPFLAGS)
MW_COMPILE_SRC_PRECOMPILE += $(DEPFLAGS)
MW_COMPILE_LIB += $(DEPFLAGS)
$(GLOBAL_ASM_OBJS): BUILD_C_SRC := $(ASM_PROCESSOR) "$(MW_COMPILE_SRC)" "$(MW_ASSEMBLE)"
BUILD_C_SRC ?= $(MW_COMPILE_SRC) -c -o
BUILD_C_LIB := $(MW_COMPILE_LIB) -c -o
@ -202,7 +205,7 @@ $(BUILD_DIR)/src/%.o: src/%.c $(BUILD_DIR)/src/%.d $(PRECOMPILE_OBJ)
$(BUILD_DIR)/lib/%.o: lib/%.c $(NITRO_PRECOMPILE_OBJ)
$(BUILD_DIR)/lib/%.o: lib/%.c $(BUILD_DIR)/lib/%.d $(NITRO_PRECOMPILE_OBJ)
$(MW_COMPILE_LIB) -I$(dir $<) -c -o $@ $<
$(BUILD_C_LIB) $@ $< -I$(dir $<)
@$(call fixdep,$(BUILD_DIR)/lib/$*.d)
$(BUILD_DIR)/%.o: %.s

View File

@ -0,0 +1,62 @@
#ifndef PMDSKY_DC_ENVELOPE_H
#define PMDSKY_DC_ENVELOPE_H
#define ENVELOPE_STATE_OFF ((u8)0x00)
#define ENVELOPE_STATE_CONST ((u8)0x01)
#define ENVELOPE_STATE_DONE ((u8)0x02)
#define ENVELOPE_STATE_ATTACK ((u8)0x03)
#define ENVELOPE_STATE_HOLD ((u8)0x04)
#define ENVELOPE_STATE_DECAY ((u8)0x05)
#define ENVELOPE_STATE_SUSTAIN ((u8)0x06)
#define ENVELOPE_STATE_RELEASE ((u8)0x07)
#define ENVELOPE_STATE_RELEASE_END ((u8)0x08)
struct sound_envelope_parameters
{
u8 use_envelope;
u8 slide_time_multiplier;
u16 unknown;
u32 unknown_2;
//+0x08
u8 attack_begin;
u8 attack_time;
u8 decay_time;
u8 sustain_level;
u8 hold_time;
u8 sustain_time;
u8 release_time;
u8 unknown_3;
//+0x10
};
struct sound_envelope
{
struct sound_envelope_parameters parameters;
//+0x10
s32 current_volume;
s32 volume_delta;
s32 ticks_left;
u8 state;
u8 target_volume;
u8 update_volume;
//+0x20
};
struct driver_work {
u8 fill0[0x27];
s16 usec_per_sound_driver_tick;
};
void SoundEnvelopeReset(struct sound_envelope *envelope);
void SoundEnvelopeParametersReset(struct sound_envelope_parameters *parameters);
void SoundEnvelopeParametersCheckValidity(struct sound_envelope_parameters *parameters);
void SoundEnvelopeSetParameters(struct sound_envelope *envelope, struct sound_envelope_parameters *parameters);
void SoundEnvelopeSetSlide(struct sound_envelope *envelope, s32 target_volume, s32 msec_tab_index);
void UpdateTrackVolumeEnvelopes(struct sound_envelope *envelope);
void SoundEnvelopeRelease(struct sound_envelope *envelope);
void SoundEnvelopeStop(struct sound_envelope *envelope);
void SoundEnvelopeForceVolume(struct sound_envelope *envelope, s32 volume);
void SoundEnvelopeStop2(struct sound_envelope *envelope);
s8 SoundEnvelopeTick(struct sound_envelope *envelope);
#endif //PMDSKY_DC_ENVELOPE_H

View File

@ -0,0 +1,276 @@
#include "dc_envelope.h"
extern u16 MUSIC_DURATION_LOOKUP_TABLE_1[128];
extern u32 MUSIC_DURATION_LOOKUP_TABLE_2[128];
extern struct driver_work DRIVER_WORK;
void SoundEnvelopeReset(struct sound_envelope *envelope)
{
envelope->parameters.use_envelope = 0;
envelope->state = ENVELOPE_STATE_OFF;
envelope->current_volume = 0;
}
void SoundEnvelopeParametersReset(struct sound_envelope_parameters *parameters)
{
/*
parameters->use_envelope = 0;
parameters->slide_time_multiplier = 0xff;
parameters->unknown = 0xffff;
parameters->unknown_2 = 0xffffffff;
parameters->attack_begin = 0xff;
parameters->attack_time = 0xff;
parameters->decay_time = 0xff;
parameters->sustain_level = 0xff;
parameters->hold_time = 0xff;
parameters->sustain_time = 0xff;
parameters->release_time = 0xff;
parameters->unknown_3 = 0xff;
*/
((u32 *)parameters)[0] = 0xffffff00;
((u32 *)parameters)[1] = 0xffffffff;
((u32 *)parameters)[2] = 0xffffffff;
((u32 *)parameters)[3] = 0xffffffff;
}
void SoundEnvelopeParametersCheckValidity(struct sound_envelope_parameters *parameters)
{
parameters->use_envelope = 1;
if (parameters->slide_time_multiplier > 0x7f &&
parameters->attack_begin > 0x7f &&
parameters->attack_time > 0x7f &&
parameters->decay_time > 0x7f &&
parameters->sustain_level > 0x7f &&
parameters->hold_time > 0x7f &&
parameters->sustain_time > 0x7f &&
parameters->release_time > 0x7f)
{
parameters->use_envelope = 0;
}
}
void SoundEnvelopeSetParameters(struct sound_envelope *envelope, struct sound_envelope_parameters *parameters)
{
if (parameters->slide_time_multiplier <= 0x7f)
{
envelope->parameters.slide_time_multiplier = parameters->slide_time_multiplier;
}
if (parameters->attack_begin <= 0x7f)
{
envelope->parameters.attack_begin = parameters->attack_begin;
}
if (parameters->attack_time <= 0x7f)
{
envelope->parameters.attack_time = parameters->attack_time;
}
if (parameters->decay_time <= 0x7f)
{
envelope->parameters.decay_time = parameters->decay_time;
}
if (parameters->sustain_level <= 0x7f)
{
envelope->parameters.sustain_level = parameters->sustain_level;
}
if (parameters->hold_time <= 0x7f)
{
envelope->parameters.hold_time = parameters->hold_time;
}
if (parameters->sustain_time <= 0x7f)
{
envelope->parameters.sustain_time = parameters->sustain_time;
}
if (parameters->release_time <= 0x7f)
{
envelope->parameters.release_time = parameters->release_time;
}
}
void SoundEnvelopeSetSlide(struct sound_envelope *envelope, s32 target_volume, s32 msec_tab_index)
{
u8 slide_time_multiplier;
if (msec_tab_index == 0x7f)
{
envelope->volume_delta = 0;
envelope->ticks_left = 0x7fffffff;
return;
}
envelope->target_volume = (u8)target_volume;
slide_time_multiplier = envelope->parameters.slide_time_multiplier;
if (slide_time_multiplier == 0)
{
envelope->ticks_left = MUSIC_DURATION_LOOKUP_TABLE_2[msec_tab_index] * 1000 / DRIVER_WORK.usec_per_sound_driver_tick;
}
else
{
envelope->ticks_left = slide_time_multiplier * MUSIC_DURATION_LOOKUP_TABLE_1[msec_tab_index] * 1000 / DRIVER_WORK.usec_per_sound_driver_tick;
}
if (envelope->ticks_left != 0)
{
envelope->volume_delta = ((target_volume << 23) - envelope->current_volume) / envelope->ticks_left;
}
else
{
envelope->volume_delta = 0;
}
}
void UpdateTrackVolumeEnvelopes(struct sound_envelope *envelope)
{
if (envelope->parameters.use_envelope)
{
if (envelope->parameters.attack_time != 0)
{
envelope->current_volume = envelope->parameters.attack_begin << 23;
envelope->state = ENVELOPE_STATE_ATTACK;
SoundEnvelopeSetSlide(envelope, 0x7f, envelope->parameters.attack_time);
}
else
{
envelope->current_volume = 0x3f800000;
if (envelope->parameters.hold_time != 0)
{
SoundEnvelopeSetSlide(envelope, 0x7f, envelope->parameters.hold_time);
envelope->state = ENVELOPE_STATE_HOLD;
}
else if (envelope->parameters.decay_time != 0)
{
SoundEnvelopeSetSlide(envelope, (s8)envelope->parameters.sustain_level, envelope->parameters.decay_time);
envelope->state = ENVELOPE_STATE_DECAY;
}
else
{
//Do not set volume to sustain level?
SoundEnvelopeSetSlide(envelope, 0, envelope->parameters.sustain_time);
envelope->state = ENVELOPE_STATE_SUSTAIN;
}
}
envelope->update_volume = 1;
}
else
{
if (envelope->state == ENVELOPE_STATE_CONST)
return;
envelope->state = ENVELOPE_STATE_OFF;
envelope->current_volume = 0x3f800000;
}
}
void SoundEnvelopeRelease(struct sound_envelope *envelope)
{
if (envelope->state == ENVELOPE_STATE_OFF)
return;
SoundEnvelopeSetSlide(envelope, 0, envelope->parameters.release_time);
envelope->state = ENVELOPE_STATE_RELEASE;
}
void SoundEnvelopeStop(struct sound_envelope *envelope)
{
envelope->state = ENVELOPE_STATE_OFF;
envelope->current_volume = 0;
envelope->ticks_left = 0;
envelope->update_volume = 0;
}
void SoundEnvelopeForceVolume(struct sound_envelope *envelope, s32 volume)
{
envelope->parameters.use_envelope = 0;
envelope->state = ENVELOPE_STATE_CONST;
envelope->current_volume = volume;
envelope->ticks_left = 0;
envelope->update_volume = 1;
}
void SoundEnvelopeStop2(struct sound_envelope *envelope)
{
envelope->state = ENVELOPE_STATE_OFF;
envelope->current_volume = 0;
envelope->ticks_left = 0;
envelope->update_volume = 0;
}
s8 SoundEnvelopeTick(struct sound_envelope *envelope)
{
if (envelope->state > ENVELOPE_STATE_DONE) //OFF, CONST, DONE
{
if (envelope->ticks_left == 0)
{
envelope->current_volume = envelope->target_volume << 23;
switch(envelope->state)
{
u8 hold_time, decay_time, sustain_time;
case ENVELOPE_STATE_OFF:
break;
case ENVELOPE_STATE_CONST:
break;
case ENVELOPE_STATE_DONE:
break;
case ENVELOPE_STATE_ATTACK:
hold_time = envelope->parameters.hold_time;
if (hold_time != 0)
{
SoundEnvelopeSetSlide(envelope, 0x7f, hold_time);
envelope->state = ENVELOPE_STATE_HOLD;
break;
}
case ENVELOPE_STATE_HOLD:
decay_time = envelope->parameters.decay_time;
if (decay_time != 0)
{
SoundEnvelopeSetSlide(envelope, (s8)envelope->parameters.sustain_level, decay_time);
envelope->state = ENVELOPE_STATE_DECAY;
break;
}
envelope->current_volume = envelope->parameters.sustain_level << 23;
case ENVELOPE_STATE_DECAY:
sustain_time = envelope->parameters.sustain_time;
if (sustain_time != 0)
{
SoundEnvelopeSetSlide(envelope, 0, sustain_time);
envelope->state = ENVELOPE_STATE_SUSTAIN;
break;
}
case ENVELOPE_STATE_SUSTAIN:
SoundEnvelopeSetSlide(envelope, 0, 0);
envelope->state = ENVELOPE_STATE_DONE;
break;
case ENVELOPE_STATE_RELEASE:
envelope->state = ENVELOPE_STATE_RELEASE_END;
envelope->current_volume = 0;
envelope->ticks_left = 0;
default:
break;
}
}
else
{
s32 next_volume = envelope->current_volume + envelope->volume_delta;
if (next_volume > 0x3fffffff)
{
next_volume = 0x3fffffff;
}
if (next_volume < 0)
{
next_volume = 0;
}
envelope->ticks_left--;
envelope->current_volume = next_volume;
}
}
return (s8)(envelope->current_volume >> 23);
}

View File

@ -13,6 +13,8 @@ Static main
Object src/main_debug.o
Object src/main_pack.o
Object asm/main_0200C4CC.o
Object lib/NitroSDK/src/dc_envelope.o
Object asm/main_0207509C.o
}
Autoload ITCM

View File

@ -1,6 +1,8 @@
from dataclasses import dataclass
MIXED_CASE_SYMBOLS_ARM9 = {
'_s32_div_f': '__divsi3',
'_u32_div_f': '__udivsi3',
'_secure': 'SECURE',
'_start_AutoloadDoneCallback': 'StartAutoloadDoneCallback',
'_start_ModuleParams': 'START_MODULE_PARAMS',

View File

@ -1,6 +1,7 @@
import os
import re
from typing import Any, Dict, List
from ruamel.yaml.comments import CommentedMap
from ruamel.yaml.scalarint import HexCapsInt
from pmdsky_debug_reader import LANGUAGE_KEYS_XMAP_TO_PMDSKY_DEBUG, SYMBOLS_FOLDER, get_pmdsky_debug_location, read_pmdsky_debug_symbols
@ -119,7 +120,7 @@ def sync_xmap_symbol(address: int, symbol: SymbolDetails, language: str, yaml_ma
if not matching_symbol_entry:
matching_symbol_entry = {
'name': base_symbol_name,
'address': {}
'address': CommentedMap()
}
if insert_index is None:
symbol_array.append(matching_symbol_entry)
@ -169,7 +170,7 @@ def sync_xmap_symbol(address: int, symbol: SymbolDetails, language: str, yaml_ma
target_line = None
if symbol_before is not None:
for i, line in enumerate(header_contents):
if symbol.is_data and re.search(fr' {symbol_before}[[;]', line) or symbol.is_data and f' {symbol_before}(' in line:
if symbol.is_data and re.search(fr' {symbol_before}[[;]', line) or not symbol.is_data and f' {symbol_before}(' in line:
target_line = i
break
if target_line is None:
@ -207,6 +208,8 @@ def sync_xmap_symbol(address: int, symbol: SymbolDetails, language: str, yaml_ma
# Write the new symbol within the header file.
symbol_header_path = os.path.join(HEADER_FOLDER, symbol.file_path.replace('.o', '.h'))
if not os.path.exists(symbol_header_path):
symbol_header_path = os.path.join('lib', 'NitroSDK', symbol_header_path)
if symbol.is_data:
if string_length is not None:
symbol_header = f'extern char {base_symbol_name}[{string_length}];\n'