mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Merge pull request #249 from AnonymousRandomPerson/main
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
Added some decomped functions from decomp.me
This commit is contained in:
commit
ffdc33bd45
|
|
@ -1,58 +1,3 @@
|
|||
#pragma once
|
||||
.public _0209E3A1
|
||||
.public _0209E3A2
|
||||
.public _0209E3A3
|
||||
.public _0209E6BD
|
||||
.public _020A192C
|
||||
.public _022AB4F8
|
||||
.public _022AB5AC
|
||||
.public _022AB69C
|
||||
.public _022AB924
|
||||
.public ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS
|
||||
.public ADVENTURE_LOG_PTR
|
||||
.public ARM9_UNKNOWN_DATA__NA_209E6BC
|
||||
.public Copy16BitsFrom
|
||||
.public Copy16BitsTo
|
||||
.public CopyNStringFromId
|
||||
.public DUNGEON_DATA_LIST
|
||||
.public DungeonSwapIdToIdx
|
||||
.public DungeonSwapIdxToId
|
||||
.public GetBaseFormCastformCherrimDeoxys
|
||||
.public GetBodySize
|
||||
.public GetDexNumberVeneer
|
||||
.public GetDungeonMode
|
||||
.public GetDungeonModeSpecial
|
||||
.public GetGameMode
|
||||
.public GetMaxItemsAllowed
|
||||
.public GetMaxMembersAllowed
|
||||
.public GetMaxReachedFloor
|
||||
.public GetMoneyCarried
|
||||
.public GetNameString
|
||||
.public GetNbItemsInBag
|
||||
.public GetPartyMembers
|
||||
.public GetRankUpEntry
|
||||
.public GetResolvedPerformanceProgressFlag
|
||||
.public GetStringFromFileVeneer
|
||||
.public GuestMonsterToGroundMonster
|
||||
.public IsItemValidVeneer
|
||||
.public IsLevelResetDungeon
|
||||
.public IsMoneyAllowed
|
||||
.public IsRealMove
|
||||
.public IsRecruitingAllowed
|
||||
.public LoadScriptVariableValue
|
||||
.public MemZero
|
||||
.public MISSION_FLOOR_RANKS_PTRS
|
||||
.public NormalizeTreasureBox
|
||||
.public OUTLAW_LEVEL_TABLE
|
||||
.public OUTLAW_MINION_LEVEL_TABLE
|
||||
.public PENDING_DUNGEON_ID
|
||||
.public PLAY_TIME_SECONDS
|
||||
.public SECONDARY_TERRAIN_TYPES
|
||||
.public SetResolvedPerformanceProgressFlag
|
||||
.public StrncpyName
|
||||
.public StrncpySimpleNoPad
|
||||
.public StrncpySimpleNoPadSafe
|
||||
.public sub_0204CEE0
|
||||
.public sub_0205EE40
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public TEAM_NAME
|
||||
|
|
|
|||
42
asm/include/main_0204F0A0.inc
Normal file
42
asm/include/main_0204F0A0.inc
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#pragma once
|
||||
.public ADVENTURE_LOG_PTR
|
||||
.public DUNGEON_DATA_LIST
|
||||
.public DungeonSwapIdToIdx
|
||||
.public DungeonSwapIdxToId
|
||||
.public GetBodySize
|
||||
.public GetDungeonMode
|
||||
.public GetDungeonModeSpecial
|
||||
.public GetGameMode
|
||||
.public GetMaxItemsAllowed
|
||||
.public GetMaxMembersAllowed
|
||||
.public GetMaxReachedFloor
|
||||
.public GetMoneyCarried
|
||||
.public GetNameString
|
||||
.public GetNbItemsInBag
|
||||
.public GetPartyMembers
|
||||
.public GetPlayTimeSeconds
|
||||
.public GetResolvedPerformanceProgressFlag
|
||||
.public GuestMonsterToGroundMonster
|
||||
.public IsLevelResetDungeon
|
||||
.public IsMoneyAllowed
|
||||
.public IsRecruitingAllowed
|
||||
.public LoadScriptVariableValue
|
||||
.public MISSION_FLOOR_RANKS_PTRS
|
||||
.public OUTLAW_LEVEL_TABLE
|
||||
.public OUTLAW_MINION_LEVEL_TABLE
|
||||
.public PLAY_TIME_SECONDS
|
||||
.public PlayTimerTick
|
||||
.public ResetPlayTimer
|
||||
.public SECONDARY_TERRAIN_TYPES
|
||||
.public StrncpyName
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public _0209E3A1
|
||||
.public _0209E3A2
|
||||
.public _0209E3A3
|
||||
.public _022AB4F8
|
||||
.public _022AB5AC
|
||||
.public _022AB69C
|
||||
.public sub_0204CEE0
|
||||
.public sub_02050E5C
|
||||
.public sub_02050E8C
|
||||
.public sub_0205EE40
|
||||
27
asm/include/main_0204FE58.inc
Normal file
27
asm/include/main_0204FE58.inc
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#pragma once
|
||||
.public ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS
|
||||
.public ADVENTURE_LOG_PTR
|
||||
.public ARM9_UNKNOWN_DATA__NA_209E6BC
|
||||
.public Copy16BitsFrom
|
||||
.public Copy16BitsTo
|
||||
.public CopyNStringFromId
|
||||
.public GetAdventureLogCompleted
|
||||
.public GetBaseFormCastformCherrimDeoxys
|
||||
.public GetDexNumberVeneer
|
||||
.public GetRankUpEntry
|
||||
.public GetResolvedPerformanceProgressFlag
|
||||
.public GetStringFromFileVeneer
|
||||
.public IsItemValidVeneer
|
||||
.public IsRealMove
|
||||
.public MemZero
|
||||
.public NormalizeTreasureBox
|
||||
.public SetAdventureLogCompleted
|
||||
.public SetResolvedPerformanceProgressFlag
|
||||
.public StrncpyName
|
||||
.public StrncpySimpleNoPad
|
||||
.public StrncpySimpleNoPadSafe
|
||||
.public TEAM_MEMBER_TABLE_PTR
|
||||
.public TEAM_NAME
|
||||
.public _0209E6BD
|
||||
.public _020A192C
|
||||
.public _022AB924
|
||||
|
|
@ -1,28 +1,11 @@
|
|||
#pragma once
|
||||
.public _020A31B8
|
||||
.public _020A31D4
|
||||
.public _020A31E4
|
||||
.public _020A31F4
|
||||
.public _020A31FC
|
||||
.public _020A45C8_JP
|
||||
.public _020B09B0
|
||||
.public _020B09C0
|
||||
.public _s32_div_f
|
||||
.public ARM9_UNKNOWN_PTR__NA_20A2C84
|
||||
.public ArrayCopy32
|
||||
.public ArrayFill32
|
||||
.public DecompressAtNormalVeneer
|
||||
.public GetAtSize
|
||||
.public GetBaseForm
|
||||
.public LoadFileFromRom
|
||||
.public LoadM2nAndN2m
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MONSTER_DATA_TABLE_PTR
|
||||
.public RANK_UP_TABLE
|
||||
.public StringFromId
|
||||
.public strncpy
|
||||
.public _020B09B0
|
||||
.public sub_0200302C
|
||||
.public sub_020030FC
|
||||
.public sub_0200A124
|
||||
|
|
@ -40,6 +23,3 @@
|
|||
.public sub_0200B3C0
|
||||
.public sub_0200B3D4
|
||||
.public sub_0200B3FC
|
||||
.public UnloadFile
|
||||
.public UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
|
||||
.public vsprintf
|
||||
|
|
|
|||
26
asm/include/main_02052060.inc
Normal file
26
asm/include/main_02052060.inc
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
.public ARM9_UNKNOWN_PTR__NA_20A2C84
|
||||
.public GetBaseForm
|
||||
.public LoadFileFromRom
|
||||
.public LoadM2nAndN2m
|
||||
.public MONSTER_DATA_TABLE_PTR
|
||||
.public MemFree
|
||||
.public StringFromId
|
||||
.public UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
|
||||
.public _020A31B8
|
||||
.public _020A31D4
|
||||
.public _020A31E4
|
||||
.public _020A31F4
|
||||
.public _020A31FC
|
||||
.public _020A45C8_JP
|
||||
.public _020B09B0
|
||||
.public _020B09C0
|
||||
.public _s32_div_f
|
||||
.public strncpy
|
||||
.public sub_0200A504
|
||||
.public sub_0200A590
|
||||
.public sub_02051804
|
||||
.public sub_02051D8C
|
||||
.public sub_02051E60
|
||||
.public sub_02051FF0
|
||||
.public vsprintf
|
||||
|
|
@ -1,102 +1,6 @@
|
|||
#pragma once
|
||||
.public _020A94BC
|
||||
.public _020A94C6
|
||||
.public _020A94D2
|
||||
.public _020A9E80
|
||||
.public _020A9EE0
|
||||
.public _020A9F34
|
||||
.public _020A9F48
|
||||
.public _020A9F5C
|
||||
.public _020A9F70
|
||||
.public _020A9F84
|
||||
.public _020A9F98
|
||||
.public _020B0B4C
|
||||
.public _020B0B5C
|
||||
.public _020B0B60
|
||||
.public _020B0B6C
|
||||
.public _020B0B70
|
||||
.public _020B0B74
|
||||
.public _020B1290
|
||||
.public _022B7331
|
||||
.public _022B7334
|
||||
.public _022B7340
|
||||
.public _022B734C
|
||||
.public _022B7A30
|
||||
.public _022B8330
|
||||
.public _022B9130
|
||||
.public _s32_div_f
|
||||
.public CosAbs4096
|
||||
.public Debug_Print0
|
||||
.public DelayWteFree
|
||||
.public DeleteWanTableEntryVeneer
|
||||
.public DRIVER_WORK
|
||||
.public DseBgm_StopAll
|
||||
.public DseBgm_SysSetupNoteList
|
||||
.public DseDriver_StartMainThread
|
||||
.public DseDriver_StartTickTimer
|
||||
.public DseMem_Clear
|
||||
.public DseMem_Quit
|
||||
.public DseSe_StopAll
|
||||
.public DseSe_SysReset
|
||||
.public DseSequence_PauseList
|
||||
.public DseSwd_SysInit
|
||||
.public DseSwd_SysQuit
|
||||
.public DseVoice_ResetAll
|
||||
.public DseVoice_ResetHW
|
||||
.public DUNGEON_SWAP_ID_TABLE
|
||||
.public GetDungeonMode
|
||||
.public GetExecuteSpecialEpisodeType
|
||||
.public InitAnimationControlWithSet__0201C0B0
|
||||
.public LoadScriptVariableValue
|
||||
.public LoadWanTableEntry
|
||||
.public LoadWteFromRom
|
||||
.public MAP_MARKER_PLACEMENTS
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MultiplyByFixedPoint
|
||||
.public ov10_022C2340
|
||||
.public ov10_022C23B0
|
||||
.public ov10_022C23EC
|
||||
.public ov10_022C2450
|
||||
.public ov10_022C24DC
|
||||
.public Rand16Bit
|
||||
.public SetAnimationForAnimationControl
|
||||
.public SetSpriteIdForAnimationControl
|
||||
.public SinAbs4096
|
||||
.public sub_0201CF5C
|
||||
.public sub_0201D12C
|
||||
.public sub_0201D9C8
|
||||
.public sub_0201DF38
|
||||
.public sub_0201E020
|
||||
.public sub_0201E12C
|
||||
.public sub_0201E7D8
|
||||
.public sub_0201F248
|
||||
.public sub_0201F2AC
|
||||
.public sub_0201F324
|
||||
.public sub_0201F348
|
||||
.public sub_0201F36C
|
||||
.public sub_02024934
|
||||
.public sub_0204E6FC
|
||||
.public sub_0204E770
|
||||
.public sub_0204E780
|
||||
.public sub_0206DC78
|
||||
.public sub_0206F6FC
|
||||
.public sub_0206F774
|
||||
.public sub_0206F9A4
|
||||
.public sub_02070124
|
||||
.public sub_02070148
|
||||
.public sub_02070158
|
||||
.public sub_02070188
|
||||
.public sub_020701B0
|
||||
.public sub_02070EA0
|
||||
.public sub_02070F4C
|
||||
.public sub_020729A4
|
||||
.public sub_02075600
|
||||
.public sub_020756E8
|
||||
.public sub_0207A7EC
|
||||
.public sub_0207A8F4
|
||||
.public sub_0207AD54
|
||||
.public sub_0207AEF4
|
||||
.public sub_0207AFF0
|
||||
.public WAN_TABLE
|
||||
|
|
|
|||
97
asm/include/main_0206A878.inc
Normal file
97
asm/include/main_0206A878.inc
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
#pragma once
|
||||
.public CosAbs4096
|
||||
.public DRIVER_WORK
|
||||
.public Debug_Print0
|
||||
.public DelayWteFree
|
||||
.public DeleteWanTableEntryVeneer
|
||||
.public DseBgm_StopAll
|
||||
.public DseBgm_SysSetupNoteList
|
||||
.public DseDriver_StartMainThread
|
||||
.public DseDriver_StartTickTimer
|
||||
.public DseMem_Clear
|
||||
.public DseMem_Quit
|
||||
.public DseSe_StopAll
|
||||
.public DseSe_SysReset
|
||||
.public DseSequence_PauseList
|
||||
.public DseSwd_SysInit
|
||||
.public DseSwd_SysQuit
|
||||
.public DseVoice_ResetAll
|
||||
.public DseVoice_ResetHW
|
||||
.public GetExecuteSpecialEpisodeType
|
||||
.public InitAnimationControlWithSet__0201C0B0
|
||||
.public LoadWanTableEntry
|
||||
.public LoadWteFromRom
|
||||
.public MAP_MARKER_PLACEMENTS
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public MemZero
|
||||
.public MultiplyByFixedPoint
|
||||
.public Rand16Bit
|
||||
.public SetAnimationForAnimationControl
|
||||
.public SetSpriteIdForAnimationControl
|
||||
.public SinAbs4096
|
||||
.public WAN_TABLE
|
||||
.public _020A94BC
|
||||
.public _020A94C6
|
||||
.public _020A94D2
|
||||
.public _020A9E80
|
||||
.public _020A9EE0
|
||||
.public _020A9F34
|
||||
.public _020A9F48
|
||||
.public _020A9F5C
|
||||
.public _020A9F70
|
||||
.public _020A9F84
|
||||
.public _020A9F98
|
||||
.public _020B0B4C
|
||||
.public _020B0B5C
|
||||
.public _020B0B60
|
||||
.public _020B0B6C
|
||||
.public _020B0B70
|
||||
.public _020B0B74
|
||||
.public _020B1290
|
||||
.public _022B7331
|
||||
.public _022B7334
|
||||
.public _022B7340
|
||||
.public _022B734C
|
||||
.public _022B7A30
|
||||
.public _022B8330
|
||||
.public _022B9130
|
||||
.public _s32_div_f
|
||||
.public ov10_022C2340
|
||||
.public ov10_022C23B0
|
||||
.public ov10_022C23EC
|
||||
.public ov10_022C2450
|
||||
.public ov10_022C24DC
|
||||
.public sub_0201CF5C
|
||||
.public sub_0201D12C
|
||||
.public sub_0201D9C8
|
||||
.public sub_0201DF38
|
||||
.public sub_0201E020
|
||||
.public sub_0201E12C
|
||||
.public sub_0201E7D8
|
||||
.public sub_0201F248
|
||||
.public sub_0201F2AC
|
||||
.public sub_0201F324
|
||||
.public sub_0201F348
|
||||
.public sub_0201F36C
|
||||
.public sub_02024934
|
||||
.public sub_0206A7CC
|
||||
.public sub_0206DC78
|
||||
.public sub_0206F6FC
|
||||
.public sub_0206F774
|
||||
.public sub_0206F9A4
|
||||
.public sub_02070124
|
||||
.public sub_02070148
|
||||
.public sub_02070158
|
||||
.public sub_02070188
|
||||
.public sub_020701B0
|
||||
.public sub_02070EA0
|
||||
.public sub_02070F4C
|
||||
.public sub_020729A4
|
||||
.public sub_02075600
|
||||
.public sub_020756E8
|
||||
.public sub_0207A7EC
|
||||
.public sub_0207A8F4
|
||||
.public sub_0207AD54
|
||||
.public sub_0207AEF4
|
||||
.public sub_0207AFF0
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
.text
|
||||
|
||||
; https://decomp.me/scratch/juWhM
|
||||
arm_func_start IsItemInTimeDarkness
|
||||
IsItemInTimeDarkness: ; 0x0200EB30
|
||||
ldr r1, _0200EB54 ; =ITEM_DATA_TABLE_PTRS
|
||||
|
|
|
|||
2762
asm/main_0204EFE0.s
2762
asm/main_0204EFE0.s
File diff suppressed because it is too large
Load Diff
1189
asm/main_0204F0A0.s
Normal file
1189
asm/main_0204F0A0.s
Normal file
File diff suppressed because it is too large
Load Diff
1529
asm/main_0204FE58.s
Normal file
1529
asm/main_0204FE58.s
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -617,588 +617,3 @@ sub_02051FB4: ; 0x02051FB4
|
|||
.align 2, 0
|
||||
_02051FEC: .word _020B09B0
|
||||
arm_func_end sub_02051FB4
|
||||
|
||||
arm_func_start sub_02051FF0
|
||||
sub_02051FF0: ; 0x02051FF0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #8
|
||||
mov r3, r0
|
||||
mov r5, r1
|
||||
add r0, sp, #0
|
||||
mov r1, r3
|
||||
bl LoadFileFromRom
|
||||
ldr r0, [sp]
|
||||
bl GetAtSize
|
||||
mov r4, r0
|
||||
cmp r4, #0
|
||||
ldrle r0, [sp]
|
||||
strle r0, [r5]
|
||||
ldrle r4, [sp, #4]
|
||||
ble _02052054
|
||||
mov r1, #0
|
||||
bl MemAlloc
|
||||
mov r1, r4
|
||||
ldr r2, [sp]
|
||||
mov r4, r0
|
||||
bl DecompressAtNormalVeneer
|
||||
str r4, [r5]
|
||||
add r0, sp, #0
|
||||
ldr r4, [r4, #0xc]
|
||||
bl UnloadFile
|
||||
_02052054:
|
||||
mov r0, r4
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end sub_02051FF0
|
||||
|
||||
arm_func_start sub_02052060
|
||||
sub_02052060: ; 0x02052060
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x2c
|
||||
ldr r4, _020522E4 ; =_020B09B0
|
||||
mov sl, r1
|
||||
ldr r7, [sp, #0x54]
|
||||
ldr r4, [r4]
|
||||
mov r1, #0x30
|
||||
mla r4, r7, r1, r4
|
||||
ldr fp, [sp, #0x50]
|
||||
mov r1, #0x18
|
||||
mla r4, fp, r1, r4
|
||||
mov sb, r2
|
||||
add r1, sp, #0x28
|
||||
mov r2, #0xf
|
||||
mov r8, r3
|
||||
ldr r5, [r4, #0x10]
|
||||
bl sub_02051FF0
|
||||
mov r3, r0
|
||||
ldr r4, [sp, #0x28]
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
ldr r0, _020522E4 ; =_020B09B0
|
||||
ldr r2, [r4, #8]
|
||||
ldr r0, [r0]
|
||||
add r1, r5, sl
|
||||
add r2, r4, r2
|
||||
add r0, r0, #0x60
|
||||
bl sub_02051804
|
||||
mov r0, #1
|
||||
str r0, [sp]
|
||||
mov r1, #0
|
||||
ldr r0, _020522E4 ; =_020B09B0
|
||||
str r1, [sp, #4]
|
||||
ldr r0, [r0]
|
||||
mov r2, r4
|
||||
mov r3, r1
|
||||
add r0, r0, #0x60
|
||||
bl sub_02051804
|
||||
ldr r1, [sp, #0x28]
|
||||
rsb r0, sb, #0x20
|
||||
mov r0, r0, lsl #0x10
|
||||
ldr r1, [r1, #0x10]
|
||||
str r0, [sp, #0x18]
|
||||
add r0, r4, r1
|
||||
str r0, [sp, #0xc]
|
||||
mov r5, #0
|
||||
b _020521CC
|
||||
_02052120:
|
||||
mov r6, #0
|
||||
mov r0, r6
|
||||
str r0, [sp, #8]
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r1, sb, lsl #0x10
|
||||
add r0, r0, sb, lsl #6
|
||||
str r0, [sp, #0x10]
|
||||
mov r0, r1, asr #0x10
|
||||
str r0, [sp, #0x14]
|
||||
_02052144:
|
||||
ldr r0, [sp, #0x10]
|
||||
mov r1, r6, lsl #1
|
||||
ldrh r1, [r1, r0]
|
||||
ldr r2, _020522E8 ; =0x00000FFF
|
||||
mov r0, r6, lsl #0x10
|
||||
and r2, r1, r2
|
||||
mov r2, r2, lsl #0x10
|
||||
mov r1, r1, lsl #4
|
||||
mov r2, r2, lsr #0x10
|
||||
add r1, r8, r1, lsr #16
|
||||
add r2, r2, sl, lsr #5
|
||||
mov r1, r1, lsl #0x1c
|
||||
mov r2, r2, lsl #0x10
|
||||
mov r1, r1, lsr #0x10
|
||||
orr r1, r1, r2, lsr #16
|
||||
mov r1, r1, lsl #0x10
|
||||
mov r2, r1, lsr #0x10
|
||||
ldr r1, [sp, #0x14]
|
||||
mov r0, r0, asr #0x10
|
||||
str r7, [sp]
|
||||
mov r3, fp
|
||||
bl sub_02051D8C
|
||||
ldr r0, [sp, #8]
|
||||
add r6, r6, #1
|
||||
add r0, r0, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
str r0, [sp, #8]
|
||||
cmp r0, #0x20
|
||||
blo _02052144
|
||||
add r0, r5, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r5, r0, lsr #0x10
|
||||
add sb, sb, #1
|
||||
_020521CC:
|
||||
ldr r0, [sp, #0x18]
|
||||
cmp r5, r0, lsr #16
|
||||
blo _02052120
|
||||
mov r0, fp
|
||||
mov r1, r7
|
||||
bl sub_02051E60
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r3, _020522EC ; =ARM9_UNKNOWN_PTR__NA_20A2C84
|
||||
ldr r0, [r0]
|
||||
add r2, sp, #0x1c
|
||||
add r5, r4, r0
|
||||
mov r4, #0
|
||||
mov r1, #4
|
||||
_02052200:
|
||||
ldrb r0, [r3], #1
|
||||
subs r1, r1, #1
|
||||
strb r0, [r2], #1
|
||||
bne _02052200
|
||||
mov r0, #0x28
|
||||
mul r6, r7, r0
|
||||
b _020522B0
|
||||
_0205221C:
|
||||
add r3, sp, #0x1c
|
||||
add r2, sp, #0x20
|
||||
mov r1, #4
|
||||
_02052228:
|
||||
ldrb r0, [r3], #1
|
||||
subs r1, r1, #1
|
||||
strb r0, [r2], #1
|
||||
bne _02052228
|
||||
ldrb r0, [r5]
|
||||
add r3, sp, #0x20
|
||||
add r2, sp, #0x24
|
||||
strb r0, [sp, #0x20]
|
||||
ldrb r0, [r5, #1]
|
||||
mov r1, #4
|
||||
strb r0, [sp, #0x21]
|
||||
ldrb r0, [r5, #2]
|
||||
strb r0, [sp, #0x22]
|
||||
ldrb r0, [r5, #3]
|
||||
strb r0, [sp, #0x23]
|
||||
_02052264:
|
||||
ldrb r0, [r3], #1
|
||||
subs r1, r1, #1
|
||||
strb r0, [r2], #1
|
||||
bne _02052264
|
||||
add r0, r4, r8, lsl #4
|
||||
cmp r0, #0x100
|
||||
bge _020522C8
|
||||
ldr r1, _020522E4 ; =_020B09B0
|
||||
mov r0, r0, lsl #0x10
|
||||
ldr r1, [r1]
|
||||
mov r0, r0, asr #0x10
|
||||
add r3, r1, #0x1cc
|
||||
mov r1, r0, lsl #0x10
|
||||
add r2, sp, #0x24
|
||||
add r0, r3, r6
|
||||
mov r1, r1, lsr #0x10
|
||||
bl sub_0200A590
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
_020522B0:
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r1, [r0, #4]
|
||||
mov r0, r1, asr #1
|
||||
add r0, r1, r0, lsr #30
|
||||
cmp r4, r0, asr #2
|
||||
blt _0205221C
|
||||
_020522C8:
|
||||
ldr r0, _020522E4 ; =_020B09B0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1cc
|
||||
add r0, r0, r6
|
||||
bl sub_0200A504
|
||||
add sp, sp, #0x2c
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_020522E4: .word _020B09B0
|
||||
_020522E8: .word 0x00000FFF
|
||||
_020522EC: .word ARM9_UNKNOWN_PTR__NA_20A2C84
|
||||
arm_func_end sub_02052060
|
||||
|
||||
arm_func_start sub_020522F0
|
||||
sub_020522F0: ; 0x020522F0
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r1
|
||||
bl sub_02051FF0
|
||||
str r0, [r4, #8]
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, #8]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #4]
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, #0x10]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0xc]
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0x10]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_020522F0
|
||||
|
||||
arm_func_start sub_02052334
|
||||
sub_02052334: ; 0x02052334
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
ldr r0, [r4]
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
bl MemFree
|
||||
mov r0, #0
|
||||
str r0, [r4]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_02052334
|
||||
|
||||
arm_func_start LoadMonsterMd
|
||||
LoadMonsterMd: ; 0x02052358
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r0, _02052388 ; =_020B09C0
|
||||
ldr r1, _0205238C ; =_020A31B8
|
||||
mov r2, #0
|
||||
bl LoadFileFromRom
|
||||
bl LoadM2nAndN2m
|
||||
ldr r0, _02052390 ; =MONSTER_DATA_TABLE_PTR
|
||||
ldr r1, [r0, #0xc]
|
||||
#ifdef EUROPE
|
||||
str r1, [r0, #8]
|
||||
#else
|
||||
str r1, [r0, #4]
|
||||
#endif
|
||||
add r1, r1, #8
|
||||
str r1, [r0]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02052388: .word _020B09C0
|
||||
_0205238C: .word _020A31B8
|
||||
_02052390: .word MONSTER_DATA_TABLE_PTR
|
||||
arm_func_end LoadMonsterMd
|
||||
|
||||
arm_func_start GetNameRaw
|
||||
GetNameRaw: ; 0x02052394
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
mov r0, r1
|
||||
mov r1, #0x258
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
mov r1, r0
|
||||
mov r0, r4
|
||||
mov r2, #0x14
|
||||
bl strncpy
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end GetNameRaw
|
||||
|
||||
arm_func_start GetName
|
||||
GetName: ; 0x020523D0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r0, r1
|
||||
mov r1, #0x258
|
||||
mov r4, r2
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
mov r3, r0
|
||||
mov r0, r5
|
||||
mov r2, r4
|
||||
ldr r1, _02052414 ; =_020A31D4
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02052414: .word _020A31D4
|
||||
arm_func_end GetName
|
||||
|
||||
arm_func_start SprintfStatic__02052418
|
||||
SprintfStatic__02052418: ; 0x02052418
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
stmdb sp!, {r3, lr}
|
||||
add r2, sp, #0xc
|
||||
bic r2, r2, #3
|
||||
ldr r1, [sp, #0xc]
|
||||
add r2, r2, #4
|
||||
bl vsprintf
|
||||
ldmia sp!, {r3, lr}
|
||||
add sp, sp, #0x10
|
||||
bx lr
|
||||
arm_func_end SprintfStatic__02052418
|
||||
|
||||
arm_func_start GetNameWithGender
|
||||
GetNameWithGender: ; 0x02052440
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
#endif
|
||||
mov r5, r1
|
||||
mov r6, r0
|
||||
mov r0, r5
|
||||
mov r1, #0x258
|
||||
mov r4, r2
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
ldr r2, _020524F4 ; =MONSTER_DATA_TABLE_PTR
|
||||
mov r1, #0x44
|
||||
ldr r2, [r2]
|
||||
mov r3, r0
|
||||
smlabb r0, r5, r1, r2
|
||||
ldrb r0, [r0, #0x12]
|
||||
cmp r0, #3
|
||||
cmpne r5, #0x1d
|
||||
cmpne r5, #0x20
|
||||
bne _020524B0
|
||||
ldr r1, _020524F8 ; =_020A31D4
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
bl SprintfStatic__02052418
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
#else
|
||||
b _020524EC
|
||||
#endif
|
||||
_020524B0:
|
||||
cmp r0, #2
|
||||
bne _020524D4
|
||||
ldr r1, _020524FC ; =_020A31E4
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_020524D4:
|
||||
ldr r1, _02052838_JP ; =_020A45C8_JP
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
#else
|
||||
mov r5, #0xbe
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
str r5, [sp]
|
||||
bl SprintfStatic__02052418
|
||||
b _020524EC
|
||||
_020524D4:
|
||||
ldr r1, _020524FC ; =_020A31E4
|
||||
mov r5, #0xbd
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
str r5, [sp]
|
||||
bl SprintfStatic__02052418
|
||||
_020524EC:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
#endif
|
||||
.align 2, 0
|
||||
_020524F4: .word MONSTER_DATA_TABLE_PTR
|
||||
_020524F8: .word _020A31D4
|
||||
_020524FC: .word _020A31E4
|
||||
#ifdef JAPAN
|
||||
_02052838_JP: .word _020A45C8_JP
|
||||
#endif
|
||||
arm_func_end GetNameWithGender
|
||||
|
||||
arm_func_start GetSpeciesString
|
||||
GetSpeciesString: ; 0x02052500
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r4, r1
|
||||
mov r5, r0
|
||||
mov r0, r4
|
||||
bl GetBaseForm
|
||||
cmp r0, #0xc9
|
||||
bne _02052684
|
||||
cmp r4, #0xca
|
||||
moveq r4, #1
|
||||
beq _02052660
|
||||
cmp r4, #0xcb
|
||||
moveq r4, #2
|
||||
beq _02052660
|
||||
cmp r4, #0xcc
|
||||
moveq r4, #3
|
||||
beq _02052660
|
||||
cmp r4, #0xcd
|
||||
moveq r4, #4
|
||||
beq _02052660
|
||||
cmp r4, #0xce
|
||||
moveq r4, #5
|
||||
beq _02052660
|
||||
cmp r4, #0xcf
|
||||
moveq r4, #6
|
||||
beq _02052660
|
||||
cmp r4, #0xd0
|
||||
moveq r4, #7
|
||||
beq _02052660
|
||||
cmp r4, #0xd1
|
||||
moveq r4, #8
|
||||
beq _02052660
|
||||
cmp r4, #0xd2
|
||||
moveq r4, #9
|
||||
beq _02052660
|
||||
cmp r4, #0xd3
|
||||
moveq r4, #0xa
|
||||
beq _02052660
|
||||
cmp r4, #0xd4
|
||||
moveq r4, #0xb
|
||||
beq _02052660
|
||||
cmp r4, #0xd5
|
||||
moveq r4, #0xc
|
||||
beq _02052660
|
||||
cmp r4, #0xd6
|
||||
moveq r4, #0xd
|
||||
beq _02052660
|
||||
cmp r4, #0xd7
|
||||
moveq r4, #0xe
|
||||
beq _02052660
|
||||
cmp r4, #0xd8
|
||||
moveq r4, #0xf
|
||||
beq _02052660
|
||||
cmp r4, #0xd9
|
||||
moveq r4, #0x10
|
||||
beq _02052660
|
||||
cmp r4, #0xda
|
||||
moveq r4, #0x11
|
||||
beq _02052660
|
||||
cmp r4, #0xdb
|
||||
moveq r4, #0x12
|
||||
beq _02052660
|
||||
cmp r4, #0xdc
|
||||
moveq r4, #0x13
|
||||
beq _02052660
|
||||
cmp r4, #0xdd
|
||||
moveq r4, #0x14
|
||||
beq _02052660
|
||||
cmp r4, #0xde
|
||||
moveq r4, #0x15
|
||||
beq _02052660
|
||||
cmp r4, #0xdf
|
||||
moveq r4, #0x16
|
||||
beq _02052660
|
||||
cmp r4, #0xe0
|
||||
moveq r4, #0x17
|
||||
beq _02052660
|
||||
cmp r4, #0xe1
|
||||
moveq r4, #0x18
|
||||
beq _02052660
|
||||
cmp r4, #0xe2
|
||||
moveq r4, #0x19
|
||||
beq _02052660
|
||||
cmp r4, #0xe3
|
||||
moveq r4, #0x1a
|
||||
beq _02052660
|
||||
cmp r4, #0xe4
|
||||
moveq r4, #0x1b
|
||||
movne r4, #0
|
||||
_02052660:
|
||||
ldr r0, _020526B8 ; =0x000022E8
|
||||
bl StringFromId
|
||||
ldr r1, _020526BC ; =UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
|
||||
mov r2, r0
|
||||
ldr r3, [r1, r4, lsl #2]
|
||||
ldr r1, _020526C0 ; =_020A31F4
|
||||
mov r0, r5
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_02052684:
|
||||
mov r0, r4
|
||||
mov r1, #0x258
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
mov r2, r0
|
||||
ldr r1, _020526C4 ; =_020A31FC
|
||||
mov r0, r5
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#if defined(EUROPE)
|
||||
_020526B8: .word 0x000022EA
|
||||
#elif defined(JAPAN)
|
||||
_020526B8: .word 0x00001659
|
||||
#else
|
||||
_020526B8: .word 0x000022E8
|
||||
#endif
|
||||
_020526BC: .word UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
|
||||
_020526C0: .word _020A31F4
|
||||
_020526C4: .word _020A31FC
|
||||
arm_func_end GetSpeciesString
|
||||
|
||||
arm_func_start GetNameString
|
||||
GetNameString: ; 0x020526C8
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r1, #0x258
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end GetNameString
|
||||
|
|
|
|||
556
asm/main_02052060.s
Normal file
556
asm/main_02052060.s
Normal file
|
|
@ -0,0 +1,556 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "main_02052060.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start sub_02052060
|
||||
sub_02052060: ; 0x02052060
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x2c
|
||||
ldr r4, _020522E4 ; =_020B09B0
|
||||
mov sl, r1
|
||||
ldr r7, [sp, #0x54]
|
||||
ldr r4, [r4]
|
||||
mov r1, #0x30
|
||||
mla r4, r7, r1, r4
|
||||
ldr fp, [sp, #0x50]
|
||||
mov r1, #0x18
|
||||
mla r4, fp, r1, r4
|
||||
mov sb, r2
|
||||
add r1, sp, #0x28
|
||||
mov r2, #0xf
|
||||
mov r8, r3
|
||||
ldr r5, [r4, #0x10]
|
||||
bl sub_02051FF0
|
||||
mov r3, r0
|
||||
ldr r4, [sp, #0x28]
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
ldr r0, _020522E4 ; =_020B09B0
|
||||
ldr r2, [r4, #8]
|
||||
ldr r0, [r0]
|
||||
add r1, r5, sl
|
||||
add r2, r4, r2
|
||||
add r0, r0, #0x60
|
||||
bl sub_02051804
|
||||
mov r0, #1
|
||||
str r0, [sp]
|
||||
mov r1, #0
|
||||
ldr r0, _020522E4 ; =_020B09B0
|
||||
str r1, [sp, #4]
|
||||
ldr r0, [r0]
|
||||
mov r2, r4
|
||||
mov r3, r1
|
||||
add r0, r0, #0x60
|
||||
bl sub_02051804
|
||||
ldr r1, [sp, #0x28]
|
||||
rsb r0, sb, #0x20
|
||||
mov r0, r0, lsl #0x10
|
||||
ldr r1, [r1, #0x10]
|
||||
str r0, [sp, #0x18]
|
||||
add r0, r4, r1
|
||||
str r0, [sp, #0xc]
|
||||
mov r5, #0
|
||||
b _020521CC
|
||||
_02052120:
|
||||
mov r6, #0
|
||||
mov r0, r6
|
||||
str r0, [sp, #8]
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r1, sb, lsl #0x10
|
||||
add r0, r0, sb, lsl #6
|
||||
str r0, [sp, #0x10]
|
||||
mov r0, r1, asr #0x10
|
||||
str r0, [sp, #0x14]
|
||||
_02052144:
|
||||
ldr r0, [sp, #0x10]
|
||||
mov r1, r6, lsl #1
|
||||
ldrh r1, [r1, r0]
|
||||
ldr r2, _020522E8 ; =0x00000FFF
|
||||
mov r0, r6, lsl #0x10
|
||||
and r2, r1, r2
|
||||
mov r2, r2, lsl #0x10
|
||||
mov r1, r1, lsl #4
|
||||
mov r2, r2, lsr #0x10
|
||||
add r1, r8, r1, lsr #16
|
||||
add r2, r2, sl, lsr #5
|
||||
mov r1, r1, lsl #0x1c
|
||||
mov r2, r2, lsl #0x10
|
||||
mov r1, r1, lsr #0x10
|
||||
orr r1, r1, r2, lsr #16
|
||||
mov r1, r1, lsl #0x10
|
||||
mov r2, r1, lsr #0x10
|
||||
ldr r1, [sp, #0x14]
|
||||
mov r0, r0, asr #0x10
|
||||
str r7, [sp]
|
||||
mov r3, fp
|
||||
bl sub_02051D8C
|
||||
ldr r0, [sp, #8]
|
||||
add r6, r6, #1
|
||||
add r0, r0, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
str r0, [sp, #8]
|
||||
cmp r0, #0x20
|
||||
blo _02052144
|
||||
add r0, r5, #1
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r5, r0, lsr #0x10
|
||||
add sb, sb, #1
|
||||
_020521CC:
|
||||
ldr r0, [sp, #0x18]
|
||||
cmp r5, r0, lsr #16
|
||||
blo _02052120
|
||||
mov r0, fp
|
||||
mov r1, r7
|
||||
bl sub_02051E60
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r3, _020522EC ; =ARM9_UNKNOWN_PTR__NA_20A2C84
|
||||
ldr r0, [r0]
|
||||
add r2, sp, #0x1c
|
||||
add r5, r4, r0
|
||||
mov r4, #0
|
||||
mov r1, #4
|
||||
_02052200:
|
||||
ldrb r0, [r3], #1
|
||||
subs r1, r1, #1
|
||||
strb r0, [r2], #1
|
||||
bne _02052200
|
||||
mov r0, #0x28
|
||||
mul r6, r7, r0
|
||||
b _020522B0
|
||||
_0205221C:
|
||||
add r3, sp, #0x1c
|
||||
add r2, sp, #0x20
|
||||
mov r1, #4
|
||||
_02052228:
|
||||
ldrb r0, [r3], #1
|
||||
subs r1, r1, #1
|
||||
strb r0, [r2], #1
|
||||
bne _02052228
|
||||
ldrb r0, [r5]
|
||||
add r3, sp, #0x20
|
||||
add r2, sp, #0x24
|
||||
strb r0, [sp, #0x20]
|
||||
ldrb r0, [r5, #1]
|
||||
mov r1, #4
|
||||
strb r0, [sp, #0x21]
|
||||
ldrb r0, [r5, #2]
|
||||
strb r0, [sp, #0x22]
|
||||
ldrb r0, [r5, #3]
|
||||
strb r0, [sp, #0x23]
|
||||
_02052264:
|
||||
ldrb r0, [r3], #1
|
||||
subs r1, r1, #1
|
||||
strb r0, [r2], #1
|
||||
bne _02052264
|
||||
add r0, r4, r8, lsl #4
|
||||
cmp r0, #0x100
|
||||
bge _020522C8
|
||||
ldr r1, _020522E4 ; =_020B09B0
|
||||
mov r0, r0, lsl #0x10
|
||||
ldr r1, [r1]
|
||||
mov r0, r0, asr #0x10
|
||||
add r3, r1, #0x1cc
|
||||
mov r1, r0, lsl #0x10
|
||||
add r2, sp, #0x24
|
||||
add r0, r3, r6
|
||||
mov r1, r1, lsr #0x10
|
||||
bl sub_0200A590
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
_020522B0:
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r1, [r0, #4]
|
||||
mov r0, r1, asr #1
|
||||
add r0, r1, r0, lsr #30
|
||||
cmp r4, r0, asr #2
|
||||
blt _0205221C
|
||||
_020522C8:
|
||||
ldr r0, _020522E4 ; =_020B09B0
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x1cc
|
||||
add r0, r0, r6
|
||||
bl sub_0200A504
|
||||
add sp, sp, #0x2c
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_020522E4: .word _020B09B0
|
||||
_020522E8: .word 0x00000FFF
|
||||
_020522EC: .word ARM9_UNKNOWN_PTR__NA_20A2C84
|
||||
arm_func_end sub_02052060
|
||||
|
||||
arm_func_start sub_020522F0
|
||||
sub_020522F0: ; 0x020522F0
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r1
|
||||
bl sub_02051FF0
|
||||
str r0, [r4, #8]
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, #8]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #4]
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, #0x10]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0xc]
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0x10]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_020522F0
|
||||
|
||||
arm_func_start sub_02052334
|
||||
sub_02052334: ; 0x02052334
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
ldr r0, [r4]
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r4, pc}
|
||||
bl MemFree
|
||||
mov r0, #0
|
||||
str r0, [r4]
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end sub_02052334
|
||||
|
||||
arm_func_start LoadMonsterMd
|
||||
LoadMonsterMd: ; 0x02052358
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r0, _02052388 ; =_020B09C0
|
||||
ldr r1, _0205238C ; =_020A31B8
|
||||
mov r2, #0
|
||||
bl LoadFileFromRom
|
||||
bl LoadM2nAndN2m
|
||||
ldr r0, _02052390 ; =MONSTER_DATA_TABLE_PTR
|
||||
ldr r1, [r0, #0xc]
|
||||
#ifdef EUROPE
|
||||
str r1, [r0, #8]
|
||||
#else
|
||||
str r1, [r0, #4]
|
||||
#endif
|
||||
add r1, r1, #8
|
||||
str r1, [r0]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_02052388: .word _020B09C0
|
||||
_0205238C: .word _020A31B8
|
||||
_02052390: .word MONSTER_DATA_TABLE_PTR
|
||||
arm_func_end LoadMonsterMd
|
||||
|
||||
arm_func_start GetNameRaw
|
||||
GetNameRaw: ; 0x02052394
|
||||
stmdb sp!, {r4, lr}
|
||||
mov r4, r0
|
||||
mov r0, r1
|
||||
mov r1, #0x258
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
mov r1, r0
|
||||
mov r0, r4
|
||||
mov r2, #0x14
|
||||
bl strncpy
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end GetNameRaw
|
||||
|
||||
arm_func_start GetName
|
||||
GetName: ; 0x020523D0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r0, r1
|
||||
mov r1, #0x258
|
||||
mov r4, r2
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
mov r3, r0
|
||||
mov r0, r5
|
||||
mov r2, r4
|
||||
ldr r1, _02052414 ; =_020A31D4
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02052414: .word _020A31D4
|
||||
arm_func_end GetName
|
||||
|
||||
arm_func_start SprintfStatic__02052418
|
||||
SprintfStatic__02052418: ; 0x02052418
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
stmdb sp!, {r3, lr}
|
||||
add r2, sp, #0xc
|
||||
bic r2, r2, #3
|
||||
ldr r1, [sp, #0xc]
|
||||
add r2, r2, #4
|
||||
bl vsprintf
|
||||
ldmia sp!, {r3, lr}
|
||||
add sp, sp, #0x10
|
||||
bx lr
|
||||
arm_func_end SprintfStatic__02052418
|
||||
|
||||
arm_func_start GetNameWithGender
|
||||
GetNameWithGender: ; 0x02052440
|
||||
#ifdef JAPAN
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
#else
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
#endif
|
||||
mov r5, r1
|
||||
mov r6, r0
|
||||
mov r0, r5
|
||||
mov r1, #0x258
|
||||
mov r4, r2
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
ldr r2, _020524F4 ; =MONSTER_DATA_TABLE_PTR
|
||||
mov r1, #0x44
|
||||
ldr r2, [r2]
|
||||
mov r3, r0
|
||||
smlabb r0, r5, r1, r2
|
||||
ldrb r0, [r0, #0x12]
|
||||
cmp r0, #3
|
||||
cmpne r5, #0x1d
|
||||
cmpne r5, #0x20
|
||||
bne _020524B0
|
||||
ldr r1, _020524F8 ; =_020A31D4
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
bl SprintfStatic__02052418
|
||||
#ifdef JAPAN
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
#else
|
||||
b _020524EC
|
||||
#endif
|
||||
_020524B0:
|
||||
cmp r0, #2
|
||||
bne _020524D4
|
||||
ldr r1, _020524FC ; =_020A31E4
|
||||
#ifdef JAPAN
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
_020524D4:
|
||||
ldr r1, _02052838_JP ; =_020A45C8_JP
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
#else
|
||||
mov r5, #0xbe
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
str r5, [sp]
|
||||
bl SprintfStatic__02052418
|
||||
b _020524EC
|
||||
_020524D4:
|
||||
ldr r1, _020524FC ; =_020A31E4
|
||||
mov r5, #0xbd
|
||||
mov r0, r6
|
||||
mov r2, r4
|
||||
str r5, [sp]
|
||||
bl SprintfStatic__02052418
|
||||
_020524EC:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
#endif
|
||||
.align 2, 0
|
||||
_020524F4: .word MONSTER_DATA_TABLE_PTR
|
||||
_020524F8: .word _020A31D4
|
||||
_020524FC: .word _020A31E4
|
||||
#ifdef JAPAN
|
||||
_02052838_JP: .word _020A45C8_JP
|
||||
#endif
|
||||
arm_func_end GetNameWithGender
|
||||
|
||||
arm_func_start GetSpeciesString
|
||||
GetSpeciesString: ; 0x02052500
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r4, r1
|
||||
mov r5, r0
|
||||
mov r0, r4
|
||||
bl GetBaseForm
|
||||
cmp r0, #0xc9
|
||||
bne _02052684
|
||||
cmp r4, #0xca
|
||||
moveq r4, #1
|
||||
beq _02052660
|
||||
cmp r4, #0xcb
|
||||
moveq r4, #2
|
||||
beq _02052660
|
||||
cmp r4, #0xcc
|
||||
moveq r4, #3
|
||||
beq _02052660
|
||||
cmp r4, #0xcd
|
||||
moveq r4, #4
|
||||
beq _02052660
|
||||
cmp r4, #0xce
|
||||
moveq r4, #5
|
||||
beq _02052660
|
||||
cmp r4, #0xcf
|
||||
moveq r4, #6
|
||||
beq _02052660
|
||||
cmp r4, #0xd0
|
||||
moveq r4, #7
|
||||
beq _02052660
|
||||
cmp r4, #0xd1
|
||||
moveq r4, #8
|
||||
beq _02052660
|
||||
cmp r4, #0xd2
|
||||
moveq r4, #9
|
||||
beq _02052660
|
||||
cmp r4, #0xd3
|
||||
moveq r4, #0xa
|
||||
beq _02052660
|
||||
cmp r4, #0xd4
|
||||
moveq r4, #0xb
|
||||
beq _02052660
|
||||
cmp r4, #0xd5
|
||||
moveq r4, #0xc
|
||||
beq _02052660
|
||||
cmp r4, #0xd6
|
||||
moveq r4, #0xd
|
||||
beq _02052660
|
||||
cmp r4, #0xd7
|
||||
moveq r4, #0xe
|
||||
beq _02052660
|
||||
cmp r4, #0xd8
|
||||
moveq r4, #0xf
|
||||
beq _02052660
|
||||
cmp r4, #0xd9
|
||||
moveq r4, #0x10
|
||||
beq _02052660
|
||||
cmp r4, #0xda
|
||||
moveq r4, #0x11
|
||||
beq _02052660
|
||||
cmp r4, #0xdb
|
||||
moveq r4, #0x12
|
||||
beq _02052660
|
||||
cmp r4, #0xdc
|
||||
moveq r4, #0x13
|
||||
beq _02052660
|
||||
cmp r4, #0xdd
|
||||
moveq r4, #0x14
|
||||
beq _02052660
|
||||
cmp r4, #0xde
|
||||
moveq r4, #0x15
|
||||
beq _02052660
|
||||
cmp r4, #0xdf
|
||||
moveq r4, #0x16
|
||||
beq _02052660
|
||||
cmp r4, #0xe0
|
||||
moveq r4, #0x17
|
||||
beq _02052660
|
||||
cmp r4, #0xe1
|
||||
moveq r4, #0x18
|
||||
beq _02052660
|
||||
cmp r4, #0xe2
|
||||
moveq r4, #0x19
|
||||
beq _02052660
|
||||
cmp r4, #0xe3
|
||||
moveq r4, #0x1a
|
||||
beq _02052660
|
||||
cmp r4, #0xe4
|
||||
moveq r4, #0x1b
|
||||
movne r4, #0
|
||||
_02052660:
|
||||
ldr r0, _020526B8 ; =0x000022E8
|
||||
bl StringFromId
|
||||
ldr r1, _020526BC ; =UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
|
||||
mov r2, r0
|
||||
ldr r3, [r1, r4, lsl #2]
|
||||
ldr r1, _020526C0 ; =_020A31F4
|
||||
mov r0, r5
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_02052684:
|
||||
mov r0, r4
|
||||
mov r1, #0x258
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
mov r2, r0
|
||||
ldr r1, _020526C4 ; =_020A31FC
|
||||
mov r0, r5
|
||||
bl SprintfStatic__02052418
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#if defined(EUROPE)
|
||||
_020526B8: .word 0x000022EA
|
||||
#elif defined(JAPAN)
|
||||
_020526B8: .word 0x00001659
|
||||
#else
|
||||
_020526B8: .word 0x000022E8
|
||||
#endif
|
||||
_020526BC: .word UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
|
||||
_020526C0: .word _020A31F4
|
||||
_020526C4: .word _020A31FC
|
||||
arm_func_end GetSpeciesString
|
||||
|
||||
arm_func_start GetNameString
|
||||
GetNameString: ; 0x020526C8
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r1, #0x258
|
||||
bl _s32_div_f
|
||||
#if defined(EUROPE)
|
||||
add r0, r1, #0x21
|
||||
add r0, r0, #0x2200
|
||||
#elif defined(JAPAN)
|
||||
add r0, r1, #0x590
|
||||
add r0, r0, #0x1000
|
||||
#else
|
||||
add r0, r1, #0x1f
|
||||
add r0, r0, #0x2200
|
||||
#endif
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
bl StringFromId
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end GetNameString
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
.text
|
||||
|
||||
; https://decomp.me/scratch/LRAYo
|
||||
arm_func_start sub_0205A4B4
|
||||
sub_0205A4B4: ; 0x0205A4B4
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ _0205B118:
|
|||
ldmia sp!, {r3, pc}
|
||||
arm_func_end sub_0205B0B8
|
||||
|
||||
; https://decomp.me/scratch/gWhya
|
||||
arm_func_start sub_0205B120
|
||||
sub_0205B120: ; 0x0205B120
|
||||
stmdb sp!, {r4, r5, r6, r7, lr}
|
||||
|
|
|
|||
2484
asm/main_0206A750.s
2484
asm/main_0206A750.s
File diff suppressed because it is too large
Load Diff
2472
asm/main_0206A878.s
Normal file
2472
asm/main_0206A878.s
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -104,6 +104,7 @@ _0233CBC4: .word 0x000004FD
|
|||
#endif
|
||||
arm_func_end ov09_0233CA80
|
||||
|
||||
; https://decomp.me/scratch/Uyfr0
|
||||
arm_func_start ov09_0233CBC8
|
||||
ov09_0233CBC8: ; 0x0233CBC8
|
||||
stmdb sp!, {r3, lr}
|
||||
|
|
|
|||
|
|
@ -1093,6 +1093,7 @@ _023038D0: .word 0x00000F25
|
|||
#endif
|
||||
arm_func_end ov29_023034E0
|
||||
|
||||
; https://decomp.me/scratch/wws4M
|
||||
arm_func_start DungeonTmLearnMove
|
||||
DungeonTmLearnMove: ; 0x023038D4
|
||||
#ifdef JAPAN
|
||||
|
|
|
|||
32
include/adventure_log.h
Normal file
32
include/adventure_log.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#ifndef PMDSKY_ADVENTURE_LOG_H
|
||||
#define PMDSKY_ADVENTURE_LOG_H
|
||||
|
||||
#include "dungeon.h"
|
||||
|
||||
// The adventure log structure.
|
||||
struct adventure_log {
|
||||
u32 completion_flags[4]; // 0x0
|
||||
u32 nb_dungeons_cleared; // 0x10
|
||||
u32 nb_friend_rescues; // 0x14
|
||||
u32 nb_evolutions; // 0x18
|
||||
u32 nb_eggs_hatched; // 0x1C
|
||||
u32 successful_steals; // 0x20: Unused in Sky
|
||||
u32 nb_faints; // 0x24
|
||||
u32 nb_victories_on_one_floor; // 0x28
|
||||
u32 pokemon_joined_counter; // 0x2C
|
||||
u32 pokemon_battled_counter; // 0x30
|
||||
u32 moves_learned_counter; // 0x34
|
||||
u32 nb_big_treasure_wins; // 0x38
|
||||
u32 nb_recycled; // 0x3C
|
||||
u32 nb_gifts_sent; // 0x40
|
||||
u32 pokemon_joined_flags[37]; // 0x44
|
||||
u32 pokemon_battled_flags[37]; // 0xD8
|
||||
u32 moves_learned_flags[17]; // 0x16C
|
||||
u32 items_acquired_flags[44]; // 0x1B0
|
||||
u32 special_challenge_flags; // 0x260
|
||||
u32 sentry_duty_game_points[5]; // 0x264
|
||||
struct dungeon_floor_pair current_floor; // 0x278
|
||||
u16 padding; // 0x27A
|
||||
};
|
||||
|
||||
#endif //PMDSKY_ADVENTURE_LOG_H
|
||||
|
|
@ -1846,4 +1846,10 @@ struct dungeon_restriction {
|
|||
s16 random_movement_chance;
|
||||
};
|
||||
|
||||
// A common structure for pairs of dungeon/floor values
|
||||
struct dungeon_floor_pair {
|
||||
u8 dungeon_id;
|
||||
u8 floor_id;
|
||||
};
|
||||
|
||||
#endif // PMDSKY_DUNGEON_H
|
||||
|
|
|
|||
6
include/main_0204F050.h
Normal file
6
include/main_0204F050.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef PMDSKY_MAIN_0204F050_H
|
||||
#define PMDSKY_MAIN_0204F050_H
|
||||
|
||||
s16 sub_0204F050();
|
||||
|
||||
#endif //PMDSKY_MAIN_0204F050_H
|
||||
7
include/main_0204FDFC.h
Normal file
7
include/main_0204FDFC.h
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef PMDSKY_MAIN_0204FDFC_H
|
||||
#define PMDSKY_MAIN_0204FDFC_H
|
||||
|
||||
// Marks one Pokémon as joined.
|
||||
void SetPokemonJoined(u32 monster_id);
|
||||
|
||||
#endif //PMDSKY_MAIN_0204FDFC_H
|
||||
6
include/main_02051FF0.h
Normal file
6
include/main_02051FF0.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef PMDSKY_MAIN_02051FF0_H
|
||||
#define PMDSKY_MAIN_02051FF0_H
|
||||
|
||||
s32 sub_02051FF0(u32 fileId, void **outPtr, s32 param2);
|
||||
|
||||
#endif //PMDSKY_MAIN_02051FF0_H
|
||||
6
include/main_0206A84C.h
Normal file
6
include/main_0206A84C.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef PMDSKY_MAIN_0206A84C_H
|
||||
#define PMDSKY_MAIN_0206A84C_H
|
||||
|
||||
s16 sub_0206A84C(u32 arg0);
|
||||
|
||||
#endif //PMDSKY_MAIN_0206A84C_H
|
||||
8
main.lsf
8
main.lsf
|
|
@ -90,6 +90,10 @@ Static main
|
|||
Object asm/main_0204DE7C.o
|
||||
Object src/dungeon_init.o
|
||||
Object asm/main_0204EFE0.o
|
||||
Object src/main_0204F050.o
|
||||
Object asm/main_0204F0A0.o
|
||||
Object src/main_0204FDFC.o
|
||||
Object asm/main_0204FE58.o
|
||||
Object src/number_util.o
|
||||
Object asm/main_02051098.o
|
||||
Object src/dungeon_recruitment_2.o
|
||||
|
|
@ -106,6 +110,8 @@ Static main
|
|||
Object asm/main_rodata_020A20B1.o
|
||||
Object src/main_020517D4.o
|
||||
Object asm/main_020517F4.o
|
||||
Object src/main_02051FF0.o
|
||||
Object asm/main_02052060.o
|
||||
Object src/main_020526EC.o
|
||||
Object src/get_category_string.o
|
||||
Object src/main_020527A8.o
|
||||
|
|
@ -183,6 +189,8 @@ Static main
|
|||
Object asm/main_0205EDA4.o
|
||||
Object src/dungeon_init_2.o
|
||||
Object asm/main_0206A750.o
|
||||
Object src/main_0206A84C.o
|
||||
Object asm/main_0206A878.o
|
||||
Object src/main_0206C98C.o
|
||||
Object asm/main_0206C9BC.o
|
||||
Object lib/DSE/src/main_02071A98.o
|
||||
|
|
|
|||
19
src/main_0204F050.c
Normal file
19
src/main_0204F050.c
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#include "main_0204F050.h"
|
||||
#include "script_variable.h"
|
||||
|
||||
s16 sub_0204F050(void)
|
||||
{
|
||||
s16 dungeon_enter = LoadScriptVariableValue(NULL, VAR_DUNGEON_ENTER);
|
||||
|
||||
if (dungeon_enter == -1 || dungeon_enter == DUNGEON_JOINED_AT_QUESTION_MARKS)
|
||||
return dungeon_enter;
|
||||
|
||||
// What is going on here?
|
||||
if (dungeon_enter == DUNGEON_BEACH
|
||||
&& dungeon_enter == DUNGEON_JOINED_AT_BIDOOF
|
||||
&& dungeon_enter == DUNGEON_JOINED_AT_UNKNOWN)
|
||||
return dungeon_enter;
|
||||
|
||||
// VAR_DUNGEON_ENTER_INDEX holds the ID of the dungeon being entered
|
||||
return LoadScriptVariableValue(NULL, VAR_DUNGEON_ENTER_INDEX);
|
||||
}
|
||||
19
src/main_0204FDFC.c
Normal file
19
src/main_0204FDFC.c
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#include "main_0204FDFC.h"
|
||||
#include "adventure_log.h"
|
||||
|
||||
extern struct adventure_log* ADVENTURE_LOG_PTR;
|
||||
|
||||
extern s32 GetDexNumberVeneer();
|
||||
|
||||
void SetPokemonJoined(u32 monster_id)
|
||||
{
|
||||
s32 dex_num = GetDexNumberVeneer(monster_id);
|
||||
if (dex_num == 0) return;
|
||||
|
||||
ADVENTURE_LOG_PTR->completion_flags[0] |= 1;
|
||||
|
||||
u32 word = dex_num / 32; // dex_num / 32
|
||||
u32 bit = dex_num % 32; // dex_num % 32
|
||||
|
||||
ADVENTURE_LOG_PTR->pokemon_joined_flags[word] |= (1 << bit);
|
||||
}
|
||||
30
src/main_02051FF0.c
Normal file
30
src/main_02051FF0.c
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#include "main_02051FF0.h"
|
||||
#include "main_02008BD4.h"
|
||||
|
||||
extern void LoadFileFromRom(struct iovec *handle, u32 fileId, s32 param2);
|
||||
extern s32 GetAtSize(void *data);
|
||||
extern void *MemAlloc(u32 size, u32 heapId);
|
||||
extern void DecompressAtNormalVeneer(void *dest, u32 size, void *src);
|
||||
|
||||
s32 sub_02051FF0(u32 fileId, void **outPtr, s32 param2)
|
||||
{
|
||||
struct iovec handle;
|
||||
|
||||
LoadFileFromRom(&handle, fileId, param2);
|
||||
|
||||
s32 size = GetAtSize(handle.iov_base);
|
||||
|
||||
if (size <= 0) {
|
||||
*outPtr = handle.iov_base;
|
||||
size = handle.iov_len;
|
||||
} else {
|
||||
void *dest = MemAlloc((u32)size, 0);
|
||||
|
||||
DecompressAtNormalVeneer(dest, (u32)size, handle.iov_base);
|
||||
*outPtr = dest;
|
||||
size = ((s32 *)dest)[3];
|
||||
UnloadFile(&handle);
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
12
src/main_0206A84C.c
Normal file
12
src/main_0206A84C.c
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#include "main_0206A84C.h"
|
||||
|
||||
s16 sub_0206A84C(u32 arg0)
|
||||
{
|
||||
if (arg0 < 0xB4U)
|
||||
return (s16) (arg0 + 1);
|
||||
|
||||
if ((arg0 >= 0xB4U) && (arg0 <= 0xD3U))
|
||||
return 0xB8;
|
||||
|
||||
return -1;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user