Merge pull request #249 from AnonymousRandomPerson/main
Some checks failed
build / build (push) Has been cancelled

Added some decomped functions from decomp.me
This commit is contained in:
AnonymousRandomPerson 2026-03-19 23:59:56 -04:00 committed by GitHub
commit ffdc33bd45
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
30 changed files with 6095 additions and 6003 deletions

View File

@ -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

View 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

View 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

View File

@ -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

View 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

View File

@ -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

View 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

View File

@ -3,6 +3,7 @@
.text
; https://decomp.me/scratch/juWhM
arm_func_start IsItemInTimeDarkness
IsItemInTimeDarkness: ; 0x0200EB30
ldr r1, _0200EB54 ; =ITEM_DATA_TABLE_PTRS

File diff suppressed because it is too large Load Diff

1189
asm/main_0204F0A0.s Normal file

File diff suppressed because it is too large Load Diff

1529
asm/main_0204FE58.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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
View 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

View File

@ -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}

View File

@ -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}

File diff suppressed because it is too large Load Diff

2472
asm/main_0206A878.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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}

View File

@ -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
View 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

View File

@ -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
View 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
View 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
View 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
View 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

View File

@ -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
View 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
View 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
View 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
View 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;
}