mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-05-31 20:43:00 -05:00
decompile overlay 124
This commit is contained in:
parent
5c5dee6108
commit
7cd584e9e0
|
|
@ -1,21 +0,0 @@
|
|||
#include <nitro/fs/overlay.h>
|
||||
#pragma once
|
||||
.public OverlayManager_GetArgs
|
||||
.public AllocFromHeapAtEnd
|
||||
.public Save_PlayerData_GetProfileAddr
|
||||
.public PlayerProfile_TestBadgeFlag
|
||||
.public MapMatrix_New
|
||||
.public Field_AllocateMapEvents
|
||||
.public LocalFieldData_GetCurrentPosition
|
||||
.public Save_LocalFieldData_Get
|
||||
.public FieldSystem_UnkSub108_Alloc
|
||||
.public BagCursor_New
|
||||
.public sub_02092BB8
|
||||
.public GearPhoneRingManager_New
|
||||
.public FS_LoadOverlay
|
||||
.public FS_UnloadOverlay
|
||||
.public _u32_div_f
|
||||
.public ov123_0225F4A8
|
||||
.public ov123_0225F520
|
||||
.public ov123_0225F688
|
||||
.public FieldSystem_Init
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "overlay_124.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FieldSystem_Init
|
||||
FieldSystem_Init: ; 0x02260C20
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
ldr r7, _02260CF8 ; =FS_OVERLAY_ID(OVY_123)
|
||||
add r6, r0, #0
|
||||
add r5, r1, #0
|
||||
mov r0, #0
|
||||
add r1, r7, #0
|
||||
ldr r4, _02260CFC ; =0x0097B4B1
|
||||
bl FS_LoadOverlay
|
||||
ldr r0, _02260D00 ; =ov124_02260D68
|
||||
bl ov123_0225F4A8
|
||||
cmp r0, #0
|
||||
bne _02260C40
|
||||
mov r1, #1
|
||||
b _02260C42
|
||||
_02260C40:
|
||||
mov r1, #0
|
||||
_02260C42:
|
||||
ldr r0, _02260D04 ; =0x00000301
|
||||
mul r0, r1
|
||||
add r4, r4, r0
|
||||
add r0, r6, #0
|
||||
bl OverlayManager_GetArgs
|
||||
ldr r0, [r0, #8]
|
||||
str r0, [r5, #0xc]
|
||||
mov r0, #0
|
||||
str r0, [r5, #0x10]
|
||||
ldr r0, _02260D08 ; =ov124_02260D6C
|
||||
bl ov123_0225F688
|
||||
cmp r0, #0
|
||||
bne _02260C64
|
||||
mov r1, #1
|
||||
b _02260C66
|
||||
_02260C64:
|
||||
mov r1, #0
|
||||
_02260C66:
|
||||
mov r0, #0x2f
|
||||
mul r0, r1
|
||||
add r4, r4, r0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Save_LocalFieldData_Get
|
||||
bl LocalFieldData_GetCurrentPosition
|
||||
str r0, [r5, #0x20]
|
||||
bl MapMatrix_New
|
||||
str r0, [r5, #0x30]
|
||||
ldr r0, _02260D0C ; =ov124_02260D58
|
||||
bl ov123_0225F520
|
||||
add r6, r0, #0
|
||||
ldr r1, _02260D10 ; =0x000003A1
|
||||
add r0, r5, #0
|
||||
mul r6, r1
|
||||
mov r1, #0xb
|
||||
bl Field_AllocateMapEvents
|
||||
mov r0, #0xb
|
||||
bl BagCursor_New
|
||||
add r1, r5, #0
|
||||
add r1, #0x94
|
||||
str r0, [r1]
|
||||
mov r0, #0
|
||||
add r1, r7, #0
|
||||
bl FS_UnloadOverlay
|
||||
ldr r1, _02260D14 ; =0x00000989
|
||||
add r0, r4, r6
|
||||
bl _u32_div_f
|
||||
cmp r1, #0
|
||||
beq _02260CB8
|
||||
add r0, r5, #0
|
||||
bl ov124_02260D1C
|
||||
_02260CB8:
|
||||
mov r0, #0xb
|
||||
bl sub_02092BB8
|
||||
add r1, r5, #0
|
||||
add r1, #0xa8
|
||||
str r0, [r1]
|
||||
mov r0, #0xb
|
||||
bl FieldSystem_UnkSub108_Alloc
|
||||
mov r1, #0x42
|
||||
lsl r1, r1, #2
|
||||
str r0, [r5, r1]
|
||||
mov r0, #0xb
|
||||
add r1, r5, #0
|
||||
bl GearPhoneRingManager_New
|
||||
mov r1, #0x45
|
||||
lsl r1, r1, #2
|
||||
str r0, [r5, r1]
|
||||
mov r0, #0
|
||||
add r1, #0x10
|
||||
str r0, [r5, r1]
|
||||
ldr r1, _02260D18 ; =0x00000FE9
|
||||
add r0, r4, r6
|
||||
bl _u32_div_f
|
||||
cmp r1, #0
|
||||
beq _02260CF6
|
||||
add r0, r5, #0
|
||||
bl ov124_02260D1C
|
||||
_02260CF6:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.balign 4, 0
|
||||
_02260CF8: .word FS_OVERLAY_ID(OVY_123)
|
||||
_02260CFC: .word 0x0097B4B1
|
||||
_02260D00: .word ov124_02260D68
|
||||
_02260D04: .word 0x00000301
|
||||
_02260D08: .word ov124_02260D6C
|
||||
_02260D0C: .word ov124_02260D58
|
||||
_02260D10: .word 0x000003A1
|
||||
_02260D14: .word 0x00000989
|
||||
_02260D18: .word 0x00000FE9
|
||||
thumb_func_end FieldSystem_Init
|
||||
|
||||
thumb_func_start ov124_02260D1C
|
||||
ov124_02260D1C: ; 0x02260D1C
|
||||
push {r4, r5, r6, lr}
|
||||
mov r5, #0
|
||||
add r6, r0, #0
|
||||
add r4, r5, #0
|
||||
_02260D24:
|
||||
ldr r0, [r6, #0xc]
|
||||
bl Save_PlayerData_GetProfileAddr
|
||||
add r1, r4, #0
|
||||
bl PlayerProfile_TestBadgeFlag
|
||||
cmp r0, #1
|
||||
bne _02260D36
|
||||
add r5, r5, #1
|
||||
_02260D36:
|
||||
add r4, r4, #1
|
||||
cmp r4, #0x10
|
||||
blt _02260D24
|
||||
cmp r5, #0
|
||||
bne _02260D44
|
||||
ldr r1, _02260D54 ; =0x00004E20
|
||||
b _02260D4A
|
||||
_02260D44:
|
||||
ldr r0, _02260D54 ; =0x00004E20
|
||||
add r1, r5, #0
|
||||
mul r1, r0
|
||||
_02260D4A:
|
||||
mov r0, #3
|
||||
bl AllocFromHeapAtEnd
|
||||
pop {r4, r5, r6, pc}
|
||||
nop
|
||||
_02260D54: .word 0x00004E20
|
||||
thumb_func_end ov124_02260D1C
|
||||
|
||||
thumb_func_start ov124_02260D58
|
||||
ov124_02260D58: ; 0x02260D58
|
||||
ldr r3, _02260D64 ; =AllocFromHeapAtEnd
|
||||
mov r1, #0xfa
|
||||
mov r0, #3
|
||||
lsl r1, r1, #2
|
||||
bx r3
|
||||
nop
|
||||
_02260D64: .word AllocFromHeapAtEnd
|
||||
thumb_func_end ov124_02260D58
|
||||
|
||||
thumb_func_start ov124_02260D68
|
||||
ov124_02260D68: ; 0x02260D68
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end ov124_02260D68
|
||||
|
||||
thumb_func_start ov124_02260D6C
|
||||
ov124_02260D6C: ; 0x02260D6C
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end ov124_02260D6C
|
||||
|
||||
|
|
@ -4,11 +4,11 @@
|
|||
#include "overlay_manager.h"
|
||||
#include "save.h"
|
||||
|
||||
struct UnkStruct_02111868_sub {
|
||||
typedef struct UnkStruct_02111868_sub {
|
||||
int unk_00;
|
||||
u32 unk_04;
|
||||
SaveData *saveData;
|
||||
};
|
||||
} UnkStruct_02111868_sub;
|
||||
|
||||
void NitroMain(void);
|
||||
void Main_ResetOverlayManager(void);
|
||||
|
|
|
|||
11
include/overlay_123.h
Normal file
11
include/overlay_123.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef GUARD_POKEHEARTGOLD_OVERLAY_123_H
|
||||
#define GUARD_POKEHEARTGOLD_OVERLAY_123_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
BOOL ov123_0225F4A8(void (*)(void));
|
||||
BOOL ov123_0225F520(void (*)(void));
|
||||
BOOL ov123_0225F688(void (*)(void));
|
||||
BOOL ov123_0225F610(void (*)(void));
|
||||
|
||||
#endif //GUARD_POKEHEARTGOLD_OVERLAY_123_H
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
#ifndef POKEHEARTGOLD_UNK_02092BB8_H
|
||||
#define POKEHEARTGOLD_UNK_02092BB8_H
|
||||
|
||||
#include "heap.h"
|
||||
|
||||
u32 *sub_02092BB8(HeapID heapId);
|
||||
void sub_02092BD0(u32 *a0);
|
||||
|
||||
#endif //POKEHEARTGOLD_UNK_02092BB8_H
|
||||
|
|
|
|||
|
|
@ -317,11 +317,11 @@ ov123_0225F430: ; 0x0225F430
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225F4A4
|
||||
adr r3, _0225F498
|
||||
ldr r1, _0225F4A4 ; =ov123_0225F020
|
||||
adr r3, _0225F498 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225F49C
|
||||
ldr r0, _0225F4A0
|
||||
ldr r2, _0225F49C ; =0xAC
|
||||
ldr r0, _0225F4A0 ; =0x6AB2
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -330,15 +330,15 @@ ov123_0225F430: ; 0x0225F430
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225F4A4
|
||||
ldr r2, _0225F49C
|
||||
ldr r0, _0225F4A0
|
||||
ldr r1, _0225F4A4 ; =ov123_0225F020
|
||||
ldr r2, _0225F49C ; =0xAC
|
||||
ldr r0, _0225F4A0 ; =0x6AB2
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225F4A0
|
||||
str r0, _0225F4A0 ; =0x6AB2
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225F498
|
||||
str pc, _0225F498
|
||||
ldr lr, _0225F498 ; =_02260C00+1
|
||||
str pc, _0225F498 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225F498: .word _02260C00+1
|
||||
_0225F49C: .word 0xAC
|
||||
|
|
@ -351,11 +351,11 @@ ov123_0225F4A8: ; 0x0225F4A8
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225F51C
|
||||
adr r3, _0225F510
|
||||
ldr r1, _0225F51C ; =ov123_0225F0D8
|
||||
adr r3, _0225F510 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225F514
|
||||
ldr r0, _0225F518
|
||||
ldr r2, _0225F514 ; =0xAC
|
||||
ldr r0, _0225F518 ; =0x6AB2
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -364,15 +364,15 @@ ov123_0225F4A8: ; 0x0225F4A8
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225F51C
|
||||
ldr r2, _0225F514
|
||||
ldr r0, _0225F518
|
||||
ldr r1, _0225F51C ; =ov123_0225F0D8
|
||||
ldr r2, _0225F514 ; =0xAC
|
||||
ldr r0, _0225F518 ; =0x6AB2
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225F518
|
||||
str r0, _0225F518 ; =0x6AB2
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225F510
|
||||
str pc, _0225F510
|
||||
ldr lr, _0225F510 ; =_02260C00+1
|
||||
str pc, _0225F510 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225F510: .word _02260C00+1
|
||||
_0225F514: .word 0xAC
|
||||
|
|
@ -385,11 +385,11 @@ ov123_0225F520: ; 0x0225F520
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225F594
|
||||
adr r3, _0225F588
|
||||
ldr r1, _0225F594 ; =ov123_0225F190
|
||||
adr r3, _0225F588 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225F58C
|
||||
ldr r0, _0225F590
|
||||
ldr r2, _0225F58C ; =0xAC
|
||||
ldr r0, _0225F590 ; =0x6AB2
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -398,15 +398,15 @@ ov123_0225F520: ; 0x0225F520
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225F594
|
||||
ldr r2, _0225F58C
|
||||
ldr r0, _0225F590
|
||||
ldr r1, _0225F594 ; =ov123_0225F190
|
||||
ldr r2, _0225F58C ; =0xAC
|
||||
ldr r0, _0225F590 ; =0x6AB2
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225F590
|
||||
str r0, _0225F590 ; =0x6AB2
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225F588
|
||||
str pc, _0225F588
|
||||
ldr lr, _0225F588 ; =_02260C00+1
|
||||
str pc, _0225F588 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225F588: .word _02260C00+1
|
||||
_0225F58C: .word 0xAC
|
||||
|
|
@ -419,11 +419,11 @@ ov123_0225F598: ; 0x0225F598
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225F60C
|
||||
adr r3, _0225F600
|
||||
ldr r1, _0225F60C ; =ov123_0225F248
|
||||
adr r3, _0225F600 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225F604
|
||||
ldr r0, _0225F608
|
||||
ldr r2, _0225F604 ; =0xAC
|
||||
ldr r0, _0225F608 ; =0x6AB2
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -432,15 +432,15 @@ ov123_0225F598: ; 0x0225F598
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225F60C
|
||||
ldr r2, _0225F604
|
||||
ldr r0, _0225F608
|
||||
ldr r1, _0225F60C ; =ov123_0225F248
|
||||
ldr r2, _0225F604 ; =0xAC
|
||||
ldr r0, _0225F608 ; =0x6AB2
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225F608
|
||||
str r0, _0225F608 ; =0x6AB2
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225F600
|
||||
str pc, _0225F600
|
||||
ldr lr, _0225F600 ; =_02260C00+1
|
||||
str pc, _0225F600 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225F600: .word _02260C00+1
|
||||
_0225F604: .word 0xAC
|
||||
|
|
@ -453,11 +453,11 @@ ov123_0225F610: ; 0x0225F610
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225F684
|
||||
adr r3, _0225F678
|
||||
ldr r1, _0225F684 ; =ov123_0225F300
|
||||
adr r3, _0225F678 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225F67C
|
||||
ldr r0, _0225F680
|
||||
ldr r2, _0225F67C ; =0x94
|
||||
ldr r0, _0225F680 ; =0x6AB2
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -466,15 +466,15 @@ ov123_0225F610: ; 0x0225F610
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225F684
|
||||
ldr r2, _0225F67C
|
||||
ldr r0, _0225F680
|
||||
ldr r1, _0225F684 ; =ov123_0225F300
|
||||
ldr r2, _0225F67C ; =0x94
|
||||
ldr r0, _0225F680 ; =0x6AB2
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225F680
|
||||
str r0, _0225F680 ; =0x6AB2
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225F678
|
||||
str pc, _0225F678
|
||||
ldr lr, _0225F678 ; =_02260C00+1
|
||||
str pc, _0225F678 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225F678: .word _02260C00+1
|
||||
_0225F67C: .word 0x94
|
||||
|
|
@ -487,11 +487,11 @@ ov123_0225F688: ; 0x0225F688
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225F6FC
|
||||
adr r3, _0225F6F0
|
||||
ldr r1, _0225F6FC ; =ov123_0225F398
|
||||
adr r3, _0225F6F0 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225F6F4
|
||||
ldr r0, _0225F6F8
|
||||
ldr r2, _0225F6F4 ; =0x94
|
||||
ldr r0, _0225F6F8 ; =0x6AB2
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -500,15 +500,15 @@ ov123_0225F688: ; 0x0225F688
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225F6FC
|
||||
ldr r2, _0225F6F4
|
||||
ldr r0, _0225F6F8
|
||||
ldr r1, _0225F6FC ; =ov123_0225F398
|
||||
ldr r2, _0225F6F4 ; =0x94
|
||||
ldr r0, _0225F6F8 ; =0x6AB2
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225F6F8
|
||||
str r0, _0225F6F8 ; =0x6AB2
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225F6F0
|
||||
str pc, _0225F6F0
|
||||
ldr lr, _0225F6F0 ; =_02260C00+1
|
||||
str pc, _0225F6F0 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225F6F0: .word _02260C00+1
|
||||
_0225F6F4: .word 0x94
|
||||
|
|
@ -802,11 +802,11 @@ ov123_0225FB24: ; 0x0225FB24
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225FB98
|
||||
adr r3, _0225FB8C
|
||||
ldr r1, _0225FB98 ; =ov123_0225F74C
|
||||
adr r3, _0225FB8C ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225FB90
|
||||
ldr r0, _0225FB94
|
||||
ldr r2, _0225FB90 ; =0xD4
|
||||
ldr r0, _0225FB94 ; =0x9785
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -815,15 +815,15 @@ ov123_0225FB24: ; 0x0225FB24
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225FB98
|
||||
ldr r2, _0225FB90
|
||||
ldr r0, _0225FB94
|
||||
ldr r1, _0225FB98 ; =ov123_0225F74C
|
||||
ldr r2, _0225FB90 ; =0xD4
|
||||
ldr r0, _0225FB94 ; =0x9785
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225FB94
|
||||
str r0, _0225FB94 ; =0x9785
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225FB8C
|
||||
str pc, _0225FB8C
|
||||
ldr lr, _0225FB8C ; =_02260C00+1
|
||||
str pc, _0225FB8C ; =_02260C00+1
|
||||
bx lr
|
||||
_0225FB8C: .word _02260C00+1
|
||||
_0225FB90: .word 0xD4
|
||||
|
|
@ -836,11 +836,11 @@ ov123_0225FB9C: ; 0x0225FB9C
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225FC10
|
||||
adr r3, _0225FC04
|
||||
ldr r1, _0225FC10 ; =ov123_0225F824
|
||||
adr r3, _0225FC04 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225FC08
|
||||
ldr r0, _0225FC0C
|
||||
ldr r2, _0225FC08 ; =0x110
|
||||
ldr r0, _0225FC0C ; =0x9785
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -849,15 +849,15 @@ ov123_0225FB9C: ; 0x0225FB9C
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225FC10
|
||||
ldr r2, _0225FC08
|
||||
ldr r0, _0225FC0C
|
||||
ldr r1, _0225FC10 ; =ov123_0225F824
|
||||
ldr r2, _0225FC08 ; =0x110
|
||||
ldr r0, _0225FC0C ; =0x9785
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225FC0C
|
||||
str r0, _0225FC0C ; =0x9785
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225FC04
|
||||
str pc, _0225FC04
|
||||
ldr lr, _0225FC04 ; =_02260C00+1
|
||||
str pc, _0225FC04 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225FC04: .word _02260C00+1
|
||||
_0225FC08: .word 0x110
|
||||
|
|
@ -870,11 +870,11 @@ ov123_0225FC14: ; 0x0225FC14
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225FC88
|
||||
adr r3, _0225FC7C
|
||||
ldr r1, _0225FC88 ; =ov123_0225F938
|
||||
adr r3, _0225FC7C ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225FC80
|
||||
ldr r0, _0225FC84
|
||||
ldr r2, _0225FC80 ; =0xD4
|
||||
ldr r0, _0225FC84 ; =0x9785
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -883,15 +883,15 @@ ov123_0225FC14: ; 0x0225FC14
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225FC88
|
||||
ldr r2, _0225FC80
|
||||
ldr r0, _0225FC84
|
||||
ldr r1, _0225FC88 ; =ov123_0225F938
|
||||
ldr r2, _0225FC80 ; =0xD4
|
||||
ldr r0, _0225FC84 ; =0x9785
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225FC84
|
||||
str r0, _0225FC84 ; =0x9785
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225FC7C
|
||||
str pc, _0225FC7C
|
||||
ldr lr, _0225FC7C ; =_02260C00+1
|
||||
str pc, _0225FC7C ; =_02260C00+1
|
||||
bx lr
|
||||
_0225FC7C: .word _02260C00+1
|
||||
_0225FC80: .word 0xD4
|
||||
|
|
@ -904,11 +904,11 @@ ov123_0225FC8C: ; 0x0225FC8C
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _0225FD00
|
||||
adr r3, _0225FCF4
|
||||
ldr r1, _0225FD00 ; =ov123_0225FA10
|
||||
adr r3, _0225FCF4 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0225FCF8
|
||||
ldr r0, _0225FCFC
|
||||
ldr r2, _0225FCF8 ; =0x110
|
||||
ldr r0, _0225FCFC ; =0x9785
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -917,15 +917,15 @@ ov123_0225FC8C: ; 0x0225FC8C
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _0225FD00
|
||||
ldr r2, _0225FCF8
|
||||
ldr r0, _0225FCFC
|
||||
ldr r1, _0225FD00 ; =ov123_0225FA10
|
||||
ldr r2, _0225FCF8 ; =0x110
|
||||
ldr r0, _0225FCFC ; =0x9785
|
||||
bl ov123_0225FF30
|
||||
str r0, _0225FCFC
|
||||
str r0, _0225FCFC ; =0x9785
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0225FCF4
|
||||
str pc, _0225FCF4
|
||||
ldr lr, _0225FCF4 ; =_02260C00+1
|
||||
str pc, _0225FCF4 ; =_02260C00+1
|
||||
bx lr
|
||||
_0225FCF4: .word _02260C00+1
|
||||
_0225FCF8: .word 0x110
|
||||
|
|
@ -986,7 +986,7 @@ ov123_0225FD98: ; 0x0225FD98
|
|||
ldrne r1, [r8]
|
||||
cmpne r1, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
ldr r6, _0225FEA0 ; =SDK_OVERLAY_OV_123_BSS_START
|
||||
ldr r6, _0225FEA0 ; =SDK_OVERLAY_OV_123_BSS_START ; =_02260C00
|
||||
_0225FDB0:
|
||||
ldr r0, [r8, #4]
|
||||
cmp r1, #0
|
||||
|
|
@ -998,7 +998,7 @@ _0225FDB0:
|
|||
add r5, r7, r0
|
||||
cmp r7, r5
|
||||
bhs _0225FE80
|
||||
ldr sb, _0225FEA4 ; =0xFFFFFB3E
|
||||
ldr sb, _0225FEA4 ; =0xFFFFFB3E ; =0xFFFFFB3E
|
||||
_0225FDDC:
|
||||
ldr r0, [r7]
|
||||
bl ov123_0225FD5C
|
||||
|
|
@ -1063,7 +1063,7 @@ _0225FEA4: .word 0xFFFFFB3E
|
|||
ov123_0225FEA8: ; 0x0225FEA8
|
||||
stmdb sp!, {r3-r7, lr}
|
||||
sub sp, sp, #0x10
|
||||
ldr r3, _0225FF2C
|
||||
ldr r3, _0225FF2C ; =_02260C00
|
||||
mov r5, r1
|
||||
add r1, r3, #0x1300
|
||||
sub r6, r0, r1
|
||||
|
|
@ -1256,11 +1256,11 @@ ov123_02260148: ; 0x02260148
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _022601BC
|
||||
adr r3, _022601B0
|
||||
ldr r1, _022601BC ; =ov123_0225FFE8
|
||||
adr r3, _022601B0 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _022601B4
|
||||
ldr r0, _022601B8
|
||||
ldr r2, _022601B4 ; =0xAC
|
||||
ldr r0, _022601B8 ; =0x982
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -1269,15 +1269,15 @@ ov123_02260148: ; 0x02260148
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _022601BC
|
||||
ldr r2, _022601B4
|
||||
ldr r0, _022601B8
|
||||
ldr r1, _022601BC ; =ov123_0225FFE8
|
||||
ldr r2, _022601B4 ; =0xAC
|
||||
ldr r0, _022601B8 ; =0x982
|
||||
bl ov123_0225FF30
|
||||
str r0, _022601B8
|
||||
str r0, _022601B8 ; =0x982
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _022601B0
|
||||
str pc, _022601B0
|
||||
ldr lr, _022601B0 ; =_02260C00+1
|
||||
str pc, _022601B0 ; =_02260C00+1
|
||||
bx lr
|
||||
_022601B0: .word _02260C00+1
|
||||
_022601B4: .word 0xAC
|
||||
|
|
@ -1290,11 +1290,11 @@ ov123_022601C0: ; 0x022601C0
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _02260234
|
||||
adr r3, _02260228
|
||||
ldr r1, _02260234 ; =ov123_02260098
|
||||
adr r3, _02260228 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _0226022C
|
||||
ldr r0, _02260230
|
||||
ldr r2, _0226022C ; =0xAC
|
||||
ldr r0, _02260230 ; =0x982
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -1303,15 +1303,15 @@ ov123_022601C0: ; 0x022601C0
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _02260234
|
||||
ldr r2, _0226022C
|
||||
ldr r0, _02260230
|
||||
ldr r1, _02260234 ; =ov123_02260098
|
||||
ldr r2, _0226022C ; =0xAC
|
||||
ldr r0, _02260230 ; =0x982
|
||||
bl ov123_0225FF30
|
||||
str r0, _02260230
|
||||
str r0, _02260230 ; =0x982
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _02260228
|
||||
str pc, _02260228
|
||||
ldr lr, _02260228 ; =_02260C00+1
|
||||
str pc, _02260228 ; =_02260C00+1
|
||||
bx lr
|
||||
_02260228: .word _02260C00+1
|
||||
_0226022C: .word 0xAC
|
||||
|
|
@ -1464,11 +1464,11 @@ ov123_02260414: ; 0x02260414
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _02260488
|
||||
adr r3, _0226047C
|
||||
ldr r1, _02260488 ; =ov123_02260238
|
||||
adr r3, _0226047C ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _02260480
|
||||
ldr r0, _02260484
|
||||
ldr r2, _02260480 ; =0x17C
|
||||
ldr r0, _02260484 ; =0x982
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -1477,15 +1477,15 @@ ov123_02260414: ; 0x02260414
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _02260488
|
||||
ldr r2, _02260480
|
||||
ldr r0, _02260484
|
||||
ldr r1, _02260488 ; =ov123_02260238
|
||||
ldr r2, _02260480 ; =0x17C
|
||||
ldr r0, _02260484 ; =0x982
|
||||
bl ov123_0225FF30
|
||||
str r0, _02260484
|
||||
str r0, _02260484 ; =0x982
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0226047C
|
||||
str pc, _0226047C
|
||||
ldr lr, _0226047C ; =_02260C00+1
|
||||
str pc, _0226047C ; =_02260C00+1
|
||||
bx lr
|
||||
_0226047C: .word _02260C00+1
|
||||
_02260480: .word 0x17C
|
||||
|
|
@ -1498,11 +1498,11 @@ ov123_0226048C: ; 0x0226048C
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _02260500
|
||||
adr r3, _022604F4
|
||||
ldr r1, _02260500 ; =ov123_022603BC
|
||||
adr r3, _022604F4 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _022604F8
|
||||
ldr r0, _022604FC
|
||||
ldr r2, _022604F8 ; =0x54
|
||||
ldr r0, _022604FC ; =0x982
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -1511,15 +1511,15 @@ ov123_0226048C: ; 0x0226048C
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _02260500
|
||||
ldr r2, _022604F8
|
||||
ldr r0, _022604FC
|
||||
ldr r1, _02260500 ; =ov123_022603BC
|
||||
ldr r2, _022604F8 ; =0x54
|
||||
ldr r0, _022604FC ; =0x982
|
||||
bl ov123_0225FF30
|
||||
str r0, _022604FC
|
||||
str r0, _022604FC ; =0x982
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _022604F4
|
||||
str pc, _022604F4
|
||||
ldr lr, _022604F4 ; =_02260C00+1
|
||||
str pc, _022604F4 ; =_02260C00+1
|
||||
bx lr
|
||||
_022604F4: .word _02260C00+1
|
||||
_022604F8: .word 0x54
|
||||
|
|
@ -1646,11 +1646,11 @@ ov123_0226068C: ; 0x0226068C
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _02260700
|
||||
adr r3, _022606F4
|
||||
ldr r1, _02260700 ; =ov123_02260504
|
||||
adr r3, _022606F4 ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _022606F8
|
||||
ldr r0, _022606FC
|
||||
ldr r2, _022606F8 ; =0xC4
|
||||
ldr r0, _022606FC ; =0x982
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -1659,15 +1659,15 @@ ov123_0226068C: ; 0x0226068C
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _02260700
|
||||
ldr r2, _022606F8
|
||||
ldr r0, _022606FC
|
||||
ldr r1, _02260700 ; =ov123_02260504
|
||||
ldr r2, _022606F8 ; =0xC4
|
||||
ldr r0, _022606FC ; =0x982
|
||||
bl ov123_0225FF30
|
||||
str r0, _022606FC
|
||||
str r0, _022606FC ; =0x982
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _022606F4
|
||||
str pc, _022606F4
|
||||
ldr lr, _022606F4 ; =_02260C00+1
|
||||
str pc, _022606F4 ; =_02260C00+1
|
||||
bx lr
|
||||
_022606F4: .word _02260C00+1
|
||||
_022606F8: .word 0xC4
|
||||
|
|
@ -1680,11 +1680,11 @@ ov123_02260704: ; 0x02260704
|
|||
stmfd sp!, {r4-r7}
|
||||
stmfd sp!, {r0-r3}
|
||||
ldmfd sp!, {r4-r7}
|
||||
ldr r1, _02260778
|
||||
adr r3, _0226076C
|
||||
ldr r1, _02260778 ; =ov123_022605C8
|
||||
adr r3, _0226076C ; =_02260C00+1
|
||||
str lr, [r3]
|
||||
ldr r2, _02260770
|
||||
ldr r0, _02260774
|
||||
ldr r2, _02260770 ; =0xC4
|
||||
ldr r0, _02260774 ; =0x982
|
||||
bl ov123_0225FEA8
|
||||
mov ip, r0
|
||||
stmfd sp!, {r4-r7}
|
||||
|
|
@ -1693,15 +1693,15 @@ ov123_02260704: ; 0x02260704
|
|||
blx ip
|
||||
stmfd sp!, {r4}
|
||||
mov r4, r0
|
||||
ldr r1, _02260778
|
||||
ldr r2, _02260770
|
||||
ldr r0, _02260774
|
||||
ldr r1, _02260778 ; =ov123_022605C8
|
||||
ldr r2, _02260770 ; =0xC4
|
||||
ldr r0, _02260774 ; =0x982
|
||||
bl ov123_0225FF30
|
||||
str r0, _02260774
|
||||
str r0, _02260774 ; =0x982
|
||||
mov r0, r4
|
||||
ldmfd sp!, {r4}
|
||||
ldr lr, _0226076C
|
||||
str pc, _0226076C
|
||||
ldr lr, _0226076C ; =_02260C00+1
|
||||
str pc, _0226076C ; =_02260C00+1
|
||||
bx lr
|
||||
_0226076C: .word _02260C00+1
|
||||
_02260770: .word 0xC4
|
||||
|
|
|
|||
2
main.lsf
2
main.lsf
|
|
@ -1201,7 +1201,7 @@ Overlay OVY_123
|
|||
Overlay OVY_124
|
||||
{
|
||||
After OVY_123
|
||||
Object asm/overlay_124.o
|
||||
Object src/overlay_124.o
|
||||
}
|
||||
Overlay OVY_125
|
||||
{
|
||||
|
|
|
|||
65
src/overlay_124.c
Normal file
65
src/overlay_124.c
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
#include "follow_mon.h"
|
||||
#include "global.h"
|
||||
#include "overlay_124.h"
|
||||
#include "field_system.h"
|
||||
#include "main.h"
|
||||
#include "map_events.h"
|
||||
#include "overlay_123.h"
|
||||
#include "save_local_field_data.h"
|
||||
#include "unk_02092BB8.h"
|
||||
#include "unk_02092BE8.h"
|
||||
|
||||
FS_EXTERN_OVERLAY(OVY_123);
|
||||
|
||||
static void ov124_02260D1C(FieldSystem *fieldSystem);
|
||||
static void ov124_02260D68(void);
|
||||
static void ov124_02260D6C(void);
|
||||
static void ov124_02260D58(void);
|
||||
|
||||
void FieldSystem_Init(OVY_MANAGER *man, FieldSystem *fieldSystem) {
|
||||
u32 key = 2441 * 4073; // these are both prime
|
||||
FS_LoadOverlay(MI_PROCESSOR_ARM9, FS_OVERLAY_ID(OVY_123));
|
||||
key += 769 * (!ov123_0225F4A8(ov124_02260D68)); // 769 is prime
|
||||
UnkStruct_02111868_sub *args = OverlayManager_GetArgs(man);
|
||||
fieldSystem->saveData = args->saveData;
|
||||
fieldSystem->taskman = NULL;
|
||||
key += 47 * (!ov123_0225F688(ov124_02260D6C)); // 47 is prime
|
||||
fieldSystem->location = LocalFieldData_GetCurrentPosition(Save_LocalFieldData_Get(fieldSystem->saveData));
|
||||
fieldSystem->mapMatrix = MapMatrix_New();
|
||||
u32 key2 = 929 * ov123_0225F520(ov124_02260D58); // 929 is prime
|
||||
Field_AllocateMapEvents(fieldSystem, HEAP_ID_FIELD);
|
||||
fieldSystem->bagCursor = BagCursor_New(HEAP_ID_FIELD);
|
||||
FS_UnloadOverlay(MI_PROCESSOR_ARM9, FS_OVERLAY_ID(OVY_123));
|
||||
|
||||
// all combinations of the three prime multipliers above are coprime with 2441 and 4073
|
||||
if ((key + key2) % 2441) {
|
||||
ov124_02260D1C(fieldSystem);
|
||||
}
|
||||
fieldSystem->unkA8 = sub_02092BB8(HEAP_ID_FIELD);
|
||||
fieldSystem->unk108 = FieldSystem_UnkSub108_Alloc(HEAP_ID_FIELD);
|
||||
fieldSystem->unk114 = GearPhoneRingManager_New(HEAP_ID_FIELD, fieldSystem);
|
||||
fieldSystem->judgeStatPosition = 0;
|
||||
if ((key + key2) % 4073) {
|
||||
ov124_02260D1C(fieldSystem);
|
||||
}
|
||||
}
|
||||
|
||||
// clobbers the heap worse if you have made more progress through the game
|
||||
static void ov124_02260D1C(FieldSystem *fieldSystem) {
|
||||
int i = 0;
|
||||
int numBadges = 0;
|
||||
for (i = 0; i < 16; ++i) {
|
||||
if (PlayerProfile_TestBadgeFlag(Save_PlayerData_GetProfileAddr(fieldSystem->saveData), i) == TRUE) {
|
||||
++numBadges;
|
||||
}
|
||||
}
|
||||
AllocFromHeapAtEnd(HEAP_ID_3, numBadges == 0 ? 20000 : (20000 * numBadges));
|
||||
}
|
||||
|
||||
// you can have a little heap clobber, as a treat
|
||||
static void ov124_02260D58(void) {
|
||||
AllocFromHeapAtEnd(HEAP_ID_3, 1000);
|
||||
}
|
||||
|
||||
static void ov124_02260D68(void) {}
|
||||
static void ov124_02260D6C(void) {}
|
||||
|
|
@ -17,6 +17,7 @@
|
|||
#include "yes_no_prompt.h"
|
||||
#include "sys_task.h"
|
||||
#include "unk_020183F0.h"
|
||||
#include "overlay_123.h"
|
||||
|
||||
FS_EXTERN_OVERLAY(OVY_123);
|
||||
|
||||
|
|
@ -65,10 +66,6 @@ typedef struct TouchSaveAppData {
|
|||
SysTask *savingMovementTask;
|
||||
} TouchSaveAppData; // size: 0x6C
|
||||
|
||||
extern void *ov123_0225F4A8(void(*)(void));
|
||||
extern void *ov123_0225F520(void(*)(void));
|
||||
extern void *ov123_0225F610(void(*)(void));
|
||||
|
||||
static void ov30_0225D700(SysTask *task, TouchSaveAppData *data);
|
||||
static void TouchSaveApp_SetupGraphics(TouchSaveAppData *data);
|
||||
static void TouchSaveApp_DestroyWindow(TouchSaveAppData *data);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user