summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-09-08 12:36:55 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-09-08 12:36:55 -0400
commit438c14c5686c45c661c4fd09137fb8f4fae559ca (patch)
tree0e84602671404580ef5e181c0a89ab5a6f895d38
parent217fcecda5c9ed46ea274b57465d85b9b59eb86b (diff)
unk_02029FB0, 1
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/asm/unk_02029FB0.s334
-rw-r--r--arm9/asm/unk_02029FB0_s.s171
-rw-r--r--arm9/src/unk_02029FB0.c269
-rw-r--r--include/unk_02029FB0.h3
5 files changed, 443 insertions, 335 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 002ad8c9..5d18d462 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -114,6 +114,7 @@ Static arm9
Object igt.o
Object sav_chatot.o
Object unk_02029FB0.o
+ Object unk_02029FB0_s.o
Object unk_0202A1E0.o
Object unk_0202A8F4.o
Object unk_0202A924.o
diff --git a/arm9/asm/unk_02029FB0.s b/arm9/asm/unk_02029FB0.s
deleted file mode 100644
index 2c66522a..00000000
--- a/arm9/asm/unk_02029FB0.s
+++ /dev/null
@@ -1,334 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .rodata
-
- .global UNK_020EEA7C
-UNK_020EEA7C: ; 0x020EEA7C
- .short 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0002
- .short 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0007, 0x0007, 0x0007
- .short 0x000A, 0x000A, 0x000B, 0x000B, 0x000B, 0x000B, 0x0014, 0x001E
- .short 0x0023, 0x0028, 0x01F4, 0x2710, 0x001E, 0x001E, 0x0002, 0x0005
- .short 0x0001, 0x0001, 0x0005, 0x0003, 0x0001, 0x0001
-
- .section .data
-
- .global UNK_02105CD8
-UNK_02105CD8: ; 0x02105CD8
- .byte 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .text
-
- thumb_func_start FUN_02029FB0
-FUN_02029FB0: ; 0x02029FB0
- mov r0, #0x53
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029FB8
-FUN_02029FB8: ; 0x02029FB8
- ldr r3, _02029FC4 ; =MIi_CpuClear32
- mov r2, #0x53
- add r1, r0, #0x0
- mov r0, #0x0
- lsl r2, r2, #0x2
- bx r3
- .balign 4
-_02029FC4: .word MIi_CpuClear32
-
- thumb_func_start FUN_02029FC8
-FUN_02029FC8: ; 0x02029FC8
- ldr r3, _02029FD0 ; =SavArray_get
- mov r1, #0x14
- bx r3
- nop
-_02029FD0: .word SavArray_get
-
- thumb_func_start FUN_02029FD4
-FUN_02029FD4: ; 0x02029FD4
- push {r3, lr}
- cmp r1, #0x2c
- bge _02029FE0
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
-_02029FE0:
- cmp r1, #0x79
- bge _02029FF0
- sub r1, #0x2c
- lsl r1, r1, #0x1
- add r0, r0, r1
- add r0, #0xb0
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02029FF0:
- bl GF_AssertFail
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_02029FF8
-FUN_02029FF8: ; 0x02029FF8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x2c
- bge _0202A008
- lsl r0, r4, #0x2
- str r2, [r5, r0]
- b _0202A01E
-_0202A008:
- cmp r4, #0x79
- bge _0202A01A
- add r0, r4, #0x0
- sub r0, #0x2c
- lsl r0, r0, #0x1
- add r0, r5, r0
- add r0, #0xb0
- strh r2, [r0, #0x0]
- b _0202A01E
-_0202A01A:
- bl GF_AssertFail
-_0202A01E:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029FD4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202A028
-FUN_0202A028: ; 0x0202A028
- push {r3, lr}
- cmp r0, #0x2c
- bge _0202A03E
- ldr r1, _0202A05C ; =UNK_02105CD8
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202A03A
- ldr r0, _0202A060 ; =0x3B9AC9FF
- pop {r3, pc}
-_0202A03A:
- ldr r0, _0202A064 ; =0x000F423F
- pop {r3, pc}
-_0202A03E:
- cmp r0, #0x79
- bge _0202A052
- ldr r1, _0202A05C ; =UNK_02105CD8
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202A04E
- ldr r0, _0202A068 ; =0x0000FFFF
- pop {r3, pc}
-_0202A04E:
- ldr r0, _0202A06C ; =0x0000270F
- pop {r3, pc}
-_0202A052:
- bl GF_AssertFail
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0202A05C: .word UNK_02105CD8
-_0202A060: .word 0x3B9AC9FF
-_0202A064: .word 0x000F423F
-_0202A068: .word 0x0000FFFF
-_0202A06C: .word 0x0000270F
-
- thumb_func_start FUN_0202A070
-FUN_0202A070: ; 0x0202A070
- lsl r1, r0, #0x1
- ldr r0, _0202A078 ; =UNK_020EEA7C
- ldrh r0, [r0, r1]
- bx lr
- .balign 4
-_0202A078: .word UNK_020EEA7C
-
- thumb_func_start FUN_0202A07C
-FUN_0202A07C: ; 0x0202A07C
- push {r4-r6, lr}
- add r5, r1, #0x0
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r4, r2, #0x0
- bl FUN_0202A028
- add r2, r0, #0x0
- cmp r4, r2
- bhs _0202A09C
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
-_0202A09C:
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202A0A8
-FUN_0202A0A8: ; 0x0202A0A8
- push {r3-r7, lr}
- add r6, r1, #0x0
- add r7, r0, #0x0
- add r0, r6, #0x0
- add r5, r2, #0x0
- bl FUN_0202A028
- add r4, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_02029FD4
- cmp r5, r4
- bls _0202A0C6
- add r5, r4, #0x0
-_0202A0C6:
- cmp r0, r5
- bhs _0202A0D6
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02029FF8
- pop {r3-r7, pc}
-_0202A0D6:
- cmp r0, r4
- bls _0202A0E4
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x0
- bl FUN_02029FF8
-_0202A0E4:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202A0E8
-FUN_0202A0E8: ; 0x0202A0E8
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0202A028
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029FD4
- add r2, r0, #0x1
- cmp r2, r4
- bhs _0202A10E
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
-_0202A10E:
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202A11C
-FUN_0202A11C: ; 0x0202A11C
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r7, r2, #0x0
- bl FUN_0202A028
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029FD4
- add r2, r0, r7
- cmp r2, r6
- bhs _0202A144
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029FF8
- pop {r3-r7, pc}
-_0202A144:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02029FF8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202A150
-FUN_0202A150: ; 0x0202A150
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0202A028
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029FD4
- cmp r0, r4
- bhi _0202A16C
- add r4, r0, #0x0
-_0202A16C:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0202A170
-FUN_0202A170: ; 0x0202A170
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x26
- blt _0202A17E
- bl GF_AssertFail
-_0202A17E:
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0202A150
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0202A070
- ldr r2, _0202A1B4 ; =0x05F5E0FF
- add r0, r6, r0
- cmp r0, r2
- bls _0202A1A0
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0202A07C
- pop {r4-r6, pc}
-_0202A1A0:
- add r0, r4, #0x0
- bl FUN_0202A070
- add r2, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0202A11C
- pop {r4-r6, pc}
- nop
-_0202A1B4: .word 0x05F5E0FF
-
- thumb_func_start FUN_0202A1B8
-FUN_0202A1B8: ; 0x0202A1B8
- ldr r3, _0202A1C0 ; =FUN_0202A150
- mov r1, #0x0
- bx r3
- nop
-_0202A1C0: .word FUN_0202A150
-
- thumb_func_start FUN_0202A1C4
-FUN_0202A1C4: ; 0x0202A1C4
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- bl Pokedex_CheckMonCaughtFlag
- cmp r0, #0x0
- bne _0202A1DC
- add r0, r4, #0x0
- mov r1, #0x16
- bl FUN_0202A170
-_0202A1DC:
- pop {r4, pc}
- .balign 4
diff --git a/arm9/asm/unk_02029FB0_s.s b/arm9/asm/unk_02029FB0_s.s
new file mode 100644
index 00000000..36bff703
--- /dev/null
+++ b/arm9/asm/unk_02029FB0_s.s
@@ -0,0 +1,171 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern FUN_02029FD4
+ .extern FUN_02029FF8
+ .extern FUN_0202A028
+ .extern FUN_0202A070
+
+ .text
+
+ thumb_func_start FUN_0202A0A8
+FUN_0202A0A8: ; 0x0202A0A8
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r5, r2, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ cmp r5, r4
+ bls _0202A0C6
+ add r5, r4, #0x0
+_0202A0C6:
+ cmp r0, r5
+ bhs _0202A0D6
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+_0202A0D6:
+ cmp r0, r4
+ bls _0202A0E4
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+_0202A0E4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A0E8
+FUN_0202A0E8: ; 0x0202A0E8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ add r2, r0, #0x1
+ cmp r2, r4
+ bhs _0202A10E
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+_0202A10E:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A11C
+FUN_0202A11C: ; 0x0202A11C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r7, r2, #0x0
+ bl FUN_0202A028
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FD4
+ add r2, r0, r7
+ cmp r2, r6
+ bhs _0202A144
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+_0202A144:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202A150
+FUN_0202A150: ; 0x0202A150
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ cmp r0, r4
+ bhi _0202A16C
+ add r4, r0, #0x0
+_0202A16C:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202A170
+FUN_0202A170: ; 0x0202A170
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x26
+ blt _0202A17E
+ bl GF_AssertFail
+_0202A17E:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A150
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A070
+ ldr r2, _0202A1B4 ; =0x05F5E0FF
+ add r0, r6, r0
+ cmp r0, r2
+ bls _0202A1A0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A07C
+ pop {r4-r6, pc}
+_0202A1A0:
+ add r0, r4, #0x0
+ bl FUN_0202A070
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A11C
+ pop {r4-r6, pc}
+ nop
+_0202A1B4: .word 0x05F5E0FF
+
+ thumb_func_start FUN_0202A1B8
+FUN_0202A1B8: ; 0x0202A1B8
+ ldr r3, _0202A1C0 ; =FUN_0202A150
+ mov r1, #0x0
+ bx r3
+ nop
+_0202A1C0: .word FUN_0202A150
+
+ thumb_func_start FUN_0202A1C4
+FUN_0202A1C4: ; 0x0202A1C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl Pokedex_CheckMonCaughtFlag
+ cmp r0, #0x0
+ bne _0202A1DC
+ add r0, r4, #0x0
+ mov r1, #0x16
+ bl FUN_0202A170
+_0202A1DC:
+ pop {r4, pc}
+ .balign 4
diff --git a/arm9/src/unk_02029FB0.c b/arm9/src/unk_02029FB0.c
new file mode 100644
index 00000000..3ed3a8c4
--- /dev/null
+++ b/arm9/src/unk_02029FB0.c
@@ -0,0 +1,269 @@
+#include "global.h"
+#include "pokedex.h"
+#include "unk_02029FB0.h"
+
+const u16 UNK_020EEA7C[] = {
+ 0x0001, // 00
+ 0x0001, // 01
+ 0x0001, // 02
+ 0x0001, // 03
+ 0x0001, // 04
+ 0x0001, // 05
+ 0x0002, // 06
+ 0x0002, // 07
+ 0x0002, // 08
+ 0x0002, // 09
+ 0x0003, // 10
+ 0x0003, // 11
+ 0x0003, // 12
+ 0x0007, // 13
+ 0x0007, // 14
+ 0x0007, // 15
+ 0x000A, // 16
+ 0x000A, // 17
+ 0x000B, // 18
+ 0x000B, // 19
+ 0x000B, // 20
+ 0x000B, // 21
+ 0x0014, // 22
+ 0x001E, // 23
+ 0x0023, // 24
+ 0x0028, // 25
+ 0x01F4, // 26
+ 0x2710, // 27
+ 0x001E, // 28
+ 0x001E, // 29
+ 0x0002, // 30
+ 0x0005, // 31
+ 0x0001, // 32
+ 0x0001, // 33
+ 0x0005, // 34
+ 0x0003, // 35
+ 0x0001, // 36
+ 0x0001, // 37
+};
+
+u8 UNK_02105CD8[] = {
+ TRUE, // 000
+ TRUE, // 001
+ FALSE, // 002
+ TRUE, // 003
+ TRUE, // 004
+ TRUE, // 005
+ TRUE, // 006
+ TRUE, // 007
+ TRUE, // 008
+ FALSE, // 009
+ FALSE, // 010
+ FALSE, // 011
+ TRUE, // 012
+ TRUE, // 013
+ TRUE, // 014
+ TRUE, // 015
+ TRUE, // 016
+ TRUE, // 017
+ TRUE, // 018
+ TRUE, // 019
+ TRUE, // 020
+ TRUE, // 021
+ TRUE, // 022
+ TRUE, // 023
+ TRUE, // 024
+ TRUE, // 025
+ TRUE, // 026
+ TRUE, // 027
+ TRUE, // 028
+ TRUE, // 029
+ TRUE, // 030
+ TRUE, // 031
+ TRUE, // 032
+ TRUE, // 033
+ TRUE, // 034
+ TRUE, // 035
+ TRUE, // 036
+ TRUE, // 037
+ TRUE, // 038
+ TRUE, // 039
+ TRUE, // 040
+ FALSE, // 041
+ FALSE, // 042
+ FALSE, // 043
+ TRUE, // 044
+ TRUE, // 045
+ FALSE, // 046
+ TRUE, // 047
+ TRUE, // 048
+ FALSE, // 049
+ FALSE, // 050
+ FALSE, // 051
+ FALSE, // 052
+ FALSE, // 053
+ FALSE, // 054
+ FALSE, // 055
+ FALSE, // 056
+ FALSE, // 057
+ FALSE, // 058
+ FALSE, // 059
+ FALSE, // 060
+ FALSE, // 061
+ FALSE, // 062
+ FALSE, // 063
+ FALSE, // 064
+ FALSE, // 065
+ FALSE, // 066
+ TRUE, // 067
+ FALSE, // 068
+ FALSE, // 069
+ FALSE, // 070
+ FALSE, // 071
+ FALSE, // 072
+ FALSE, // 073
+ FALSE, // 074
+ FALSE, // 075
+ FALSE, // 076
+ FALSE, // 077
+ FALSE, // 078
+ FALSE, // 079
+ FALSE, // 080
+ FALSE, // 081
+ FALSE, // 082
+ FALSE, // 083
+ FALSE, // 084
+ TRUE, // 085
+ FALSE, // 086
+ FALSE, // 087
+ FALSE, // 088
+ FALSE, // 089
+ FALSE, // 090
+ FALSE, // 091
+ FALSE, // 092
+ FALSE, // 093
+ FALSE, // 094
+ FALSE, // 095
+ FALSE, // 096
+ FALSE, // 097
+ FALSE, // 098
+ FALSE, // 099
+ FALSE, // 100
+ FALSE, // 101
+ FALSE, // 102
+ FALSE, // 103
+ FALSE, // 104
+ FALSE, // 105
+ FALSE, // 106
+ FALSE, // 107
+ FALSE, // 108
+ FALSE, // 109
+ FALSE, // 110
+ FALSE, // 111
+ FALSE, // 112
+ FALSE, // 113
+ FALSE, // 114
+ FALSE, // 115
+ FALSE, // 116
+ FALSE, // 117
+ FALSE, // 118
+ FALSE, // 119
+ FALSE, // 120
+ FALSE, // 121
+};
+
+static inline s32 GetOffsetToUnk00(s32 a0)
+{
+ return a0;
+}
+
+static inline s32 GetOffsetToUnkB0(s32 a0)
+{
+ return a0 - 44;
+}
+
+THUMB_FUNC u32 FUN_02029FB0(void)
+{
+ return sizeof(struct UnkStruct_02029FB0);
+}
+
+THUMB_FUNC void FUN_02029FB8(struct UnkStruct_02029FB0 * ptr)
+{
+ MI_CpuClear32(ptr, sizeof(struct UnkStruct_02029FB0));
+}
+
+THUMB_FUNC struct UnkStruct_02029FB0 * FUN_02029FC8(struct SaveBlock2 * sav2)
+{
+ return SavArray_get(sav2, 20);
+}
+
+THUMB_FUNC u32 FUN_02029FD4(struct UnkStruct_02029FB0 * ptr, s32 a1)
+{
+ if (a1 < 44)
+ {
+ return ptr->unk_00[GetOffsetToUnk00(a1)];
+ }
+ else if (a1 < 121)
+ {
+ return ptr->unk_B0[GetOffsetToUnkB0(a1)];
+ }
+ else
+ {
+ GF_ASSERT(0);
+ return 0;
+ }
+}
+
+THUMB_FUNC u32 FUN_02029FF8(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2)
+{
+ if (a1 < 44)
+ {
+ ptr->unk_00[GetOffsetToUnk00(a1)] = a2;
+ }
+ else if (a1 < 121)
+ {
+ ptr->unk_B0[GetOffsetToUnkB0(a1)] = a2;
+ }
+ else
+ {
+ GF_ASSERT(0);
+ }
+ return FUN_02029FD4(ptr, a1);
+}
+
+THUMB_FUNC u32 FUN_0202A028(s32 a0)
+{
+ if (a0 < 44)
+ {
+ if (UNK_02105CD8[a0])
+ return 999999999;
+ else
+ return 999999;
+ }
+ else if (a0 < 121)
+ {
+ if (UNK_02105CD8[a0])
+ return 0xFFFF;
+ else
+ return 9999;
+ }
+ else
+ {
+ GF_ASSERT(0);
+ return 0;
+ }
+}
+
+THUMB_FUNC u16 FUN_0202A070(s32 a0)
+{
+ return UNK_020EEA7C[a0];
+}
+
+THUMB_FUNC u32 FUN_0202A07C(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2)
+{
+ u32 r2 = FUN_0202A028(a1);
+ if (a2 < r2)
+ {
+ return FUN_02029FF8(ptr, a1, a2);
+ }
+ else
+ {
+ return FUN_02029FF8(ptr, a1, r2);
+ }
+}
diff --git a/include/unk_02029FB0.h b/include/unk_02029FB0.h
index 9ce6451d..a05abecc 100644
--- a/include/unk_02029FB0.h
+++ b/include/unk_02029FB0.h
@@ -5,7 +5,8 @@ struct Pokedex;
struct UnkStruct_02029FB0
{
- u8 unk[0x14C];
+ u32 unk_00[0x2C];
+ u16 unk_B0[0x4D];
};
struct UnkStruct_02029FB0 * FUN_02029FC8(struct SaveBlock2 * sav2);