link through BuildSendCmd
This commit is contained in:
+2
-2
@@ -2460,7 +2460,7 @@ sub_8081A90: @ 8081A90
|
||||
cmp r1, r0
|
||||
ble _08081AC2
|
||||
bl CloseLink
|
||||
ldr r0, _08081ADC @ =c2_800ACD4
|
||||
ldr r0, _08081ADC @ =CB2_LinkError
|
||||
bl SetMainCallback2
|
||||
adds r0, r4, 0
|
||||
bl DestroyTask
|
||||
@@ -2477,7 +2477,7 @@ _08081AD0:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08081AD8: .4byte gTasks
|
||||
_08081ADC: .4byte c2_800ACD4
|
||||
_08081ADC: .4byte CB2_LinkError
|
||||
_08081AE0: .4byte gReceivedRemoteLinkPlayers
|
||||
thumb_func_end sub_8081A90
|
||||
|
||||
|
||||
+169
-952
File diff suppressed because it is too large
Load Diff
+34
-34
@@ -2244,7 +2244,7 @@ rfu_func_080F97B8: @ 80F97B8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080F97EA
|
||||
ldr r3, _080F97F4 @ =gUnknown_3005028
|
||||
ldr r3, _080F97F4 @ =gHeldKeyCodeToSend
|
||||
ldrh r2, [r3]
|
||||
cmp r2, 0
|
||||
beq _080F97EA
|
||||
@@ -2268,7 +2268,7 @@ _080F97EA:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F97F0: .4byte gReceivedRemoteLinkPlayers
|
||||
_080F97F4: .4byte gUnknown_3005028
|
||||
_080F97F4: .4byte gHeldKeyCodeToSend
|
||||
_080F97F8: .4byte gLinkTransferringData
|
||||
_080F97FC: .4byte gUnknown_3001188
|
||||
thumb_func_end rfu_func_080F97B8
|
||||
@@ -2444,12 +2444,12 @@ _080F9914:
|
||||
beq _080F9924
|
||||
b _080F9BF8
|
||||
_080F9924:
|
||||
ldr r1, _080F9948 @ =gUnknown_3003ED2
|
||||
ldr r1, _080F9948 @ =gRecvCmds + 2
|
||||
adds r0, r2, r1
|
||||
ldrh r0, [r0]
|
||||
ldr r3, _080F993C @ =gUnknown_3005450
|
||||
strb r0, [r3, 0xD]
|
||||
ldr r4, _080F994C @ =gUnknown_3003ED4
|
||||
ldr r4, _080F994C @ =gRecvCmds + 4
|
||||
adds r0, r2, r4
|
||||
bl sub_80F9770
|
||||
ldr r1, _080F9950 @ =gUnknown_3005DD6
|
||||
@@ -2459,8 +2459,8 @@ _080F9924:
|
||||
_080F993C: .4byte gUnknown_3005450
|
||||
_080F9940: .4byte gReceivedRemoteLinkPlayers
|
||||
_080F9944: .4byte gUnknown_3007460
|
||||
_080F9948: .4byte gUnknown_3003ED2
|
||||
_080F994C: .4byte gUnknown_3003ED4
|
||||
_080F9948: .4byte gRecvCmds + 2
|
||||
_080F994C: .4byte gRecvCmds + 4
|
||||
_080F9950: .4byte gUnknown_3005DD6
|
||||
_080F9954:
|
||||
ldr r2, _080F99AC @ =gUnknown_3005450
|
||||
@@ -2484,13 +2484,13 @@ _080F9974:
|
||||
adds r0, 0x80
|
||||
movs r2, 0
|
||||
strh r4, [r0]
|
||||
ldr r1, _080F99B0 @ =gUnknown_3003ED2
|
||||
ldr r1, _080F99B0 @ =gRecvCmds + 2
|
||||
adds r0, r5, r1
|
||||
ldrh r0, [r0]
|
||||
adds r1, r3, 0
|
||||
adds r1, 0x82
|
||||
strh r0, [r1]
|
||||
ldr r1, _080F99B4 @ =gUnknown_3003ED4
|
||||
ldr r1, _080F99B4 @ =gRecvCmds + 4
|
||||
adds r0, r5, r1
|
||||
ldrh r1, [r0]
|
||||
adds r0, r3, 0
|
||||
@@ -2510,8 +2510,8 @@ _080F9974:
|
||||
b _080F9BF8
|
||||
.align 2, 0
|
||||
_080F99AC: .4byte gUnknown_3005450
|
||||
_080F99B0: .4byte gUnknown_3003ED2
|
||||
_080F99B4: .4byte gUnknown_3003ED4
|
||||
_080F99B0: .4byte gRecvCmds + 2
|
||||
_080F99B4: .4byte gRecvCmds + 4
|
||||
_080F99B8:
|
||||
ldr r4, _080F9A88 @ =gUnknown_3005450
|
||||
mov r9, r4
|
||||
@@ -2628,7 +2628,7 @@ _080F9A94: .4byte gUnknown_843EBD4
|
||||
_080F9A98: .4byte gReceivedRemoteLinkPlayers
|
||||
_080F9A9C:
|
||||
ldr r2, _080F9AB8 @ =gUnknown_843EC64
|
||||
ldr r3, _080F9ABC @ =gUnknown_3003ED2
|
||||
ldr r3, _080F9ABC @ =gRecvCmds + 2
|
||||
adds r0, r5, r3
|
||||
ldrh r1, [r0]
|
||||
lsls r1, 3
|
||||
@@ -2641,7 +2641,7 @@ _080F9A9C:
|
||||
b _080F9BF4
|
||||
.align 2, 0
|
||||
_080F9AB8: .4byte gUnknown_843EC64
|
||||
_080F9ABC: .4byte gUnknown_3003ED2
|
||||
_080F9ABC: .4byte gRecvCmds + 2
|
||||
_080F9AC0:
|
||||
ldr r1, _080F9ACC @ =gUnknown_3005534
|
||||
add r1, r8
|
||||
@@ -2655,7 +2655,7 @@ _080F9AD0:
|
||||
movs r4, 0x80
|
||||
lsls r4, 1
|
||||
adds r0, r2, r4
|
||||
ldr r3, _080F9AFC @ =gUnknown_3003ED2
|
||||
ldr r3, _080F9AFC @ =gRecvCmds + 2
|
||||
adds r1, r5, r3
|
||||
ldrh r0, [r0]
|
||||
mov r6, r8
|
||||
@@ -2673,7 +2673,7 @@ _080F9AEA:
|
||||
b _080F9BF8
|
||||
.align 2, 0
|
||||
_080F9AF8: .4byte gUnknown_3005450
|
||||
_080F9AFC: .4byte gUnknown_3003ED2
|
||||
_080F9AFC: .4byte gRecvCmds + 2
|
||||
_080F9B00:
|
||||
ldr r7, _080F9B4C @ =gUnknown_3005450
|
||||
ldrb r2, [r7, 0xC]
|
||||
@@ -2685,7 +2685,7 @@ _080F9B00:
|
||||
adds r6, 0x1
|
||||
cmp r0, 0
|
||||
beq _080F9BF8
|
||||
ldr r0, _080F9B54 @ =gUnknown_3003ED2
|
||||
ldr r0, _080F9B54 @ =gRecvCmds + 2
|
||||
adds r4, r5, r0
|
||||
ldrh r1, [r4]
|
||||
ldr r0, _080F9B58 @ =gUnknown_3007460
|
||||
@@ -2696,7 +2696,7 @@ _080F9B00:
|
||||
beq _080F9B38
|
||||
strb r2, [r3]
|
||||
bl sub_80FEB14
|
||||
ldr r1, _080F9B5C @ =gUnknown_3003ED4
|
||||
ldr r1, _080F9B5C @ =gRecvCmds + 4
|
||||
adds r0, r5, r1
|
||||
ldrh r1, [r0]
|
||||
ldr r2, _080F9B60 @ =0x0000099c
|
||||
@@ -2714,9 +2714,9 @@ _080F9B38:
|
||||
.align 2, 0
|
||||
_080F9B4C: .4byte gUnknown_3005450
|
||||
_080F9B50: .4byte gReceivedRemoteLinkPlayers
|
||||
_080F9B54: .4byte gUnknown_3003ED2
|
||||
_080F9B54: .4byte gRecvCmds + 2
|
||||
_080F9B58: .4byte gUnknown_3007460
|
||||
_080F9B5C: .4byte gUnknown_3003ED4
|
||||
_080F9B5C: .4byte gRecvCmds + 4
|
||||
_080F9B60: .4byte 0x0000099c
|
||||
_080F9B64: .4byte gRecvCmds
|
||||
_080F9B68:
|
||||
@@ -2724,11 +2724,11 @@ _080F9B68:
|
||||
lsls r0, 8
|
||||
bl sub_80F9D04
|
||||
ldr r1, _080F9B90 @ =gSendCmd
|
||||
ldr r3, _080F9B94 @ =gUnknown_3003ED2
|
||||
ldr r3, _080F9B94 @ =gRecvCmds + 2
|
||||
adds r0, r5, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1, 0x2]
|
||||
ldr r4, _080F9B98 @ =gUnknown_3003ED4
|
||||
ldr r4, _080F9B98 @ =gRecvCmds + 4
|
||||
adds r0, r5, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1, 0x4]
|
||||
@@ -2740,8 +2740,8 @@ _080F9B68:
|
||||
b _080F9BF4
|
||||
.align 2, 0
|
||||
_080F9B90: .4byte gSendCmd
|
||||
_080F9B94: .4byte gUnknown_3003ED2
|
||||
_080F9B98: .4byte gUnknown_3003ED4
|
||||
_080F9B94: .4byte gRecvCmds + 2
|
||||
_080F9B98: .4byte gRecvCmds + 4
|
||||
_080F9B9C: .4byte gRecvCmds
|
||||
_080F9BA0:
|
||||
ldr r4, _080F9BD0 @ =gUnknown_3005450
|
||||
@@ -2752,13 +2752,13 @@ _080F9BA0:
|
||||
bne _080F9C34
|
||||
ldr r0, _080F9BD4 @ =0x0000099b
|
||||
adds r2, r4, r0
|
||||
ldr r1, _080F9BD8 @ =gUnknown_3003ED2
|
||||
ldr r1, _080F9BD8 @ =gRecvCmds + 2
|
||||
adds r3, r5, r1
|
||||
ldrb r1, [r3]
|
||||
ldrb r0, [r2]
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r2, _080F9BDC @ =gUnknown_3003ED4
|
||||
ldr r2, _080F9BDC @ =gRecvCmds + 4
|
||||
adds r0, r5, r2
|
||||
ldrh r1, [r0]
|
||||
ldr r2, _080F9BE0 @ =0x0000099c
|
||||
@@ -2770,15 +2770,15 @@ _080F9BA0:
|
||||
.align 2, 0
|
||||
_080F9BD0: .4byte gUnknown_3005450
|
||||
_080F9BD4: .4byte 0x0000099b
|
||||
_080F9BD8: .4byte gUnknown_3003ED2
|
||||
_080F9BDC: .4byte gUnknown_3003ED4
|
||||
_080F9BD8: .4byte gRecvCmds + 2
|
||||
_080F9BDC: .4byte gRecvCmds + 4
|
||||
_080F9BE0: .4byte 0x0000099c
|
||||
_080F9BE4:
|
||||
ldr r0, _080F9C24 @ =gUnknown_3003E60
|
||||
ldr r0, _080F9C24 @ =gLinkPartnersHeldKeys
|
||||
mov r3, r8
|
||||
lsls r1, r3, 1
|
||||
adds r1, r0
|
||||
ldr r4, _080F9C28 @ =gUnknown_3003ED2
|
||||
ldr r4, _080F9C28 @ =gRecvCmds + 2
|
||||
adds r0, r5, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
@@ -2808,8 +2808,8 @@ _080F9BF8:
|
||||
strb r1, [r2]
|
||||
b _080F9C34
|
||||
.align 2, 0
|
||||
_080F9C24: .4byte gUnknown_3003E60
|
||||
_080F9C28: .4byte gUnknown_3003ED2
|
||||
_080F9C24: .4byte gLinkPartnersHeldKeys
|
||||
_080F9C28: .4byte gRecvCmds + 2
|
||||
_080F9C2C: .4byte gUnknown_3005450
|
||||
_080F9C30:
|
||||
adds r0, 0x1
|
||||
@@ -3087,7 +3087,7 @@ _080F9E00:
|
||||
.align 2, 0
|
||||
_080F9E18: .4byte gUnknown_3005542
|
||||
_080F9E1C:
|
||||
ldr r0, _080F9E28 @ =gUnknown_3005028
|
||||
ldr r0, _080F9E28 @ =gHeldKeyCodeToSend
|
||||
ldrh r0, [r0]
|
||||
_080F9E20:
|
||||
strh r0, [r5, 0x2]
|
||||
@@ -3096,7 +3096,7 @@ _080F9E22:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080F9E28: .4byte gUnknown_3005028
|
||||
_080F9E28: .4byte gHeldKeyCodeToSend
|
||||
thumb_func_end sub_80F9D04
|
||||
|
||||
thumb_func_start sub_80F9E2C
|
||||
@@ -5159,7 +5159,7 @@ sub_80FAD98: @ 80FAD98
|
||||
movs r0, 0x2
|
||||
strb r0, [r1]
|
||||
_080FADC0:
|
||||
ldr r4, _080FAE24 @ =c2_800ACD4
|
||||
ldr r4, _080FAE24 @ =CB2_LinkError
|
||||
adds r0, r4, 0
|
||||
bl SetMainCallback2
|
||||
str r4, [r6, 0x8]
|
||||
@@ -5201,7 +5201,7 @@ _080FAE14: .4byte gUnknown_3005E10
|
||||
_080FAE18: .4byte gMain
|
||||
_080FAE1C: .4byte c2_mystery_gift_e_reader_run
|
||||
_080FAE20: .4byte gWirelessCommType
|
||||
_080FAE24: .4byte c2_800ACD4
|
||||
_080FAE24: .4byte CB2_LinkError
|
||||
_080FAE28: .4byte 0x0000069e
|
||||
_080FAE2C: .4byte 0x000008d2
|
||||
_080FAE30:
|
||||
|
||||
+11
-11
@@ -5649,7 +5649,7 @@ c1_link_related: @ 8057884
|
||||
_0805789E:
|
||||
ldr r0, _080578CC @ =gUnknown_300502C
|
||||
ldrb r4, [r0]
|
||||
ldr r0, _080578D0 @ =gUnknown_3003E60
|
||||
ldr r0, _080578D0 @ =gLinkPartnersHeldKeys
|
||||
adds r1, r4, 0
|
||||
bl sub_8057BE4
|
||||
ldr r0, _080578D4 @ =gUnknown_3000E84
|
||||
@@ -5667,7 +5667,7 @@ _080578C0:
|
||||
.align 2, 0
|
||||
_080578C8: .4byte gWirelessCommType
|
||||
_080578CC: .4byte gUnknown_300502C
|
||||
_080578D0: .4byte gUnknown_3003E60
|
||||
_080578D0: .4byte gLinkPartnersHeldKeys
|
||||
_080578D4: .4byte gUnknown_3000E84
|
||||
thumb_func_end c1_link_related
|
||||
|
||||
@@ -5686,12 +5686,12 @@ _080578E8: .4byte sub_8057D5C
|
||||
thumb_func_start sub_80578EC
|
||||
sub_80578EC: @ 80578EC
|
||||
push {lr}
|
||||
ldr r0, _080578F8 @ =gUnknown_3003E60
|
||||
ldr r0, _080578F8 @ =gLinkPartnersHeldKeys
|
||||
bl sub_8057D48
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080578F8: .4byte gUnknown_3003E60
|
||||
_080578F8: .4byte gLinkPartnersHeldKeys
|
||||
thumb_func_end sub_80578EC
|
||||
|
||||
thumb_func_start c1_link_related_func_set
|
||||
@@ -6126,14 +6126,14 @@ sub_8057C4C: @ 8057C4C
|
||||
lsrs r0, 16
|
||||
cmp r0, 0xC
|
||||
bhi _08057C6C
|
||||
ldr r0, _08057C68 @ =gUnknown_3005028
|
||||
ldr r0, _08057C68 @ =gHeldKeyCodeToSend
|
||||
strh r4, [r0]
|
||||
b _08057C72
|
||||
.align 2, 0
|
||||
_08057C64: .4byte 0xffef0000
|
||||
_08057C68: .4byte gUnknown_3005028
|
||||
_08057C68: .4byte gHeldKeyCodeToSend
|
||||
_08057C6C:
|
||||
ldr r1, _08057CB0 @ =gUnknown_3005028
|
||||
ldr r1, _08057CB0 @ =gHeldKeyCodeToSend
|
||||
movs r0, 0x11
|
||||
strh r0, [r1]
|
||||
_08057C72:
|
||||
@@ -6159,7 +6159,7 @@ _08057C72:
|
||||
cmp r4, 0x18
|
||||
blt _08057CA8
|
||||
_08057CA2:
|
||||
ldr r1, _08057CB0 @ =gUnknown_3005028
|
||||
ldr r1, _08057CB0 @ =gHeldKeyCodeToSend
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
_08057CA8:
|
||||
@@ -6167,7 +6167,7 @@ _08057CA8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08057CB0: .4byte gUnknown_3005028
|
||||
_08057CB0: .4byte gHeldKeyCodeToSend
|
||||
_08057CB4: .4byte gWirelessCommType
|
||||
thumb_func_end sub_8057C4C
|
||||
|
||||
@@ -7114,14 +7114,14 @@ sub_805833C: @ 805833C
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0805835C
|
||||
ldr r0, _08058354 @ =gUnknown_3003FB0
|
||||
ldr r0, _08058354 @ =gLink
|
||||
ldr r1, _08058358 @ =0x00000339
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
b _08058364
|
||||
.align 2, 0
|
||||
_08058350: .4byte gWirelessCommType
|
||||
_08058354: .4byte gUnknown_3003FB0
|
||||
_08058354: .4byte gLink
|
||||
_08058358: .4byte 0x00000339
|
||||
_0805835C:
|
||||
ldr r0, _08058368 @ =gUnknown_3005450
|
||||
|
||||
+2
-2
@@ -7179,7 +7179,7 @@ _0804FF7A:
|
||||
cmp r1, r0
|
||||
bls _0804FFAC
|
||||
bl CloseLink
|
||||
ldr r0, _0804FFC0 @ =c2_800ACD4
|
||||
ldr r0, _0804FFC0 @ =CB2_LinkError
|
||||
bl SetMainCallback2
|
||||
ldr r1, [r4]
|
||||
adds r3, r1, 0
|
||||
@@ -7203,7 +7203,7 @@ _0804FFAC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804FFC0: .4byte c2_800ACD4
|
||||
_0804FFC0: .4byte CB2_LinkError
|
||||
thumb_func_end sub_804FF4C
|
||||
|
||||
thumb_func_start sub_804FFC4
|
||||
|
||||
BIN
Binary file not shown.
+1
-28
@@ -6,34 +6,7 @@
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gUnknown_8231EC4:: @ 8231EC4
|
||||
.incbin "baserom.gba", 0x231EC4, 0x20
|
||||
|
||||
.align 2
|
||||
gWirelessLinkDisplay4bpp:: @ 8231EE4
|
||||
.incbin "graphics/interface/wireless_link_display.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gWirelessLinkDisplayBin:: @ 823238C
|
||||
.incbin "graphics/interface/wireless_link_display.bin.lz"
|
||||
|
||||
.align 2
|
||||
gLinkTestDigitsPal:: @ 8232578
|
||||
.incbin "baserom.gba", 0x232578, 0x20
|
||||
|
||||
gLinkTestDigitsGfx:: @ 8232598
|
||||
.incbin "baserom.gba", 0x232598, 0x2000
|
||||
|
||||
gUnknown_8234598:: @ 8234598
|
||||
.incbin "baserom.gba", 0x234598, 0x28
|
||||
|
||||
gUnknown_82345C0:: @ 82345C0
|
||||
.incbin "baserom.gba", 0x2345C0, 0x10
|
||||
|
||||
gUnknown_82345D0:: @ 82345D0
|
||||
.incbin "baserom.gba", 0x2345D0, 0x18
|
||||
|
||||
.align 2, 0
|
||||
gUnknown_82345E8:: @ 82345E8
|
||||
.incbin "baserom.gba", 0x2345E8, 0x8
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_BG_REGS_H
|
||||
#define GUARD_BG_REGS_H
|
||||
|
||||
extern const u8 gBGControlRegOffsets[];
|
||||
|
||||
#endif //GUARD_BG_REGS_H
|
||||
+16
-2
@@ -29,6 +29,21 @@
|
||||
#define EXTRACT_RECEIVED_NOTHING(status) \
|
||||
(((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1)
|
||||
|
||||
#define LINKCMD_SEND_LINK_TYPE 0x2222
|
||||
#define LINKCMD_0x2FFE 0x2FFE
|
||||
#define LINKCMD_SEND_HELD_KEYS 0x4444
|
||||
#define LINKCMD_0x5555 0x5555
|
||||
#define LINKCMD_0x5566 0x5566
|
||||
#define LINKCMD_0x5FFF 0x5FFF
|
||||
#define LINKCMD_0x6666 0x6666
|
||||
#define LINKCMD_0x7777 0x7777
|
||||
#define LINKCMD_CONT_BLOCK 0x8888
|
||||
#define LINKCMD_0xAAAA 0xAAAA
|
||||
#define LINKCMD_0xAAAB 0xAAAB
|
||||
#define LINKCMD_INIT_BLOCK 0xBBBB
|
||||
#define LINKCMD_SEND_HELD_KEYS_2 0xCAFE
|
||||
#define LINKCMD_0xCCCC 0xCCCC
|
||||
|
||||
#define MASTER_HANDSHAKE 0x8FFF
|
||||
#define SLAVE_HANDSHAKE 0xB9A0
|
||||
|
||||
@@ -148,12 +163,11 @@ extern bool8 gLinkVSyncDisabled;
|
||||
extern u8 gWirelessCommType;
|
||||
|
||||
extern u8 gShouldAdvanceLinkState;
|
||||
extern u64 gSioMlt_Recv;
|
||||
|
||||
void Task_DestroySelf(u8);
|
||||
void OpenLink(void);
|
||||
void CloseLink(void);
|
||||
u16 LinkMain2(u16 *);
|
||||
u16 LinkMain2(const u16 *);
|
||||
void sub_8007B14(void);
|
||||
bool32 sub_8007B24(void);
|
||||
void ClearLinkCallback(void);
|
||||
|
||||
@@ -71,4 +71,6 @@ void SeedRngAndSetTrainerId(void);
|
||||
extern const char RomHeaderGameCode[4];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
||||
extern u8 gLinkTransferringData;
|
||||
|
||||
#endif // GUARD_MAIN_H
|
||||
|
||||
@@ -380,6 +380,7 @@ SECTIONS {
|
||||
src/sprite.o(.rodata);
|
||||
src/bg_regs.o(.rodata);
|
||||
src/string_util.o(.rodata);
|
||||
src/link.o(.rodata);
|
||||
data/data.o(.rodata);
|
||||
src/battle_util.o(.rodata);
|
||||
src/battle_script_commands.o(.rodata);
|
||||
|
||||
+345
-16
@@ -1,7 +1,10 @@
|
||||
#include "global.h"
|
||||
#include "palette.h"
|
||||
#include "bg_regs.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "link.h"
|
||||
#include "decompress.h"
|
||||
#include "malloc.h"
|
||||
#include "save.h"
|
||||
#include "quest_log.h"
|
||||
#include "link_rfu.h"
|
||||
#include "librfu.h"
|
||||
@@ -9,6 +12,10 @@
|
||||
#include "task.h"
|
||||
#include "event_data.h"
|
||||
#include "string_util.h"
|
||||
#include "item_menu.h"
|
||||
#include "link.h"
|
||||
|
||||
extern u16 gHeldKeyCodeToSend;
|
||||
|
||||
struct BlockTransfer
|
||||
{
|
||||
@@ -27,6 +34,8 @@ struct LinkTestBGInfo
|
||||
u32 dummy_C;
|
||||
};
|
||||
|
||||
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
|
||||
|
||||
#define static __attribute__((section(".bss")))
|
||||
static struct BlockTransfer sBlockSend;
|
||||
ALIGNED(8) static struct BlockTransfer sBlockRecv[MAX_LINK_PLAYERS];
|
||||
@@ -45,17 +54,43 @@ static u8 sChecksumAvailable;
|
||||
static u8 sHandshakePlayerCount;
|
||||
#undef static
|
||||
|
||||
struct LinkTestBGInfo gLinkTestBGInfo;
|
||||
u16 gLinkPartnersHeldKeys[6];
|
||||
u32 gLinkDebugSeed;
|
||||
struct LinkPlayerBlock gLocalLinkPlayerBlock;
|
||||
bool8 gLinkErrorOccurred;
|
||||
bool8 gSuppressLinkErrorMessage;
|
||||
void (*gLinkCallback)(void);
|
||||
bool8 gUnknown_3003F28;
|
||||
u32 gLinkDebugFlags;
|
||||
//u32 gFiller_03003074;
|
||||
bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS];
|
||||
u8 gBlockReceivedStatus[MAX_LINK_PLAYERS];
|
||||
//u32 gFiller_03003080;
|
||||
u16 gLinkHeldKeys;
|
||||
u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
|
||||
u32 gLinkStatus;
|
||||
bool8 gUnknown_3003F24;
|
||||
bool8 gUnknown_3003F28;
|
||||
bool8 gUnknown_3003F2C[MAX_LINK_PLAYERS];
|
||||
bool8 gUnknown_3003F30[MAX_LINK_PLAYERS];
|
||||
u16 gUnknown_3003F34;
|
||||
u8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS];
|
||||
u8 gUnknown_3003F30[MAX_LINK_PLAYERS];
|
||||
u8 gUnknown_3003F2C[MAX_LINK_PLAYERS];
|
||||
u8 gSuppressLinkErrorMessage;
|
||||
bool8 gWirelessCommType;
|
||||
bool8 gSavedLinkPlayerCount;
|
||||
u16 gSendCmd[CMD_LENGTH];
|
||||
u8 gSavedMultiplayerId;
|
||||
bool8 gReceivedRemoteLinkPlayers;
|
||||
struct LinkTestBGInfo gLinkTestBGInfo;
|
||||
void (*gLinkCallback)(void);
|
||||
u8 gShouldAdvanceLinkState;
|
||||
u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS];
|
||||
u8 gBlockRequestType;
|
||||
//u32 gFiller_03003154;
|
||||
//u32 gFiller_03003158;
|
||||
//u32 gFiller_0300315c;
|
||||
u8 gLastSendQueueCount;
|
||||
struct Link gLink;
|
||||
u8 gLastRecvQueueCount;
|
||||
u16 gLinkSavedIme;
|
||||
//u32 gFiller_03004138;
|
||||
//u32 gFiller_0300413C;
|
||||
|
||||
EWRAM_DATA bool8 gLinkTestDebugValuesEnabled = FALSE;
|
||||
EWRAM_DATA bool8 gUnknown_2022111 = FALSE;
|
||||
@@ -79,20 +114,42 @@ EWRAM_DATA void *gUnknown_2022860 = NULL;
|
||||
|
||||
void InitLocalLinkPlayer(void);
|
||||
void sub_800978C(void);
|
||||
void CB2_LinkTest(void);
|
||||
void ProcessRecvCmds(u8 id);
|
||||
void InitBlockSend(const void * src, size_t size);
|
||||
u16 LinkTestCalcBlockChecksum(const u16 *src, u16 size);
|
||||
void LinkTest_prnthex(u32 pos, u8 a0, u8 a1, u8 a2);
|
||||
void LinkCB_RequestPlayerDataExchange(void);
|
||||
void ResetBlockSend(void);
|
||||
void task00_link_test(u8 taskId);
|
||||
void CB2_LinkTest(void);
|
||||
void EnableSerial(void);
|
||||
void sub_800B210(void);
|
||||
void sub_80F8DC0(void);
|
||||
void DisableSerial(void);
|
||||
void CheckErrorStatus(void);
|
||||
void sub_800B284(struct LinkPlayer * linkPlayer);
|
||||
void SetBlockReceivedFlag(u8 id);
|
||||
void sub_800A3CC(void);
|
||||
|
||||
extern const u16 gLinkTestDigitsPal[0x20];
|
||||
extern const u16 gLinkTestDigitsGfx[0x1000];
|
||||
extern const u8 gBGControlRegOffsets[];
|
||||
ALIGNED(4) const u16 gWirelessLinkDisplayPal[] = INCBIN_U16("graphics/interface/wireless_link_display.gbapal");
|
||||
const u16 gWirelessLinkDisplay4bpp[] = INCBIN_U16("graphics/interface/wireless_link_display.4bpp.lz");
|
||||
const u16 gWirelessLinkDisplayBin[] = INCBIN_U16("graphics/interface/wireless_link_display.bin.lz");
|
||||
const u16 gLinkTestFontPal[] = INCBIN_U16("graphics/interface/link_test_font.gbapal");
|
||||
const u16 gLinkTestFontGfx[] = INCBIN_U16("graphics/interface/link_test_font.4bpp");
|
||||
|
||||
const struct BlockRequest gUnknown_8234598[] = {
|
||||
{gBlockSendBuffer, 200},
|
||||
{gBlockSendBuffer, 200},
|
||||
{gBlockSendBuffer, 100},
|
||||
{gBlockSendBuffer, 220},
|
||||
{gBlockSendBuffer, 40}
|
||||
};
|
||||
const char gASCIIGameFreakInc[] = "GameFreak inc.";
|
||||
const char gASCIITestPrint[] = "TEST PRINT\n"
|
||||
"P0\n"
|
||||
"P1\n"
|
||||
"P2\n"
|
||||
"P3";
|
||||
|
||||
bool8 IsWirelessAdapterConnected(void)
|
||||
{
|
||||
@@ -121,8 +178,8 @@ void Task_DestroySelf(u8 taskId)
|
||||
|
||||
void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock, u16 a4)
|
||||
{
|
||||
LoadPalette(gLinkTestDigitsPal, paletteNum * 16, 0x20);
|
||||
DmaCopy16(3, gLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock) + (16 * a4), sizeof gLinkTestDigitsGfx);
|
||||
LoadPalette(gLinkTestFontPal, paletteNum * 16, 0x20);
|
||||
DmaCopy16(3, gLinkTestFontGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock) + (16 * a4), sizeof gLinkTestFontGfx);
|
||||
gLinkTestBGInfo.screenBaseBlock = screenBaseBlock;
|
||||
gLinkTestBGInfo.paletteNum = paletteNum;
|
||||
gLinkTestBGInfo.dummy_8 = a4;
|
||||
@@ -144,8 +201,8 @@ void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBloc
|
||||
|
||||
void sub_80095BC(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock)
|
||||
{
|
||||
LoadPalette(gLinkTestDigitsPal, paletteNum * 16, 0x20);
|
||||
DmaCopy16(3, gLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock), sizeof gLinkTestDigitsGfx);
|
||||
LoadPalette(gLinkTestFontPal, paletteNum * 16, 0x20);
|
||||
DmaCopy16(3, gLinkTestFontGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock), sizeof gLinkTestFontGfx);
|
||||
gLinkTestBGInfo.screenBaseBlock = screenBaseBlock;
|
||||
gLinkTestBGInfo.paletteNum = paletteNum;
|
||||
gLinkTestBGInfo.dummy_8 = 0;
|
||||
@@ -311,3 +368,275 @@ void TestBlockTransfer(u8 nothing, u8 is, u8 used)
|
||||
}
|
||||
}
|
||||
|
||||
void LinkTestProcessKeyInput(void)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
gShouldAdvanceLinkState = 1;
|
||||
}
|
||||
if (JOY_HELD(B_BUTTON))
|
||||
{
|
||||
InitBlockSend(gHeap + 0x4000, 0x2004);
|
||||
}
|
||||
if (JOY_NEW(L_BUTTON))
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(2, 0, 0));
|
||||
}
|
||||
if (JOY_NEW(START_BUTTON))
|
||||
{
|
||||
SetSuppressLinkErrorMessage(TRUE);
|
||||
}
|
||||
if (JOY_NEW(R_BUTTON))
|
||||
{
|
||||
TrySavingData(1);
|
||||
}
|
||||
if (JOY_NEW(SELECT_BUTTON))
|
||||
{
|
||||
sub_800AAC0();
|
||||
}
|
||||
if (gLinkTestDebugValuesEnabled)
|
||||
{
|
||||
SetLinkDebugValues(gMain.vblankCounter2, gLinkCallback ? gLinkVSyncDisabled : gLinkVSyncDisabled | 0x10);
|
||||
}
|
||||
}
|
||||
|
||||
void CB2_LinkTest(void)
|
||||
{
|
||||
LinkTestProcessKeyInput();
|
||||
TestBlockTransfer(1, 1, 0);
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
u16 LinkMain2(const u16 *heldKeys)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
if (!gLinkOpen)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
gSendCmd[i] = 0;
|
||||
}
|
||||
gLinkHeldKeys = *heldKeys;
|
||||
if (gLinkStatus & LINK_STAT_CONN_ESTABLISHED)
|
||||
{
|
||||
ProcessRecvCmds(SIO_MULTI_CNT->id);
|
||||
if (gLinkCallback != NULL)
|
||||
{
|
||||
gLinkCallback();
|
||||
}
|
||||
CheckErrorStatus();
|
||||
}
|
||||
return gLinkStatus;
|
||||
}
|
||||
|
||||
void HandleReceiveRemoteLinkPlayer(u8 who)
|
||||
{
|
||||
int i;
|
||||
int count;
|
||||
|
||||
count = 0;
|
||||
gRemoteLinkPlayersNotReceived[who] = FALSE;
|
||||
for (i = 0; i < GetLinkPlayerCount_2(); i++)
|
||||
{
|
||||
count += gRemoteLinkPlayersNotReceived[i];
|
||||
}
|
||||
if (count == 0 && gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
gReceivedRemoteLinkPlayers = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessRecvCmds(u8 unused)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < MAX_LINK_PLAYERS; i++)
|
||||
{
|
||||
gLinkPartnersHeldKeys[i] = 0;
|
||||
if (gRecvCmds[i][0] == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
switch (gRecvCmds[i][0])
|
||||
{
|
||||
case LINKCMD_SEND_LINK_TYPE:
|
||||
{
|
||||
struct LinkPlayerBlock *block;
|
||||
|
||||
InitLocalLinkPlayer();
|
||||
block = &gLocalLinkPlayerBlock;
|
||||
block->linkPlayer = gLocalLinkPlayer;
|
||||
memcpy(block->magic1, gASCIIGameFreakInc, sizeof(block->magic1) - 1);
|
||||
memcpy(block->magic2, gASCIIGameFreakInc, sizeof(block->magic2) - 1);
|
||||
InitBlockSend(block, sizeof(*block));
|
||||
break;
|
||||
}
|
||||
case LINKCMD_SEND_HELD_KEYS:
|
||||
gLinkPartnersHeldKeys[i] = gRecvCmds[i][1];
|
||||
break;
|
||||
case LINKCMD_0x5555:
|
||||
gUnknown_3003F28 = TRUE;
|
||||
break;
|
||||
case LINKCMD_0x5566:
|
||||
gUnknown_3003F28 = TRUE;
|
||||
break;
|
||||
case LINKCMD_INIT_BLOCK:
|
||||
{
|
||||
struct BlockTransfer *blockRecv;
|
||||
|
||||
blockRecv = &sBlockRecv[i];
|
||||
blockRecv->pos = 0;
|
||||
blockRecv->size = gRecvCmds[i][1];
|
||||
blockRecv->multiplayerId = gRecvCmds[i][2];
|
||||
break;
|
||||
}
|
||||
case LINKCMD_CONT_BLOCK:
|
||||
{
|
||||
if (sBlockRecv[i].size > BLOCK_BUFFER_SIZE)
|
||||
{
|
||||
u16 *buffer;
|
||||
u16 j;
|
||||
|
||||
buffer = (u16 *)gDecompressionBuffer;
|
||||
for (j = 0; j < CMD_LENGTH - 1; j++)
|
||||
{
|
||||
buffer[(sBlockRecv[i].pos / 2) + j] = gRecvCmds[i][j + 1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
u16 j;
|
||||
|
||||
for (j = 0; j < CMD_LENGTH - 1; j++)
|
||||
{
|
||||
gBlockRecvBuffer[i][(sBlockRecv[i].pos / 2) + j] = gRecvCmds[i][j + 1];
|
||||
}
|
||||
}
|
||||
|
||||
sBlockRecv[i].pos += (CMD_LENGTH - 1) * 2;
|
||||
|
||||
if (sBlockRecv[i].pos >= sBlockRecv[i].size)
|
||||
{
|
||||
if (gRemoteLinkPlayersNotReceived[i] == TRUE)
|
||||
{
|
||||
struct LinkPlayerBlock *block;
|
||||
struct LinkPlayer *linkPlayer;
|
||||
|
||||
block = (struct LinkPlayerBlock *)&gBlockRecvBuffer[i];
|
||||
linkPlayer = &gLinkPlayers[i];
|
||||
*linkPlayer = block->linkPlayer;
|
||||
if ((linkPlayer->version & 0xFF) == VERSION_RUBY || (linkPlayer->version & 0xFF) == VERSION_SAPPHIRE)
|
||||
{
|
||||
linkPlayer->name[10] = 0;
|
||||
linkPlayer->name[9] = 0;
|
||||
linkPlayer->name[8] = 0;
|
||||
}
|
||||
sub_800B284(linkPlayer);
|
||||
if (strcmp(block->magic1, gASCIIGameFreakInc) != 0
|
||||
|| strcmp(block->magic2, gASCIIGameFreakInc) != 0)
|
||||
{
|
||||
SetMainCallback2(CB2_LinkError);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleReceiveRemoteLinkPlayer(i);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetBlockReceivedFlag(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case LINKCMD_0x5FFF:
|
||||
gUnknown_3003F30[i] = TRUE;
|
||||
break;
|
||||
case LINKCMD_0x2FFE:
|
||||
gUnknown_3003F2C[i] = TRUE;
|
||||
break;
|
||||
case LINKCMD_0xAAAA:
|
||||
sub_800A3CC();
|
||||
break;
|
||||
case LINKCMD_0xCCCC:
|
||||
SendBlock(0, gUnknown_8234598[gRecvCmds[i][1]].address, gUnknown_8234598[gRecvCmds[i][1]].size);
|
||||
break;
|
||||
case LINKCMD_SEND_HELD_KEYS_2:
|
||||
gLinkPartnersHeldKeys[i] = gRecvCmds[i][1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BuildSendCmd(u16 command)
|
||||
{
|
||||
switch (command)
|
||||
{
|
||||
case LINKCMD_SEND_LINK_TYPE:
|
||||
gSendCmd[0] = LINKCMD_SEND_LINK_TYPE;
|
||||
gSendCmd[1] = gLinkType;
|
||||
break;
|
||||
case LINKCMD_0x2FFE:
|
||||
gSendCmd[0] = LINKCMD_0x2FFE;
|
||||
break;
|
||||
case LINKCMD_SEND_HELD_KEYS:
|
||||
gSendCmd[0] = LINKCMD_SEND_HELD_KEYS;
|
||||
gSendCmd[1] = gMain.heldKeys;
|
||||
break;
|
||||
case LINKCMD_0x5555:
|
||||
gSendCmd[0] = LINKCMD_0x5555;
|
||||
break;
|
||||
case LINKCMD_0x6666:
|
||||
gSendCmd[0] = LINKCMD_0x6666;
|
||||
gSendCmd[1] = 0;
|
||||
break;
|
||||
case LINKCMD_0x7777:
|
||||
{
|
||||
u8 i;
|
||||
|
||||
gSendCmd[0] = LINKCMD_0x7777;
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
gSendCmd[i + 1] = 0xEE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LINKCMD_INIT_BLOCK:
|
||||
gSendCmd[0] = LINKCMD_INIT_BLOCK;
|
||||
gSendCmd[1] = sBlockSend.size;
|
||||
gSendCmd[2] = sBlockSend.multiplayerId + 0x80;
|
||||
break;
|
||||
case LINKCMD_0xAAAA:
|
||||
gSendCmd[0] = LINKCMD_0xAAAA;
|
||||
break;
|
||||
case LINKCMD_0xAAAB:
|
||||
gSendCmd[0] = LINKCMD_0xAAAB;
|
||||
gSendCmd[1] = gSpecialVar_ItemId;
|
||||
break;
|
||||
case LINKCMD_0xCCCC:
|
||||
gSendCmd[0] = LINKCMD_0xCCCC;
|
||||
gSendCmd[1] = gBlockRequestType;
|
||||
break;
|
||||
case LINKCMD_0x5FFF:
|
||||
gSendCmd[0] = LINKCMD_0x5FFF;
|
||||
gSendCmd[1] = gUnknown_3003F34;
|
||||
break;
|
||||
case LINKCMD_0x5566:
|
||||
gSendCmd[0] = LINKCMD_0x5566;
|
||||
break;
|
||||
case LINKCMD_SEND_HELD_KEYS_2:
|
||||
if (gHeldKeyCodeToSend == 0 || gLinkTransferringData)
|
||||
{
|
||||
break;
|
||||
}
|
||||
gSendCmd[0] = LINKCMD_SEND_HELD_KEYS_2;
|
||||
gSendCmd[1] = gHeldKeyCodeToSend;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ bool32 sub_81436EC(void)
|
||||
vu16 imeBak = REG_IME;
|
||||
u16 data[4];
|
||||
REG_IME = 0;
|
||||
*(u64 *)data = gSioMlt_Recv;
|
||||
*(u64 *)data = *(u64 *)gLink.tempRecvBuffer;
|
||||
REG_IME = imeBak;
|
||||
if ( data[0] == 0xB9A0
|
||||
&& data[1] == 0xCCD0
|
||||
|
||||
+18
-27
@@ -6,40 +6,34 @@
|
||||
.include "sprite.o"
|
||||
|
||||
.align 4
|
||||
gUnknown_3003E60: @ 3003E60
|
||||
gLinkPartnersHeldKeys: @ 3003E60
|
||||
.space 0xC
|
||||
|
||||
gUnknown_3003E6C: @ 3003E6C
|
||||
gLinkDebugSeed: @ 3003E6C
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3003E70: @ 3003E70
|
||||
gLocalLinkPlayerBlock: @ 3003E70
|
||||
.space 0x3C
|
||||
|
||||
gLinkErrorOccurred: @ 3003EAC
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3003EB0: @ 3003EB0
|
||||
gLinkDebugFlags: @ 3003EB0
|
||||
.space 0x8
|
||||
|
||||
gRemoteLinkPlayersNotReceived: @ 3003EB8
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3003EBC: @ 3003EBC
|
||||
gBlockReceivedStatus: @ 3003EBC
|
||||
.space 0x8
|
||||
|
||||
gUnknown_3003EC4: @ 3003EC4
|
||||
gLinkHeldKeys: @ 3003EC4
|
||||
.space 0xC
|
||||
|
||||
gRecvCmds: @ 3003ED0
|
||||
.space 0x2
|
||||
.space 0x50
|
||||
|
||||
gUnknown_3003ED2: @ 3003ED2
|
||||
.space 0x2
|
||||
|
||||
gUnknown_3003ED4: @ 3003ED4
|
||||
.space 0x4C
|
||||
|
||||
gUnknown_3003F20: @ 3003F20
|
||||
gLinkStatus: @ 3003F20
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3003F24: @ 3003F24
|
||||
@@ -63,13 +57,13 @@ gSuppressLinkErrorMessage: @ 3003F38
|
||||
gWirelessCommType: @ 3003F3C
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3003F40: @ 3003F40
|
||||
gSavedLinkPlayerCount: @ 3003F40
|
||||
.space 0x10
|
||||
|
||||
gSendCmd: @ 3003F50
|
||||
.space 0x10
|
||||
|
||||
gUnknown_3003F60: @ 3003F60
|
||||
gSavedMultiplayerId: @ 3003F60
|
||||
.space 0x4
|
||||
|
||||
gReceivedRemoteLinkPlayers: @ 3003F64
|
||||
@@ -87,22 +81,19 @@ gShouldAdvanceLinkState: @ 3003F84
|
||||
gLinkTestBlockChecksums: @ 3003F88
|
||||
.space 0x8
|
||||
|
||||
gUnknown_3003F90: @ 3003F90
|
||||
gBlockRequestType: @ 3003F90
|
||||
.space 0x10
|
||||
|
||||
gUnknown_3003FA0: @ 3003FA0
|
||||
gLastSendQueueCount: @ 3003FA0
|
||||
.space 0x10
|
||||
|
||||
gUnknown_3003FB0: @ 3003FB0
|
||||
gLink: @ 3003FB0
|
||||
.space 0xFC0
|
||||
|
||||
gLastRecvQueueCount: @ 3004F70
|
||||
.space 0x4
|
||||
|
||||
gSioMlt_Recv: @ 3003FB4
|
||||
.space 0xFBC
|
||||
|
||||
gUnknown_3004F70: @ 3004F70
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3004F74: @ 3004F74
|
||||
gLinkSavedIme: @ 3004F74
|
||||
.space 0xC
|
||||
|
||||
gPreBattleCallback1: @ 3004F80
|
||||
@@ -151,7 +142,7 @@ gFieldCallback: @ 3005020
|
||||
gFieldCallback2: @ 3005024
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3005028: @ 3005028
|
||||
gHeldKeyCodeToSend: @ 3005028
|
||||
.space 0x4
|
||||
|
||||
gUnknown_300502C: @ 300502C
|
||||
|
||||
Reference in New Issue
Block a user