summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon.s530
-rw-r--r--asm/pokemon_1.s295
-rw-r--r--include/pokemon.h37
-rwxr-xr-xld_script.txt2
-rw-r--r--src/pokemon_mid.c80
5 files changed, 399 insertions, 545 deletions
diff --git a/asm/pokemon.s b/asm/pokemon.s
index bf33395..2f1c454 100644
--- a/asm/pokemon.s
+++ b/asm/pokemon.s
@@ -1779,534 +1779,4 @@ _0808DAA6:
_0808DAB0: .4byte gUnknown_8107645
thumb_func_end sub_808DA44
- thumb_func_start sub_808DAB4
-sub_808DAB4:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DAC8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_0808DAC8: .4byte gMonsterParameters
- thumb_func_end sub_808DAB4
-
- thumb_func_start sub_808DACC
-sub_808DACC:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DAE0
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_0808DAE0: .4byte gMonsterParameters
- thumb_func_end sub_808DACC
-
- thumb_func_start sub_808DAE4
-sub_808DAE4:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DAF8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x19]
- bx lr
- .align 2, 0
-_0808DAF8: .4byte gMonsterParameters
- thumb_func_end sub_808DAE4
-
- thumb_func_start sub_808DAFC
-sub_808DAFC:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DB10
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_0808DB10: .4byte gMonsterParameters
- thumb_func_end sub_808DAFC
-
- thumb_func_start sub_808DB14
-sub_808DB14:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DB28
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x15]
- bx lr
- .align 2, 0
-_0808DB28: .4byte gMonsterParameters
- thumb_func_end sub_808DB14
-
- thumb_func_start sub_808DB2C
-sub_808DB2C:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DB44
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x1B]
- lsls r0, 25
- lsrs r0, 24
- bx lr
- .align 2, 0
-_0808DB44: .4byte gMonsterParameters
- thumb_func_end sub_808DB2C
-
- thumb_func_start sub_808DB48
-sub_808DB48:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DB5C
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x1C]
- bx lr
- .align 2, 0
-_0808DB5C: .4byte gMonsterParameters
- thumb_func_end sub_808DB48
-
- thumb_func_start sub_808DB60
-sub_808DB60:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DB74
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x1D]
- bx lr
- .align 2, 0
-_0808DB74: .4byte gMonsterParameters
- thumb_func_end sub_808DB60
-
- thumb_func_start sub_808DB78
-sub_808DB78:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DB8C
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x2C]
- bx lr
- .align 2, 0
-_0808DB8C: .4byte gMonsterParameters
- thumb_func_end sub_808DB78
-
- thumb_func_start sub_808DB90
-sub_808DB90:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DBA4
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x2E]
- bx lr
- .align 2, 0
-_0808DBA4: .4byte gMonsterParameters
- thumb_func_end sub_808DB90
-
- thumb_func_start sub_808DBA8
-sub_808DBA8:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DBBC
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x16]
- bx lr
- .align 2, 0
-_0808DBBC: .4byte gMonsterParameters
- thumb_func_end sub_808DBA8
-
- thumb_func_start sub_808DBC0
-sub_808DBC0:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DBD4
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x1E]
- bx lr
- .align 2, 0
-_0808DBD4: .4byte gMonsterParameters
- thumb_func_end sub_808DBC0
-
- thumb_func_start sub_808DBD8
-sub_808DBD8:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DBF0
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- adds r1, 0x33
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_0808DBF0: .4byte gMonsterParameters
- thumb_func_end sub_808DBD8
-
- thumb_func_start sub_808DBF4
-sub_808DBF4:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DC08
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x12]
- bx lr
- .align 2, 0
-_0808DC08: .4byte gMonsterParameters
- thumb_func_end sub_808DBF4
-
- thumb_func_start sub_808DC0C
-sub_808DC0C:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DC24
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0808DC24: .4byte gMonsterParameters
- thumb_func_end sub_808DC0C
-
- thumb_func_start sub_808DC28
-sub_808DC28:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DC44
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- lsls r1, 1
- adds r2, 0x24
- adds r2, r1
- ldrh r0, [r2]
- bx lr
- .align 2, 0
-_0808DC44: .4byte gMonsterParameters
- thumb_func_end sub_808DC28
-
- thumb_func_start sub_808DC48
-sub_808DC48:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DC64
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- lsls r1, 1
- adds r2, 0x28
- adds r2, r1
- ldrh r0, [r2]
- bx lr
- .align 2, 0
-_0808DC64: .4byte gMonsterParameters
- thumb_func_end sub_808DC48
-
- thumb_func_start sub_808DC68
-sub_808DC68:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DC80
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- adds r2, 0x13
- adds r2, r1
- ldrb r0, [r2]
- bx lr
- .align 2, 0
-_0808DC80: .4byte gMonsterParameters
- thumb_func_end sub_808DC68
-
- thumb_func_start sub_808DC84
-sub_808DC84:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DC9C
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- adds r2, 0x17
- adds r2, r1
- ldrb r0, [r2]
- bx lr
- .align 2, 0
-_0808DC9C: .4byte gMonsterParameters
- thumb_func_end sub_808DC84
-
- thumb_func_start sub_808DCA0
-sub_808DCA0:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DCBC
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- lsls r1, 1
- adds r2, 0x3C
- adds r2, r1
- movs r1, 0
- ldrsh r0, [r2, r1]
- bx lr
- .align 2, 0
-_0808DCBC: .4byte gMonsterParameters
- thumb_func_end sub_808DCA0
-
- thumb_func_start sub_808DCC0
-sub_808DCC0:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DCD8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- adds r1, 0x40
- movs r2, 0
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0808DCD8: .4byte gMonsterParameters
- thumb_func_end sub_808DCC0
-
- thumb_func_start sub_808DCDC
-sub_808DCDC:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DCF8
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- lsls r1, 1
- adds r2, 0x42
- adds r2, r1
- movs r1, 0
- ldrsh r0, [r2, r1]
- bx lr
- .align 2, 0
-_0808DCF8: .4byte gMonsterParameters
- thumb_func_end sub_808DCDC
-
- thumb_func_start sub_808DCFC
-sub_808DCFC:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808DD14
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x3E
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0808DD14: .4byte gMonsterParameters
- thumb_func_end sub_808DCFC
-
- thumb_func_start sub_808DD18
-sub_808DD18:
- push {r4,lr}
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DD44
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r4, [r2, 0x20]
- subs r1, 0x1
- adds r0, r4, 0
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- adds r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808DD44: .4byte gMonsterParameters
- thumb_func_end sub_808DD18
-
- thumb_func_start sub_808DD48
-sub_808DD48:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0808DD64
- ldr r3, [r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r3, [r2, 0x38]
- ldr r2, [r2, 0x34]
- str r2, [r1]
- str r3, [r1, 0x4]
- bx lr
- .align 2, 0
-_0808DD64: .4byte gMonsterParameters
- thumb_func_end sub_808DD48
-
- thumb_func_start sub_808DD68
-sub_808DD68:
- push {lr}
- lsls r0, 16
- asrs r2, r0, 16
- cmp r1, 0
- bne _0808DD88
- ldr r0, _0808DD84
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- b _0808DD8A
- .align 2, 0
-_0808DD84: .4byte gMonsterParameters
-_0808DD88:
- movs r0, 0xA
-_0808DD8A:
- pop {r1}
- bx r1
- thumb_func_end sub_808DD68
-
- thumb_func_start sub_808DD90
-sub_808DD90:
- push {lr}
- sub sp, 0xC
- lsls r0, 16
- asrs r2, r0, 16
- ldr r0, _0808DDBC
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- beq _0808DDC8
- ldr r1, _0808DDC0
- mov r0, sp
- bl sprintf
- ldr r1, _0808DDC4
- mov r0, sp
- bl OpenFile
- b _0808DDCA
- .align 2, 0
-_0808DDBC: .4byte gMonsterParameters
-_0808DDC0: .4byte gUnknown_8107684
-_0808DDC4: .4byte gUnknown_8510000
-_0808DDC8:
- movs r0, 0
-_0808DDCA:
- add sp, 0xC
- pop {r1}
- bx r1
- thumb_func_end sub_808DD90
-
- thumb_func_start sub_808DDD0
-sub_808DDD0:
- push {lr}
- sub sp, 0xC
- lsls r0, 16
- asrs r2, r0, 16
- ldr r0, _0808DDFC
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- beq _0808DE08
- ldr r1, _0808DE00
- mov r0, sp
- bl sprintf
- ldr r1, _0808DE04
- mov r0, sp
- bl OpenFileAndGetFileDataPtr
- b _0808DE0A
- .align 2, 0
-_0808DDFC: .4byte gMonsterParameters
-_0808DE00: .4byte gUnknown_8107684
-_0808DE04: .4byte gUnknown_8510000
-_0808DE08:
- movs r0, 0
-_0808DE0A:
- add sp, 0xC
- pop {r1}
- bx r1
- thumb_func_end sub_808DDD0
-
.align 2,0
diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s
new file mode 100644
index 0000000..5537aa7
--- /dev/null
+++ b/asm/pokemon_1.s
@@ -0,0 +1,295 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_808DC28
+sub_808DC28:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DC44
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ lsls r1, 1
+ adds r2, 0x24
+ adds r2, r1
+ ldrh r0, [r2]
+ bx lr
+ .align 2, 0
+_0808DC44: .4byte gMonsterParameters
+ thumb_func_end sub_808DC28
+
+ thumb_func_start sub_808DC48
+sub_808DC48:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DC64
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ lsls r1, 1
+ adds r2, 0x28
+ adds r2, r1
+ ldrh r0, [r2]
+ bx lr
+ .align 2, 0
+_0808DC64: .4byte gMonsterParameters
+ thumb_func_end sub_808DC48
+
+ thumb_func_start sub_808DC68
+sub_808DC68:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DC80
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ adds r2, 0x13
+ adds r2, r1
+ ldrb r0, [r2]
+ bx lr
+ .align 2, 0
+_0808DC80: .4byte gMonsterParameters
+ thumb_func_end sub_808DC68
+
+ thumb_func_start sub_808DC84
+sub_808DC84:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DC9C
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ adds r2, 0x17
+ adds r2, r1
+ ldrb r0, [r2]
+ bx lr
+ .align 2, 0
+_0808DC9C: .4byte gMonsterParameters
+ thumb_func_end sub_808DC84
+
+ thumb_func_start sub_808DCA0
+sub_808DCA0:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DCBC
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ lsls r1, 1
+ adds r2, 0x3C
+ adds r2, r1
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ bx lr
+ .align 2, 0
+_0808DCBC: .4byte gMonsterParameters
+ thumb_func_end sub_808DCA0
+
+ thumb_func_start sub_808DCC0
+sub_808DCC0:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0808DCD8
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ adds r1, 0x40
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_0808DCD8: .4byte gMonsterParameters
+ thumb_func_end sub_808DCC0
+
+ thumb_func_start sub_808DCDC
+sub_808DCDC:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DCF8
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ lsls r1, 1
+ adds r2, 0x42
+ adds r2, r1
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ bx lr
+ .align 2, 0
+_0808DCF8: .4byte gMonsterParameters
+ thumb_func_end sub_808DCDC
+
+ thumb_func_start sub_808DCFC
+sub_808DCFC:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0808DD14
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x3E
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_0808DD14: .4byte gMonsterParameters
+ thumb_func_end sub_808DCFC
+
+ thumb_func_start sub_808DD18
+sub_808DD18:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DD44
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r4, [r2, 0x20]
+ subs r1, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ adds r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808DD44: .4byte gMonsterParameters
+ thumb_func_end sub_808DD18
+
+ thumb_func_start sub_808DD48
+sub_808DD48:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0808DD64
+ ldr r3, [r2]
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r3, [r2, 0x38]
+ ldr r2, [r2, 0x34]
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_0808DD64: .4byte gMonsterParameters
+ thumb_func_end sub_808DD48
+
+ thumb_func_start sub_808DD68
+sub_808DD68:
+ push {lr}
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r1, 0
+ bne _0808DD88
+ ldr r0, _0808DD84
+ ldr r1, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ b _0808DD8A
+ .align 2, 0
+_0808DD84: .4byte gMonsterParameters
+_0808DD88:
+ movs r0, 0xA
+_0808DD8A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808DD68
+
+ thumb_func_start sub_808DD90
+sub_808DD90:
+ push {lr}
+ sub sp, 0xC
+ lsls r0, 16
+ asrs r2, r0, 16
+ ldr r0, _0808DDBC
+ ldr r1, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x10]
+ cmp r0, 0
+ beq _0808DDC8
+ ldr r1, _0808DDC0
+ mov r0, sp
+ bl sprintf
+ ldr r1, _0808DDC4
+ mov r0, sp
+ bl OpenFile
+ b _0808DDCA
+ .align 2, 0
+_0808DDBC: .4byte gMonsterParameters
+_0808DDC0: .4byte gUnknown_8107684
+_0808DDC4: .4byte gUnknown_8510000
+_0808DDC8:
+ movs r0, 0
+_0808DDCA:
+ add sp, 0xC
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808DD90
+
+ thumb_func_start sub_808DDD0
+sub_808DDD0:
+ push {lr}
+ sub sp, 0xC
+ lsls r0, 16
+ asrs r2, r0, 16
+ ldr r0, _0808DDFC
+ ldr r1, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x10]
+ cmp r0, 0
+ beq _0808DE08
+ ldr r1, _0808DE00
+ mov r0, sp
+ bl sprintf
+ ldr r1, _0808DE04
+ mov r0, sp
+ bl OpenFileAndGetFileDataPtr
+ b _0808DE0A
+ .align 2, 0
+_0808DDFC: .4byte gMonsterParameters
+_0808DE00: .4byte gUnknown_8107684
+_0808DE04: .4byte gUnknown_8510000
+_0808DE08:
+ movs r0, 0
+_0808DE0A:
+ add sp, 0xC
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808DDD0
+
+ .align 2,0 @ don't pad with nop
diff --git a/include/pokemon.h b/include/pokemon.h
index 68164ef..0b408e3 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -3,27 +3,28 @@
struct gPokemon
{
- /* 0x0 */ u8* species; // verified
+ /* 0x0 */ u8* species;
/* 0x4 */ u8* category;
- /* 0x8 */ u8 overworld_sprite; // verified
+ /* 0x8 */ u8 overworld_sprite;
/* 0x9 */ u8 size;
- /* 0x9 */ u8 unkA;
+ /* 0xA */ u8 unkA;
/* 0xB */ u8 unkB;
/* 0xC */ s32 move_speed;
- /* 0x10 */ u16 dialogue_sprites; // verified
- /* 0x12 */ u8 unk12; //verified
+ /* 0x10 */ u16 dialogue_sprites;
+ /* 0x12 */ u8 unk12;
/* 0x13 */ u8 type_1;
/* 0x14 */ u8 type_2;
/* 0x15 */ u8 walkable_tiles;
- /* 0x16 */ u8 friend_area; // verified
- /* 0x16 */ u8 ability_1;
+ /* 0x16 */ u8 friend_area;
+ /* 0x17 */ u8 ability_1;
/* 0x18 */ u8 ability_2;
/* 0x19 */ u8 shadow_size;
/* 0x1A */ u8 unk1A;
- /* 0x1B */ u16 unk1B;
+ /* 0x1B */ u8 unk1B;
+ /* 0x1C */ bool8 isMoving;
/* 0x1D */ u8 unk1D;
/* 0x1E */ u16 base_hp;
- /* 0x20 */ u16 base_exp; // verified
+ /* 0x20 */ u16 base_exp;
/* 0x22 */ u16 unk22; // verified
/* 0x24 */ u16 base_att;
/* 0x26 */ u16 base_spatt;
@@ -31,14 +32,20 @@ struct gPokemon
/* 0x2A */ u16 base_spdef;
/* 0x2C */ u16 lowkick_dmg;
/* 0x2E */ u16 sizeorb_dmg;
- /* 0x30 */ u16 unk30;
- /* 0x32 */ u16 unk32;
- /* 0x34 */ u16 unk34; //verified
+ /* 0x30 */ u8 unk30;
+ /* 0x31 */ u8 unk31;
+ /* 0x32 */ u8 unk32;
+ /* 0x33 */ bool8 unk33;
+ /* 0x34 */ u16 evolve_from; //verified
/* 0x36 */ u16 evolve_type;
- /* 0x38 */ u32 evolve_need1; // verified
- /* 0x3C */ u16 unk3C;
- /* 0x3E */ s16 unk3E; // verified
+ /* 0x38 */ u16 evolve_need1; // verified
+ /* 0x3A */ u16 evolve_need2; // verified
+ /* 0x3C */ u16 dexNo;
+ /* 0x3E */ u16 internalNo; // verified
/* 0x40 */ s16 base_recruit; // verified
+ /* 0x42 */ u16 alphabetNo;
+ /* 0x44 */ u16 parentNo;
+ /* 0x46 */ u16 unk46;
};
#endif // POKEMON_H
diff --git a/ld_script.txt b/ld_script.txt
index 9d72159..0e93f77 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -87,6 +87,8 @@ SECTIONS {
asm/code_80521D0.o(.text);
src/pokemon.o(.text);
asm/pokemon.o(.text);
+ src/pokemon_mid.o(.text);
+ asm/pokemon_1.o(.text);
src/pokemon_1.o(.text);
src/code_808DAB4.o(.text);
asm/code_808DAB4.o(.text);
diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c
new file mode 100644
index 0000000..03a66b2
--- /dev/null
+++ b/src/pokemon_mid.c
@@ -0,0 +1,80 @@
+#include "global.h"
+#include "pokemon.h"
+
+extern struct gPokemon *gMonsterParameters;
+
+u8 *sub_808DAB4(s16 r0)
+{
+ return gMonsterParameters[r0].category;
+}
+
+u8 sub_808DACC(s16 r0)
+{
+ return gMonsterParameters[r0].size;
+}
+
+u8 sub_808DAE4(s16 r0)
+{
+ return gMonsterParameters[r0].shadow_size;
+}
+
+s32 sub_808DAFC(s16 r0)
+{
+ return gMonsterParameters[r0].move_speed;
+}
+
+u8 sub_808DB14(s16 r0)
+{
+ return gMonsterParameters[r0].walkable_tiles;
+}
+
+u8 sub_808DB2C(s16 r0)
+{
+ return ((u8)(gMonsterParameters[r0].unk1B) << 25) >> 24;
+}
+
+
+bool8 sub_808DB48(s16 r0)
+{
+ return gMonsterParameters[r0].isMoving;
+}
+
+u8 sub_808DB60(s16 r0)
+{
+ return gMonsterParameters[r0].unk1D;
+}
+
+u16 sub_808DB78(s16 r0)
+{
+ return gMonsterParameters[r0].lowkick_dmg;
+}
+
+u16 sub_808DB90(s16 r0)
+{
+ return gMonsterParameters[r0].sizeorb_dmg;
+}
+
+u8 sub_808DBA8(s16 r0)
+{
+ return gMonsterParameters[r0].friend_area;
+}
+
+u16 sub_808DBC0(s16 r0)
+{
+ return gMonsterParameters[r0].base_hp;
+}
+
+bool8 sub_808DBD8(s16 r0)
+{
+ return gMonsterParameters[r0].unk33;
+}
+
+u8 sub_808DBF4(s16 r0)
+{
+ return gMonsterParameters[r0].unk12;
+}
+
+s16 sub_808DC0C(s16 r0)
+{
+ return gMonsterParameters[r0].evolve_from;
+}