Merge branch 'master' of https://github.com/pret/pokeemerald into decompile_item_menu

This commit is contained in:
golem galvanize
2018-02-12 14:00:47 -05:00
130 changed files with 17694 additions and 29503 deletions
+6 -6
View File
@@ -1591,7 +1591,7 @@ _0818F7E8:
lsrs r1, 16 lsrs r1, 16
ldr r0, [sp, 0x18] ldr r0, [sp, 0x18]
movs r2, 0x1 movs r2, 0x1
bl nature_stat_mod bl ModifyStatByNature
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r1, r8 mov r1, r8
@@ -1618,7 +1618,7 @@ _0818F820:
lsrs r1, 16 lsrs r1, 16
ldr r0, [sp, 0x18] ldr r0, [sp, 0x18]
movs r2, 0x2 movs r2, 0x2
bl nature_stat_mod bl ModifyStatByNature
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r1, r8 mov r1, r8
@@ -1645,7 +1645,7 @@ _0818F858:
lsrs r1, 16 lsrs r1, 16
ldr r0, [sp, 0x18] ldr r0, [sp, 0x18]
movs r2, 0x3 movs r2, 0x3
bl nature_stat_mod bl ModifyStatByNature
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r1, r8 mov r1, r8
@@ -1672,7 +1672,7 @@ _0818F890:
lsrs r1, 16 lsrs r1, 16
ldr r0, [sp, 0x18] ldr r0, [sp, 0x18]
movs r2, 0x4 movs r2, 0x4
bl nature_stat_mod bl ModifyStatByNature
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r1, r8 mov r1, r8
@@ -1699,7 +1699,7 @@ _0818F8C8:
lsrs r1, 16 lsrs r1, 16
ldr r0, [sp, 0x18] ldr r0, [sp, 0x18]
movs r2, 0x5 movs r2, 0x5
bl nature_stat_mod bl ModifyStatByNature
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
mov r1, r8 mov r1, r8
@@ -1941,7 +1941,7 @@ sub_818FA74: @ 818FA74
str r4, [sp, 0x4] str r4, [sp, 0x4]
ldr r7, [sp, 0x14] ldr r7, [sp, 0x14]
str r7, [sp, 0x8] str r7, [sp, 0x8]
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
add r0, sp, 0xC add r0, sp, 0xC
movs r1, 0x1 movs r1, 0x1
negs r1, r1 negs r1, r1
+3 -3
View File
@@ -1960,7 +1960,7 @@ _0819B572:
mov r2, r9 mov r2, r9
str r2, [sp, 0x8] str r2, [sp, 0x8]
ldr r2, [sp, 0x14] ldr r2, [sp, 0x14]
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
movs r1, 0 movs r1, 0
add r0, sp, 0xC add r0, sp, 0xC
strb r1, [r0] strb r1, [r0]
@@ -2103,7 +2103,7 @@ _0819B678:
mov r2, r10 mov r2, r10
str r2, [sp, 0x8] str r2, [sp, 0x8]
movs r2, 0x1E movs r2, 0x1E
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
add r0, sp, 0xC add r0, sp, 0xC
movs r3, 0 movs r3, 0
strb r3, [r0] strb r3, [r0]
@@ -23864,7 +23864,7 @@ _081A6E0C:
ldr r4, [sp, 0x28] ldr r4, [sp, 0x28]
str r4, [sp, 0x8] str r4, [sp, 0x8]
lsrs r2, 24 lsrs r2, 24
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
add r0, sp, 0x1C add r0, sp, 0x1C
movs r7, 0 movs r7, 0
strb r7, [r0] strb r7, [r0]
+7 -7
View File
@@ -2351,7 +2351,7 @@ _08163368:
ldr r2, [sp, 0x30] ldr r2, [sp, 0x30]
str r2, [sp, 0x8] str r2, [sp, 0x8]
ldr r2, [sp, 0x20] ldr r2, [sp, 0x20]
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
movs r0, 0xFF movs r0, 0xFF
mov r6, sp mov r6, sp
strb r0, [r6, 0x14] strb r0, [r6, 0x14]
@@ -2775,7 +2775,7 @@ _081636CE:
str r2, [sp, 0x8] str r2, [sp, 0x8]
ldr r2, [sp, 0x14] ldr r2, [sp, 0x14]
mov r3, r10 mov r3, r10
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
movs r1, 0 movs r1, 0
add r0, sp, 0xC add r0, sp, 0xC
strb r1, [r0] strb r1, [r0]
@@ -2894,7 +2894,7 @@ _081637D0:
mov r2, r9 mov r2, r9
str r2, [sp, 0x8] str r2, [sp, 0x8]
movs r2, 0x1E movs r2, 0x1E
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
movs r1, 0 movs r1, 0
add r0, sp, 0xC add r0, sp, 0xC
strb r1, [r0] strb r1, [r0]
@@ -5264,7 +5264,7 @@ _08164D14:
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08164DB0 beq _08164DB0
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _08164DB0 bne _08164DB0
@@ -5302,7 +5302,7 @@ _08164DB6:
thumb_func_start sub_8164DCC thumb_func_start sub_8164DCC
sub_8164DCC: @ 8164DCC sub_8164DCC: @ 8164DCC
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08164DDA beq _08164DDA
@@ -6289,7 +6289,7 @@ _081655A6:
str r3, [sp, 0x8] str r3, [sp, 0x8]
lsrs r2, 24 lsrs r2, 24
mov r3, r12 mov r3, r12
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
movs r0, 0xFF movs r0, 0xFF
str r0, [sp, 0x48] str r0, [sp, 0x48]
movs r0, 0 movs r0, 0
@@ -7550,7 +7550,7 @@ _08165FDA:
ldr r2, [sp, 0x2C] ldr r2, [sp, 0x2C]
str r2, [sp, 0x8] str r2, [sp, 0x8]
ldr r2, [sp, 0x20] ldr r2, [sp, 0x20]
bl sub_8068634 bl CreateMonWithEVSpreadPersonalityOTID
add r1, sp, 0x14 add r1, sp, 0x14
movs r0, 0xFF movs r0, 0xFF
strb r0, [r1] strb r0, [r1]
+4 -4
View File
@@ -252,7 +252,7 @@ _0815226C:
ldrb r2, [r2] ldrb r2, [r2]
cmp r3, r2 cmp r3, r2
bcs _08152292 bcs _08152292
ldr r0, =gUnknown_030024F8 ldr r0, =gMain+0x238
mov r12, r0 mov r12, r0
ldr r4, =gDummyOamData ldr r4, =gDummyOamData
adds r2, r5, 0 adds r2, r5, 0
@@ -350,7 +350,7 @@ _08152322:
cmp r0, 0 cmp r0, 0
beq _08152348 beq _08152348
lsls r0, r6, 3 lsls r0, r6, 3
ldr r1, =gUnknown_030024F8 ldr r1, =gMain+0x238
adds r0, r1 adds r0, r1
ldr r1, =gDummyOamData ldr r1, =gDummyOamData
ldm r1!, {r2,r3} ldm r1!, {r2,r3}
@@ -412,7 +412,7 @@ _08152348:
orrs r0, r1 orrs r0, r1
strh r0, [r2, 0x4] strh r0, [r2, 0x4]
lsls r1, r6, 3 lsls r1, r6, 3
ldr r2, =gUnknown_030024F8 ldr r2, =gMain+0x238
ldr r0, [r4, 0x4] ldr r0, [r4, 0x4]
adds r1, r2 adds r1, r2
adds r0, r5, r0 adds r0, r5, r0
@@ -746,7 +746,7 @@ _081525FC:
orrs r0, r2 orrs r0, r2
strb r0, [r1, 0x19] strb r0, [r1, 0x19]
lsls r1, r5, 3 lsls r1, r5, 3
ldr r0, =gUnknown_030024F8 ldr r0, =gMain+0x238
adds r1, r0 adds r1, r0
ldr r0, =gDummyOamData ldr r0, =gDummyOamData
ldm r0!, {r2,r3} ldm r0!, {r2,r3}
+23 -23
View File
@@ -143,7 +143,7 @@ sub_80B2478: @ 80B2478
lsrs r0, 24 lsrs r0, 24
lsls r1, 24 lsls r1, 24
lsrs r1, 24 lsrs r1, 24
bl sub_800A0C8 bl GetLinkPlayerDataExchangeStatusTimed
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
subs r0, 0x1 subs r0, 0x1
@@ -205,7 +205,7 @@ sub_80B24F8: @ 80B24F8
push {r4,lr} push {r4,lr}
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
bl sub_800B33C bl HasLinkErrorOccurred
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -274,7 +274,7 @@ sub_80B2578: @ 80B2578
cmp r0, 0 cmp r0, 0
beq _080B258E beq _080B258E
movs r0, 0x1 movs r0, 0x1
bl sub_800B330 bl SetSuppressLinkErrorMessage
_080B258E: _080B258E:
ldr r0, =gMain ldr r0, =gMain
ldrh r1, [r0, 0x2E] ldrh r1, [r0, 0x2E]
@@ -309,7 +309,7 @@ sub_80B25CC: @ 80B25CC
push {r4,lr} push {r4,lr}
lsls r0, 24 lsls r0, 24
lsrs r4, r0, 24 lsrs r4, r0, 24
bl sub_800B2E8 bl GetSioMultiSI
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -374,9 +374,9 @@ sub_80B2634: @ 80B2634
ldrsh r2, [r4, r3] ldrsh r2, [r4, r3]
cmp r2, 0 cmp r2, 0
bne _080B266C bne _080B266C
bl sub_800A0AC bl OpenLinkTimed
bl sub_800AB98 bl sub_800AB98
bl sub_800A2BC bl ResetLinkPlayers
ldr r0, =gUnknown_08550594 ldr r0, =gUnknown_08550594
bl AddWindow bl AddWindow
strh r0, [r4, 0xA] strh r0, [r4, 0xA]
@@ -418,7 +418,7 @@ sub_80B2688: @ 80B2688
cmp r5, 0x1 cmp r5, 0x1
bls _080B26FC bls _080B26FC
movs r0, 0x1 movs r0, 0x1
bl sub_800B330 bl SetSuppressLinkErrorMessage
ldr r1, =gTasks ldr r1, =gTasks
lsls r0, r4, 2 lsls r0, r4, 2
adds r0, r4 adds r0, r4
@@ -1065,7 +1065,7 @@ _080B2C7E:
cmp r4, r0 cmp r4, r0
bcc _080B2C5C bcc _080B2C5C
movs r0, 0 movs r0, 0
bl sub_800B330 bl SetSuppressLinkErrorMessage
bl ResetBlockReceivedFlags bl ResetBlockReceivedFlags
ldr r0, =gSpecialVar_Result ldr r0, =gSpecialVar_Result
adds r1, r5, 0 adds r1, r5, 0
@@ -1611,7 +1611,7 @@ sub_80B3144: @ 80B3144
cmp r2, 0 cmp r2, 0
bne _080B3178 bne _080B3178
bl OpenLink bl OpenLink
bl sub_800A2BC bl ResetLinkPlayers
ldr r0, =task00_08081A90 ldr r0, =task00_08081A90
movs r1, 0x50 movs r1, 0x50
bl CreateTask bl CreateTask
@@ -1710,7 +1710,7 @@ sub_80B3220: @ 80B3220
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0x1 cmp r0, 0x1
bne _080B3248 bne _080B3248
bl sub_800A23C bl IsLinkPlayerDataExchangeComplete
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -1813,7 +1813,7 @@ _080B32F8:
ldr r2, =0x00002211 ldr r2, =0x00002211
adds r0, r2, 0 adds r0, r2, 0
strh r0, [r1] strh r0, [r1]
bl sub_8009FAC bl ClearLinkCallback_2
b _080B3346 b _080B3346
.pool .pool
_080B3318: _080B3318:
@@ -1926,7 +1926,7 @@ _080B3408:
ldr r2, =0x00002211 ldr r2, =0x00002211
adds r1, r2, 0 adds r1, r2, 0
strh r1, [r0] strh r1, [r0]
bl sub_8009FAC bl ClearLinkCallback_2
movs r0, 0x1 movs r0, 0x1
strh r0, [r6] strh r0, [r6]
b _080B3532 b _080B3532
@@ -1945,7 +1945,7 @@ _080B343A:
b _080B3532 b _080B3532
.pool .pool
_080B3444: _080B3444:
ldr r1, =gUnknown_020229CC ldr r1, =gLocalLinkPlayer
movs r0, 0 movs r0, 0
movs r2, 0x1C movs r2, 0x1C
bl SendBlock bl SendBlock
@@ -2172,7 +2172,7 @@ sub_80B360C: @ 80B360C
movs r5, 0x1 movs r5, 0x1
eors r0, r5 eors r0, r5
bl sub_813C2A0 bl sub_813C2A0
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080B36B2 beq _080B36B2
@@ -2400,7 +2400,7 @@ _080B382E:
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
bl FadeScreen bl FadeScreen
bl sub_8009FAC bl ClearLinkCallback_2
b _080B3864 b _080B3864
_080B3840: _080B3840:
ldr r0, =gPaletteFade ldr r0, =gPaletteFade
@@ -2512,7 +2512,7 @@ _080B391C:
thumb_func_start sub_80B3924 thumb_func_start sub_80B3924
sub_80B3924: @ 80B3924 sub_80B3924: @ 80B3924
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080B3940 beq _080B3940
@@ -2552,7 +2552,7 @@ sub_80B3968: @ 80B3968
ldr r2, =0x00002211 ldr r2, =0x00002211
adds r0, r2, 0 adds r0, r2, 0
strh r0, [r1] strh r0, [r1]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080B3994 beq _080B3994
@@ -2652,7 +2652,7 @@ task00_08081A90: @ 80B3A30
cmp r1, r0 cmp r1, r0
ble _080B3A62 ble _080B3A62
bl CloseLink bl CloseLink
ldr r0, =c2_800ACD4 ldr r0, =CB2_LinkError
bl SetMainCallback2 bl SetMainCallback2
adds r0, r4, 0 adds r0, r4, 0
bl DestroyTask bl DestroyTask
@@ -2661,7 +2661,7 @@ _080B3A62:
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080B3AA6 beq _080B3AA6
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _080B3AA0 bne _080B3AA0
@@ -2670,7 +2670,7 @@ _080B3A62:
cmp r0, 0 cmp r0, 0
bne _080B3A86 bne _080B3A86
bl CloseLink bl CloseLink
ldr r0, =c2_800ACD4 ldr r0, =CB2_LinkError
bl SetMainCallback2 bl SetMainCallback2
_080B3A86: _080B3A86:
adds r0, r4, 0 adds r0, r4, 0
@@ -2752,7 +2752,7 @@ _080B3B20:
beq _080B3B9E beq _080B3B9E
b _080B3BB8 b _080B3BB8
_080B3B2A: _080B3B2A:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080B3B40 beq _080B3B40
@@ -2808,7 +2808,7 @@ _080B3B9E:
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0x1 cmp r0, 0x1
bne _080B3BB8 bne _080B3BB8
bl sub_800A23C bl IsLinkPlayerDataExchangeComplete
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -2825,7 +2825,7 @@ _080B3BB8:
thumb_func_start sub_80B3BC4 thumb_func_start sub_80B3BC4
sub_80B3BC4: @ 80B3BC4 sub_80B3BC4: @ 80B3BC4
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _080B3BD6 bne _080B3BD6
+1 -1
View File
@@ -643,7 +643,7 @@ _080D7C04:
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0x8 movs r0, 0x8
movs r1, 0x8 movs r1, 0x8
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
_080D7C56: _080D7C56:
pop {r4-r6} pop {r4-r6}
pop {r0} pop {r0}
+2 -2
View File
@@ -2128,9 +2128,9 @@ sub_80F6AE8: @ 80F6AE8
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0x8 movs r0, 0x8
movs r1, 0x8 movs r1, 0x8
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
ldr r4, =gSprites ldr r4, =gSprites
ldr r0, =gUnknown_02022B10 ldr r0, =gWirelessStatusIndicatorSpriteId
ldrb r1, [r0] ldrb r1, [r0]
lsls r0, r1, 4 lsls r0, r1, 4
adds r0, r1 adds r0, r1
+1 -1
View File
@@ -147,7 +147,7 @@ sub_80FC5DC: @ 80FC5DC
ldr r1, =gUnknown_02039F2A ldr r1, =gUnknown_02039F2A
movs r0, 0x1 movs r0, 0x1
strb r0, [r1] strb r0, [r1]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0x1 cmp r0, 0x1
bne _080FC60C bne _080FC60C
+1 -1
View File
@@ -8987,7 +8987,7 @@ _080AF994:
beq _080AF9D0 beq _080AF9D0
b _080AF9E8 b _080AF9E8
_080AF99A: _080AF99A:
bl sub_8009FAC bl ClearLinkCallback_2
movs r0, 0x1 movs r0, 0x1
movs r1, 0 movs r1, 0
bl FadeScreen bl FadeScreen
+1 -1
View File
@@ -7126,7 +7126,7 @@ _0813B790:
b _0813B7C6 b _0813B7C6
.pool .pool
_0813B7A8: _0813B7A8:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _0813B7B4 bne _0813B7B4
+2 -2
View File
@@ -282,7 +282,7 @@ _0816CE6C:
.pool .pool
_0816CE8C: _0816CE8C:
bl GameCubeMultiBoot_Quit bl GameCubeMultiBoot_Quit
ldr r0, =sub_800BA38 ldr r0, =SerialCB
bl SetSerialCallback bl SetSerialCallback
_0816CE96: _0816CE96:
movs r0, 0 movs r0, 0
@@ -562,7 +562,7 @@ task_intro_2: @ 816D12C
movs r0, 0xCF movs r0, 0xCF
lsls r0, 1 lsls r0, 1
bl m4aSongNumStart bl m4aSongNumStart
bl sub_800B628 bl ResetSerial
add sp, 0x4 add sp, 0x4
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
+518 -706
View File
File diff suppressed because it is too large Load Diff
+2021
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1519,7 +1519,7 @@
.endm .endm
.macro case condition, dest .macro case condition, dest
compare_var_to_value 0x8000, \condition compare 0x8000, \condition
goto_eq \dest goto_eq \dest
.endm .endm
+2 -2
View File
@@ -3940,7 +3940,7 @@ AddBirchSpeechObjects: @ 803192C
strb r1, [r2] strb r1, [r2]
strh r0, [r5, 0x1A] strh r0, [r5, 0x1A]
movs r0, 0x3C movs r0, 0x3C
bl sub_806EFF0 bl FacilityClassToPicIndex
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r4, =0x0201c000 ldr r4, =0x0201c000
@@ -3970,7 +3970,7 @@ AddBirchSpeechObjects: @ 803192C
strb r1, [r2, 0x5] strb r1, [r2, 0x5]
strh r0, [r5, 0x1C] strh r0, [r5, 0x1C]
movs r0, 0x3F movs r0, 0x3F
bl sub_806EFF0 bl FacilityClassToPicIndex
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r1, =0x0201c000 ldr r1, =0x0201c000
+19 -19
View File
@@ -3180,7 +3180,7 @@ CB2_NewGame: @ 8085EF8
ldr r1, =gUnknown_03005DB0 ldr r1, =gUnknown_03005DB0
movs r0, 0 movs r0, 0
str r0, [r1] str r0, [r1]
ldr r0, =gUnknown_030026F8 ldr r0, =gMain+0x438
bl do_load_map_stuff_loop bl do_load_map_stuff_loop
bl SetFieldVBlankCallback bl SetFieldVBlankCallback
ldr r0, =c1_overworld ldr r0, =c1_overworld
@@ -3255,7 +3255,7 @@ c2_load_new_map: @ 8085FCC
thumb_func_start c2_load_new_map_2 thumb_func_start c2_load_new_map_2
c2_load_new_map_2: @ 8085FFC c2_load_new_map_2: @ 8085FFC
push {lr} push {lr}
ldr r0, =gUnknown_030026F8 ldr r0, =gMain+0x438
bl do_load_map_stuff_loop bl do_load_map_stuff_loop
bl SetFieldVBlankCallback bl SetFieldVBlankCallback
ldr r0, =c1_overworld ldr r0, =c1_overworld
@@ -3317,7 +3317,7 @@ sub_8086074: @ 8086074
thumb_func_start c2_80567AC thumb_func_start c2_80567AC
c2_80567AC: @ 8086098 c2_80567AC: @ 8086098
push {lr} push {lr}
ldr r0, =gUnknown_030026F8 ldr r0, =gMain+0x438
bl map_loading_iteration_3 bl map_loading_iteration_3
cmp r0, 0 cmp r0, 0
beq _080860B8 beq _080860B8
@@ -3356,7 +3356,7 @@ _080860EA:
thumb_func_start c2_exit_to_overworld_2_local thumb_func_start c2_exit_to_overworld_2_local
c2_exit_to_overworld_2_local: @ 80860F4 c2_exit_to_overworld_2_local: @ 80860F4
push {lr} push {lr}
ldr r0, =gUnknown_030026F8 ldr r0, =gMain+0x438
bl sub_8086638 bl sub_8086638
cmp r0, 0 cmp r0, 0
beq _0808610A beq _0808610A
@@ -3375,7 +3375,7 @@ c2_exit_to_overworld_2_link: @ 8086118
bl sub_8087598 bl sub_8087598
cmp r0, 0 cmp r0, 0
bne _08086132 bne _08086132
ldr r0, =gUnknown_030026F8 ldr r0, =gMain+0x438
bl map_loading_iteration_2_link bl map_loading_iteration_2_link
cmp r0, 0 cmp r0, 0
beq _08086132 beq _08086132
@@ -3395,7 +3395,7 @@ c2_8056854: @ 8086140
ldr r0, =c1_link_related ldr r0, =c1_link_related
bl set_callback1 bl set_callback1
bl sub_8086C2C bl sub_8086C2C
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086174 beq _08086174
@@ -3586,7 +3586,7 @@ sub_808631C: @ 808631C
bne _0808632E bne _0808632E
bl CloseLink bl CloseLink
_0808632E: _0808632E:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086348 beq _08086348
@@ -3768,14 +3768,14 @@ _080864DA:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08086506 b _08086506
_080864E0: _080864E0:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086506 beq _08086506
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
b _08086506 b _08086506
.pool .pool
_080864FC: _080864FC:
@@ -4056,14 +4056,14 @@ _08086766:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08086792 b _08086792
_0808676C: _0808676C:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086792 beq _08086792
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
b _08086792 b _08086792
.pool .pool
_08086788: _08086788:
@@ -4565,7 +4565,7 @@ _08086BCA:
thumb_func_start c1_link_related thumb_func_start c1_link_related
c1_link_related: @ 8086BD8 c1_link_related: @ 8086BD8
push {r4,lr} push {r4,lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086BF2 beq _08086BF2
@@ -4578,7 +4578,7 @@ c1_link_related: @ 8086BD8
_08086BF2: _08086BF2:
ldr r0, =gUnknown_03005DB4 ldr r0, =gUnknown_03005DB4
ldrb r4, [r0] ldrb r4, [r0]
ldr r0, =gUnknown_03003020 ldr r0, =gLinkPartnersHeldKeys
adds r1, r4, 0 adds r1, r4, 0
bl sub_8086F38 bl sub_8086F38
ldr r0, =gUnknown_03000E14 ldr r0, =gUnknown_03000E14
@@ -4610,7 +4610,7 @@ sub_8086C2C: @ 8086C2C
thumb_func_start sub_8086C40 thumb_func_start sub_8086C40
sub_8086C40: @ 8086C40 sub_8086C40: @ 8086C40
push {lr} push {lr}
ldr r0, =gUnknown_03003020 ldr r0, =gLinkPartnersHeldKeys
bl sub_808709C bl sub_808709C
pop {r0} pop {r0}
bx r0 bx r0
@@ -4631,7 +4631,7 @@ c1_link_related_func_set: @ 8086C50
thumb_func_start sub_8086C64 thumb_func_start sub_8086C64
sub_8086C64: @ 8086C64 sub_8086C64: @ 8086C64
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086C82 beq _08086C82
@@ -5029,7 +5029,7 @@ _08086FC0:
movs r0, 0x11 movs r0, 0x11
strh r0, [r1] strh r0, [r1]
_08086FC6: _08086FC6:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08086FFC beq _08086FFC
@@ -5926,7 +5926,7 @@ _08087666:
thumb_func_start sub_808766C thumb_func_start sub_808766C
sub_808766C: @ 808766C sub_808766C: @ 808766C
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _08087688 bne _08087688
@@ -5946,11 +5946,11 @@ _0808768A:
thumb_func_start sub_8087690 thumb_func_start sub_8087690
sub_8087690: @ 8087690 sub_8087690: @ 8087690
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _080876B0 bne _080876B0
ldr r0, =gUnknown_03003170 ldr r0, =gLink
ldr r1, =0x00000339 ldr r1, =0x00000339
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
+1 -1
View File
@@ -11943,7 +11943,7 @@ _081B6558:
adds r1, r5, 0 adds r1, r5, 0
_081B6572: _081B6572:
adds r3, r6, 0 adds r3, r6, 0
bl ExecuteTableBasedItemEffect_ bl ExecuteTableBasedItemEffect
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
pop {r4-r6} pop {r4-r6}
-2016
View File
File diff suppressed because it is too large Load Diff
-529
View File
@@ -1,529 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_806F160
sub_806F160: @ 806F160
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
ldrb r0, [r6]
lsls r0, 28
movs r4, 0
cmp r0, 0
beq _0806F1EA
_0806F176:
ldr r0, [r6, 0xC]
lsls r2, r4, 1
adds r1, r2, r4
lsls r1, 3
adds r0, r1, r0
ldr r3, =gUnknown_08329D98
adds r1, r3
ldm r1!, {r3,r5,r7}
stm r0!, {r3,r5,r7}
ldm r1!, {r3,r5,r7}
stm r0!, {r3,r5,r7}
movs r5, 0
ldrb r3, [r6, 0x1]
ldr r7, [r6, 0xC]
mov r9, r7
mov r8, r2
ldr r0, [r6, 0x10]
mov r12, r0
adds r1, r4, 0x1
mov r10, r1
cmp r5, r3
bcs _0806F1C8
mov r7, r12
ldr r1, [r6, 0x8]
lsls r0, r4, 2
adds r0, r1
ldr r2, [r0]
_0806F1AC:
adds r0, r4, 0
muls r0, r3
adds r0, r5
lsls r0, 3
adds r0, r7
lsls r1, r5, 11
adds r1, r2, r1
str r1, [r0]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
ldrb r3, [r6, 0x1]
cmp r5, r3
bcc _0806F1AC
_0806F1C8:
mov r3, r8
adds r1, r3, r4
lsls r1, 3
add r1, r9
ldrb r0, [r6, 0x1]
muls r0, r4
lsls r0, 3
add r0, r12
str r0, [r1, 0xC]
mov r5, r10
lsls r0, r5, 16
lsrs r4, r0, 16
ldrb r0, [r6]
lsls r0, 28
lsrs r0, 28
cmp r4, r0
blt _0806F176
_0806F1EA:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_806F160
thumb_func_start sub_806F1FC
sub_806F1FC: @ 806F1FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r4, r0, 0
ldrb r0, [r4]
lsls r0, 28
movs r3, 0
cmp r0, 0
beq _0806F296
ldr r0, =gUnknown_08329F28
mov r10, r0
_0806F216:
ldr r0, [r4, 0xC]
lsls r2, r3, 1
adds r1, r2, r3
lsls r1, 3
adds r1, r0
mov r0, r10
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
movs r5, 0
ldr r0, [r4, 0xC]
mov r8, r0
mov r12, r2
ldr r7, [r4, 0x10]
adds r1, r3, 0x1
mov r9, r1
ldrb r6, [r4, 0x1]
cmp r5, r6
bcs _0806F26A
adds r6, r7, 0
ldr r1, [r4, 0x8]
lsls r0, r3, 2
adds r0, r1
ldr r2, [r0]
_0806F248:
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 28
adds r1, r3, 0
muls r1, r0
adds r1, r5
lsls r1, 3
adds r1, r6
lsls r0, r5, 11
adds r0, r2, r0
str r0, [r1]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
ldrb r0, [r4, 0x1]
cmp r5, r0
bcc _0806F248
_0806F26A:
mov r5, r12
adds r1, r5, r3
lsls r1, 3
add r1, r8
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 28
muls r0, r3
lsls r0, 3
adds r0, r7, r0
str r0, [r1, 0xC]
ldr r6, =gUnknown_082FF70C
str r6, [r1, 0x8]
strh r3, [r1, 0x2]
mov r7, r9
lsls r0, r7, 16
lsrs r3, r0, 16
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 28
cmp r3, r0
blt _0806F216
_0806F296:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_806F1FC
thumb_func_start sub_806F2AC
sub_806F2AC: @ 806F2AC
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r5, r1, 24
movs r7, 0
movs r0, 0x1
ands r6, r0
movs r0, 0x14
bl AllocZeroed
adds r4, r0, 0
cmp r4, 0
bne _0806F2D0
movs r0, 0
b _0806F46E
_0806F2D0:
cmp r5, 0
beq _0806F2E6
cmp r5, 0x2
bne _0806F2E6
movs r0, 0x77
strb r0, [r4]
movs r0, 0x4
strb r0, [r4, 0x1]
movs r0, 0x21
strb r0, [r4, 0x3]
b _0806F30E
_0806F2E6:
ldrb r1, [r4]
movs r2, 0x10
negs r2, r2
adds r0, r2, 0
ands r0, r1
movs r1, 0x4
orrs r0, r1
movs r3, 0xF
ands r0, r3
movs r1, 0x40
orrs r0, r1
strb r0, [r4]
movs r0, 0x4
strb r0, [r4, 0x1]
ldrb r0, [r4, 0x3]
ands r2, r0
movs r0, 0x1
orrs r2, r0
ands r2, r3
strb r2, [r4, 0x3]
_0806F30E:
ldrb r1, [r4, 0x3]
lsls r1, 28
lsrs r1, 28
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 15
muls r0, r1
bl AllocZeroed
str r0, [r4, 0x4]
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 23
bl AllocZeroed
adds r1, r0, 0
str r1, [r4, 0x8]
ldr r2, [r4, 0x4]
cmp r2, 0
beq _0806F33A
cmp r1, 0
bne _0806F344
_0806F33A:
movs r0, 0x1
orrs r7, r0
lsls r6, 2
mov r8, r6
b _0806F378
_0806F344:
ldrb r0, [r4]
lsls r0, 28
movs r3, 0
lsls r6, 2
mov r8, r6
cmp r0, 0
beq _0806F378
adds r6, r1, 0
adds r5, r2, 0
_0806F356:
lsls r2, r3, 2
adds r2, r6
ldrb r0, [r4, 0x3]
lsls r0, 28
lsrs r0, 28
lsls r1, r3, 13
muls r0, r1
adds r0, r5, r0
str r0, [r2]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 28
cmp r3, r0
blt _0806F356
_0806F378:
ldrb r1, [r4]
lsls r1, 28
lsrs r1, 28
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
bl AllocZeroed
str r0, [r4, 0xC]
ldrb r1, [r4]
lsls r1, 28
lsrs r1, 28
ldrb r0, [r4, 0x1]
lsls r0, 3
muls r0, r1
bl AllocZeroed
adds r1, r0, 0
str r1, [r4, 0x10]
ldr r0, [r4, 0xC]
cmp r0, 0
beq _0806F3A8
cmp r1, 0
bne _0806F3B2
_0806F3A8:
movs r0, 0x2
orrs r7, r0
lsls r0, r7, 24
lsrs r7, r0, 24
b _0806F400
_0806F3B2:
movs r3, 0
ldrb r0, [r4, 0x1]
ldrb r1, [r4]
lsls r1, 28
lsrs r1, 28
muls r0, r1
cmp r3, r0
bge _0806F3E2
movs r2, 0x80
lsls r2, 4
_0806F3C6:
ldr r1, [r4, 0x10]
lsls r0, r3, 3
adds r0, r1
strh r2, [r0, 0x4]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r1, [r4, 0x1]
ldrb r0, [r4]
lsls r0, 28
lsrs r0, 28
muls r0, r1
cmp r3, r0
blt _0806F3C6
_0806F3E2:
ldrb r0, [r4, 0x3]
lsrs r0, 4
cmp r0, 0
blt _0806F3FA
cmp r0, 0x1
ble _0806F3FA
cmp r0, 0x2
bne _0806F3FA
adds r0, r4, 0
bl sub_806F1FC
b _0806F400
_0806F3FA:
adds r0, r4, 0
bl sub_806F160
_0806F400:
movs r0, 0x2
ands r0, r7
cmp r0, 0
beq _0806F424
ldr r0, [r4, 0x10]
cmp r0, 0
beq _0806F416
bl Free
movs r0, 0
str r0, [r4, 0x10]
_0806F416:
ldr r0, [r4, 0xC]
cmp r0, 0
beq _0806F424
bl Free
movs r0, 0
str r0, [r4, 0xC]
_0806F424:
movs r0, 0x1
ands r0, r7
cmp r0, 0
beq _0806F448
ldr r0, [r4, 0x8]
cmp r0, 0
beq _0806F43A
bl Free
movs r0, 0
str r0, [r4, 0x8]
_0806F43A:
ldr r0, [r4, 0x4]
cmp r0, 0
beq _0806F448
bl Free
movs r0, 0
str r0, [r4, 0x4]
_0806F448:
cmp r7, 0
beq _0806F45E
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
adds r0, r4, 0
bl Free
b _0806F468
_0806F45E:
movs r0, 0xA3
strb r0, [r4, 0x2]
ldr r0, =gUnknown_020249B4
add r0, r8
str r4, [r0]
_0806F468:
ldr r0, =gUnknown_020249B4
add r0, r8
ldr r0, [r0]
_0806F46E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_806F2AC
thumb_func_start sub_806F47C
sub_806F47C: @ 806F47C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
ands r0, r1
ldr r1, =gUnknown_020249B4
lsls r0, 2
adds r0, r1
ldr r4, [r0]
cmp r4, 0
beq _0806F4F0
ldrb r0, [r4, 0x2]
cmp r0, 0xA3
beq _0806F4A8
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
b _0806F4F0
.pool
_0806F4A8:
ldr r0, [r4, 0x10]
cmp r0, 0
beq _0806F4B6
bl Free
movs r0, 0
str r0, [r4, 0x10]
_0806F4B6:
ldr r0, [r4, 0xC]
cmp r0, 0
beq _0806F4C4
bl Free
movs r0, 0
str r0, [r4, 0xC]
_0806F4C4:
ldr r0, [r4, 0x8]
cmp r0, 0
beq _0806F4D2
bl Free
movs r0, 0
str r0, [r4, 0x8]
_0806F4D2:
ldr r0, [r4, 0x4]
cmp r0, 0
beq _0806F4E0
bl Free
movs r0, 0
str r0, [r4, 0x4]
_0806F4E0:
adds r0, r4, 0
movs r1, 0
movs r2, 0x14
bl memset
adds r0, r4, 0
bl Free
_0806F4F0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_806F47C
thumb_func_start sub_806F4F8
sub_806F4F8: @ 806F4F8
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r3, r1, 24
ldr r2, =gUnknown_020249B4
movs r1, 0x1
ands r0, r1
lsls r0, 2
adds r0, r2
ldr r1, [r0]
ldrb r0, [r1, 0x2]
cmp r0, 0xA3
beq _0806F51C
movs r0, 0
b _0806F530
.pool
_0806F51C:
ldrb r0, [r1]
lsls r0, 28
lsrs r0, 28
cmp r3, r0
blt _0806F528
movs r3, 0
_0806F528:
ldr r0, [r1, 0x8]
lsls r1, r3, 2
adds r1, r0
ldr r0, [r1]
_0806F530:
pop {r1}
bx r1
thumb_func_end sub_806F4F8
.align 2, 0 @ Don't pad with nop.
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1173,7 +1173,7 @@ sub_81C47B4: @ 81C47B4
ands r0, r1 ands r0, r1
strb r0, [r7, 0x5] strb r0, [r7, 0x5]
ldrh r0, [r6, 0x2] ldrh r0, [r6, 0x2]
bl IsPokeSpriteNotFlipped bl IsMonSpriteNotFlipped
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _081C4828 bne _081C4828
@@ -1221,7 +1221,7 @@ sub_81C4844: @ 81C4844
cmp r0, 0x1 cmp r0, 0x1
beq _081C487E beq _081C487E
ldrh r0, [r4, 0x2E] ldrh r0, [r4, 0x2E]
bl IsPokeSpriteNotFlipped bl IsMonSpriteNotFlipped
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
strh r0, [r4, 0x30] strh r0, [r4, 0x30]
+11 -11
View File
@@ -25789,7 +25789,7 @@ sub_81D3B54: @ 81D3B54
adds r5, r1, 0 adds r5, r1, 0
bl sub_81D41A0 bl sub_81D41A0
movs r7, 0x2 movs r7, 0x2
ldr r4, =gUnknown_03003144 ldr r4, =gShouldAdvanceLinkState
_081D3B64: _081D3B64:
bl sub_81D4170 bl sub_81D4170
ldr r0, =gUnknown_030012E2 ldr r0, =gUnknown_030012E2
@@ -25857,7 +25857,7 @@ sub_81D3BE8: @ 81D3BE8
adds r5, r0, 0 adds r5, r0, 0
bl sub_81D41A0 bl sub_81D41A0
movs r6, 0x2 movs r6, 0x2
ldr r4, =gUnknown_03003144 ldr r4, =gShouldAdvanceLinkState
_081D3BF6: _081D3BF6:
bl sub_81D4170 bl sub_81D4170
ldr r0, =gUnknown_030012E2 ldr r0, =gUnknown_030012E2
@@ -26006,7 +26006,7 @@ sub_81D3D34: @ 81D3D34
movs r1, 0x8 movs r1, 0x8
orrs r0, r1 orrs r0, r1
strh r0, [r2] strh r0, [r2]
ldr r0, =gUnknown_03003144 ldr r0, =gShouldAdvanceLinkState
strb r3, [r0] strb r3, [r0]
ldr r0, =gUnknown_030012E6 ldr r0, =gUnknown_030012E6
strh r3, [r0] strh r3, [r0]
@@ -26062,7 +26062,7 @@ _081D3DC8:
beq _081D3DD8 beq _081D3DD8
bl sub_81D413C bl sub_81D413C
_081D3DD8: _081D3DD8:
ldr r0, =gUnknown_03003144 ldr r0, =gShouldAdvanceLinkState
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0x2 cmp r0, 0x2
beq _081D3DE2 beq _081D3DE2
@@ -26080,7 +26080,7 @@ _081D3DE8:
movs r0, 0x3 movs r0, 0x3
strb r0, [r1, 0x1] strb r0, [r1, 0x1]
_081D3DFC: _081D3DFC:
ldr r0, =gUnknown_03003144 ldr r0, =gShouldAdvanceLinkState
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0x2 cmp r0, 0x2
bne _081D3E18 bne _081D3E18
@@ -28050,7 +28050,7 @@ _081D4E12:
beq _081D4E1C beq _081D4E1C
movs r5, 0x3 movs r5, 0x3
_081D4E1C: _081D4E1C:
ldr r1, =gUnknown_03003144 ldr r1, =gShouldAdvanceLinkState
movs r0, 0 movs r0, 0
strb r0, [r1] strb r0, [r1]
adds r0, r5, 0 adds r0, r5, 0
@@ -28074,7 +28074,7 @@ sub_81D4E30: @ 81D4E30
strh r0, [r1] strh r0, [r1]
bl OpenLink bl OpenLink
movs r0, 0x1 movs r0, 0x1
bl sub_800B330 bl SetSuppressLinkErrorMessage
pop {r0} pop {r0}
bx r0 bx r0
.pool .pool
@@ -28090,7 +28090,7 @@ sub_81D4E60: @ 81D4E60
strh r0, [r1] strh r0, [r1]
movs r0, 0 movs r0, 0
strh r0, [r2] strh r0, [r2]
ldr r0, =gUnknown_03003174 ldr r0, =gLink+0x4
ldr r1, [r0, 0x4] ldr r1, [r0, 0x4]
ldr r0, [r0] ldr r0, [r0]
str r0, [sp, 0x4] str r0, [sp, 0x4]
@@ -28157,7 +28157,7 @@ sub_81D4EE4: @ 81D4EE4
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x2 cmp r0, 0x2
bhi _081D4F08 bhi _081D4F08
bl sub_800B33C bl HasLinkErrorOccurred
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081D4F08 beq _081D4F08
@@ -28256,7 +28256,7 @@ _081D4FB6:
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _081D4FE6 beq _081D4FE6
bl sub_800A23C bl IsLinkPlayerDataExchangeComplete
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081D4FE0 beq _081D4FE0
@@ -28665,7 +28665,7 @@ _081D5360:
strb r0, [r4, 0x8] strb r0, [r4, 0x8]
b _081D548A b _081D548A
_081D536A: _081D536A:
bl sub_800B33C bl HasLinkErrorOccurred
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _081D537A beq _081D537A
+4 -4
View File
@@ -621,7 +621,7 @@ _080E726C:
bne _080E730A bne _080E730A
movs r0, 0x4 movs r0, 0x4
strh r0, [r5] strh r0, [r5]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _080E7296 bne _080E7296
@@ -664,7 +664,7 @@ _080E72C0:
ldr r0, [r0] ldr r0, [r0]
bl Free bl Free
bl sub_808729C bl sub_808729C
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080E72F8 beq _080E72F8
@@ -747,7 +747,7 @@ _080E7384:
movs r0, 0xC8 movs r0, 0xC8
lsls r0, 1 lsls r0, 1
strh r0, [r5, 0x8] strh r0, [r5, 0x8]
bl sub_8009FAC bl ClearLinkCallback_2
b _080E7566 b _080E7566
.pool .pool
_080E73A0: _080E73A0:
@@ -2393,7 +2393,7 @@ _080E80C0:
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _080E810A bne _080E810A
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080E80E8 beq _080E80E8
+1
View File
@@ -448,4 +448,5 @@ _081357EE:
.pool .pool
thumb_func_end sub_81357BC thumb_func_end sub_81357BC
.align 2, 0 @ Don't pad with nop. .align 2, 0 @ Don't pad with nop.
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -366,7 +366,7 @@ sub_8034EFC: @ 8034EFC
movs r0, 0 movs r0, 0
strh r0, [r1] strh r0, [r1]
lsls r1, r5, 3 lsls r1, r5, 3
ldr r2, =gUnknown_030022F8 ldr r2, =gMain+0x38
mov r9, r2 mov r9, r2
add r1, r9 add r1, r9
mov r0, r8 mov r0, r8
+1 -1
View File
@@ -1100,7 +1100,7 @@ sub_80F90DC: @ 80F90DC
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0x8 movs r0, 0x8
movs r1, 0x8 movs r1, 0x8
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
_080F90FE: _080F90FE:
pop {r0} pop {r0}
bx r0 bx r0
+2 -2
View File
@@ -1615,7 +1615,7 @@ _080A0506:
thumb_func_start sub_80A0514 thumb_func_start sub_80A0514
sub_80A0514: @ 80A0514 sub_80A0514: @ 80A0514
push {lr} push {lr}
ldr r0, =gUnknown_030026F8 ldr r0, =gMain+0x438
bl sub_80A03E4 bl sub_80A03E4
cmp r0, 0 cmp r0, 0
beq _080A052E beq _080A052E
@@ -1712,7 +1712,7 @@ _080A05AC:
movs r2, 0x10 movs r2, 0x10
movs r3, 0 movs r3, 0
bl BeginNormalPaletteFade bl BeginNormalPaletteFade
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080A0620 beq _080A0620
+27 -27
View File
@@ -136,7 +136,7 @@ _08077258:
thumb_func_start sub_8077260 thumb_func_start sub_8077260
sub_8077260: @ 8077260 sub_8077260: @ 8077260
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08077280 beq _08077280
@@ -410,7 +410,7 @@ _080774B2:
ldr r0, [r0] ldr r0, [r0]
adds r0, 0xA8 adds r0, 0xA8
strb r2, [r0] strb r2, [r0]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08077528 beq _08077528
@@ -511,7 +511,7 @@ _080775E8:
beq _080775F2 beq _080775F2
b _08077B46 b _08077B46
_080775F2: _080775F2:
bl sub_800A23C bl IsLinkPlayerDataExchangeComplete
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -532,7 +532,7 @@ _08077600:
ldr r0, [r0] ldr r0, [r0]
adds r0, 0xA8 adds r0, 0xA8
strb r2, [r0] strb r2, [r0]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
bne _0807762A bne _0807762A
@@ -544,7 +544,7 @@ _0807762A:
b _08077B46 b _08077B46
.pool .pool
_08077648: _08077648:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08077680 beq _08077680
@@ -564,7 +564,7 @@ _0807765C:
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
b _08077B46 b _08077B46
.pool .pool
_08077680: _08077680:
@@ -1183,14 +1183,14 @@ _08077C28:
b _080780D8 b _080780D8
.pool .pool
_08077C3C: _08077C3C:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08077C50 beq _08077C50
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
_08077C50: _08077C50:
ldr r1, =gMain ldr r1, =gMain
movs r3, 0x87 movs r3, 0x87
@@ -1781,7 +1781,7 @@ sub_807816C: @ 807816C
adds r0, 0x7E adds r0, 0x7E
ldrb r0, [r0] ldrb r0, [r0]
strb r0, [r1, 0x1] strb r0, [r1, 0x1]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080781B4 beq _080781B4
@@ -1810,7 +1810,7 @@ sub_80781C8: @ 80781C8
ldr r5, =gMain ldr r5, =gMain
ldr r0, =sub_80773AC ldr r0, =sub_80773AC
str r0, [r5, 0x8] str r0, [r5, 0x8]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08078220 beq _08078220
@@ -4005,7 +4005,7 @@ sub_8079490: @ 8079490
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _080794C4 bne _080794C4
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _080794B4 beq _080794B4
@@ -4030,7 +4030,7 @@ _080794C4:
thumb_func_start sub_80794CC thumb_func_start sub_80794CC
sub_80794CC: @ 80794CC sub_80794CC: @ 80794CC
push {lr} push {lr}
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _08079518 beq _08079518
@@ -7026,7 +7026,7 @@ _0807AC92:
cmp r1, r0 cmp r1, r0
bls _0807ACC4 bls _0807ACC4
bl CloseLink bl CloseLink
ldr r0, =c2_800ACD4 ldr r0, =CB2_LinkError
bl SetMainCallback2 bl SetMainCallback2
ldr r1, [r4] ldr r1, [r4]
adds r3, r1, 0 adds r3, r1, 0
@@ -7155,7 +7155,7 @@ _0807AD94:
bl HandleLoadSpecialPokePic_DontHandleDeoxys bl HandleLoadSpecialPokePic_DontHandleDeoxys
_0807ADB2: _0807ADB2:
mov r0, r8 mov r0, r8
bl sub_806E794 bl GetMonSpritePalStruct
bl LoadCompressedObjectPalette bl LoadCompressedObjectPalette
ldr r0, =gUnknown_020322A0 ldr r0, =gUnknown_020322A0
ldr r1, [r0] ldr r1, [r0]
@@ -7171,7 +7171,7 @@ _0807ADB2:
.pool .pool
_0807ADE0: _0807ADE0:
mov r0, r8 mov r0, r8
bl sub_806E794 bl GetMonSpritePalStruct
ldrh r0, [r0, 0x4] ldrh r0, [r0, 0x4]
adds r1, r4, 0 adds r1, r4, 0
bl sub_806A068 bl sub_806A068
@@ -7408,7 +7408,7 @@ _0807B006:
beq _0807B014 beq _0807B014
b _0807B116 b _0807B116
_0807B014: _0807B014:
bl sub_800A23C bl IsLinkPlayerDataExchangeComplete
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
@@ -7508,14 +7508,14 @@ _0807B0F0:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
bne _0807B116 bne _0807B116
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _0807B110 beq _0807B110
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0 movs r0, 0
movs r1, 0 movs r1, 0
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
_0807B110: _0807B110:
ldr r0, =sub_807EA2C ldr r0, =sub_807EA2C
bl SetMainCallback2 bl SetMainCallback2
@@ -9589,7 +9589,7 @@ _0807C66C:
ldr r0, [r5] ldr r0, [r5]
adds r0, 0xF0 adds r0, 0xF0
ldrh r0, [r0] ldrh r0, [r0]
bl IsPokeSpriteNotFlipped bl IsMonSpriteNotFlipped
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0807C6E4 bne _0807C6E4
@@ -11663,7 +11663,7 @@ _0807DA74:
ldr r0, [r5] ldr r0, [r5]
adds r0, 0xF0 adds r0, 0xF0
ldrh r0, [r0] ldrh r0, [r0]
bl IsPokeSpriteNotFlipped bl IsMonSpriteNotFlipped
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0807DAEC bne _0807DAEC
@@ -12857,7 +12857,7 @@ _0807E4AE:
_0807E4B2: _0807E4B2:
strb r0, [r1] strb r0, [r1]
_0807E4B4: _0807E4B4:
bl sub_800B33C bl HasLinkErrorOccurred
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0807E4C2 bne _0807E4C2
@@ -13832,7 +13832,7 @@ _0807EDC0:
movs r0, 0x15 movs r0, 0x15
bl IncrementGameStat bl IncrementGameStat
_0807EDCE: _0807EDCE:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _0807EDF6 beq _0807EDF6
@@ -14045,7 +14045,7 @@ _0807EFA4:
lsrs r0, 24 lsrs r0, 24
cmp r0, 0x1 cmp r0, 0x1
bne _0807F03A bne _0807F03A
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _0807EFD8 beq _0807EFD8
@@ -14072,7 +14072,7 @@ _0807EFE4:
b _0807F03A b _0807F03A
.pool .pool
_0807EFF0: _0807EFF0:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _0807F028 beq _0807F028
@@ -14100,7 +14100,7 @@ _0807F028:
ldr r0, =c2_080543C4 ldr r0, =c2_080543C4
bl SetMainCallback2 bl SetMainCallback2
_0807F03A: _0807F03A:
bl sub_800B33C bl HasLinkErrorOccurred
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0807F048 bne _0807F048
@@ -14142,7 +14142,7 @@ c2_080543C4: @ 807F068
ldr r0, [r4] ldr r0, [r4]
bl Free bl Free
str r5, [r4] str r5, [r4]
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0 cmp r0, 0
beq _0807F0B6 beq _0807F0B6
@@ -14884,7 +14884,7 @@ _0807F6F8:
ldr r0, =c2_080543C4 ldr r0, =c2_080543C4
bl SetMainCallback2 bl SetMainCallback2
_0807F70C: _0807F70C:
bl sub_800B33C bl HasLinkErrorOccurred
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0807F71A bne _0807F71A
+4 -4
View File
@@ -187,7 +187,7 @@ _080C2830:
bl sub_80C4630 bl sub_80C4630
b _080C28D4 b _080C28D4
_080C2836: _080C2836:
ldr r0, =gLinkVSyncDisabled ldr r0, =gWirelessCommType
ldrb r0, [r0] ldrb r0, [r0]
cmp r0, 0x1 cmp r0, 0x1
bne _080C2852 bne _080C2852
@@ -198,7 +198,7 @@ _080C2836:
bl sub_800E0E8 bl sub_800E0E8
movs r0, 0xE6 movs r0, 0xE6
movs r1, 0x96 movs r1, 0x96
bl sub_800DFB4 bl CreateWirelessStatusIndicatorSprite
_080C2852: _080C2852:
movs r6, 0x1 movs r6, 0x1
negs r6, r6 negs r6, r6
@@ -4754,7 +4754,7 @@ sub_80C4FF0: @ 80C4FF0
ldr r1, =0x00000583 ldr r1, =0x00000583
adds r0, r1 adds r0, r1
ldrb r0, [r0] ldrb r0, [r0]
bl sub_806EFF0 bl FacilityClassToPicIndex
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
ldr r4, =gUnknown_0856FB18 ldr r4, =gUnknown_0856FB18
@@ -4795,7 +4795,7 @@ _080C5060:
adds r0, r1 adds r0, r1
adds r0, r2 adds r0, r2
ldrb r0, [r0] ldrb r0, [r0]
bl sub_806EFF0 bl FacilityClassToPicIndex
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
ldr r4, =gUnknown_0856FB18 ldr r4, =gUnknown_0856FB18
+37
View File
@@ -0,0 +1,37 @@
gLinkPartnersHeldKeys
gLinkDebugSeed
gLocalLinkPlayerBlock
gLinkErrorOccurred
gLinkDebugFlags
gFiller_03003074
gRemoteLinkPlayersNotReceived
gBlockReceivedStatus
gFiller_03003080
gLinkHeldKeys
gRecvCmds
gLinkStatus
gUnknown_030030E4
gUnknown_030030E8
gUnknown_030030EC
gUnknown_030030F0
gUnknown_030030F4
gSuppressLinkErrorMessage
gWirelessCommType
gSavedLinkPlayerCount
gSendCmd
gSavedMultiplayerId
gReceivedRemoteLinkPlayers
gLinkTestBGInfo
gLinkCallback
gShouldAdvanceLinkState
gLinkTestBlockChecksums
gBlockRequestType
gFiller_03003154
gFiller_03003158
gFiller_0300315c
gLastSendQueueCount
gLink
gLastRecvQueueCount
gLinkSavedIme
gFiller_03004138
gFiller_0300413C
+2
View File
@@ -0,0 +1,2 @@
gUnknown_03004140
gUnknown_03005000
+9
View File
@@ -0,0 +1,9 @@
gKeyRepeatStartDelay
gLinkTransferringData
gMain
gKeyRepeatContinueDelay
gSoftResetDisabled
gIntrTable
gLinkVSyncDisabled
IntrMain_Buffer
gPcmDmaCounter
+5
View File
@@ -0,0 +1,5 @@
filler_03002F58
filler_03002F5C
gUnknown_03002F60
filler_03002F64
gUnknown_03002F70
@@ -157,7 +157,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Peggy .4byte gBattleFrontierTrainerMons_Peggy
@ 6 @ 6
.4byte FACILITY_CLASS_SCHOOL_KID_1 .4byte FACILITY_CLASS_SCHOOL_KID_M
.string "KEITH$", 8 .string "KEITH$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -183,7 +183,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Keith .4byte gBattleFrontierTrainerMons_Keith
@ 7 @ 7
.4byte FACILITY_CLASS_SCHOOL_KID_1 .4byte FACILITY_CLASS_SCHOOL_KID_M
.string "GRAYSON$", 8 .string "GRAYSON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_A .2byte EC_WORD_A
@@ -209,7 +209,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Grayson .4byte gBattleFrontierTrainerMons_Grayson
@ 8 @ 8
.4byte FACILITY_CLASS_SCHOOL_KID_1 .4byte FACILITY_CLASS_SCHOOL_KID_M
.string "GLENN$", 8 .string "GLENN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -235,7 +235,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Glenn .4byte gBattleFrontierTrainerMons_Glenn
@ 9 @ 9
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "LILIANA$", 8 .string "LILIANA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -261,7 +261,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Liliana .4byte gBattleFrontierTrainerMons_Liliana
@ 10 @ 10
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "ELISE$", 8 .string "ELISE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -287,7 +287,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Elise .4byte gBattleFrontierTrainerMons_Elise
@ 11 @ 11
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "ZOEY$", 8 .string "ZOEY$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_PLEASE .2byte EC_WORD_PLEASE
@@ -2965,7 +2965,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Rayna .4byte gBattleFrontierTrainerMons_Rayna
@ 114 @ 114
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "EVAN$", 8 .string "EVAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_EVERY .2byte EC_WORD_EVERY
@@ -2991,7 +2991,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Evan .4byte gBattleFrontierTrainerMons_Evan
@ 115 @ 115
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "JORDAN$", 8 .string "JORDAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_GOOD .2byte EC_WORD_GOOD
@@ -3017,7 +3017,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Jordan .4byte gBattleFrontierTrainerMons_Jordan
@ 116 @ 116
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "JOEL$", 8 .string "JOEL$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_FUFUFU .2byte EC_WORD_FUFUFU
@@ -3121,7 +3121,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Chloe .4byte gBattleFrontierTrainerMons_Chloe
@ 120 @ 120
.4byte FACILITY_CLASS_PSYCHIC_1 .4byte FACILITY_CLASS_PSYCHIC_M
.string "NORTON$", 8 .string "NORTON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -3147,7 +3147,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Norton .4byte gBattleFrontierTrainerMons_Norton
@ 121 @ 121
.4byte FACILITY_CLASS_PSYCHIC_1 .4byte FACILITY_CLASS_PSYCHIC_M
.string "LUKAS$", 8 .string "LUKAS$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -3173,7 +3173,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Lukas .4byte gBattleFrontierTrainerMons_Lukas
@ 122 @ 122
.4byte FACILITY_CLASS_PSYCHIC_1 .4byte FACILITY_CLASS_PSYCHIC_M
.string "ZACH$", 8 .string "ZACH$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -3199,7 +3199,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Zach .4byte gBattleFrontierTrainerMons_Zach
@ 123 @ 123
.4byte FACILITY_CLASS_PSYCHIC_2 .4byte FACILITY_CLASS_PSYCHIC_F
.string "KAITLYN$", 8 .string "KAITLYN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -3225,7 +3225,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Kaitlyn .4byte gBattleFrontierTrainerMons_Kaitlyn
@ 124 @ 124
.4byte FACILITY_CLASS_PSYCHIC_2 .4byte FACILITY_CLASS_PSYCHIC_F
.string "BREANNA$", 8 .string "BREANNA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -3251,7 +3251,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Breanna .4byte gBattleFrontierTrainerMons_Breanna
@ 125 @ 125
.4byte FACILITY_CLASS_PSYCHIC_2 .4byte FACILITY_CLASS_PSYCHIC_F
.string "KENDRA$", 8 .string "KENDRA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_IF .2byte EC_WORD_IF
@@ -3641,7 +3641,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Sofia .4byte gBattleFrontierTrainerMons_Sofia
@ 140 @ 140
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "BRADEN$", 8 .string "BRADEN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_CHOOSE_YOU .2byte EC_WORD_I_CHOOSE_YOU
@@ -3667,7 +3667,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Braden .4byte gBattleFrontierTrainerMons_Braden
@ 141 @ 141
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "KAYDEN$", 8 .string "KAYDEN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_THEY .2byte EC_WORD_THEY
@@ -3693,7 +3693,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Kayden .4byte gBattleFrontierTrainerMons_Kayden
@ 142 @ 142
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "COOPER$", 8 .string "COOPER$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_THIS .2byte EC_WORD_THIS
@@ -3719,7 +3719,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Cooper .4byte gBattleFrontierTrainerMons_Cooper
@ 143 @ 143
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "JULIA$", 8 .string "JULIA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_SPIRIT .2byte EC_WORD_SPIRIT
@@ -3745,7 +3745,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Julia .4byte gBattleFrontierTrainerMons_Julia
@ 144 @ 144
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "AMARA$", 8 .string "AMARA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_WROOOAAR_EXCL .2byte EC_WORD_WROOOAAR_EXCL
@@ -3771,7 +3771,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Amara .4byte gBattleFrontierTrainerMons_Amara
@ 145 @ 145
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "LYNN$", 8 .string "LYNN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_YOUR .2byte EC_WORD_YOUR
@@ -3797,7 +3797,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Lynn .4byte gBattleFrontierTrainerMons_Lynn
@ 146 @ 146
.4byte FACILITY_CLASS_PKMN_RANGER_1 .4byte FACILITY_CLASS_PKMN_RANGER_M
.string "JOVAN$", 8 .string "JOVAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_YOUR .2byte EC_WORD_YOUR
@@ -3823,7 +3823,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Jovan .4byte gBattleFrontierTrainerMons_Jovan
@ 147 @ 147
.4byte FACILITY_CLASS_PKMN_RANGER_1 .4byte FACILITY_CLASS_PKMN_RANGER_M
.string "DOMINIC$", 8 .string "DOMINIC$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -3849,7 +3849,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Dominic .4byte gBattleFrontierTrainerMons_Dominic
@ 148 @ 148
.4byte FACILITY_CLASS_PKMN_RANGER_1 .4byte FACILITY_CLASS_PKMN_RANGER_M
.string "NIKOLAS$", 8 .string "NIKOLAS$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -3875,7 +3875,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Nikolas .4byte gBattleFrontierTrainerMons_Nikolas
@ 149 @ 149
.4byte FACILITY_CLASS_PKMN_RANGER_2 .4byte FACILITY_CLASS_PKMN_RANGER_F
.string "VALERIA$", 8 .string "VALERIA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -3901,7 +3901,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Valeria .4byte gBattleFrontierTrainerMons_Valeria
@ 150 @ 150
.4byte FACILITY_CLASS_PKMN_RANGER_2 .4byte FACILITY_CLASS_PKMN_RANGER_F
.string "DELANEY$", 8 .string "DELANEY$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_SCHOOL .2byte EC_WORD_SCHOOL
@@ -3927,7 +3927,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Delaney .4byte gBattleFrontierTrainerMons_Delaney
@ 151 @ 151
.4byte FACILITY_CLASS_PKMN_RANGER_2 .4byte FACILITY_CLASS_PKMN_RANGER_F
.string "MEGHAN$", 8 .string "MEGHAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_SCHOOL .2byte EC_WORD_SCHOOL
@@ -4265,7 +4265,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Kaila .4byte gBattleFrontierTrainerMons_Kaila
@ 164 @ 164
.4byte FACILITY_CLASS_SCHOOL_KID_1 .4byte FACILITY_CLASS_SCHOOL_KID_M
.string "ISIAH$", 8 .string "ISIAH$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -4291,7 +4291,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Isiah .4byte gBattleFrontierTrainerMons_Isiah
@ 165 @ 165
.4byte FACILITY_CLASS_SCHOOL_KID_1 .4byte FACILITY_CLASS_SCHOOL_KID_M
.string "GARRETT$", 8 .string "GARRETT$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -4317,7 +4317,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Garrett .4byte gBattleFrontierTrainerMons_Garrett
@ 166 @ 166
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "HAYLIE$", 8 .string "HAYLIE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -4343,7 +4343,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Haylie .4byte gBattleFrontierTrainerMons_Haylie
@ 167 @ 167
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "MEGAN$", 8 .string "MEGAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -5721,7 +5721,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Tess .4byte gBattleFrontierTrainerMons_Tess
@ 220 @ 220
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "LEON$", 8 .string "LEON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -5747,7 +5747,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Leon .4byte gBattleFrontierTrainerMons_Leon
@ 221 @ 221
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "ALONZO$", 8 .string "ALONZO$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_VE .2byte EC_WORD_I_VE
@@ -5773,7 +5773,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Alonzo .4byte gBattleFrontierTrainerMons_Alonzo
@ 222 @ 222
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "VINCE$", 8 .string "VINCE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_THE .2byte EC_WORD_THE
@@ -5799,7 +5799,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Vince .4byte gBattleFrontierTrainerMons_Vince
@ 223 @ 223
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "BRYON$", 8 .string "BRYON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -5825,7 +5825,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Bryon .4byte gBattleFrontierTrainerMons_Bryon
@ 224 @ 224
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "AVA$", 8 .string "AVA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -5851,7 +5851,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Ava .4byte gBattleFrontierTrainerMons_Ava
@ 225 @ 225
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "MIRIAM$", 8 .string "MIRIAM$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_OH .2byte EC_WORD_OH
@@ -5877,7 +5877,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Miriam .4byte gBattleFrontierTrainerMons_Miriam
@ 226 @ 226
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "CARRIE$", 8 .string "CARRIE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -5903,7 +5903,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Carrie .4byte gBattleFrontierTrainerMons_Carrie
@ 227 @ 227
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "GILLIAN$", 8 .string "GILLIAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -5929,7 +5929,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Gillian2 .4byte gBattleFrontierTrainerMons_Gillian2
@ 228 @ 228
.4byte FACILITY_CLASS_PKMN_RANGER_1 .4byte FACILITY_CLASS_PKMN_RANGER_M
.string "TYLER$", 8 .string "TYLER$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_YO .2byte EC_WORD_YO
@@ -5955,7 +5955,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Tyler .4byte gBattleFrontierTrainerMons_Tyler
@ 229 @ 229
.4byte FACILITY_CLASS_PKMN_RANGER_1 .4byte FACILITY_CLASS_PKMN_RANGER_M
.string "CHAZ$", 8 .string "CHAZ$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -5981,7 +5981,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Chaz .4byte gBattleFrontierTrainerMons_Chaz
@ 230 @ 230
.4byte FACILITY_CLASS_PKMN_RANGER_1 .4byte FACILITY_CLASS_PKMN_RANGER_M
.string "NELSON$", 8 .string "NELSON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_WELL_THEN .2byte EC_WORD_WELL_THEN
@@ -6007,7 +6007,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Nelson .4byte gBattleFrontierTrainerMons_Nelson
@ 231 @ 231
.4byte FACILITY_CLASS_PKMN_RANGER_2 .4byte FACILITY_CLASS_PKMN_RANGER_F
.string "SHANIA$", 8 .string "SHANIA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_ALL .2byte EC_WORD_ALL
@@ -6033,7 +6033,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Shania .4byte gBattleFrontierTrainerMons_Shania
@ 232 @ 232
.4byte FACILITY_CLASS_PKMN_RANGER_2 .4byte FACILITY_CLASS_PKMN_RANGER_F
.string "STELLA$", 8 .string "STELLA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -6059,7 +6059,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Stella .4byte gBattleFrontierTrainerMons_Stella
@ 233 @ 233
.4byte FACILITY_CLASS_PKMN_RANGER_2 .4byte FACILITY_CLASS_PKMN_RANGER_F
.string "DORINE$", 8 .string "DORINE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -6319,7 +6319,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Alana .4byte gBattleFrontierTrainerMons_Alana
@ 243 @ 243
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "ALEXAS$", 8 .string "ALEXAS$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_GOOD .2byte EC_WORD_GOOD
@@ -6345,7 +6345,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Alexas .4byte gBattleFrontierTrainerMons_Alexas
@ 244 @ 244
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "WESTON$", 8 .string "WESTON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -6371,7 +6371,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Weston .4byte gBattleFrontierTrainerMons_Weston
@ 245 @ 245
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "JASPER$", 8 .string "JASPER$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -6475,7 +6475,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Emma .4byte gBattleFrontierTrainerMons_Emma
@ 249 @ 249
.4byte FACILITY_CLASS_PSYCHIC_1 .4byte FACILITY_CLASS_PSYCHIC_M
.string "ROLANDO$", 8 .string "ROLANDO$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -6501,7 +6501,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Rolando .4byte gBattleFrontierTrainerMons_Rolando
@ 250 @ 250
.4byte FACILITY_CLASS_PSYCHIC_1 .4byte FACILITY_CLASS_PSYCHIC_M
.string "STANLY$", 8 .string "STANLY$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_THIS .2byte EC_WORD_THIS
@@ -6527,7 +6527,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Stanly .4byte gBattleFrontierTrainerMons_Stanly
@ 251 @ 251
.4byte FACILITY_CLASS_PSYCHIC_1 .4byte FACILITY_CLASS_PSYCHIC_M
.string "DARIO$", 8 .string "DARIO$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -6553,7 +6553,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Dario .4byte gBattleFrontierTrainerMons_Dario
@ 252 @ 252
.4byte FACILITY_CLASS_PSYCHIC_2 .4byte FACILITY_CLASS_PSYCHIC_F
.string "KARLEE$", 8 .string "KARLEE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_SOMETHING .2byte EC_WORD_SOMETHING
@@ -6579,7 +6579,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Karlee .4byte gBattleFrontierTrainerMons_Karlee
@ 253 @ 253
.4byte FACILITY_CLASS_PSYCHIC_2 .4byte FACILITY_CLASS_PSYCHIC_F
.string "JAYLIN$", 8 .string "JAYLIN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_EVERY .2byte EC_WORD_EVERY
@@ -6605,7 +6605,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Jaylin .4byte gBattleFrontierTrainerMons_Jaylin
@ 254 @ 254
.4byte FACILITY_CLASS_PSYCHIC_2 .4byte FACILITY_CLASS_PSYCHIC_F
.string "INGRID$", 8 .string "INGRID$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -339,7 +339,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Conrad .4byte gFallarborBattleTentTrainerMons_Conrad
@ 13 @ 13
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "MAKENNA$", 8 .string "MAKENNA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_SHOW .2byte EC_WORD_SHOW
@@ -365,7 +365,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Makenna .4byte gFallarborBattleTentTrainerMons_Makenna
@ 14 @ 14
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "BRAYAN$", 8 .string "BRAYAN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_CAN .2byte EC_WORD_CAN
@@ -391,7 +391,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Brayan .4byte gFallarborBattleTentTrainerMons_Brayan
@ 15 @ 15
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "MARIANA$", 8 .string "MARIANA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_A .2byte EC_WORD_A
@@ -469,7 +469,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Gianna .4byte gFallarborBattleTentTrainerMons_Gianna
@ 18 @ 18
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "YAHIR$", 8 .string "YAHIR$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_YOU .2byte EC_WORD_YOU
@@ -339,7 +339,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Kyler .4byte gSlateportBattleTentTrainerMons_Kyler
@ 13 @ 13
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "MAGGIE$", 8 .string "MAGGIE$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_POKEMON(VULPIX) .2byte EC_POKEMON(VULPIX)
@@ -365,7 +365,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Maggie .4byte gSlateportBattleTentTrainerMons_Maggie
@ 14 @ 14
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "STEPHON$", 8 .string "STEPHON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I_AM .2byte EC_WORD_I_AM
@@ -391,7 +391,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Stephon .4byte gSlateportBattleTentTrainerMons_Stephon
@ 15 @ 15
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "REBECCA$", 8 .string "REBECCA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_THAT .2byte EC_WORD_THAT
@@ -469,7 +469,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Janae .4byte gSlateportBattleTentTrainerMons_Janae
@ 18 @ 18
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "CAIDEN$", 8 .string "CAIDEN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_MY .2byte EC_WORD_MY
@@ -339,7 +339,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Ernesto .4byte gVerdanturfBattleTentTrainerMons_Ernesto
@ 13 @ 13
.4byte FACILITY_CLASS_SCHOOL_KID_2 .4byte FACILITY_CLASS_SCHOOL_KID_F
.string "NALA$", 8 .string "NALA$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -365,7 +365,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Nala .4byte gVerdanturfBattleTentTrainerMons_Nala
@ 14 @ 14
.4byte FACILITY_CLASS_COOLTRAINER_1 .4byte FACILITY_CLASS_COOLTRAINER_M
.string "DARNELL$", 8 .string "DARNELL$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -391,7 +391,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Darnell .4byte gVerdanturfBattleTentTrainerMons_Darnell
@ 15 @ 15
.4byte FACILITY_CLASS_COOLTRAINER_2 .4byte FACILITY_CLASS_COOLTRAINER_F
.string "ASHLYN$", 8 .string "ASHLYN$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_I .2byte EC_WORD_I
@@ -469,7 +469,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Justine .4byte gVerdanturfBattleTentTrainerMons_Justine
@ 18 @ 18
.4byte FACILITY_CLASS_EXPERT_1 .4byte FACILITY_CLASS_EXPERT_M
.string "TYSON$", 8 .string "TYSON$", 8
@ pre-battle speech @ pre-battle speech
.2byte EC_WORD_YOU_RE .2byte EC_WORD_YOU_RE
+16 -16
View File
@@ -22,31 +22,31 @@ gUnknown_082FF2B8:: @ 82FF2B8
.align 2 .align 2
gUnknown_082FF3A8:: @ 82FF3A8 gUnknown_082FF3A8:: @ 82FF3A8
.byte 0x00, 0x80, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0x8000, 0x800
.byte 0x00, 0x88, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0x8800, 0x800
.byte 0x00, 0x90, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0x9000, 0x800
.byte 0x00, 0x98, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0x9800, 0x800
.align 2 .align 2
gUnknown_082FF3C8:: @ 82FF3C8 gUnknown_082FF3C8:: @ 82FF3C8
.byte 0x00, 0xa0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xA000, 0x800
.byte 0x00, 0xa8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xA800, 0x800
.byte 0x00, 0xb0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xB000, 0x800
.byte 0x00, 0xb8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xB800, 0x800
.align 2 .align 2
gUnknown_082FF3E8:: @ 82FF3E8 gUnknown_082FF3E8:: @ 82FF3E8
.byte 0x00, 0xc0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xC000, 0x800
.byte 0x00, 0xc8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xC800, 0x800
.byte 0x00, 0xd0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xD000, 0x800
.byte 0x00, 0xd8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xD800, 0x800
.align 2 .align 2
gUnknown_082FF408:: @ 82FF408 gUnknown_082FF408:: @ 82FF408
.byte 0x00, 0xe0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xE000, 0x800
.byte 0x00, 0xe8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xE800, 0x800
.byte 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xF000, 0x800
.byte 0x00, 0xf8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 obj_frame_tiles gHeap + 0xF800, 0x800
.align 2 .align 2
gUnknown_082FF428:: @ 82FF428 gUnknown_082FF428:: @ 82FF428
-151
View File
@@ -1,151 +0,0 @@
#include "constants/abilities.h"
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/species.h"
#include "constants/trainers.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
@ 83299EC
.include "data/graphics/pokemon/front_anim_ids_table.inc"
@ 8329B87
.include "data/graphics/pokemon/animation_delay_table.inc"
.align 1
gUnknown_08329D22:: @ 8329D22
@ Masks for getting PP Up count, also PP Max values
.byte 0x03, 0x0c, 0x30, 0xc0
.align 1
gUnknown_08329D26:: @ 8329D26
@ Masks for setting PP Up count
.byte 0xfc, 0xf3, 0xcf, 0x3f
.align 1
gUnknown_08329D2A:: @ 8329D2A
@ Values added to PP Up count
.byte 0x01, 0x04, 0x10, 0x40
.align 1
gStatStageRatios:: @ 8329D2E
.byte 0x0a, 0x28
.byte 0x0a, 0x23
.byte 0x0a, 0x1e
.byte 0x0a, 0x19
.byte 0x0a, 0x14
.byte 0x0a, 0x0f
.byte 0x0a, 0x0a
.byte 0x0f, 0x0a
.byte 0x14, 0x0a
.byte 0x19, 0x0a
.byte 0x1e, 0x0a
.byte 0x23, 0x0a
.byte 0x28, 0x0a
.align 1
gUnknown_08329D48:: @ 8329D48
.2byte 0x0032, 0x005f, 0x005a, 0x00b4, 0x005f, 0x005a
.align 1
gUnknown_08329D54:: @ 8329D54
.2byte 0x0003, 0x000a, 0x001b, 0x002b, 0x001e, 0x0043, 0x0042, 0x0019
.2byte 0x0012, 0x000c, 0x001c, 0x0047, 0x001f, 0x0036, 0x0002, 0x0014
.align 1
gHoldEffectToType:: @ 8329D74
.byte 0x1f, 0x06
.byte 0x2a, 0x08
.byte 0x2e, 0x04
.byte 0x2f, 0x05
.byte 0x30, 0x0c
.byte 0x31, 0x11
.byte 0x32, 0x01
.byte 0x33, 0x0d
.byte 0x34, 0x0b
.byte 0x35, 0x02
.byte 0x36, 0x03
.byte 0x37, 0x0f
.byte 0x38, 0x07
.byte 0x39, 0x0e
.byte 0x3a, 0x0a
.byte 0x3b, 0x10
.byte 0x3c, 0x00
.byte 0x00, 0x00
.align 2
gUnknown_08329D98:: @ 8329D98
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF3A8, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACA8, NULL, gUnknown_082FF3C8, gUnknown_082FF694, oac_poke_opponent
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF3E8, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACA8, NULL, gUnknown_082FF408, gUnknown_082FF694, oac_poke_opponent
.align 2
gUnknown_08329DF8:: @ 8329DF8
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF428, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF448, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF468, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF490, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4B8, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4D8, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4F8, gUnknown_082FF618, sub_8039BB4
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF518, gUnknown_082FF618, sub_8039BB4
gSecretBaseTrainerClasses:: @ 8329EB8
.byte FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_CAMPER, FACILITY_CLASS_COOLTRAINER_1
.byte FACILITY_CLASS_LASS, FACILITY_CLASS_SCHOOL_KID_2, FACILITY_CLASS_LADY, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_COOLTRAINER_2
gUnknown_08329EC2:: @ 8329EC2
.byte 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x1e
gUnknown_08329EC8:: @ 8329EC8
.byte 1, 1, 3, 2, 4, 6
gUnknown_08329ECE:: @ 8329ECE
@ Happiness deltas
.byte 0x05, 0x03, 0x02
.byte 0x05, 0x03, 0x02
.byte 0x01, 0x01, 0x00
.byte 0x03, 0x02, 0x01
.byte 0x01, 0x01, 0x00
.byte 0x01, 0x01, 0x01
.byte 0xff, 0xff, 0xff
.byte 0xfb, 0xfb, 0xf6
.byte 0xfb, 0xfb, 0xf6
.align 1
gHMMoves:: @ 8329EEA
.2byte MOVE_CUT
.2byte MOVE_FLY
.2byte MOVE_SURF
.2byte MOVE_STRENGTH
.2byte MOVE_FLASH
.2byte MOVE_ROCK_SMASH
.2byte MOVE_WATERFALL
.2byte MOVE_DIVE
.2byte 0xffff
.align 1
gAlteringCaveWildMonHeldItems:: @ 8329EFC
.2byte 0, ITEM_NONE
.2byte SPECIES_MAREEP, ITEM_GANLON_BERRY
.2byte SPECIES_PINECO, ITEM_APICOT_BERRY
.2byte SPECIES_HOUNDOUR, ITEM_BIG_MUSHROOM
.2byte SPECIES_TEDDIURSA, ITEM_PETAYA_BERRY
.2byte SPECIES_AIPOM, ITEM_BERRY_JUICE
.2byte SPECIES_SHUCKLE, ITEM_BERRY_JUICE
.2byte SPECIES_STANTLER, ITEM_PETAYA_BERRY
.2byte SPECIES_SMEARGLE, ITEM_SALAC_BERRY
.align 2
gUnknown_08329F20:: @ 8329F20
.byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
.align 2
gUnknown_08329F28:: @ 8329F28
spr_template 0xffff, 0xffff, gUnknown_08329F20, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
@@ -1,412 +0,0 @@
gMonAnimationDelayTable:: @ 8329B87
.byte 0x00 @ SPECIES_BULBASAUR
.byte 0x00 @ SPECIES_IVYSAUR
.byte 0x00 @ SPECIES_VENUSAUR
.byte 0x00 @ SPECIES_CHARMANDER
.byte 0x00 @ SPECIES_CHARMELEON
.byte 0x00 @ SPECIES_CHARIZARD
.byte 0x00 @ SPECIES_SQUIRTLE
.byte 0x00 @ SPECIES_WARTORTLE
.byte 0x32 @ SPECIES_BLASTOISE
.byte 0x00 @ SPECIES_CATERPIE
.byte 0x00 @ SPECIES_METAPOD
.byte 0x00 @ SPECIES_BUTTERFREE
.byte 0x0a @ SPECIES_WEEDLE
.byte 0x14 @ SPECIES_KAKUNA
.byte 0x23 @ SPECIES_BEEDRILL
.byte 0x00 @ SPECIES_PIDGEY
.byte 0x19 @ SPECIES_PIDGEOTTO
.byte 0x00 @ SPECIES_PIDGEOT
.byte 0x00 @ SPECIES_RATTATA
.byte 0x00 @ SPECIES_RATICATE
.byte 0x00 @ SPECIES_SPEAROW
.byte 0x02 @ SPECIES_FEAROW
.byte 0x1e @ SPECIES_EKANS
.byte 0x00 @ SPECIES_ARBOK
.byte 0x00 @ SPECIES_PIKACHU
.byte 0x00 @ SPECIES_RAICHU
.byte 0x00 @ SPECIES_SANDSHREW
.byte 0x00 @ SPECIES_SANDSLASH
.byte 0x1c @ SPECIES_NIDORAN_F
.byte 0x00 @ SPECIES_NIDORINA
.byte 0x00 @ SPECIES_NIDOQUEEN
.byte 0x00 @ SPECIES_NIDORAN_M
.byte 0x00 @ SPECIES_NIDORINO
.byte 0x19 @ SPECIES_NIDOKING
.byte 0x00 @ SPECIES_CLEFAIRY
.byte 0x00 @ SPECIES_CLEFABLE
.byte 0x00 @ SPECIES_VULPIX
.byte 0x00 @ SPECIES_NINETALES
.byte 0x00 @ SPECIES_JIGGLYPUFF
.byte 0x00 @ SPECIES_WIGGLYTUFF
.byte 0x00 @ SPECIES_ZUBAT
.byte 0x00 @ SPECIES_GOLBAT
.byte 0x00 @ SPECIES_ODDISH
.byte 0x00 @ SPECIES_GLOOM
.byte 0x00 @ SPECIES_VILEPLUME
.byte 0x0a @ SPECIES_PARAS
.byte 0x2d @ SPECIES_PARASECT
.byte 0x14 @ SPECIES_VENONAT
.byte 0x00 @ SPECIES_VENOMOTH
.byte 0x19 @ SPECIES_DIGLETT
.byte 0x23 @ SPECIES_DUGTRIO
.byte 0x28 @ SPECIES_MEOWTH
.byte 0x14 @ SPECIES_PERSIAN
.byte 0x00 @ SPECIES_PSYDUCK
.byte 0x00 @ SPECIES_GOLDUCK
.byte 0x14 @ SPECIES_MANKEY
.byte 0x00 @ SPECIES_PRIMEAPE
.byte 0x1e @ SPECIES_GROWLITHE
.byte 0x28 @ SPECIES_ARCANINE
.byte 0x00 @ SPECIES_POLIWAG
.byte 0x05 @ SPECIES_POLIWHIRL
.byte 0x00 @ SPECIES_POLIWRATH
.byte 0x00 @ SPECIES_ABRA
.byte 0x00 @ SPECIES_KADABRA
.byte 0x00 @ SPECIES_ALAKAZAM
.byte 0x00 @ SPECIES_MACHOP
.byte 0x00 @ SPECIES_MACHOKE
.byte 0x00 @ SPECIES_MACHAMP
.byte 0x00 @ SPECIES_BELLSPROUT
.byte 0x03 @ SPECIES_WEEPINBELL
.byte 0x00 @ SPECIES_VICTREEBEL
.byte 0x00 @ SPECIES_TENTACOOL
.byte 0x00 @ SPECIES_TENTACRUEL
.byte 0x00 @ SPECIES_GEODUDE
.byte 0x00 @ SPECIES_GRAVELER
.byte 0x00 @ SPECIES_GOLEM
.byte 0x00 @ SPECIES_PONYTA
.byte 0x00 @ SPECIES_RAPIDASH
.byte 0x00 @ SPECIES_SLOWPOKE
.byte 0x00 @ SPECIES_SLOWBRO
.byte 0x00 @ SPECIES_MAGNEMITE
.byte 0x00 @ SPECIES_MAGNETON
.byte 0x00 @ SPECIES_FARFETCHD
.byte 0x00 @ SPECIES_DODUO
.byte 0x00 @ SPECIES_DODRIO
.byte 0x00 @ SPECIES_SEEL
.byte 0x00 @ SPECIES_DEWGONG
.byte 0x00 @ SPECIES_GRIMER
.byte 0x2d @ SPECIES_MUK
.byte 0x14 @ SPECIES_SHELLDER
.byte 0x00 @ SPECIES_CLOYSTER
.byte 0x00 @ SPECIES_GASTLY
.byte 0x17 @ SPECIES_HAUNTER
.byte 0x00 @ SPECIES_GENGAR
.byte 0x00 @ SPECIES_ONIX
.byte 0x30 @ SPECIES_DROWZEE
.byte 0x28 @ SPECIES_HYPNO
.byte 0x00 @ SPECIES_KRABBY
.byte 0x00 @ SPECIES_KINGLER
.byte 0x00 @ SPECIES_VOLTORB
.byte 0x00 @ SPECIES_ELECTRODE
.byte 0x00 @ SPECIES_EXEGGCUTE
.byte 0x00 @ SPECIES_EXEGGUTOR
.byte 0x00 @ SPECIES_CUBONE
.byte 0x00 @ SPECIES_MAROWAK
.byte 0x00 @ SPECIES_HITMONLEE
.byte 0x19 @ SPECIES_HITMONCHAN
.byte 0x00 @ SPECIES_LICKITUNG
.byte 0x00 @ SPECIES_KOFFING
.byte 0x00 @ SPECIES_WEEZING
.byte 0x00 @ SPECIES_RHYHORN
.byte 0x00 @ SPECIES_RHYDON
.byte 0x00 @ SPECIES_CHANSEY
.byte 0x00 @ SPECIES_TANGELA
.byte 0x00 @ SPECIES_KANGASKHAN
.byte 0x00 @ SPECIES_HORSEA
.byte 0x00 @ SPECIES_SEADRA
.byte 0x00 @ SPECIES_GOLDEEN
.byte 0x00 @ SPECIES_SEAKING
.byte 0x00 @ SPECIES_STARYU
.byte 0x00 @ SPECIES_STARMIE
.byte 0x00 @ SPECIES_MR_MIME
.byte 0x0a @ SPECIES_SCYTHER
.byte 0x00 @ SPECIES_JYNX
.byte 0x00 @ SPECIES_ELECTABUZZ
.byte 0x00 @ SPECIES_MAGMAR
.byte 0x00 @ SPECIES_PINSIR
.byte 0x0a @ SPECIES_TAUROS
.byte 0x00 @ SPECIES_MAGIKARP
.byte 0x00 @ SPECIES_GYARADOS
.byte 0x00 @ SPECIES_LAPRAS
.byte 0x00 @ SPECIES_DITTO
.byte 0x00 @ SPECIES_EEVEE
.byte 0x00 @ SPECIES_VAPOREON
.byte 0x00 @ SPECIES_JOLTEON
.byte 0x00 @ SPECIES_FLAREON
.byte 0x00 @ SPECIES_PORYGON
.byte 0x00 @ SPECIES_OMANYTE
.byte 0x00 @ SPECIES_OMASTAR
.byte 0x00 @ SPECIES_KABUTO
.byte 0x00 @ SPECIES_KABUTOPS
.byte 0x00 @ SPECIES_AERODACTYL
.byte 0x00 @ SPECIES_SNORLAX
.byte 0x00 @ SPECIES_ARTICUNO
.byte 0x00 @ SPECIES_ZAPDOS
.byte 0x00 @ SPECIES_MOLTRES
.byte 0x00 @ SPECIES_DRATINI
.byte 0x00 @ SPECIES_DRAGONAIR
.byte 0x00 @ SPECIES_DRAGONITE
.byte 0x00 @ SPECIES_MEWTWO
.byte 0x00 @ SPECIES_MEW
.byte 0x00 @ SPECIES_CHIKORITA
.byte 0x00 @ SPECIES_BAYLEEF
.byte 0x00 @ SPECIES_MEGANIUM
.byte 0x00 @ SPECIES_CYNDAQUIL
.byte 0x00 @ SPECIES_QUILAVA
.byte 0x14 @ SPECIES_TYPHLOSION
.byte 0x00 @ SPECIES_TOTODILE
.byte 0x00 @ SPECIES_CROCONAW
.byte 0x05 @ SPECIES_FERALIGATR
.byte 0x00 @ SPECIES_SENTRET
.byte 0x00 @ SPECIES_FURRET
.byte 0x00 @ SPECIES_HOOTHOOT
.byte 0x00 @ SPECIES_NOCTOWL
.byte 0x00 @ SPECIES_LEDYBA
.byte 0x00 @ SPECIES_LEDIAN
.byte 0x00 @ SPECIES_SPINARAK
.byte 0x00 @ SPECIES_ARIADOS
.byte 0x00 @ SPECIES_CROBAT
.byte 0x00 @ SPECIES_CHINCHOU
.byte 0x00 @ SPECIES_LANTURN
.byte 0x00 @ SPECIES_PICHU
.byte 0x00 @ SPECIES_CLEFFA
.byte 0x00 @ SPECIES_IGGLYBUFF
.byte 0x00 @ SPECIES_TOGEPI
.byte 0x00 @ SPECIES_TOGETIC
.byte 0x1e @ SPECIES_NATU
.byte 0x00 @ SPECIES_XATU
.byte 0x32 @ SPECIES_MAREEP
.byte 0x00 @ SPECIES_FLAAFFY
.byte 0x0a @ SPECIES_AMPHAROS
.byte 0x00 @ SPECIES_BELLOSSOM
.byte 0x00 @ SPECIES_MARILL
.byte 0x00 @ SPECIES_AZUMARILL
.byte 0x00 @ SPECIES_SUDOWOODO
.byte 0x28 @ SPECIES_POLITOED
.byte 0x00 @ SPECIES_HOPPIP
.byte 0x00 @ SPECIES_SKIPLOOM
.byte 0x00 @ SPECIES_JUMPLUFF
.byte 0x00 @ SPECIES_AIPOM
.byte 0x00 @ SPECIES_SUNKERN
.byte 0x00 @ SPECIES_SUNFLORA
.byte 0x00 @ SPECIES_YANMA
.byte 0x00 @ SPECIES_WOOPER
.byte 0x00 @ SPECIES_QUAGSIRE
.byte 0x00 @ SPECIES_ESPEON
.byte 0x00 @ SPECIES_UMBREON
.byte 0x00 @ SPECIES_MURKROW
.byte 0x00 @ SPECIES_SLOWKING
.byte 0x00 @ SPECIES_MISDREAVUS
.byte 0x00 @ SPECIES_UNOWN
.byte 0x00 @ SPECIES_WOBBUFFET
.byte 0x00 @ SPECIES_GIRAFARIG
.byte 0x00 @ SPECIES_PINECO
.byte 0x00 @ SPECIES_FORRETRESS
.byte 0x0a @ SPECIES_DUNSPARCE
.byte 0x00 @ SPECIES_GLIGAR
.byte 0x2d @ SPECIES_STEELIX
.byte 0x00 @ SPECIES_SNUBBULL
.byte 0x00 @ SPECIES_GRANBULL
.byte 0x27 @ SPECIES_QWILFISH
.byte 0x13 @ SPECIES_SCIZOR
.byte 0x00 @ SPECIES_SHUCKLE
.byte 0x00 @ SPECIES_HERACROSS
.byte 0x00 @ SPECIES_SNEASEL
.byte 0x00 @ SPECIES_TEDDIURSA
.byte 0x00 @ SPECIES_URSARING
.byte 0x00 @ SPECIES_SLUGMA
.byte 0x00 @ SPECIES_MAGCARGO
.byte 0x00 @ SPECIES_SWINUB
.byte 0x00 @ SPECIES_PILOSWINE
.byte 0x00 @ SPECIES_CORSOLA
.byte 0x00 @ SPECIES_REMORAID
.byte 0x14 @ SPECIES_OCTILLERY
.byte 0x00 @ SPECIES_DELIBIRD
.byte 0x00 @ SPECIES_MANTINE
.byte 0x00 @ SPECIES_SKARMORY
.byte 0x00 @ SPECIES_HOUNDOUR
.byte 0x00 @ SPECIES_HOUNDOOM
.byte 0x00 @ SPECIES_KINGDRA
.byte 0x00 @ SPECIES_PHANPY
.byte 0x00 @ SPECIES_DONPHAN
.byte 0x00 @ SPECIES_PORYGON2
.byte 0x00 @ SPECIES_STANTLER
.byte 0x00 @ SPECIES_SMEARGLE
.byte 0x00 @ SPECIES_TYROGUE
.byte 0x00 @ SPECIES_HITMONTOP
.byte 0x28 @ SPECIES_SMOOCHUM
.byte 0x00 @ SPECIES_ELEKID
.byte 0x00 @ SPECIES_MAGBY
.byte 0x00 @ SPECIES_MILTANK
.byte 0x00 @ SPECIES_BLISSEY
.byte 0x00 @ SPECIES_RAIKOU
.byte 0x00 @ SPECIES_ENTEI
.byte 0x00 @ SPECIES_SUICUNE
.byte 0x00 @ SPECIES_LARVITAR
.byte 0x00 @ SPECIES_PUPITAR
.byte 0x0a @ SPECIES_TYRANITAR
.byte 0x14 @ SPECIES_LUGIA
.byte 0x00 @ SPECIES_HO_OH
.byte 0x00 @ SPECIES_CELEBI
.byte 0x00 @ 252
.byte 0x00 @ 253
.byte 0x00 @ 254
.byte 0x00 @ 255
.byte 0x00 @ 256
.byte 0x00 @ 257
.byte 0x00 @ 258
.byte 0x00 @ 259
.byte 0x00 @ 260
.byte 0x00 @ 261
.byte 0x00 @ 262
.byte 0x00 @ 263
.byte 0x00 @ 264
.byte 0x00 @ 265
.byte 0x00 @ 266
.byte 0x00 @ 267
.byte 0x00 @ 268
.byte 0x00 @ 269
.byte 0x00 @ 270
.byte 0x00 @ 271
.byte 0x00 @ 272
.byte 0x00 @ 273
.byte 0x00 @ 274
.byte 0x00 @ 275
.byte 0x00 @ 276
.byte 0x00 @ SPECIES_TREECKO
.byte 0x00 @ SPECIES_GROVYLE
.byte 0x00 @ SPECIES_SCEPTILE
.byte 0x00 @ SPECIES_TORCHIC
.byte 0x00 @ SPECIES_COMBUSKEN
.byte 0x00 @ SPECIES_BLAZIKEN
.byte 0x00 @ SPECIES_MUDKIP
.byte 0x00 @ SPECIES_MARSHTOMP
.byte 0x00 @ SPECIES_SWAMPERT
.byte 0x00 @ SPECIES_POOCHYENA
.byte 0x00 @ SPECIES_MIGHTYENA
.byte 0x00 @ SPECIES_ZIGZAGOON
.byte 0x00 @ SPECIES_LINOONE
.byte 0x00 @ SPECIES_WURMPLE
.byte 0x00 @ SPECIES_SILCOON
.byte 0x00 @ SPECIES_BEAUTIFLY
.byte 0x00 @ SPECIES_CASCOON
.byte 0x00 @ SPECIES_DUSTOX
.byte 0x00 @ SPECIES_LOTAD
.byte 0x00 @ SPECIES_LOMBRE
.byte 0x00 @ SPECIES_LUDICOLO
.byte 0x00 @ SPECIES_SEEDOT
.byte 0x00 @ SPECIES_NUZLEAF
.byte 0x00 @ SPECIES_SHIFTRY
.byte 0x00 @ SPECIES_NINCADA
.byte 0x00 @ SPECIES_NINJASK
.byte 0x00 @ SPECIES_SHEDINJA
.byte 0x00 @ SPECIES_TAILLOW
.byte 0x00 @ SPECIES_SWELLOW
.byte 0x00 @ SPECIES_SHROOMISH
.byte 0x00 @ SPECIES_BRELOOM
.byte 0x00 @ SPECIES_SPINDA
.byte 0x00 @ SPECIES_WINGULL
.byte 0x00 @ SPECIES_PELIPPER
.byte 0x00 @ SPECIES_SURSKIT
.byte 0x00 @ SPECIES_MASQUERAIN
.byte 0x00 @ SPECIES_WAILMER
.byte 0x0a @ SPECIES_WAILORD
.byte 0x00 @ SPECIES_SKITTY
.byte 0x00 @ SPECIES_DELCATTY
.byte 0x1e @ SPECIES_KECLEON
.byte 0x00 @ SPECIES_BALTOY
.byte 0x00 @ SPECIES_CLAYDOL
.byte 0x00 @ SPECIES_NOSEPASS
.byte 0x00 @ SPECIES_TORKOAL
.byte 0x00 @ SPECIES_SABLEYE
.byte 0x00 @ SPECIES_BARBOACH
.byte 0x00 @ SPECIES_WHISCASH
.byte 0x00 @ SPECIES_LUVDISC
.byte 0x00 @ SPECIES_CORPHISH
.byte 0x00 @ SPECIES_CRAWDAUNT
.byte 0x00 @ SPECIES_FEEBAS
.byte 0x2d @ SPECIES_MILOTIC
.byte 0x00 @ SPECIES_CARVANHA
.byte 0x00 @ SPECIES_SHARPEDO
.byte 0x00 @ SPECIES_TRAPINCH
.byte 0x00 @ SPECIES_VIBRAVA
.byte 0x00 @ SPECIES_FLYGON
.byte 0x00 @ SPECIES_MAKUHITA
.byte 0x00 @ SPECIES_HARIYAMA
.byte 0x00 @ SPECIES_ELECTRIKE
.byte 0x00 @ SPECIES_MANECTRIC
.byte 0x00 @ SPECIES_NUMEL
.byte 0x00 @ SPECIES_CAMERUPT
.byte 0x0f @ SPECIES_SPHEAL
.byte 0x00 @ SPECIES_SEALEO
.byte 0x00 @ SPECIES_WALREIN
.byte 0x00 @ SPECIES_CACNEA
.byte 0x00 @ SPECIES_CACTURNE
.byte 0x14 @ SPECIES_SNORUNT
.byte 0x00 @ SPECIES_GLALIE
.byte 0x00 @ SPECIES_LUNATONE
.byte 0x00 @ SPECIES_SOLROCK
.byte 0x00 @ SPECIES_AZURILL
.byte 0x00 @ SPECIES_SPOINK
.byte 0x0f @ SPECIES_GRUMPIG
.byte 0x00 @ SPECIES_PLUSLE
.byte 0x00 @ SPECIES_MINUN
.byte 0x00 @ SPECIES_MAWILE
.byte 0x00 @ SPECIES_MEDITITE
.byte 0x00 @ SPECIES_MEDICHAM
.byte 0x00 @ SPECIES_SWABLU
.byte 0x00 @ SPECIES_ALTARIA
.byte 0x0f @ SPECIES_WYNAUT
.byte 0x00 @ SPECIES_DUSKULL
.byte 0x1e @ SPECIES_DUSCLOPS
.byte 0x00 @ SPECIES_ROSELIA
.byte 0x00 @ SPECIES_SLAKOTH
.byte 0x00 @ SPECIES_VIGOROTH
.byte 0x00 @ SPECIES_SLAKING
.byte 0x00 @ SPECIES_GULPIN
.byte 0x00 @ SPECIES_SWALOT
.byte 0x00 @ SPECIES_TROPIUS
.byte 0x00 @ SPECIES_WHISMUR
.byte 0x00 @ SPECIES_LOUDRED
.byte 0x00 @ SPECIES_EXPLOUD
.byte 0x00 @ SPECIES_CLAMPERL
.byte 0x00 @ SPECIES_HUNTAIL
.byte 0x00 @ SPECIES_GOREBYSS
.byte 0x2d @ SPECIES_ABSOL
.byte 0x00 @ SPECIES_SHUPPET
.byte 0x00 @ SPECIES_BANETTE
.byte 0x00 @ SPECIES_SEVIPER
.byte 0x00 @ SPECIES_ZANGOOSE
.byte 0x00 @ SPECIES_RELICANTH
.byte 0x00 @ SPECIES_ARON
.byte 0x00 @ SPECIES_LAIRON
.byte 0x00 @ SPECIES_AGGRON
.byte 0x00 @ SPECIES_CASTFORM
.byte 0x00 @ SPECIES_VOLBEAT
.byte 0x00 @ SPECIES_ILLUMISE
.byte 0x00 @ SPECIES_LILEEP
.byte 0x00 @ SPECIES_CRADILY
.byte 0x00 @ SPECIES_ANORITH
.byte 0x00 @ SPECIES_ARMALDO
.byte 0x00 @ SPECIES_RALTS
.byte 0x00 @ SPECIES_KIRLIA
.byte 0x00 @ SPECIES_GARDEVOIR
.byte 0x00 @ SPECIES_BAGON
.byte 0x00 @ SPECIES_SHELGON
.byte 0x46 @ SPECIES_SALAMENCE
.byte 0x00 @ SPECIES_BELDUM
.byte 0x00 @ SPECIES_METANG
.byte 0x00 @ SPECIES_METAGROSS
.byte 0x00 @ SPECIES_REGIROCK
.byte 0x00 @ SPECIES_REGICE
.byte 0x00 @ SPECIES_REGISTEEL
.byte 0x3c @ SPECIES_KYOGRE
.byte 0x00 @ SPECIES_GROUDON
.byte 0x3c @ SPECIES_RAYQUAZA
.byte 0x00 @ SPECIES_LATIAS
.byte 0x00 @ SPECIES_LATIOS
.byte 0x00 @ SPECIES_JIRACHI
.byte 0x00 @ SPECIES_DEOXYS
.byte 0x00 @ SPECIES_CHIMECHO
@@ -1,412 +0,0 @@
gMonFrontAnimIdsTable:: @ 83299EC
.byte 0x06 @ SPECIES_BULBASAUR
.byte 0x17 @ SPECIES_IVYSAUR
.byte 0x2f @ SPECIES_VENUSAUR
.byte 0x52 @ SPECIES_CHARMANDER
.byte 0x25 @ SPECIES_CHARMELEON
.byte 0x10 @ SPECIES_CHARIZARD
.byte 0x0b @ SPECIES_SQUIRTLE
.byte 0x13 @ SPECIES_WARTORTLE
.byte 0x19 @ SPECIES_BLASTOISE
.byte 0x0b @ SPECIES_CATERPIE
.byte 0x0b @ SPECIES_METAPOD
.byte 0x1d @ SPECIES_BUTTERFREE
.byte 0x46 @ SPECIES_WEEDLE
.byte 0x20 @ SPECIES_KAKUNA
.byte 0x02 @ SPECIES_BEEDRILL
.byte 0x47 @ SPECIES_PIDGEY
.byte 0x17 @ SPECIES_PIDGEOTTO
.byte 0x29 @ SPECIES_PIDGEOT
.byte 0x43 @ SPECIES_RATTATA
.byte 0x2b @ SPECIES_RATICATE
.byte 0x18 @ SPECIES_SPEAROW
.byte 0x2b @ SPECIES_FEAROW
.byte 0x16 @ SPECIES_EKANS
.byte 0x17 @ SPECIES_ARBOK
.byte 0x2c @ SPECIES_PIKACHU
.byte 0x17 @ SPECIES_RAICHU
.byte 0x2d @ SPECIES_SANDSHREW
.byte 0x17 @ SPECIES_SANDSLASH
.byte 0x00 @ SPECIES_NIDORAN_F
.byte 0x17 @ SPECIES_NIDORINA
.byte 0x0f @ SPECIES_NIDOQUEEN
.byte 0x09 @ SPECIES_NIDORAN_M
.byte 0x13 @ SPECIES_NIDORINO
.byte 0x0f @ SPECIES_NIDOKING
.byte 0x00 @ SPECIES_CLEFAIRY
.byte 0x4a @ SPECIES_CLEFABLE
.byte 0x17 @ SPECIES_VULPIX
.byte 0x10 @ SPECIES_NINETALES
.byte 0x48 @ SPECIES_JIGGLYPUFF
.byte 0x31 @ SPECIES_WIGGLYTUFF
.byte 0x00 @ SPECIES_ZUBAT
.byte 0x1d @ SPECIES_GOLBAT
.byte 0x00 @ SPECIES_ODDISH
.byte 0x45 @ SPECIES_GLOOM
.byte 0x49 @ SPECIES_VILEPLUME
.byte 0x46 @ SPECIES_PARAS
.byte 0x0f @ SPECIES_PARASECT
.byte 0x06 @ SPECIES_VENONAT
.byte 0x4b @ SPECIES_VENOMOTH
.byte 0x10 @ SPECIES_DIGLETT
.byte 0x4c @ SPECIES_DUGTRIO
.byte 0x52 @ SPECIES_MEOWTH
.byte 0x17 @ SPECIES_PERSIAN
.byte 0x06 @ SPECIES_PSYDUCK
.byte 0x4c @ SPECIES_GOLDUCK
.byte 0x32 @ SPECIES_MANKEY
.byte 0x48 @ SPECIES_PRIMEAPE
.byte 0x25 @ SPECIES_GROWLITHE
.byte 0x02 @ SPECIES_ARCANINE
.byte 0x00 @ SPECIES_POLIWAG
.byte 0x32 @ SPECIES_POLIWHIRL
.byte 0x19 @ SPECIES_POLIWRATH
.byte 0x31 @ SPECIES_ABRA
.byte 0x09 @ SPECIES_KADABRA
.byte 0x17 @ SPECIES_ALAKAZAM
.byte 0x00 @ SPECIES_MACHOP
.byte 0x10 @ SPECIES_MACHOKE
.byte 0x31 @ SPECIES_MACHAMP
.byte 0x17 @ SPECIES_BELLSPROUT
.byte 0x0d @ SPECIES_WEEPINBELL
.byte 0x32 @ SPECIES_VICTREEBEL
.byte 0x00 @ SPECIES_TENTACOOL
.byte 0x00 @ SPECIES_TENTACRUEL
.byte 0x48 @ SPECIES_GEODUDE
.byte 0x48 @ SPECIES_GRAVELER
.byte 0x2f @ SPECIES_GOLEM
.byte 0x20 @ SPECIES_PONYTA
.byte 0x11 @ SPECIES_RAPIDASH
.byte 0x45 @ SPECIES_SLOWPOKE
.byte 0x0b @ SPECIES_SLOWBRO
.byte 0x54 @ SPECIES_MAGNEMITE
.byte 0x2c @ SPECIES_MAGNETON
.byte 0x48 @ SPECIES_FARFETCHD
.byte 0x4c @ SPECIES_DODUO
.byte 0x41 @ SPECIES_DODRIO
.byte 0x0b @ SPECIES_SEEL
.byte 0x45 @ SPECIES_DEWGONG
.byte 0x46 @ SPECIES_GRIMER
.byte 0x30 @ SPECIES_MUK
.byte 0x12 @ SPECIES_SHELLDER
.byte 0x1d @ SPECIES_CLOYSTER
.byte 0x15 @ SPECIES_GASTLY
.byte 0x35 @ SPECIES_HAUNTER
.byte 0x3a @ SPECIES_GENGAR
.byte 0x43 @ SPECIES_ONIX
.byte 0x4f @ SPECIES_DROWZEE
.byte 0x09 @ SPECIES_HYPNO
.byte 0x03 @ SPECIES_KRABBY
.byte 0x4b @ SPECIES_KINGLER
.byte 0x00 @ SPECIES_VOLTORB
.byte 0x00 @ SPECIES_ELECTRODE
.byte 0x46 @ SPECIES_EXEGGCUTE
.byte 0x32 @ SPECIES_EXEGGUTOR
.byte 0x48 @ SPECIES_CUBONE
.byte 0x05 @ SPECIES_MAROWAK
.byte 0x16 @ SPECIES_HITMONLEE
.byte 0x09 @ SPECIES_HITMONCHAN
.byte 0x45 @ SPECIES_LICKITUNG
.byte 0x13 @ SPECIES_KOFFING
.byte 0x04 @ SPECIES_WEEZING
.byte 0x10 @ SPECIES_RHYHORN
.byte 0x13 @ SPECIES_RHYDON
.byte 0x45 @ SPECIES_CHANSEY
.byte 0x48 @ SPECIES_TANGELA
.byte 0x17 @ SPECIES_KANGASKHAN
.byte 0x12 @ SPECIES_HORSEA
.byte 0x04 @ SPECIES_SEADRA
.byte 0x0d @ SPECIES_GOLDEEN
.byte 0x1c @ SPECIES_SEAKING
.byte 0x4e @ SPECIES_STARYU
.byte 0x12 @ SPECIES_STARMIE
.byte 0x46 @ SPECIES_MR_MIME
.byte 0x02 @ SPECIES_SCYTHER
.byte 0x17 @ SPECIES_JYNX
.byte 0x2c @ SPECIES_ELECTABUZZ
.byte 0x0f @ SPECIES_MAGMAR
.byte 0x09 @ SPECIES_PINSIR
.byte 0x19 @ SPECIES_TAUROS
.byte 0x05 @ SPECIES_MAGIKARP
.byte 0x48 @ SPECIES_GYARADOS
.byte 0x17 @ SPECIES_LAPRAS
.byte 0x01 @ SPECIES_DITTO
.byte 0x17 @ SPECIES_EEVEE
.byte 0x17 @ SPECIES_VAPOREON
.byte 0x00 @ SPECIES_JOLTEON
.byte 0x17 @ SPECIES_FLAREON
.byte 0x52 @ SPECIES_PORYGON
.byte 0x51 @ SPECIES_OMANYTE
.byte 0x09 @ SPECIES_OMASTAR
.byte 0x1d @ SPECIES_KABUTO
.byte 0x0f @ SPECIES_KABUTOPS
.byte 0x47 @ SPECIES_AERODACTYL
.byte 0x0b @ SPECIES_SNORLAX
.byte 0x09 @ SPECIES_ARTICUNO
.byte 0x2c @ SPECIES_ZAPDOS
.byte 0x45 @ SPECIES_MOLTRES
.byte 0x00 @ SPECIES_DRATINI
.byte 0x10 @ SPECIES_DRAGONAIR
.byte 0x47 @ SPECIES_DRAGONITE
.byte 0x09 @ SPECIES_MEWTWO
.byte 0x0d @ SPECIES_MEW
.byte 0x00 @ SPECIES_CHIKORITA
.byte 0x00 @ SPECIES_BAYLEEF
.byte 0x17 @ SPECIES_MEGANIUM
.byte 0x52 @ SPECIES_CYNDAQUIL
.byte 0x17 @ SPECIES_QUILAVA
.byte 0x10 @ SPECIES_TYPHLOSION
.byte 0x31 @ SPECIES_TOTODILE
.byte 0x0f @ SPECIES_CROCONAW
.byte 0x0f @ SPECIES_FERALIGATR
.byte 0x00 @ SPECIES_SENTRET
.byte 0x32 @ SPECIES_FURRET
.byte 0x47 @ SPECIES_HOOTHOOT
.byte 0x17 @ SPECIES_NOCTOWL
.byte 0x52 @ SPECIES_LEDYBA
.byte 0x47 @ SPECIES_LEDIAN
.byte 0x4f @ SPECIES_SPINARAK
.byte 0x0f @ SPECIES_ARIADOS
.byte 0x00 @ SPECIES_CROBAT
.byte 0x45 @ SPECIES_CHINCHOU
.byte 0x51 @ SPECIES_LANTURN
.byte 0x1e @ SPECIES_PICHU
.byte 0x52 @ SPECIES_CLEFFA
.byte 0x0c @ SPECIES_IGGLYBUFF
.byte 0x0b @ SPECIES_TOGEPI
.byte 0x00 @ SPECIES_TOGETIC
.byte 0x31 @ SPECIES_NATU
.byte 0x09 @ SPECIES_XATU
.byte 0x00 @ SPECIES_MAREEP
.byte 0x1e @ SPECIES_FLAAFFY
.byte 0x2c @ SPECIES_AMPHAROS
.byte 0x0b @ SPECIES_BELLOSSOM
.byte 0x00 @ SPECIES_MARILL
.byte 0x4a @ SPECIES_AZUMARILL
.byte 0x46 @ SPECIES_SUDOWOODO
.byte 0x32 @ SPECIES_POLITOED
.byte 0x1c @ SPECIES_HOPPIP
.byte 0x18 @ SPECIES_SKIPLOOM
.byte 0x51 @ SPECIES_JUMPLUFF
.byte 0x32 @ SPECIES_AIPOM
.byte 0x52 @ SPECIES_SUNKERN
.byte 0x00 @ SPECIES_SUNFLORA
.byte 0x2b @ SPECIES_YANMA
.byte 0x00 @ SPECIES_WOOPER
.byte 0x16 @ SPECIES_QUAGSIRE
.byte 0x09 @ SPECIES_ESPEON
.byte 0x10 @ SPECIES_UMBREON
.byte 0x00 @ SPECIES_MURKROW
.byte 0x13 @ SPECIES_SLOWKING
.byte 0x1c @ SPECIES_MISDREAVUS
.byte 0x0a @ SPECIES_UNOWN
.byte 0x30 @ SPECIES_WOBBUFFET
.byte 0x1e @ SPECIES_GIRAFARIG
.byte 0x0b @ SPECIES_PINECO
.byte 0x10 @ SPECIES_FORRETRESS
.byte 0x00 @ SPECIES_DUNSPARCE
.byte 0x13 @ SPECIES_GLIGAR
.byte 0x0f @ SPECIES_STEELIX
.byte 0x17 @ SPECIES_SNUBBULL
.byte 0x10 @ SPECIES_GRANBULL
.byte 0x3a @ SPECIES_QWILFISH
.byte 0x02 @ SPECIES_SCIZOR
.byte 0x0b @ SPECIES_SHUCKLE
.byte 0x41 @ SPECIES_HERACROSS
.byte 0x16 @ SPECIES_SNEASEL
.byte 0x17 @ SPECIES_TEDDIURSA
.byte 0x10 @ SPECIES_URSARING
.byte 0x17 @ SPECIES_SLUGMA
.byte 0x17 @ SPECIES_MAGCARGO
.byte 0x00 @ SPECIES_SWINUB
.byte 0x0f @ SPECIES_PILOSWINE
.byte 0x03 @ SPECIES_CORSOLA
.byte 0x52 @ SPECIES_REMORAID
.byte 0x17 @ SPECIES_OCTILLERY
.byte 0x52 @ SPECIES_DELIBIRD
.byte 0x0d @ SPECIES_MANTINE
.byte 0x17 @ SPECIES_SKARMORY
.byte 0x17 @ SPECIES_HOUNDOUR
.byte 0x10 @ SPECIES_HOUNDOOM
.byte 0x42 @ SPECIES_KINGDRA
.byte 0x32 @ SPECIES_PHANPY
.byte 0x19 @ SPECIES_DONPHAN
.byte 0x00 @ SPECIES_PORYGON2
.byte 0x00 @ SPECIES_STANTLER
.byte 0x31 @ SPECIES_SMEARGLE
.byte 0x16 @ SPECIES_TYROGUE
.byte 0x02 @ SPECIES_HITMONTOP
.byte 0x09 @ SPECIES_SMOOCHUM
.byte 0x2c @ SPECIES_ELEKID
.byte 0x00 @ SPECIES_MAGBY
.byte 0x45 @ SPECIES_MILTANK
.byte 0x00 @ SPECIES_BLISSEY
.byte 0x2c @ SPECIES_RAIKOU
.byte 0x09 @ SPECIES_ENTEI
.byte 0x10 @ SPECIES_SUICUNE
.byte 0x52 @ SPECIES_LARVITAR
.byte 0x10 @ SPECIES_PUPITAR
.byte 0x0f @ SPECIES_TYRANITAR
.byte 0x3a @ SPECIES_LUGIA
.byte 0x09 @ SPECIES_HO_OH
.byte 0x18 @ SPECIES_CELEBI
.byte 0x00 @ 252
.byte 0x00 @ 253
.byte 0x00 @ 254
.byte 0x00 @ 255
.byte 0x00 @ 256
.byte 0x00 @ 257
.byte 0x00 @ 258
.byte 0x00 @ 259
.byte 0x00 @ 260
.byte 0x00 @ 261
.byte 0x00 @ 262
.byte 0x00 @ 263
.byte 0x00 @ 264
.byte 0x00 @ 265
.byte 0x00 @ 266
.byte 0x00 @ 267
.byte 0x00 @ 268
.byte 0x00 @ 269
.byte 0x00 @ 270
.byte 0x00 @ 271
.byte 0x00 @ 272
.byte 0x00 @ 273
.byte 0x00 @ 274
.byte 0x00 @ 275
.byte 0x00 @ 276
.byte 0x00 @ SPECIES_TREECKO
.byte 0x17 @ SPECIES_GROVYLE
.byte 0x10 @ SPECIES_SCEPTILE
.byte 0x16 @ SPECIES_TORCHIC
.byte 0x06 @ SPECIES_COMBUSKEN
.byte 0x0f @ SPECIES_BLAZIKEN
.byte 0x01 @ SPECIES_MUDKIP
.byte 0x04 @ SPECIES_MARSHTOMP
.byte 0x1e @ SPECIES_SWAMPERT
.byte 0x10 @ SPECIES_POOCHYENA
.byte 0x10 @ SPECIES_MIGHTYENA
.byte 0x03 @ SPECIES_ZIGZAGOON
.byte 0x09 @ SPECIES_LINOONE
.byte 0x00 @ SPECIES_WURMPLE
.byte 0x00 @ SPECIES_SILCOON
.byte 0x04 @ SPECIES_BEAUTIFLY
.byte 0x04 @ SPECIES_CASCOON
.byte 0x06 @ SPECIES_DUSTOX
.byte 0x00 @ SPECIES_LOTAD
.byte 0x00 @ SPECIES_LOMBRE
.byte 0x49 @ SPECIES_LUDICOLO
.byte 0x05 @ SPECIES_SEEDOT
.byte 0x00 @ SPECIES_NUZLEAF
.byte 0x02 @ SPECIES_SHIFTRY
.byte 0x00 @ SPECIES_NINCADA
.byte 0x46 @ SPECIES_NINJASK
.byte 0x1c @ SPECIES_SHEDINJA
.byte 0x1e @ SPECIES_TAILLOW
.byte 0x01 @ SPECIES_SWELLOW
.byte 0x00 @ SPECIES_SHROOMISH
.byte 0x00 @ SPECIES_BRELOOM
.byte 0x31 @ SPECIES_SPINDA
.byte 0x1b @ SPECIES_WINGULL
.byte 0x1c @ SPECIES_PELIPPER
.byte 0x00 @ SPECIES_SURSKIT
.byte 0x00 @ SPECIES_MASQUERAIN
.byte 0x01 @ SPECIES_WAILMER
.byte 0x1c @ SPECIES_WAILORD
.byte 0x00 @ SPECIES_SKITTY
.byte 0x17 @ SPECIES_DELCATTY
.byte 0x35 @ SPECIES_KECLEON
.byte 0x1d @ SPECIES_BALTOY
.byte 0x51 @ SPECIES_CLAYDOL
.byte 0x49 @ SPECIES_NOSEPASS
.byte 0x17 @ SPECIES_TORKOAL
.byte 0x15 @ SPECIES_SABLEYE
.byte 0x49 @ SPECIES_BARBOACH
.byte 0x49 @ SPECIES_WHISCASH
.byte 0x1d @ SPECIES_LUVDISC
.byte 0x10 @ SPECIES_CORPHISH
.byte 0x09 @ SPECIES_CRAWDAUNT
.byte 0x49 @ SPECIES_FEEBAS
.byte 0x22 @ SPECIES_MILOTIC
.byte 0x49 @ SPECIES_CARVANHA
.byte 0x56 @ SPECIES_SHARPEDO
.byte 0x10 @ SPECIES_TRAPINCH
.byte 0x0f @ SPECIES_VIBRAVA
.byte 0x4b @ SPECIES_FLYGON
.byte 0x0b @ SPECIES_MAKUHITA
.byte 0x34 @ SPECIES_HARIYAMA
.byte 0x00 @ SPECIES_ELECTRIKE
.byte 0x00 @ SPECIES_MANECTRIC
.byte 0x04 @ SPECIES_NUMEL
.byte 0x10 @ SPECIES_CAMERUPT
.byte 0x53 @ SPECIES_SPHEAL
.byte 0x17 @ SPECIES_SEALEO
.byte 0x0f @ SPECIES_WALREIN
.byte 0x49 @ SPECIES_CACNEA
.byte 0x04 @ SPECIES_CACTURNE
.byte 0x45 @ SPECIES_SNORUNT
.byte 0x0a @ SPECIES_GLALIE
.byte 0x0e @ SPECIES_LUNATONE
.byte 0x08 @ SPECIES_SOLROCK
.byte 0x00 @ SPECIES_AZURILL
.byte 0x56 @ SPECIES_SPOINK
.byte 0x32 @ SPECIES_GRUMPIG
.byte 0x00 @ SPECIES_PLUSLE
.byte 0x01 @ SPECIES_MINUN
.byte 0x00 @ SPECIES_MAWILE
.byte 0x05 @ SPECIES_MEDITITE
.byte 0x45 @ SPECIES_MEDICHAM
.byte 0x04 @ SPECIES_SWABLU
.byte 0x16 @ SPECIES_ALTARIA
.byte 0x32 @ SPECIES_WYNAUT
.byte 0x0a @ SPECIES_DUSKULL
.byte 0x02 @ SPECIES_DUSCLOPS
.byte 0x45 @ SPECIES_ROSELIA
.byte 0x45 @ SPECIES_SLAKOTH
.byte 0x31 @ SPECIES_VIGOROTH
.byte 0x45 @ SPECIES_SLAKING
.byte 0x00 @ SPECIES_GULPIN
.byte 0x45 @ SPECIES_SWALOT
.byte 0x10 @ SPECIES_TROPIUS
.byte 0x03 @ SPECIES_WHISMUR
.byte 0x49 @ SPECIES_LOUDRED
.byte 0x19 @ SPECIES_EXPLOUD
.byte 0x12 @ SPECIES_CLAMPERL
.byte 0x09 @ SPECIES_HUNTAIL
.byte 0x1c @ SPECIES_GOREBYSS
.byte 0x11 @ SPECIES_ABSOL
.byte 0x1c @ SPECIES_SHUPPET
.byte 0x0d @ SPECIES_BANETTE
.byte 0x17 @ SPECIES_SEVIPER
.byte 0x09 @ SPECIES_ZANGOOSE
.byte 0x1a @ SPECIES_RELICANTH
.byte 0x45 @ SPECIES_ARON
.byte 0x00 @ SPECIES_LAIRON
.byte 0x19 @ SPECIES_AGGRON
.byte 0x1d @ SPECIES_CASTFORM
.byte 0x00 @ SPECIES_VOLBEAT
.byte 0x05 @ SPECIES_ILLUMISE
.byte 0x17 @ SPECIES_LILEEP
.byte 0x19 @ SPECIES_CRADILY
.byte 0x12 @ SPECIES_ANORITH
.byte 0x10 @ SPECIES_ARMALDO
.byte 0x45 @ SPECIES_RALTS
.byte 0x00 @ SPECIES_KIRLIA
.byte 0x00 @ SPECIES_GARDEVOIR
.byte 0x19 @ SPECIES_BAGON
.byte 0x04 @ SPECIES_SHELGON
.byte 0x0f @ SPECIES_SALAMENCE
.byte 0x0f @ SPECIES_BELDUM
.byte 0x04 @ SPECIES_METANG
.byte 0x10 @ SPECIES_METAGROSS
.byte 0x01 @ SPECIES_REGIROCK
.byte 0x44 @ SPECIES_REGICE
.byte 0x09 @ SPECIES_REGISTEEL
.byte 0x2d @ SPECIES_KYOGRE
.byte 0x10 @ SPECIES_GROUDON
.byte 0x0f @ SPECIES_RAYQUAZA
.byte 0x2d @ SPECIES_LATIAS
.byte 0x10 @ SPECIES_LATIOS
.byte 0x0d @ SPECIES_JIRACHI
.byte 0x1b @ SPECIES_DEOXYS
.byte 0x1d @ SPECIES_CHIMECHO
-299
View File
@@ -7,306 +7,7 @@
.section .rodata .section .rodata
.align 2 .align 2
gWirelessLinkDisplayPal:: @ 82EC86C
.incbin "graphics/interface/wireless_link_display.gbapal"
gWirelessLinkDisplayGfx:: @ 82EC88C
.incbin "graphics/interface/wireless_link_display.4bpp.lz"
gWirelessLinkDisplayTilemap:: @ 82ECD34
.incbin "graphics/interface/wireless_link_display.bin.lz"
gLinkTestDigitsPal:: @ 82ECF20
.incbin "graphics/interface/link_test_digits.gbapal"
gLinkTestDigitsGfx:: @ 82ECF40
.incbin "graphics/interface/link_test_digits.4bpp"
.string "{HIGHLIGHT TRANSPARENT}{COLOR WHITE}$"
.align 2
g2BlankTilesGfx:: @ 82ED168
.incbin "graphics/interface/blank_1x2.4bpp"
gUnknown_082ED1A8:: @ 82ED1A8
.4byte gBlockSendBuffer
.4byte 0x000000C8
.4byte gBlockSendBuffer
.4byte 0x000000C8
.4byte gBlockSendBuffer
.4byte 0x00000064
.4byte gBlockSendBuffer
.4byte 0x000000DC
.4byte gBlockSendBuffer
.4byte 0x00000028
gUnknown_082ED1D0:: @ 82ED1D0
.byte 0x8, 0xA, 0xC, 0xE
gASCIIGameFreakInc:: @ 82ED1D4
.ascii "GameFreak inc."
.align 2
gASCIITestPrint:: @ 82ED1E4
.ascii "TEST PRINT\nP0\nP1\nP2\nP3"
.align 2
gUnknown_082ED1FC:: @ 82ED1FC BgTemplate
.4byte 0x000001F8
.4byte 0x00001081
.align 2
gUnknown_082ED204:: @ 82ED204
window_template 0x00, 0x00, 0x00, 0x1E, 0x05, 0x0F, 0x0002
window_template 0x00, 0x00, 0x06, 0x1E, 0x07, 0x0F, 0x0098
window_template 0x00, 0x00, 0x0D, 0x1E, 0x07, 0x0F, 0x016A
null_window_template
.align 2
gUnknown_082ED224:: @ 82ED224
.byte 0x00, 0x01, 0x02, 0x00, 0xff, 0xfe, 0xff, 0x00
.align 2
gWirelessLinkIconPalette:: @ 82ED22C
.incbin "graphics/interface/wireless_link_icon.gbapal"
.align 2
gWirelessLinkIconPic:: @ 82ED22C
.incbin "graphics/interface/wireless_link_icon.4bpp.lz"
.align 2
gUnknown_082ED370:: @ 82ED370
.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
.align 2
gUnknown_082ED470:: @ 82ED470
.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
.align 2
gUnknown_082ED570:: @ 82ED570
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
.align 2
gUnknown_082ED578:: @ 82ED578
.2byte 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x0005, 0x0010, 0x000a
.2byte 0x000c, 0x0005, 0x0008, 0x0005, 0xfffe, 0x0000
.align 2
gUnknown_082ED594:: @ 82ED594
.2byte 0x0004, 0x0005, 0x0008, 0x0005, 0x000c, 0x000a, 0x0008, 0x0005
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082ED5A8:: @ 82ED5A8
.2byte 0x0004, 0x0005, 0x0008, 0x0005, 0xfffe, 0x0000
.align 2
gUnknown_082ED5B4:: @ 82ED5B4
.2byte 0x0004, 0x000a, 0x0014, 0x000a, 0xfffe, 0x0000
.align 2
gUnknown_082ED5C0:: @ 82ED5C0
.2byte 0x0018, 0x000a, 0x0004, 0x000a, 0xfffe, 0x0000
.align 2
gUnknown_082ED5CC:: @ 82ED5CC
.4byte gUnknown_082ED578
.4byte gUnknown_082ED594
.4byte gUnknown_082ED5A8
.4byte gUnknown_082ED5B4
.4byte gUnknown_082ED5C0
.align 2
gUnknown_082ED5E0:: @ 82ED5E0
obj_tiles gWirelessLinkIconPic, 0x0380, 0xD431
.align 2
gUnknown_082ED5E8:: @ 82ED5E8
obj_pal gWirelessLinkIconPalette, 0xD432
.align 2
gUnknown_082ED5F0:: @ 82ED5F0
spr_template 0xD431, 0xD432, gUnknown_082ED570, gUnknown_082ED5CC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_082ED608:: @ 82ED608
.byte 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x14, 0x2b, 0x02, 0x02, 0x22, 0x2b, 0x02, 0x02
.byte 0x01, 0x00, 0x58, 0x02, 0x2c, 0x01, 0x00, 0x00
.align 2
gUnknown_082ED620:: @ 82ED620
.byte 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00
.align 2
gUnknown_082ED628:: @ 82ED628
.4byte 0x00000000, 0x00000001, 0x00000003, 0x00000007
.4byte 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f
.4byte 0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff
.4byte 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff
.4byte 0x0000ffff, 0x0001ffff, 0x0003ffff, 0x0007ffff
.4byte 0x000fffff, 0x001fffff, 0x003fffff, 0x007fffff
.4byte 0x00ffffff
gUnknown_082ED68C:: @ 82ED68C
.byte 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02
.byte 0x03
gUnknown_082ED695:: @ 82ED695
.byte 0x00, 0x01, 0x01, 0x02, 0x01, 0x02, 0x02, 0x03
.byte 0x01, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x04
gUnknown_082ED6A5:: @ 82ED6A5
.byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00
.align 2
gUnknown_082ED6B8:: @ 82ED6B8
.4byte gBlockSendBuffer
.4byte 0x000000c8
.4byte gBlockSendBuffer
.4byte 0x000000c8
.4byte gBlockSendBuffer
.4byte 0x00000064
.4byte gBlockSendBuffer
.4byte 0x000000dc
.4byte gBlockSendBuffer
.4byte 0x00000028
.align 2
gUnknown_082ED6E0:: @ 82ED6E0
.2byte 0x0002, 0x7f7d, 0x0000, 0xffff
.ascii "RFU WAIT"
.space 7
.ascii "RFU BOOT"
.space 7
.ascii "RFU ERROR"
.space 6
.ascii "RFU RESET"
.space 6
.ascii "RFU CONFIG"
.space 5
.ascii "RFU START"
.space 6
.ascii "RFU SC POLL"
.space 4
.ascii "RFU SP POLL"
.space 4
.ascii "RFU START"
.space 6
.ascii "RFU SEND ERR"
.space 3
.ascii "RFU CP POLL"
.space 4
.ascii " "
.space 2
.ascii "RECOVER START "
.space 2
.ascii "DISSCONECT "
.space 2
.ascii "RECOVER SUUSES"
.space 2
.ascii "RECOVER FAILED"
.space 2
.align 2
gUnknown_082ED7E0:: @ 82ED7E0
.4byte sub_801084C
.4byte sub_8010AAC
.4byte sub_8010D0C
.align 2
gUnknown_082ED7EC:: @ 82ED7EC
.ascii "PokemonSioInfo"
.align 2
gUnknown_082ED7FC:: @ 82ED7FC
.ascii "LINK LOSS DISCONNECT!"
.align 2
gUnknown_082ED814:: @ 82ED814
.ascii "LINK LOSS RECOVERY NOW"
.align 2
gUnknown_082ED82C:: @ 82ED82C gUnknown_082ED82C:: @ 82ED82C
.byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
.byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
+1 -1
View File
@@ -86,7 +86,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1
setvar VAR_0x8004, 410 setvar VAR_0x8004, 410
setvar VAR_0x8005, 30 setvar VAR_0x8005, 30
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special DoScriptedWildBattle special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle special BattleSetup_StartLegendaryBattle
waitstate waitstate
+1 -1
View File
@@ -143,7 +143,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2
setvar VAR_0x8004, 151 setvar VAR_0x8004, 151
setvar VAR_0x8005, 30 setvar VAR_0x8005, 30
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special DoScriptedWildBattle special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle special BattleSetup_StartLegendaryBattle
waitstate waitstate
+1 -1
View File
@@ -59,7 +59,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2
setvar VAR_0x8004, 249 setvar VAR_0x8004, 249
setvar VAR_0x8005, 70 setvar VAR_0x8005, 70
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special DoScriptedWildBattle special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle special BattleSetup_StartLegendaryBattle
waitstate waitstate
+1 -1
View File
@@ -63,7 +63,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F
setvar VAR_0x8004, 250 setvar VAR_0x8004, 250
setvar VAR_0x8005, 70 setvar VAR_0x8005, 70
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special DoScriptedWildBattle special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle special BattleSetup_StartLegendaryBattle
waitstate waitstate
@@ -121,14 +121,14 @@ SouthernIsland_Interior_EventScript_242BA4:: @ 8242BA4
setvar VAR_0x8004, 408 setvar VAR_0x8004, 408
setvar VAR_0x8005, 50 setvar VAR_0x8005, 50
setvar VAR_0x8006, 191 setvar VAR_0x8006, 191
special DoScriptedWildBattle special CreateObedientEnemyMon
return return
SouthernIsland_Interior_EventScript_242BB7:: @ 8242BB7 SouthernIsland_Interior_EventScript_242BB7:: @ 8242BB7
setvar VAR_0x8004, 407 setvar VAR_0x8004, 407
setvar VAR_0x8005, 50 setvar VAR_0x8005, 50
setvar VAR_0x8006, 191 setvar VAR_0x8006, 191
special DoScriptedWildBattle special CreateObedientEnemyMon
return return
SouthernIsland_Interior_Movement_242BCA: @ 8242BCA SouthernIsland_Interior_Movement_242BCA: @ 8242BCA
+1 -1
View File
@@ -490,7 +490,7 @@ gSpecials:: @ 81DBA64
def_special sub_813AF48 def_special sub_813AF48
def_special sub_813AFC8 def_special sub_813AFC8
def_special sub_813B1D0 def_special sub_813B1D0
def_special DoScriptedWildBattle def_special CreateObedientEnemyMon
def_special sub_81BEB54 def_special sub_81BEB54
def_special sub_81BEB68 def_special sub_81BEB68
def_special sub_81BEB7C def_special sub_81BEB7C
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_AGB_FLASH_H
#define GUARD_AGB_FLASH_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
#endif //GUARD_AGB_FLASH_H
+8
View File
@@ -229,6 +229,14 @@ extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[]; extern const u8* const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[]; extern const u8* const gStatNamesTable2[];
extern const u8 gText_BadEgg[];
extern const u8 gText_StatRose[];
extern const u8 gText_PkmnsStatChanged2[];
extern const u8 gText_PkmnGettingPumped[];
extern const u8 gText_PkmnShroudedInMist[];
extern const u8 gText_BattleWallyName[];
extern const u8 gText_PkmnsXPreventsSwitching[];
extern const u16 gMissStringIds[]; extern const u16 gMissStringIds[];
extern const u16 gTrappingMoves[]; extern const u16 gTrappingMoves[];
-6
View File
@@ -1,6 +0,0 @@
#ifndef GUARD_CALCULATE_BASE_DAMAGE_H
#define GUARD_CALCULATE_BASE_DAMAGE_H
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
#endif // GUARD_CALCULATE_BASE_DAMAGE_H
+3
View File
@@ -464,4 +464,7 @@
#define NUM_TECHNICAL_MACHINES 50 #define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8 #define NUM_HIDDEN_MACHINES 8
// Check if the item is one that can be used on a Pokemon.
#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
#endif // GUARD_CONSTANTS_ITEMS_H #endif // GUARD_CONSTANTS_ITEMS_H
+16 -16
View File
@@ -956,13 +956,13 @@
#define FACILITY_CLASS_HIKER 0x0 #define FACILITY_CLASS_HIKER 0x0
#define FACILITY_CLASS_TEAM_AQUA_1 0x1 #define FACILITY_CLASS_TEAM_AQUA_1 0x1
#define FACILITY_CLASS_PKMN_BREEDER_1 0x2 #define FACILITY_CLASS_PKMN_BREEDER_1 0x2
#define FACILITY_CLASS_COOLTRAINER_1 0x3 #define FACILITY_CLASS_COOLTRAINER_M 0x3
#define FACILITY_CLASS_BIRD_KEEPER 0x4 #define FACILITY_CLASS_BIRD_KEEPER 0x4
#define FACILITY_CLASS_COLLECTOR 0x5 #define FACILITY_CLASS_COLLECTOR 0x5
#define FACILITY_CLASS_TEAM_AQUA_2 0x6 #define FACILITY_CLASS_TEAM_AQUA_2 0x6
#define FACILITY_CLASS_SWIMMER_M 0x7 #define FACILITY_CLASS_SWIMMER_M 0x7
#define FACILITY_CLASS_TEAM_MAGMA_1 0x8 #define FACILITY_CLASS_TEAM_MAGMA_1 0x8
#define FACILITY_CLASS_EXPERT_1 0x9 #define FACILITY_CLASS_EXPERT_M 0x9
#define FACILITY_CLASS_BLACK_BELT 0xa #define FACILITY_CLASS_BLACK_BELT 0xa
#define FACILITY_CLASS_AQUA_LEADER 0xb #define FACILITY_CLASS_AQUA_LEADER 0xb
#define FACILITY_CLASS_HEX_MANIAC 0xc #define FACILITY_CLASS_HEX_MANIAC 0xc
@@ -971,7 +971,7 @@
#define FACILITY_CLASS_INTERVIEWER 0xf #define FACILITY_CLASS_INTERVIEWER 0xf
#define FACILITY_CLASS_TUBER_1 0x10 #define FACILITY_CLASS_TUBER_1 0x10
#define FACILITY_CLASS_TUBER_2 0x11 #define FACILITY_CLASS_TUBER_2 0x11
#define FACILITY_CLASS_COOLTRAINER_2 0x12 #define FACILITY_CLASS_COOLTRAINER_F 0x12
#define FACILITY_CLASS_LADY 0x13 #define FACILITY_CLASS_LADY 0x13
#define FACILITY_CLASS_BEAUTY 0x14 #define FACILITY_CLASS_BEAUTY 0x14
#define FACILITY_CLASS_RICH_BOY 0x15 #define FACILITY_CLASS_RICH_BOY 0x15
@@ -983,16 +983,16 @@
#define FACILITY_CLASS_CAMPER 0x1b #define FACILITY_CLASS_CAMPER 0x1b
#define FACILITY_CLASS_PICNICKER 0x1c #define FACILITY_CLASS_PICNICKER 0x1c
#define FACILITY_CLASS_BUG_MANIAC 0x1d #define FACILITY_CLASS_BUG_MANIAC 0x1d
#define FACILITY_CLASS_PSYCHIC_1 0x1e #define FACILITY_CLASS_PSYCHIC_M 0x1e
#define FACILITY_CLASS_PSYCHIC_2 0x1f #define FACILITY_CLASS_PSYCHIC_F 0x1f
#define FACILITY_CLASS_GENTLEMAN 0x20 #define FACILITY_CLASS_GENTLEMAN 0x20
#define FACILITY_CLASS_ELITE_FOUR_1 0x21 #define FACILITY_CLASS_ELITE_FOUR_1 0x21
#define FACILITY_CLASS_ELITE_FOUR_2 0x22 #define FACILITY_CLASS_ELITE_FOUR_2 0x22
#define FACILITY_CLASS_LEADER_1 0x23 #define FACILITY_CLASS_LEADER_1 0x23
#define FACILITY_CLASS_LEADER_2 0x24 #define FACILITY_CLASS_LEADER_2 0x24
#define FACILITY_CLASS_LEADER_3 0x25 #define FACILITY_CLASS_LEADER_3 0x25
#define FACILITY_CLASS_SCHOOL_KID_1 0x26 #define FACILITY_CLASS_SCHOOL_KID_M 0x26
#define FACILITY_CLASS_SCHOOL_KID_2 0x27 #define FACILITY_CLASS_SCHOOL_KID_F 0x27
#define FACILITY_CLASS_SR_AND_JR 0x28 #define FACILITY_CLASS_SR_AND_JR 0x28
#define FACILITY_CLASS_POKEFAN_1 0x29 #define FACILITY_CLASS_POKEFAN_1 0x29
#define FACILITY_CLASS_POKEFAN_2 0x2a #define FACILITY_CLASS_POKEFAN_2 0x2a
@@ -1013,28 +1013,28 @@
#define FACILITY_CLASS_TWINS 0x39 #define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a #define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b #define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c #define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d #define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e #define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f #define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40 #define FACILITY_CLASS_PKMN_TRAINER_6 0x40
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41 #define FACILITY_CLASS_PKMN_TRAINER_7 0x41
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42 #define FACILITY_CLASS_PKMN_BREEDER_2 0x42
#define FACILITY_CLASS_BUG_CATCHER 0x43 #define FACILITY_CLASS_BUG_CATCHER 0x43
#define FACILITY_CLASS_PKMN_RANGER_1 0x44 #define FACILITY_CLASS_PKMN_RANGER_M 0x44
#define FACILITY_CLASS_PKMN_RANGER_2 0x45 #define FACILITY_CLASS_PKMN_RANGER_F 0x45
#define FACILITY_CLASS_MAGMA_LEADER 0x46 #define FACILITY_CLASS_MAGMA_LEADER 0x46
#define FACILITY_CLASS_LASS 0x47 #define FACILITY_CLASS_LASS 0x47
#define FACILITY_CLASS_YOUNG_COUPLE 0x48 #define FACILITY_CLASS_YOUNG_COUPLE 0x48
#define FACILITY_CLASS_OLD_COUPLE 0x49 #define FACILITY_CLASS_OLD_COUPLE 0x49
#define FACILITY_CLASS_SIS_AND_BRO 0x4a #define FACILITY_CLASS_SIS_AND_BRO 0x4a
#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b #define FACILITY_CLASS_PKMN_TRAINER_STEVEN 0x4b
#define FACILITY_CLASS_SALON_MAIDEN 0x4c #define FACILITY_CLASS_SALON_MAIDEN 0x4c
#define FACILITY_CLASS_DOME_ACE 0x4d #define FACILITY_CLASS_DOME_ACE 0x4d
#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e #define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e
#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f #define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f
#define FACILITY_CLASS_PKMN_TRAINER_11 0x50 #define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50
#define FACILITY_CLASS_PKMN_TRAINER_12 0x51 #define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0 #define TRAINER_CLASS_PKMN_TRAINER_1 0x0
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1 #define TRAINER_CLASS_PKMN_TRAINER_2 0x1
+11
View File
@@ -0,0 +1,11 @@
#ifndef GUARD_CRT0_H
#define GUARD_CRT0_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
extern u32 IntrMain[];
#endif //GUARD_CRT0_H
+32 -32
View File
@@ -6,13 +6,13 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER
TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1 TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1
TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1 TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1
TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_1 TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_M
TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR
TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2 TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2
TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1 TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1
TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_1 TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_M
TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER
TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
@@ -21,7 +21,7 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1 TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1
TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2 TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2
TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_2 TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_F
TRAINER_PIC_LADY, // FACILITY_CLASS_LADY TRAINER_PIC_LADY, // FACILITY_CLASS_LADY
TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY
TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY
@@ -33,16 +33,16 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER
TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER
TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1 TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2 TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F
TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1 TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1
TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2 TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2
TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1 TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1
TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2 TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2
TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3 TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1 TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2 TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F
TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1 TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1
TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2 TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2
@@ -63,28 +63,28 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS
TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR
TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1 TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_2 TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3 TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4 TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_5 TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6 TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7 TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7
TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2 TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2
TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1 TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2 TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F
TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER
TRAINER_PIC_LASS, // FACILITY_CLASS_LASS TRAINER_PIC_LASS, // FACILITY_CLASS_LASS
TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_8 TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_STEVEN
TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN
TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9 TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10 TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11 TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12 TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
}; };
const u8 gFacilityClassToTrainerClass[] = const u8 gFacilityClassToTrainerClass[] =
@@ -92,13 +92,13 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1 TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1 TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_1 TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_M
TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2 TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2
TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1 TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_1 TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_M
TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER
TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
@@ -107,7 +107,7 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1 TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1
TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2 TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_2 TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_F
TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY
TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY
TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY
@@ -119,16 +119,16 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER
TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER
TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1 TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2 TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F
TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1 TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2 TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1 TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2 TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3 TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1 TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2 TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F
TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1 TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2 TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2
@@ -149,28 +149,28 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS
TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_2 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_MAY
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_5 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2 TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2
TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_1 TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_2 TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F
TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER
TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS
TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_8 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_STEVEN
TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN
TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_9 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_10 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11 TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12 TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
}; };
#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H #endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
+1
View File
@@ -28,6 +28,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
extern u8 gDecompressionBuffer[];
u32 sub_8034974(const u8 *ptr); u32 sub_8034974(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H #endif // GUARD_DECOMPRESS_H
+17
View File
@@ -623,6 +623,23 @@
#define TIMER_INTR_ENABLE 0x40 #define TIMER_INTR_ENABLE 0x40
#define TIMER_ENABLE 0x80 #define TIMER_ENABLE 0x80
// BGCNT
#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
#define BGCNT_MOSAIC 0x0040
#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
#define BGCNT_TXT512x256 0x4000
#define BGCNT_TXT256x512 0x8000
#define BGCNT_TXT512x512 0xC000
#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
#define BGCNT_AFF256x256 0x4000
#define BGCNT_AFF512x512 0x8000
#define BGCNT_AFF1024x1024 0xC000
// serial // serial
#define SIO_ID 0x0030 // Communication ID #define SIO_ID 0x0030 // Communication ID
+10 -1
View File
@@ -11,6 +11,7 @@
// to help in decompiling // to help in decompiling
#define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
#define ASM_DIRECT __attribute__((naked))
// IDE support // IDE support
#if defined (__APPLE__) || defined (__CYGWIN__) #if defined (__APPLE__) || defined (__CYGWIN__)
@@ -87,6 +88,7 @@ enum LanguageId
LANGUAGE_SPANISH = 7, LANGUAGE_SPANISH = 7,
}; };
#define GAME_VERSION (VERSION_EMERALD)
#define GAME_LANGUAGE (LANGUAGE_ENGLISH) #define GAME_LANGUAGE (LANGUAGE_ENGLISH)
enum enum
@@ -605,6 +607,11 @@ struct WaldaPhrase
bool8 patternUnlocked; bool8 patternUnlocked;
}; };
struct UnkSaveSubstruct_3b98 {
u32 trainerId;
u8 trainerName[8];
};
struct SaveBlock1 struct SaveBlock1
{ {
/*0x00*/ struct Coords16 pos; /*0x00*/ struct Coords16 pos;
@@ -689,7 +696,9 @@ struct SaveBlock1
/*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[52]; /*0x3B24*/ u8 seen2[52];
/*0x3B58*/ LilycoveLady lilycoveLady; /*0x3B58*/ LilycoveLady lilycoveLady;
/*0x3B88*/ u8 filler_3B88[0x1E8]; /*0x3B88*/ u8 filler_3B88[0x10];
/*0x3B98*/ struct UnkSaveSubstruct_3b98 unk_3B98[20];
/*0x3C88*/ u8 filler_3C88[0xE8];
/*0x3D70*/ struct WaldaPhrase waldaPhrase; /*0x3D70*/ struct WaldaPhrase waldaPhrase;
// sizeof: 0x3D88 // sizeof: 0x3D88
}; };
+6
View File
@@ -1,6 +1,12 @@
#ifndef GUARD_INTRO_H #ifndef GUARD_INTRO_H
#define GUARD_INTRO_H #define GUARD_INTRO_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void c2_copyright_1(void);
void CB2_InitCopyrightScreenAfterBootup(void); void CB2_InitCopyrightScreenAfterBootup(void);
void CB2_InitCopyrightScreenAfterTitleScreen(void); void CB2_InitCopyrightScreenAfterTitleScreen(void);
void sub_816F2A8(u16, u16, u16, u16); void sub_816F2A8(u16, u16, u16, u16);
+2
View File
@@ -17,6 +17,8 @@ extern struct BagStruct gUnknown_0203CE58;
// Exported RAM declarations // Exported RAM declarations
extern u16 gSpecialVar_ItemId;
// Exported ROM declarations // Exported ROM declarations
void sub_81AAC50(void); void sub_81AAC50(void);
void sub_81AAC70(void); void sub_81AAC70(void);
+143
View File
@@ -67,6 +67,28 @@ union RfuPacket
struct RfuPacket8 rfuPacket8; struct RfuPacket8 rfuPacket8;
}; };
struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
{
u16 unk_00_0:4;
u16 unk_00_4:1;
u16 unk_00_5:1;
u16 unk_00_6:1;
u16 unk_00_7:1;
u16 unk_01_0:1;
u16 unk_01_1:1;
u16 unk_01_2:4;
u16 unk_01_6:2;
u8 playerTrainerId[2];
u8 unk_04[4];
u16 unk_08_0:10;
u16 unk_09_2:6;
u8 unk_0a_0:7;
u8 unk_0a_7:1;
u8 playerGender:1;
u8 unk_0b_1:7;
u8 unk_0c;
};
struct RfuStruct struct RfuStruct
{ {
vs32 unk_0; vs32 unk_0;
@@ -103,6 +125,127 @@ struct RfuIntrStruct
u8 block2[0x30]; u8 block2[0x30];
}; };
struct RfuUnk1
{
u16 unk_0;
u8 unk_2;
u8 unk_3;
u8 fill_4[14];
u8 unk_12;
u32 unk_14;
u32 unk_18;
struct RfuIntrStruct unk_1c;
};
struct RfuUnk2
{
u16 unk_0;
u16 unk_2;
u8 fill_4[0x16];
u8 unk_1a;
u8 fill_1b[0x19];
u16 unk_34;
u16 unk_36;
u8 fill_38[0x16];
u8 unk_4e;
u8 fill_4f[0x12];
u8 unk_61;
u8 fill_62[6];
void *unk_68;
void *unk_6c;
u8 unk_70[0x70];
};
struct RfuUnk3
{
u32 unk_0;
u32 unk_4;
u8 unk_8[0xD4];
u32 unk_dc;
};
struct RfuUnk5Sub {
u16 unk_00;
u8 unk_02;
u16 unk_04;
struct UnkLinkRfuStruct_02022B14 unk_06;
u8 fill_13[2];
u8 unk_15[8];
};
struct RfuUnk5
{
u8 unk_00;
u8 unk_01;
u8 unk_02;
u8 unk_03;
u8 unk_04;
u8 unk_05;
u8 unk_06;
u8 unk_07;
u8 unk_08;
u8 filler_09[1];
u8 unk_0a[4];
u8 filler_0e[6];
struct RfuUnk5Sub unk_14[4];
};
extern struct RfuStruct *gRfuState; extern struct RfuStruct *gRfuState;
extern struct RfuUnk5 *gUnknown_03007890;
extern u32 *gUnknown_03007894;
extern struct RfuUnk3* gUnknown_03007898;
extern struct RfuUnk2* gUnknown_03007880[4];
extern struct RfuUnk1* gUnknown_03007870[4];
extern void* sub_82E53F4;
extern void rfu_STC_clearAPIVariables(void);
struct UnkLinkRfuStruct_02022B14;
void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam);
void rfu_REQ_stopMode(void);
void rfu_waitREQComplete(void);
u32 rfu_REQBN_softReset_and_checkID(void);
void rfu_REQ_sendData(u8);
void rfu_setMSCCallback(void (*func)(u16));
void rfu_setREQCallback(void (*func)(u16, u16));
bool8 rfu_getMasterSlave(void);
void rfu_REQBN_watchLink(u16 a0, u8 *a1, u8 *a2, u8 *a3);
bool16 rfu_syncVBlank(void);
void rfu_REQ_reset(void);
void rfu_REQ_configSystem(u16, u8, u8);
void rfu_REQ_configGameData(u8, u16, struct UnkLinkRfuStruct_02022B14 *, u8 *);
void rfu_REQ_startSearchChild(void);
void rfu_REQ_pollSearchChild(void);
void rfu_REQ_endSearchChild(void);
void rfu_REQ_startSearchParent(void);
void rfu_REQ_pollSearchParent(void);
void rfu_REQ_endSearchParent(void);
void rfu_REQ_startConnectParent(u16);
void rfu_REQ_pollConnectParent(void);
void rfu_REQ_endConnectParent(void);
void rfu_REQ_CHILD_startConnectRecovery(u8);
void rfu_REQ_CHILD_pollConnectRecovery(void);
void rfu_REQ_CHILD_endConnectRecovery(void);
void rfu_REQ_changeMasterSlave(void);
void rfu_REQ_RFUStatus(void);
void rfu_getRFUStatus(u8 *status);
u8 *rfu_getSTWIRecvBuffer(void);
u8 rfu_NI_CHILD_setSendGameName(u8 a0, u8 a1);
void rfu_clearSlot(u8 a0, u8 a1);
void rfu_clearAllSlot(void);
bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status);
bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1);
bool16 rfu_UNI_PARENT_getDRAC_ACK(u8 *a0);
void rfu_REQ_disconnect(u8 who);
void rfu_changeSendTarget(u8 a0, u8 who, u8 a2);
void rfu_NI_stopReceivingData(u8 who);
u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam);
void rfu_setTimerInterrupt(u8 which, IntrFunc *intr);
void rfu_setRecvBuffer(u8 a0, u8 a1, void *a2, size_t a3);
bool16 rfu_UNI_setSendData(u8 flag, void *ptr, u8 size);
void rfu_REQ_recvData(void);
void rfu_UNI_readySendData(u8 a0);
void rfu_UNI_clearRecvNewDataFlag(u8 a0);
void rfu_REQ_PARENT_resumeRetransmitAndChange(void);
void rfu_NI_setSendData(u8, u8, u8 *, u8);
+129 -36
View File
@@ -7,6 +7,9 @@
#define QUEUE_CAPACITY 50 #define QUEUE_CAPACITY 50
#define BLOCK_BUFFER_SIZE 0x100 #define BLOCK_BUFFER_SIZE 0x100
#define LINK_SLAVE 0
#define LINK_MASTER 8
#define LINK_STAT_LOCAL_ID 0x00000003 #define LINK_STAT_LOCAL_ID 0x00000003
#define LINK_STAT_PLAYER_COUNT 0x0000001C #define LINK_STAT_PLAYER_COUNT 0x0000001C
#define LINK_STAT_PLAYER_COUNT_SHIFT 2 #define LINK_STAT_PLAYER_COUNT_SHIFT 2
@@ -16,7 +19,23 @@
#define LINK_STAT_CONN_ESTABLISHED_SHIFT 6 #define LINK_STAT_CONN_ESTABLISHED_SHIFT 6
#define LINK_STAT_RECEIVED_NOTHING 0x00000100 #define LINK_STAT_RECEIVED_NOTHING 0x00000100
#define LINK_STAT_RECEIVED_NOTHING_SHIFT 8 #define LINK_STAT_RECEIVED_NOTHING_SHIFT 8
#define LINK_STAT_UNK_FLAG_9 0x00000200
#define LINK_STAT_UNK_FLAG_9_SHIFT 9
#define LINK_STAT_ERRORS 0x0007F000 #define LINK_STAT_ERRORS 0x0007F000
#define LINK_STAT_ERRORS_SHIFT 12
#define LINK_STAT_ERROR_HARDWARE 0x00001000
#define LINK_STAT_ERROR_HARDWARE_SHIFT 12
#define LINK_STAT_ERROR_CHECKSUM 0x00002000
#define LINK_STAT_ERROR_CHECKSUM_SHIFT 13
#define LINK_STAT_ERROR_QUEUE_FULL 0x00004000
#define LINK_STAT_ERROR_QUEUE_FULL_SHIFT 14
#define LINK_STAT_ERROR_LAG_MASTER 0x00010000
#define LINK_STAT_ERROR_LAG_MASTER_SHIFT 16
#define LINK_STAT_ERROR_INVALID_ID 0x00020000
#define LINK_STAT_ERROR_INVALID_ID_SHIFT 17
#define LINK_STAT_ERROR_LAG_SLAVE 0x00040000
#define LINK_STAT_ERROR_LAG_SLAVE_SHIFT 18
#define EXTRACT_PLAYER_COUNT(status) \ #define EXTRACT_PLAYER_COUNT(status) \
(((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT) (((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT)
@@ -26,10 +45,41 @@
(((status) >> LINK_STAT_CONN_ESTABLISHED_SHIFT) & 1) (((status) >> LINK_STAT_CONN_ESTABLISHED_SHIFT) & 1)
#define EXTRACT_RECEIVED_NOTHING(status) \ #define EXTRACT_RECEIVED_NOTHING(status) \
(((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1) (((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1)
#define EXTRACT_LINK_ERRORS(status) \
(((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT)
#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
struct LinkStatus
{
u32 localId:2;
u32 playerCount:3;
u32 master:1;
u32 connEstablished:1;
u32 unused_7:1;
u32 receivedNothing:1;
u32 unused_9:7;
u32 errors:7;
};
#define MASTER_HANDSHAKE 0x8FFF #define MASTER_HANDSHAKE 0x8FFF
#define SLAVE_HANDSHAKE 0xB9A0 #define SLAVE_HANDSHAKE 0xB9A0
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
enum enum
{ {
LINK_STATE_START0, LINK_STATE_START0,
@@ -45,6 +95,9 @@ enum
EXCHANGE_COMPLETE, EXCHANGE_COMPLETE,
EXCHANGE_TIMED_OUT, EXCHANGE_TIMED_OUT,
EXCHANGE_IN_PROGRESS, EXCHANGE_IN_PROGRESS,
EXCHANGE_STAT_4,
EXCHANGE_STAT_5,
EXCHANGE_STAT_6
}; };
enum enum
@@ -75,18 +128,18 @@ struct LinkPlayer
struct LinkPlayerBlock struct LinkPlayerBlock
{ {
u8 magic1[16]; char magic1[16];
struct LinkPlayer linkPlayer; struct LinkPlayer linkPlayer;
u8 magic2[16]; char magic2[16];
}; };
// circular queues // circular queues
struct SendQueue struct SendQueue
{ {
u16 data[CMD_LENGTH][QUEUE_CAPACITY]; /* 0x000 */ u16 data[CMD_LENGTH][QUEUE_CAPACITY];
u8 pos; /* 0x320 */ u8 pos;
u8 count; /* 0x321 */ u8 count;
}; };
struct RecvQueue struct RecvQueue
@@ -98,29 +151,29 @@ struct RecvQueue
struct Link struct Link
{ {
u8 isMaster; // 0: slave, 8: master /* 0x000 */ u8 isMaster; // 0: slave, 8: master
u8 state; /* 0x001 */ u8 state;
u8 localId; // local multi-player ID /* 0x002 */ u8 localId; // local multi-player ID
u8 playerCount; /* 0x003 */ u8 playerCount;
u16 tempRecvBuffer[4]; /* 0x004 */ u16 tempRecvBuffer[4];
bool8 receivedNothing; /* 0x00c */ bool8 receivedNothing;
s8 serialIntrCounter; /* 0x00d */ s8 serialIntrCounter;
bool8 handshakeAsMaster; /* 0x00e */ bool8 handshakeAsMaster;
u8 link_field_F; /* 0x00f */ u8 link_field_F;
// error conditions // error conditions
bool8 hardwareError; // hardware reported an error /* 0x010 */ bool8 hardwareError; // hardware reported an error
bool8 badChecksum; // checksum didn't match between devices /* 0x011 */ bool8 badChecksum; // checksum didn't match between devices
u8 queueFull; // send or recv queue out of space /* 0x012 */ u8 queueFull; // send or recv queue out of space
u8 lag; // connection is lagging /* 0x013 */ u8 lag; // connection is lagging
u16 checksum; /* 0x014 */ u16 checksum;
u8 sendCmdIndex; /* 0x016 */ u8 sendCmdIndex;
u8 recvCmdIndex; /* 0x017 */ u8 recvCmdIndex;
struct SendQueue sendQueue; /* 0x018 */ struct SendQueue sendQueue;
struct RecvQueue recvQueue; /* 0x33c */ struct RecvQueue recvQueue;
}; };
struct BlockRequest struct BlockRequest
@@ -136,26 +189,26 @@ extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType; extern u16 gLinkType;
extern u32 gLinkStatus; extern u32 gLinkStatus;
extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern u16 gSendCmd[CMD_LENGTH]; extern u16 gSendCmd[CMD_LENGTH];
extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[5];
extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[]; extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gReceivedRemoteLinkPlayers;
extern u32 gUnknown_020223C0;
extern bool8 gLinkVSyncDisabled; extern bool8 gLinkVSyncDisabled;
extern u32 gLinkStatus; extern u32 gLinkStatus;
void Task_DestroySelf(u8 taskId); void Task_DestroySelf(u8 taskId);
void OpenLink(void); void OpenLink(void);
void CloseLink(void); void CloseLink(void);
u16 LinkMain2(u16 *); u16 LinkMain2(const u16 *);
void sub_8007B14(void); void sub_8007B14(void);
bool32 sub_8007B24(void); bool32 sub_8007B24(void);
void ClearLinkCallback(void); void ClearLinkCallback(void);
void ClearLinkCallback_2(void); void ClearLinkCallback_2(void);
u8 GetLinkPlayerCount(void); u8 GetLinkPlayerCount(void);
void OpenLinkTimed(void); void OpenLinkTimed(void);
u8 GetLinkPlayerDataExchangeStatusTimed(void); u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper);
bool8 IsLinkPlayerDataExchangeComplete(void); bool8 IsLinkPlayerDataExchangeComplete(void);
u32 GetLinkPlayerTrainerId(u8); u32 GetLinkPlayerTrainerId(u8);
void ResetLinkPlayers(void); void ResetLinkPlayers(void);
@@ -163,11 +216,10 @@ void sub_8007E24(void);
void sub_8007E4C(void); void sub_8007E4C(void);
u8 GetMultiplayerId(void); u8 GetMultiplayerId(void);
u8 bitmask_all_link_players_but_self(void); u8 bitmask_all_link_players_but_self(void);
bool8 SendBlock(u8, void *, u16); bool8 SendBlock(u8, const void *, u16);
u8 GetBlockReceivedStatus(void); u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlags(void);
void ResetBlockReceivedFlag(u8); void ResetBlockReceivedFlag(u8);
void SetLinkDebugValues(u32, u32);
u8 GetLinkPlayerCount_2(void); u8 GetLinkPlayerCount_2(void);
bool8 IsLinkMaster(void); bool8 IsLinkMaster(void);
void CB2_LinkError(void); void CB2_LinkError(void);
@@ -176,23 +228,64 @@ bool8 IsLinkConnectionEstablished(void);
void SetSuppressLinkErrorMessage(bool8); void SetSuppressLinkErrorMessage(bool8);
bool8 HasLinkErrorOccurred(void); bool8 HasLinkErrorOccurred(void);
void ResetSerial(void); void ResetSerial(void);
u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]); u32 LinkMain1(u8 *shouldAdvanceLinkState, u16 *sendCmd, u16 (*recvCmds)[CMD_LENGTH]);
void LinkVSync(void); void LinkVSync(void);
void Timer3Intr(void); void Timer3Intr(void);
void SerialCB(void); void SerialCB(void);
u8 GetLinkPlayerCount(void); u8 GetLinkPlayerCount(void);
bool32 InUnionRoom(void); bool32 InUnionRoom(void);
void sub_800E0E8(void); void sub_800E0E8(void);
bool8 sub_800A520(void); bool8 sub_800A520(void);
bool8 sub_8010500(void); void CreateWirelessStatusIndicatorSprite(u8, u8);
void sub_800DFB4(u8, u8);
void sub_800ADF8(void); void sub_800ADF8(void);
void sub_800B488(void); void sub_800B488(void);
void OpenLink(void);
void sub_800A620(void); void sub_800A620(void);
void sub_8011BD0(void); void sub_8011BD0(void);
u8 IsLinkMaster(void);
void sub_800AC34(void); void sub_800AC34(void);
u8 sub_800A0C8(s32, s32); bool8 HandleLinkConnection(void);
void SetLinkDebugValues(u32 seed, u32 flags);
void sub_800A418(void);
void SetSuppressLinkErrorMessage(bool8 flag);
void sub_800B524(struct LinkPlayer *linkPlayer);
u8 GetSioMultiSI(void);
void sub_800AAF4(void);
void sub_800AF18(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
void sub_800B348(void);
void sub_800B3A4(u32 who);
extern u16 gLinkPartnersHeldKeys[6];
extern u32 gLinkDebugSeed;
extern struct LinkPlayerBlock gLocalLinkPlayerBlock;
extern bool8 gLinkErrorOccurred;
extern u32 gLinkDebugFlags;
extern bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS];
extern u8 gBlockReceivedStatus[MAX_LINK_PLAYERS];
extern u16 gLinkHeldKeys;
extern u32 gLinkStatus;
extern u8 gUnknown_030030E4;
extern u8 gUnknown_030030E8;
extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS];
extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS];
extern u16 gUnknown_030030F4;
extern u8 gSuppressLinkErrorMessage;
extern u8 gWirelessCommType;
extern bool8 gSavedLinkPlayerCount;
extern u8 gSavedMultiplayerId;
extern struct LinkTestBGInfo gLinkTestBGInfo;
extern void (*gLinkCallback)(void);
extern bool8 gShouldAdvanceLinkState;
extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS];
extern u8 gBlockRequestType;
extern u8 gLastSendQueueCount;
extern u8 gLastRecvQueueCount;
extern u16 gLinkSavedIme;
extern u32 gFiller_03003074;
extern u32 gFiller_03003154;
extern u32 gFiller_03003158;
extern u32 gFiller_0300315c;
extern u32 gFiller_03004138;
extern u32 gFiller_0300413C;
extern u32 gFiller_03003080;
#endif // GUARD_LINK_H #endif // GUARD_LINK_H
+235
View File
@@ -0,0 +1,235 @@
#ifndef GUARD_LINK_RFU_H
#define GUARD_LINK_RFU_H
// Exported type declarations
struct UnkLinkRfuStruct_02022B2C
{
u8 unk_00;
u8 unk_01;
u16 unk_02;
u8 unk_04;
u16 unk_06;
struct UnkLinkRfuStruct_02022B14 *unk_08;
u8 *unk_0c;
u8 unk_10;
u8 unk_11;
u16 unk_12;
u16 unk_14;
};
struct UnkLinkRfuStruct_02022B44
{
u8 fill_00[6];
u16 unk_06;
u8 fill_08[6];
vu8 unk_0e;
u8 unk_0f;
u8 fill_10[0x54];
u16 unk_64;
u8 fill_66[0x1d];
u8 unk_83;
u8 fill_84[0x58];
};
struct UnkRfuStruct_1 {
/* 0x000 */ u8 unk_00;
/* 0x001 */ u8 unk_01;
/* 0x002 */ vu8 unk_02;
/* 0x003 */ vu8 unk_03;
/* 0x004 */ u8 unk_04;
/* 0x005 */ u8 unk_05;
/* 0x006 */ u8 unk_06;
/* 0x007 */ u8 unk_07;
/* 0x008 */ u8 unk_08;
/* 0x009 */ u8 unk_09;
/* 0x00a */ u8 unk_0a;
/* 0x00b */ u8 unk_0b;
/* 0x00c */ u8 unk_0c;
/* 0x00d */ u8 unk_0d;
/* 0x00e */ u8 unk_0e;
/* 0x00f */ u8 unk_0f;
/* 0x010 */ u8 unk_10;
/* 0x011 */ u8 unk_11;
/* 0x012 */ u8 unk_12;
// aligned
/* 0x014 */ u16 unk_14;
/* 0x016 */ u16 unk_16;
/* 0x018 */ u16 unk_18;
/* 0x01a */ u16 unk_1a;
/* 0x01c */ u16 unk_1c;
/* 0x01e */ u16 unk_1e;
/* 0x020 */ const u16 *unk_20;
/* 0x024 */ u8 unk_24;
/* 0x026 */ u16 unk_26;
/* 0x028 */ u16 unk_28[4];
/* 0x030 */ u8 unk_30;
// aligned
/* 0x032 */ u16 unk_32;
/* 0x034 */ u16 unk_34[4];
/* 0x03c */ const struct UnkLinkRfuStruct_02022B2C *unk_3c;
/* 0x040 */ void (*unk_40)(u8, u8);
/* 0x044 */ void (*unk_44)(u16);
/* 0x048 */ u8 filler_48[8];
/* 0x050 */ u32 unk_50[0x399];
/* 0xeb4 */ u8 filler_e64[12];
};
struct UnkRfuStruct_2_Sub_6c {
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 unk_02;
/* 0x04 */ const u8 *unk_04;
/* 0x08 */ u32 unk_08;
/* 0x0c */ u32 unk_0c;
/* 0x10 */ u8 unk_10;
/* 0x11 */ u8 unk_11;
/* 0x12 */ u8 unk_12;
};
struct UnkRfuStruct_2_Sub_124 {
/* 0x000 */ u8 unk_00[32][70];
/* 0x8c0 */ vu8 unk_8c0;
/* 0x8c1 */ vu8 unk_8c1;
/* 0x8c2 */ vu8 unk_8c2;
/* 0x8c3 */ vu8 unk_8c3;
};
struct UnkRfuStruct_2_Sub_9e8 {
/* 0x000 */ u8 unk_00[40][14];
/* 0x230 */ vu8 unk_230;
/* 0x231 */ vu8 unk_231;
/* 0x232 */ vu8 unk_232;
/* 0x233 */ vu8 unk_233;
};
struct UnkRfuStruct_2_Sub_c1c {
/* 0x00 */ u8 unk_00[2][14];
/* 0x1c */ vu8 unk_1c;
/* 0x1d */ vu8 unk_1d;
/* 0x1e */ vu8 unk_1e;
};
struct UnkRfuStruct_Sub_Unused {
/* 0x000 */ u8 unk_00[2][256];
/* 0x200 */ vu8 unk_200;
/* 0x201 */ vu8 unk_201;
/* 0x202 */ vu8 unk_202;
/* 0x203 */ vu8 unk_203;
};
struct UnkRfuStruct_2 {
/* 0x000 */ void (*unk_00)(void);
/* 0x004 */ u16 unk_04;
/* 0x006 */ u8 filler_06[4];
/* 0x00a */ u16 unk_0a;
/* 0x00c */ u8 unk_0c;
/* 0x00d */ u8 playerCount;
/* 0x00e */ u8 unk_0e;
/* 0x00f */ u8 unk_0f;
/* 0x010 */ u16 unk_10;
/* 0x012 */ u16 unk_12;
/* 0x014 */ u8 unk_14[4][14];
/* 0x04c */ u8 unk_4c[14];
/* 0x05a */ u8 unk_5a;
/* 0x05b */ u8 unk_5b;
/* 0x05c */ u8 unk_5c[5];
/* 0x061 */ u8 unk_61[5];
/* 0x066 */ u8 unk_66;
/* 0x067 */ u8 unk_67;
/* 0x068 */ u8 filler_68[4];
/* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c;
/* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5];
/* 0x0e4 */ u8 unk_e4[5];
/* 0x0e9 */ u8 unk_e9[5];
/* 0x0ee */ vu8 unk_ee;
/* 0x0ef */ u8 unk_ef;
/* 0x0f0 */ u8 unk_f0;
/* 0x0f1 */ u8 unk_f1;
/* 0x0f2 */ u16 unk_f2[6];
/* 0x0fe */ u16 unk_fe;
/* 0x100 */ u16 unk_100;
/* 0x102 */ u8 unk_102;
/* 0x103 */ u8 filler_103[0x21];
/* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124;
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
/* 0xc3c */ vu8 unk_c3c;
/* 0xc3d */ u8 unk_c3d;
/* 0xc3e */ vu8 unk_c3e;
/* 0xc3f */ u8 unk_c3f[70];
/* 0xc85 */ u8 unk_c85;
/* 0xc86 */ u8 unk_c86;
/* 0xc87 */ u8 unk_c87[5][7][2];
/* 0xccd */ u8 unk_ccd;
/* 0xcce */ u8 unk_cce;
/* 0xccf */ u8 unk_ccf;
/* 0xcd0 */ vu8 unk_cd0;
/* 0xcd1 */ u8 unk_cd1[4];
/* 0xcd5 */ u8 unk_cd5[4];
/* 0xcd9 */ u8 unk_cd9;
/* 0xcda */ u8 unk_cda;
/* 0xcdb */ vu8 unk_cdb;
/* 0xcdc */ vu8 unk_cdc;
/* 0xcdd */ u8 unk_cdd;
/* 0xcde */ u8 unk_cde[4];
/* 0xce2 */ u8 unk_ce2;
/* 0xce2 */ u8 unk_ce3;
/* 0xce4 */ u8 unk_ce4;
/* 0xce5 */ u8 unk_ce5;
/* 0xce5 */ u8 unk_ce6;
/* 0xce7 */ u8 unk_ce7;
/* 0xce8 */ u8 unk_ce8;
/* 0xce9 */ u8 unk_ce9;
/* 0xcea */ u8 unk_cea[4];
/* 0xcee */ u8 unk_cee[4];
}; // size = 0xcf4
struct UnkRfuStruct_8010A14 {
char unk_00[15];
u8 unk_0f;
u8 unk_10[4];
struct LinkPlayer unk_14[5];
u8 fill_a0[0x5c];
};
// Exported RAM declarations
extern struct UnkRfuStruct_1 gUnknown_03004140;
extern struct UnkRfuStruct_2 gUnknown_03005000;
// Exported ROM declarations
u32 sub_800BEC0(void);
void sub_800E700(void);
void sub_800EDD4(void);
void sub_800F6FC(u8 who);
void sub_800F728(u8 who);
bool32 sub_800F7E4(void);
void sub_800F804(void);
void sub_800F850(void);
u8 sub_800FCD8(void);
bool32 sub_800FE84(const u8 *src, size_t size);
void Rfu_set_zero(void);
u8 sub_80104F4(void);
u8 rfu_get_multiplayer_id(void);
bool8 sub_8010100(u8 a0);
bool8 sub_8010500(void);
bool8 Rfu_IsMaster(void);
void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
void sub_8010434(void);
void sub_800E604(void);
void sub_800E174(void);
void sub_800E6D0(void);
bool32 sub_8010EC0(void);
bool32 sub_8010F1C(void);
bool32 sub_8011A80(void);
bool32 sub_800F0B8(void);
u32 sub_80124D4(void);
void RfuVSync(void);
void sub_80111B0(bool32 a0);
u8 sub_8011A74(void);
struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void);
void sub_8011068(u8 a0);
void sub_8011170(u32 a0);
void sub_8011A64(u8 a0, u16 a1);
#endif //GUARD_LINK_RFU_H
+2 -1
View File
@@ -2,6 +2,8 @@
#define GUARD_LOAD_SAVE_H #define GUARD_LOAD_SAVE_H
extern bool32 gFlashMemoryPresent; extern bool32 gFlashMemoryPresent;
extern struct SaveBlock2 gSaveblock2;
extern struct PokemonStorage gPokemonStorage;
void ClearSav2(void); void ClearSav2(void);
void ClearSav1(void); void ClearSav1(void);
@@ -19,6 +21,5 @@ void LoadSerializedGame(void);
void LoadPlayerBag(void); void LoadPlayerBag(void);
void SavePlayerBag(void); void SavePlayerBag(void);
void SetSaveBlocksPointers(u16); void SetSaveBlocksPointers(u16);
void MoveSaveBlocks_ResetHeap(void);
#endif // GUARD_LOAD_SAVE_H #endif // GUARD_LOAD_SAVE_H
+5
View File
@@ -17,4 +17,9 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo); void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern struct MusicPlayerInfo gMPlayInfo_SE3;
extern struct SoundInfo gSoundInfo;
#endif //GUARD_M4A_H #endif //GUARD_M4A_H
+11 -5
View File
@@ -42,14 +42,19 @@ struct Main
/*0x439*/ u8 field_439_x4:1; /*0x439*/ u8 field_439_x4:1;
}; };
extern u8 gUnknown_3001764;
extern struct Main gMain;
extern bool8 gSoftResetDisabled;
extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion; extern const u8 gGameVersion;
extern const u8 gGameLanguage; extern const u8 gGameLanguage;
extern u16 gKeyRepeatStartDelay;
extern bool8 gLinkTransferringData;
extern struct Main gMain;
extern u16 gKeyRepeatContinueDelay;
extern bool8 gSoftResetDisabled;
extern IntrFunc gIntrTable[];
extern u8 gLinkVSyncDisabled;
extern u32 IntrMain_Buffer[];
extern u8 gPcmDmaCounter;
void AgbMain(void); void AgbMain(void);
void SetMainCallback2(MainCallback callback); void SetMainCallback2(MainCallback callback);
void InitKeys(void); void InitKeys(void);
@@ -60,6 +65,7 @@ void SetSerialCallback(IntrCallback callback);
void InitFlashTimer(void); void InitFlashTimer(void);
void DoSoftReset(void); void DoSoftReset(void);
void ClearPokemonCrySongs(void); void ClearPokemonCrySongs(void);
void RestoreSerialTimer3IntrHandlers(void);
void StartTimer1(void); void StartTimer1(void);
void SeedRngAndSetTrainerId(void); void SeedRngAndSetTrainerId(void);
+1
View File
@@ -1,6 +1,7 @@
#ifndef GUARD_MALLOC_H #ifndef GUARD_MALLOC_H
#define GUARD_MALLOC_H #define GUARD_MALLOC_H
#define HEAP_SIZE 0x1C000
#define malloc Alloc #define malloc Alloc
#define calloc(ct, sz) AllocZeroed((ct) * (sz)) #define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free #define free Free
+3
View File
@@ -17,6 +17,8 @@ struct MenuAction
} func; } func;
}; };
extern const u16 gUnknown_0860F074[];
void sub_81971D0(void); void sub_81971D0(void);
void sub_8197200(void); void sub_8197200(void);
u16 sub_8197224(void); u16 sub_8197224(void);
@@ -48,6 +50,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
bool8 free_temp_tile_data_buffers_if_possible(void); bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16); struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 ProcessMenuInputNoWrap_(void); s8 ProcessMenuInputNoWrap_(void);
void do_scheduled_bg_tilemap_copies_to_vram(void); void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void);
+4 -2
View File
@@ -25,8 +25,6 @@ struct UCoords32
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
extern MainCallback gFieldCallback; extern MainCallback gFieldCallback;
void IncrementGameStat(u8 index);
void Overworld_SetMapObjTemplateCoords(u8, s16, s16); void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
void Overworld_SetMapObjTemplateMovementType(u8, u8); void Overworld_SetMapObjTemplateMovementType(u8, u8);
@@ -54,6 +52,7 @@ void Overworld_ChangeMusicToDefault(void);
void Overworld_ChangeMusicTo(u16); void Overworld_ChangeMusicTo(u16);
bool32 is_c1_link_related_active(void); bool32 is_c1_link_related_active(void);
extern u16 gUnknown_03005DA8;
void strange_npc_table_clear(void); void strange_npc_table_clear(void);
const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16); const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16);
@@ -75,6 +74,9 @@ bool8 is_light_level_1_2_3_5_or_6(u8 a1);
void sub_8086194(void); void sub_8086194(void);
void sub_80861B0(void); void sub_80861B0(void);
bool32 sub_80875C8(void);
bool32 sub_8087634(void);
bool32 sub_808766C(void);
void IncrementGameStat(u8); void IncrementGameStat(u8);
u32 GetGameStat(u8); u32 GetGameStat(u8);
+149 -72
View File
@@ -2,6 +2,7 @@
#define GUARD_POKEMON_H #define GUARD_POKEMON_H
#include "constants/pokemon.h" #include "constants/pokemon.h"
#include "sprite.h"
#define MON_DATA_PERSONALITY 0 #define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1 #define MON_DATA_OT_ID 1
@@ -266,6 +267,46 @@ struct UnknownPokemonStruct
u8 friendship; u8 friendship;
}; };
struct UnknownPokemonSubStruct2
{
u16 species;
u16 moves[4];
u16 item;
};
struct UnknownPokemonStruct2
{
u8 field_0_0 : 5;
u8 field_0_1 : 2;
u8 field_1;
u8 field_2;
u8 field_3;
struct UnknownPokemonSubStruct2 mons[3];
u8 field_28[23];
u8 language;
};
struct UnknownPokemonStruct3
{
u8 field_0[48];
u16 field_30;
u8 field_32[38];
};
struct Unknown_806F160_Struct
{
u8 field_0_0 : 4;
u8 field_0_1 : 4;
u8 field_1;
u8 magic;
u8 field_3_0 : 4;
u8 field_3_1 : 4;
void *bytes;
u8 **byteArrays;
struct SpriteTemplate *templates;
struct SpriteFrameImage *frameImages;
};
#define BATTLE_STATS_NO 8 #define BATTLE_STATS_NO 8
struct BattlePokemon struct BattlePokemon
@@ -424,17 +465,22 @@ extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern u8 gEnemyPartyCount; extern u8 gEnemyPartyCount;
extern struct Pokemon gEnemyParty[PARTY_SIZE]; extern struct Pokemon gEnemyParty[PARTY_SIZE];
extern struct SpriteTemplate gUnknown_0202499C;
extern struct PokemonStorage* gPokemonStoragePtr;
extern const u8 gFacilityClassToPicIndex[];
extern const u8 gFacilityClassToTrainerClass[];
extern const struct BaseStats gBaseStats[]; extern const struct BaseStats gBaseStats[];
extern const u8 *const gItemEffectTable[]; extern const u8 *const gItemEffectTable[];
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
extern struct PokemonStorage* gPokemonStoragePtr;
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1]; extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[]; extern const u16 *const gLevelUpLearnsets[];
extern const u8 gUnknown_08329D22[];
u8 CountAliveMonsInBattle(u8 caseId); extern const u8 gUnknown_08329D26[];
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0 extern const u8 gUnknown_08329D2A[];
#define BATTLE_ALIVE_ATK_SIDE 1 extern const u8 gStatStageRatios[][2];
#define BATTLE_ALIVE_DEF_SIDE 2 extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon); void ZeroMonData(struct Pokemon *mon);
@@ -448,26 +494,45 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality); void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId); void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread); void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId);
void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
bool8 sub_80688F8(u8 caseId, u8 battlerId);
void SetDeoxysStats(void);
u16 sub_8068B48(void);
u16 sub_8068BB0(void);
void CreateObedientEnemyMon(void);
void CalculateMonStats(struct Pokemon *mon); void CalculateMonStats(struct Pokemon *mon);
void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon); u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move); u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move); u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
void MonRestorePP(struct Pokemon *mon);
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot); void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot); void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
void GiveMonInitialMoveset(struct Pokemon *mon); void GiveMonInitialMoveset(struct Pokemon *mon);
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon); void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move); void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
u8 CountAliveMonsInBattle(u8 caseId);
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
#define BATTLE_ALIVE_ATK_SIDE 1
#define BATTLE_ALIVE_DEF_SIDE 2
u8 GetDefaultMoveTarget(u8 battlerId);
u8 GetMonGender(struct Pokemon *mon); u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon); u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality); u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
void EncryptBoxMon(struct BoxPokemon *boxMon); void sub_806A068(u16 species, u8 battlerPosition);
void DecryptBoxMon(struct BoxPokemon *boxMon); void sub_806A12C(u16 trainerSpriteId, u8 battlerPosition);
void sub_806A1C0(u16 arg0, u8 battlerPosition);
// These are full type signatures for GetMonData() and GetBoxMonData(), // These are full type signatures for GetMonData() and GetBoxMonData(),
// but they are not used since some code erroneously omits the third arg. // but they are not used since some code erroneously omits the third arg.
@@ -476,93 +541,105 @@ void DecryptBoxMon(struct BoxPokemon *boxMon);
u32 GetMonData(); u32 GetMonData();
u32 GetBoxMonData(); u32 GetBoxMonData();
void SetMonData(struct Pokemon *mon, s32 field, const void *data); void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data); void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
void CopyMon(void *dest, void *src, size_t size); void CopyMon(void *dest, void *src, size_t size);
u8 GiveMonToPlayer(struct Pokemon *mon); u8 GiveMonToPlayer(struct Pokemon *mon);
u8 SendMonToPC(struct Pokemon *mon); u8 SendMonToPC(struct Pokemon* mon);
u8 CalculatePlayerPartyCount(void); u8 CalculatePlayerPartyCount(void);
u8 CalculateEnemyPartyCount(void); u8 CalculateEnemyPartyCount(void);
u8 GetMonsStateToDoubles(void);
u8 GetMonsStateToDoubles_2(void);
u8 GetAbilityBySpecies(u16 species, bool8 altAbility); u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
u8 GetMonAbility(struct Pokemon *mon); u8 GetMonAbility(struct Pokemon *mon);
void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord); void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord);
u8 GetSecretBaseTrainerPicIndex(void); u8 GetSecretBaseTrainerPicIndex(void);
u8 GetSecretBaseTrainerNameIndex(void); u8 GetSecretBaseTrainerClass(void);
bool8 IsPlayerPartyAndPokemonStorageFull(void); bool8 IsPlayerPartyAndPokemonStorageFull(void);
bool8 IsPokemonStorageFull(void); bool8 IsPokemonStorageFull(void);
void GetSpeciesName(u8 *name, u16 species); void GetSpeciesName(u8 *name, u16 species);
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex); u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex); void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex);
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 *sub_806CF78(u16 itemId);
u8 GetNature(struct Pokemon *mon); u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality); u8 GetNatureFromPersonality(u32 personality);
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
void MonRestorePP(struct Pokemon *);
void BoxMonRestorePP(struct BoxPokemon *);
u16 NationalPokedexNumToSpecies(u16 nationalNum);
u16 NationalToHoennOrder(u16);
u16 SpeciesToNationalPokedexNum(u16);
u16 HoennToNationalOrder(u16);
u16 SpeciesToCryId(u16 species);
void DrawSpindaSpots(u16, u32, u8 *, u8);
void AdjustFriendship(struct Pokemon *, u8);
u8 CheckPartyHasHadPokerus(struct Pokemon *, u8);
void UpdatePartyPokerusTime(u16);
u32 CanMonLearnTMHM(struct Pokemon *, u8);
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
void ClearBattleMonForms(void);
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
bool8 IsOtherTrainer(u32, u8 *);
void SetWildMonHeldItem(void);
u16 GetMonEVCount(struct Pokemon *);
const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon);
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
bool32 IsHMMove2(u16 move);
bool8 IsPokeSpriteNotFlipped(u16 species);
bool8 IsMonShiny(struct Pokemon *mon);
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
bool8 IsTradedMon(struct Pokemon *mon);
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
s32 GetBattlerMultiplayerId(u16 a1);
bool16 sub_806D82C(u8 id);
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
void sub_8068AA4(void); // sets stats for deoxys
bool8 HasTwoFramesAnimation(u16 species);
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem); u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
u16 HoennPokedexNumToSpecies(u16 hoennNum);
u16 NationalPokedexNumToSpecies(u16 nationalNum);
u16 NationalToHoennOrder(u16 nationalNum);
u16 SpeciesToNationalPokedexNum(u16 species);
u16 SpeciesToHoennPokedexNum(u16 species);
u16 HoennToNationalOrder(u16 hoennNum);
u16 SpeciesToCryId(u16 species);
void sub_806D544(u16 species, u32 personality, u8 *dest);
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
bool8 sub_806D7EC(void);
bool16 sub_806D82C(u8 id);
s32 GetBattlerMultiplayerId(u16 a1);
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
void AdjustFriendship(struct Pokemon *mon, u8 event);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
u16 GetMonEVCount(struct Pokemon *mon);
void RandomlyGivePartyPokerus(struct Pokemon *party); void RandomlyGivePartyPokerus(struct Pokemon *party);
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection); u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection); u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days); void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party); void PartySpreadPokerus(struct Pokemon *party);
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 GetDefaultMoveTarget(u8 atkBank);
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
void sub_806A1C0(u16 arg0, u8 bankIdentity);
void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
u8 GetSecretBaseTrainerPicIndex(void);
bool8 TryIncrementMonLevel(struct Pokemon *mon); bool8 TryIncrementMonLevel(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon); u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm);
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
u8 GetMonsStateToDoubles_2(void); u8 GetNumberOfRelearnableMoves(struct Pokemon *mon);
u16 SpeciesToPokedexNum(u16 species);
#include "sprite.h" bool32 sub_806E3F8(u16 species);
void ClearBattleMonForms(void);
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); u16 GetBattleBGM(void);
void PlayBattleBGM(void);
void PlayMapChosenOrBattleBGM(u16 songId);
void sub_806E694(u16 songId);
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
bool32 IsHMMove2(u16 move);
bool8 IsMonSpriteNotFlipped(u16 species);
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor);
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor);
bool8 IsTradedMon(struct Pokemon *mon);
bool8 IsOtherTrainer(u32 otId, u8 *otName);
void MonRestorePP(struct Pokemon *mon);
void BoxMonRestorePP(struct BoxPokemon *boxMon);
void sub_806E994(void);
void SetWildMonHeldItem(void);
bool8 IsMonShiny(struct Pokemon *mon);
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
const u8 *GetTrainerPartnerName(void);
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame);
void sub_806EE98(void);
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
u8 sub_806EF08(u8 arg0);
u8 sub_806EF84(u8 arg0, u8 arg1);
u16 sub_806EFF0(u16 arg0);
u16 FacilityClassToPicIndex(u16 facilityClass);
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
const u8 *GetTrainerClassNameFromId(u16 trainerId);
const u8 *GetTrainerNameFromId(u16 trainerId);
bool8 HasTwoFramesAnimation(u16 species);
bool8 sub_806F104(void);
struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1);
void sub_806F47C(u8 id);
u8 *sub_806F4F8(u8 id, u8 arg1);
#endif // GUARD_POKEMON_H #endif // GUARD_POKEMON_H
-9
View File
@@ -1,9 +0,0 @@
#ifndef GUARD_POKEMON_3_H
#define GUARD_POKEMON_3_H
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
void PlayMapChosenOrBattleBGM(u16 song);
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
#endif // GUARD_POKEMON_3_H
-62
View File
@@ -1,62 +0,0 @@
#ifndef GUARD_POKEMON_ITEM_EFFECTS
#define GUARD_POKEMON_ITEM_EFFECTS
#include "pokemon.h"
// TODO once pokemon item effects is decompiled
/*
struct PokemonItemEffect
{
//field 0
u8 xAtk : 4; // x1, x2, x4, x8 = xF
u8 field_0_x10 : 1; // x10
u8 critRatioUp : 1; // x20
u8 field_0_x40 : 1; // x40
u8 cureInfatuation : 1; // x80
/*field 1
u8 xSpeed : 4; // x1, x2, x4, x8 = xF
u8 xDefense : 4; // x10, x20, x40, xF0
/*field 2
u8 xSpAtk : 4; // x1, x2, x4, x8 = xF
u8 xAccuracy : 4; // x10, x20, x40, xF0
/*field 3
u8 cureConfusion : 1; // x1
u8 cureParalysis : 1; // x2
u8 cureFreeze : 1; // x4
u8 cureBurn : 1; // x8
u8 curePoison : 1; // x10
u8 cureSleep : 1; // x20
u8 field_3_x40 : 1; // x40
u8 cantLowerStats : 1; // x80
/*field 4
u8 hpEv : 1; // x1
u8 attackEv : 1; // x2
u8 healHp : 1; // x4
u8 field_4_x8 : 1; // x8
u8 field_4_x10 : 1; // x10
u8 ppUp : 1; // x20
u8 levelUp : 1; // x40
u8 evolutionStone : 1; // x80
/*field 5
u8 defEv: 1; // x1
u8 speedEv : 1; // x2
u8 spDefEv : 1; // x4
u8 spAtkEv : 1; // x8
u8 ppMax : 1; // x10
u8 field_5_x20 : 1; // x20
u8 field_5_x40 : 1; // x40
u8 field_5_x80 : 1; // x80
/*field 6
u8 value;
};
*/
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5);
#endif // GUARD_POKEMON_ITEM_EFFECTS
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_RESET_SAVE_HEAP_H
#define GUARD_RESET_SAVE_HEAP_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_81700F8(void);
#endif //GUARD_RESET_SAVE_HEAP_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_rom_8011DC0_H
#define GUARD_rom_8011DC0_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_8018438(void);
#endif //GUARD_rom_8011DC0_H
+5
View File
@@ -101,6 +101,11 @@ extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[];
extern const u8 gText_RegisteredDataDeleted[]; extern const u8 gText_RegisteredDataDeleted[];
extern const u8 gUnknown_085EA79D[]; extern const u8 gUnknown_085EA79D[];
extern const u8 gText_CommErrorEllipsis[];
extern const u8 gText_MoveCloserToLinkPartner[];
extern const u8 gText_CommErrorCheckConnections[];
extern const u8 gText_ABtnTitleScreen[];
extern const u8 gText_ABtnRegistrationCounter[];
extern const u8 gText_EmptyString2[]; extern const u8 gText_EmptyString2[];
extern const u8 gText_Confirm3[]; extern const u8 gText_Confirm3[];
extern const u8 gText_Cancel4[]; extern const u8 gText_Cancel4[];
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_TRADE_H
#define GUARD_TRADE_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
int sub_807A728(void);
#endif //GUARD_TRADE_H
+6
View File
@@ -68,5 +68,11 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, u8 *pixels, u16 srcX, u16 src
void CopyWindowToVram8Bit(u8 windowId, u8 mode); void CopyWindowToVram8Bit(u8 windowId, u8 mode);
extern struct Window gWindows[]; extern struct Window gWindows[];
extern void* gUnknown_03002F70[];
extern u32 filler_03002F58;
extern u32 filler_03002F5C;
extern u32 filler_03002F64;
extern u8 gUnknown_03002F60;
#endif // GUARD_WINDOW_H #endif // GUARD_WINDOW_H
+9 -11
View File
@@ -52,7 +52,10 @@ SECTIONS {
src/text.o(.text); src/text.o(.text);
src/sprite.o(.text); src/sprite.o(.text);
src/string_util.o(.text); src/string_util.o(.text);
asm/link.o(.text); src/link.o(.text);
src/link_rfu.o(.text);
asm/link_rfu.o(.text);
asm/rom_8011DC0.o(.text);
src/rtc.o(.text); src/rtc.o(.text);
asm/main_menu.o(.text); asm/main_menu.o(.text);
src/battle_controllers.o(.text); src/battle_controllers.o(.text);
@@ -68,13 +71,7 @@ SECTIONS {
src/battle_controller_opponent.o(.text); src/battle_controller_opponent.o(.text);
src/battle_ai_switch_items.o(.text); src/battle_ai_switch_items.o(.text);
src/battle_controller_link_opponent.o(.text); src/battle_controller_link_opponent.o(.text);
src/pokemon_1.o(.text); src/pokemon.o(.text);
asm/pokemon_1.o(.text);
src/calculate_base_damage.o(.text);
src/pokemon_2.o(.text);
asm/pokemon_item_effect.o(.text);
src/pokemon_3.o(.text);
asm/pokemon_3.o(.text);
src/trig.o(.text); src/trig.o(.text);
src/random.o(.text); src/random.o(.text);
src/util.o(.text); src/util.o(.text);
@@ -370,7 +367,9 @@ SECTIONS {
src/sprite.o(.rodata); src/sprite.o(.rodata);
data/io_reg.o(.rodata); data/io_reg.o(.rodata);
src/string_util.o(.rodata); src/string_util.o(.rodata);
data/link.o(.rodata); src/link.o(.rodata);
src/link_rfu.o(.rodata);
data/rom_8011DC0.o(.rodata);
src/rtc.o(.rodata); src/rtc.o(.rodata);
data/main_menu.o(.rodata); data/main_menu.o(.rodata);
data/battle_1.o(.rodata); data/battle_1.o(.rodata);
@@ -383,8 +382,7 @@ SECTIONS {
src/battle_controller_opponent.o(.rodata); src/battle_controller_opponent.o(.rodata);
src/battle_controller_link_opponent.o(.rodata); src/battle_controller_link_opponent.o(.rodata);
data/data2c.o(.rodata); data/data2c.o(.rodata);
src/pokemon_1.o(.rodata); src/pokemon.o(.rodata);
data/data2e.o(.rodata);
src/trig.o(.rodata); src/trig.o(.rodata);
src/util.o(.rodata); src/util.o(.rodata);
src/daycare.o(.rodata); src/daycare.o(.rodata);
-1
View File
@@ -8,7 +8,6 @@
#include "random.h" #include "random.h"
#include "util.h" #include "util.h"
#include "constants/items.h" #include "constants/items.h"
#include "pokemon_item_effects.h"
extern const struct BattleMove gBattleMoves[]; extern const struct BattleMove gBattleMoves[];
extern const u8 gTypeEffectiveness[]; extern const u8 gTypeEffectiveness[];
+11 -13
View File
@@ -26,7 +26,6 @@
#include "data2.h" #include "data2.h"
#include "battle_setup.h" #include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct MusicPlayerInfo gMPlayInfo_BGM;
@@ -34,7 +33,6 @@ extern struct UnusedControllerStruct gUnknown_02022D0C;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct BattleMove gBattleMoves[]; extern const struct BattleMove gBattleMoves[];
extern const u8 gFacilityClassToPicIndex[];
extern void sub_8172EF0(u8 bank, struct Pokemon *mon); extern void sub_8172EF0(u8 bank, struct Pokemon *mon);
extern void sub_806A068(u16, u8); extern void sub_806A068(u16, u8);
@@ -1246,7 +1244,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
{ {
if (gActiveBattler == 1) if (gActiveBattler == B_POSITION_OPPONENT_LEFT)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
@@ -1256,18 +1254,18 @@ static void LinkOpponentHandleDrawTrainerPic(void)
if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{ {
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0) if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_10]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF];
else else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_9]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED];
} }
else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{ {
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0) if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_12]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY];
else else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_11]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN];
} }
else else
{ {
@@ -1286,17 +1284,17 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|| (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_LEAF_GREEN) || (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_LEAF_GREEN)
{ {
if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0) if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_10]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF];
else else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_9]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED];
} }
else if ((gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_RUBY else if ((gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_SAPPHIRE) || (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_SAPPHIRE)
{ {
if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0) if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_12]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY];
else else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_11]; trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN];
} }
else else
{ {
-1
View File
@@ -25,7 +25,6 @@
#include "data2.h" #include "data2.h"
#include "battle_setup.h" #include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern struct UnusedControllerStruct gUnknown_02022D0C; extern struct UnusedControllerStruct gUnknown_02022D0C;
-1
View File
@@ -29,7 +29,6 @@
#include "data2.h" #include "data2.h"
#include "battle_setup.h" #include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct MusicPlayerInfo gMPlayInfo_BGM;
+2 -2
View File
@@ -872,7 +872,7 @@ static void HandleMoveSwitchting(void)
static void sub_80586F8(void) static void sub_80586F8(void)
{ {
if (gLinkVSyncDisabled == 0) if (gWirelessCommType == 0)
{ {
if (gReceivedRemoteLinkPlayers == 0) if (gReceivedRemoteLinkPlayers == 0)
{ {
@@ -908,7 +908,7 @@ void sub_80587B0(void)
{ {
if (sub_800A520()) if (sub_800A520())
{ {
if (gLinkVSyncDisabled == 0) if (gWirelessCommType == 0)
sub_800AC34(); sub_800AC34();
else else
sub_800ADF8(); sub_800ADF8();
-1
View File
@@ -25,7 +25,6 @@
#include "battle_setup.h" #include "battle_setup.h"
#include "item_use.h" #include "item_use.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern struct UnusedControllerStruct gUnknown_02022D0C; extern struct UnusedControllerStruct gUnknown_02022D0C;
@@ -27,7 +27,6 @@
#include "item_use.h" #include "item_use.h"
#include "battle_setup.h" #include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct MusicPlayerInfo gMPlayInfo_BGM;
-1
View File
@@ -25,7 +25,6 @@
#include "data2.h" #include "data2.h"
#include "item_use.h" #include "item_use.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
-1
View File
@@ -24,7 +24,6 @@
#include "item_use.h" #include "item_use.h"
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
-2
View File
@@ -30,8 +30,6 @@
#include "battle_setup.h" #include "battle_setup.h"
#include "item_use.h" #include "item_use.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y; extern u16 gBattle_BG0_Y;
extern s32 gUnknown_0203CD70; extern s32 gUnknown_0203CD70;
+319 -303
View File
@@ -12,13 +12,29 @@
#include "constants/abilities.h" #include "constants/abilities.h"
#include "battle_message.h" #include "battle_message.h"
extern u8 gBattleBuffersTransferData[0x100]; extern u32 gBattleExecBuffer;
extern u8 gUnknown_0202428C; extern void (*gBattleBankFunc[4])(void);
extern u32 gUnknown_02022FF4; extern u8 gBanksByIdentity[4];
extern u8 gUnknown_0203C7B4; extern u8 gActionSelectionCursor[4];
extern u8 gMoveSelectionCursor[4];
extern u8 gNoOfAllBanks;
extern u8 gActiveBank;
extern u16 gBattlePartyID[4];
extern u8 gBattleBufferA[4][0x200];
extern u8 gBattleBufferB[4][0x200];
extern u8 gUnknown_02022D08; extern u8 gUnknown_02022D08;
extern u8 gUnknown_02022D09; extern u8 gUnknown_02022D09;
extern u8 gUnknown_02022D0A; extern u8 gUnknown_02022D0A;
extern u8 gBankAttacker;
extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
extern u8 gEffectBank;
extern struct BattlePokemon gBattleMons[4];
extern u16 gLastUsedMove;
extern u8 gStringBank;
extern u8 gBattleBuffersTransferData[0x100];
static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {};
extern const struct BattleMove gBattleMoves[]; extern const struct BattleMove gBattleMoves[];
@@ -37,7 +53,7 @@ void HandleLinkBattleSetup(void)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800B488(); sub_800B488();
if (!gReceivedRemoteLinkPlayers) if (!gReceivedRemoteLinkPlayers)
OpenLink(); OpenLink();
@@ -758,7 +774,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
gTasks[taskId].data[11]++; gTasks[taskId].data[11]++;
break; break;
case 2: case 2:
if (gLinkVSyncDisabled) if (gWirelessCommType)
{ {
gTasks[taskId].data[11]++; gTasks[taskId].data[11]++;
} }
@@ -917,171 +933,171 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA; sBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
gBattleBuffersTransferData[1] = requestId; sBattleBuffersTransferData[1] = requestId;
gBattleBuffersTransferData[2] = monToCheck; sBattleBuffersTransferData[2] = monToCheck;
gBattleBuffersTransferData[3] = 0; sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA; sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
gBattleBuffersTransferData[1] = monId; sBattleBuffersTransferData[1] = monId;
gBattleBuffersTransferData[2] = bytes; sBattleBuffersTransferData[2] = bytes;
gBattleBuffersTransferData[3] = 0; sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data) void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA; sBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
gBattleBuffersTransferData[1] = requestId; sBattleBuffersTransferData[1] = requestId;
gBattleBuffersTransferData[2] = monToCheck; sBattleBuffersTransferData[2] = monToCheck;
for (i = 0; i < bytes; i++) for (i = 0; i < bytes; i++)
gBattleBuffersTransferData[3 + i] = *(u8*)(data++); sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes);
} }
void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA; sBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
gBattleBuffersTransferData[1] = monId; sBattleBuffersTransferData[1] = monId;
gBattleBuffersTransferData[2] = bytes; sBattleBuffersTransferData[2] = bytes;
for (i = 0; i < bytes; i++) for (i = 0; i < bytes; i++)
gBattleBuffersTransferData[3 + i] = *(u8*)(data++); sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, bytes + 3);
} }
void BtlController_EmitLoadMonSprite(u8 bufferId) void BtlController_EmitLoadMonSprite(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE; sBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE; sBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE; sBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE; sBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit) void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM; sBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
gBattleBuffersTransferData[1] = partyId; sBattleBuffersTransferData[1] = partyId;
gBattleBuffersTransferData[2] = dontClearSubstituteBit; sBattleBuffersTransferData[2] = dontClearSubstituteBit;
gBattleBuffersTransferData[3] = 5; sBattleBuffersTransferData[3] = 5;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1) void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL; sBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
gBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = arg1;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitDrawTrainerPic(u8 bufferId) void BtlController_EmitDrawTrainerPic(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC; sBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC; sBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC; sBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC; sBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitTrainerSlide(u8 bufferId) void BtlController_EmitTrainerSlide(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE; sBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE; sBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE; sBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE; sBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitTrainerSlideBack(u8 bufferId) void BtlController_EmitTrainerSlideBack(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK; sBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK; sBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK; sBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK; sBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitFaintAnimation(u8 bufferId) void BtlController_EmitFaintAnimation(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION; sBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION; sBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION; sBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION; sBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitPaletteFade(u8 bufferId) void BtlController_EmitPaletteFade(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE; sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE; sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE; sBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE; sBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitSuccessBallThrowAnim(u8 bufferId) void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM; sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM; sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM; sBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM; sBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId) void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM; sBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
gBattleBuffersTransferData[1] = caseId; sBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data) void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_PAUSE; sBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
gBattleBuffersTransferData[1] = toWait; sBattleBuffersTransferData[1] = toWait;
for (i = 0; i < toWait * 3; i++) for (i = 0; i < toWait * 3; i++)
gBattleBuffersTransferData[2 + i] = *(u8*)(data++); sBattleBuffersTransferData[2 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, toWait * 3 + 2);
} }
void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit) void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION; sBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
gBattleBuffersTransferData[1] = move; sBattleBuffersTransferData[1] = move;
gBattleBuffersTransferData[2] = (move & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = turnOfMove; sBattleBuffersTransferData[3] = turnOfMove;
gBattleBuffersTransferData[4] = movePower; sBattleBuffersTransferData[4] = movePower;
gBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8; sBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
gBattleBuffersTransferData[6] = dmg; sBattleBuffersTransferData[6] = dmg;
gBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8; sBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
gBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16; sBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
gBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24; sBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
gBattleBuffersTransferData[10] = friendship; sBattleBuffersTransferData[10] = friendship;
gBattleBuffersTransferData[11] = multihit; sBattleBuffersTransferData[11] = multihit;
if (WEATHER_HAS_EFFECT2) if (WEATHER_HAS_EFFECT2)
{ {
gBattleBuffersTransferData[12] = gBattleWeather; sBattleBuffersTransferData[12] = gBattleWeather;
gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8; sBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
} }
else else
{ {
gBattleBuffersTransferData[12] = 0; sBattleBuffersTransferData[12] = 0;
gBattleBuffersTransferData[13] = 0; sBattleBuffersTransferData[13] = 0;
} }
gBattleBuffersTransferData[14] = 0; sBattleBuffersTransferData[14] = 0;
gBattleBuffersTransferData[15] = 0; sBattleBuffersTransferData[15] = 0;
memcpy(&gBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct)); memcpy(&sBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct)); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
} }
void BtlController_EmitPrintString(u8 bufferId, u16 stringID) void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
@@ -1089,12 +1105,12 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
s32 i; s32 i;
struct StringInfoBattle* stringInfo; struct StringInfoBattle* stringInfo;
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING; sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
gBattleBuffersTransferData[1] = gBattleOutcome; sBattleBuffersTransferData[1] = gBattleOutcome;
gBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[2] = stringID;
gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove; stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove; stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem; stringInfo->lastItem = gLastUsedItem;
@@ -1113,7 +1129,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
stringInfo->textBuffs[2][i] = gBattleTextBuff3[i]; stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
} }
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
} }
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
@@ -1121,12 +1137,12 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
s32 i; s32 i;
struct StringInfoBattle *stringInfo; struct StringInfoBattle *stringInfo;
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY; sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
gBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[2] = stringID;
gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove; stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove; stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem; stringInfo->lastItem = gLastUsedItem;
@@ -1142,386 +1158,386 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
stringInfo->textBuffs[2][i] = gBattleTextBuff3[i]; stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
} }
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
} }
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION; sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
gBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = arg2; sBattleBuffersTransferData[2] = arg2;
gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitUnknownYesNoBox(u8 bufferId) void BtlController_EmitUnknownYesNoBox(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX; sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX; sBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX; sBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX; sBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData) void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE; sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE;
gBattleBuffersTransferData[1] = isDoubleBattle; sBattleBuffersTransferData[1] = isDoubleBattle;
gBattleBuffersTransferData[2] = NoPpNumber; sBattleBuffersTransferData[2] = NoPpNumber;
gBattleBuffersTransferData[3] = 0; sBattleBuffersTransferData[3] = 0;
for (i = 0; i < sizeof(*movePpData); i++) for (i = 0; i < sizeof(*movePpData); i++)
gBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i); sBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4);
} }
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1) void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_OPENBAG; sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
gBattleBuffersTransferData[1 + i] = arg1[i]; sBattleBuffersTransferData[1 + i] = arg1[i];
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4) void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON; sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
gBattleBuffersTransferData[1] = caseId; sBattleBuffersTransferData[1] = caseId;
gBattleBuffersTransferData[2] = arg2; sBattleBuffersTransferData[2] = arg2;
gBattleBuffersTransferData[3] = abilityId; sBattleBuffersTransferData[3] = abilityId;
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
gBattleBuffersTransferData[4 + i] = arg4[i]; sBattleBuffersTransferData[4 + i] = arg4[i];
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // but only 7 bytes were written
} }
void BtlController_EmitCmd23(u8 bufferId) void BtlController_EmitCmd23(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_23; sBattleBuffersTransferData[0] = CONTROLLER_23;
gBattleBuffersTransferData[1] = CONTROLLER_23; sBattleBuffersTransferData[1] = CONTROLLER_23;
gBattleBuffersTransferData[2] = CONTROLLER_23; sBattleBuffersTransferData[2] = CONTROLLER_23;
gBattleBuffersTransferData[3] = CONTROLLER_23; sBattleBuffersTransferData[3] = CONTROLLER_23;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
// why is the argument u16 if it's being cast to s16 anyway? // why is the argument u16 if it's being cast to s16 anyway?
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue) void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE; sBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
gBattleBuffersTransferData[1] = 0; sBattleBuffersTransferData[1] = 0;
gBattleBuffersTransferData[2] = (s16)hpValue; sBattleBuffersTransferData[2] = (s16)hpValue;
gBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8; sBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
// why is the argument u16 if it's being cast to s16 anyway? // why is the argument u16 if it's being cast to s16 anyway?
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints) void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE; sBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
gBattleBuffersTransferData[1] = partyId; sBattleBuffersTransferData[1] = partyId;
gBattleBuffersTransferData[2] = (s16)expPoints; sBattleBuffersTransferData[2] = (s16)expPoints;
gBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8; sBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2) void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE; sBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
gBattleBuffersTransferData[1] = status1; sBattleBuffersTransferData[1] = status1;
gBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8; sBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8;
gBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16; sBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16;
gBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24; sBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24;
gBattleBuffersTransferData[5] = status2; sBattleBuffersTransferData[5] = status2;
gBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8; sBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8;
gBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16; sBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16;
gBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24; sBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 9);
} }
void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION; sBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
gBattleBuffersTransferData[1] = status2; sBattleBuffersTransferData[1] = status2;
gBattleBuffersTransferData[2] = status; sBattleBuffersTransferData[2] = status;
gBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8; sBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8;
gBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16; sBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16;
gBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24; sBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6);
} }
void BtlController_EmitStatusXor(u8 bufferId, u8 b) void BtlController_EmitStatusXor(u8 bufferId, u8 b)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR; sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
gBattleBuffersTransferData[1] = b; sBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data) void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER; sBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER;
gBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER; sBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER;
gBattleBuffersTransferData[2] = size; sBattleBuffersTransferData[2] = size;
gBattleBuffersTransferData[3] = (size & 0xFF00) >> 8; sBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
gBattleBuffersTransferData[4 + i] = *(u8*)(data++); sBattleBuffersTransferData[4 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4);
} }
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER; sBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER;
gBattleBuffersTransferData[1] = (u32)(dst); sBattleBuffersTransferData[1] = (u32)(dst);
gBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8; sBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8;
gBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16; sBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16;
gBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24; sBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24;
gBattleBuffersTransferData[5] = size; sBattleBuffersTransferData[5] = size;
gBattleBuffersTransferData[6] = (size & 0xFF00) >> 8; sBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
gBattleBuffersTransferData[7 + i] = *(u8*)(data++); sBattleBuffersTransferData[7 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7);
} }
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter) void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_31; sBattleBuffersTransferData[0] = CONTROLLER_31;
gBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[1] = songId;
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
for (i = 0; i < songId; i++) // ???? for (i = 0; i < songId; i++) // ????
gBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++); sBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
} }
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_32; sBattleBuffersTransferData[0] = CONTROLLER_32;
gBattleBuffersTransferData[1] = size; sBattleBuffersTransferData[1] = size;
gBattleBuffersTransferData[2] = (size & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
gBattleBuffersTransferData[3 + i] = *(u8*)(data++); sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3);
} }
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES; sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
gBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = arg2; sBattleBuffersTransferData[2] = arg2;
gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c) void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE; sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
gBattleBuffersTransferData[1] = b; sBattleBuffersTransferData[1] = b;
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
gBattleBuffersTransferData[2 + i] = c[i]; sBattleBuffersTransferData[2 + i] = c[i];
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
} }
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1) void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE; sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
gBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = 0; sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE; sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
gBattleBuffersTransferData[1] = b; sBattleBuffersTransferData[1] = b;
gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = 0; sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd37(u8 bufferId) void BtlController_EmitCmd37(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_37; sBattleBuffersTransferData[0] = CONTROLLER_37;
gBattleBuffersTransferData[1] = CONTROLLER_37; sBattleBuffersTransferData[1] = CONTROLLER_37;
gBattleBuffersTransferData[2] = CONTROLLER_37; sBattleBuffersTransferData[2] = CONTROLLER_37;
gBattleBuffersTransferData[3] = CONTROLLER_37; sBattleBuffersTransferData[3] = CONTROLLER_37;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd38(u8 bufferId, u8 b) void BtlController_EmitCmd38(u8 bufferId, u8 b)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_38; sBattleBuffersTransferData[0] = CONTROLLER_38;
gBattleBuffersTransferData[1] = b; sBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitCmd39(u8 bufferId) void BtlController_EmitCmd39(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_39; sBattleBuffersTransferData[0] = CONTROLLER_39;
gBattleBuffersTransferData[1] = CONTROLLER_39; sBattleBuffersTransferData[1] = CONTROLLER_39;
gBattleBuffersTransferData[2] = CONTROLLER_39; sBattleBuffersTransferData[2] = CONTROLLER_39;
gBattleBuffersTransferData[3] = CONTROLLER_39; sBattleBuffersTransferData[3] = CONTROLLER_39;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd40(u8 bufferId) void BtlController_EmitCmd40(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_40; sBattleBuffersTransferData[0] = CONTROLLER_40;
gBattleBuffersTransferData[1] = CONTROLLER_40; sBattleBuffersTransferData[1] = CONTROLLER_40;
gBattleBuffersTransferData[2] = CONTROLLER_40; sBattleBuffersTransferData[2] = CONTROLLER_40;
gBattleBuffersTransferData[3] = CONTROLLER_40; sBattleBuffersTransferData[3] = CONTROLLER_40;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitHitAnimation(u8 bufferId) void BtlController_EmitHitAnimation(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION; sBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION; sBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[2] = CONTROLLER_HITANIMATION; sBattleBuffersTransferData[2] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[3] = CONTROLLER_HITANIMATION; sBattleBuffersTransferData[3] = CONTROLLER_HITANIMATION;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd42(u8 bufferId) void BtlController_EmitCmd42(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_42; sBattleBuffersTransferData[0] = CONTROLLER_42;
gBattleBuffersTransferData[1] = CONTROLLER_42; sBattleBuffersTransferData[1] = CONTROLLER_42;
gBattleBuffersTransferData[2] = CONTROLLER_42; sBattleBuffersTransferData[2] = CONTROLLER_42;
gBattleBuffersTransferData[3] = CONTROLLER_42; sBattleBuffersTransferData[3] = CONTROLLER_42;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitPlaySE(u8 bufferId, u16 songId) void BtlController_EmitPlaySE(u8 bufferId, u16 songId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; sBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
gBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[1] = songId;
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = 0; sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM) void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM; sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
gBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[1] = songId;
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = playBGM; sBattleBuffersTransferData[3] = playBGM;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitFaintingCry(u8 bufferId) void BtlController_EmitFaintingCry(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY; sBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY; sBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[2] = CONTROLLER_FAINTINGCRY; sBattleBuffersTransferData[2] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[3] = CONTROLLER_FAINTINGCRY; sBattleBuffersTransferData[3] = CONTROLLER_FAINTINGCRY;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId) void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE; sBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
gBattleBuffersTransferData[1] = terrainId; sBattleBuffersTransferData[1] = terrainId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitIntroTrainerBallThrow(u8 bufferId) void BtlController_EmitIntroTrainerBallThrow(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW; sBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW; sBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[2] = CONTROLLER_INTROTRAINERBALLTHROW; sBattleBuffersTransferData[2] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[3] = CONTROLLER_INTROTRAINERBALLTHROW; sBattleBuffersTransferData[3] = CONTROLLER_INTROTRAINERBALLTHROW;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2) void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2)
{ {
s32 i; s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; sBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
gBattleBuffersTransferData[1] = arg2 & 0x7F; sBattleBuffersTransferData[1] = arg2 & 0x7F;
gBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7; sBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7;
gBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * 6); i++) for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * 6); i++)
gBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus)); sBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
} }
void BtlController_EmitCmd49(u8 bufferId) void BtlController_EmitCmd49(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_49; sBattleBuffersTransferData[0] = CONTROLLER_49;
gBattleBuffersTransferData[1] = CONTROLLER_49; sBattleBuffersTransferData[1] = CONTROLLER_49;
gBattleBuffersTransferData[2] = CONTROLLER_49; sBattleBuffersTransferData[2] = CONTROLLER_49;
gBattleBuffersTransferData[3] = CONTROLLER_49; sBattleBuffersTransferData[3] = CONTROLLER_49;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd50(u8 bufferId) void BtlController_EmitCmd50(u8 bufferId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_50; sBattleBuffersTransferData[0] = CONTROLLER_50;
gBattleBuffersTransferData[1] = CONTROLLER_50; sBattleBuffersTransferData[1] = CONTROLLER_50;
gBattleBuffersTransferData[2] = CONTROLLER_50; sBattleBuffersTransferData[2] = CONTROLLER_50;
gBattleBuffersTransferData[3] = CONTROLLER_50; sBattleBuffersTransferData[3] = CONTROLLER_50;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible) void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY; sBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
gBattleBuffersTransferData[1] = isInvisible; sBattleBuffersTransferData[1] = isInvisible;
gBattleBuffersTransferData[2] = CONTROLLER_SPRITEINVISIBILITY; sBattleBuffersTransferData[2] = CONTROLLER_SPRITEINVISIBILITY;
gBattleBuffersTransferData[3] = CONTROLLER_SPRITEINVISIBILITY; sBattleBuffersTransferData[3] = CONTROLLER_SPRITEINVISIBILITY;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument) void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION; sBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
gBattleBuffersTransferData[1] = animationId; sBattleBuffersTransferData[1] = animationId;
gBattleBuffersTransferData[2] = argument; sBattleBuffersTransferData[2] = argument;
gBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8; sBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2) void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
{ {
bool8 arg2_ = arg2; bool8 arg2_ = arg2;
gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG; sBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
gBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = arg1;
if (arg2_) if (arg2_)
gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = sub_81850DC(&gBattleBuffersTransferData[4]); sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = sub_81850DC(&sBattleBuffersTransferData[4]);
else else
gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = 0; sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[2] + 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sBattleBuffersTransferData[2] + 4);
} }
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId) void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION; sBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
gBattleBuffersTransferData[1] = caseId; sBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitCmd55(u8 bufferId, u8 arg1) void BtlController_EmitCmd55(u8 bufferId, u8 arg1)
{ {
gBattleBuffersTransferData[0] = CONTROLLER_55; sBattleBuffersTransferData[0] = CONTROLLER_55;
gBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b; sBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b;
gBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b; sBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b;
gBattleBuffersTransferData[5] = gBattleBuffersTransferData[4] = sub_81850DC(&gBattleBuffersTransferData[6]); sBattleBuffersTransferData[5] = sBattleBuffersTransferData[4] = sub_81850DC(&sBattleBuffersTransferData[6]);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[4] + 6); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sBattleBuffersTransferData[4] + 6);
} }
-1
View File
@@ -39,7 +39,6 @@ extern const struct CompressedSpriteSheet gTrainerBackPicTable[];
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[]; extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[];
extern const struct SpriteTemplate gUnknown_08329D98[4];
extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow;
extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow;
extern const u8 gEnemyMonElevation[]; extern const u8 gEnemyMonElevation[];
+1 -1
View File
@@ -650,7 +650,7 @@ static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
} }
#else #else
__attribute__((naked)) ASM_DIRECT
static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
{ {
asm(".syntax unified\n\ asm(".syntax unified\n\
+27 -27
View File
@@ -20,6 +20,7 @@
#include "constants/hold_effects.h" #include "constants/hold_effects.h"
#include "constants/trainers.h" #include "constants/trainers.h"
#include "link.h" #include "link.h"
#include "link_rfu.h"
#include "bg.h" #include "bg.h"
#include "dma3.h" #include "dma3.h"
#include "string_util.h" #include "string_util.h"
@@ -50,7 +51,7 @@
#include "international_string_util.h" #include "international_string_util.h"
#include "pokeball.h" #include "pokeball.h"
struct UnknownPokemonStruct2 struct UnknownPokemonStruct4
{ {
/*0x00*/ u16 species; /*0x00*/ u16 species;
/*0x02*/ u16 heldItem; /*0x02*/ u16 heldItem;
@@ -85,7 +86,6 @@ extern const u16 gBattleTextboxPalette[]; // battle textbox palette
extern const struct BgTemplate gUnknown_0831AA08[]; extern const struct BgTemplate gUnknown_0831AA08[];
extern const struct WindowTemplate * const gUnknown_0831ABA0[]; extern const struct WindowTemplate * const gUnknown_0831ABA0[];
extern const u8 gUnknown_0831ACE0[]; extern const u8 gUnknown_0831ACE0[];
extern const u8 gStatStageRatios[][2];
extern const u8 * const gBattleScriptsForMoveEffects[]; extern const u8 * const gBattleScriptsForMoveEffects[];
extern const u8 * const gBattlescriptsForBallThrow[]; extern const u8 * const gBattlescriptsForBallThrow[];
extern const u8 * const gBattlescriptsForRunningByItem[]; extern const u8 * const gBattlescriptsForRunningByItem[];
@@ -198,8 +198,8 @@ EWRAM_DATA static u32 sUnusedUnknownArray[25] = {0};
EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u32 gBattleTypeFlags = 0;
EWRAM_DATA u8 gBattleTerrain = 0; EWRAM_DATA u8 gBattleTerrain = 0;
EWRAM_DATA u32 gUnknown_02022FF4 = 0; EWRAM_DATA u32 gUnknown_02022FF4 = 0;
EWRAM_DATA struct UnknownPokemonStruct2 gUnknown_02022FF8[3] = {0}; // what is it used for? EWRAM_DATA struct UnknownPokemonStruct4 gUnknown_02022FF8[3] = {0}; // what is it used for?
EWRAM_DATA struct UnknownPokemonStruct2* gUnknown_02023058 = NULL; // what is it used for? EWRAM_DATA struct UnknownPokemonStruct4* gUnknown_02023058 = NULL; // what is it used for?
EWRAM_DATA u8 *gUnknown_0202305C = NULL; EWRAM_DATA u8 *gUnknown_0202305C = NULL;
EWRAM_DATA u8 *gUnknown_02023060 = NULL; EWRAM_DATA u8 *gUnknown_02023060 = NULL;
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
@@ -738,7 +738,7 @@ static void CB2_HandleStartBattle(void)
sub_805EF14(); sub_805EF14();
gBattleCommunication[MULTIUSE_STATE] = 1; gBattleCommunication[MULTIUSE_STATE] = 1;
} }
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800E0E8(); sub_800E0E8();
break; break;
case 1: case 1:
@@ -762,8 +762,8 @@ static void CB2_HandleStartBattle(void)
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
gBattleCommunication[MULTIUSE_STATE] = 2; gBattleCommunication[MULTIUSE_STATE] = 2;
} }
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800DFB4(0, 0); CreateWirelessStatusIndicatorSprite(0, 0);
} }
} }
else else
@@ -790,7 +790,7 @@ static void CB2_HandleStartBattle(void)
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1]; gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1];
sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]); sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]);
sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]); sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]);
sub_8068AA4(); SetDeoxysStats();
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
} }
break; break;
@@ -933,7 +933,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
sub_805EF14(); sub_805EF14();
gBattleCommunication[MULTIUSE_STATE] = 1; gBattleCommunication[MULTIUSE_STATE] = 1;
} }
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800E0E8(); sub_800E0E8();
// fall through // fall through
case 1: case 1:
@@ -964,8 +964,8 @@ static void CB2_HandleStartMultiPartnerBattle(void)
gBattleCommunication[MULTIUSE_STATE] = 2; gBattleCommunication[MULTIUSE_STATE] = 2;
} }
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800DFB4(0, 0); CreateWirelessStatusIndicatorSprite(0, 0);
} }
} }
else else
@@ -1202,9 +1202,9 @@ static void CB2_PreInitMultiBattle(void)
case 0: case 0:
if (gReceivedRemoteLinkPlayers != 0 && sub_800A520()) if (gReceivedRemoteLinkPlayers != 0 && sub_800A520())
{ {
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3); gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
sub_80379F8(0); sub_80379F8(0);
SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct2) * 3); SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct4) * 3);
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
} }
break; break;
@@ -1222,12 +1222,12 @@ static void CB2_PreInitMultiBattle(void)
if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplierId].lp_field_18 & 1)) if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplierId].lp_field_18 & 1))
|| (gLinkPlayers[i].lp_field_18 & 1 && gLinkPlayers[playerMultiplierId].lp_field_18 & 1)) || (gLinkPlayers[i].lp_field_18 & 1 && gLinkPlayers[playerMultiplierId].lp_field_18 & 1))
{ {
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3); memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
} }
} }
else else
{ {
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3); memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
} }
} }
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
@@ -1241,14 +1241,14 @@ static void CB2_PreInitMultiBattle(void)
if (sub_800A520() && !gPaletteFade.active) if (sub_800A520() && !gPaletteFade.active)
{ {
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800ADF8(); sub_800ADF8();
else else
sub_800AC34(); sub_800AC34();
} }
break; break;
case 3: case 3:
if (gLinkVSyncDisabled) if (gWirelessCommType)
{ {
if (sub_8010500()) if (sub_8010500())
{ {
@@ -1286,7 +1286,7 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void)
switch (gBattleCommunication[MULTIUSE_STATE]) switch (gBattleCommunication[MULTIUSE_STATE])
{ {
case 0: case 0:
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3); gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
sub_80379F8(3); sub_80379F8(3);
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
*savedCallback = gMain.savedCallback; *savedCallback = gMain.savedCallback;
@@ -1333,7 +1333,7 @@ static void CB2_HandleStartMultiBattle(void)
sub_805EF14(); sub_805EF14();
gBattleCommunication[MULTIUSE_STATE] = 1; gBattleCommunication[MULTIUSE_STATE] = 1;
} }
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800E0E8(); sub_800E0E8();
break; break;
case 1: case 1:
@@ -1351,8 +1351,8 @@ static void CB2_HandleStartMultiBattle(void)
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
} }
if (gLinkVSyncDisabled) if (gWirelessCommType)
sub_800DFB4(0, 0); CreateWirelessStatusIndicatorSprite(0, 0);
} }
} }
else else
@@ -1369,7 +1369,7 @@ static void CB2_HandleStartMultiBattle(void)
ResetBlockReceivedFlags(); ResetBlockReceivedFlags();
sub_8036EB8(4, playerMultiplayerId); sub_8036EB8(4, playerMultiplayerId);
SetAllPlayersBerryData(); SetAllPlayersBerryData();
sub_8068AA4(); SetDeoxysStats();
var = CreateTask(sub_8035D74, 0); var = CreateTask(sub_8035D74, 0);
gTasks[var].data[1] = 0x10E; gTasks[var].data[1] = 0x10E;
gTasks[var].data[2] = 0x5A; gTasks[var].data[2] = 0x5A;
@@ -2136,12 +2136,12 @@ static void sub_8038F34(void)
} }
break; break;
case 8: case 8:
if (!gLinkVSyncDisabled) if (!gWirelessCommType)
sub_800AC34(); sub_800AC34();
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
break; break;
case 9: case 9:
if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1) if (!gMain.field_439_x4 || gWirelessCommType || gReceivedRemoteLinkPlayers != 1)
{ {
gMain.field_439_x4 = 0; gMain.field_439_x4 = 0;
SetMainCallback2(gMain.savedCallback); SetMainCallback2(gMain.savedCallback);
@@ -2320,13 +2320,13 @@ static void sub_803939C(void)
case 8: case 8:
if (--gBattleCommunication[1] == 0) if (--gBattleCommunication[1] == 0)
{ {
if (gMain.field_439_x4 && !gLinkVSyncDisabled) if (gMain.field_439_x4 && !gWirelessCommType)
sub_800AC34(); sub_800AC34();
gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[MULTIUSE_STATE]++;
} }
break; break;
case 9: case 9:
if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1) if (!gMain.field_439_x4 || gWirelessCommType || gReceivedRemoteLinkPlayers != 1)
{ {
gMain.field_439_x4 = 0; gMain.field_439_x4 = 0;
if (!gPaletteFade.active) if (!gPaletteFade.active)
@@ -3389,7 +3389,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void)
} }
#else #else
__attribute__((naked)) ASM_DIRECT
static void BattleIntroOpponent1SendsOutMonAnimation(void) static void BattleIntroOpponent1SendsOutMonAnimation(void)
{ {
asm(".syntax unified\n\ asm(".syntax unified\n\
+1 -1
View File
@@ -1968,7 +1968,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
break; break;
case B_TXT_TRAINER1_CLASS: // trainer class name case B_TXT_TRAINER1_CLASS: // trainer class name
if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE) if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()]; toCpy = gTrainerClassNames[GetSecretBaseTrainerClass()];
else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00)
toCpy = gTrainerClassNames[sub_8068BB0()]; toCpy = gTrainerClassNames[sub_8068BB0()];
else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE) else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE)
+4 -7
View File
@@ -12,7 +12,6 @@
#include "constants/hold_effects.h" #include "constants/hold_effects.h"
#include "util.h" #include "util.h"
#include "pokemon.h" #include "pokemon.h"
#include "calculate_base_damage.h"
#include "random.h" #include "random.h"
#include "battle_controllers.h" #include "battle_controllers.h"
#include "battle_interface.h" #include "battle_interface.h"
@@ -32,7 +31,6 @@
#include "bg.h" #include "bg.h"
#include "string_util.h" #include "string_util.h"
#include "pokemon_icon.h" #include "pokemon_icon.h"
#include "pokemon_item_effects.h"
#include "m4a.h" #include "m4a.h"
#include "mail.h" #include "mail.h"
#include "event_data.h" #include "event_data.h"
@@ -3649,7 +3647,7 @@ static void atk24(void)
} }
} }
#else #else
__attribute__((naked)) ASM_DIRECT
static void atk24(void) static void atk24(void)
{ {
asm("\n\ asm("\n\
@@ -4529,7 +4527,7 @@ static void atk48_playstatchangeanimation(void)
} }
} }
#else #else
__attribute__((naked)) ASM_DIRECT
static void atk48_playstatchangeanimation(void) static void atk48_playstatchangeanimation(void)
{ {
asm("\n\ asm("\n\
@@ -6882,8 +6880,7 @@ static void atk74_hpthresholds2(void)
static void atk75_useitemonopponent(void) static void atk75_useitemonopponent(void)
{ {
gBattlerInMenuId = gBattlerAttacker; gBattlerInMenuId = gBattlerAttacker;
ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1); PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1);
gBattlescriptCurrInstr += 1; gBattlescriptCurrInstr += 1;
} }
@@ -9422,7 +9419,7 @@ static void atkC1_hiddenpowercalc(void)
} }
#else #else
__attribute__((naked)) ASM_DIRECT
static void atkC1_hiddenpowercalc(void) static void atkC1_hiddenpowercalc(void)
{ {
asm(".syntax unified\n\ asm(".syntax unified\n\
-1
View File
@@ -5,7 +5,6 @@
#include "battle_transition.h" #include "battle_transition.h"
#include "main.h" #include "main.h"
#include "task.h" #include "task.h"
#include "pokemon_3.h"
#include "safari_zone.h" #include "safari_zone.h"
#include "script.h" #include "script.h"
#include "constants/game_stat.h" #include "constants/game_stat.h"
-1
View File
@@ -20,7 +20,6 @@
#include "battle_ai_script_commands.h" #include "battle_ai_script_commands.h"
#include "battle_controllers.h" #include "battle_controllers.h"
#include "event_data.h" #include "event_data.h"
#include "calculate_base_damage.h"
#include "link.h" #include "link.h"
#include "berry.h" #include "berry.h"
+11 -11
View File
@@ -160,7 +160,7 @@ extern void sub_809882C(u8, u16, u8);
extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8); extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8);
extern void sub_81AABF0(void (*callback)(void)); extern void sub_81AABF0(void (*callback)(void));
extern void sub_800B4C0(void); extern void sub_800B4C0(void);
extern void sub_8009F8C(void); extern void ClearLinkCallback(void);
extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void); extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
extern void sub_8153430(void); extern void sub_8153430(void);
extern bool8 sub_8153474(void); extern bool8 sub_8153474(void);
@@ -952,10 +952,10 @@ static void sub_807FAC8(void)
sBerryBlenderData->syncArrowSpriteIds[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1); sBerryBlenderData->syncArrowSpriteIds[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[i]], i + 8); StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[i]], i + 8);
} }
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{ {
sub_800E0E8(); sub_800E0E8();
sub_800DFB4(0, 0); CreateWirelessStatusIndicatorSprite(0, 0);
} }
SetVBlankCallback(VBlankCB0_BerryBlender); SetVBlankCallback(VBlankCB0_BerryBlender);
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
@@ -1158,10 +1158,10 @@ static void sub_8080018(void)
sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1); sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8); StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8);
} }
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{ {
sub_800E0E8(); sub_800E0E8();
sub_800DFB4(0, 0); CreateWirelessStatusIndicatorSprite(0, 0);
} }
sBerryBlenderData->mainState++; sBerryBlenderData->mainState++;
break; break;
@@ -1874,7 +1874,7 @@ static void sub_8081370(u16 a0)
static bool32 sub_80814B0(u16 arg0, u16 arg1, u16 arg2) static bool32 sub_80814B0(u16 arg0, u16 arg1, u16 arg2)
{ {
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{ {
if ((arg0 & 0xFF00) == arg2) if ((arg0 & 0xFF00) == arg2)
return TRUE; return TRUE;
@@ -2316,7 +2316,7 @@ static void sub_8081E20(void)
static void sub_8081F94(u16 *a0) static void sub_8081F94(u16 *a0)
{ {
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
*a0 = 0x2F00; *a0 = 0x2F00;
else else
*a0 = 0x2FFF; *a0 = 0x2FFF;
@@ -2345,7 +2345,7 @@ static void CB2_HandleBlenderEndGame(void)
sBerryBlenderData->field_4C -= 32; sBerryBlenderData->field_4C -= 32;
if (sBerryBlenderData->field_4C <= 0) if (sBerryBlenderData->field_4C <= 0)
{ {
sub_8009F8C(); ClearLinkCallback();
sBerryBlenderData->field_4C = 0; sBerryBlenderData->field_4C = 0;
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers != 0)
@@ -2365,7 +2365,7 @@ static void CB2_HandleBlenderEndGame(void)
} }
else if (sub_800A520()) else if (sub_800A520())
{ {
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{ {
sBerryBlenderData->gameBlock.timeRPM.time = sBerryBlenderData->gameFrameTime; sBerryBlenderData->gameBlock.timeRPM.time = sBerryBlenderData->gameFrameTime;
sBerryBlenderData->gameBlock.timeRPM.max_RPM = sBerryBlenderData->max_RPM; sBerryBlenderData->gameBlock.timeRPM.max_RPM = sBerryBlenderData->max_RPM;
@@ -2394,7 +2394,7 @@ static void CB2_HandleBlenderEndGame(void)
ResetBlockReceivedFlags(); ResetBlockReceivedFlags();
sBerryBlenderData->gameEndState++; sBerryBlenderData->gameEndState++;
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{ {
struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock*)(&gBlockRecvBuffer); struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock*)(&gBlockRecvBuffer);
@@ -2871,7 +2871,7 @@ static void sub_8082D28(void)
if (gReceivedRemoteLinkPlayers != 0) if (gReceivedRemoteLinkPlayers != 0)
playerId = GetMultiplayerId(); playerId = GetMultiplayerId();
if (gLinkVSyncDisabled && gReceivedRemoteLinkPlayers != 0) if (gWirelessCommType && gReceivedRemoteLinkPlayers != 0)
{ {
if (playerId == 0) if (playerId == 0)
{ {
+3 -3
View File
@@ -463,7 +463,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
return FALSE; return FALSE;
} }
#else #else
__attribute__((naked)) ASM_DIRECT
bool8 IsDma3ManagerBusyWithBgCopy(void) bool8 IsDma3ManagerBusyWithBgCopy(void)
{ {
asm("push {r4-r7,lr}\n\ asm("push {r4-r7,lr}\n\
@@ -1048,7 +1048,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8
} }
} }
}*/ }*/
__attribute__((naked)) ASM_DIRECT
void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2) void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2)
{ {
asm("push {r4-r7,lr}\n\ asm("push {r4-r7,lr}\n\
@@ -1495,7 +1495,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal
*dest = test; *dest = test;
} }
#else #else
__attribute__((naked)) ASM_DIRECT
void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2) void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2)
{ {
asm("push {r4-r6,lr}\n\ asm("push {r4-r6,lr}\n\
+1 -1
View File
@@ -421,7 +421,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void)
return FALSE; return FALSE;
} }
#else #else
__attribute__((naked)) ASM_DIRECT
bool8 ShouldDoBrailleRegicePuzzle(void) bool8 ShouldDoBrailleRegicePuzzle(void)
{ {
asm(".syntax unified\n\ asm(".syntax unified\n\

Some files were not shown because too many files have changed in this diff Show More