diff options
-rw-r--r-- | asm/pokemon.s | 530 | ||||
-rw-r--r-- | asm/pokemon_1.s | 295 | ||||
-rw-r--r-- | include/pokemon.h | 37 | ||||
-rwxr-xr-x | ld_script.txt | 2 | ||||
-rw-r--r-- | src/pokemon_mid.c | 80 |
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; +} |