diff options
-rw-r--r-- | asm/link_rfu_2.s | 2075 | ||||
-rw-r--r-- | asm/link_rfu_4.s | 2071 | ||||
-rw-r--r-- | data/link_rfu_2.s | 125 | ||||
-rw-r--r-- | data/link_rfu_4.s | 128 | ||||
-rw-r--r-- | include/global.h | 9 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | sym_common.txt | 6 |
7 files changed, 2220 insertions, 2196 deletions
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index d13b2d2d6..716faa934 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -5334,14 +5334,14 @@ _080FAF18: .4byte Rfu thumb_func_start sub_80FAF1C sub_80FAF1C: @ 80FAF1C push {lr} - ldr r0, _080FAF2C @ =Rfu+0x9b0 + ldr r0, _080FAF2C @ =gUnknown_3005E00 ldr r1, _080FAF30 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy pop {r0} bx r0 .align 2, 0 -_080FAF2C: .4byte Rfu+0x9b0 +_080FAF2C: .4byte gUnknown_3005E00 _080FAF30: .4byte gSaveBlock2Ptr thumb_func_end sub_80FAF1C @@ -5452,7 +5452,7 @@ sub_80FAFE0: @ 80FAFE0 ands r1, r3 orrs r1, r0 strb r1, [r2, 0xA] - ldr r3, _080FB004 @ =Rfu+0x9b0 + ldr r3, _080FB004 @ =gUnknown_3005E00 movs r0, 0 movs r1, 0x2 bl rfu_REQ_configGameData @@ -5460,7 +5460,7 @@ sub_80FAFE0: @ 80FAFE0 bx r0 .align 2, 0 _080FB000: .4byte gUnknown_3005440 -_080FB004: .4byte Rfu+0x9b0 +_080FB004: .4byte gUnknown_3005E00 thumb_func_end sub_80FAFE0 thumb_func_start sub_80FB008 @@ -5473,7 +5473,7 @@ sub_80FB008: @ 80FB008 bl sub_80FAF58 _080FB016: ldr r2, _080FB028 @ =gUnknown_3005440 - ldr r3, _080FB02C @ =Rfu+0x9b0 + ldr r3, _080FB02C @ =gUnknown_3005E00 movs r0, 0 movs r1, 0x2 bl rfu_REQ_configGameData @@ -5481,7 +5481,7 @@ _080FB016: bx r0 .align 2, 0 _080FB028: .4byte gUnknown_3005440 -_080FB02C: .4byte Rfu+0x9b0 +_080FB02C: .4byte gUnknown_3005E00 thumb_func_end sub_80FB008 thumb_func_start sub_80FB030 @@ -8122,2067 +8122,4 @@ nullsub_89: @ 80FC474 bx lr thumb_func_end nullsub_89 - thumb_func_start sub_80FC478 -sub_80FC478: @ 80FC478 - push {r4,r5,lr} - adds r3, r0, 0 - movs r0, 0 - movs r4, 0 - movs r5, 0x46 -_080FC482: - adds r2, r0, 0x1 - movs r1, 0x45 - muls r0, r5 - adds r0, r3 - adds r0, 0x45 -_080FC48C: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _080FC48C - adds r0, r2, 0 - cmp r0, 0x13 - ble _080FC482 - movs r1, 0 - ldr r2, _080FC4C8 @ =0x00000579 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - movs r2, 0xAF - lsls r2, 3 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _080FC4CC @ =0x0000057a - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _080FC4D0 @ =0x0000057b - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FC4C8: .4byte 0x00000579 -_080FC4CC: .4byte 0x0000057a -_080FC4D0: .4byte 0x0000057b - thumb_func_end sub_80FC478 - - thumb_func_start sub_80FC4D4 -sub_80FC4D4: @ 80FC4D4 - push {r4,lr} - adds r3, r0, 0 - movs r1, 0 - movs r4, 0 -_080FC4DC: - lsls r0, r1, 3 - adds r2, r1, 0x1 - subs r0, r1 - movs r1, 0xD - lsls r0, 1 - adds r0, r3 - adds r0, 0xD -_080FC4EA: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _080FC4EA - adds r1, r2, 0 - cmp r1, 0x27 - ble _080FC4DC - movs r1, 0 - ldr r2, _080FC524 @ =0x00000231 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - movs r2, 0x8C - lsls r2, 2 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _080FC528 @ =0x00000232 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _080FC52C @ =0x00000233 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC524: .4byte 0x00000231 -_080FC528: .4byte 0x00000232 -_080FC52C: .4byte 0x00000233 - thumb_func_end sub_80FC4D4 - - thumb_func_start sub_80FC530 -sub_80FC530: @ 80FC530 - push {r4,lr} - adds r3, r0, 0 - movs r1, 0 - movs r4, 0 -_080FC538: - lsls r0, r1, 8 - adds r2, r1, 0x1 - movs r1, 0xFF - adds r0, r3 - adds r0, 0xFF -_080FC542: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _080FC542 - adds r1, r2, 0 - cmp r1, 0x1 - ble _080FC538 - movs r1, 0 - ldr r2, _080FC57C @ =0x00000201 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - movs r2, 0x80 - lsls r2, 2 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _080FC580 @ =0x00000202 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - ldr r2, _080FC584 @ =0x00000203 - adds r0, r3, r2 - ldrb r2, [r0] - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC57C: .4byte 0x00000201 -_080FC580: .4byte 0x00000202 -_080FC584: .4byte 0x00000203 - thumb_func_end sub_80FC530 - - thumb_func_start sub_80FC588 -sub_80FC588: @ 80FC588 - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r1, _080FC620 @ =0x0000057a - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0x13 - bhi _080FC628 - ldr r0, _080FC624 @ =0x04000208 - ldrh r1, [r0] - adds r7, r1, 0 - movs r1, 0 - strh r1, [r0] - movs r3, 0 - movs r2, 0 -_080FC5A6: - adds r1, r6, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080FC5BA - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080FC5BA - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080FC5BA: - adds r2, 0xE - cmp r2, 0x45 - ble _080FC5A6 - cmp r3, 0x5 - beq _080FC618 - movs r2, 0 - movs r0, 0xAF - lsls r0, 3 - adds r3, r5, r0 - movs r4, 0x46 -_080FC5CE: - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r4 - adds r1, r2, r1 - adds r1, r5, r1 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x45 - ble _080FC5CE - movs r1, 0xAF - lsls r1, 3 - adds r4, r5, r1 - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0x14 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r0, _080FC620 @ =0x0000057a - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - movs r1, 0 - adds r0, r6, 0 - adds r0, 0x45 -_080FC610: - strb r1, [r0] - subs r0, 0x1 - cmp r0, r6 - bge _080FC610 -_080FC618: - ldr r0, _080FC624 @ =0x04000208 - strh r7, [r0] - b _080FC632 - .align 2, 0 -_080FC620: .4byte 0x0000057a -_080FC624: .4byte 0x04000208 -_080FC628: - ldr r1, _080FC638 @ =0x0000057b - adds r0, r5, r1 - ldrb r1, [r0] - movs r1, 0x1 - strb r1, [r0] -_080FC632: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC638: .4byte 0x0000057b - thumb_func_end sub_80FC588 - - thumb_func_start sub_80FC63C -sub_80FC63C: @ 80FC63C - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - ldr r1, _080FC6CC @ =0x00000232 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0x27 - bhi _080FC6D4 - ldr r1, _080FC6D0 @ =0x04000208 - ldrh r0, [r1] - adds r7, r0, 0 - movs r0, 0 - strh r0, [r1] - movs r2, 0 - ldrb r0, [r5] - cmp r0, 0 - bne _080FC66C -_080FC65E: - adds r2, 0x1 - cmp r2, 0xD - bgt _080FC66C - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080FC65E -_080FC66C: - cmp r2, 0xE - beq _080FC6C4 - movs r2, 0 - movs r0, 0x8C - lsls r0, 2 - adds r3, r6, r0 -_080FC678: - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r2, r0 - adds r0, r6, r0 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0xD - ble _080FC678 - movs r1, 0x8C - lsls r1, 2 - adds r4, r6, r1 - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0x28 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r0, _080FC6CC @ =0x00000232 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - movs r1, 0 - adds r0, r5, 0 - adds r0, 0xD -_080FC6BC: - strb r1, [r0] - subs r0, 0x1 - cmp r0, r5 - bge _080FC6BC -_080FC6C4: - ldr r0, _080FC6D0 @ =0x04000208 - strh r7, [r0] - b _080FC6DE - .align 2, 0 -_080FC6CC: .4byte 0x00000232 -_080FC6D0: .4byte 0x04000208 -_080FC6D4: - ldr r1, _080FC6E4 @ =0x00000233 - adds r0, r6, r1 - ldrb r1, [r0] - movs r1, 0x1 - strb r1, [r0] -_080FC6DE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC6E4: .4byte 0x00000233 - thumb_func_end sub_80FC63C - - thumb_func_start sub_80FC6E8 -sub_80FC6E8: @ 80FC6E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r3, r1, 0 - ldr r1, _080FC730 @ =0x04000208 - ldrh r0, [r1] - mov r8, r0 - movs r0, 0 - strh r0, [r1] - movs r1, 0xAF - lsls r1, 3 - adds r0, r5, r1 - ldr r7, _080FC734 @ =0x00000579 - adds r4, r5, r7 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - beq _080FC718 - ldr r1, _080FC738 @ =0x0000057b - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FC73C -_080FC718: - movs r1, 0 - adds r0, r3, 0 - adds r0, 0x45 -_080FC71E: - strb r1, [r0] - subs r0, 0x1 - cmp r0, r3 - bge _080FC71E - ldr r0, _080FC730 @ =0x04000208 - mov r7, r8 - strh r7, [r0] - movs r0, 0 - b _080FC784 - .align 2, 0 -_080FC730: .4byte 0x04000208 -_080FC734: .4byte 0x00000579 -_080FC738: .4byte 0x0000057b -_080FC73C: - movs r2, 0 - movs r6, 0x46 -_080FC740: - adds r1, r3, r2 - ldrb r0, [r4] - adds r7, r0, 0 - muls r7, r6 - adds r0, r7, 0 - adds r0, r2, r0 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x45 - ble _080FC740 - ldr r0, _080FC790 @ =0x00000579 - adds r4, r5, r0 - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0x14 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r7, _080FC794 @ =0x0000057a - adds r1, r5, r7 - ldrb r0, [r1] - subs r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _080FC798 @ =0x04000208 - mov r1, r8 - strh r1, [r0] - movs r0, 0x1 -_080FC784: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080FC790: .4byte 0x00000579 -_080FC794: .4byte 0x0000057a -_080FC798: .4byte 0x04000208 - thumb_func_end sub_80FC6E8 - - thumb_func_start sub_80FC79C -sub_80FC79C: @ 80FC79C - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r1, 0x8C - lsls r1, 2 - adds r0, r5, r1 - adds r1, 0x1 - adds r4, r5, r1 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - beq _080FC7C0 - ldr r1, _080FC7C4 @ =0x00000233 - adds r0, r5, r1 - ldrb r0, [r0] - adds r2, r0, 0 - cmp r2, 0 - beq _080FC7C8 -_080FC7C0: - movs r0, 0 - b _080FC814 - .align 2, 0 -_080FC7C4: .4byte 0x00000233 -_080FC7C8: - ldr r1, _080FC81C @ =0x04000208 - ldrh r0, [r1] - adds r7, r0, 0 - strh r2, [r1] - movs r3, 0 -_080FC7D2: - adds r2, r6, r3 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r3, r0 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r2] - adds r3, 0x1 - cmp r3, 0xD - ble _080FC7D2 - ldr r0, _080FC820 @ =0x00000231 - adds r4, r5, r0 - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - ldrb r0, [r4] - movs r1, 0x28 - bl __umodsi3 - ldrb r1, [r4] - strb r0, [r4] - ldr r0, _080FC824 @ =0x00000232 - adds r1, r5, r0 - ldrb r0, [r1] - subs r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _080FC81C @ =0x04000208 - strh r7, [r0] - movs r0, 0x1 -_080FC814: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080FC81C: .4byte 0x04000208 -_080FC820: .4byte 0x00000231 -_080FC824: .4byte 0x00000232 - thumb_func_end sub_80FC79C - - thumb_func_start sub_80FC828 -sub_80FC828: @ 80FC828 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _080FC83E - adds r0, r2, 0 - movs r1, 0 - bl sub_80FC888 - b _080FC880 -_080FC83E: - movs r3, 0 -_080FC840: - ldrb r1, [r2, 0x1C] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r3, r0 - adds r0, r2, r0 - adds r1, r4, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0xD - ble _080FC840 - ldrb r0, [r2, 0x1C] - adds r0, 0x1 - ldrb r1, [r2, 0x1C] - strb r0, [r2, 0x1C] - ldrb r1, [r2, 0x1C] - movs r0, 0x1 - ands r0, r1 - ldrb r1, [r2, 0x1C] - strb r0, [r2, 0x1C] - ldrb r0, [r2, 0x1E] - cmp r0, 0x1 - bhi _080FC87A - ldrb r0, [r2, 0x1E] - adds r0, 0x1 - ldrb r1, [r2, 0x1E] - strb r0, [r2, 0x1E] - b _080FC880 -_080FC87A: - ldrb r0, [r2, 0x1C] - ldrb r1, [r2, 0x1D] - strb r0, [r2, 0x1D] -_080FC880: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FC828 - - thumb_func_start sub_80FC888 -sub_80FC888: @ 80FC888 - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r1, 0 - ldrb r0, [r3, 0x1E] - cmp r0, 0 - bne _080FC898 - movs r0, 0 - b _080FC8D2 -_080FC898: - cmp r5, 0 - beq _080FC8B6 - movs r4, 0 -_080FC89E: - adds r2, r5, r4 - ldrb r1, [r3, 0x1D] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r4, r0 - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r2] - adds r4, 0x1 - cmp r4, 0xD - ble _080FC89E -_080FC8B6: - ldrb r0, [r3, 0x1D] - adds r0, 0x1 - ldrb r1, [r3, 0x1D] - strb r0, [r3, 0x1D] - ldrb r1, [r3, 0x1D] - movs r0, 0x1 - ands r0, r1 - ldrb r1, [r3, 0x1D] - strb r0, [r3, 0x1D] - ldrb r0, [r3, 0x1E] - subs r0, 0x1 - ldrb r1, [r3, 0x1E] - strb r0, [r3, 0x1E] - movs r0, 0x1 -_080FC8D2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FC888 - - thumb_func_start sub_80FC8D8 -sub_80FC8D8: @ 80FC8D8 - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r1, 0 - ldr r1, _080FC92C @ =0x00000202 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080FC930 - movs r2, 0 - movs r0, 0x80 - lsls r0, 2 - adds r4, r3, r0 -_080FC8F0: - ldrb r0, [r4] - lsls r0, 8 - adds r0, r2, r0 - adds r0, r3, r0 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0xFF - ble _080FC8F0 - movs r0, 0x80 - lsls r0, 2 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - ldrb r2, [r1] - movs r0, 0x1 - ands r0, r2 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _080FC92C @ =0x00000202 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - b _080FC93A - .align 2, 0 -_080FC92C: .4byte 0x00000202 -_080FC930: - ldr r1, _080FC940 @ =0x00000203 - adds r0, r3, r1 - ldrb r1, [r0] - movs r1, 0x1 - strb r1, [r0] -_080FC93A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FC940: .4byte 0x00000203 - thumb_func_end sub_80FC8D8 - - thumb_func_start sub_80FC944 -sub_80FC944: @ 80FC944 - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r1, 0 - movs r1, 0x80 - lsls r1, 2 - adds r0, r3, r1 - adds r1, 0x1 - adds r4, r3, r1 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - beq _080FC966 - ldr r1, _080FC96C @ =0x00000203 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FC970 -_080FC966: - movs r0, 0 - b _080FC9AA - .align 2, 0 -_080FC96C: .4byte 0x00000203 -_080FC970: - movs r2, 0 -_080FC972: - adds r0, r5, r2 - ldrb r1, [r4] - lsls r1, 8 - adds r1, r2, r1 - adds r1, r3, r1 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0xFF - ble _080FC972 - ldr r0, _080FC9B0 @ =0x00000201 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - ldrb r2, [r1] - movs r0, 0x1 - ands r0, r2 - ldrb r2, [r1] - strb r0, [r1] - ldr r0, _080FC9B4 @ =0x00000202 - adds r1, r3, r0 - ldrb r0, [r1] - subs r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, 0x1 -_080FC9AA: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FC9B0: .4byte 0x00000201 -_080FC9B4: .4byte 0x00000202 - thumb_func_end sub_80FC944 - - thumb_func_start sub_80FC9B8 -sub_80FC9B8: @ 80FC9B8 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - movs r5, 0 - cmp r1, 0x1 - beq _080FC9F6 - cmp r1, 0x1 - bgt _080FC9D2 - cmp r1, 0 - beq _080FC9DC - b _080FCA6A -_080FC9D2: - cmp r0, 0x2 - beq _080FCA16 - cmp r0, 0x3 - beq _080FCA36 - b _080FCA6A -_080FC9DC: - movs r4, 0 -_080FC9DE: - adds r0, r6, r4 - adds r1, r4, 0x1 - strb r1, [r0] - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, r1, 0 - cmp r4, 0xC7 - ble _080FC9DE - b _080FCA30 -_080FC9F6: - movs r4, 0 - adds r2, r6, 0 - adds r2, 0xC8 -_080FC9FC: - adds r0, r6, r4 - adds r1, r4, 0x1 - strb r1, [r0] - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, r1, 0 - cmp r4, 0x63 - ble _080FC9FC - strh r5, [r2] - b _080FCA6A -_080FCA16: - movs r4, 0 -_080FCA18: - bl Random - lsls r0, 24 - lsrs r0, 24 - adds r1, r6, r4 - strb r0, [r1] - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, 0x1 - cmp r4, 0xC7 - ble _080FCA18 -_080FCA30: - adds r0, r6, r4 - strh r5, [r0] - b _080FCA6A -_080FCA36: - movs r4, 0 - ldr r3, _080FCA70 @ =gUnknown_3002018 - ldrb r1, [r3] - ldrb r0, [r3] - adds r7, r0, 0x1 - adds r2, r1, 0x1 - movs r0, 0xFF - mov r12, r0 -_080FCA46: - adds r0, r6, r4 - adds r1, r4, 0x1 - strb r2, [r0] - adds r0, r4, r7 - mov r4, r12 - ands r0, r4 - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r2, 0x1 - adds r4, r1, 0 - cmp r1, 0xC7 - ble _080FCA46 - adds r0, r6, r1 - strh r5, [r0] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] -_080FCA6A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCA70: .4byte gUnknown_3002018 - thumb_func_end sub_80FC9B8 - - thumb_func_start sub_80FCA74 -sub_80FCA74: @ 80FCA74 - push {r4,r5,lr} - adds r4, r0, 0 - movs r3, 0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080FCA98 - ldr r5, _080FCAA4 @ =gUnknown_843F104 - adds r2, r1, 0 -_080FCA84: - adds r1, r4, r3 - ldrb r0, [r2] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - adds r3, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080FCA84 -_080FCA98: - adds r1, r4, r3 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCAA4: .4byte gUnknown_843F104 - thumb_func_end sub_80FCA74 - - thumb_func_start sub_80FCAA8 -sub_80FCAA8: @ 80FCAA8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r3, 0 - ldrb r0, [r1] - cmp r0, 0 - beq _080FCACC - ldr r5, _080FCAD8 @ =gUnknown_843F004 - adds r2, r1, 0 -_080FCAB8: - adds r1, r4, r3 - ldrb r0, [r2] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - adds r3, 0x1 - ldrb r0, [r2] - cmp r0, 0 - bne _080FCAB8 -_080FCACC: - adds r1, r4, r3 - movs r0, 0xFF - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCAD8: .4byte gUnknown_843F004 - thumb_func_end sub_80FCAA8 - - thumb_func_start sub_80FCADC -sub_80FCADC: @ 80FCADC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r0, _080FCB04 @ =gRfuLinkStatus - ldr r4, [r0] - ldrb r2, [r4, 0x2] - ldrb r1, [r4] - adds r7, r0, 0 - cmp r1, 0x1 - bne _080FCB32 - movs r3, 0 - ands r1, r2 - cmp r1, 0 - beq _080FCB0E - cmp r5, 0x1 - bne _080FCB08 - ldrb r0, [r4, 0xA] - b _080FCB4C - .align 2, 0 -_080FCB04: .4byte gRfuLinkStatus -_080FCB08: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080FCB0E: - lsrs r2, 1 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bhi _080FCB4A - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080FCB0E - adds r0, r6, 0x1 - cmp r5, r0 - bne _080FCB08 -_080FCB28: - ldr r0, [r7] - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - b _080FCB4C -_080FCB32: - movs r3, 0 - movs r1, 0x1 -_080FCB36: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FCB28 - lsrs r2, 1 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080FCB36 -_080FCB4A: - movs r0, 0 -_080FCB4C: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FCADC - - thumb_func_start sub_80FCB54 -sub_80FCB54: @ 80FCB54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r4, 0 - ldr r0, _080FCC30 @ =gSaveBlock2Ptr - mov r8, r0 - adds r6, r7, 0x2 - ldr r0, [r0] - adds r5, r0, 0 - adds r5, 0xA -_080FCB72: - adds r0, r6, r4 - adds r1, r5, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x1 - ble _080FCB72 - movs r4, 0 - lsls r2, 7 - mov r12, r2 - adds r1, r7, 0x4 -_080FCB88: - adds r0, r1, r4 - strb r3, [r0] - asrs r3, 8 - adds r4, 0x1 - cmp r4, 0x3 - ble _080FCB88 - mov r1, r8 - ldr r0, [r1] - ldrb r0, [r0, 0x8] - movs r6, 0x1 - movs r1, 0x1 - ands r1, r0 - ldrb r2, [r7, 0xB] - movs r5, 0x2 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0xB] - movs r4, 0x7F - mov r1, r9 - ands r1, r4 - ldrb r2, [r7, 0xA] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - ands r0, r4 - mov r1, r12 - orrs r0, r1 - strb r0, [r7, 0xA] - ldrb r0, [r7] - movs r1, 0x10 - negs r1, r1 - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - ldrb r2, [r7, 0x1] - movs r0, 0x3D - negs r0, r0 - ands r0, r2 - .ifdef FIRERED - movs r2, 0x10 @ VERSION_FIRE_RED << 2 - .else - .ifdef LEAFGREEN - movs r2, 0x14 @ VERSION_LEAF_GREEN << 2 - .endif - .endif - orrs r0, r2 - strb r0, [r7, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r1, r0 - subs r0, 0x10 - ands r1, r0 - subs r0, 0x20 - ands r1, r0 - strb r1, [r7] - ldr r0, _080FCC34 @ =0x00000844 - bl FlagGet - lsls r0, 7 - ldrb r1, [r7] - ands r4, r1 - orrs r4, r0 - strb r4, [r7] - bl IsNationalPokedexEnabled - ands r0, r6 - ldrb r1, [r7, 0x1] - ands r5, r1 - orrs r5, r0 - strb r5, [r7, 0x1] - ldr r0, _080FCC38 @ =0x0000082c - bl FlagGet - ands r6, r0 - lsls r6, 1 - ldrb r1, [r7, 0x1] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - orrs r0, r6 - strb r0, [r7, 0x1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCC30: .4byte gSaveBlock2Ptr -_080FCC34: .4byte 0x00000844 -_080FCC38: .4byte 0x0000082c - thumb_func_end sub_80FCB54 - - thumb_func_start sub_80FCC3C -sub_80FCC3C: @ 80FCC3C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - mov r8, r1 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r0, _080FCC90 @ =gUnknown_3005E10 - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _080FCC98 - movs r0, 0x1 - mov r9, r0 - ldr r6, _080FCC94 @ =gRfuLinkStatus - ldr r0, [r6] - lsls r4, r5, 5 - adds r0, r4 - ldrh r0, [r0, 0x18] - bl sub_80FA44C - cmp r0, 0 - beq _080FCC78 - ldr r1, [r6] - ldrb r0, [r1, 0x7] - asrs r0, r5 - mov r2, r9 - ands r0, r2 - cmp r0, 0 - bne _080FCCB0 -_080FCC78: - adds r0, r7, 0 - movs r1, 0 - movs r2, 0xD - bl memset - mov r0, r8 - movs r1, 0 - movs r2, 0x8 - bl memset - b _080FCCE4 - .align 2, 0 -_080FCC90: .4byte gUnknown_3005E10 -_080FCC94: .4byte gRfuLinkStatus -_080FCC98: - movs r0, 0 - mov r9, r0 - ldr r6, _080FCCCC @ =gRfuLinkStatus - ldr r0, [r6] - lsls r4, r5, 5 - adds r0, r4 - ldrh r0, [r0, 0x18] - bl sub_80FA44C - cmp r0, 0 - beq _080FCCD0 - ldr r1, [r6] -_080FCCB0: - adds r1, r4, r1 - adds r1, 0x1A - adds r0, r7, 0 - movs r2, 0xD - bl memcpy - ldr r1, [r6] - adds r1, r4, r1 - adds r1, 0x29 - mov r0, r8 - movs r2, 0x8 - bl memcpy - b _080FCCE4 - .align 2, 0 -_080FCCCC: .4byte gRfuLinkStatus -_080FCCD0: - adds r0, r7, 0 - movs r1, 0 - movs r2, 0xD - bl memset - mov r0, r8 - movs r1, 0 - movs r2, 0x8 - bl memset -_080FCCE4: - mov r0, r9 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FCC3C - - thumb_func_start sub_80FCCF4 -sub_80FCCF4: @ 80FCCF4 - push {r4-r7,lr} - adds r3, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - movs r7, 0 - ldr r6, _080FCD2C @ =gRfuLinkStatus - ldr r0, [r6] - lsrs r4, r2, 19 - adds r2, r0, r4 - ldrh r1, [r2, 0x18] - ldr r0, _080FCD30 @ =0x00007f7d - cmp r1, r0 - bne _080FCD34 - adds r1, r2, 0 - adds r1, 0x1A - adds r0, r3, 0 - movs r2, 0xD - bl memcpy - ldr r1, [r6] - adds r1, r4, r1 - adds r1, 0x29 - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - movs r7, 0x1 - b _080FCD48 - .align 2, 0 -_080FCD2C: .4byte gRfuLinkStatus -_080FCD30: .4byte 0x00007f7d -_080FCD34: - adds r0, r3, 0 - movs r1, 0 - movs r2, 0xD - bl memset - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x8 - bl memset -_080FCD48: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FCCF4 - - thumb_func_start sub_80FCD50 -sub_80FCD50: @ 80FCD50 - push {r4,lr} - adds r4, r1, 0 - ldr r1, _080FCD6C @ =gUnknown_3005440 - movs r2, 0xD - bl memcpy - ldr r1, _080FCD70 @ =Rfu+0x9b0 - adds r0, r4, 0 - movs r2, 0x8 - bl memcpy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FCD6C: .4byte gUnknown_3005440 -_080FCD70: .4byte Rfu+0x9b0 - thumb_func_end sub_80FCD50 - - thumb_func_start CreateWirelessStatusIndicatorSprite -CreateWirelessStatusIndicatorSprite: @ 80FCD74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r3, 0 - bne _080FCD8A - cmp r2, 0 - bne _080FCD8A - movs r3, 0xE7 - movs r2, 0x8 -_080FCD8A: - ldr r0, _080FCDCC @ =gRfuLinkStatus - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x1 - bne _080FCDE4 - ldr r0, _080FCDD0 @ =gUnknown_843F284 - adds r1, r3, 0 - movs r3, 0 - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080FCDD4 @ =gSprites - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r4, r0 - ldr r0, _080FCDD8 @ =0x00001234 - strh r0, [r4, 0x3C] - ldr r0, _080FCDDC @ =gUnknown_843F274 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - strh r0, [r4, 0x3A] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - ldr r0, _080FCDE0 @ =gUnknown_203ACE4 - strb r5, [r0] - b _080FCE2A - .align 2, 0 -_080FCDCC: .4byte gRfuLinkStatus -_080FCDD0: .4byte gUnknown_843F284 -_080FCDD4: .4byte gSprites -_080FCDD8: .4byte 0x00001234 -_080FCDDC: .4byte gUnknown_843F274 -_080FCDE0: .4byte gUnknown_203ACE4 -_080FCDE4: - ldr r0, _080FCE30 @ =gUnknown_843F284 - adds r1, r3, 0 - movs r3, 0 - bl CreateSprite - ldr r4, _080FCE34 @ =gUnknown_203ACE4 - strb r0, [r4] - ldr r5, _080FCE38 @ =gSprites - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080FCE3C @ =0x00001234 - strh r1, [r0, 0x3C] - ldr r0, _080FCE40 @ =gUnknown_843F274 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x3A] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080FCE2A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCE30: .4byte gUnknown_843F284 -_080FCE34: .4byte gUnknown_203ACE4 -_080FCE38: .4byte gSprites -_080FCE3C: .4byte 0x00001234 -_080FCE40: .4byte gUnknown_843F274 - thumb_func_end CreateWirelessStatusIndicatorSprite - - thumb_func_start DestroyWirelessStatusIndicatorSprite -DestroyWirelessStatusIndicatorSprite: @ 80FCE44 - push {r4,lr} - ldr r4, _080FCE90 @ =gSprites - ldr r3, _080FCE94 @ =gUnknown_203ACE4 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r4 - movs r0, 0x3C - ldrsh r1, [r2, r0] - ldr r0, _080FCE98 @ =0x00001234 - cmp r1, r0 - bne _080FCE8A - movs r0, 0 - strh r0, [r2, 0x3C] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r3, _080FCE9C @ =gMain - movs r0, 0x84 - lsls r0, 3 - adds r3, r0 - ldr r0, _080FCEA0 @ =gDummyOamData - ldr r1, [r0] - ldr r2, [r0, 0x4] - str r1, [r3] - str r2, [r3, 0x4] - ldr r1, _080FCEA4 @ =0x070003e8 - movs r2, 0x4 - bl CpuSet -_080FCE8A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FCE90: .4byte gSprites -_080FCE94: .4byte gUnknown_203ACE4 -_080FCE98: .4byte 0x00001234 -_080FCE9C: .4byte gMain -_080FCEA0: .4byte gDummyOamData -_080FCEA4: .4byte 0x070003e8 - thumb_func_end DestroyWirelessStatusIndicatorSprite - - thumb_func_start LoadWirelessStatusIndicatorSpriteGfx -LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8 - push {r4,lr} - ldr r4, _080FCED4 @ =gUnknown_843F274 - ldrh r0, [r4, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _080FCED8 @ =0xffff0000 - cmp r0, r1 - bne _080FCEC0 - adds r0, r4, 0 - bl LoadCompressedSpriteSheet -_080FCEC0: - ldr r0, _080FCEDC @ =gUnknown_843F27C - bl LoadSpritePalette - ldr r1, _080FCEE0 @ =gUnknown_203ACE4 - movs r0, 0xFF - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FCED4: .4byte gUnknown_843F274 -_080FCED8: .4byte 0xffff0000 -_080FCEDC: .4byte gUnknown_843F27C -_080FCEE0: .4byte gUnknown_203ACE4 - thumb_func_end LoadWirelessStatusIndicatorSpriteGfx - - thumb_func_start sub_80FCEE4 -sub_80FCEE4: @ 80FCEE4 - push {r4,lr} - ldr r1, _080FCF04 @ =gRfuLinkStatus - ldr r0, [r1] - ldrb r2, [r0, 0x2] - movs r3, 0 - movs r4, 0x1 -_080FCEF0: - adds r0, r2, 0 - ands r0, r4 - cmp r0, 0 - beq _080FCF08 - ldr r0, [r1] - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - b _080FCF16 - .align 2, 0 -_080FCF04: .4byte gRfuLinkStatus -_080FCF08: - lsrs r2, 1 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080FCEF0 - movs r0, 0 -_080FCF16: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FCEE4 - - thumb_func_start sub_80FCF1C -sub_80FCF1C: @ 80FCF1C - push {lr} - adds r2, r0, 0 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, r1 - beq _080FCF30 - movs r0, 0 - strh r1, [r2, 0x32] - strh r0, [r2, 0x34] - strh r0, [r2, 0x36] -_080FCF30: - pop {r0} - bx r0 - thumb_func_end sub_80FCF1C - - thumb_func_start sub_80FCF34 -sub_80FCF34: @ 80FCF34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _080FCF78 @ =gUnknown_203ACE4 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080FCF44 - b _080FD106 -_080FCF44: - ldr r2, _080FCF7C @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - movs r0, 0x3C - ldrsh r1, [r2, r0] - ldr r0, _080FCF80 @ =0x00001234 - cmp r1, r0 - beq _080FCF5C - b _080FD106 -_080FCF5C: - adds r6, r2, 0 - movs r5, 0xFF - movs r4, 0 - ldr r0, _080FCF84 @ =gRfuLinkStatus - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x1 - bne _080FCFB6 - adds r7, r6, 0 - adds r7, 0x28 - movs r1, 0x29 - adds r1, r6 - mov r8, r1 - b _080FCFA6 - .align 2, 0 -_080FCF78: .4byte gUnknown_203ACE4 -_080FCF7C: .4byte gSprites -_080FCF80: .4byte 0x00001234 -_080FCF84: .4byte gRfuLinkStatus -_080FCF88: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80FCADC - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bcc _080FCFA6 - adds r0, r4, 0 - bl sub_80FCADC - lsls r0, 24 - lsrs r5, r0, 24 -_080FCFA6: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r4, r0 - blt _080FCF88 - b _080FCFC8 -_080FCFB6: - bl sub_80FCEE4 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r6, 0 - adds r7, 0x28 - movs r2, 0x29 - adds r2, r6 - mov r8, r2 -_080FCFC8: - bl sub_80FC1B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FCFD8 - movs r0, 0x4 - b _080FD006 -_080FCFD8: - cmp r5, 0x18 - bhi _080FCFE0 - movs r0, 0x3 - b _080FD006 -_080FCFE0: - adds r0, r5, 0 - subs r0, 0x19 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x65 - bhi _080FCFF0 - movs r0, 0x2 - b _080FD006 -_080FCFF0: - adds r0, r5, 0 - subs r0, 0x7F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x65 - bhi _080FD000 - movs r0, 0x1 - b _080FD006 -_080FD000: - cmp r5, 0xE4 - bls _080FD008 - movs r0, 0 -_080FD006: - strh r0, [r6, 0x2E] -_080FD008: - movs r3, 0x2E - ldrsh r1, [r6, r3] - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r1, r0 - beq _080FD01E - adds r0, r6, 0 - bl sub_80FCF1C - ldrh r0, [r6, 0x2E] - strh r0, [r6, 0x30] -_080FD01E: - movs r0, 0x32 - ldrsh r1, [r6, r0] - ldr r2, [r6, 0x8] - lsls r1, 2 - adds r1, r2 - movs r3, 0x36 - ldrsh r0, [r6, r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - movs r3, 0x34 - ldrsh r1, [r6, r3] - cmp r0, r1 - bge _080FD06C - ldrh r0, [r6, 0x36] - adds r0, 0x1 - movs r3, 0 - strh r0, [r6, 0x36] - strh r3, [r6, 0x34] - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 2 - adds r0, r2 - movs r2, 0x36 - ldrsh r1, [r6, r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r0, 0 - ldrsh r1, [r1, r0] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _080FD072 - strh r3, [r6, 0x36] - b _080FD072 -_080FD06C: - ldrh r0, [r6, 0x34] - adds r0, 0x1 - strh r0, [r6, 0x34] -_080FD072: - ldr r4, _080FD110 @ =gMain - movs r1, 0x84 - lsls r1, 3 - adds r0, r4, r1 - ldr r1, _080FD114 @ =gUnknown_843F204 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r0] - str r2, [r0, 0x4] - movs r3, 0x20 - ldrsh r2, [r6, r3] - movs r1, 0 - ldrsb r1, [r7, r1] - adds r2, r1 - ldr r1, _080FD118 @ =0x00000422 - adds r5, r4, r1 - ldr r3, _080FD11C @ =0x000001ff - adds r1, r3, 0 - ands r2, r1 - ldrh r3, [r5] - ldr r1, _080FD120 @ =0xfffffe00 - ands r1, r3 - orrs r1, r2 - strh r1, [r5] - ldrh r1, [r6, 0x22] - mov r2, r8 - ldrb r2, [r2] - adds r1, r2 - strb r1, [r0] - ldrb r2, [r6, 0x5] - ldr r3, _080FD124 @ =0x00000425 - adds r5, r4, r3 - lsrs r2, 4 - lsls r2, 4 - ldrb r3, [r5] - movs r1, 0xF - ands r1, r3 - orrs r1, r2 - strb r1, [r5] - movs r1, 0x32 - ldrsh r2, [r6, r1] - ldr r1, [r6, 0x8] - lsls r2, 2 - adds r2, r1 - movs r3, 0x36 - ldrsh r1, [r6, r3] - ldr r2, [r2] - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1] - ldrh r6, [r6, 0x3A] - adds r2, r6 - ldr r1, _080FD128 @ =0x00000424 - adds r4, r1 - ldr r3, _080FD12C @ =0x000003ff - adds r1, r3, 0 - ands r2, r1 - ldrh r3, [r4] - ldr r1, _080FD130 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r4] - ldr r1, _080FD134 @ =0x070003e8 - movs r2, 0x4 - bl CpuSet - bl sub_80FB9F4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FD106 - bl DestroyWirelessStatusIndicatorSprite -_080FD106: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD110: .4byte gMain -_080FD114: .4byte gUnknown_843F204 -_080FD118: .4byte 0x00000422 -_080FD11C: .4byte 0x000001ff -_080FD120: .4byte 0xfffffe00 -_080FD124: .4byte 0x00000425 -_080FD128: .4byte 0x00000424 -_080FD12C: .4byte 0x000003ff -_080FD130: .4byte 0xfffffc00 -_080FD134: .4byte 0x070003e8 - thumb_func_end sub_80FCF34 - - thumb_func_start sub_80FD138 -sub_80FD138: @ 80FD138 - push {r4,r5,lr} - adds r4, r0, 0 - str r1, [r4] - movs r3, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _080FD15C - adds r5, r4, 0x4 -_080FD148: - adds r1, r5, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x6 - bgt _080FD15C - ldrb r0, [r2] - cmp r0, 0xFF - bne _080FD148 -_080FD15C: - adds r0, r4, 0x4 - adds r0, r3 - movs r1, 0xFF - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FD138 - - thumb_func_start sub_80FD16C -sub_80FD16C: @ 80FD16C - push {lr} - movs r2, 0 - movs r1, 0x7 -_080FD172: - strb r2, [r0] - adds r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _080FD172 - pop {r0} - bx r0 - thumb_func_end sub_80FD16C - - thumb_func_start sub_80FD180 -sub_80FD180: @ 80FD180 - push {lr} - adds r1, r0, 0 - movs r2, 0 -_080FD186: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0 - beq _080FD192 - movs r0, 0 - b _080FD19A -_080FD192: - adds r2, 0x1 - cmp r2, 0x7 - ble _080FD186 - movs r0, 0x1 -_080FD19A: - pop {r1} - bx r1 - thumb_func_end sub_80FD180 - - thumb_func_start sub_80FD1A0 -sub_80FD1A0: @ 80FD1A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r0, _080FD1C4 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _080FD1B6 - b _080FD318 -_080FD1B6: - movs r0, 0xF0 - bl AllocZeroed - str r0, [sp, 0x14] - movs r4, 0 - b _080FD22C - .align 2, 0 -_080FD1C4: .4byte gWirelessCommType -_080FD1C8: - lsls r2, r4, 2 - mov r0, sp - adds r1, r0, r2 - movs r0, 0x1 - negs r0, r0 - str r0, [r1] - movs r5, 0 - mov r8, r2 - lsls r0, r4, 3 - adds r1, r4, 0x1 - mov r9, r1 - subs r0, r4 - lsls r0, 2 - str r0, [sp, 0x1C] - ldr r2, _080FD24C @ =gLinkPlayers + 8 - mov r10, r2 - ldr r6, _080FD250 @ =0x00003ba8 - movs r4, 0 - mov r0, r10 - subs r0, 0x4 - ldr r7, [sp, 0x1C] - adds r3, r7, r0 -_080FD1F4: - ldrh r1, [r3] - ldr r0, _080FD254 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldr r7, _080FD250 @ =0x00003ba8 - adds r0, r2, r7 - adds r0, r4 - ldr r0, [r0] - cmp r1, r0 - bne _080FD220 - adds r1, r2, r6 - adds r1, 0x4 - ldr r0, [sp, 0x1C] - add r0, r10 - str r3, [sp, 0x18] - bl StringCompare - ldr r3, [sp, 0x18] - cmp r0, 0 - bne _080FD220 - mov r0, sp - add r0, r8 - str r5, [r0] -_080FD220: - adds r6, 0xC - adds r4, 0xC - adds r5, 0x1 - cmp r5, 0x13 - ble _080FD1F4 - mov r4, r9 -_080FD22C: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - blt _080FD1C8 - movs r0, 0 - mov r8, r0 - movs r4, 0 - ldr r1, _080FD254 @ =gSaveBlock1Ptr - mov r9, r1 - mov r7, sp - movs r5, 0 - ldr r6, [sp, 0x14] - b _080FD2A4 - .align 2, 0 -_080FD24C: .4byte gLinkPlayers + 8 -_080FD250: .4byte 0x00003ba8 -_080FD254: .4byte gSaveBlock1Ptr -_080FD258: - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _080FD29E - ldr r2, _080FD328 @ =gLinkPlayers - adds r0, r5, r2 - ldrh r0, [r0, 0x1A] - cmp r0, 0x1 - beq _080FD29E - adds r0, r2, 0x4 - adds r0, r5, r0 - ldrh r1, [r0] - adds r2, 0x8 - adds r2, r5, r2 - adds r0, r6, 0 - bl sub_80FD138 - ldr r1, [r7] - cmp r1, 0 - blt _080FD298 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - mov r2, r9 - ldr r1, [r2] - adds r0, r1 - ldr r1, _080FD32C @ =0x00003bac - adds r0, r1 - bl sub_80FD16C -_080FD298: - adds r6, 0xC - movs r2, 0x1 - add r8, r2 -_080FD29E: - adds r7, 0x4 - adds r5, 0x1C - adds r4, 0x1 -_080FD2A4: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - blt _080FD258 - movs r4, 0 - ldr r7, _080FD330 @ =gSaveBlock1Ptr - mov r9, r7 - ldr r6, _080FD334 @ =0x00003ba8 - movs r7, 0 - mov r1, r8 - lsls r0, r1, 1 - add r0, r8 - lsls r0, 2 - ldr r2, [sp, 0x14] - adds r5, r0, r2 -_080FD2C6: - mov r1, r9 - ldr r0, [r1] - adds r0, r6 - adds r0, 0x4 - bl sub_80FD180 - cmp r0, 0 - bne _080FD2F8 - mov r0, r9 - ldr r2, [r0] - ldr r1, _080FD334 @ =0x00003ba8 - adds r0, r2, r1 - adds r0, r7 - ldr r1, [r0] - adds r2, r6 - adds r2, 0x4 - adds r0, r5, 0 - bl sub_80FD138 - adds r5, 0xC - movs r2, 0x1 - add r8, r2 - mov r0, r8 - cmp r0, 0x13 - bgt _080FD302 -_080FD2F8: - adds r6, 0xC - adds r7, 0xC - adds r4, 0x1 - cmp r4, 0x13 - ble _080FD2C6 -_080FD302: - ldr r0, _080FD330 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _080FD334 @ =0x00003ba8 - adds r0, r1 - ldr r1, [sp, 0x14] - movs r2, 0xF0 - bl memcpy - ldr r0, [sp, 0x14] - bl Free -_080FD318: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD328: .4byte gLinkPlayers -_080FD32C: .4byte 0x00003bac -_080FD330: .4byte gSaveBlock1Ptr -_080FD334: .4byte 0x00003ba8 - thumb_func_end sub_80FD1A0 - - thumb_func_start sub_80FD338 -sub_80FD338: @ 80FD338 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r7, 0 - ldr r6, _080FD374 @ =gSaveBlock1Ptr - ldr r4, _080FD378 @ =0x00003ba8 - movs r5, 0 -_080FD350: - ldr r0, [r6] - adds r0, r4 - adds r0, 0x4 - mov r1, r9 - movs r2, 0x7 - bl StringCompareN - cmp r0, 0 - bne _080FD37C - ldr r0, [r6] - ldr r1, _080FD378 @ =0x00003ba8 - adds r0, r1 - adds r0, r5 - ldr r0, [r0] - cmp r0, r8 - bne _080FD37C - movs r0, 0x1 - b _080FD396 - .align 2, 0 -_080FD374: .4byte gSaveBlock1Ptr -_080FD378: .4byte 0x00003ba8 -_080FD37C: - ldr r0, [r6] - adds r0, r4 - adds r0, 0x4 - bl sub_80FD180 - cmp r0, 0 - bne _080FD394 - adds r4, 0xC - adds r5, 0xC - adds r7, 0x1 - cmp r7, 0x13 - ble _080FD350 -_080FD394: - movs r0, 0 -_080FD396: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD338 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s new file mode 100644 index 000000000..7d3d3ca7a --- /dev/null +++ b/asm/link_rfu_4.s @@ -0,0 +1,2071 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80FC478 +sub_80FC478: @ 80FC478 + push {r4,r5,lr} + adds r3, r0, 0 + movs r0, 0 + movs r4, 0 + movs r5, 0x46 +_080FC482: + adds r2, r0, 0x1 + movs r1, 0x45 + muls r0, r5 + adds r0, r3 + adds r0, 0x45 +_080FC48C: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _080FC48C + adds r0, r2, 0 + cmp r0, 0x13 + ble _080FC482 + movs r1, 0 + ldr r2, _080FC4C8 @ =0x00000579 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + movs r2, 0xAF + lsls r2, 3 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _080FC4CC @ =0x0000057a + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _080FC4D0 @ =0x0000057b + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FC4C8: .4byte 0x00000579 +_080FC4CC: .4byte 0x0000057a +_080FC4D0: .4byte 0x0000057b + thumb_func_end sub_80FC478 + + thumb_func_start sub_80FC4D4 +sub_80FC4D4: @ 80FC4D4 + push {r4,lr} + adds r3, r0, 0 + movs r1, 0 + movs r4, 0 +_080FC4DC: + lsls r0, r1, 3 + adds r2, r1, 0x1 + subs r0, r1 + movs r1, 0xD + lsls r0, 1 + adds r0, r3 + adds r0, 0xD +_080FC4EA: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _080FC4EA + adds r1, r2, 0 + cmp r1, 0x27 + ble _080FC4DC + movs r1, 0 + ldr r2, _080FC524 @ =0x00000231 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + movs r2, 0x8C + lsls r2, 2 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _080FC528 @ =0x00000232 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _080FC52C @ =0x00000233 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC524: .4byte 0x00000231 +_080FC528: .4byte 0x00000232 +_080FC52C: .4byte 0x00000233 + thumb_func_end sub_80FC4D4 + + thumb_func_start sub_80FC530 +sub_80FC530: @ 80FC530 + push {r4,lr} + adds r3, r0, 0 + movs r1, 0 + movs r4, 0 +_080FC538: + lsls r0, r1, 8 + adds r2, r1, 0x1 + movs r1, 0xFF + adds r0, r3 + adds r0, 0xFF +_080FC542: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _080FC542 + adds r1, r2, 0 + cmp r1, 0x1 + ble _080FC538 + movs r1, 0 + ldr r2, _080FC57C @ =0x00000201 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + movs r2, 0x80 + lsls r2, 2 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _080FC580 @ =0x00000202 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + ldr r2, _080FC584 @ =0x00000203 + adds r0, r3, r2 + ldrb r2, [r0] + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC57C: .4byte 0x00000201 +_080FC580: .4byte 0x00000202 +_080FC584: .4byte 0x00000203 + thumb_func_end sub_80FC530 + + thumb_func_start sub_80FC588 +sub_80FC588: @ 80FC588 + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r1, _080FC620 @ =0x0000057a + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0x13 + bhi _080FC628 + ldr r0, _080FC624 @ =0x04000208 + ldrh r1, [r0] + adds r7, r1, 0 + movs r1, 0 + strh r1, [r0] + movs r3, 0 + movs r2, 0 +_080FC5A6: + adds r1, r6, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080FC5BA + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080FC5BA + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080FC5BA: + adds r2, 0xE + cmp r2, 0x45 + ble _080FC5A6 + cmp r3, 0x5 + beq _080FC618 + movs r2, 0 + movs r0, 0xAF + lsls r0, 3 + adds r3, r5, r0 + movs r4, 0x46 +_080FC5CE: + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r4 + adds r1, r2, r1 + adds r1, r5, r1 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x45 + ble _080FC5CE + movs r1, 0xAF + lsls r1, 3 + adds r4, r5, r1 + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0x14 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r0, _080FC620 @ =0x0000057a + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r1, 0 + adds r0, r6, 0 + adds r0, 0x45 +_080FC610: + strb r1, [r0] + subs r0, 0x1 + cmp r0, r6 + bge _080FC610 +_080FC618: + ldr r0, _080FC624 @ =0x04000208 + strh r7, [r0] + b _080FC632 + .align 2, 0 +_080FC620: .4byte 0x0000057a +_080FC624: .4byte 0x04000208 +_080FC628: + ldr r1, _080FC638 @ =0x0000057b + adds r0, r5, r1 + ldrb r1, [r0] + movs r1, 0x1 + strb r1, [r0] +_080FC632: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC638: .4byte 0x0000057b + thumb_func_end sub_80FC588 + + thumb_func_start sub_80FC63C +sub_80FC63C: @ 80FC63C + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + ldr r1, _080FC6CC @ =0x00000232 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0x27 + bhi _080FC6D4 + ldr r1, _080FC6D0 @ =0x04000208 + ldrh r0, [r1] + adds r7, r0, 0 + movs r0, 0 + strh r0, [r1] + movs r2, 0 + ldrb r0, [r5] + cmp r0, 0 + bne _080FC66C +_080FC65E: + adds r2, 0x1 + cmp r2, 0xD + bgt _080FC66C + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080FC65E +_080FC66C: + cmp r2, 0xE + beq _080FC6C4 + movs r2, 0 + movs r0, 0x8C + lsls r0, 2 + adds r3, r6, r0 +_080FC678: + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r2, r0 + adds r0, r6, r0 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0xD + ble _080FC678 + movs r1, 0x8C + lsls r1, 2 + adds r4, r6, r1 + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0x28 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r0, _080FC6CC @ =0x00000232 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r1, 0 + adds r0, r5, 0 + adds r0, 0xD +_080FC6BC: + strb r1, [r0] + subs r0, 0x1 + cmp r0, r5 + bge _080FC6BC +_080FC6C4: + ldr r0, _080FC6D0 @ =0x04000208 + strh r7, [r0] + b _080FC6DE + .align 2, 0 +_080FC6CC: .4byte 0x00000232 +_080FC6D0: .4byte 0x04000208 +_080FC6D4: + ldr r1, _080FC6E4 @ =0x00000233 + adds r0, r6, r1 + ldrb r1, [r0] + movs r1, 0x1 + strb r1, [r0] +_080FC6DE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC6E4: .4byte 0x00000233 + thumb_func_end sub_80FC63C + + thumb_func_start sub_80FC6E8 +sub_80FC6E8: @ 80FC6E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r3, r1, 0 + ldr r1, _080FC730 @ =0x04000208 + ldrh r0, [r1] + mov r8, r0 + movs r0, 0 + strh r0, [r1] + movs r1, 0xAF + lsls r1, 3 + adds r0, r5, r1 + ldr r7, _080FC734 @ =0x00000579 + adds r4, r5, r7 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + beq _080FC718 + ldr r1, _080FC738 @ =0x0000057b + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080FC73C +_080FC718: + movs r1, 0 + adds r0, r3, 0 + adds r0, 0x45 +_080FC71E: + strb r1, [r0] + subs r0, 0x1 + cmp r0, r3 + bge _080FC71E + ldr r0, _080FC730 @ =0x04000208 + mov r7, r8 + strh r7, [r0] + movs r0, 0 + b _080FC784 + .align 2, 0 +_080FC730: .4byte 0x04000208 +_080FC734: .4byte 0x00000579 +_080FC738: .4byte 0x0000057b +_080FC73C: + movs r2, 0 + movs r6, 0x46 +_080FC740: + adds r1, r3, r2 + ldrb r0, [r4] + adds r7, r0, 0 + muls r7, r6 + adds r0, r7, 0 + adds r0, r2, r0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x45 + ble _080FC740 + ldr r0, _080FC790 @ =0x00000579 + adds r4, r5, r0 + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0x14 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r7, _080FC794 @ =0x0000057a + adds r1, r5, r7 + ldrb r0, [r1] + subs r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _080FC798 @ =0x04000208 + mov r1, r8 + strh r1, [r0] + movs r0, 0x1 +_080FC784: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080FC790: .4byte 0x00000579 +_080FC794: .4byte 0x0000057a +_080FC798: .4byte 0x04000208 + thumb_func_end sub_80FC6E8 + + thumb_func_start sub_80FC79C +sub_80FC79C: @ 80FC79C + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + movs r1, 0x8C + lsls r1, 2 + adds r0, r5, r1 + adds r1, 0x1 + adds r4, r5, r1 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + beq _080FC7C0 + ldr r1, _080FC7C4 @ =0x00000233 + adds r0, r5, r1 + ldrb r0, [r0] + adds r2, r0, 0 + cmp r2, 0 + beq _080FC7C8 +_080FC7C0: + movs r0, 0 + b _080FC814 + .align 2, 0 +_080FC7C4: .4byte 0x00000233 +_080FC7C8: + ldr r1, _080FC81C @ =0x04000208 + ldrh r0, [r1] + adds r7, r0, 0 + strh r2, [r1] + movs r3, 0 +_080FC7D2: + adds r2, r6, r3 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r3, r0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r2] + adds r3, 0x1 + cmp r3, 0xD + ble _080FC7D2 + ldr r0, _080FC820 @ =0x00000231 + adds r4, r5, r0 + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + ldrb r0, [r4] + movs r1, 0x28 + bl __umodsi3 + ldrb r1, [r4] + strb r0, [r4] + ldr r0, _080FC824 @ =0x00000232 + adds r1, r5, r0 + ldrb r0, [r1] + subs r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _080FC81C @ =0x04000208 + strh r7, [r0] + movs r0, 0x1 +_080FC814: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080FC81C: .4byte 0x04000208 +_080FC820: .4byte 0x00000231 +_080FC824: .4byte 0x00000232 + thumb_func_end sub_80FC79C + + thumb_func_start sub_80FC828 +sub_80FC828: @ 80FC828 + push {r4,lr} + adds r2, r0, 0 + adds r4, r1, 0 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _080FC83E + adds r0, r2, 0 + movs r1, 0 + bl sub_80FC888 + b _080FC880 +_080FC83E: + movs r3, 0 +_080FC840: + ldrb r1, [r2, 0x1C] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r3, r0 + adds r0, r2, r0 + adds r1, r4, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0xD + ble _080FC840 + ldrb r0, [r2, 0x1C] + adds r0, 0x1 + ldrb r1, [r2, 0x1C] + strb r0, [r2, 0x1C] + ldrb r1, [r2, 0x1C] + movs r0, 0x1 + ands r0, r1 + ldrb r1, [r2, 0x1C] + strb r0, [r2, 0x1C] + ldrb r0, [r2, 0x1E] + cmp r0, 0x1 + bhi _080FC87A + ldrb r0, [r2, 0x1E] + adds r0, 0x1 + ldrb r1, [r2, 0x1E] + strb r0, [r2, 0x1E] + b _080FC880 +_080FC87A: + ldrb r0, [r2, 0x1C] + ldrb r1, [r2, 0x1D] + strb r0, [r2, 0x1D] +_080FC880: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FC828 + + thumb_func_start sub_80FC888 +sub_80FC888: @ 80FC888 + push {r4,r5,lr} + adds r3, r0, 0 + adds r5, r1, 0 + ldrb r0, [r3, 0x1E] + cmp r0, 0 + bne _080FC898 + movs r0, 0 + b _080FC8D2 +_080FC898: + cmp r5, 0 + beq _080FC8B6 + movs r4, 0 +_080FC89E: + adds r2, r5, r4 + ldrb r1, [r3, 0x1D] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r4, r0 + adds r0, r3, r0 + ldrb r0, [r0] + strb r0, [r2] + adds r4, 0x1 + cmp r4, 0xD + ble _080FC89E +_080FC8B6: + ldrb r0, [r3, 0x1D] + adds r0, 0x1 + ldrb r1, [r3, 0x1D] + strb r0, [r3, 0x1D] + ldrb r1, [r3, 0x1D] + movs r0, 0x1 + ands r0, r1 + ldrb r1, [r3, 0x1D] + strb r0, [r3, 0x1D] + ldrb r0, [r3, 0x1E] + subs r0, 0x1 + ldrb r1, [r3, 0x1E] + strb r0, [r3, 0x1E] + movs r0, 0x1 +_080FC8D2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FC888 + + thumb_func_start sub_80FC8D8 +sub_80FC8D8: @ 80FC8D8 + push {r4,r5,lr} + adds r3, r0, 0 + adds r5, r1, 0 + ldr r1, _080FC92C @ =0x00000202 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _080FC930 + movs r2, 0 + movs r0, 0x80 + lsls r0, 2 + adds r4, r3, r0 +_080FC8F0: + ldrb r0, [r4] + lsls r0, 8 + adds r0, r2, r0 + adds r0, r3, r0 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0xFF + ble _080FC8F0 + movs r0, 0x80 + lsls r0, 2 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + ldrb r2, [r1] + movs r0, 0x1 + ands r0, r2 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _080FC92C @ =0x00000202 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + b _080FC93A + .align 2, 0 +_080FC92C: .4byte 0x00000202 +_080FC930: + ldr r1, _080FC940 @ =0x00000203 + adds r0, r3, r1 + ldrb r1, [r0] + movs r1, 0x1 + strb r1, [r0] +_080FC93A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FC940: .4byte 0x00000203 + thumb_func_end sub_80FC8D8 + + thumb_func_start sub_80FC944 +sub_80FC944: @ 80FC944 + push {r4,r5,lr} + adds r3, r0, 0 + adds r5, r1, 0 + movs r1, 0x80 + lsls r1, 2 + adds r0, r3, r1 + adds r1, 0x1 + adds r4, r3, r1 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + beq _080FC966 + ldr r1, _080FC96C @ =0x00000203 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080FC970 +_080FC966: + movs r0, 0 + b _080FC9AA + .align 2, 0 +_080FC96C: .4byte 0x00000203 +_080FC970: + movs r2, 0 +_080FC972: + adds r0, r5, r2 + ldrb r1, [r4] + lsls r1, 8 + adds r1, r2, r1 + adds r1, r3, r1 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0xFF + ble _080FC972 + ldr r0, _080FC9B0 @ =0x00000201 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + ldrb r2, [r1] + movs r0, 0x1 + ands r0, r2 + ldrb r2, [r1] + strb r0, [r1] + ldr r0, _080FC9B4 @ =0x00000202 + adds r1, r3, r0 + ldrb r0, [r1] + subs r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0x1 +_080FC9AA: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FC9B0: .4byte 0x00000201 +_080FC9B4: .4byte 0x00000202 + thumb_func_end sub_80FC944 + + thumb_func_start sub_80FC9B8 +sub_80FC9B8: @ 80FC9B8 + push {r4-r7,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1, 0 + movs r5, 0 + cmp r1, 0x1 + beq _080FC9F6 + cmp r1, 0x1 + bgt _080FC9D2 + cmp r1, 0 + beq _080FC9DC + b _080FCA6A +_080FC9D2: + cmp r0, 0x2 + beq _080FCA16 + cmp r0, 0x3 + beq _080FCA36 + b _080FCA6A +_080FC9DC: + movs r4, 0 +_080FC9DE: + adds r0, r6, r4 + adds r1, r4, 0x1 + strb r1, [r0] + lsls r0, r5, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, r1, 0 + cmp r4, 0xC7 + ble _080FC9DE + b _080FCA30 +_080FC9F6: + movs r4, 0 + adds r2, r6, 0 + adds r2, 0xC8 +_080FC9FC: + adds r0, r6, r4 + adds r1, r4, 0x1 + strb r1, [r0] + lsls r0, r5, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, r1, 0 + cmp r4, 0x63 + ble _080FC9FC + strh r5, [r2] + b _080FCA6A +_080FCA16: + movs r4, 0 +_080FCA18: + bl Random + lsls r0, 24 + lsrs r0, 24 + adds r1, r6, r4 + strb r0, [r1] + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x1 + cmp r4, 0xC7 + ble _080FCA18 +_080FCA30: + adds r0, r6, r4 + strh r5, [r0] + b _080FCA6A +_080FCA36: + movs r4, 0 + ldr r3, _080FCA70 @ =gUnknown_3002018 + ldrb r1, [r3] + ldrb r0, [r3] + adds r7, r0, 0x1 + adds r2, r1, 0x1 + movs r0, 0xFF + mov r12, r0 +_080FCA46: + adds r0, r6, r4 + adds r1, r4, 0x1 + strb r2, [r0] + adds r0, r4, r7 + mov r4, r12 + ands r0, r4 + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r2, 0x1 + adds r4, r1, 0 + cmp r1, 0xC7 + ble _080FCA46 + adds r0, r6, r1 + strh r5, [r0] + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] +_080FCA6A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCA70: .4byte gUnknown_3002018 + thumb_func_end sub_80FC9B8 + + thumb_func_start sub_80FCA74 +sub_80FCA74: @ 80FCA74 + push {r4,r5,lr} + adds r4, r0, 0 + movs r3, 0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _080FCA98 + ldr r5, _080FCAA4 @ =gUnknown_843F104 + adds r2, r1, 0 +_080FCA84: + adds r1, r4, r3 + ldrb r0, [r2] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + adds r3, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080FCA84 +_080FCA98: + adds r1, r4, r3 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCAA4: .4byte gUnknown_843F104 + thumb_func_end sub_80FCA74 + + thumb_func_start sub_80FCAA8 +sub_80FCAA8: @ 80FCAA8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r3, 0 + ldrb r0, [r1] + cmp r0, 0 + beq _080FCACC + ldr r5, _080FCAD8 @ =gUnknown_843F004 + adds r2, r1, 0 +_080FCAB8: + adds r1, r4, r3 + ldrb r0, [r2] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + adds r3, 0x1 + ldrb r0, [r2] + cmp r0, 0 + bne _080FCAB8 +_080FCACC: + adds r1, r4, r3 + movs r0, 0xFF + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCAD8: .4byte gUnknown_843F004 + thumb_func_end sub_80FCAA8 + + thumb_func_start sub_80FCADC +sub_80FCADC: @ 80FCADC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r0, _080FCB04 @ =gRfuLinkStatus + ldr r4, [r0] + ldrb r2, [r4, 0x2] + ldrb r1, [r4] + adds r7, r0, 0 + cmp r1, 0x1 + bne _080FCB32 + movs r3, 0 + ands r1, r2 + cmp r1, 0 + beq _080FCB0E + cmp r5, 0x1 + bne _080FCB08 + ldrb r0, [r4, 0xA] + b _080FCB4C + .align 2, 0 +_080FCB04: .4byte gRfuLinkStatus +_080FCB08: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080FCB0E: + lsrs r2, 1 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bhi _080FCB4A + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080FCB0E + adds r0, r6, 0x1 + cmp r5, r0 + bne _080FCB08 +_080FCB28: + ldr r0, [r7] + adds r0, 0xA + adds r0, r3 + ldrb r0, [r0] + b _080FCB4C +_080FCB32: + movs r3, 0 + movs r1, 0x1 +_080FCB36: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FCB28 + lsrs r2, 1 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080FCB36 +_080FCB4A: + movs r0, 0 +_080FCB4C: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FCADC + + thumb_func_start sub_80FCB54 +sub_80FCB54: @ 80FCB54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r4, 0 + ldr r0, _080FCC30 @ =gSaveBlock2Ptr + mov r8, r0 + adds r6, r7, 0x2 + ldr r0, [r0] + adds r5, r0, 0 + adds r5, 0xA +_080FCB72: + adds r0, r6, r4 + adds r1, r5, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x1 + ble _080FCB72 + movs r4, 0 + lsls r2, 7 + mov r12, r2 + adds r1, r7, 0x4 +_080FCB88: + adds r0, r1, r4 + strb r3, [r0] + asrs r3, 8 + adds r4, 0x1 + cmp r4, 0x3 + ble _080FCB88 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, 0x8] + movs r6, 0x1 + movs r1, 0x1 + ands r1, r0 + ldrb r2, [r7, 0xB] + movs r5, 0x2 + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0xB] + movs r4, 0x7F + mov r1, r9 + ands r1, r4 + ldrb r2, [r7, 0xA] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + ands r0, r4 + mov r1, r12 + orrs r0, r1 + strb r0, [r7, 0xA] + ldrb r0, [r7] + movs r1, 0x10 + negs r1, r1 + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + ldrb r2, [r7, 0x1] + movs r0, 0x3D + negs r0, r0 + ands r0, r2 + .ifdef FIRERED + movs r2, 0x10 @ VERSION_FIRE_RED << 2 + .else + .ifdef LEAFGREEN + movs r2, 0x14 @ VERSION_LEAF_GREEN << 2 + .endif + .endif + orrs r0, r2 + strb r0, [r7, 0x1] + movs r0, 0x11 + negs r0, r0 + ands r1, r0 + subs r0, 0x10 + ands r1, r0 + subs r0, 0x20 + ands r1, r0 + strb r1, [r7] + ldr r0, _080FCC34 @ =0x00000844 + bl FlagGet + lsls r0, 7 + ldrb r1, [r7] + ands r4, r1 + orrs r4, r0 + strb r4, [r7] + bl IsNationalPokedexEnabled + ands r0, r6 + ldrb r1, [r7, 0x1] + ands r5, r1 + orrs r5, r0 + strb r5, [r7, 0x1] + ldr r0, _080FCC38 @ =0x0000082c + bl FlagGet + ands r6, r0 + lsls r6, 1 + ldrb r1, [r7, 0x1] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + orrs r0, r6 + strb r0, [r7, 0x1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCC30: .4byte gSaveBlock2Ptr +_080FCC34: .4byte 0x00000844 +_080FCC38: .4byte 0x0000082c + thumb_func_end sub_80FCB54 + + thumb_func_start sub_80FCC3C +sub_80FCC3C: @ 80FCC3C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + mov r8, r1 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r0, _080FCC90 @ =gUnknown_3005E10 + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + bne _080FCC98 + movs r0, 0x1 + mov r9, r0 + ldr r6, _080FCC94 @ =gRfuLinkStatus + ldr r0, [r6] + lsls r4, r5, 5 + adds r0, r4 + ldrh r0, [r0, 0x18] + bl sub_80FA44C + cmp r0, 0 + beq _080FCC78 + ldr r1, [r6] + ldrb r0, [r1, 0x7] + asrs r0, r5 + mov r2, r9 + ands r0, r2 + cmp r0, 0 + bne _080FCCB0 +_080FCC78: + adds r0, r7, 0 + movs r1, 0 + movs r2, 0xD + bl memset + mov r0, r8 + movs r1, 0 + movs r2, 0x8 + bl memset + b _080FCCE4 + .align 2, 0 +_080FCC90: .4byte gUnknown_3005E10 +_080FCC94: .4byte gRfuLinkStatus +_080FCC98: + movs r0, 0 + mov r9, r0 + ldr r6, _080FCCCC @ =gRfuLinkStatus + ldr r0, [r6] + lsls r4, r5, 5 + adds r0, r4 + ldrh r0, [r0, 0x18] + bl sub_80FA44C + cmp r0, 0 + beq _080FCCD0 + ldr r1, [r6] +_080FCCB0: + adds r1, r4, r1 + adds r1, 0x1A + adds r0, r7, 0 + movs r2, 0xD + bl memcpy + ldr r1, [r6] + adds r1, r4, r1 + adds r1, 0x29 + mov r0, r8 + movs r2, 0x8 + bl memcpy + b _080FCCE4 + .align 2, 0 +_080FCCCC: .4byte gRfuLinkStatus +_080FCCD0: + adds r0, r7, 0 + movs r1, 0 + movs r2, 0xD + bl memset + mov r0, r8 + movs r1, 0 + movs r2, 0x8 + bl memset +_080FCCE4: + mov r0, r9 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FCC3C + + thumb_func_start sub_80FCCF4 +sub_80FCCF4: @ 80FCCF4 + push {r4-r7,lr} + adds r3, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + movs r7, 0 + ldr r6, _080FCD2C @ =gRfuLinkStatus + ldr r0, [r6] + lsrs r4, r2, 19 + adds r2, r0, r4 + ldrh r1, [r2, 0x18] + ldr r0, _080FCD30 @ =0x00007f7d + cmp r1, r0 + bne _080FCD34 + adds r1, r2, 0 + adds r1, 0x1A + adds r0, r3, 0 + movs r2, 0xD + bl memcpy + ldr r1, [r6] + adds r1, r4, r1 + adds r1, 0x29 + adds r0, r5, 0 + movs r2, 0x8 + bl memcpy + movs r7, 0x1 + b _080FCD48 + .align 2, 0 +_080FCD2C: .4byte gRfuLinkStatus +_080FCD30: .4byte 0x00007f7d +_080FCD34: + adds r0, r3, 0 + movs r1, 0 + movs r2, 0xD + bl memset + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x8 + bl memset +_080FCD48: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FCCF4 + + thumb_func_start sub_80FCD50 +sub_80FCD50: @ 80FCD50 + push {r4,lr} + adds r4, r1, 0 + ldr r1, _080FCD6C @ =gUnknown_3005440 + movs r2, 0xD + bl memcpy + ldr r1, _080FCD70 @ =gUnknown_3005E00 + adds r0, r4, 0 + movs r2, 0x8 + bl memcpy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FCD6C: .4byte gUnknown_3005440 +_080FCD70: .4byte gUnknown_3005E00 + thumb_func_end sub_80FCD50 + + thumb_func_start CreateWirelessStatusIndicatorSprite +CreateWirelessStatusIndicatorSprite: @ 80FCD74 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + cmp r3, 0 + bne _080FCD8A + cmp r2, 0 + bne _080FCD8A + movs r3, 0xE7 + movs r2, 0x8 +_080FCD8A: + ldr r0, _080FCDCC @ =gRfuLinkStatus + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x1 + bne _080FCDE4 + ldr r0, _080FCDD0 @ =gUnknown_843F284 + adds r1, r3, 0 + movs r3, 0 + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080FCDD4 @ =gSprites + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r4, r0 + ldr r0, _080FCDD8 @ =0x00001234 + strh r0, [r4, 0x3C] + ldr r0, _080FCDDC @ =gUnknown_843F274 + ldrh r0, [r0, 0x6] + bl GetSpriteTileStartByTag + strh r0, [r4, 0x3A] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + ldr r0, _080FCDE0 @ =gUnknown_203ACE4 + strb r5, [r0] + b _080FCE2A + .align 2, 0 +_080FCDCC: .4byte gRfuLinkStatus +_080FCDD0: .4byte gUnknown_843F284 +_080FCDD4: .4byte gSprites +_080FCDD8: .4byte 0x00001234 +_080FCDDC: .4byte gUnknown_843F274 +_080FCDE0: .4byte gUnknown_203ACE4 +_080FCDE4: + ldr r0, _080FCE30 @ =gUnknown_843F284 + adds r1, r3, 0 + movs r3, 0 + bl CreateSprite + ldr r4, _080FCE34 @ =gUnknown_203ACE4 + strb r0, [r4] + ldr r5, _080FCE38 @ =gSprites + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080FCE3C @ =0x00001234 + strh r1, [r0, 0x3C] + ldr r0, _080FCE40 @ =gUnknown_843F274 + ldrh r0, [r0, 0x6] + bl GetSpriteTileStartByTag + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x3A] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080FCE2A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCE30: .4byte gUnknown_843F284 +_080FCE34: .4byte gUnknown_203ACE4 +_080FCE38: .4byte gSprites +_080FCE3C: .4byte 0x00001234 +_080FCE40: .4byte gUnknown_843F274 + thumb_func_end CreateWirelessStatusIndicatorSprite + + thumb_func_start DestroyWirelessStatusIndicatorSprite +DestroyWirelessStatusIndicatorSprite: @ 80FCE44 + push {r4,lr} + ldr r4, _080FCE90 @ =gSprites + ldr r3, _080FCE94 @ =gUnknown_203ACE4 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r4 + movs r0, 0x3C + ldrsh r1, [r2, r0] + ldr r0, _080FCE98 @ =0x00001234 + cmp r1, r0 + bne _080FCE8A + movs r0, 0 + strh r0, [r2, 0x3C] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r3, _080FCE9C @ =gMain + movs r0, 0x84 + lsls r0, 3 + adds r3, r0 + ldr r0, _080FCEA0 @ =gDummyOamData + ldr r1, [r0] + ldr r2, [r0, 0x4] + str r1, [r3] + str r2, [r3, 0x4] + ldr r1, _080FCEA4 @ =0x070003e8 + movs r2, 0x4 + bl CpuSet +_080FCE8A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FCE90: .4byte gSprites +_080FCE94: .4byte gUnknown_203ACE4 +_080FCE98: .4byte 0x00001234 +_080FCE9C: .4byte gMain +_080FCEA0: .4byte gDummyOamData +_080FCEA4: .4byte 0x070003e8 + thumb_func_end DestroyWirelessStatusIndicatorSprite + + thumb_func_start LoadWirelessStatusIndicatorSpriteGfx +LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8 + push {r4,lr} + ldr r4, _080FCED4 @ =gUnknown_843F274 + ldrh r0, [r4, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _080FCED8 @ =0xffff0000 + cmp r0, r1 + bne _080FCEC0 + adds r0, r4, 0 + bl LoadCompressedSpriteSheet +_080FCEC0: + ldr r0, _080FCEDC @ =gUnknown_843F27C + bl LoadSpritePalette + ldr r1, _080FCEE0 @ =gUnknown_203ACE4 + movs r0, 0xFF + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FCED4: .4byte gUnknown_843F274 +_080FCED8: .4byte 0xffff0000 +_080FCEDC: .4byte gUnknown_843F27C +_080FCEE0: .4byte gUnknown_203ACE4 + thumb_func_end LoadWirelessStatusIndicatorSpriteGfx + + thumb_func_start sub_80FCEE4 +sub_80FCEE4: @ 80FCEE4 + push {r4,lr} + ldr r1, _080FCF04 @ =gRfuLinkStatus + ldr r0, [r1] + ldrb r2, [r0, 0x2] + movs r3, 0 + movs r4, 0x1 +_080FCEF0: + adds r0, r2, 0 + ands r0, r4 + cmp r0, 0 + beq _080FCF08 + ldr r0, [r1] + adds r0, 0xA + adds r0, r3 + ldrb r0, [r0] + b _080FCF16 + .align 2, 0 +_080FCF04: .4byte gRfuLinkStatus +_080FCF08: + lsrs r2, 1 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080FCEF0 + movs r0, 0 +_080FCF16: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FCEE4 + + thumb_func_start sub_80FCF1C +sub_80FCF1C: @ 80FCF1C + push {lr} + adds r2, r0, 0 + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, r1 + beq _080FCF30 + movs r0, 0 + strh r1, [r2, 0x32] + strh r0, [r2, 0x34] + strh r0, [r2, 0x36] +_080FCF30: + pop {r0} + bx r0 + thumb_func_end sub_80FCF1C + + thumb_func_start sub_80FCF34 +sub_80FCF34: @ 80FCF34 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _080FCF78 @ =gUnknown_203ACE4 + ldrb r0, [r1] + cmp r0, 0xFF + bne _080FCF44 + b _080FD106 +_080FCF44: + ldr r2, _080FCF7C @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + movs r0, 0x3C + ldrsh r1, [r2, r0] + ldr r0, _080FCF80 @ =0x00001234 + cmp r1, r0 + beq _080FCF5C + b _080FD106 +_080FCF5C: + adds r6, r2, 0 + movs r5, 0xFF + movs r4, 0 + ldr r0, _080FCF84 @ =gRfuLinkStatus + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x1 + bne _080FCFB6 + adds r7, r6, 0 + adds r7, 0x28 + movs r1, 0x29 + adds r1, r6 + mov r8, r1 + b _080FCFA6 + .align 2, 0 +_080FCF78: .4byte gUnknown_203ACE4 +_080FCF7C: .4byte gSprites +_080FCF80: .4byte 0x00001234 +_080FCF84: .4byte gRfuLinkStatus +_080FCF88: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80FCADC + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bcc _080FCFA6 + adds r0, r4, 0 + bl sub_80FCADC + lsls r0, 24 + lsrs r5, r0, 24 +_080FCFA6: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r4, r0 + blt _080FCF88 + b _080FCFC8 +_080FCFB6: + bl sub_80FCEE4 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r6, 0 + adds r7, 0x28 + movs r2, 0x29 + adds r2, r6 + mov r8, r2 +_080FCFC8: + bl sub_80FC1B0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FCFD8 + movs r0, 0x4 + b _080FD006 +_080FCFD8: + cmp r5, 0x18 + bhi _080FCFE0 + movs r0, 0x3 + b _080FD006 +_080FCFE0: + adds r0, r5, 0 + subs r0, 0x19 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x65 + bhi _080FCFF0 + movs r0, 0x2 + b _080FD006 +_080FCFF0: + adds r0, r5, 0 + subs r0, 0x7F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x65 + bhi _080FD000 + movs r0, 0x1 + b _080FD006 +_080FD000: + cmp r5, 0xE4 + bls _080FD008 + movs r0, 0 +_080FD006: + strh r0, [r6, 0x2E] +_080FD008: + movs r3, 0x2E + ldrsh r1, [r6, r3] + movs r2, 0x30 + ldrsh r0, [r6, r2] + cmp r1, r0 + beq _080FD01E + adds r0, r6, 0 + bl sub_80FCF1C + ldrh r0, [r6, 0x2E] + strh r0, [r6, 0x30] +_080FD01E: + movs r0, 0x32 + ldrsh r1, [r6, r0] + ldr r2, [r6, 0x8] + lsls r1, 2 + adds r1, r2 + movs r3, 0x36 + ldrsh r0, [r6, r3] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 10 + lsrs r0, 26 + movs r3, 0x34 + ldrsh r1, [r6, r3] + cmp r0, r1 + bge _080FD06C + ldrh r0, [r6, 0x36] + adds r0, 0x1 + movs r3, 0 + strh r0, [r6, 0x36] + strh r3, [r6, 0x34] + movs r1, 0x32 + ldrsh r0, [r6, r1] + lsls r0, 2 + adds r0, r2 + movs r2, 0x36 + ldrsh r1, [r6, r2] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + movs r0, 0 + ldrsh r1, [r1, r0] + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + bne _080FD072 + strh r3, [r6, 0x36] + b _080FD072 +_080FD06C: + ldrh r0, [r6, 0x34] + adds r0, 0x1 + strh r0, [r6, 0x34] +_080FD072: + ldr r4, _080FD110 @ =gMain + movs r1, 0x84 + lsls r1, 3 + adds r0, r4, r1 + ldr r1, _080FD114 @ =gUnknown_843F204 + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [r0] + str r2, [r0, 0x4] + movs r3, 0x20 + ldrsh r2, [r6, r3] + movs r1, 0 + ldrsb r1, [r7, r1] + adds r2, r1 + ldr r1, _080FD118 @ =0x00000422 + adds r5, r4, r1 + ldr r3, _080FD11C @ =0x000001ff + adds r1, r3, 0 + ands r2, r1 + ldrh r3, [r5] + ldr r1, _080FD120 @ =0xfffffe00 + ands r1, r3 + orrs r1, r2 + strh r1, [r5] + ldrh r1, [r6, 0x22] + mov r2, r8 + ldrb r2, [r2] + adds r1, r2 + strb r1, [r0] + ldrb r2, [r6, 0x5] + ldr r3, _080FD124 @ =0x00000425 + adds r5, r4, r3 + lsrs r2, 4 + lsls r2, 4 + ldrb r3, [r5] + movs r1, 0xF + ands r1, r3 + orrs r1, r2 + strb r1, [r5] + movs r1, 0x32 + ldrsh r2, [r6, r1] + ldr r1, [r6, 0x8] + lsls r2, 2 + adds r2, r1 + movs r3, 0x36 + ldrsh r1, [r6, r3] + ldr r2, [r2] + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1] + ldrh r6, [r6, 0x3A] + adds r2, r6 + ldr r1, _080FD128 @ =0x00000424 + adds r4, r1 + ldr r3, _080FD12C @ =0x000003ff + adds r1, r3, 0 + ands r2, r1 + ldrh r3, [r4] + ldr r1, _080FD130 @ =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r4] + ldr r1, _080FD134 @ =0x070003e8 + movs r2, 0x4 + bl CpuSet + bl sub_80FB9F4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FD106 + bl DestroyWirelessStatusIndicatorSprite +_080FD106: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD110: .4byte gMain +_080FD114: .4byte gUnknown_843F204 +_080FD118: .4byte 0x00000422 +_080FD11C: .4byte 0x000001ff +_080FD120: .4byte 0xfffffe00 +_080FD124: .4byte 0x00000425 +_080FD128: .4byte 0x00000424 +_080FD12C: .4byte 0x000003ff +_080FD130: .4byte 0xfffffc00 +_080FD134: .4byte 0x070003e8 + thumb_func_end sub_80FCF34 + + thumb_func_start sub_80FD138 +sub_80FD138: @ 80FD138 + push {r4,r5,lr} + adds r4, r0, 0 + str r1, [r4] + movs r3, 0 + ldrb r0, [r2] + cmp r0, 0xFF + beq _080FD15C + adds r5, r4, 0x4 +_080FD148: + adds r1, r5, r3 + ldrb r0, [r2] + strb r0, [r1] + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0x6 + bgt _080FD15C + ldrb r0, [r2] + cmp r0, 0xFF + bne _080FD148 +_080FD15C: + adds r0, r4, 0x4 + adds r0, r3 + movs r1, 0xFF + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80FD138 + + thumb_func_start sub_80FD16C +sub_80FD16C: @ 80FD16C + push {lr} + movs r2, 0 + movs r1, 0x7 +_080FD172: + strb r2, [r0] + adds r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _080FD172 + pop {r0} + bx r0 + thumb_func_end sub_80FD16C + + thumb_func_start sub_80FD180 +sub_80FD180: @ 80FD180 + push {lr} + adds r1, r0, 0 + movs r2, 0 +_080FD186: + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0 + beq _080FD192 + movs r0, 0 + b _080FD19A +_080FD192: + adds r2, 0x1 + cmp r2, 0x7 + ble _080FD186 + movs r0, 0x1 +_080FD19A: + pop {r1} + bx r1 + thumb_func_end sub_80FD180 + + thumb_func_start sub_80FD1A0 +sub_80FD1A0: @ 80FD1A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r0, _080FD1C4 @ =gWirelessCommType + ldrb r0, [r0] + cmp r0, 0 + bne _080FD1B6 + b _080FD318 +_080FD1B6: + movs r0, 0xF0 + bl AllocZeroed + str r0, [sp, 0x14] + movs r4, 0 + b _080FD22C + .align 2, 0 +_080FD1C4: .4byte gWirelessCommType +_080FD1C8: + lsls r2, r4, 2 + mov r0, sp + adds r1, r0, r2 + movs r0, 0x1 + negs r0, r0 + str r0, [r1] + movs r5, 0 + mov r8, r2 + lsls r0, r4, 3 + adds r1, r4, 0x1 + mov r9, r1 + subs r0, r4 + lsls r0, 2 + str r0, [sp, 0x1C] + ldr r2, _080FD24C @ =gLinkPlayers + 8 + mov r10, r2 + ldr r6, _080FD250 @ =0x00003ba8 + movs r4, 0 + mov r0, r10 + subs r0, 0x4 + ldr r7, [sp, 0x1C] + adds r3, r7, r0 +_080FD1F4: + ldrh r1, [r3] + ldr r0, _080FD254 @ =gSaveBlock1Ptr + ldr r2, [r0] + ldr r7, _080FD250 @ =0x00003ba8 + adds r0, r2, r7 + adds r0, r4 + ldr r0, [r0] + cmp r1, r0 + bne _080FD220 + adds r1, r2, r6 + adds r1, 0x4 + ldr r0, [sp, 0x1C] + add r0, r10 + str r3, [sp, 0x18] + bl StringCompare + ldr r3, [sp, 0x18] + cmp r0, 0 + bne _080FD220 + mov r0, sp + add r0, r8 + str r5, [r0] +_080FD220: + adds r6, 0xC + adds r4, 0xC + adds r5, 0x1 + cmp r5, 0x13 + ble _080FD1F4 + mov r4, r9 +_080FD22C: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + blt _080FD1C8 + movs r0, 0 + mov r8, r0 + movs r4, 0 + ldr r1, _080FD254 @ =gSaveBlock1Ptr + mov r9, r1 + mov r7, sp + movs r5, 0 + ldr r6, [sp, 0x14] + b _080FD2A4 + .align 2, 0 +_080FD24C: .4byte gLinkPlayers + 8 +_080FD250: .4byte 0x00003ba8 +_080FD254: .4byte gSaveBlock1Ptr +_080FD258: + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _080FD29E + ldr r2, _080FD328 @ =gLinkPlayers + adds r0, r5, r2 + ldrh r0, [r0, 0x1A] + cmp r0, 0x1 + beq _080FD29E + adds r0, r2, 0x4 + adds r0, r5, r0 + ldrh r1, [r0] + adds r2, 0x8 + adds r2, r5, r2 + adds r0, r6, 0 + bl sub_80FD138 + ldr r1, [r7] + cmp r1, 0 + blt _080FD298 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + mov r2, r9 + ldr r1, [r2] + adds r0, r1 + ldr r1, _080FD32C @ =0x00003bac + adds r0, r1 + bl sub_80FD16C +_080FD298: + adds r6, 0xC + movs r2, 0x1 + add r8, r2 +_080FD29E: + adds r7, 0x4 + adds r5, 0x1C + adds r4, 0x1 +_080FD2A4: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + blt _080FD258 + movs r4, 0 + ldr r7, _080FD330 @ =gSaveBlock1Ptr + mov r9, r7 + ldr r6, _080FD334 @ =0x00003ba8 + movs r7, 0 + mov r1, r8 + lsls r0, r1, 1 + add r0, r8 + lsls r0, 2 + ldr r2, [sp, 0x14] + adds r5, r0, r2 +_080FD2C6: + mov r1, r9 + ldr r0, [r1] + adds r0, r6 + adds r0, 0x4 + bl sub_80FD180 + cmp r0, 0 + bne _080FD2F8 + mov r0, r9 + ldr r2, [r0] + ldr r1, _080FD334 @ =0x00003ba8 + adds r0, r2, r1 + adds r0, r7 + ldr r1, [r0] + adds r2, r6 + adds r2, 0x4 + adds r0, r5, 0 + bl sub_80FD138 + adds r5, 0xC + movs r2, 0x1 + add r8, r2 + mov r0, r8 + cmp r0, 0x13 + bgt _080FD302 +_080FD2F8: + adds r6, 0xC + adds r7, 0xC + adds r4, 0x1 + cmp r4, 0x13 + ble _080FD2C6 +_080FD302: + ldr r0, _080FD330 @ =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, _080FD334 @ =0x00003ba8 + adds r0, r1 + ldr r1, [sp, 0x14] + movs r2, 0xF0 + bl memcpy + ldr r0, [sp, 0x14] + bl Free +_080FD318: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD328: .4byte gLinkPlayers +_080FD32C: .4byte 0x00003bac +_080FD330: .4byte gSaveBlock1Ptr +_080FD334: .4byte 0x00003ba8 + thumb_func_end sub_80FD1A0 + + thumb_func_start sub_80FD338 +sub_80FD338: @ 80FD338 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + movs r7, 0 + ldr r6, _080FD374 @ =gSaveBlock1Ptr + ldr r4, _080FD378 @ =0x00003ba8 + movs r5, 0 +_080FD350: + ldr r0, [r6] + adds r0, r4 + adds r0, 0x4 + mov r1, r9 + movs r2, 0x7 + bl StringCompareN + cmp r0, 0 + bne _080FD37C + ldr r0, [r6] + ldr r1, _080FD378 @ =0x00003ba8 + adds r0, r1 + adds r0, r5 + ldr r0, [r0] + cmp r0, r8 + bne _080FD37C + movs r0, 0x1 + b _080FD396 + .align 2, 0 +_080FD374: .4byte gSaveBlock1Ptr +_080FD378: .4byte 0x00003ba8 +_080FD37C: + ldr r0, [r6] + adds r0, r4 + adds r0, 0x4 + bl sub_80FD180 + cmp r0, 0 + bne _080FD394 + adds r4, 0xC + adds r5, 0xC + adds r7, 0x1 + cmp r7, 0x13 + ble _080FD350 +_080FD394: + movs r0, 0 +_080FD396: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD338 + + .align 2, 0 @ Don't pad with nop diff --git a/data/link_rfu_2.s b/data/link_rfu_2.s index eae60cce1..ff63f205c 100644 --- a/data/link_rfu_2.s +++ b/data/link_rfu_2.s @@ -150,128 +150,3 @@ gUnknown_843EE64:: @ 843EE64 .asciz "PARENT" .align 2 .asciz "SEARCH" - - .align 2 -gUnknown_843EEC0:: - .incbin "graphics/interface/wireless_link_icon.gbapal" - -gUnknown_843EEE0:: - .incbin "graphics/interface/wireless_link_icon.4bpp.lz" - -gUnknown_843F004:: @ 843F004 - .byte 0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37 - .byte 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 - .byte 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f - .byte 0x00, 0xab, 0xb5, 0xb6, 0xb1, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0xb2, 0xf1, 0x00, 0xae, 0xad, 0xba - .byte 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8 - .byte 0xa9, 0xaa, 0x00, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f - .byte 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1 - .byte 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9 - .byte 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1 - .byte 0xd2, 0xd3, 0xd4, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6 - .byte 0x00, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb - .byte 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3 - .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb - .byte 0xec, 0xed, 0xee, 0x2d, 0x2f, 0x30, 0x31, 0x32 - .byte 0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02 - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a - .byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 - .byte 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a - .byte 0x1b, 0xad, 0xb3, 0xb4, 0x00, 0xaf, 0x7d, 0x7f - .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0 - .byte 0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57 - .byte 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67 - .byte 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77 - .byte 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac - .byte 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23 - .byte 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b - .byte 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c - .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 - -gUnknown_843F104:: @ 843F104 - .byte 0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c - .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 - .byte 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c - .byte 0x9d, 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3 - .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb - .byte 0xec, 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c - .byte 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07 - .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 - .byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - .byte 0x84, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7 - .byte 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf - .byte 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 - .byte 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf - .byte 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7 - .byte 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7 - .byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2 - .byte 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa - .byte 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03 - .byte 0x04, 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f - .byte 0xaf, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36 - .byte 0x37, 0x38, 0x39, 0x21, 0xdf, 0xa1, 0xb0, 0xa5 - .byte 0xde, 0x24, 0x2a, 0xa2, 0xa3, 0x22, 0x23, 0x20 - .byte 0xa4, 0x20, 0x2f, 0x41, 0x42, 0x43, 0x44, 0x45 - .byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d - .byte 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55 - .byte 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63 - .byte 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b - .byte 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73 - .byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20 - .byte 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20 - .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 - -gUnknown_843F204:: @ 843F204 - .4byte 0x40000000, 0x00000000 - -gAnimCmd_843F20C:: - obj_image_anim_frame 0x0004, 5 - obj_image_anim_frame 0x0008, 5 - obj_image_anim_frame 0x000c, 5 - obj_image_anim_frame 0x0010, 10 - obj_image_anim_frame 0x000c, 5 - obj_image_anim_frame 0x0008, 5 - obj_image_anim_jump 0 - -gAnimCmd_843F228:: - obj_image_anim_frame 0x0004, 5 - obj_image_anim_frame 0x0008, 5 - obj_image_anim_frame 0x000c, 10 - obj_image_anim_frame 0x0008, 5 - obj_image_anim_jump 0 - -gAnimCmd_843F23C:: - obj_image_anim_frame 0x0004, 5 - obj_image_anim_frame 0x0008, 5 - obj_image_anim_jump 0 - -gAnimCmd_843F248:: - obj_image_anim_frame 0x0004, 10 - obj_image_anim_frame 0x0014, 10 - obj_image_anim_jump 0 - -gAnimCmd_843F254:: - obj_image_anim_frame 0x0018, 10 - obj_image_anim_frame 0x0004, 10 - obj_image_anim_jump 0 - -gSpriteAnimTable_843F260:: - .4byte gAnimCmd_843F20C - .4byte gAnimCmd_843F228 - .4byte gAnimCmd_843F23C - .4byte gAnimCmd_843F248 - .4byte gAnimCmd_843F254 - -gUnknown_843F274:: @ 843F274 - obj_tiles gUnknown_843EEE0, 0x0380, 54321 - -gUnknown_843F27C:: @ 843F27C - obj_pal gUnknown_843EEC0, 54322 - -gUnknown_843F284:: @ 843F284 - spr_template 54321, 54322, gUnknown_843F204, gSpriteAnimTable_843F260, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/data/link_rfu_4.s b/data/link_rfu_4.s new file mode 100644 index 000000000..da3b341dc --- /dev/null +++ b/data/link_rfu_4.s @@ -0,0 +1,128 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + .section .rodata + .align 2, 0 + +gUnknown_843EEC0:: + .incbin "graphics/interface/wireless_link_icon.gbapal" + +gUnknown_843EEE0:: + .incbin "graphics/interface/wireless_link_icon.4bpp.lz" + +gUnknown_843F004:: @ 843F004 + .byte 0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37 + .byte 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 + .byte 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f + .byte 0x00, 0xab, 0xb5, 0xb6, 0xb1, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0xb2, 0xf1, 0x00, 0xae, 0xad, 0xba + .byte 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8 + .byte 0xa9, 0xaa, 0x00, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f + .byte 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1 + .byte 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9 + .byte 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1 + .byte 0xd2, 0xd3, 0xd4, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6 + .byte 0x00, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb + .byte 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3 + .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb + .byte 0xec, 0xed, 0xee, 0x2d, 0x2f, 0x30, 0x31, 0x32 + .byte 0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02 + .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a + .byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 + .byte 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a + .byte 0x1b, 0xad, 0xb3, 0xb4, 0x00, 0xaf, 0x7d, 0x7f + .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0 + .byte 0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57 + .byte 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f + .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67 + .byte 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f + .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77 + .byte 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac + .byte 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23 + .byte 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b + .byte 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c + .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 + +gUnknown_843F104:: @ 843F104 + .byte 0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c + .byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 + .byte 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c + .byte 0x9d, 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3 + .byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb + .byte 0xec, 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c + .byte 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07 + .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f + .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 + .byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + .byte 0x84, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7 + .byte 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf + .byte 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 + .byte 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf + .byte 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7 + .byte 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7 + .byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2 + .byte 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa + .byte 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03 + .byte 0x04, 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f + .byte 0xaf, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36 + .byte 0x37, 0x38, 0x39, 0x21, 0xdf, 0xa1, 0xb0, 0xa5 + .byte 0xde, 0x24, 0x2a, 0xa2, 0xa3, 0x22, 0x23, 0x20 + .byte 0xa4, 0x20, 0x2f, 0x41, 0x42, 0x43, 0x44, 0x45 + .byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d + .byte 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55 + .byte 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63 + .byte 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b + .byte 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73 + .byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20 + .byte 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20 + .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 + +gUnknown_843F204:: @ 843F204 + .4byte 0x40000000, 0x00000000 + +gAnimCmd_843F20C:: + obj_image_anim_frame 0x0004, 5 + obj_image_anim_frame 0x0008, 5 + obj_image_anim_frame 0x000c, 5 + obj_image_anim_frame 0x0010, 10 + obj_image_anim_frame 0x000c, 5 + obj_image_anim_frame 0x0008, 5 + obj_image_anim_jump 0 + +gAnimCmd_843F228:: + obj_image_anim_frame 0x0004, 5 + obj_image_anim_frame 0x0008, 5 + obj_image_anim_frame 0x000c, 10 + obj_image_anim_frame 0x0008, 5 + obj_image_anim_jump 0 + +gAnimCmd_843F23C:: + obj_image_anim_frame 0x0004, 5 + obj_image_anim_frame 0x0008, 5 + obj_image_anim_jump 0 + +gAnimCmd_843F248:: + obj_image_anim_frame 0x0004, 10 + obj_image_anim_frame 0x0014, 10 + obj_image_anim_jump 0 + +gAnimCmd_843F254:: + obj_image_anim_frame 0x0018, 10 + obj_image_anim_frame 0x0004, 10 + obj_image_anim_jump 0 + +gSpriteAnimTable_843F260:: + .4byte gAnimCmd_843F20C + .4byte gAnimCmd_843F228 + .4byte gAnimCmd_843F23C + .4byte gAnimCmd_843F248 + .4byte gAnimCmd_843F254 + +gUnknown_843F274:: @ 843F274 + obj_tiles gUnknown_843EEE0, 0x0380, 54321 + +gUnknown_843F27C:: @ 843F27C + obj_pal gUnknown_843EEC0, 54322 + +gUnknown_843F284:: @ 843F284 + spr_template 54321, 54322, gUnknown_843F204, gSpriteAnimTable_843F260, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/include/global.h b/include/global.h index d8ea62d5c..6386071c4 100644 --- a/include/global.h +++ b/include/global.h @@ -712,6 +712,12 @@ struct TrainerRematchState u8 rematches[100]; }; +struct TrainerNameRecord +{ + u32 trainerId; + u8 trainerName[PLAYER_NAME_LENGTH]; +}; + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -766,7 +772,8 @@ struct SaveBlock1 /*0x3A18*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; - /*0x3A94*/ u8 filler3A94[0x204]; + /*0x3A94*/ u8 filler3A94[0x114]; + /*0x3BA8*/ struct TrainerNameRecord trainerNameRecords[20]; /*0x3C98*/ struct DaycareMon route5DayCareMon; /*0x3D24*/ u8 filler3D24[0x10]; /*0x3D34*/ u32 unkArrayIdx; diff --git a/ld_script.txt b/ld_script.txt index 05ed8277a..d164b3f56 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -226,6 +226,7 @@ SECTIONS { src/save_menu_util.o(.text); src/map_preview_screen.o(.text); asm/link_rfu_2.o(.text); + asm/link_rfu_4.o(.text); src/link_rfu.o(.text); asm/easy_chat_2.o(.text); src/pokedex_screen.o(.text); @@ -510,6 +511,7 @@ SECTIONS { data/box_party_pokemon_dropdown.o(.rodata); src/map_preview_screen.o(.rodata); data/link_rfu_2.o(.rodata); + data/link_rfu_4.o(.rodata); data/link_rfu.o(.rodata); src/pokedex_screen.o(.rodata); data/pokedex_screen.o(.rodata); diff --git a/sym_common.txt b/sym_common.txt index c4cd329d0..848c19613 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -80,7 +80,11 @@ gUnknown_3005440: @ 3005440 @ This name is necessary to match assert statements in link_rfu_2 Rfu: @ 3005450 - .space 0x9C0 + .space 0x9AC + + .align 4 +gUnknown_3005E00: @ 3005E00 + .space 0x10 .align 4 .include "link_rfu.o" |