diff options
author | Cameron Hall <camthesaxman@users.noreply.github.com> | 2017-01-19 21:00:04 -0600 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2017-01-19 19:00:04 -0800 |
commit | 1ac7736fbfd8158241ad7eb62857d425e1e5f6bb (patch) | |
tree | 14fbbd568d9977232883942ee77f062a761fc1f2 | |
parent | 5fae4fddf5c41eba64c96cbd5e7c132f5b6d400f (diff) |
finish decompiling rom3 (#201)
* start decompiling rom3
* newline
* decompile sub_800BA78
* decompile more of rom3
* battle type constants
* decompile sub_800C35C
* remove sh.exe.stackdump
* decompile more of rom3
* can't get dp01_build_cmdbuf_x10_TODO to match
* finish decompiling rom3
-rw-r--r-- | asm/rom3.s | 1892 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/rom3.c | 906 |
3 files changed, 869 insertions, 1930 deletions
diff --git a/asm/rom3.s b/asm/rom3.s deleted file mode 100644 index 9ab9f021e..000000000 --- a/asm/rom3.s +++ /dev/null @@ -1,1892 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_800C47C -sub_800C47C: @ 800C47C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _0800C4FC @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0x26 - ldrsh r2, [r3, r0] - movs r4, 0x24 - ldrsh r0, [r3, r4] - adds r4, r1, 0 - cmp r2, r0 - bne _0800C4A4 - b _0800C5FA -_0800C4A4: - cmp r2, r0 - ble _0800C4B6 - movs r1, 0x20 - ldrsh r0, [r3, r1] - cmp r2, r0 - bne _0800C4B6 - movs r0, 0 - strh r0, [r3, 0x20] - strh r0, [r3, 0x26] -_0800C4B6: - ldr r5, _0800C500 @ =0x02000000 - mov r2, r8 - lsls r1, r2, 2 - adds r0, r1, r2 - lsls r0, 3 - adds r6, r0, r4 - movs r4, 0x26 - ldrsh r3, [r6, r4] - ldr r2, _0800C504 @ =0x00015001 - adds r0, r3, r2 - adds r0, r5 - ldrb r4, [r0] - adds r2, 0x3 - adds r0, r3, r2 - adds r0, r5 - ldrb r7, [r0] - adds r2, 0x1 - adds r0, r3, r2 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 8 - orrs r7, r0 - subs r2, 0x5 - adds r0, r3, r2 - adds r0, r5 - ldrb r0, [r0] - mov r9, r1 - cmp r0, 0x1 - beq _0800C5B0 - cmp r0, 0x1 - bgt _0800C508 - cmp r0, 0 - beq _0800C50E - b _0800C5E8 - .align 2, 0 -_0800C4FC: .4byte gTasks -_0800C500: .4byte 0x02000000 -_0800C504: .4byte 0x00015001 -_0800C508: - cmp r0, 0x2 - beq _0800C5CC - b _0800C5E8 -_0800C50E: - ldr r2, _0800C588 @ =gUnknown_02024A64 - ldr r1, _0800C58C @ =gBitTable - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0800C5FA - lsls r0, r4, 9 - ldr r1, _0800C590 @ =gUnknown_02023A60 - adds r0, r1 - ldr r2, _0800C594 @ =0x00015008 - adds r1, r5, r2 - adds r1, r3, r1 - adds r2, r7, 0 - bl memcpy - adds r0, r4, 0 - bl sub_80155A4 - ldr r0, _0800C598 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _0800C5E8 - ldr r1, _0800C59C @ =gUnknown_02024C07 - movs r4, 0x26 - ldrsh r0, [r6, r4] - ldr r2, _0800C5A0 @ =0x00015002 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0800C5A4 @ =gUnknown_02024C08 - movs r4, 0x26 - ldrsh r0, [r6, r4] - adds r2, 0x1 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0800C5A8 @ =gUnknown_02024C0C - movs r4, 0x26 - ldrsh r0, [r6, r4] - adds r2, 0x3 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0800C5AC @ =gUnknown_02024C0A - movs r4, 0x26 - ldrsh r0, [r6, r4] - adds r2, 0x1 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - b _0800C5E8 - .align 2, 0 -_0800C588: .4byte gUnknown_02024A64 -_0800C58C: .4byte gBitTable -_0800C590: .4byte gUnknown_02023A60 -_0800C594: .4byte 0x00015008 -_0800C598: .4byte gBattleTypeFlags -_0800C59C: .4byte gUnknown_02024C07 -_0800C5A0: .4byte 0x00015002 -_0800C5A4: .4byte gUnknown_02024C08 -_0800C5A8: .4byte gUnknown_02024C0C -_0800C5AC: .4byte gUnknown_02024C0A -_0800C5B0: - lsls r0, r4, 9 - ldr r1, _0800C5C4 @ =gUnknown_02024260 - adds r0, r1 - ldr r4, _0800C5C8 @ =0x00015008 - adds r1, r5, r4 - adds r1, r3, r1 - adds r2, r7, 0 - bl memcpy - b _0800C5E8 - .align 2, 0 -_0800C5C4: .4byte gUnknown_02024260 -_0800C5C8: .4byte 0x00015008 -_0800C5CC: - ldr r1, _0800C608 @ =0x00015008 - adds r0, r3, r1 - adds r0, r5 - ldrb r2, [r0] - ldr r3, _0800C60C @ =gUnknown_02024A64 - ldr r1, _0800C610 @ =gBitTable - lsls r0, r4, 2 - adds r0, r1 - lsls r2, 2 - ldr r1, [r0] - lsls r1, r2 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] -_0800C5E8: - ldr r0, _0800C614 @ =gTasks - mov r1, r9 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, r7, r0 - adds r0, 0x8 - strh r0, [r1, 0x26] -_0800C5FA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C608: .4byte 0x00015008 -_0800C60C: .4byte gUnknown_02024A64 -_0800C610: .4byte gBitTable -_0800C614: .4byte gTasks - thumb_func_end sub_800C47C - - thumb_func_start dp01_build_cmdbuf_x00_a_b_0 -dp01_build_cmdbuf_x00_a_b_0: @ 800C618 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C638 @ =gUnknown_03004040 - movs r3, 0 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - strb r3, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800C638: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x00_a_b_0 - - thumb_func_start dp01_build_cmdbuf_x01_a_b_0 -dp01_build_cmdbuf_x01_a_b_0: @ 800C63C - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C660 @ =gUnknown_03004040 - movs r4, 0 - movs r3, 0x1 - strb r3, [r1] - strb r5, [r1, 0x1] - strb r2, [r1, 0x2] - strb r4, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800C660: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x01_a_b_0 - - thumb_func_start dp01_build_cmdbuf_x02_a_b_varargs -dp01_build_cmdbuf_x02_a_b_varargs: @ 800C664 - push {r4-r6,lr} - ldr r4, [sp, 0x10] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, _0800C6A0 @ =gUnknown_03004040 - movs r3, 0x2 - strb r3, [r0] - strb r1, [r0, 0x1] - strb r2, [r0, 0x2] - adds r1, r0, 0 - cmp r5, 0 - beq _0800C692 - adds r3, r1, 0x3 - adds r2, r5, 0 -_0800C684: - ldrb r0, [r4] - strb r0, [r3] - adds r4, 0x1 - adds r3, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _0800C684 -_0800C692: - adds r2, r5, 0x3 - adds r0, r6, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800C6A0: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x02_a_b_varargs - - thumb_func_start unref_sub_800C6A4 -unref_sub_800C6A4: @ 800C6A4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r0, _0800C6E0 @ =gUnknown_03004040 - movs r2, 0x3 - strb r2, [r0] - strb r1, [r0, 0x1] - strb r4, [r0, 0x2] - adds r5, r0, 0 - cmp r4, 0 - beq _0800C6D0 - adds r1, r5, 0x3 - adds r2, r4, 0 -_0800C6C2: - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _0800C6C2 -_0800C6D0: - adds r2, r4, 0x3 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800C6E0: .4byte gUnknown_03004040 - thumb_func_end unref_sub_800C6A4 - - thumb_func_start dp01_build_cmdbuf_x04_4_4_4 -dp01_build_cmdbuf_x04_4_4_4: @ 800C6E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C700 @ =gUnknown_03004040 - movs r2, 0x4 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C700: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x04_4_4_4 - - thumb_func_start sub_800C704 -sub_800C704: @ 800C704 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C724 @ =gUnknown_03004040 - movs r3, 0x5 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - strb r3, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800C724: .4byte gUnknown_03004040 - thumb_func_end sub_800C704 - - thumb_func_start dp01_build_cmdbuf_x06_a -dp01_build_cmdbuf_x06_a: @ 800C728 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C744 @ =gUnknown_03004040 - movs r2, 0x6 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C744: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x06_a - - thumb_func_start dp01_build_cmdbuf_x07_7_7_7 -dp01_build_cmdbuf_x07_7_7_7: @ 800C748 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C764 @ =gUnknown_03004040 - movs r2, 0x7 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C764: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x07_7_7_7 - - thumb_func_start dp01_build_cmdbuf_x08_8_8_8 -dp01_build_cmdbuf_x08_8_8_8: @ 800C768 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C784 @ =gUnknown_03004040 - movs r2, 0x8 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C784: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x08_8_8_8 - - thumb_func_start dp01_build_cmdbuf_x09_9_9_9 -dp01_build_cmdbuf_x09_9_9_9: @ 800C788 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C7A4 @ =gUnknown_03004040 - movs r2, 0x9 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C7A4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x09_9_9_9 - - thumb_func_start dp01_build_cmdbuf_x0A_A_A_A -dp01_build_cmdbuf_x0A_A_A_A: @ 800C7A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C7C4 @ =gUnknown_03004040 - movs r2, 0xA - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C7C4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x0A_A_A_A - - thumb_func_start dp01_build_cmdbuf_x0B_B_B_B -dp01_build_cmdbuf_x0B_B_B_B: @ 800C7C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C7E4 @ =gUnknown_03004040 - movs r2, 0xB - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C7E4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x0B_B_B_B - - thumb_func_start dp01_build_cmdbuf_x0C_C_C_C -dp01_build_cmdbuf_x0C_C_C_C: @ 800C7E8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C804 @ =gUnknown_03004040 - movs r2, 0xC - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C804: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x0C_C_C_C - - thumb_func_start dp01_build_cmdbuf_x0D_a -dp01_build_cmdbuf_x0D_a: @ 800C808 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800C824 @ =gUnknown_03004040 - movs r2, 0xD - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800C824: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x0D_a - - thumb_func_start unref_sub_800C828 -unref_sub_800C828: @ 800C828 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r1, _0800C86C @ =gUnknown_03004040 - movs r0, 0xE - strb r0, [r1] - strb r4, [r1, 0x1] - lsls r0, r4, 1 - adds r0, r4 - adds r5, r1, 0 - cmp r0, 0 - beq _0800C856 - adds r1, r5, 0x2 - adds r3, r0, 0 -_0800C848: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0800C848 -_0800C856: - lsls r2, r4, 1 - adds r2, r4 - adds r2, 0x2 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800C86C: .4byte gUnknown_03004040 - thumb_func_end unref_sub_800C828 - - thumb_func_start dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes -dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, [sp, 0x1C] - ldr r5, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r7, _0800C904 @ =gUnknown_03004040 - movs r0, 0 - mov r12, r0 - movs r0, 0xF - strb r0, [r7] - strb r1, [r7, 0x1] - lsrs r1, 8 - strb r1, [r7, 0x2] - strb r2, [r7, 0x3] - strb r3, [r7, 0x4] - movs r6, 0xFF - lsls r6, 8 - lsrs r3, 8 - strb r3, [r7, 0x5] - strb r4, [r7, 0x6] - adds r0, r4, 0 - ands r0, r6 - asrs r0, 8 - strb r0, [r7, 0x7] - movs r0, 0xFF - lsls r0, 16 - ands r0, r4 - asrs r0, 16 - strb r0, [r7, 0x8] - lsrs r4, 24 - strb r4, [r7, 0x9] - strb r5, [r7, 0xA] - ldr r0, _0800C908 @ =gUnknown_02024C0E - ldrb r0, [r0] - strb r0, [r7, 0xB] - mov r0, r12 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0800C910 - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0800C910 - ldr r0, _0800C90C @ =gBattleWeather - ldrh r0, [r0] - strb r0, [r7, 0xC] - ands r6, r0 - lsrs r0, r6, 8 - strb r0, [r7, 0xD] - adds r4, r7, 0 - b _0800C91A - .align 2, 0 -_0800C904: .4byte gUnknown_03004040 -_0800C908: .4byte gUnknown_02024C0E -_0800C90C: .4byte gBattleWeather -_0800C910: - ldr r0, _0800C944 @ =gUnknown_03004040 - movs r1, 0 - strb r1, [r0, 0xC] - strb r1, [r0, 0xD] - adds r4, r0, 0 -_0800C91A: - movs r0, 0 - strb r0, [r4, 0xE] - strb r0, [r4, 0xF] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, [sp, 0x24] - movs r2, 0x1C - bl memcpy - mov r0, r8 - adds r1, r4, 0 - movs r2, 0x2C - bl dp01_prepare_buffer - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C944: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes - - thumb_func_start dp01_build_cmdbuf_x10_TODO -dp01_build_cmdbuf_x10_TODO: @ 800C948 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0800CA2C @ =gUnknown_03004040 - movs r0, 0x10 - strb r0, [r2] - ldr r0, _0800CA30 @ =gUnknown_02024D26 - ldrb r0, [r0] - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - lsrs r1, 8 - strb r1, [r2, 0x3] - adds r0, r2, 0x4 - mov r12, r0 - ldr r4, _0800CA34 @ =gUnknown_02024BE6 - ldrh r0, [r4] - strh r0, [r2, 0x4] - ldr r0, _0800CA38 @ =gUnknown_02024BE8 - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1, 0x2] - ldr r0, _0800CA3C @ =gUnknown_02024C04 - ldrh r0, [r0] - strh r0, [r1, 0x4] - ldr r0, _0800CA40 @ =byte_2024C06 - ldrb r0, [r0] - strb r0, [r1, 0x6] - ldr r1, _0800CA44 @ =0x02000000 - ldr r3, _0800CA48 @ =0x00016003 - adds r0, r1, r3 - ldrb r0, [r0] - mov r7, r12 - strb r0, [r7, 0x7] - adds r3, 0x5B - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r7, 0x8] - ldr r7, _0800CA4C @ =0x000160c1 - adds r1, r7 - ldrb r0, [r1] - mov r1, r12 - strb r0, [r1, 0x9] - ldr r0, _0800CA50 @ =gUnknown_02024C0B - ldrb r0, [r0] - strb r0, [r1, 0xA] - ldr r3, _0800CA54 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - mov r3, r12 - strb r0, [r3, 0xB] - movs r3, 0 - mov r9, r2 - ldr r7, _0800CA58 @ =gUnknown_030042B0 - mov r8, r7 - adds r2, 0x10 - ldr r0, _0800CA5C @ =gBattleMons - adds r4, r0, 0 - adds r4, 0x20 -_0800C9D2: - adds r1, r2, r3 - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x58 - adds r3, 0x1 - cmp r3, 0x3 - ble _0800C9D2 - movs r3, 0 - mov r5, r12 - adds r5, 0x10 - mov r4, r12 - adds r4, 0x20 - ldr r6, _0800CA60 @ =gUnknown_03004290 - mov r2, r12 - adds r2, 0x30 -_0800C9F0: - adds r1, r5, r3 - ldr r7, _0800CA64 @ =gUnknown_030041C0 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r4, r3 - adds r0, r3, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r3 - mov r7, r8 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0xF - ble _0800C9F0 - mov r0, r10 - mov r1, r9 - movs r2, 0x44 - bl dp01_prepare_buffer - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CA2C: .4byte gUnknown_03004040 -_0800CA30: .4byte gUnknown_02024D26 -_0800CA34: .4byte gUnknown_02024BE6 -_0800CA38: .4byte gUnknown_02024BE8 -_0800CA3C: .4byte gUnknown_02024C04 -_0800CA40: .4byte byte_2024C06 -_0800CA44: .4byte 0x02000000 -_0800CA48: .4byte 0x00016003 -_0800CA4C: .4byte 0x000160c1 -_0800CA50: .4byte gUnknown_02024C0B -_0800CA54: .4byte gBattleMoves -_0800CA58: .4byte gUnknown_030042B0 -_0800CA5C: .4byte gBattleMons -_0800CA60: .4byte gUnknown_03004290 -_0800CA64: .4byte gUnknown_030041C0 - thumb_func_end dp01_build_cmdbuf_x10_TODO - - thumb_func_start dp01_build_cmdbuf_x11_TODO -dp01_build_cmdbuf_x11_TODO: @ 800CA68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0800CB28 @ =gUnknown_03004040 - movs r0, 0x11 - strb r0, [r2] - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - lsrs r1, 8 - strb r1, [r2, 0x3] - adds r0, r2, 0x4 - mov r12, r0 - ldr r0, _0800CB2C @ =gUnknown_02024BE6 - ldrh r0, [r0] - strh r0, [r2, 0x4] - ldr r0, _0800CB30 @ =gUnknown_02024BE8 - ldrh r0, [r0] - mov r1, r12 - strh r0, [r1, 0x2] - ldr r0, _0800CB34 @ =gUnknown_02024C04 - ldrh r0, [r0] - strh r0, [r1, 0x4] - ldr r0, _0800CB38 @ =byte_2024C06 - ldrb r0, [r0] - strb r0, [r1, 0x6] - ldr r0, _0800CB3C @ =0x02000000 - ldr r3, _0800CB40 @ =0x00016003 - adds r1, r0, r3 - ldrb r1, [r1] - mov r7, r12 - strb r1, [r7, 0x7] - ldr r1, _0800CB44 @ =0x0001605e - adds r0, r1 - ldrb r0, [r0] - strb r0, [r7, 0x8] - movs r3, 0 - mov r9, r2 - ldr r7, _0800CB48 @ =gUnknown_030042B0 - mov r8, r7 - mov r4, r9 - adds r4, 0x10 - ldr r0, _0800CB4C @ =gBattleMons - adds r2, r0, 0 - adds r2, 0x20 -_0800CACE: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x58 - adds r3, 0x1 - cmp r3, 0x3 - ble _0800CACE - movs r3, 0 - mov r5, r12 - adds r5, 0x10 - mov r4, r12 - adds r4, 0x20 - ldr r6, _0800CB50 @ =gUnknown_03004290 - mov r2, r12 - adds r2, 0x30 -_0800CAEC: - adds r1, r5, r3 - ldr r7, _0800CB54 @ =gUnknown_030041C0 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r4, r3 - adds r0, r3, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r3 - mov r7, r8 - adds r0, r3, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0xF - ble _0800CAEC - mov r0, r10 - mov r1, r9 - movs r2, 0x44 - bl dp01_prepare_buffer - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800CB28: .4byte gUnknown_03004040 -_0800CB2C: .4byte gUnknown_02024BE6 -_0800CB30: .4byte gUnknown_02024BE8 -_0800CB34: .4byte gUnknown_02024C04 -_0800CB38: .4byte byte_2024C06 -_0800CB3C: .4byte 0x02000000 -_0800CB40: .4byte 0x00016003 -_0800CB44: .4byte 0x0001605e -_0800CB48: .4byte gUnknown_030042B0 -_0800CB4C: .4byte gBattleMons -_0800CB50: .4byte gUnknown_03004290 -_0800CB54: .4byte gUnknown_030041C0 - thumb_func_end dp01_build_cmdbuf_x11_TODO - - thumb_func_start dp01_build_cmdbuf_x12_a_bb -dp01_build_cmdbuf_x12_a_bb: @ 800CB58 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _0800CB80 @ =gUnknown_03004040 - movs r3, 0x12 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CB80: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x12_a_bb - - thumb_func_start unref_sub_800CB84 -unref_sub_800CB84: @ 800CB84 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CBA0 @ =gUnknown_03004040 - movs r2, 0x13 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800CBA0: .4byte gUnknown_03004040 - thumb_func_end unref_sub_800CB84 - - thumb_func_start sub_800CBA4 -sub_800CBA4: @ 800CBA4 - push {r4-r6,lr} - adds r5, r3, 0 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _0800CBDC @ =gUnknown_03004040 - movs r4, 0 - movs r0, 0x14 - strb r0, [r3] - strb r1, [r3, 0x1] - strb r2, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0 - adds r1, r3, 0 - adds r4, r1, 0x4 -_0800CBC0: - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r4] - adds r4, 0x1 - adds r2, 0x1 - cmp r2, 0x13 - bls _0800CBC0 - adds r0, r6, 0 - movs r2, 0x18 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CBDC: .4byte gUnknown_03004040 - thumb_func_end sub_800CBA4 - - thumb_func_start sub_800CBE0 -sub_800CBE0: @ 800CBE0 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0800CC10 @ =gUnknown_03004040 - movs r0, 0x15 - strb r0, [r1] - movs r2, 0 - adds r3, r1, 0x1 -_0800CBF2: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _0800CBF2 - adds r0, r5, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800CC10: .4byte gUnknown_03004040 - thumb_func_end sub_800CBE0 - - thumb_func_start dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f -dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f: @ 800CC14 - push {r4-r6,lr} - ldr r6, [sp, 0x10] - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0800CC4C @ =gUnknown_03004040 - movs r0, 0x16 - strb r0, [r4] - strb r1, [r4, 0x1] - strb r2, [r4, 0x2] - strb r3, [r4, 0x3] - movs r2, 0 - adds r1, r4, 0 - adds r3, r1, 0x4 -_0800CC2E: - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - ble _0800CC2E - adds r0, r5, 0 - movs r2, 0x8 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CC4C: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - - thumb_func_start dp01_build_cmdbuf_x17_17_17_17 -dp01_build_cmdbuf_x17_17_17_17: @ 800CC50 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CC6C @ =gUnknown_03004040 - movs r2, 0x17 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800CC6C: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x17_17_17_17 - - thumb_func_start dp01_build_cmdbuf_x18_0_aa_health_bar_update -dp01_build_cmdbuf_x18_0_aa_health_bar_update: @ 800CC70 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _0800CCA4 @ =gUnknown_03004040 - movs r4, 0 - movs r2, 0x18 - strb r2, [r3] - strb r4, [r3, 0x1] - strb r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 16 - movs r2, 0xFF - lsls r2, 8 - ands r1, r2 - asrs r1, 8 - strb r1, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CCA4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x18_0_aa_health_bar_update - - thumb_func_start dp01_build_cmdbuf_x19_a_bb -dp01_build_cmdbuf_x19_a_bb: @ 800CCA8 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _0800CCD8 @ =gUnknown_03004040 - movs r3, 0x19 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsls r2, 16 - asrs r2, 16 - movs r3, 0xFF - lsls r3, 8 - ands r2, r3 - asrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CCD8: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x19_a_bb - - thumb_func_start dp01_build_cmdbuf_x1A_aaaa_bbbb -dp01_build_cmdbuf_x1A_aaaa_bbbb: @ 800CCDC - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CD2C @ =gUnknown_03004040 - movs r3, 0x1A - strb r3, [r1] - strb r4, [r1, 0x1] - movs r6, 0xFF - lsls r6, 8 - adds r3, r4, 0 - ands r3, r6 - lsrs r3, 8 - strb r3, [r1, 0x2] - movs r5, 0xFF - lsls r5, 16 - adds r3, r4, 0 - ands r3, r5 - lsrs r3, 16 - strb r3, [r1, 0x3] - lsrs r4, 24 - strb r4, [r1, 0x4] - strb r2, [r1, 0x5] - adds r3, r2, 0 - ands r3, r6 - lsrs r3, 8 - strb r3, [r1, 0x6] - adds r3, r2, 0 - ands r3, r5 - lsrs r3, 16 - strb r3, [r1, 0x7] - lsrs r2, 24 - strb r2, [r1, 0x8] - movs r2, 0x9 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CD2C: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x1A_aaaa_bbbb - - thumb_func_start dp01_build_cmdbuf_x1B_aaaa_b -dp01_build_cmdbuf_x1B_aaaa_b: @ 800CD30 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CD68 @ =gUnknown_03004040 - movs r3, 0x1B - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - movs r3, 0xFF - lsls r3, 8 - ands r3, r2 - lsrs r3, 8 - strb r3, [r1, 0x3] - movs r3, 0xFF - lsls r3, 16 - ands r3, r2 - lsrs r3, 16 - strb r3, [r1, 0x4] - lsrs r2, 24 - strb r2, [r1, 0x5] - movs r2, 0x6 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CD68: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x1B_aaaa_b - - thumb_func_start dp01_build_cmdbuf_x1C_a -dp01_build_cmdbuf_x1C_a: @ 800CD6C - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CD88 @ =gUnknown_03004040 - movs r2, 0x1C - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800CD88: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x1C_a - - thumb_func_start dp01_build_cmdbuf_x1D_1D_numargs_varargs -dp01_build_cmdbuf_x1D_1D_numargs_varargs: @ 800CD8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, _0800CDD0 @ =gUnknown_03004040 - movs r0, 0x1D - strb r0, [r1] - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - adds r5, r1, 0 - cmp r4, 0 - beq _0800CDBC - adds r1, r5, 0x4 - adds r3, r4, 0 -_0800CDAE: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0800CDAE -_0800CDBC: - adds r2, r4, 0x4 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CDD0: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x1D_1D_numargs_varargs - - thumb_func_start unref_sub_800CDD4 -unref_sub_800CDD4: @ 800CDD4 - push {r4-r6,lr} - adds r4, r3, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 16 - lsrs r5, r2, 16 - ldr r2, _0800CE38 @ =gUnknown_03004040 - movs r0, 0x1E - strb r0, [r2] - strb r1, [r2, 0x1] - movs r3, 0xFF - lsls r3, 8 - adds r0, r1, 0 - ands r0, r3 - lsrs r0, 8 - strb r0, [r2, 0x2] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r2, 0x3] - lsrs r1, 24 - strb r1, [r2, 0x4] - strb r5, [r2, 0x5] - adds r0, r5, 0 - ands r0, r3 - lsrs r0, 8 - strb r0, [r2, 0x6] - adds r1, r2, 0 - cmp r5, 0 - beq _0800CE24 - adds r3, r1, 0x7 - adds r2, r5, 0 -_0800CE16: - ldrb r0, [r4] - strb r0, [r3] - adds r4, 0x1 - adds r3, 0x1 - subs r2, 0x1 - cmp r2, 0 - bne _0800CE16 -_0800CE24: - adds r2, r5, 0x7 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CE38: .4byte gUnknown_03004040 - thumb_func_end unref_sub_800CDD4 - - thumb_func_start unref_sub_800CE3C -unref_sub_800CE3C: @ 800CE3C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, _0800CE80 @ =gUnknown_03004040 - movs r0, 0x1F - strb r0, [r1] - strb r4, [r1, 0x1] - lsrs r0, r4, 8 - strb r0, [r1, 0x2] - adds r5, r1, 0 - cmp r4, 0 - beq _0800CE6A - adds r1, r5, 0x3 - adds r3, r4, 0 -_0800CE5C: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0800CE5C -_0800CE6A: - adds r2, r4, 0x3 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CE80: .4byte gUnknown_03004040 - thumb_func_end unref_sub_800CE3C - - thumb_func_start unref_sub_800CE84 -unref_sub_800CE84: @ 800CE84 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, _0800CEC8 @ =gUnknown_03004040 - movs r0, 0x20 - strb r0, [r1] - strb r4, [r1, 0x1] - lsrs r0, r4, 8 - strb r0, [r1, 0x2] - adds r5, r1, 0 - cmp r4, 0 - beq _0800CEB2 - adds r1, r5, 0x3 - adds r3, r4, 0 -_0800CEA4: - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0800CEA4 -_0800CEB2: - adds r2, r4, 0x3 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl dp01_prepare_buffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CEC8: .4byte gUnknown_03004040 - thumb_func_end unref_sub_800CE84 - - thumb_func_start dp01_build_cmdbuf_x21_a_bb -dp01_build_cmdbuf_x21_a_bb: @ 800CECC - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _0800CEF4 @ =gUnknown_03004040 - movs r3, 0x21 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CEF4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x21_a_bb - - thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes -dp01_build_cmdbuf_x22_a_three_bytes: @ 800CEF8 - push {r4,r5,lr} - adds r4, r2, 0 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0800CF2C @ =gUnknown_03004040 - movs r0, 0x22 - strb r0, [r2] - strb r1, [r2, 0x1] - movs r3, 0 - adds r1, r2, 0x2 -_0800CF0C: - adds r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r3, 0x1 - cmp r3, 0x2 - ble _0800CF0C - adds r0, r5, 0 - adds r1, r2, 0 - movs r2, 0x5 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800CF2C: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x22_a_three_bytes - - thumb_func_start dp01_build_cmdbuf_x23_aa_0 -dp01_build_cmdbuf_x23_aa_0: @ 800CF30 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _0800CF58 @ =gUnknown_03004040 - movs r4, 0 - movs r2, 0x23 - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CF58: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x23_aa_0 - - thumb_func_start dp01_build_cmdbuf_x24_aa_0 -dp01_build_cmdbuf_x24_aa_0: @ 800CF5C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _0800CF84 @ =gUnknown_03004040 - movs r4, 0 - movs r2, 0x24 - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CF84: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x24_aa_0 - - thumb_func_start dp01_build_cmdbuf_x25_25_25_25 -dp01_build_cmdbuf_x25_25_25_25: @ 800CF88 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CFA4 @ =gUnknown_03004040 - movs r2, 0x25 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800CFA4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x25_25_25_25 - - thumb_func_start dp01_build_cmdbuf_x26_a -dp01_build_cmdbuf_x26_a: @ 800CFA8 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CFC4 @ =gUnknown_03004040 - movs r2, 0x26 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800CFC4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x26_a - - thumb_func_start dp01_build_cmdbuf_x27_27_27_27 -dp01_build_cmdbuf_x27_27_27_27: @ 800CFC8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CFE4 @ =gUnknown_03004040 - movs r2, 0x27 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800CFE4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x27_27_27_27 - - thumb_func_start dp01_build_cmdbuf_x28_28_28_28 -dp01_build_cmdbuf_x28_28_28_28: @ 800CFE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D004 @ =gUnknown_03004040 - movs r2, 0x28 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D004: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x28_28_28_28 - - thumb_func_start dp01_build_cmdbuf_x29_29_29_29 -dp01_build_cmdbuf_x29_29_29_29: @ 800D008 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D024 @ =gUnknown_03004040 - movs r2, 0x29 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D024: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x29_29_29_29 - - thumb_func_start dp01_build_cmdbuf_x2A_2A_2A_2A -dp01_build_cmdbuf_x2A_2A_2A_2A: @ 800D028 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D044 @ =gUnknown_03004040 - movs r2, 0x2A - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D044: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x2A_2A_2A_2A - - thumb_func_start dp01_build_cmdbuf_x2B_aa_0 -dp01_build_cmdbuf_x2B_aa_0: @ 800D048 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _0800D070 @ =gUnknown_03004040 - movs r4, 0 - movs r2, 0x2B - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800D070: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x2B_aa_0 - - thumb_func_start sub_800D074 -sub_800D074: @ 800D074 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _0800D09C @ =gUnknown_03004040 - movs r4, 0 - movs r2, 0x2C - strb r2, [r3] - strb r1, [r3, 0x1] - lsrs r1, 8 - strb r1, [r3, 0x2] - strb r4, [r3, 0x3] - adds r1, r3, 0 - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800D09C: .4byte gUnknown_03004040 - thumb_func_end sub_800D074 - - thumb_func_start dp01_build_cmdbuf_x2D_2D_2D_2D -dp01_build_cmdbuf_x2D_2D_2D_2D: @ 800D0A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D0BC @ =gUnknown_03004040 - movs r2, 0x2D - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D0BC: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x2D_2D_2D_2D - - thumb_func_start dp01_build_cmdbuf_x2E_a -dp01_build_cmdbuf_x2E_a: @ 800D0C0 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D0DC @ =gUnknown_03004040 - movs r2, 0x2E - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D0DC: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x2E_a - - thumb_func_start dp01_build_cmdbuf_x2F_2F_2F_2F -dp01_build_cmdbuf_x2F_2F_2F_2F: @ 800D0E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D0FC @ =gUnknown_03004040 - movs r2, 0x2F - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D0FC: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x2F_2F_2F_2F - - thumb_func_start dp01_build_cmdbuf_x30_TODO -dp01_build_cmdbuf_x30_TODO: @ 800D100 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r1, _0800D144 @ =gUnknown_03004040 - movs r3, 0x30 - strb r3, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x80 - ands r0, r2 - lsls r0, 24 - lsrs r0, 31 - strb r0, [r1, 0x2] - strb r3, [r1, 0x3] - movs r2, 0 - adds r3, r1, 0x4 -_0800D128: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2F - ble _0800D128 - adds r0, r5, 0 - movs r2, 0x34 - bl dp01_prepare_buffer - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D144: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x30_TODO - - thumb_func_start dp01_build_cmdbuf_x31_31_31_31 -dp01_build_cmdbuf_x31_31_31_31: @ 800D148 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D164 @ =gUnknown_03004040 - movs r2, 0x31 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D164: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x31_31_31_31 - - thumb_func_start dp01_build_cmdbuf_x32_32_32_32 -dp01_build_cmdbuf_x32_32_32_32: @ 800D168 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D184 @ =gUnknown_03004040 - movs r2, 0x32 - strb r2, [r1] - strb r2, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D184: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x32_32_32_32 - - thumb_func_start dp01_build_cmdbuf_x33_a_33_33 -dp01_build_cmdbuf_x33_a_33_33: @ 800D188 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D1A8 @ =gUnknown_03004040 - movs r2, 0x33 - strb r2, [r1] - strb r3, [r1, 0x1] - strb r2, [r1, 0x2] - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D1A8: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x33_a_33_33 - - thumb_func_start dp01_build_cmdbuf_x34_a_bb_aka_battle_anim -dp01_build_cmdbuf_x34_a_bb_aka_battle_anim: @ 800D1AC - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _0800D1D4 @ =gUnknown_03004040 - movs r3, 0x34 - strb r3, [r1] - strb r4, [r1, 0x1] - strb r2, [r1, 0x2] - lsrs r2, 8 - strb r2, [r1, 0x3] - movs r2, 0x4 - bl dp01_prepare_buffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800D1D4: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - - thumb_func_start sub_800D1D8 -sub_800D1D8: @ 800D1D8 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D1F4 @ =gUnknown_03004040 - movs r2, 0x35 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D1F4: .4byte gUnknown_03004040 - thumb_func_end sub_800D1D8 - - thumb_func_start dp01_build_cmdbuf_x38_a -dp01_build_cmdbuf_x38_a: @ 800D1F8 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D214 @ =gUnknown_03004040 - movs r2, 0x36 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D214: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x38_a - - thumb_func_start dp01_build_cmdbuf_x37_a -dp01_build_cmdbuf_x37_a: @ 800D218 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800D234 @ =gUnknown_03004040 - movs r2, 0x37 - strb r2, [r1] - strb r3, [r1, 0x1] - movs r2, 0x2 - bl dp01_prepare_buffer - pop {r0} - bx r0 - .align 2, 0 -_0800D234: .4byte gUnknown_03004040 - thumb_func_end dp01_build_cmdbuf_x37_a - - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index 8367bc1d6..5dc385350 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -47,7 +47,6 @@ SECTIONS { src/rtc.o(.text); src/main_menu.o(.text); src/rom3.o(.text); - asm/rom3.o(.text); src/decompress.o(.text); asm/rom_800D42C.o(.text); src/rom_800D42C.o(.text); diff --git a/src/rom3.c b/src/rom3.c index af9a9f4dd..a5227d9d9 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -14,7 +14,10 @@ extern u8 unk_2000000[]; extern u16 gBattleTypeFlags; extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; -extern u32 gBitTable[]; +extern const u32 gBitTable[]; +extern u16 gBattleWeather; +extern const struct BattleMove gBattleMoves[]; +extern struct BattlePokemon gBattleMons[]; extern u8 gUnknown_020238C4; extern u8 gUnknown_020238C5; @@ -27,13 +30,24 @@ extern u32 gUnknown_02024A64; extern u8 gUnknown_02024A68; extern u16 gUnknown_02024A6A[]; extern u8 gUnknown_02024A72[]; +extern u16 gUnknown_02024BE6; +extern u16 gUnknown_02024BE8; +extern u16 gUnknown_02024C04; +extern u8 byte_2024C06; extern u8 gUnknown_02024C07; extern u8 gUnknown_02024C08; extern u8 gUnknown_02024C0A; +extern u8 gUnknown_02024C0B; extern u8 gUnknown_02024C0C; +extern u8 gUnknown_02024C0E; extern u8 gUnknown_02024C78; +extern u8 gUnknown_02024D26; extern u8 gUnknown_02024E60[]; extern u8 gUnknown_02024E64[]; +extern u8 gUnknown_03004040[]; +extern u8 gUnknown_030041C0[]; +extern u8 gUnknown_03004290[]; +extern u8 gUnknown_030042B0[]; extern void (*gUnknown_030042D4)(void); extern void (*gUnknown_03004330[])(void); @@ -60,6 +74,8 @@ extern void sub_800C1A8(u8); extern void sub_800C47C(u8); extern void sub_8007F4C(void); extern u8 sub_8007ECC(void); +extern void sub_80155A4(); +extern u8 sub_8018324(); void sub_800B858(void) { @@ -295,7 +311,7 @@ void sub_800BD54(void) { if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != 0 - && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != 0x19C + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0) { gUnknown_02024A6A[i] = j; @@ -306,7 +322,7 @@ void sub_800BD54(void) { if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0 && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0 - && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0x19C + && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0) { gUnknown_02024A6A[i] = j; @@ -319,8 +335,8 @@ void sub_800BD54(void) if (!(gUnknown_02024A72[i] & 1)) { if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 - && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != 0 //Why is this one not SPECIES2 like the rest? - && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != 0x19C + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != 0 //Probably a typo by Game Freak. The rest use SPECIES2 + && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0 && gUnknown_02024A6A[i - 2] != j) { @@ -332,7 +348,7 @@ void sub_800BD54(void) { if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0 && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0 - && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != 0x19C + && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0 && gUnknown_02024A6A[i - 2] != j) { @@ -524,12 +540,8 @@ void sub_800C35C(void) } } -/* -extern void sub_80155A4(); - void sub_800C47C(u8 taskId) { - //s16 r3; u16 r7; u8 r4; u8 r2; @@ -542,35 +554,855 @@ void sub_800C47C(u8 taskId) gTasks[taskId].data[12] = 0; gTasks[taskId].data[15] = 0; } - //_0800C4B6 - //r3 = gTasks[taskId].data[15]; - asm(""::"r"(unk_2000000)); - r4 = EWRAM_15000[gTasks[taskId].data[15] + 1]; - r7 = EWRAM_15000[gTasks[taskId].data[15] + 4] | (EWRAM_15000[gTasks[taskId].data[15] + 5] << 8); - switch (EWRAM_15000[gTasks[taskId].data[15]]) + r4 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 1]; + r7 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 4] | (unk_2000000[0x15000 + gTasks[taskId].data[15] + 5] << 8); + switch (unk_2000000[0x15000 + gTasks[taskId].data[15] + 0]) { - case 0: - if (gUnknown_02024A64 & gBitTable[r4]) - return; - memcpy(gUnknown_02023A60[r4], &EWRAM_15000[gTasks[taskId].data[15] + 8], r7); - sub_80155A4(r4); - if (!(gBattleTypeFlags & 4)) - { - gUnknown_02024C07 = EWRAM_15000[gTasks[taskId].data[15] + 2]; - gUnknown_02024C08 = EWRAM_15000[gTasks[taskId].data[15] + 3]; - gUnknown_02024C0C = EWRAM_15000[gTasks[taskId].data[15] + 6]; - gUnknown_02024C0A = EWRAM_15000[gTasks[taskId].data[15] + 7]; - } - break; - case 1: - memcpy(gUnknown_02024260[r4], &EWRAM_15000[gTasks[taskId].data[15] + 8], r7); - break; - case 2: - r2 = EWRAM_15000[gTasks[taskId].data[15] + 8]; - gUnknown_02024A64 &= ~(gBitTable[r4] << (r2 * 4)); - break; + case 0: + if (gUnknown_02024A64 & gBitTable[r4]) + return; + memcpy(gUnknown_02023A60[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); + sub_80155A4(r4); + if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + { + gUnknown_02024C07 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2]; + gUnknown_02024C08 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3]; + gUnknown_02024C0C = unk_2000000[0x15000 + gTasks[taskId].data[15] + 6]; + gUnknown_02024C0A = unk_2000000[0x15000 + gTasks[taskId].data[15] + 7]; + } + break; + case 1: + memcpy(gUnknown_02024260[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); + break; + case 2: + r2 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 8]; + gUnknown_02024A64 &= ~(gBitTable[r4] << (r2 * 4)); + break; } gTasks[taskId].data[15] = gTasks[taskId].data[15] + r7 + 8; } } -*/
\ No newline at end of file + +void dp01_build_cmdbuf_x00_a_b_0(u8 a, int b, int c) +{ + gUnknown_03004040[0] = 0; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = 0; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x01_a_b_0(u8 a, int b, int c) +{ + gUnknown_03004040[0] = 1; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = 0; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x02_a_b_varargs(u8 a, int b, int c, u8 d, u8 *e) +{ + int i; + + gUnknown_03004040[0] = 2; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + for (i = 0; i < d; i++) + gUnknown_03004040[3 + i] = *(e++); + dp01_prepare_buffer(a, gUnknown_03004040, d + 3); +} + +void unref_sub_800C6A4(u8 a, int b, u8 c, u8 *d) +{ + int i; + + gUnknown_03004040[0] = 3; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + for (i = 0; i < c; i++) + gUnknown_03004040[3 + i] = *(d++); + dp01_prepare_buffer(a, gUnknown_03004040, c + 3); +} + +void dp01_build_cmdbuf_x04_4_4_4(u8 a) +{ + gUnknown_03004040[0] = 4; + gUnknown_03004040[1] = 4; + gUnknown_03004040[2] = 4; + gUnknown_03004040[3] = 4; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void sub_800C704(u8 a, int b, int c) +{ + gUnknown_03004040[0] = 5; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = 5; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x06_a(u8 a, int b) +{ + gUnknown_03004040[0] = 6; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void dp01_build_cmdbuf_x07_7_7_7(u8 a) +{ + gUnknown_03004040[0] = 7; + gUnknown_03004040[1] = 7; + gUnknown_03004040[2] = 7; + gUnknown_03004040[3] = 7; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x08_8_8_8(u8 a) +{ + gUnknown_03004040[0] = 8; + gUnknown_03004040[1] = 8; + gUnknown_03004040[2] = 8; + gUnknown_03004040[3] = 8; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x09_9_9_9(u8 a) +{ + gUnknown_03004040[0] = 9; + gUnknown_03004040[1] = 9; + gUnknown_03004040[2] = 9; + gUnknown_03004040[3] = 9; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x0A_A_A_A(u8 a) +{ + gUnknown_03004040[0] = 10; + gUnknown_03004040[1] = 10; + gUnknown_03004040[2] = 10; + gUnknown_03004040[3] = 10; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x0B_B_B_B(u8 a) +{ + gUnknown_03004040[0] = 11; + gUnknown_03004040[1] = 11; + gUnknown_03004040[2] = 11; + gUnknown_03004040[3] = 11; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x0C_C_C_C(u8 a) +{ + gUnknown_03004040[0] = 12; + gUnknown_03004040[1] = 12; + gUnknown_03004040[2] = 12; + gUnknown_03004040[3] = 12; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x0D_a(u8 a, int b) +{ + gUnknown_03004040[0] = 13; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void unref_sub_800C828(u8 a, u8 b, u8 *c) +{ + int i; + + gUnknown_03004040[0] = 14; + gUnknown_03004040[1] = b; + for (i = 0; i < b * 3; i++) + gUnknown_03004040[2 + i] = *(c++); + dp01_prepare_buffer(a, gUnknown_03004040, b * 3 + 2); +} + +void dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes(u8 a, u16 b, u8 c, u16 d, int e, u8 f, u8 *g) +{ + gUnknown_03004040[0] = 15; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gUnknown_03004040[3] = c; + gUnknown_03004040[4] = d; + gUnknown_03004040[5] = (d & 0xFF00) >> 8; + gUnknown_03004040[6] = e; + gUnknown_03004040[7] = (e & 0x0000FF00) >> 8; + gUnknown_03004040[8] = (e & 0x00FF0000) >> 16; + gUnknown_03004040[9] = (e & 0xFF000000) >> 24; + gUnknown_03004040[10] = f; + gUnknown_03004040[11] = gUnknown_02024C0E; + if (sub_8018324(14, 0, 13, 0, 0) == 0 && sub_8018324(14, 0, 0x4D, 0, 0) == 0) + { + gUnknown_03004040[12] = gBattleWeather; + gUnknown_03004040[13] = (gBattleWeather & 0xFF00) >> 8; + } + else + { + gUnknown_03004040[12] = 0; + gUnknown_03004040[13] = 0; + } + gUnknown_03004040[14] = 0; + gUnknown_03004040[15] = 0; + memcpy(gUnknown_03004040 + 16, g, 0x1C); + dp01_prepare_buffer(a, gUnknown_03004040, 0x2C); +} + +#ifdef NONMATCHING +void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) +{ + int i; + //u16 *r12; + + gUnknown_03004040[0] = 16; + gUnknown_03004040[1] = gUnknown_02024D26; + gUnknown_03004040[2] = b; + gUnknown_03004040[3] = (b & 0xFF00) >> 8; + + *((u16 *)&gUnknown_03004040[4]) = gUnknown_02024BE6; + *((u16 *)&gUnknown_03004040[6]) = gUnknown_02024BE8; + *((u16 *)&gUnknown_03004040[8]) = gUnknown_02024C04; + + gUnknown_03004040[10] = byte_2024C06; + gUnknown_03004040[11] = unk_2000000[0x16000 + 3]; + gUnknown_03004040[12] = unk_2000000[0x16000 + 0x5E]; + gUnknown_03004040[13] = unk_2000000[0x16000 + 0xC1]; + gUnknown_03004040[14] = gUnknown_02024C0B; + gUnknown_03004040[15] = gBattleMoves[gUnknown_02024BE6].type; + for (i = 0; i < 4; i++) + { + gUnknown_03004040[16 + i] = gBattleMons[i].ability; + } + for (i = 0; i < 16; i++) + { + gUnknown_03004040[20 + i] = gUnknown_030041C0[i]; + gUnknown_03004040[36 + i] = gUnknown_03004290[i]; + gUnknown_03004040[52 + i] = gUnknown_030042B0[i]; + } + dp01_prepare_buffer(a, gUnknown_03004040, 0x44); +} +#else +__attribute__((naked)) +void dp01_build_cmdbuf_x10_TODO(u8 a, u16 b) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + ldr r2, _0800CA2C @ =gUnknown_03004040\n\ + movs r0, 0x10\n\ + strb r0, [r2]\n\ + ldr r0, _0800CA30 @ =gUnknown_02024D26\n\ + ldrb r0, [r0]\n\ + strb r0, [r2, 0x1]\n\ + strb r1, [r2, 0x2]\n\ + lsrs r1, 8\n\ + strb r1, [r2, 0x3]\n\ + adds r0, r2, 0x4\n\ + mov r12, r0\n\ + ldr r4, _0800CA34 @ =gUnknown_02024BE6\n\ + ldrh r0, [r4]\n\ + strh r0, [r2, 0x4]\n\ + ldr r0, _0800CA38 @ =gUnknown_02024BE8\n\ + ldrh r0, [r0]\n\ + mov r1, r12\n\ + strh r0, [r1, 0x2]\n\ + ldr r0, _0800CA3C @ =gUnknown_02024C04\n\ + ldrh r0, [r0]\n\ + strh r0, [r1, 0x4]\n\ + ldr r0, _0800CA40 @ =byte_2024C06\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0x6]\n\ + ldr r1, _0800CA44 @ =0x02000000\n\ + ldr r3, _0800CA48 @ =0x00016003\n\ + adds r0, r1, r3\n\ + ldrb r0, [r0]\n\ + mov r7, r12\n\ + strb r0, [r7, 0x7]\n\ + adds r3, 0x5B\n\ + adds r0, r1, r3\n\ + ldrb r0, [r0]\n\ + strb r0, [r7, 0x8]\n\ + ldr r7, _0800CA4C @ =0x000160c1\n\ + adds r1, r7\n\ + ldrb r0, [r1]\n\ + mov r1, r12\n\ + strb r0, [r1, 0x9]\n\ + ldr r0, _0800CA50 @ =gUnknown_02024C0B\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0xA]\n\ + ldr r3, _0800CA54 @ =gBattleMoves\n\ + ldrh r1, [r4]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + ldrb r0, [r0, 0x2]\n\ + mov r3, r12\n\ + strb r0, [r3, 0xB]\n\ + movs r3, 0\n\ + mov r9, r2\n\ + ldr r7, _0800CA58 @ =gUnknown_030042B0\n\ + mov r8, r7\n\ + adds r2, 0x10\n\ + ldr r0, _0800CA5C @ =gBattleMons\n\ + adds r4, r0, 0\n\ + adds r4, 0x20\n\ +_0800C9D2:\n\ + adds r1, r2, r3\n\ + ldrb r0, [r4]\n\ + strb r0, [r1]\n\ + adds r4, 0x58\n\ + adds r3, 0x1\n\ + cmp r3, 0x3\n\ + ble _0800C9D2\n\ + movs r3, 0\n\ + mov r5, r12\n\ + adds r5, 0x10\n\ + mov r4, r12\n\ + adds r4, 0x20\n\ + ldr r6, _0800CA60 @ =gUnknown_03004290\n\ + mov r2, r12\n\ + adds r2, 0x30\n\ +_0800C9F0:\n\ + adds r1, r5, r3\n\ + ldr r7, _0800CA64 @ =gUnknown_030041C0\n\ + adds r0, r3, r7\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r1, r4, r3\n\ + adds r0, r3, r6\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r1, r2, r3\n\ + mov r7, r8\n\ + adds r0, r3, r7\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r3, 0x1\n\ + cmp r3, 0xF\n\ + ble _0800C9F0\n\ + mov r0, r10\n\ + mov r1, r9\n\ + movs r2, 0x44\n\ + bl dp01_prepare_buffer\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0800CA2C: .4byte gUnknown_03004040\n\ +_0800CA30: .4byte gUnknown_02024D26\n\ +_0800CA34: .4byte gUnknown_02024BE6\n\ +_0800CA38: .4byte gUnknown_02024BE8\n\ +_0800CA3C: .4byte gUnknown_02024C04\n\ +_0800CA40: .4byte byte_2024C06\n\ +_0800CA44: .4byte 0x02000000\n\ +_0800CA48: .4byte 0x00016003\n\ +_0800CA4C: .4byte 0x000160c1\n\ +_0800CA50: .4byte gUnknown_02024C0B\n\ +_0800CA54: .4byte gBattleMoves\n\ +_0800CA58: .4byte gUnknown_030042B0\n\ +_0800CA5C: .4byte gBattleMons\n\ +_0800CA60: .4byte gUnknown_03004290\n\ +_0800CA64: .4byte gUnknown_030041C0\n\ + .syntax divided\n"); +} +#endif + +__attribute__((naked)) +void dp01_build_cmdbuf_x11_TODO() +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + ldr r2, _0800CB28 @ =gUnknown_03004040\n\ + movs r0, 0x11\n\ + strb r0, [r2]\n\ + strb r0, [r2, 0x1]\n\ + strb r1, [r2, 0x2]\n\ + lsrs r1, 8\n\ + strb r1, [r2, 0x3]\n\ + adds r0, r2, 0x4\n\ + mov r12, r0\n\ + ldr r0, _0800CB2C @ =gUnknown_02024BE6\n\ + ldrh r0, [r0]\n\ + strh r0, [r2, 0x4]\n\ + ldr r0, _0800CB30 @ =gUnknown_02024BE8\n\ + ldrh r0, [r0]\n\ + mov r1, r12\n\ + strh r0, [r1, 0x2]\n\ + ldr r0, _0800CB34 @ =gUnknown_02024C04\n\ + ldrh r0, [r0]\n\ + strh r0, [r1, 0x4]\n\ + ldr r0, _0800CB38 @ =byte_2024C06\n\ + ldrb r0, [r0]\n\ + strb r0, [r1, 0x6]\n\ + ldr r0, _0800CB3C @ =0x02000000\n\ + ldr r3, _0800CB40 @ =0x00016003\n\ + adds r1, r0, r3\n\ + ldrb r1, [r1]\n\ + mov r7, r12\n\ + strb r1, [r7, 0x7]\n\ + ldr r1, _0800CB44 @ =0x0001605e\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + strb r0, [r7, 0x8]\n\ + movs r3, 0\n\ + mov r9, r2\n\ + ldr r7, _0800CB48 @ =gUnknown_030042B0\n\ + mov r8, r7\n\ + mov r4, r9\n\ + adds r4, 0x10\n\ + ldr r0, _0800CB4C @ =gBattleMons\n\ + adds r2, r0, 0\n\ + adds r2, 0x20\n\ +_0800CACE:\n\ + adds r1, r4, r3\n\ + ldrb r0, [r2]\n\ + strb r0, [r1]\n\ + adds r2, 0x58\n\ + adds r3, 0x1\n\ + cmp r3, 0x3\n\ + ble _0800CACE\n\ + movs r3, 0\n\ + mov r5, r12\n\ + adds r5, 0x10\n\ + mov r4, r12\n\ + adds r4, 0x20\n\ + ldr r6, _0800CB50 @ =gUnknown_03004290\n\ + mov r2, r12\n\ + adds r2, 0x30\n\ +_0800CAEC:\n\ + adds r1, r5, r3\n\ + ldr r7, _0800CB54 @ =gUnknown_030041C0\n\ + adds r0, r3, r7\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r1, r4, r3\n\ + adds r0, r3, r6\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r1, r2, r3\n\ + mov r7, r8\n\ + adds r0, r3, r7\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r3, 0x1\n\ + cmp r3, 0xF\n\ + ble _0800CAEC\n\ + mov r0, r10\n\ + mov r1, r9\n\ + movs r2, 0x44\n\ + bl dp01_prepare_buffer\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0800CB28: .4byte gUnknown_03004040\n\ +_0800CB2C: .4byte gUnknown_02024BE6\n\ +_0800CB30: .4byte gUnknown_02024BE8\n\ +_0800CB34: .4byte gUnknown_02024C04\n\ +_0800CB38: .4byte byte_2024C06\n\ +_0800CB3C: .4byte 0x02000000\n\ +_0800CB40: .4byte 0x00016003\n\ +_0800CB44: .4byte 0x0001605e\n\ +_0800CB48: .4byte gUnknown_030042B0\n\ +_0800CB4C: .4byte gBattleMons\n\ +_0800CB50: .4byte gUnknown_03004290\n\ +_0800CB54: .4byte gUnknown_030041C0\n\ + .syntax divided\n"); +} + +void dp01_build_cmdbuf_x12_a_bb(u8 a, int b, u16 c) +{ + gUnknown_03004040[0] = 18; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void unref_sub_800CB84(u8 a, int b) +{ + gUnknown_03004040[0] = 19; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void sub_800CBA4(u8 a, int b, int c, u8 *d) +{ + u32 i; + + gUnknown_03004040[0] = 20; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = 0; + for (i = 0; i < 20; i++) + gUnknown_03004040[4 + i] = d[i]; + dp01_prepare_buffer(a, gUnknown_03004040, 24); +} + +void sub_800CBE0(u8 a, u8 *b) +{ + int i; + + gUnknown_03004040[0] = 21; + for (i = 0; i < 3; i++) + gUnknown_03004040[1 + i] = b[i]; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f(u8 a, int b, int c, int d, u8 *e) +{ + int i; + + gUnknown_03004040[0] = 22; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = d; + for (i = 0; i < 3; i++) + gUnknown_03004040[4 + i] = e[i]; + dp01_prepare_buffer(a, gUnknown_03004040, 8); //but only 7 bytes were written +} + +void dp01_build_cmdbuf_x17_17_17_17(u8 a) +{ + gUnknown_03004040[0] = 23; + gUnknown_03004040[1] = 23; + gUnknown_03004040[2] = 23; + gUnknown_03004040[3] = 23; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x18_0_aa_health_bar_update(u8 a, s16 b) +{ + gUnknown_03004040[0] = 24; + gUnknown_03004040[1] = 0; + gUnknown_03004040[2] = b; + gUnknown_03004040[3] = (b & 0xFF00) >> 8; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x19_a_bb(u8 a, int b, s16 c) +{ + gUnknown_03004040[0] = 25; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x1A_aaaa_bbbb(u8 a, u32 b, u32 c) +{ + gUnknown_03004040[0] = 26; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0x0000FF00) >> 8; + gUnknown_03004040[3] = (b & 0x00FF0000) >> 16; + gUnknown_03004040[4] = (b & 0xFF000000) >> 24; + gUnknown_03004040[5] = c; + gUnknown_03004040[6] = (c & 0x0000FF00) >> 8; + gUnknown_03004040[7] = (c & 0x00FF0000) >> 16; + gUnknown_03004040[8] = (c & 0xFF000000) >> 24; + dp01_prepare_buffer(a, gUnknown_03004040, 9); +} + +void dp01_build_cmdbuf_x1B_aaaa_b(u8 a, int b, u32 c) +{ + gUnknown_03004040[0] = 27; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = (c & 0x0000FF00) >> 8; + gUnknown_03004040[4] = (c & 0x00FF0000) >> 16; + gUnknown_03004040[5] = (c & 0xFF000000) >> 24; + dp01_prepare_buffer(a, gUnknown_03004040, 6); +} + +void dp01_build_cmdbuf_x1C_a(u8 a, int b) +{ + gUnknown_03004040[0] = 28; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void dp01_build_cmdbuf_x1D_1D_numargs_varargs(u8 a, u16 b, u8 *c) +{ + int i; + + gUnknown_03004040[0] = 29; + gUnknown_03004040[1] = 29; + gUnknown_03004040[2] = b; + gUnknown_03004040[3] = (b & 0xFF00) >> 8; + for (i = 0; i < b; i++) + gUnknown_03004040[4 + i] = *(c++); + dp01_prepare_buffer(a, gUnknown_03004040, b + 4); +} + +void unref_sub_800CDD4(u8 a, u32 b, u16 c, u8 *d) +{ + int i; + + gUnknown_03004040[0] = 30; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0x0000FF00) >> 8; + gUnknown_03004040[3] = (b & 0x00FF0000) >> 16; + gUnknown_03004040[4] = (b & 0xFF000000) >> 24; + gUnknown_03004040[5] = c; + gUnknown_03004040[6] = (c & 0xFF00) >> 8; + for (i = 0; i < c; i++) + gUnknown_03004040[7 + i] = *(d++); + dp01_prepare_buffer(a, gUnknown_03004040, c + 7); +} + +void unref_sub_800CE3C(u8 a, u16 b, u8 *c) +{ + int i; + + gUnknown_03004040[0] = 31; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + for (i = 0; i < b; i++) + gUnknown_03004040[3 + i] = *(c++); + dp01_prepare_buffer(a, gUnknown_03004040, b + 3); +} + +void unref_sub_800CE84(u8 a, u16 b, u8 *c) +{ + int i; + + gUnknown_03004040[0] = 32; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + for (i = 0; i < b; i++) + gUnknown_03004040[3 + i] = *(c++); + dp01_prepare_buffer(a, gUnknown_03004040, b + 3); +} + +void dp01_build_cmdbuf_x21_a_bb(u8 a, int b, u16 c) +{ + gUnknown_03004040[0] = 33; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x22_a_three_bytes(u8 a, int b, u8 *c) +{ + int i; + + gUnknown_03004040[0] = 34; + gUnknown_03004040[1] = b; + for (i = 0; i < 3; i++) + gUnknown_03004040[2 + i] = c[i]; + dp01_prepare_buffer(a, gUnknown_03004040, 5); +} + +void dp01_build_cmdbuf_x23_aa_0(u8 a, u16 b) +{ + gUnknown_03004040[0] = 35; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gUnknown_03004040[3] = 0; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x24_aa_0(u8 a, u16 b) +{ + gUnknown_03004040[0] = 36; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gUnknown_03004040[3] = 0; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x25_25_25_25(u8 a) +{ + gUnknown_03004040[0] = 37; + gUnknown_03004040[1] = 37; + gUnknown_03004040[2] = 37; + gUnknown_03004040[3] = 37; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x26_a(u8 a, int b) +{ + gUnknown_03004040[0] = 38; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void dp01_build_cmdbuf_x27_27_27_27(u8 a) +{ + gUnknown_03004040[0] = 39; + gUnknown_03004040[1] = 39; + gUnknown_03004040[2] = 39; + gUnknown_03004040[3] = 39; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x28_28_28_28(u8 a) +{ + gUnknown_03004040[0] = 40; + gUnknown_03004040[1] = 40; + gUnknown_03004040[2] = 40; + gUnknown_03004040[3] = 40; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x29_29_29_29(u8 a) +{ + gUnknown_03004040[0] = 41; + gUnknown_03004040[1] = 41; + gUnknown_03004040[2] = 41; + gUnknown_03004040[3] = 41; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x2A_2A_2A_2A(u8 a) +{ + gUnknown_03004040[0] = 42; + gUnknown_03004040[1] = 42; + gUnknown_03004040[2] = 42; + gUnknown_03004040[3] = 42; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x2B_aa_0(u8 a, u16 b) +{ + gUnknown_03004040[0] = 43; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gUnknown_03004040[3] = 0; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void sub_800D074(u8 a, u16 b) +{ + gUnknown_03004040[0] = 44; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = (b & 0xFF00) >> 8; + gUnknown_03004040[3] = 0; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x2D_2D_2D_2D(u8 a) +{ + gUnknown_03004040[0] = 45; + gUnknown_03004040[1] = 45; + gUnknown_03004040[2] = 45; + gUnknown_03004040[3] = 45; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x2E_a(u8 a, int b) +{ + gUnknown_03004040[0] = 46; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a) +{ + gUnknown_03004040[0] = 47; + gUnknown_03004040[1] = 47; + gUnknown_03004040[2] = 47; + gUnknown_03004040[3] = 47; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c) +{ + int i; + + gUnknown_03004040[0] = 48; + gUnknown_03004040[1] = c & 0x7F; + gUnknown_03004040[2] = (c & 0x80) >> 7; + gUnknown_03004040[3] = 48; + for (i = 0; i < 48; i++) + gUnknown_03004040[4 + i] = b[i]; + dp01_prepare_buffer(a, gUnknown_03004040, 52); +} + +void dp01_build_cmdbuf_x31_31_31_31(u8 a) +{ + gUnknown_03004040[0] = 49; + gUnknown_03004040[1] = 49; + gUnknown_03004040[2] = 49; + gUnknown_03004040[3] = 49; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x32_32_32_32(u8 a) +{ + gUnknown_03004040[0] = 50; + gUnknown_03004040[1] = 50; + gUnknown_03004040[2] = 50; + gUnknown_03004040[3] = 50; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x33_a_33_33(u8 a, int b) +{ + gUnknown_03004040[0] = 51; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = 51; + gUnknown_03004040[3] = 51; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void dp01_build_cmdbuf_x34_a_bb_aka_battle_anim(u8 a, int b, u16 c) +{ + gUnknown_03004040[0] = 52; + gUnknown_03004040[1] = b; + gUnknown_03004040[2] = c; + gUnknown_03004040[3] = (c & 0xFF00) >> 8; + dp01_prepare_buffer(a, gUnknown_03004040, 4); +} + +void sub_800D1D8(u8 a, int b) +{ + gUnknown_03004040[0] = 53; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void dp01_build_cmdbuf_x38_a(u8 a, int b) +{ + gUnknown_03004040[0] = 54; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} + +void dp01_build_cmdbuf_x37_a(u8 a, int b) +{ + gUnknown_03004040[0] = 55; + gUnknown_03004040[1] = b; + dp01_prepare_buffer(a, gUnknown_03004040, 2); +} |