mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-13 15:13:42 +01:00
Reformat mevent server and client scripts
This commit is contained in:
parent
03badd9c40
commit
6c12d154e7
@ -1,373 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start mevent_srv_sub_recv
|
|
||||||
mevent_srv_sub_recv: @ 801D8C0
|
|
||||||
push {lr}
|
|
||||||
ldr r1, [r0, 0x20]
|
|
||||||
bl _call_via_r1
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end mevent_srv_sub_recv
|
|
||||||
|
|
||||||
thumb_func_start mevent_srv_sub_send
|
|
||||||
mevent_srv_sub_send: @ 801D8CC
|
|
||||||
push {lr}
|
|
||||||
ldr r1, [r0, 0x24]
|
|
||||||
bl _call_via_r1
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end mevent_srv_sub_send
|
|
||||||
|
|
||||||
thumb_func_start mevent_srv_sub_init
|
|
||||||
mevent_srv_sub_init: @ 801D8D8
|
|
||||||
movs r3, 0
|
|
||||||
strb r1, [r0, 0x4]
|
|
||||||
strb r2, [r0, 0x5]
|
|
||||||
str r3, [r0]
|
|
||||||
strh r3, [r0, 0x12]
|
|
||||||
strh r3, [r0, 0x14]
|
|
||||||
strh r3, [r0, 0x10]
|
|
||||||
strh r3, [r0, 0xA]
|
|
||||||
strh r3, [r0, 0xC]
|
|
||||||
strh r3, [r0, 0x8]
|
|
||||||
str r3, [r0, 0x1C]
|
|
||||||
str r3, [r0, 0x18]
|
|
||||||
ldr r1, =sub_801DA5C
|
|
||||||
str r1, [r0, 0x24]
|
|
||||||
ldr r1, =sub_801D988
|
|
||||||
str r1, [r0, 0x20]
|
|
||||||
bx lr
|
|
||||||
.pool
|
|
||||||
thumb_func_end mevent_srv_sub_init
|
|
||||||
|
|
||||||
thumb_func_start mevent_srv_sub_init_send
|
|
||||||
mevent_srv_sub_init_send: @ 801D904
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r4]
|
|
||||||
strh r1, [r4, 0xE]
|
|
||||||
strh r0, [r4, 0x10]
|
|
||||||
strh r0, [r4, 0x12]
|
|
||||||
cmp r3, 0
|
|
||||||
beq _0801D91A
|
|
||||||
strh r3, [r4, 0x14]
|
|
||||||
b _0801D920
|
|
||||||
_0801D91A:
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 3
|
|
||||||
strh r0, [r4, 0x14]
|
|
||||||
_0801D920:
|
|
||||||
str r2, [r4, 0x1C]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end mevent_srv_sub_init_send
|
|
||||||
|
|
||||||
thumb_func_start mevent_srv_sub_init_recv
|
|
||||||
mevent_srv_sub_init_recv: @ 801D928
|
|
||||||
movs r3, 0
|
|
||||||
str r3, [r0]
|
|
||||||
strh r1, [r0, 0x6]
|
|
||||||
strh r3, [r0, 0x8]
|
|
||||||
strh r3, [r0, 0xA]
|
|
||||||
strh r3, [r0, 0xC]
|
|
||||||
str r2, [r0, 0x18]
|
|
||||||
bx lr
|
|
||||||
thumb_func_end mevent_srv_sub_init_recv
|
|
||||||
|
|
||||||
thumb_func_start sub_801D938
|
|
||||||
sub_801D938: @ 801D938
|
|
||||||
push {lr}
|
|
||||||
adds r3, r0, 0
|
|
||||||
adds r0, r1, 0
|
|
||||||
lsls r3, 8
|
|
||||||
ldr r1, =gBlockRecvBuffer
|
|
||||||
adds r3, r1
|
|
||||||
adds r1, r3, 0
|
|
||||||
bl memcpy
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_801D938
|
|
||||||
|
|
||||||
thumb_func_start sub_801D954
|
|
||||||
sub_801D954: @ 801D954
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
bl GetBlockReceivedStatus
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
asrs r0, r4
|
|
||||||
movs r1, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0801D96E
|
|
||||||
movs r0, 0
|
|
||||||
b _0801D970
|
|
||||||
_0801D96E:
|
|
||||||
movs r0, 0x1
|
|
||||||
_0801D970:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_801D954
|
|
||||||
|
|
||||||
thumb_func_start sub_801D978
|
|
||||||
sub_801D978: @ 801D978
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bl ResetBlockReceivedFlag
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_801D978
|
|
||||||
|
|
||||||
thumb_func_start sub_801D988
|
|
||||||
sub_801D988: @ 801D988
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
adds r5, r0, 0
|
|
||||||
ldr r6, [r5]
|
|
||||||
cmp r6, 0x1
|
|
||||||
beq _0801D9EC
|
|
||||||
cmp r6, 0x1
|
|
||||||
bgt _0801D99E
|
|
||||||
cmp r6, 0
|
|
||||||
beq _0801D9A4
|
|
||||||
b _0801DA52
|
|
||||||
_0801D99E:
|
|
||||||
cmp r6, 0x2
|
|
||||||
beq _0801DA38
|
|
||||||
b _0801DA52
|
|
||||||
_0801D9A4:
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
bl sub_801D954
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DA52
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
mov r4, sp
|
|
||||||
mov r1, sp
|
|
||||||
movs r2, 0x8
|
|
||||||
bl sub_801D938
|
|
||||||
ldrh r1, [r4, 0x4]
|
|
||||||
strh r1, [r5, 0xC]
|
|
||||||
ldrh r0, [r4, 0x2]
|
|
||||||
strh r0, [r5, 0xA]
|
|
||||||
lsls r1, 16
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 19
|
|
||||||
cmp r1, r0
|
|
||||||
bls _0801D9D2
|
|
||||||
_0801D9CC:
|
|
||||||
bl sub_8010198
|
|
||||||
b _0801DA52
|
|
||||||
_0801D9D2:
|
|
||||||
mov r1, sp
|
|
||||||
ldrh r0, [r5, 0x6]
|
|
||||||
ldrh r1, [r1]
|
|
||||||
cmp r0, r1
|
|
||||||
bne _0801D9CC
|
|
||||||
strh r6, [r5, 0x8]
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
bl sub_801D978
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x1
|
|
||||||
str r0, [r5]
|
|
||||||
b _0801DA52
|
|
||||||
_0801D9EC:
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
bl sub_801D954
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DA52
|
|
||||||
ldrh r0, [r5, 0x8]
|
|
||||||
lsls r1, r0, 6
|
|
||||||
subs r1, r0
|
|
||||||
lsls r3, r1, 2
|
|
||||||
ldrh r0, [r5, 0xC]
|
|
||||||
subs r2, r0, r3
|
|
||||||
cmp r2, 0xFC
|
|
||||||
bhi _0801DA1E
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
ldr r1, [r5, 0x18]
|
|
||||||
adds r1, r3
|
|
||||||
bl sub_801D938
|
|
||||||
ldrh r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r5, 0x8]
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, 0x1
|
|
||||||
str r0, [r5]
|
|
||||||
b _0801DA30
|
|
||||||
_0801DA1E:
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
ldr r1, [r5, 0x18]
|
|
||||||
adds r1, r3
|
|
||||||
movs r2, 0xFC
|
|
||||||
bl sub_801D938
|
|
||||||
ldrh r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r5, 0x8]
|
|
||||||
_0801DA30:
|
|
||||||
ldrb r0, [r5, 0x5]
|
|
||||||
bl sub_801D978
|
|
||||||
b _0801DA52
|
|
||||||
_0801DA38:
|
|
||||||
ldr r0, [r5, 0x18]
|
|
||||||
ldrh r1, [r5, 0xC]
|
|
||||||
bl CalcCRC16WithTable
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
ldrh r1, [r5, 0xA]
|
|
||||||
cmp r0, r1
|
|
||||||
bne _0801D9CC
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r5]
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0801DA54
|
|
||||||
_0801DA52:
|
|
||||||
movs r0, 0
|
|
||||||
_0801DA54:
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_801D988
|
|
||||||
|
|
||||||
thumb_func_start sub_801DA5C
|
|
||||||
sub_801DA5C: @ 801DA5C
|
|
||||||
push {r4,r5,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldr r5, [r4]
|
|
||||||
cmp r5, 0x1
|
|
||||||
beq _0801DAC8
|
|
||||||
cmp r5, 0x1
|
|
||||||
bgt _0801DA72
|
|
||||||
cmp r5, 0
|
|
||||||
beq _0801DA7C
|
|
||||||
b _0801DB5E
|
|
||||||
_0801DA72:
|
|
||||||
cmp r5, 0x2
|
|
||||||
beq _0801DB1C
|
|
||||||
cmp r5, 0x3
|
|
||||||
beq _0801DB46
|
|
||||||
b _0801DB5E
|
|
||||||
_0801DA7C:
|
|
||||||
bl IsLinkTaskFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DB5E
|
|
||||||
ldrh r1, [r4, 0xE]
|
|
||||||
ldr r2, =0xffff0000
|
|
||||||
ldr r0, [sp]
|
|
||||||
ands r0, r2
|
|
||||||
orrs r0, r1
|
|
||||||
str r0, [sp]
|
|
||||||
ldrh r1, [r4, 0x14]
|
|
||||||
ldr r0, [sp, 0x4]
|
|
||||||
ands r0, r2
|
|
||||||
orrs r0, r1
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
ldr r0, [r4, 0x1C]
|
|
||||||
bl CalcCRC16WithTable
|
|
||||||
lsls r0, 16
|
|
||||||
ldr r2, =0x0000ffff
|
|
||||||
ldr r1, [sp]
|
|
||||||
ands r1, r2
|
|
||||||
orrs r1, r0
|
|
||||||
str r1, [sp]
|
|
||||||
lsrs r1, 16
|
|
||||||
strh r1, [r4, 0x12]
|
|
||||||
strh r5, [r4, 0x10]
|
|
||||||
movs r0, 0
|
|
||||||
mov r1, sp
|
|
||||||
movs r2, 0x8
|
|
||||||
bl SendBlock
|
|
||||||
b _0801DB3E
|
|
||||||
.pool
|
|
||||||
_0801DAC8:
|
|
||||||
bl IsLinkTaskFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DB5E
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
bl sub_801D954
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DB5E
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
bl sub_801D978
|
|
||||||
ldrh r1, [r4, 0x10]
|
|
||||||
lsls r0, r1, 6
|
|
||||||
subs r0, r1
|
|
||||||
lsls r3, r0, 2
|
|
||||||
ldrh r0, [r4, 0x14]
|
|
||||||
subs r0, r3
|
|
||||||
cmp r0, 0xFC
|
|
||||||
bhi _0801DB08
|
|
||||||
ldr r1, [r4, 0x1C]
|
|
||||||
adds r1, r3
|
|
||||||
lsls r2, r0, 16
|
|
||||||
lsrs r2, 16
|
|
||||||
movs r0, 0
|
|
||||||
bl SendBlock
|
|
||||||
ldrh r0, [r4, 0x10]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r4, 0x10]
|
|
||||||
b _0801DB3E
|
|
||||||
_0801DB08:
|
|
||||||
ldr r1, [r4, 0x1C]
|
|
||||||
adds r1, r3
|
|
||||||
movs r0, 0
|
|
||||||
movs r2, 0xFC
|
|
||||||
bl SendBlock
|
|
||||||
ldrh r0, [r4, 0x10]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r4, 0x10]
|
|
||||||
b _0801DB5E
|
|
||||||
_0801DB1C:
|
|
||||||
bl IsLinkTaskFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DB5E
|
|
||||||
ldr r0, [r4, 0x1C]
|
|
||||||
ldrh r1, [r4, 0x14]
|
|
||||||
bl CalcCRC16WithTable
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
ldrh r1, [r4, 0x12]
|
|
||||||
cmp r0, r1
|
|
||||||
beq _0801DB3E
|
|
||||||
bl sub_8010198
|
|
||||||
b _0801DB5E
|
|
||||||
_0801DB3E:
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, 0x1
|
|
||||||
str r0, [r4]
|
|
||||||
b _0801DB5E
|
|
||||||
_0801DB46:
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
bl sub_801D954
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0801DB5E
|
|
||||||
ldrb r0, [r4, 0x4]
|
|
||||||
bl sub_801D978
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r4]
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0801DB60
|
|
||||||
_0801DB5E:
|
|
||||||
movs r0, 0
|
|
||||||
_0801DB60:
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_801DA5C
|
|
||||||
|
|
||||||
.align 2, 0 @ don't pad with nop
|
|
@ -9,265 +9,185 @@ gText_CanceledReadingCard:: @ 82F257C
|
|||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2598:: @ 82F2598
|
gUnknown_082F2598:: @ 82F2598
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 2, 16
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 4, 0
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F25A8:: @ 82F25A8
|
gUnknown_082F25A8:: @ 82F25A8
|
||||||
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 8, 0
|
||||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 3, 0
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 2, 16
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 4, 0
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F25C8:: @ 82F25C8
|
gUnknown_082F25C8:: @ 82F25C8
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00
|
.4byte 1, 10
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F25D8:: @ 82F25D8
|
gUnknown_082F25D8:: @ 82F25D8
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00
|
.4byte 1, 11
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F25E8:: @ 82F25E8
|
gUnknown_082F25E8:: @ 82F25E8
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 1, 0
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F25F8:: @ 82F25F8
|
gUnknown_082F25F8:: @ 82F25F8
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00
|
.4byte 2, 22
|
||||||
.byte 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 10, 0
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00
|
.4byte 2, 25
|
||||||
.byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 17, 0
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
.4byte 1, 2
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2628:: @ 82F2628
|
gUnknown_082F2628:: @ 82F2628
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00
|
.4byte 2, 23
|
||||||
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 9, 0
|
||||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 3, 0
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 2, 16
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 4, 0
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2650:: @ 82F2650
|
gUnknown_082F2650:: @ 82F2650
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
|
.4byte 1, 7
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2660:: @ 82F2660
|
gUnknown_082F2660:: @ 82F2660
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
.4byte 1, 3
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2670:: @ 82F2670
|
gUnknown_082F2670:: @ 82F2670
|
||||||
.byte 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 13, 0
|
||||||
.byte 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 14, 0
|
||||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 3, 0
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 2, 16
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 4, 0
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2698:: @ 82F2698
|
gUnknown_082F2698:: @ 82F2698
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00
|
.4byte 1, 9
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F26A8:: @ 82F26A8
|
gUnknown_082F26A8:: @ 82F26A8
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
.4byte 1, 5
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F26B8:: @ 82F26B8
|
gUnknown_082F26B8:: @ 82F26B8
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
|
.4byte 2, 21
|
||||||
.byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 12, 0
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00
|
.4byte 1, 14
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
|
.4byte 2, 21
|
||||||
.byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 12, 0
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 20, 0
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00
|
.4byte 1, 13
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F26F8:: @ 82F26F8
|
gUnknown_082F26F8:: @ 82F26F8
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F25C8
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F25C8
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
.4byte 0, 0x0a, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F25D8
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 0, 0x0b, NULL
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F2698
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F25D8
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
.4byte 0, 0x09, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F2698
|
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2788:: @ 82F2788
|
gUnknown_082F2788:: @ 82F2788
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
.4byte 18, 0x20, gUnknown_082F26B8
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F26B8
|
.4byte 20, 0x1b, gText_CanceledReadingCard
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00
|
.4byte 0, 0x09, NULL
|
||||||
|
|
||||||
.4byte gText_CanceledReadingCard
|
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F27D0:: @ 82F27D0
|
gUnknown_082F27D0:: @ 82F27D0
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F2650
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F2650
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
.4byte 0, 0x07, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2800:: @ 82F2800
|
gUnknown_082F2800:: @ 82F2800
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
|
.4byte 18, 0x28, gUnknown_082F2628
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F2628
|
.4byte 14, 0x00, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 2, 0x13, NULL
|
||||||
.byte 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 8, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
.4byte 4, 0x01, gUnknown_082F27D0
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F2660
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 0, 0x03, NULL
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F27D0
|
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F2660
|
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F2884:: @ 82F2884
|
gUnknown_082F2884:: @ 82F2884
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
.4byte 18, 0x30, gUnknown_082F25F8
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F25F8
|
.4byte 13, 0x00, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00
|
.4byte 15, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00
|
.4byte 0, 0x02, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F28E4:: @ 82F28E4
|
gUnknown_082F28E4:: @ 82F28E4
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
|
.4byte 18, 0x28, gUnknown_082F2670
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F2670
|
.4byte 2, 0x13, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 8, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
.4byte 4, 0x00, gUnknown_082F2884
|
||||||
.byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 3, 0x00, gUnknown_082F2788
|
||||||
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F2884
|
|
||||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F2788
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gUnknown_082F292C:: @ 82F292C
|
gUnknown_082F292C:: @ 82F292C
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F26A8
|
||||||
|
.4byte 1, 0x00, NULL
|
||||||
.4byte gUnknown_082F26A8
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 0, 0x05, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
.4byte 18, 0x10, gUnknown_082F25E8
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
.4byte 2, 0x14, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00
|
.4byte 0, 0x00, NULL
|
||||||
.byte 0x10, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F25E8
|
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
s_mevent_wonder_news:: @ 82F298C
|
s_mevent_wonder_news:: @ 82F298C
|
||||||
.byte 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 27, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00
|
.4byte 18, 0x20, gUnknown_082F25A8
|
||||||
.byte 0x20, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
|
.4byte 2, 0x11, NULL
|
||||||
.4byte gUnknown_082F25A8
|
.4byte 5, 0x00, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 30, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
.4byte 4, 0x00, gUnknown_082F26F8
|
||||||
.byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 3, 0x00, gUnknown_082F2800
|
||||||
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F26F8
|
|
||||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F2800
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
s_mevent_wonder_card:: @ 82F29EC
|
s_mevent_wonder_card:: @ 82F29EC
|
||||||
.byte 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 26, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00
|
.4byte 28, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 18, 0x20, gUnknown_082F25A8
|
||||||
.byte 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
.4byte 1, 0x00, NULL
|
||||||
|
.4byte 2, 0x11, NULL
|
||||||
.4byte gUnknown_082F25A8
|
.4byte 5, 0x00, NULL
|
||||||
.byte 0x01, 0x00, 0x00, 0x00
|
.4byte 6, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 4, 0x00, gUnknown_082F26F8
|
||||||
.byte 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00
|
.4byte 7, 0x00, NULL
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
.4byte 4, 0x02, gUnknown_082F28E4
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 4, 0x00, gUnknown_082F2884
|
||||||
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
.4byte 3, 0x00, gUnknown_082F292C
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F26F8
|
|
||||||
.byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
||||||
.byte 0x02, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F28E4
|
|
||||||
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F2884
|
|
||||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
||||||
|
|
||||||
.4byte gUnknown_082F292C
|
|
||||||
|
@ -10,8 +10,8 @@ u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
|
|||||||
void StoreWordInTwoHalfwords(u16 *, u32);
|
void StoreWordInTwoHalfwords(u16 *, u32);
|
||||||
void LoadWordFromTwoHalfwords(u16 *, u32 *);
|
void LoadWordFromTwoHalfwords(u16 *, u32 *);
|
||||||
int CountTrailingZeroBits(u32 value);
|
int CountTrailingZeroBits(u32 value);
|
||||||
u16 CalcCRC16(u8 *data, s32 length);
|
u16 CalcCRC16(const u8 *data, s32 length);
|
||||||
u16 CalcCRC16WithTable(u8 *data, u32 length);
|
u16 CalcCRC16WithTable(const u8 *data, u32 length);
|
||||||
u32 CalcByteArraySum(const u8* data, u32 length);
|
u32 CalcByteArraySum(const u8* data, u32 length);
|
||||||
void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
|
void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
|
||||||
void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha);
|
void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha);
|
||||||
|
@ -62,7 +62,7 @@ SECTIONS {
|
|||||||
src/mevent_801BAAC.o(.text);
|
src/mevent_801BAAC.o(.text);
|
||||||
src/mevent_server.o(.text);
|
src/mevent_server.o(.text);
|
||||||
src/mevent_server_ish.o(.text);
|
src/mevent_server_ish.o(.text);
|
||||||
asm/mevent_server_helpers.o(.text);
|
src/mevent_server_helpers.o(.text);
|
||||||
src/mevent_news.o(.text);
|
src/mevent_news.o(.text);
|
||||||
src/union_room_chat.o(.text);
|
src/union_room_chat.o(.text);
|
||||||
src/berry_crush.o(.text);
|
src/berry_crush.o(.text);
|
||||||
|
@ -1 +1,211 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "alloc.h"
|
||||||
|
#include "decompress.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "link.h"
|
||||||
|
#include "link_rfu.h"
|
||||||
|
#include "overworld.h"
|
||||||
|
#include "script.h"
|
||||||
|
#include "battle_tower.h"
|
||||||
|
#include "mystery_event_script.h"
|
||||||
|
#include "mevent.h"
|
||||||
|
#include "mevent_server_helpers.h"
|
||||||
|
|
||||||
|
static u32 mevent_receive_func(struct mevent_srv_sub *);
|
||||||
|
static u32 mevent_send_func(struct mevent_srv_sub *);
|
||||||
|
|
||||||
|
u32 mevent_srv_sub_recv(struct mevent_srv_sub * svr)
|
||||||
|
{
|
||||||
|
return svr->recvFunc(svr);
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 mevent_srv_sub_send(struct mevent_srv_sub * svr)
|
||||||
|
{
|
||||||
|
return svr->sendFunc(svr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recvPlayerNo)
|
||||||
|
{
|
||||||
|
svr->sendPlayerNo = sendPlayerNo;
|
||||||
|
svr->recvPlayerNo = recvPlayerNo;
|
||||||
|
svr->seqno = 0;
|
||||||
|
svr->sendCRC = 0;
|
||||||
|
svr->sendSize = 0;
|
||||||
|
svr->sendCounter = 0;
|
||||||
|
svr->recvCRC = 0;
|
||||||
|
svr->recvSize = 0;
|
||||||
|
svr->recvCounter = 0;
|
||||||
|
svr->sendBfr = NULL;
|
||||||
|
svr->recvBfr = NULL;
|
||||||
|
svr->sendFunc = mevent_send_func;
|
||||||
|
svr->recvFunc = mevent_receive_func;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size)
|
||||||
|
{
|
||||||
|
svr->seqno = 0;
|
||||||
|
svr->sendIdent = ident;
|
||||||
|
svr->sendCounter = 0;
|
||||||
|
svr->sendCRC = 0;
|
||||||
|
if (size != 0)
|
||||||
|
svr->sendSize = size;
|
||||||
|
else
|
||||||
|
svr->sendSize = ME_SEND_BUF_SIZE;
|
||||||
|
svr->sendBfr = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest)
|
||||||
|
{
|
||||||
|
svr->seqno = 0;
|
||||||
|
svr->recvIdent = ident;
|
||||||
|
svr->recvCounter = 0;
|
||||||
|
svr->recvCRC = 0;
|
||||||
|
svr->recvSize = 0;
|
||||||
|
svr->recvBfr = dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void mevent_recv_block(u32 recv_idx, void * dest, size_t size)
|
||||||
|
{
|
||||||
|
memcpy(dest, gBlockRecvBuffer[recv_idx], size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool32 mevent_has_received(u32 recv_idx)
|
||||||
|
{
|
||||||
|
if ((GetBlockReceivedStatus() >> recv_idx) & 1)
|
||||||
|
return TRUE;
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void mevent_reset_recv(u32 recv_idx)
|
||||||
|
{
|
||||||
|
ResetBlockReceivedFlag(recv_idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool32 mevent_receive_func(struct mevent_srv_sub * svr)
|
||||||
|
{
|
||||||
|
struct send_recv_header header;
|
||||||
|
|
||||||
|
switch (svr->seqno)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (mevent_has_received(svr->recvPlayerNo))
|
||||||
|
{
|
||||||
|
mevent_recv_block(svr->recvPlayerNo, &header, sizeof(header));
|
||||||
|
svr->recvSize = header.size;
|
||||||
|
svr->recvCRC = header.crc;
|
||||||
|
if (svr->recvSize > ME_SEND_BUF_SIZE)
|
||||||
|
{
|
||||||
|
sub_8010198();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else if (svr->recvIdent != header.ident)
|
||||||
|
{
|
||||||
|
sub_8010198();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
svr->recvCounter = 0;
|
||||||
|
mevent_reset_recv(svr->recvPlayerNo);
|
||||||
|
++svr->seqno;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (mevent_has_received(svr->recvPlayerNo))
|
||||||
|
{
|
||||||
|
size_t blocksiz = svr->recvCounter * 252;
|
||||||
|
if (svr->recvSize - blocksiz <= 252)
|
||||||
|
{
|
||||||
|
mevent_recv_block(svr->recvPlayerNo, svr->recvBfr + blocksiz, svr->recvSize - blocksiz);
|
||||||
|
++svr->recvCounter;
|
||||||
|
++svr->seqno;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mevent_recv_block(svr->recvPlayerNo, svr->recvBfr + blocksiz, 252);
|
||||||
|
++svr->recvCounter;
|
||||||
|
}
|
||||||
|
mevent_reset_recv(svr->recvPlayerNo);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (CalcCRC16WithTable(svr->recvBfr, svr->recvSize) != svr->recvCRC)
|
||||||
|
{
|
||||||
|
sub_8010198();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
svr->seqno = 0;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool32 mevent_send_func(struct mevent_srv_sub * svr)
|
||||||
|
{
|
||||||
|
struct send_recv_header header;
|
||||||
|
|
||||||
|
switch (svr->seqno)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (IsLinkTaskFinished())
|
||||||
|
{
|
||||||
|
header.ident = svr->sendIdent;
|
||||||
|
header.size = svr->sendSize;
|
||||||
|
header.crc = CalcCRC16WithTable(svr->sendBfr, svr->sendSize);
|
||||||
|
svr->sendCRC = header.crc;
|
||||||
|
svr->sendCounter = 0;
|
||||||
|
SendBlock(0, &header, sizeof(header));
|
||||||
|
++svr->seqno;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (IsLinkTaskFinished())
|
||||||
|
{
|
||||||
|
if (mevent_has_received(svr->sendPlayerNo))
|
||||||
|
{
|
||||||
|
size_t blocksiz;
|
||||||
|
mevent_reset_recv(svr->sendPlayerNo);
|
||||||
|
blocksiz = 252 * svr->sendCounter;
|
||||||
|
if (svr->sendSize - blocksiz <= 252)
|
||||||
|
{
|
||||||
|
SendBlock(0, svr->sendBfr + blocksiz, svr->sendSize - blocksiz);
|
||||||
|
++svr->sendCounter;
|
||||||
|
++svr->seqno;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendBlock(0, svr->sendBfr + blocksiz, 252);
|
||||||
|
++svr->sendCounter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (IsLinkTaskFinished())
|
||||||
|
{
|
||||||
|
if (CalcCRC16WithTable(svr->sendBfr, svr->sendSize) != svr->sendCRC)
|
||||||
|
sub_8010198();
|
||||||
|
else
|
||||||
|
++svr->seqno;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (mevent_has_received(svr->sendPlayerNo))
|
||||||
|
{
|
||||||
|
mevent_reset_recv(svr->sendPlayerNo);
|
||||||
|
svr->seqno = 0;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
@ -14,9 +14,7 @@ static void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32);
|
|||||||
static u32 mevent_srv_ish_exec(struct mevent_srv_ish *);
|
static u32 mevent_srv_ish_exec(struct mevent_srv_ish *);
|
||||||
static void mevent_srv_ish_free_resources(struct mevent_srv_ish *);
|
static void mevent_srv_ish_free_resources(struct mevent_srv_ish *);
|
||||||
|
|
||||||
extern const u8 gUnknown_082F2598[];
|
extern const struct mevent_cmd_ish gUnknown_082F2598[];
|
||||||
extern const struct mevent_cmd gUnknown_8468B6C[];
|
|
||||||
extern const struct mevent_cmd gUnknown_8468BCC[];
|
|
||||||
|
|
||||||
void mevent_srv_ish_do_init(u32 arg)
|
void mevent_srv_ish_do_init(u32 arg)
|
||||||
{
|
{
|
||||||
|
@ -218,7 +218,7 @@ int CountTrailingZeroBits(u32 value)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 CalcCRC16(u8 *data, s32 length)
|
u16 CalcCRC16(const u8 *data, s32 length)
|
||||||
{
|
{
|
||||||
u16 i, j;
|
u16 i, j;
|
||||||
u16 crc = 0x1121;
|
u16 crc = 0x1121;
|
||||||
@ -237,7 +237,7 @@ u16 CalcCRC16(u8 *data, s32 length)
|
|||||||
return ~crc;
|
return ~crc;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 CalcCRC16WithTable(u8 *data, u32 length)
|
u16 CalcCRC16WithTable(const u8 *data, u32 length)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
u16 crc = 0x1121;
|
u16 crc = 0x1121;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user