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
ldr r0, [sp, 0x18]
movs r2, 0x1
bl nature_stat_mod
bl ModifyStatByNature
lsls r0, 24
lsrs r0, 24
mov r1, r8
@@ -1618,7 +1618,7 @@ _0818F820:
lsrs r1, 16
ldr r0, [sp, 0x18]
movs r2, 0x2
bl nature_stat_mod
bl ModifyStatByNature
lsls r0, 24
lsrs r0, 24
mov r1, r8
@@ -1645,7 +1645,7 @@ _0818F858:
lsrs r1, 16
ldr r0, [sp, 0x18]
movs r2, 0x3
bl nature_stat_mod
bl ModifyStatByNature
lsls r0, 24
lsrs r0, 24
mov r1, r8
@@ -1672,7 +1672,7 @@ _0818F890:
lsrs r1, 16
ldr r0, [sp, 0x18]
movs r2, 0x4
bl nature_stat_mod
bl ModifyStatByNature
lsls r0, 24
lsrs r0, 24
mov r1, r8
@@ -1699,7 +1699,7 @@ _0818F8C8:
lsrs r1, 16
ldr r0, [sp, 0x18]
movs r2, 0x5
bl nature_stat_mod
bl ModifyStatByNature
lsls r0, 24
lsrs r0, 24
mov r1, r8
@@ -1941,7 +1941,7 @@ sub_818FA74: @ 818FA74
str r4, [sp, 0x4]
ldr r7, [sp, 0x14]
str r7, [sp, 0x8]
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
add r0, sp, 0xC
movs r1, 0x1
negs r1, r1
+3 -3
View File
@@ -1960,7 +1960,7 @@ _0819B572:
mov r2, r9
str r2, [sp, 0x8]
ldr r2, [sp, 0x14]
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
movs r1, 0
add r0, sp, 0xC
strb r1, [r0]
@@ -2103,7 +2103,7 @@ _0819B678:
mov r2, r10
str r2, [sp, 0x8]
movs r2, 0x1E
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
add r0, sp, 0xC
movs r3, 0
strb r3, [r0]
@@ -23864,7 +23864,7 @@ _081A6E0C:
ldr r4, [sp, 0x28]
str r4, [sp, 0x8]
lsrs r2, 24
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
add r0, sp, 0x1C
movs r7, 0
strb r7, [r0]
+7 -7
View File
@@ -2351,7 +2351,7 @@ _08163368:
ldr r2, [sp, 0x30]
str r2, [sp, 0x8]
ldr r2, [sp, 0x20]
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
movs r0, 0xFF
mov r6, sp
strb r0, [r6, 0x14]
@@ -2775,7 +2775,7 @@ _081636CE:
str r2, [sp, 0x8]
ldr r2, [sp, 0x14]
mov r3, r10
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
movs r1, 0
add r0, sp, 0xC
strb r1, [r0]
@@ -2894,7 +2894,7 @@ _081637D0:
mov r2, r9
str r2, [sp, 0x8]
movs r2, 0x1E
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
movs r1, 0
add r0, sp, 0xC
strb r1, [r0]
@@ -5264,7 +5264,7 @@ _08164D14:
ldrb r0, [r0]
cmp r0, 0
beq _08164DB0
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _08164DB0
@@ -5302,7 +5302,7 @@ _08164DB6:
thumb_func_start sub_8164DCC
sub_8164DCC: @ 8164DCC
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08164DDA
@@ -6289,7 +6289,7 @@ _081655A6:
str r3, [sp, 0x8]
lsrs r2, 24
mov r3, r12
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
movs r0, 0xFF
str r0, [sp, 0x48]
movs r0, 0
@@ -7550,7 +7550,7 @@ _08165FDA:
ldr r2, [sp, 0x2C]
str r2, [sp, 0x8]
ldr r2, [sp, 0x20]
bl sub_8068634
bl CreateMonWithEVSpreadPersonalityOTID
add r1, sp, 0x14
movs r0, 0xFF
strb r0, [r1]
+4 -4
View File
@@ -252,7 +252,7 @@ _0815226C:
ldrb r2, [r2]
cmp r3, r2
bcs _08152292
ldr r0, =gUnknown_030024F8
ldr r0, =gMain+0x238
mov r12, r0
ldr r4, =gDummyOamData
adds r2, r5, 0
@@ -350,7 +350,7 @@ _08152322:
cmp r0, 0
beq _08152348
lsls r0, r6, 3
ldr r1, =gUnknown_030024F8
ldr r1, =gMain+0x238
adds r0, r1
ldr r1, =gDummyOamData
ldm r1!, {r2,r3}
@@ -412,7 +412,7 @@ _08152348:
orrs r0, r1
strh r0, [r2, 0x4]
lsls r1, r6, 3
ldr r2, =gUnknown_030024F8
ldr r2, =gMain+0x238
ldr r0, [r4, 0x4]
adds r1, r2
adds r0, r5, r0
@@ -746,7 +746,7 @@ _081525FC:
orrs r0, r2
strb r0, [r1, 0x19]
lsls r1, r5, 3
ldr r0, =gUnknown_030024F8
ldr r0, =gMain+0x238
adds r1, r0
ldr r0, =gDummyOamData
ldm r0!, {r2,r3}
+23 -23
View File
@@ -143,7 +143,7 @@ sub_80B2478: @ 80B2478
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
bl sub_800A0C8
bl GetLinkPlayerDataExchangeStatusTimed
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
@@ -205,7 +205,7 @@ sub_80B24F8: @ 80B24F8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_800B33C
bl HasLinkErrorOccurred
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -274,7 +274,7 @@ sub_80B2578: @ 80B2578
cmp r0, 0
beq _080B258E
movs r0, 0x1
bl sub_800B330
bl SetSuppressLinkErrorMessage
_080B258E:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
@@ -309,7 +309,7 @@ sub_80B25CC: @ 80B25CC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_800B2E8
bl GetSioMultiSI
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -374,9 +374,9 @@ sub_80B2634: @ 80B2634
ldrsh r2, [r4, r3]
cmp r2, 0
bne _080B266C
bl sub_800A0AC
bl OpenLinkTimed
bl sub_800AB98
bl sub_800A2BC
bl ResetLinkPlayers
ldr r0, =gUnknown_08550594
bl AddWindow
strh r0, [r4, 0xA]
@@ -418,7 +418,7 @@ sub_80B2688: @ 80B2688
cmp r5, 0x1
bls _080B26FC
movs r0, 0x1
bl sub_800B330
bl SetSuppressLinkErrorMessage
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1065,7 +1065,7 @@ _080B2C7E:
cmp r4, r0
bcc _080B2C5C
movs r0, 0
bl sub_800B330
bl SetSuppressLinkErrorMessage
bl ResetBlockReceivedFlags
ldr r0, =gSpecialVar_Result
adds r1, r5, 0
@@ -1611,7 +1611,7 @@ sub_80B3144: @ 80B3144
cmp r2, 0
bne _080B3178
bl OpenLink
bl sub_800A2BC
bl ResetLinkPlayers
ldr r0, =task00_08081A90
movs r1, 0x50
bl CreateTask
@@ -1710,7 +1710,7 @@ sub_80B3220: @ 80B3220
ldrb r0, [r0]
cmp r0, 0x1
bne _080B3248
bl sub_800A23C
bl IsLinkPlayerDataExchangeComplete
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1813,7 +1813,7 @@ _080B32F8:
ldr r2, =0x00002211
adds r0, r2, 0
strh r0, [r1]
bl sub_8009FAC
bl ClearLinkCallback_2
b _080B3346
.pool
_080B3318:
@@ -1926,7 +1926,7 @@ _080B3408:
ldr r2, =0x00002211
adds r1, r2, 0
strh r1, [r0]
bl sub_8009FAC
bl ClearLinkCallback_2
movs r0, 0x1
strh r0, [r6]
b _080B3532
@@ -1945,7 +1945,7 @@ _080B343A:
b _080B3532
.pool
_080B3444:
ldr r1, =gUnknown_020229CC
ldr r1, =gLocalLinkPlayer
movs r0, 0
movs r2, 0x1C
bl SendBlock
@@ -2172,7 +2172,7 @@ sub_80B360C: @ 80B360C
movs r5, 0x1
eors r0, r5
bl sub_813C2A0
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080B36B2
@@ -2400,7 +2400,7 @@ _080B382E:
movs r0, 0x1
movs r1, 0
bl FadeScreen
bl sub_8009FAC
bl ClearLinkCallback_2
b _080B3864
_080B3840:
ldr r0, =gPaletteFade
@@ -2512,7 +2512,7 @@ _080B391C:
thumb_func_start sub_80B3924
sub_80B3924: @ 80B3924
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080B3940
@@ -2552,7 +2552,7 @@ sub_80B3968: @ 80B3968
ldr r2, =0x00002211
adds r0, r2, 0
strh r0, [r1]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080B3994
@@ -2652,7 +2652,7 @@ task00_08081A90: @ 80B3A30
cmp r1, r0
ble _080B3A62
bl CloseLink
ldr r0, =c2_800ACD4
ldr r0, =CB2_LinkError
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -2661,7 +2661,7 @@ _080B3A62:
ldrb r0, [r0]
cmp r0, 0
beq _080B3AA6
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _080B3AA0
@@ -2670,7 +2670,7 @@ _080B3A62:
cmp r0, 0
bne _080B3A86
bl CloseLink
ldr r0, =c2_800ACD4
ldr r0, =CB2_LinkError
bl SetMainCallback2
_080B3A86:
adds r0, r4, 0
@@ -2752,7 +2752,7 @@ _080B3B20:
beq _080B3B9E
b _080B3BB8
_080B3B2A:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080B3B40
@@ -2808,7 +2808,7 @@ _080B3B9E:
ldrb r0, [r0]
cmp r0, 0x1
bne _080B3BB8
bl sub_800A23C
bl IsLinkPlayerDataExchangeComplete
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2825,7 +2825,7 @@ _080B3BB8:
thumb_func_start sub_80B3BC4
sub_80B3BC4: @ 80B3BC4
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _080B3BD6
+1 -1
View File
@@ -643,7 +643,7 @@ _080D7C04:
bl sub_800E0E8
movs r0, 0x8
movs r1, 0x8
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
_080D7C56:
pop {r4-r6}
pop {r0}
+2 -2
View File
@@ -2128,9 +2128,9 @@ sub_80F6AE8: @ 80F6AE8
bl sub_800E0E8
movs r0, 0x8
movs r1, 0x8
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
ldr r4, =gSprites
ldr r0, =gUnknown_02022B10
ldr r0, =gWirelessStatusIndicatorSpriteId
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
+1 -1
View File
@@ -147,7 +147,7 @@ sub_80FC5DC: @ 80FC5DC
ldr r1, =gUnknown_02039F2A
movs r0, 0x1
strb r0, [r1]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0x1
bne _080FC60C
+1 -1
View File
@@ -8987,7 +8987,7 @@ _080AF994:
beq _080AF9D0
b _080AF9E8
_080AF99A:
bl sub_8009FAC
bl ClearLinkCallback_2
movs r0, 0x1
movs r1, 0
bl FadeScreen
+1 -1
View File
@@ -7126,7 +7126,7 @@ _0813B790:
b _0813B7C6
.pool
_0813B7A8:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _0813B7B4
+2 -2
View File
@@ -282,7 +282,7 @@ _0816CE6C:
.pool
_0816CE8C:
bl GameCubeMultiBoot_Quit
ldr r0, =sub_800BA38
ldr r0, =SerialCB
bl SetSerialCallback
_0816CE96:
movs r0, 0
@@ -562,7 +562,7 @@ task_intro_2: @ 816D12C
movs r0, 0xCF
lsls r0, 1
bl m4aSongNumStart
bl sub_800B628
bl ResetSerial
add sp, 0x4
pop {r4,r5}
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
+48 -48
View File
@@ -1,20 +1,20 @@
@ Does nothing.
.macro nop
.macro nop
.byte 0x00
.endm
@ Does nothing.
.macro nop1
.macro nop1
.byte 0x01
.endm
@ Terminates script execution.
.macro end
.macro end
.byte 0x02
.endm
@ Jumps back to after the last-executed call statement, and continues script execution from there.
.macro return
.macro return
.byte 0x03
.endm
@@ -71,12 +71,12 @@
.endm
@ Executes a script stored in a default RAM location.
.macro gotoram
.macro gotoram
.byte 0x0c
.endm
@ Terminates script execution and "resets the script RAM".
.macro killscript
.macro killscript
.byte 0x0d
.endm
@@ -271,7 +271,7 @@
.endm
@ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock state, the script will remain blocked indefinitely (essentially a hang).
.macro waitstate
.macro waitstate
.byte 0x27
.endm
@@ -307,12 +307,12 @@
.endm
@ Runs time based events. In FireRed, this command is a nop.
.macro dodailyevents
.macro dodailyevents
.byte 0x2d
.endm
@ Sets the values of variables 0x8000, 0x8001, and 0x8002 to the current hour, minute, and second. In FRLG, this command sets those variables to zero.
.macro gettime
.macro gettime
.byte 0x2e
.endm
@@ -323,7 +323,7 @@
.endm
@ Blocks script execution until the currently-playing sound (triggered by playse) finishes playing.
.macro waitse
.macro waitse
.byte 0x30
.endm
@@ -334,7 +334,7 @@
.endm
@ Blocks script execution until all currently-playing fanfares finish.
.macro waitfanfare
.macro waitfanfare
.byte 0x32
.endm
@@ -352,7 +352,7 @@
.endm
@ Crossfades the currently-playing song into the map's default song.
.macro fadedefaultbgm
.macro fadedefaultbgm
.byte 0x35
.endm
@@ -460,7 +460,7 @@
.endm
@ Retrieves the number of Pokemon in the player's party, and stores that number in variable 0x800D (LASTRESULT).
.macro getpartysize
.macro getpartysize
.byte 0x43
.endm
@@ -612,7 +612,7 @@
.endm
@ If the script was called by an Object, then that Object will turn to face toward the metatile that the player is standing on.
.macro faceplayer
.macro faceplayer
.byte 0x5a
.endm
@@ -679,17 +679,17 @@
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes.
.macro trainerbattlebegin
.macro trainerbattlebegin
.byte 0x5d
.endm
@ Goes to address after the trainerbattle command (called by the battle functions, see battle_setup.c)
.macro gotopostbattlescript
.macro gotopostbattlescript
.byte 0x5e
.endm
@ Goes to address specified in the trainerbattle command (called by the battle functions, see battle_setup.c)
.macro gotobeatenscript
.macro gotobeatenscript
.byte 0x5f
.endm
@@ -730,7 +730,7 @@
.endm
@ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the box and its text have been fully drawn.
.macro waitmessage
.macro waitmessage
.byte 0x66
.endm
@@ -741,32 +741,32 @@
.endm
@ Closes the current message box.
.macro closemessage
.macro closemessage
.byte 0x68
.endm
@ Ceases movement for all Objects on-screen.
.macro lockall
.macro lockall
.byte 0x69
.endm
@ If the script was called by an Object, then that Object's movement will cease.
.macro lock
.macro lock
.byte 0x6a
.endm
@ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open.
.macro releaseall
.macro releaseall
.byte 0x6b
.endm
@ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open.
.macro release
.macro release
.byte 0x6c
.endm
@ Blocks script execution until the player presses any key.
.macro waitbuttonpress
.macro waitbuttonpress
.byte 0x6d
.endm
@@ -807,7 +807,7 @@
.endm
@ Nopped in Emerald.
.macro drawbox
.macro drawbox
.byte 0x72
.endm
@@ -838,7 +838,7 @@
.endm
@ Hides all boxes displayed with drawmonpic.
.macro erasemonpic
.macro erasemonpic
.byte 0x76
.endm
@@ -978,22 +978,22 @@
.endm
@ This allows you to choose a Pokemon to use in a contest. In FireRed, this command sets the byte at 0x03000EA8 to 0x01.
.macro choosecontestmon
.macro choosecontestmon
.byte 0x8b
.endm
@ Starts a contest. In FireRed, this command is a nop.
.macro startcontest
.macro startcontest
.byte 0x8c
.endm
@ Shows the results of a contest. In FireRed, this command is a nop.
.macro showcontestresults
.macro showcontestresults
.byte 0x8d
.endm
@ Starts a contest over a link connection. In FireRed, this command is a nop.
.macro contestlinktransfer
.macro contestlinktransfer
.byte 0x8e
.endm
@@ -1033,7 +1033,7 @@
.endm
@ Hides the secondary box spawned by showmoney.
.macro hidemoneybox
.macro hidemoneybox
.byte 0x94
.endm
@@ -1104,7 +1104,7 @@
.endm
@ Checks the player's gender. If male, then 0x0000 is stored in variable 0x800D (LASTRESULT). If female, then 0x0001 is stored in LASTRESULT.
.macro checkplayergender
.macro checkplayergender
.byte 0xa0
.endm
@@ -1125,7 +1125,7 @@
.endm
@ Queues a weather change to the default weather for the map.
.macro resetweather
.macro resetweather
.byte 0xa3
.endm
@@ -1136,7 +1136,7 @@
.endm
@ Executes the weather change queued with resetweather or setweather. The current weather will smoothly fade into the queued weather.
.macro doweather
.macro doweather
.byte 0xa5
.endm
@@ -1195,7 +1195,7 @@
.endm
@ Waits for the door animation started with opendoor or closedoor to finish.
.macro waitdooranim
.macro waitdooranim
.byte 0xae
.endm
@@ -1223,7 +1223,7 @@
.endm
@ In FireRed and Emerald, this command is a nop.
.macro showelevmenu
.macro showelevmenu
.byte 0xb2
.endm
@@ -1251,7 +1251,7 @@
.endm
@ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes.
.macro dowildbattle
.macro dowildbattle
.byte 0xb7
.endm
@@ -1335,7 +1335,7 @@
.endm
@ Blocks script execution until cry finishes.
.macro waitmoncry
.macro waitmoncry
.byte 0xc5
.endm
@@ -1359,17 +1359,17 @@
.endm
@ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of the screen when the Main Menu is opened.
.macro unloadhelp
.macro unloadhelp
.byte 0xc9
.endm
@ After using this command, all standard message boxes will use the signpost frame.
.macro signmsg
.macro signmsg
.byte 0xca
.endm
@ Ends the effects of signmsg, returning message box frames to normal.
.macro normalmsg
.macro normalmsg
.byte 0xcb
.endm
@@ -1393,7 +1393,7 @@
.endm
@ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the offset specified by the pointer at 0x020375C0.
.macro execram
.macro execram
.byte 0xcf
.endm
@@ -1424,7 +1424,7 @@
.2byte \unknown
.endm
.macro mossdeepgym2
.macro mossdeepgym2
.byte 0xd4
.endm
@@ -1434,7 +1434,7 @@
.2byte \var
.endm
.macro mossdeepgym4
.macro mossdeepgym4
.byte 0xd6
.endm
@@ -1446,15 +1446,15 @@
.2byte \word2
.endm
.macro cmdD8
.macro cmdD8
.byte 0xd8
.endm
.macro cmdD9
.macro cmdD9
.byte 0xd9
.endm
.macro hidebox2
.macro hidebox2
.byte 0xda
.endm
@@ -1519,7 +1519,7 @@
.endm
.macro case condition, dest
compare_var_to_value 0x8000, \condition
compare 0x8000, \condition
goto_eq \dest
.endm
+2 -2
View File
@@ -3940,7 +3940,7 @@ AddBirchSpeechObjects: @ 803192C
strb r1, [r2]
strh r0, [r5, 0x1A]
movs r0, 0x3C
bl sub_806EFF0
bl FacilityClassToPicIndex
lsls r0, 24
lsrs r0, 24
ldr r4, =0x0201c000
@@ -3970,7 +3970,7 @@ AddBirchSpeechObjects: @ 803192C
strb r1, [r2, 0x5]
strh r0, [r5, 0x1C]
movs r0, 0x3F
bl sub_806EFF0
bl FacilityClassToPicIndex
lsls r0, 24
lsrs r0, 24
ldr r1, =0x0201c000
+19 -19
View File
@@ -3180,7 +3180,7 @@ CB2_NewGame: @ 8085EF8
ldr r1, =gUnknown_03005DB0
movs r0, 0
str r0, [r1]
ldr r0, =gUnknown_030026F8
ldr r0, =gMain+0x438
bl do_load_map_stuff_loop
bl SetFieldVBlankCallback
ldr r0, =c1_overworld
@@ -3255,7 +3255,7 @@ c2_load_new_map: @ 8085FCC
thumb_func_start c2_load_new_map_2
c2_load_new_map_2: @ 8085FFC
push {lr}
ldr r0, =gUnknown_030026F8
ldr r0, =gMain+0x438
bl do_load_map_stuff_loop
bl SetFieldVBlankCallback
ldr r0, =c1_overworld
@@ -3317,7 +3317,7 @@ sub_8086074: @ 8086074
thumb_func_start c2_80567AC
c2_80567AC: @ 8086098
push {lr}
ldr r0, =gUnknown_030026F8
ldr r0, =gMain+0x438
bl map_loading_iteration_3
cmp r0, 0
beq _080860B8
@@ -3356,7 +3356,7 @@ _080860EA:
thumb_func_start c2_exit_to_overworld_2_local
c2_exit_to_overworld_2_local: @ 80860F4
push {lr}
ldr r0, =gUnknown_030026F8
ldr r0, =gMain+0x438
bl sub_8086638
cmp r0, 0
beq _0808610A
@@ -3375,7 +3375,7 @@ c2_exit_to_overworld_2_link: @ 8086118
bl sub_8087598
cmp r0, 0
bne _08086132
ldr r0, =gUnknown_030026F8
ldr r0, =gMain+0x438
bl map_loading_iteration_2_link
cmp r0, 0
beq _08086132
@@ -3395,7 +3395,7 @@ c2_8056854: @ 8086140
ldr r0, =c1_link_related
bl set_callback1
bl sub_8086C2C
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086174
@@ -3586,7 +3586,7 @@ sub_808631C: @ 808631C
bne _0808632E
bl CloseLink
_0808632E:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086348
@@ -3768,14 +3768,14 @@ _080864DA:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08086506
_080864E0:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086506
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
b _08086506
.pool
_080864FC:
@@ -4056,14 +4056,14 @@ _08086766:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08086792
_0808676C:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086792
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
b _08086792
.pool
_08086788:
@@ -4565,7 +4565,7 @@ _08086BCA:
thumb_func_start c1_link_related
c1_link_related: @ 8086BD8
push {r4,lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086BF2
@@ -4578,7 +4578,7 @@ c1_link_related: @ 8086BD8
_08086BF2:
ldr r0, =gUnknown_03005DB4
ldrb r4, [r0]
ldr r0, =gUnknown_03003020
ldr r0, =gLinkPartnersHeldKeys
adds r1, r4, 0
bl sub_8086F38
ldr r0, =gUnknown_03000E14
@@ -4610,7 +4610,7 @@ sub_8086C2C: @ 8086C2C
thumb_func_start sub_8086C40
sub_8086C40: @ 8086C40
push {lr}
ldr r0, =gUnknown_03003020
ldr r0, =gLinkPartnersHeldKeys
bl sub_808709C
pop {r0}
bx r0
@@ -4631,7 +4631,7 @@ c1_link_related_func_set: @ 8086C50
thumb_func_start sub_8086C64
sub_8086C64: @ 8086C64
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086C82
@@ -5029,7 +5029,7 @@ _08086FC0:
movs r0, 0x11
strh r0, [r1]
_08086FC6:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08086FFC
@@ -5926,7 +5926,7 @@ _08087666:
thumb_func_start sub_808766C
sub_808766C: @ 808766C
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _08087688
@@ -5946,11 +5946,11 @@ _0808768A:
thumb_func_start sub_8087690
sub_8087690: @ 8087690
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _080876B0
ldr r0, =gUnknown_03003170
ldr r0, =gLink
ldr r1, =0x00000339
adds r0, r1
ldrb r0, [r0]
+1 -1
View File
@@ -11943,7 +11943,7 @@ _081B6558:
adds r1, r5, 0
_081B6572:
adds r3, r6, 0
bl ExecuteTableBasedItemEffect_
bl ExecuteTableBasedItemEffect
lsls r0, 24
lsrs r0, 24
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
strb r0, [r7, 0x5]
ldrh r0, [r6, 0x2]
bl IsPokeSpriteNotFlipped
bl IsMonSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _081C4828
@@ -1221,7 +1221,7 @@ sub_81C4844: @ 81C4844
cmp r0, 0x1
beq _081C487E
ldrh r0, [r4, 0x2E]
bl IsPokeSpriteNotFlipped
bl IsMonSpriteNotFlipped
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
+11 -11
View File
@@ -25789,7 +25789,7 @@ sub_81D3B54: @ 81D3B54
adds r5, r1, 0
bl sub_81D41A0
movs r7, 0x2
ldr r4, =gUnknown_03003144
ldr r4, =gShouldAdvanceLinkState
_081D3B64:
bl sub_81D4170
ldr r0, =gUnknown_030012E2
@@ -25857,7 +25857,7 @@ sub_81D3BE8: @ 81D3BE8
adds r5, r0, 0
bl sub_81D41A0
movs r6, 0x2
ldr r4, =gUnknown_03003144
ldr r4, =gShouldAdvanceLinkState
_081D3BF6:
bl sub_81D4170
ldr r0, =gUnknown_030012E2
@@ -26006,7 +26006,7 @@ sub_81D3D34: @ 81D3D34
movs r1, 0x8
orrs r0, r1
strh r0, [r2]
ldr r0, =gUnknown_03003144
ldr r0, =gShouldAdvanceLinkState
strb r3, [r0]
ldr r0, =gUnknown_030012E6
strh r3, [r0]
@@ -26062,7 +26062,7 @@ _081D3DC8:
beq _081D3DD8
bl sub_81D413C
_081D3DD8:
ldr r0, =gUnknown_03003144
ldr r0, =gShouldAdvanceLinkState
ldrb r0, [r0]
cmp r0, 0x2
beq _081D3DE2
@@ -26080,7 +26080,7 @@ _081D3DE8:
movs r0, 0x3
strb r0, [r1, 0x1]
_081D3DFC:
ldr r0, =gUnknown_03003144
ldr r0, =gShouldAdvanceLinkState
ldrb r0, [r0]
cmp r0, 0x2
bne _081D3E18
@@ -28050,7 +28050,7 @@ _081D4E12:
beq _081D4E1C
movs r5, 0x3
_081D4E1C:
ldr r1, =gUnknown_03003144
ldr r1, =gShouldAdvanceLinkState
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
@@ -28074,7 +28074,7 @@ sub_81D4E30: @ 81D4E30
strh r0, [r1]
bl OpenLink
movs r0, 0x1
bl sub_800B330
bl SetSuppressLinkErrorMessage
pop {r0}
bx r0
.pool
@@ -28090,7 +28090,7 @@ sub_81D4E60: @ 81D4E60
strh r0, [r1]
movs r0, 0
strh r0, [r2]
ldr r0, =gUnknown_03003174
ldr r0, =gLink+0x4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x4]
@@ -28157,7 +28157,7 @@ sub_81D4EE4: @ 81D4EE4
lsrs r0, 24
cmp r0, 0x2
bhi _081D4F08
bl sub_800B33C
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
beq _081D4F08
@@ -28256,7 +28256,7 @@ _081D4FB6:
ldrb r0, [r0]
cmp r0, 0
beq _081D4FE6
bl sub_800A23C
bl IsLinkPlayerDataExchangeComplete
lsls r0, 24
cmp r0, 0
beq _081D4FE0
@@ -28665,7 +28665,7 @@ _081D5360:
strb r0, [r4, 0x8]
b _081D548A
_081D536A:
bl sub_800B33C
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
beq _081D537A
+4 -4
View File
@@ -621,7 +621,7 @@ _080E726C:
bne _080E730A
movs r0, 0x4
strh r0, [r5]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _080E7296
@@ -664,7 +664,7 @@ _080E72C0:
ldr r0, [r0]
bl Free
bl sub_808729C
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080E72F8
@@ -747,7 +747,7 @@ _080E7384:
movs r0, 0xC8
lsls r0, 1
strh r0, [r5, 0x8]
bl sub_8009FAC
bl ClearLinkCallback_2
b _080E7566
.pool
_080E73A0:
@@ -2393,7 +2393,7 @@ _080E80C0:
lsls r0, 24
cmp r0, 0
bne _080E810A
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080E80E8
+1
View File
@@ -448,4 +448,5 @@ _081357EE:
.pool
thumb_func_end sub_81357BC
.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
strh r0, [r1]
lsls r1, r5, 3
ldr r2, =gUnknown_030022F8
ldr r2, =gMain+0x38
mov r9, r2
add r1, r9
mov r0, r8
+1 -1
View File
@@ -1100,7 +1100,7 @@ sub_80F90DC: @ 80F90DC
bl sub_800E0E8
movs r0, 0x8
movs r1, 0x8
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
_080F90FE:
pop {r0}
bx r0
+2 -2
View File
@@ -1615,7 +1615,7 @@ _080A0506:
thumb_func_start sub_80A0514
sub_80A0514: @ 80A0514
push {lr}
ldr r0, =gUnknown_030026F8
ldr r0, =gMain+0x438
bl sub_80A03E4
cmp r0, 0
beq _080A052E
@@ -1712,7 +1712,7 @@ _080A05AC:
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080A0620
+27 -27
View File
@@ -136,7 +136,7 @@ _08077258:
thumb_func_start sub_8077260
sub_8077260: @ 8077260
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08077280
@@ -410,7 +410,7 @@ _080774B2:
ldr r0, [r0]
adds r0, 0xA8
strb r2, [r0]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08077528
@@ -511,7 +511,7 @@ _080775E8:
beq _080775F2
b _08077B46
_080775F2:
bl sub_800A23C
bl IsLinkPlayerDataExchangeComplete
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -532,7 +532,7 @@ _08077600:
ldr r0, [r0]
adds r0, 0xA8
strb r2, [r0]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _0807762A
@@ -544,7 +544,7 @@ _0807762A:
b _08077B46
.pool
_08077648:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08077680
@@ -564,7 +564,7 @@ _0807765C:
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
b _08077B46
.pool
_08077680:
@@ -1183,14 +1183,14 @@ _08077C28:
b _080780D8
.pool
_08077C3C:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08077C50
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
_08077C50:
ldr r1, =gMain
movs r3, 0x87
@@ -1781,7 +1781,7 @@ sub_807816C: @ 807816C
adds r0, 0x7E
ldrb r0, [r0]
strb r0, [r1, 0x1]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080781B4
@@ -1810,7 +1810,7 @@ sub_80781C8: @ 80781C8
ldr r5, =gMain
ldr r0, =sub_80773AC
str r0, [r5, 0x8]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08078220
@@ -4005,7 +4005,7 @@ sub_8079490: @ 8079490
ands r0, r1
cmp r0, 0
bne _080794C4
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080794B4
@@ -4030,7 +4030,7 @@ _080794C4:
thumb_func_start sub_80794CC
sub_80794CC: @ 80794CC
push {lr}
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08079518
@@ -7026,7 +7026,7 @@ _0807AC92:
cmp r1, r0
bls _0807ACC4
bl CloseLink
ldr r0, =c2_800ACD4
ldr r0, =CB2_LinkError
bl SetMainCallback2
ldr r1, [r4]
adds r3, r1, 0
@@ -7155,7 +7155,7 @@ _0807AD94:
bl HandleLoadSpecialPokePic_DontHandleDeoxys
_0807ADB2:
mov r0, r8
bl sub_806E794
bl GetMonSpritePalStruct
bl LoadCompressedObjectPalette
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
@@ -7171,7 +7171,7 @@ _0807ADB2:
.pool
_0807ADE0:
mov r0, r8
bl sub_806E794
bl GetMonSpritePalStruct
ldrh r0, [r0, 0x4]
adds r1, r4, 0
bl sub_806A068
@@ -7408,7 +7408,7 @@ _0807B006:
beq _0807B014
b _0807B116
_0807B014:
bl sub_800A23C
bl IsLinkPlayerDataExchangeComplete
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7508,14 +7508,14 @@ _0807B0F0:
ands r0, r1
cmp r0, 0
bne _0807B116
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807B110
bl sub_800E0E8
movs r0, 0
movs r1, 0
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
_0807B110:
ldr r0, =sub_807EA2C
bl SetMainCallback2
@@ -9589,7 +9589,7 @@ _0807C66C:
ldr r0, [r5]
adds r0, 0xF0
ldrh r0, [r0]
bl IsPokeSpriteNotFlipped
bl IsMonSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _0807C6E4
@@ -11663,7 +11663,7 @@ _0807DA74:
ldr r0, [r5]
adds r0, 0xF0
ldrh r0, [r0]
bl IsPokeSpriteNotFlipped
bl IsMonSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _0807DAEC
@@ -12857,7 +12857,7 @@ _0807E4AE:
_0807E4B2:
strb r0, [r1]
_0807E4B4:
bl sub_800B33C
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
bne _0807E4C2
@@ -13832,7 +13832,7 @@ _0807EDC0:
movs r0, 0x15
bl IncrementGameStat
_0807EDCE:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807EDF6
@@ -14045,7 +14045,7 @@ _0807EFA4:
lsrs r0, 24
cmp r0, 0x1
bne _0807F03A
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807EFD8
@@ -14072,7 +14072,7 @@ _0807EFE4:
b _0807F03A
.pool
_0807EFF0:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807F028
@@ -14100,7 +14100,7 @@ _0807F028:
ldr r0, =c2_080543C4
bl SetMainCallback2
_0807F03A:
bl sub_800B33C
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
bne _0807F048
@@ -14142,7 +14142,7 @@ c2_080543C4: @ 807F068
ldr r0, [r4]
bl Free
str r5, [r4]
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807F0B6
@@ -14884,7 +14884,7 @@ _0807F6F8:
ldr r0, =c2_080543C4
bl SetMainCallback2
_0807F70C:
bl sub_800B33C
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
bne _0807F71A
+4 -4
View File
@@ -187,7 +187,7 @@ _080C2830:
bl sub_80C4630
b _080C28D4
_080C2836:
ldr r0, =gLinkVSyncDisabled
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0x1
bne _080C2852
@@ -198,7 +198,7 @@ _080C2836:
bl sub_800E0E8
movs r0, 0xE6
movs r1, 0x96
bl sub_800DFB4
bl CreateWirelessStatusIndicatorSprite
_080C2852:
movs r6, 0x1
negs r6, r6
@@ -4754,7 +4754,7 @@ sub_80C4FF0: @ 80C4FF0
ldr r1, =0x00000583
adds r0, r1
ldrb r0, [r0]
bl sub_806EFF0
bl FacilityClassToPicIndex
lsls r0, 16
lsrs r0, 16
ldr r4, =gUnknown_0856FB18
@@ -4795,7 +4795,7 @@ _080C5060:
adds r0, r1
adds r0, r2
ldrb r0, [r0]
bl sub_806EFF0
bl FacilityClassToPicIndex
lsls r0, 16
lsrs r0, 16
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
@ 6
.4byte FACILITY_CLASS_SCHOOL_KID_1
.4byte FACILITY_CLASS_SCHOOL_KID_M
.string "KEITH$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -183,7 +183,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Keith
@ 7
.4byte FACILITY_CLASS_SCHOOL_KID_1
.4byte FACILITY_CLASS_SCHOOL_KID_M
.string "GRAYSON$", 8
@ pre-battle speech
.2byte EC_WORD_A
@@ -209,7 +209,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Grayson
@ 8
.4byte FACILITY_CLASS_SCHOOL_KID_1
.4byte FACILITY_CLASS_SCHOOL_KID_M
.string "GLENN$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -235,7 +235,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Glenn
@ 9
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "LILIANA$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -261,7 +261,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Liliana
@ 10
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "ELISE$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -287,7 +287,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Elise
@ 11
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "ZOEY$", 8
@ pre-battle speech
.2byte EC_WORD_PLEASE
@@ -2965,7 +2965,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Rayna
@ 114
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "EVAN$", 8
@ pre-battle speech
.2byte EC_WORD_EVERY
@@ -2991,7 +2991,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Evan
@ 115
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "JORDAN$", 8
@ pre-battle speech
.2byte EC_WORD_GOOD
@@ -3017,7 +3017,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Jordan
@ 116
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "JOEL$", 8
@ pre-battle speech
.2byte EC_WORD_FUFUFU
@@ -3121,7 +3121,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Chloe
@ 120
.4byte FACILITY_CLASS_PSYCHIC_1
.4byte FACILITY_CLASS_PSYCHIC_M
.string "NORTON$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -3147,7 +3147,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Norton
@ 121
.4byte FACILITY_CLASS_PSYCHIC_1
.4byte FACILITY_CLASS_PSYCHIC_M
.string "LUKAS$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -3173,7 +3173,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Lukas
@ 122
.4byte FACILITY_CLASS_PSYCHIC_1
.4byte FACILITY_CLASS_PSYCHIC_M
.string "ZACH$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -3199,7 +3199,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Zach
@ 123
.4byte FACILITY_CLASS_PSYCHIC_2
.4byte FACILITY_CLASS_PSYCHIC_F
.string "KAITLYN$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -3225,7 +3225,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Kaitlyn
@ 124
.4byte FACILITY_CLASS_PSYCHIC_2
.4byte FACILITY_CLASS_PSYCHIC_F
.string "BREANNA$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -3251,7 +3251,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Breanna
@ 125
.4byte FACILITY_CLASS_PSYCHIC_2
.4byte FACILITY_CLASS_PSYCHIC_F
.string "KENDRA$", 8
@ pre-battle speech
.2byte EC_WORD_IF
@@ -3641,7 +3641,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Sofia
@ 140
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "BRADEN$", 8
@ pre-battle speech
.2byte EC_WORD_I_CHOOSE_YOU
@@ -3667,7 +3667,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Braden
@ 141
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "KAYDEN$", 8
@ pre-battle speech
.2byte EC_WORD_THEY
@@ -3693,7 +3693,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Kayden
@ 142
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "COOPER$", 8
@ pre-battle speech
.2byte EC_WORD_THIS
@@ -3719,7 +3719,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Cooper
@ 143
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "JULIA$", 8
@ pre-battle speech
.2byte EC_WORD_SPIRIT
@@ -3745,7 +3745,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Julia
@ 144
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "AMARA$", 8
@ pre-battle speech
.2byte EC_WORD_WROOOAAR_EXCL
@@ -3771,7 +3771,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Amara
@ 145
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "LYNN$", 8
@ pre-battle speech
.2byte EC_WORD_YOUR
@@ -3797,7 +3797,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Lynn
@ 146
.4byte FACILITY_CLASS_PKMN_RANGER_1
.4byte FACILITY_CLASS_PKMN_RANGER_M
.string "JOVAN$", 8
@ pre-battle speech
.2byte EC_WORD_YOUR
@@ -3823,7 +3823,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Jovan
@ 147
.4byte FACILITY_CLASS_PKMN_RANGER_1
.4byte FACILITY_CLASS_PKMN_RANGER_M
.string "DOMINIC$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -3849,7 +3849,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Dominic
@ 148
.4byte FACILITY_CLASS_PKMN_RANGER_1
.4byte FACILITY_CLASS_PKMN_RANGER_M
.string "NIKOLAS$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -3875,7 +3875,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Nikolas
@ 149
.4byte FACILITY_CLASS_PKMN_RANGER_2
.4byte FACILITY_CLASS_PKMN_RANGER_F
.string "VALERIA$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -3901,7 +3901,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Valeria
@ 150
.4byte FACILITY_CLASS_PKMN_RANGER_2
.4byte FACILITY_CLASS_PKMN_RANGER_F
.string "DELANEY$", 8
@ pre-battle speech
.2byte EC_WORD_SCHOOL
@@ -3927,7 +3927,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Delaney
@ 151
.4byte FACILITY_CLASS_PKMN_RANGER_2
.4byte FACILITY_CLASS_PKMN_RANGER_F
.string "MEGHAN$", 8
@ pre-battle speech
.2byte EC_WORD_SCHOOL
@@ -4265,7 +4265,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Kaila
@ 164
.4byte FACILITY_CLASS_SCHOOL_KID_1
.4byte FACILITY_CLASS_SCHOOL_KID_M
.string "ISIAH$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -4291,7 +4291,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Isiah
@ 165
.4byte FACILITY_CLASS_SCHOOL_KID_1
.4byte FACILITY_CLASS_SCHOOL_KID_M
.string "GARRETT$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -4317,7 +4317,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Garrett
@ 166
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "HAYLIE$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -4343,7 +4343,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Haylie
@ 167
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "MEGAN$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -5721,7 +5721,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Tess
@ 220
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "LEON$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -5747,7 +5747,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Leon
@ 221
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "ALONZO$", 8
@ pre-battle speech
.2byte EC_WORD_I_VE
@@ -5773,7 +5773,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Alonzo
@ 222
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "VINCE$", 8
@ pre-battle speech
.2byte EC_WORD_THE
@@ -5799,7 +5799,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Vince
@ 223
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "BRYON$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -5825,7 +5825,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Bryon
@ 224
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "AVA$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -5851,7 +5851,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Ava
@ 225
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "MIRIAM$", 8
@ pre-battle speech
.2byte EC_WORD_OH
@@ -5877,7 +5877,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Miriam
@ 226
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "CARRIE$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -5903,7 +5903,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Carrie
@ 227
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "GILLIAN$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -5929,7 +5929,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Gillian2
@ 228
.4byte FACILITY_CLASS_PKMN_RANGER_1
.4byte FACILITY_CLASS_PKMN_RANGER_M
.string "TYLER$", 8
@ pre-battle speech
.2byte EC_WORD_YO
@@ -5955,7 +5955,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Tyler
@ 229
.4byte FACILITY_CLASS_PKMN_RANGER_1
.4byte FACILITY_CLASS_PKMN_RANGER_M
.string "CHAZ$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -5981,7 +5981,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Chaz
@ 230
.4byte FACILITY_CLASS_PKMN_RANGER_1
.4byte FACILITY_CLASS_PKMN_RANGER_M
.string "NELSON$", 8
@ pre-battle speech
.2byte EC_WORD_WELL_THEN
@@ -6007,7 +6007,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Nelson
@ 231
.4byte FACILITY_CLASS_PKMN_RANGER_2
.4byte FACILITY_CLASS_PKMN_RANGER_F
.string "SHANIA$", 8
@ pre-battle speech
.2byte EC_WORD_ALL
@@ -6033,7 +6033,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Shania
@ 232
.4byte FACILITY_CLASS_PKMN_RANGER_2
.4byte FACILITY_CLASS_PKMN_RANGER_F
.string "STELLA$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -6059,7 +6059,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Stella
@ 233
.4byte FACILITY_CLASS_PKMN_RANGER_2
.4byte FACILITY_CLASS_PKMN_RANGER_F
.string "DORINE$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -6319,7 +6319,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Alana
@ 243
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "ALEXAS$", 8
@ pre-battle speech
.2byte EC_WORD_GOOD
@@ -6345,7 +6345,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Alexas
@ 244
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "WESTON$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -6371,7 +6371,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Weston
@ 245
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "JASPER$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -6475,7 +6475,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Emma
@ 249
.4byte FACILITY_CLASS_PSYCHIC_1
.4byte FACILITY_CLASS_PSYCHIC_M
.string "ROLANDO$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -6501,7 +6501,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Rolando
@ 250
.4byte FACILITY_CLASS_PSYCHIC_1
.4byte FACILITY_CLASS_PSYCHIC_M
.string "STANLY$", 8
@ pre-battle speech
.2byte EC_WORD_THIS
@@ -6527,7 +6527,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Stanly
@ 251
.4byte FACILITY_CLASS_PSYCHIC_1
.4byte FACILITY_CLASS_PSYCHIC_M
.string "DARIO$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -6553,7 +6553,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Dario
@ 252
.4byte FACILITY_CLASS_PSYCHIC_2
.4byte FACILITY_CLASS_PSYCHIC_F
.string "KARLEE$", 8
@ pre-battle speech
.2byte EC_WORD_SOMETHING
@@ -6579,7 +6579,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Karlee
@ 253
.4byte FACILITY_CLASS_PSYCHIC_2
.4byte FACILITY_CLASS_PSYCHIC_F
.string "JAYLIN$", 8
@ pre-battle speech
.2byte EC_WORD_EVERY
@@ -6605,7 +6605,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
.4byte gBattleFrontierTrainerMons_Jaylin
@ 254
.4byte FACILITY_CLASS_PSYCHIC_2
.4byte FACILITY_CLASS_PSYCHIC_F
.string "INGRID$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -339,7 +339,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Conrad
@ 13
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "MAKENNA$", 8
@ pre-battle speech
.2byte EC_WORD_SHOW
@@ -365,7 +365,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Makenna
@ 14
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "BRAYAN$", 8
@ pre-battle speech
.2byte EC_WORD_CAN
@@ -391,7 +391,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Brayan
@ 15
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "MARIANA$", 8
@ pre-battle speech
.2byte EC_WORD_A
@@ -469,7 +469,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
.4byte gFallarborBattleTentTrainerMons_Gianna
@ 18
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "YAHIR$", 8
@ pre-battle speech
.2byte EC_WORD_YOU
@@ -339,7 +339,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Kyler
@ 13
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "MAGGIE$", 8
@ pre-battle speech
.2byte EC_POKEMON(VULPIX)
@@ -365,7 +365,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Maggie
@ 14
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "STEPHON$", 8
@ pre-battle speech
.2byte EC_WORD_I_AM
@@ -391,7 +391,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Stephon
@ 15
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "REBECCA$", 8
@ pre-battle speech
.2byte EC_WORD_THAT
@@ -469,7 +469,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
.4byte gSlateportBattleTentTrainerMons_Janae
@ 18
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "CAIDEN$", 8
@ pre-battle speech
.2byte EC_WORD_MY
@@ -339,7 +339,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Ernesto
@ 13
.4byte FACILITY_CLASS_SCHOOL_KID_2
.4byte FACILITY_CLASS_SCHOOL_KID_F
.string "NALA$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -365,7 +365,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Nala
@ 14
.4byte FACILITY_CLASS_COOLTRAINER_1
.4byte FACILITY_CLASS_COOLTRAINER_M
.string "DARNELL$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -391,7 +391,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Darnell
@ 15
.4byte FACILITY_CLASS_COOLTRAINER_2
.4byte FACILITY_CLASS_COOLTRAINER_F
.string "ASHLYN$", 8
@ pre-battle speech
.2byte EC_WORD_I
@@ -469,7 +469,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
.4byte gVerdanturfBattleTentTrainerMons_Justine
@ 18
.4byte FACILITY_CLASS_EXPERT_1
.4byte FACILITY_CLASS_EXPERT_M
.string "TYSON$", 8
@ pre-battle speech
.2byte EC_WORD_YOU_RE
+16 -16
View File
@@ -22,31 +22,31 @@ gUnknown_082FF2B8:: @ 82FF2B8
.align 2
gUnknown_082FF3A8:: @ 82FF3A8
.byte 0x00, 0x80, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x88, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x90, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x98, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
obj_frame_tiles gHeap + 0x8000, 0x800
obj_frame_tiles gHeap + 0x8800, 0x800
obj_frame_tiles gHeap + 0x9000, 0x800
obj_frame_tiles gHeap + 0x9800, 0x800
.align 2
gUnknown_082FF3C8:: @ 82FF3C8
.byte 0x00, 0xa0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xa8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xb0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xb8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
obj_frame_tiles gHeap + 0xA000, 0x800
obj_frame_tiles gHeap + 0xA800, 0x800
obj_frame_tiles gHeap + 0xB000, 0x800
obj_frame_tiles gHeap + 0xB800, 0x800
.align 2
gUnknown_082FF3E8:: @ 82FF3E8
.byte 0x00, 0xc0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xc8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xd0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xd8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
obj_frame_tiles gHeap + 0xC000, 0x800
obj_frame_tiles gHeap + 0xC800, 0x800
obj_frame_tiles gHeap + 0xD000, 0x800
obj_frame_tiles gHeap + 0xD800, 0x800
.align 2
gUnknown_082FF408:: @ 82FF408
.byte 0x00, 0xe0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xe8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0xf8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
obj_frame_tiles gHeap + 0xE000, 0x800
obj_frame_tiles gHeap + 0xE800, 0x800
obj_frame_tiles gHeap + 0xF000, 0x800
obj_frame_tiles gHeap + 0xF800, 0x800
.align 2
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
+42 -341
View File
@@ -7,306 +7,7 @@
.section .rodata
.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
.byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
.byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
@@ -323,25 +24,25 @@ gUnknown_082ED85B:: @ 82ED85B
gUnknown_082ED868:: @ 82ED868
.asciz "NOWSLOT"
.asciz " "
.asciz "CLOCK DRIFT"
.asciz "BUSY SEND "
.asciz "CMD REJECT "
.asciz "CLOCK SLAVE"
.ascii "CHILD "
.align 2
.ascii "PARENT"
.align 2
.ascii "SEARCH"
.align 2
gText_EmptyString:: @ 82ED8C4
.string "$"
@@ -371,7 +72,7 @@ gText_AwaitingCommunication:: @ 82ED960
gText_AwaitingLink:: @ 82ED990
.string "{STR_VAR_1}! Awaiting link!\nPress START when everyones ready.$"
.align 2
gJPText_SingleBattle:: @ 82ED9C8
.string " $" @ "shingurubatoruwo kaisaisuru" ("hold a single battle" in Japanese)
@@ -387,7 +88,7 @@ gJPText_MultiBattle:: @ 82ED9E8
.align 2
gJPText_TradePokemon:: @ 82ED9F8
.string " $" @ "pokemonkoukanwo kaisaisuru" ("trade Pokémon" in Japanese)
.align 2
gJPText_Chat:: @ 82EDA0C
.string " $" @ "chattowo kaisaisuru" ("chat" in Japanese)
@@ -459,7 +160,7 @@ gText_3PlayerMode:: @ 82EDB35
gText_4PlayerMode:: @ 82EDB43
.string "4-PLAYER\nMODE$"
gText_5PlayerMode:: @ 82EDB51
.string "5-PLAYER\nMODE$"
@@ -710,7 +411,7 @@ gUnknown_082EE2E8:: @ 82EE2E8
.align 2
gUnknown_082EE308:: @ 82EE308
.string "{STR_VAR_1} has contacted you.{PAUSE 60}$"
.align 2
gUnknown_082EE324:: @ 82EE324
.4byte gUnknown_082EE2E8
@@ -719,7 +420,7 @@ gUnknown_082EE324:: @ 82EE324
.align 2
gUnknown_082EE32C:: @ 82EE32C
.string "Awaiting a response from\nthe other TRAINER$"
.align 2
gUnknown_082EE358:: @ 82EE358
.string "Awaiting a response from\n{STR_VAR_1}$"
@@ -1622,7 +1323,7 @@ gUnknown_082F0204:: @ 82F0204 struct ListMenuTemplate
.align 2
gUnknown_082F021C:: @ 82F021C
window_template 0x00, 0x14, 0x05, 0x10, 0x08, 0x0f, 0x0001
.align 2
gUnknown_082F0224:: @ 82F0224
.4byte gUnknown_082EFD70, 0x00000208
@@ -1708,7 +1409,7 @@ gUnknown_082F0354:: @ 82F0354
.4byte gText_EmptyString, 0x00000006
.4byte gText_EmptyString, 0x00000007
.4byte gUnknown_082EFD84, 0x00000008
.align 2
gUnknown_082F03A4:: @ 82F03A4
.4byte gUnknown_082F0354
@@ -1719,7 +1420,7 @@ gUnknown_082F03A4:: @ 82F03A4
.align 2
window_template 0x00, 0x01, 0x05, 0x1c, 0x0c, 0x0d, 0x0039
.align 2
gUnknown_082F03C4:: @ 82F03C4
.4byte gText_EmptyString, 0x00000000
@@ -1745,7 +1446,7 @@ gUnknown_082F03C4:: @ 82F03C4
.4byte nullsub_14
.byte 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x21, 0x31, 0x40, 0x01
.align 2
gUnknown_082F045C:: @ 82F045C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -2006,7 +1707,7 @@ gUnknown_082F06F8:: @ 82F06F8
.align 2
gUnknown_082F0720:: @ 82F0720
.byte 0x00, 0x01, 0x02
.align 2
.byte 0x00, 0x01, 0x02
@@ -2185,7 +1886,7 @@ gWonderCardBgGfx3:: @ 82F1300
.align 2
gWonderCardBgTilemap3:: @ 82F13D4
.incbin "graphics/wonder_transfers/wonder_card_3.bin.lz"
.align 2
gWonderCardBgGfx7:: @ 82F14A8
.incbin "graphics/wonder_transfers/wonder_card_7.4bpp.lz"
@@ -2193,7 +1894,7 @@ gWonderCardBgGfx7:: @ 82F14A8
.align 2
gWonderCardBgTilemap7:: @ 82F16DC
.incbin "graphics/wonder_transfers/wonder_card_7.bin.lz"
.align 2
gWonderCardBgGfx8:: @ 82F1824
.incbin "graphics/wonder_transfers/wonder_card_8.4bpp.lz"
@@ -2233,7 +1934,7 @@ gWonderCardShadowPal7:: @ 82F1C5C
.align 2
gWonderCardShadowPal8:: @ 82F1C7C
.incbin "graphics/wonder_transfers/wonder_card_shadow_8.gbapal"
.align 2
gWonderCardShadowGfx:: @ 82F1C9C
.incbin "graphics/wonder_transfers/wonder_card_shadow.4bpp.lz"
@@ -2248,31 +1949,31 @@ gUnknown_082F1D00:: @ 82F1D00 struct CompressedSpriteSheet
gUnknown_082F1D08:: @ 82F1D08 struct SpritePalette
.4byte gWonderCardShadowPal1
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal2
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal3
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal4
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal5
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal6
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal7
.2byte 0x8000
.align 2
.4byte gWonderCardShadowPal8
.2byte 0x8000
@@ -2553,7 +2254,7 @@ gUnknown_082F2800:: @ 82F2800
.align 2
gUnknown_082F2884:: @ 82F2884
.byte 0x12, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
.4byte gUnknown_082F25F8
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00
@@ -2581,13 +2282,13 @@ gUnknown_082F28E4:: @ 82F28E4
.4byte gUnknown_082F2884
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.4byte gUnknown_082F2788
.align 2
gUnknown_082F292C:: @ 82F292C
.byte 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.4byte gUnknown_082F26A8
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
@@ -2595,7 +2296,7 @@ gUnknown_082F292C:: @ 82F292C
.byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00
.4byte gUnknown_082F25E8
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
@@ -2639,7 +2340,7 @@ gUnknown_082F29EC:: @ 82F29EC
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.4byte gUnknown_082F26F8
.byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
@@ -2836,15 +2537,15 @@ gUnknown_082F2DF0:: @ 82F2DF0
.align 2
gUnknown_082F2E10:: @ 82F2E10
.incbin "graphics/interface/unk_cursor.4bpp.lz"
.align 2
gUnknown_082F3094:: @ 82F3094
.incbin "graphics/interface/unk_dash.4bpp.lz"
.align 2
gUnknown_082F30B4:: @ 82F30B4
.incbin "graphics/interface/unk_cursor_arrow.4bpp.lz"
.align 2
gUnknown_082F30E0:: @ 82F30E0
.incbin "graphics/interface/unk_rbutton.4bpp.lz"
@@ -2916,7 +2617,7 @@ gUnknown_082F31D4:: @ 82F31D4
.align 2
gUnknown_082F31EC:: @ 82F31EC
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00
.align 2
gUnknown_082F31F4:: @ 82F31F4
.byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00
@@ -3192,25 +2893,25 @@ gUnknown_082F42D0:: @ 82F42D0
.align 2
gUnknown_082F42E8:: @ 82F42E8
.4byte gUnknown_082F423C
.align 2
gUnknown_082F42EC:: @ 82F42EC
.4byte gUnknown_082F4244
.4byte gUnknown_082F4254
.align 2
gUnknown_082F42F4:: @ 82F42F4
.4byte gUnknown_082F4268
.4byte gUnknown_082F4284
.align 2
gUnknown_082F42FC:: @ 82F42FC
.4byte gUnknown_082F42A8
.align 2
gUnknown_082F4300:: @ 82F4300
.4byte gUnknown_082F42B0
.align 2
gUnknown_082F4304:: @ 82F4304
.4byte gUnknown_082F42B8
+1 -1
View File
@@ -86,7 +86,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1
setvar VAR_0x8004, 410
setvar VAR_0x8005, 30
setvar VAR_0x8006, 0
special DoScriptedWildBattle
special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
+1 -1
View File
@@ -143,7 +143,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2
setvar VAR_0x8004, 151
setvar VAR_0x8005, 30
setvar VAR_0x8006, 0
special DoScriptedWildBattle
special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
+1 -1
View File
@@ -59,7 +59,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2
setvar VAR_0x8004, 249
setvar VAR_0x8005, 70
setvar VAR_0x8006, 0
special DoScriptedWildBattle
special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
+1 -1
View File
@@ -63,7 +63,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F
setvar VAR_0x8004, 250
setvar VAR_0x8005, 70
setvar VAR_0x8006, 0
special DoScriptedWildBattle
special CreateObedientEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
@@ -121,14 +121,14 @@ SouthernIsland_Interior_EventScript_242BA4:: @ 8242BA4
setvar VAR_0x8004, 408
setvar VAR_0x8005, 50
setvar VAR_0x8006, 191
special DoScriptedWildBattle
special CreateObedientEnemyMon
return
SouthernIsland_Interior_EventScript_242BB7:: @ 8242BB7
setvar VAR_0x8004, 407
setvar VAR_0x8005, 50
setvar VAR_0x8006, 191
special DoScriptedWildBattle
special CreateObedientEnemyMon
return
SouthernIsland_Interior_Movement_242BCA: @ 8242BCA
+1 -1
View File
@@ -490,7 +490,7 @@ gSpecials:: @ 81DBA64
def_special sub_813AF48
def_special sub_813AFC8
def_special sub_813B1D0
def_special DoScriptedWildBattle
def_special CreateObedientEnemyMon
def_special sub_81BEB54
def_special sub_81BEB68
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 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 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_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
+16 -16
View File
@@ -956,13 +956,13 @@
#define FACILITY_CLASS_HIKER 0x0
#define FACILITY_CLASS_TEAM_AQUA_1 0x1
#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_COLLECTOR 0x5
#define FACILITY_CLASS_TEAM_AQUA_2 0x6
#define FACILITY_CLASS_SWIMMER_M 0x7
#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_AQUA_LEADER 0xb
#define FACILITY_CLASS_HEX_MANIAC 0xc
@@ -971,7 +971,7 @@
#define FACILITY_CLASS_INTERVIEWER 0xf
#define FACILITY_CLASS_TUBER_1 0x10
#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_BEAUTY 0x14
#define FACILITY_CLASS_RICH_BOY 0x15
@@ -983,16 +983,16 @@
#define FACILITY_CLASS_CAMPER 0x1b
#define FACILITY_CLASS_PICNICKER 0x1c
#define FACILITY_CLASS_BUG_MANIAC 0x1d
#define FACILITY_CLASS_PSYCHIC_1 0x1e
#define FACILITY_CLASS_PSYCHIC_2 0x1f
#define FACILITY_CLASS_PSYCHIC_M 0x1e
#define FACILITY_CLASS_PSYCHIC_F 0x1f
#define FACILITY_CLASS_GENTLEMAN 0x20
#define FACILITY_CLASS_ELITE_FOUR_1 0x21
#define FACILITY_CLASS_ELITE_FOUR_2 0x22
#define FACILITY_CLASS_LEADER_1 0x23
#define FACILITY_CLASS_LEADER_2 0x24
#define FACILITY_CLASS_LEADER_3 0x25
#define FACILITY_CLASS_SCHOOL_KID_1 0x26
#define FACILITY_CLASS_SCHOOL_KID_2 0x27
#define FACILITY_CLASS_SCHOOL_KID_M 0x26
#define FACILITY_CLASS_SCHOOL_KID_F 0x27
#define FACILITY_CLASS_SR_AND_JR 0x28
#define FACILITY_CLASS_POKEFAN_1 0x29
#define FACILITY_CLASS_POKEFAN_2 0x2a
@@ -1013,28 +1013,28 @@
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#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_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_7 0x41
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
#define FACILITY_CLASS_BUG_CATCHER 0x43
#define FACILITY_CLASS_PKMN_RANGER_1 0x44
#define FACILITY_CLASS_PKMN_RANGER_2 0x45
#define FACILITY_CLASS_PKMN_RANGER_M 0x44
#define FACILITY_CLASS_PKMN_RANGER_F 0x45
#define FACILITY_CLASS_MAGMA_LEADER 0x46
#define FACILITY_CLASS_LASS 0x47
#define FACILITY_CLASS_YOUNG_COUPLE 0x48
#define FACILITY_CLASS_OLD_COUPLE 0x49
#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_DOME_ACE 0x4d
#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e
#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f
#define FACILITY_CLASS_PKMN_TRAINER_11 0x50
#define FACILITY_CLASS_PKMN_TRAINER_12 0x51
#define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e
#define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f
#define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50
#define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
#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_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_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_COLLECTOR, // FACILITY_CLASS_COLLECTOR
TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2
TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
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_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER
TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
@@ -21,7 +21,7 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1
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_BEAUTY, // FACILITY_CLASS_BEAUTY
TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY
@@ -33,16 +33,16 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER
TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER
TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F
TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1
TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2
TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1
TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2
TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F
TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1
TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2
@@ -63,28 +63,28 @@ const u8 gFacilityClassToPicIndex[] =
TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS
TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR
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_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_7
TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2
TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F
TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER
TRAINER_PIC_LASS, // FACILITY_CLASS_LASS
TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
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_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
};
const u8 gFacilityClassToTrainerClass[] =
@@ -92,13 +92,13 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_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_COLLECTOR, // FACILITY_CLASS_COLLECTOR
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2
TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
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_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER
TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
@@ -107,7 +107,7 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1
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_BEAUTY, // FACILITY_CLASS_BEAUTY
TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY
@@ -119,16 +119,16 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER
TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER
TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F
TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F
TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2
@@ -149,28 +149,28 @@ const u8 gFacilityClassToTrainerClass[] =
TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS
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_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_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_7
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2
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_2
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F
TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER
TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS
TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
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_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_10
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
};
#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_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
extern u8 gDecompressionBuffer[];
u32 sub_8034974(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H
+17
View File
@@ -623,6 +623,23 @@
#define TIMER_INTR_ENABLE 0x40
#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
#define SIO_ID 0x0030 // Communication ID
+10 -1
View File
@@ -11,6 +11,7 @@
// to help in decompiling
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
#define ASM_DIRECT __attribute__((naked))
// IDE support
#if defined (__APPLE__) || defined (__CYGWIN__)
@@ -87,6 +88,7 @@ enum LanguageId
LANGUAGE_SPANISH = 7,
};
#define GAME_VERSION (VERSION_EMERALD)
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
enum
@@ -605,6 +607,11 @@ struct WaldaPhrase
bool8 patternUnlocked;
};
struct UnkSaveSubstruct_3b98 {
u32 trainerId;
u8 trainerName[8];
};
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -689,7 +696,9 @@ struct SaveBlock1
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[52];
/*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;
// sizeof: 0x3D88
};
+6
View File
@@ -1,6 +1,12 @@
#ifndef 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_InitCopyrightScreenAfterTitleScreen(void);
void sub_816F2A8(u16, u16, u16, u16);
+2
View File
@@ -17,6 +17,8 @@ extern struct BagStruct gUnknown_0203CE58;
// Exported RAM declarations
extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
+143
View File
@@ -67,6 +67,28 @@ union RfuPacket
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
{
vs32 unk_0;
@@ -103,6 +125,127 @@ struct RfuIntrStruct
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 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 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 BLOCK_BUFFER_SIZE 0x100
#define LINK_SLAVE 0
#define LINK_MASTER 8
#define LINK_STAT_LOCAL_ID 0x00000003
#define LINK_STAT_PLAYER_COUNT 0x0000001C
#define LINK_STAT_PLAYER_COUNT_SHIFT 2
@@ -16,7 +19,23 @@
#define LINK_STAT_CONN_ESTABLISHED_SHIFT 6
#define LINK_STAT_RECEIVED_NOTHING 0x00000100
#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_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) \
(((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT)
@@ -26,10 +45,41 @@
(((status) >> LINK_STAT_CONN_ESTABLISHED_SHIFT) & 1)
#define EXTRACT_RECEIVED_NOTHING(status) \
(((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 SLAVE_HANDSHAKE 0xB9A0
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
enum
{
LINK_STATE_START0,
@@ -45,6 +95,9 @@ enum
EXCHANGE_COMPLETE,
EXCHANGE_TIMED_OUT,
EXCHANGE_IN_PROGRESS,
EXCHANGE_STAT_4,
EXCHANGE_STAT_5,
EXCHANGE_STAT_6
};
enum
@@ -75,18 +128,18 @@ struct LinkPlayer
struct LinkPlayerBlock
{
u8 magic1[16];
char magic1[16];
struct LinkPlayer linkPlayer;
u8 magic2[16];
char magic2[16];
};
// circular queues
struct SendQueue
{
u16 data[CMD_LENGTH][QUEUE_CAPACITY];
u8 pos;
u8 count;
/* 0x000 */ u16 data[CMD_LENGTH][QUEUE_CAPACITY];
/* 0x320 */ u8 pos;
/* 0x321 */ u8 count;
};
struct RecvQueue
@@ -98,29 +151,29 @@ struct RecvQueue
struct Link
{
u8 isMaster; // 0: slave, 8: master
u8 state;
u8 localId; // local multi-player ID
u8 playerCount;
u16 tempRecvBuffer[4];
bool8 receivedNothing;
s8 serialIntrCounter;
bool8 handshakeAsMaster;
u8 link_field_F;
/* 0x000 */ u8 isMaster; // 0: slave, 8: master
/* 0x001 */ u8 state;
/* 0x002 */ u8 localId; // local multi-player ID
/* 0x003 */ u8 playerCount;
/* 0x004 */ u16 tempRecvBuffer[4];
/* 0x00c */ bool8 receivedNothing;
/* 0x00d */ s8 serialIntrCounter;
/* 0x00e */ bool8 handshakeAsMaster;
/* 0x00f */ u8 link_field_F;
// error conditions
bool8 hardwareError; // hardware reported an error
bool8 badChecksum; // checksum didn't match between devices
u8 queueFull; // send or recv queue out of space
u8 lag; // connection is lagging
/* 0x010 */ bool8 hardwareError; // hardware reported an error
/* 0x011 */ bool8 badChecksum; // checksum didn't match between devices
/* 0x012 */ u8 queueFull; // send or recv queue out of space
/* 0x013 */ u8 lag; // connection is lagging
u16 checksum;
/* 0x014 */ u16 checksum;
u8 sendCmdIndex;
u8 recvCmdIndex;
/* 0x016 */ u8 sendCmdIndex;
/* 0x017 */ u8 recvCmdIndex;
struct SendQueue sendQueue;
struct RecvQueue recvQueue;
/* 0x018 */ struct SendQueue sendQueue;
/* 0x33c */ struct RecvQueue recvQueue;
};
struct BlockRequest
@@ -136,26 +189,26 @@ extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType;
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 u8 gShouldAdvanceLinkState;
extern struct LinkPlayer gLinkPlayers[];
extern struct LinkPlayer gLinkPlayers[5];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern u32 gUnknown_020223C0;
extern bool8 gLinkVSyncDisabled;
extern u32 gLinkStatus;
void Task_DestroySelf(u8 taskId);
void OpenLink(void);
void CloseLink(void);
u16 LinkMain2(u16 *);
u16 LinkMain2(const u16 *);
void sub_8007B14(void);
bool32 sub_8007B24(void);
void ClearLinkCallback(void);
void ClearLinkCallback_2(void);
u8 GetLinkPlayerCount(void);
void OpenLinkTimed(void);
u8 GetLinkPlayerDataExchangeStatusTimed(void);
u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper);
bool8 IsLinkPlayerDataExchangeComplete(void);
u32 GetLinkPlayerTrainerId(u8);
void ResetLinkPlayers(void);
@@ -163,11 +216,10 @@ void sub_8007E24(void);
void sub_8007E4C(void);
u8 GetMultiplayerId(void);
u8 bitmask_all_link_players_but_self(void);
bool8 SendBlock(u8, void *, u16);
bool8 SendBlock(u8, const void *, u16);
u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void);
void ResetBlockReceivedFlag(u8);
void SetLinkDebugValues(u32, u32);
u8 GetLinkPlayerCount_2(void);
bool8 IsLinkMaster(void);
void CB2_LinkError(void);
@@ -176,23 +228,64 @@ bool8 IsLinkConnectionEstablished(void);
void SetSuppressLinkErrorMessage(bool8);
bool8 HasLinkErrorOccurred(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 Timer3Intr(void);
void SerialCB(void);
u8 GetLinkPlayerCount(void);
bool32 InUnionRoom(void);
void sub_800E0E8(void);
bool8 sub_800A520(void);
bool8 sub_8010500(void);
void sub_800DFB4(u8, u8);
void CreateWirelessStatusIndicatorSprite(u8, u8);
void sub_800ADF8(void);
void sub_800B488(void);
void OpenLink(void);
void sub_800A620(void);
void sub_8011BD0(void);
u8 IsLinkMaster(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
+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
extern bool32 gFlashMemoryPresent;
extern struct SaveBlock2 gSaveblock2;
extern struct PokemonStorage gPokemonStorage;
void ClearSav2(void);
void ClearSav1(void);
@@ -19,6 +21,5 @@ void LoadSerializedGame(void);
void LoadPlayerBag(void);
void SavePlayerBag(void);
void SetSaveBlocksPointers(u16);
void MoveSaveBlocks_ResetHeap(void);
#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 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
+11 -5
View File
@@ -42,14 +42,19 @@ struct Main
/*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 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 SetMainCallback2(MainCallback callback);
void InitKeys(void);
@@ -60,6 +65,7 @@ void SetSerialCallback(IntrCallback callback);
void InitFlashTimer(void);
void DoSoftReset(void);
void ClearPokemonCrySongs(void);
void RestoreSerialTimer3IntrHandlers(void);
void StartTimer1(void);
void SeedRngAndSetTrainerId(void);
+1
View File
@@ -1,6 +1,7 @@
#ifndef GUARD_MALLOC_H
#define GUARD_MALLOC_H
#define HEAP_SIZE 0x1C000
#define malloc Alloc
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free
+3
View File
@@ -17,6 +17,8 @@ struct MenuAction
} func;
};
extern const u16 gUnknown_0860F074[];
void sub_81971D0(void);
void sub_8197200(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);
struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
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);
void do_scheduled_bg_tilemap_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 MainCallback gFieldCallback;
void IncrementGameStat(u8 index);
void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
void Overworld_SetMapObjTemplateMovementType(u8, u8);
@@ -54,6 +52,7 @@ void Overworld_ChangeMusicToDefault(void);
void Overworld_ChangeMusicTo(u16);
bool32 is_c1_link_related_active(void);
extern u16 gUnknown_03005DA8;
void strange_npc_table_clear(void);
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_80861B0(void);
bool32 sub_80875C8(void);
bool32 sub_8087634(void);
bool32 sub_808766C(void);
void IncrementGameStat(u8);
u32 GetGameStat(u8);
+149 -72
View File
@@ -2,6 +2,7 @@
#define GUARD_POKEMON_H
#include "constants/pokemon.h"
#include "sprite.h"
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
@@ -266,6 +267,46 @@ struct UnknownPokemonStruct
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
struct BattlePokemon
@@ -424,17 +465,22 @@ extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern u8 gEnemyPartyCount;
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 u8 *const gItemEffectTable[];
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
extern struct PokemonStorage* gPokemonStoragePtr;
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
u8 CountAliveMonsInBattle(u8 caseId);
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
#define BATTLE_ALIVE_ATK_SIDE 1
#define BATTLE_ALIVE_DEF_SIDE 2
extern const u8 gUnknown_08329D22[];
extern const u8 gUnknown_08329D26[];
extern const u8 gUnknown_08329D2A[];
extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
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 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);
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 BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
void MonRestorePP(struct Pokemon *mon);
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
void GiveMonInitialMoveset(struct Pokemon *mon);
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, 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 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
void EncryptBoxMon(struct BoxPokemon *boxMon);
void DecryptBoxMon(struct BoxPokemon *boxMon);
void sub_806A068(u16 species, u8 battlerPosition);
void sub_806A12C(u16 trainerSpriteId, u8 battlerPosition);
void sub_806A1C0(u16 arg0, u8 battlerPosition);
// These are full type signatures for GetMonData() and GetBoxMonData(),
// 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 GetBoxMonData();
void SetMonData(struct Pokemon *mon, s32 field, const void *data);
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data);
void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
void CopyMon(void *dest, void *src, size_t size);
u8 GiveMonToPlayer(struct Pokemon *mon);
u8 SendMonToPC(struct Pokemon *mon);
u8 SendMonToPC(struct Pokemon* mon);
u8 CalculatePlayerPartyCount(void);
u8 CalculateEnemyPartyCount(void);
u8 GetMonsStateToDoubles(void);
u8 GetMonsStateToDoubles_2(void);
u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
u8 GetMonAbility(struct Pokemon *mon);
void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord);
u8 GetSecretBaseTrainerPicIndex(void);
u8 GetSecretBaseTrainerNameIndex(void);
u8 GetSecretBaseTrainerClass(void);
bool8 IsPlayerPartyAndPokemonStorageFull(void);
bool8 IsPokemonStorageFull(void);
void GetSpeciesName(u8 *name, u16 species);
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *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 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 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);
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days);
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);
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 GetMonsStateToDoubles_2(void);
#include "sprite.h"
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon);
u16 SpeciesToPokedexNum(u16 species);
bool32 sub_806E3F8(u16 species);
void ClearBattleMonForms(void);
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 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);
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
-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_RegisteredDataDeleted[];
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_Confirm3[];
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);
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
+9 -11
View File
@@ -52,7 +52,10 @@ SECTIONS {
src/text.o(.text);
src/sprite.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);
asm/main_menu.o(.text);
src/battle_controllers.o(.text);
@@ -68,13 +71,7 @@ SECTIONS {
src/battle_controller_opponent.o(.text);
src/battle_ai_switch_items.o(.text);
src/battle_controller_link_opponent.o(.text);
src/pokemon_1.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/pokemon.o(.text);
src/trig.o(.text);
src/random.o(.text);
src/util.o(.text);
@@ -370,7 +367,9 @@ SECTIONS {
src/sprite.o(.rodata);
data/io_reg.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);
data/main_menu.o(.rodata);
data/battle_1.o(.rodata);
@@ -383,8 +382,7 @@ SECTIONS {
src/battle_controller_opponent.o(.rodata);
src/battle_controller_link_opponent.o(.rodata);
data/data2c.o(.rodata);
src/pokemon_1.o(.rodata);
data/data2e.o(.rodata);
src/pokemon.o(.rodata);
src/trig.o(.rodata);
src/util.o(.rodata);
src/daycare.o(.rodata);
-1
View File
@@ -8,7 +8,6 @@
#include "random.h"
#include "util.h"
#include "constants/items.h"
#include "pokemon_item_effects.h"
extern const struct BattleMove gBattleMoves[];
extern const u8 gTypeEffectiveness[];
+11 -13
View File
@@ -26,7 +26,6 @@
#include "data2.h"
#include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
@@ -34,7 +33,6 @@ extern struct UnusedControllerStruct gUnknown_02022D0C;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct BattleMove gBattleMoves[];
extern const u8 gFacilityClassToPicIndex[];
extern void sub_8172EF0(u8 bank, struct Pokemon *mon);
extern void sub_806A068(u16, u8);
@@ -1246,7 +1244,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
{
if (gActiveBattler == 1)
if (gActiveBattler == B_POSITION_OPPONENT_LEFT)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
@@ -1256,18 +1254,18 @@ static void LinkOpponentHandleDrawTrainerPic(void)
if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_10];
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF];
else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_9];
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED];
}
else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_12];
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY];
else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_11];
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN];
}
else
{
@@ -1286,17 +1284,17 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|| (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_LEAF_GREEN)
{
if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_10];
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF];
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
|| (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_SAPPHIRE)
{
if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0)
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_12];
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY];
else
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_11];
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN];
}
else
{
-1
View File
@@ -25,7 +25,6 @@
#include "data2.h"
#include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern struct UnusedControllerStruct gUnknown_02022D0C;
-1
View File
@@ -29,7 +29,6 @@
#include "data2.h"
#include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
+2 -2
View File
@@ -872,7 +872,7 @@ static void HandleMoveSwitchting(void)
static void sub_80586F8(void)
{
if (gLinkVSyncDisabled == 0)
if (gWirelessCommType == 0)
{
if (gReceivedRemoteLinkPlayers == 0)
{
@@ -908,7 +908,7 @@ void sub_80587B0(void)
{
if (sub_800A520())
{
if (gLinkVSyncDisabled == 0)
if (gWirelessCommType == 0)
sub_800AC34();
else
sub_800ADF8();
-1
View File
@@ -25,7 +25,6 @@
#include "battle_setup.h"
#include "item_use.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern struct UnusedControllerStruct gUnknown_02022D0C;
@@ -27,7 +27,6 @@
#include "item_use.h"
#include "battle_setup.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
-1
View File
@@ -25,7 +25,6 @@
#include "data2.h"
#include "item_use.h"
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
-1
View File
@@ -24,7 +24,6 @@
#include "item_use.h"
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
-2
View File
@@ -30,8 +30,6 @@
#include "battle_setup.h"
#include "item_use.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern s32 gUnknown_0203CD70;
+319 -303
View File
@@ -12,13 +12,29 @@
#include "constants/abilities.h"
#include "battle_message.h"
extern u8 gBattleBuffersTransferData[0x100];
extern u8 gUnknown_0202428C;
extern u32 gUnknown_02022FF4;
extern u8 gUnknown_0203C7B4;
extern u32 gBattleExecBuffer;
extern void (*gBattleBankFunc[4])(void);
extern u8 gBanksByIdentity[4];
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_02022D09;
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[];
@@ -37,7 +53,7 @@ void HandleLinkBattleSetup(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gLinkVSyncDisabled)
if (gWirelessCommType)
sub_800B488();
if (!gReceivedRemoteLinkPlayers)
OpenLink();
@@ -758,7 +774,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
gTasks[taskId].data[11]++;
break;
case 2:
if (gLinkVSyncDisabled)
if (gWirelessCommType)
{
gTasks[taskId].data[11]++;
}
@@ -917,171 +933,171 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
{
gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
gBattleBuffersTransferData[1] = requestId;
gBattleBuffersTransferData[2] = monToCheck;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
sBattleBuffersTransferData[1] = requestId;
sBattleBuffersTransferData[2] = monToCheck;
sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
{
gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
gBattleBuffersTransferData[1] = monId;
gBattleBuffersTransferData[2] = bytes;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
sBattleBuffersTransferData[1] = monId;
sBattleBuffersTransferData[2] = bytes;
sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
gBattleBuffersTransferData[1] = requestId;
gBattleBuffersTransferData[2] = monToCheck;
sBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
sBattleBuffersTransferData[1] = requestId;
sBattleBuffersTransferData[2] = monToCheck;
for (i = 0; i < bytes; i++)
gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes);
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes);
}
void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
gBattleBuffersTransferData[1] = monId;
gBattleBuffersTransferData[2] = bytes;
sBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
sBattleBuffersTransferData[1] = monId;
sBattleBuffersTransferData[2] = bytes;
for (i = 0; i < bytes; i++)
gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3);
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, bytes + 3);
}
void BtlController_EmitLoadMonSprite(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
sBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
sBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE;
sBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
{
gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
gBattleBuffersTransferData[1] = partyId;
gBattleBuffersTransferData[2] = dontClearSubstituteBit;
gBattleBuffersTransferData[3] = 5;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
sBattleBuffersTransferData[1] = partyId;
sBattleBuffersTransferData[2] = dontClearSubstituteBit;
sBattleBuffersTransferData[3] = 5;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1)
{
gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
gBattleBuffersTransferData[1] = arg1;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
sBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
sBattleBuffersTransferData[1] = arg1;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
}
void BtlController_EmitDrawTrainerPic(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
sBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
sBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC;
sBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitTrainerSlide(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
sBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
sBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE;
sBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitTrainerSlideBack(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
sBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
sBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK;
sBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitFaintAnimation(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
sBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
sBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION;
sBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitPaletteFade(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
sBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE;
sBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
sBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM;
sBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId)
{
gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
gBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
sBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
sBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
}
void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
gBattleBuffersTransferData[1] = toWait;
sBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
sBattleBuffersTransferData[1] = toWait;
for (i = 0; i < toWait * 3; i++)
gBattleBuffersTransferData[2 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2);
sBattleBuffersTransferData[2 + i] = *(u8*)(data++);
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)
{
gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
gBattleBuffersTransferData[1] = move;
gBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = turnOfMove;
gBattleBuffersTransferData[4] = movePower;
gBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
gBattleBuffersTransferData[6] = dmg;
gBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
gBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
gBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
gBattleBuffersTransferData[10] = friendship;
gBattleBuffersTransferData[11] = multihit;
sBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
sBattleBuffersTransferData[1] = move;
sBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
sBattleBuffersTransferData[3] = turnOfMove;
sBattleBuffersTransferData[4] = movePower;
sBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
sBattleBuffersTransferData[6] = dmg;
sBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
sBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
sBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
sBattleBuffersTransferData[10] = friendship;
sBattleBuffersTransferData[11] = multihit;
if (WEATHER_HAS_EFFECT2)
{
gBattleBuffersTransferData[12] = gBattleWeather;
gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
sBattleBuffersTransferData[12] = gBattleWeather;
sBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
}
else
{
gBattleBuffersTransferData[12] = 0;
gBattleBuffersTransferData[13] = 0;
sBattleBuffersTransferData[12] = 0;
sBattleBuffersTransferData[13] = 0;
}
gBattleBuffersTransferData[14] = 0;
gBattleBuffersTransferData[15] = 0;
memcpy(&gBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
sBattleBuffersTransferData[14] = 0;
sBattleBuffersTransferData[15] = 0;
memcpy(&sBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
}
void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
@@ -1089,12 +1105,12 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
s32 i;
struct StringInfoBattle* stringInfo;
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
gBattleBuffersTransferData[1] = gBattleOutcome;
gBattleBuffersTransferData[2] = stringID;
gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
sBattleBuffersTransferData[1] = gBattleOutcome;
sBattleBuffersTransferData[2] = stringID;
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
@@ -1113,7 +1129,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
stringInfo->textBuffs[1][i] = gBattleTextBuff2[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)
@@ -1121,12 +1137,12 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
s32 i;
struct StringInfoBattle *stringInfo;
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
gBattleBuffersTransferData[2] = stringID;
gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
sBattleBuffersTransferData[2] = stringID;
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
@@ -1142,386 +1158,386 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
stringInfo->textBuffs[1][i] = gBattleTextBuff2[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)
{
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
gBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = arg2;
gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
sBattleBuffersTransferData[1] = arg1;
sBattleBuffersTransferData[2] = arg2;
sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitUnknownYesNoBox(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX;
sBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX;
sBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX;
sBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE;
gBattleBuffersTransferData[1] = isDoubleBattle;
gBattleBuffersTransferData[2] = NoPpNumber;
gBattleBuffersTransferData[3] = 0;
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE;
sBattleBuffersTransferData[1] = isDoubleBattle;
sBattleBuffersTransferData[2] = NoPpNumber;
sBattleBuffersTransferData[3] = 0;
for (i = 0; i < sizeof(*movePpData); i++)
gBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4);
sBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4);
}
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
for (i = 0; i < 3; i++)
gBattleBuffersTransferData[1 + i] = arg1[i];
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[1 + i] = arg1[i];
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
gBattleBuffersTransferData[1] = caseId;
gBattleBuffersTransferData[2] = arg2;
gBattleBuffersTransferData[3] = abilityId;
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
sBattleBuffersTransferData[1] = caseId;
sBattleBuffersTransferData[2] = arg2;
sBattleBuffersTransferData[3] = abilityId;
for (i = 0; i < 3; i++)
gBattleBuffersTransferData[4 + i] = arg4[i];
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written
sBattleBuffersTransferData[4 + i] = arg4[i];
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // but only 7 bytes were written
}
void BtlController_EmitCmd23(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_23;
gBattleBuffersTransferData[1] = CONTROLLER_23;
gBattleBuffersTransferData[2] = CONTROLLER_23;
gBattleBuffersTransferData[3] = CONTROLLER_23;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_23;
sBattleBuffersTransferData[1] = CONTROLLER_23;
sBattleBuffersTransferData[2] = CONTROLLER_23;
sBattleBuffersTransferData[3] = CONTROLLER_23;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
// why is the argument u16 if it's being cast to s16 anyway?
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
{
gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
gBattleBuffersTransferData[1] = 0;
gBattleBuffersTransferData[2] = (s16)hpValue;
gBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
sBattleBuffersTransferData[1] = 0;
sBattleBuffersTransferData[2] = (s16)hpValue;
sBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
// why is the argument u16 if it's being cast to s16 anyway?
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
{
gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
gBattleBuffersTransferData[1] = partyId;
gBattleBuffersTransferData[2] = (s16)expPoints;
gBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
sBattleBuffersTransferData[1] = partyId;
sBattleBuffersTransferData[2] = (s16)expPoints;
sBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
{
gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
gBattleBuffersTransferData[1] = status1;
gBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8;
gBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16;
gBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24;
gBattleBuffersTransferData[5] = status2;
gBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8;
gBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16;
gBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9);
sBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
sBattleBuffersTransferData[1] = status1;
sBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8;
sBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16;
sBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24;
sBattleBuffersTransferData[5] = status2;
sBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8;
sBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16;
sBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 9);
}
void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
{
gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
gBattleBuffersTransferData[1] = status2;
gBattleBuffersTransferData[2] = status;
gBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8;
gBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16;
gBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6);
sBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
sBattleBuffersTransferData[1] = status2;
sBattleBuffersTransferData[2] = status;
sBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8;
sBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16;
sBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6);
}
void BtlController_EmitStatusXor(u8 bufferId, u8 b)
{
gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
gBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
sBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
}
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER;
gBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER;
gBattleBuffersTransferData[2] = size;
gBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
sBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER;
sBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER;
sBattleBuffersTransferData[2] = size;
sBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
for (i = 0; i < size; i++)
gBattleBuffersTransferData[4 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4);
sBattleBuffersTransferData[4 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4);
}
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER;
gBattleBuffersTransferData[1] = (u32)(dst);
gBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8;
gBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16;
gBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24;
gBattleBuffersTransferData[5] = size;
gBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
sBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER;
sBattleBuffersTransferData[1] = (u32)(dst);
sBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8;
sBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16;
sBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24;
sBattleBuffersTransferData[5] = size;
sBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
for (i = 0; i < size; i++)
gBattleBuffersTransferData[7 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7);
sBattleBuffersTransferData[7 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7);
}
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_31;
gBattleBuffersTransferData[1] = songId;
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
sBattleBuffersTransferData[0] = CONTROLLER_31;
sBattleBuffersTransferData[1] = songId;
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
for (i = 0; i < songId; i++) // ????
gBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3);
sBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
}
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_32;
gBattleBuffersTransferData[1] = size;
gBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
sBattleBuffersTransferData[0] = CONTROLLER_32;
sBattleBuffersTransferData[1] = size;
sBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
for (i = 0; i < size; i++)
gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3);
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3);
}
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
{
gBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
gBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = arg2;
gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
sBattleBuffersTransferData[1] = arg1;
sBattleBuffersTransferData[2] = arg2;
sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
gBattleBuffersTransferData[1] = b;
sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
sBattleBuffersTransferData[1] = b;
for (i = 0; i < 3; i++)
gBattleBuffersTransferData[2 + i] = c[i];
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5);
sBattleBuffersTransferData[2 + i] = c[i];
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
}
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1)
{
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
gBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
sBattleBuffersTransferData[1] = arg1;
sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
{
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
gBattleBuffersTransferData[1] = b;
gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
sBattleBuffersTransferData[1] = b;
sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitCmd37(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_37;
gBattleBuffersTransferData[1] = CONTROLLER_37;
gBattleBuffersTransferData[2] = CONTROLLER_37;
gBattleBuffersTransferData[3] = CONTROLLER_37;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_37;
sBattleBuffersTransferData[1] = CONTROLLER_37;
sBattleBuffersTransferData[2] = CONTROLLER_37;
sBattleBuffersTransferData[3] = CONTROLLER_37;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitCmd38(u8 bufferId, u8 b)
{
gBattleBuffersTransferData[0] = CONTROLLER_38;
gBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
sBattleBuffersTransferData[0] = CONTROLLER_38;
sBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
}
void BtlController_EmitCmd39(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_39;
gBattleBuffersTransferData[1] = CONTROLLER_39;
gBattleBuffersTransferData[2] = CONTROLLER_39;
gBattleBuffersTransferData[3] = CONTROLLER_39;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_39;
sBattleBuffersTransferData[1] = CONTROLLER_39;
sBattleBuffersTransferData[2] = CONTROLLER_39;
sBattleBuffersTransferData[3] = CONTROLLER_39;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitCmd40(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_40;
gBattleBuffersTransferData[1] = CONTROLLER_40;
gBattleBuffersTransferData[2] = CONTROLLER_40;
gBattleBuffersTransferData[3] = CONTROLLER_40;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_40;
sBattleBuffersTransferData[1] = CONTROLLER_40;
sBattleBuffersTransferData[2] = CONTROLLER_40;
sBattleBuffersTransferData[3] = CONTROLLER_40;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitHitAnimation(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[2] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[3] = CONTROLLER_HITANIMATION;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
sBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION;
sBattleBuffersTransferData[2] = CONTROLLER_HITANIMATION;
sBattleBuffersTransferData[3] = CONTROLLER_HITANIMATION;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitCmd42(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_42;
gBattleBuffersTransferData[1] = CONTROLLER_42;
gBattleBuffersTransferData[2] = CONTROLLER_42;
gBattleBuffersTransferData[3] = CONTROLLER_42;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_42;
sBattleBuffersTransferData[1] = CONTROLLER_42;
sBattleBuffersTransferData[2] = CONTROLLER_42;
sBattleBuffersTransferData[3] = CONTROLLER_42;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitPlaySE(u8 bufferId, u16 songId)
{
gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
gBattleBuffersTransferData[1] = songId;
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
sBattleBuffersTransferData[1] = songId;
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
sBattleBuffersTransferData[3] = 0;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
{
gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
gBattleBuffersTransferData[1] = songId;
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
gBattleBuffersTransferData[3] = playBGM;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
sBattleBuffersTransferData[1] = songId;
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
sBattleBuffersTransferData[3] = playBGM;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitFaintingCry(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[2] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[3] = CONTROLLER_FAINTINGCRY;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
sBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY;
sBattleBuffersTransferData[2] = CONTROLLER_FAINTINGCRY;
sBattleBuffersTransferData[3] = CONTROLLER_FAINTINGCRY;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId)
{
gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
gBattleBuffersTransferData[1] = terrainId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
sBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
sBattleBuffersTransferData[1] = terrainId;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
}
void BtlController_EmitIntroTrainerBallThrow(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[2] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[3] = CONTROLLER_INTROTRAINERBALLTHROW;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
sBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW;
sBattleBuffersTransferData[2] = CONTROLLER_INTROTRAINERBALLTHROW;
sBattleBuffersTransferData[3] = CONTROLLER_INTROTRAINERBALLTHROW;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2)
{
s32 i;
gBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
gBattleBuffersTransferData[1] = arg2 & 0x7F;
gBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7;
gBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
sBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
sBattleBuffersTransferData[1] = arg2 & 0x7F;
sBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7;
sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * 6); i++)
gBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
sBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
}
void BtlController_EmitCmd49(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_49;
gBattleBuffersTransferData[1] = CONTROLLER_49;
gBattleBuffersTransferData[2] = CONTROLLER_49;
gBattleBuffersTransferData[3] = CONTROLLER_49;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_49;
sBattleBuffersTransferData[1] = CONTROLLER_49;
sBattleBuffersTransferData[2] = CONTROLLER_49;
sBattleBuffersTransferData[3] = CONTROLLER_49;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitCmd50(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_50;
gBattleBuffersTransferData[1] = CONTROLLER_50;
gBattleBuffersTransferData[2] = CONTROLLER_50;
gBattleBuffersTransferData[3] = CONTROLLER_50;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_50;
sBattleBuffersTransferData[1] = CONTROLLER_50;
sBattleBuffersTransferData[2] = CONTROLLER_50;
sBattleBuffersTransferData[3] = CONTROLLER_50;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
{
gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
gBattleBuffersTransferData[1] = isInvisible;
gBattleBuffersTransferData[2] = CONTROLLER_SPRITEINVISIBILITY;
gBattleBuffersTransferData[3] = CONTROLLER_SPRITEINVISIBILITY;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
sBattleBuffersTransferData[1] = isInvisible;
sBattleBuffersTransferData[2] = CONTROLLER_SPRITEINVISIBILITY;
sBattleBuffersTransferData[3] = CONTROLLER_SPRITEINVISIBILITY;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
{
gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
gBattleBuffersTransferData[1] = animationId;
gBattleBuffersTransferData[2] = argument;
gBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
sBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
sBattleBuffersTransferData[1] = animationId;
sBattleBuffersTransferData[2] = argument;
sBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
}
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
{
bool8 arg2_ = arg2;
gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
gBattleBuffersTransferData[1] = arg1;
sBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
sBattleBuffersTransferData[1] = arg1;
if (arg2_)
gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = sub_81850DC(&gBattleBuffersTransferData[4]);
sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = sub_81850DC(&sBattleBuffersTransferData[4]);
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)
{
gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
gBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
sBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
sBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
}
void BtlController_EmitCmd55(u8 bufferId, u8 arg1)
{
gBattleBuffersTransferData[0] = CONTROLLER_55;
gBattleBuffersTransferData[1] = arg1;
gBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b;
gBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b;
gBattleBuffersTransferData[5] = gBattleBuffersTransferData[4] = sub_81850DC(&gBattleBuffersTransferData[6]);
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[4] + 6);
sBattleBuffersTransferData[0] = CONTROLLER_55;
sBattleBuffersTransferData[1] = arg1;
sBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b;
sBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b;
sBattleBuffersTransferData[5] = sBattleBuffersTransferData[4] = sub_81850DC(&sBattleBuffersTransferData[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 gTrainerBackPicPaletteTable[];
extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[];
extern const struct SpriteTemplate gUnknown_08329D98[4];
extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow;
extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow;
extern const u8 gEnemyMonElevation[];
+1 -1
View File
@@ -650,7 +650,7 @@ static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
}
#else
__attribute__((naked))
ASM_DIRECT
static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
{
asm(".syntax unified\n\
+27 -27
View File
@@ -20,6 +20,7 @@
#include "constants/hold_effects.h"
#include "constants/trainers.h"
#include "link.h"
#include "link_rfu.h"
#include "bg.h"
#include "dma3.h"
#include "string_util.h"
@@ -50,7 +51,7 @@
#include "international_string_util.h"
#include "pokeball.h"
struct UnknownPokemonStruct2
struct UnknownPokemonStruct4
{
/*0x00*/ u16 species;
/*0x02*/ u16 heldItem;
@@ -85,7 +86,6 @@ extern const u16 gBattleTextboxPalette[]; // battle textbox palette
extern const struct BgTemplate gUnknown_0831AA08[];
extern const struct WindowTemplate * const gUnknown_0831ABA0[];
extern const u8 gUnknown_0831ACE0[];
extern const u8 gStatStageRatios[][2];
extern const u8 * const gBattleScriptsForMoveEffects[];
extern const u8 * const gBattlescriptsForBallThrow[];
extern const u8 * const gBattlescriptsForRunningByItem[];
@@ -198,8 +198,8 @@ EWRAM_DATA static u32 sUnusedUnknownArray[25] = {0};
EWRAM_DATA u32 gBattleTypeFlags = 0;
EWRAM_DATA u8 gBattleTerrain = 0;
EWRAM_DATA u32 gUnknown_02022FF4 = 0;
EWRAM_DATA struct UnknownPokemonStruct2 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_02022FF8[3] = {0}; // 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_02023060 = NULL;
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
@@ -738,7 +738,7 @@ static void CB2_HandleStartBattle(void)
sub_805EF14();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gLinkVSyncDisabled)
if (gWirelessCommType)
sub_800E0E8();
break;
case 1:
@@ -762,8 +762,8 @@ static void CB2_HandleStartBattle(void)
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
gBattleCommunication[MULTIUSE_STATE] = 2;
}
if (gLinkVSyncDisabled)
sub_800DFB4(0, 0);
if (gWirelessCommType)
CreateWirelessStatusIndicatorSprite(0, 0);
}
}
else
@@ -790,7 +790,7 @@ static void CB2_HandleStartBattle(void)
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1];
sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]);
sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]);
sub_8068AA4();
SetDeoxysStats();
gBattleCommunication[MULTIUSE_STATE]++;
}
break;
@@ -933,7 +933,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
sub_805EF14();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gLinkVSyncDisabled)
if (gWirelessCommType)
sub_800E0E8();
// fall through
case 1:
@@ -964,8 +964,8 @@ static void CB2_HandleStartMultiPartnerBattle(void)
gBattleCommunication[MULTIUSE_STATE] = 2;
}
if (gLinkVSyncDisabled)
sub_800DFB4(0, 0);
if (gWirelessCommType)
CreateWirelessStatusIndicatorSprite(0, 0);
}
}
else
@@ -1202,9 +1202,9 @@ static void CB2_PreInitMultiBattle(void)
case 0:
if (gReceivedRemoteLinkPlayers != 0 && sub_800A520())
{
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3);
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
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]++;
}
break;
@@ -1222,12 +1222,12 @@ static void CB2_PreInitMultiBattle(void)
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))
{
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3);
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
}
}
else
{
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3);
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
}
}
gBattleCommunication[MULTIUSE_STATE]++;
@@ -1241,14 +1241,14 @@ static void CB2_PreInitMultiBattle(void)
if (sub_800A520() && !gPaletteFade.active)
{
gBattleCommunication[MULTIUSE_STATE]++;
if (gLinkVSyncDisabled)
if (gWirelessCommType)
sub_800ADF8();
else
sub_800AC34();
}
break;
case 3:
if (gLinkVSyncDisabled)
if (gWirelessCommType)
{
if (sub_8010500())
{
@@ -1286,7 +1286,7 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void)
switch (gBattleCommunication[MULTIUSE_STATE])
{
case 0:
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3);
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
sub_80379F8(3);
gBattleCommunication[MULTIUSE_STATE]++;
*savedCallback = gMain.savedCallback;
@@ -1333,7 +1333,7 @@ static void CB2_HandleStartMultiBattle(void)
sub_805EF14();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gLinkVSyncDisabled)
if (gWirelessCommType)
sub_800E0E8();
break;
case 1:
@@ -1351,8 +1351,8 @@ static void CB2_HandleStartMultiBattle(void)
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
gBattleCommunication[MULTIUSE_STATE]++;
}
if (gLinkVSyncDisabled)
sub_800DFB4(0, 0);
if (gWirelessCommType)
CreateWirelessStatusIndicatorSprite(0, 0);
}
}
else
@@ -1369,7 +1369,7 @@ static void CB2_HandleStartMultiBattle(void)
ResetBlockReceivedFlags();
sub_8036EB8(4, playerMultiplayerId);
SetAllPlayersBerryData();
sub_8068AA4();
SetDeoxysStats();
var = CreateTask(sub_8035D74, 0);
gTasks[var].data[1] = 0x10E;
gTasks[var].data[2] = 0x5A;
@@ -2136,12 +2136,12 @@ static void sub_8038F34(void)
}
break;
case 8:
if (!gLinkVSyncDisabled)
if (!gWirelessCommType)
sub_800AC34();
gBattleCommunication[MULTIUSE_STATE]++;
break;
case 9:
if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1)
if (!gMain.field_439_x4 || gWirelessCommType || gReceivedRemoteLinkPlayers != 1)
{
gMain.field_439_x4 = 0;
SetMainCallback2(gMain.savedCallback);
@@ -2320,13 +2320,13 @@ static void sub_803939C(void)
case 8:
if (--gBattleCommunication[1] == 0)
{
if (gMain.field_439_x4 && !gLinkVSyncDisabled)
if (gMain.field_439_x4 && !gWirelessCommType)
sub_800AC34();
gBattleCommunication[MULTIUSE_STATE]++;
}
break;
case 9:
if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1)
if (!gMain.field_439_x4 || gWirelessCommType || gReceivedRemoteLinkPlayers != 1)
{
gMain.field_439_x4 = 0;
if (!gPaletteFade.active)
@@ -3389,7 +3389,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void)
}
#else
__attribute__((naked))
ASM_DIRECT
static void BattleIntroOpponent1SendsOutMonAnimation(void)
{
asm(".syntax unified\n\
+1 -1
View File
@@ -1968,7 +1968,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
break;
case B_TXT_TRAINER1_CLASS: // trainer class name
if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()];
toCpy = gTrainerClassNames[GetSecretBaseTrainerClass()];
else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00)
toCpy = gTrainerClassNames[sub_8068BB0()];
else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE)
+4 -7
View File
@@ -12,7 +12,6 @@
#include "constants/hold_effects.h"
#include "util.h"
#include "pokemon.h"
#include "calculate_base_damage.h"
#include "random.h"
#include "battle_controllers.h"
#include "battle_interface.h"
@@ -32,7 +31,6 @@
#include "bg.h"
#include "string_util.h"
#include "pokemon_icon.h"
#include "pokemon_item_effects.h"
#include "m4a.h"
#include "mail.h"
#include "event_data.h"
@@ -3649,7 +3647,7 @@ static void atk24(void)
}
}
#else
__attribute__((naked))
ASM_DIRECT
static void atk24(void)
{
asm("\n\
@@ -4529,7 +4527,7 @@ static void atk48_playstatchangeanimation(void)
}
}
#else
__attribute__((naked))
ASM_DIRECT
static void atk48_playstatchangeanimation(void)
{
asm("\n\
@@ -6882,8 +6880,7 @@ static void atk74_hpthresholds2(void)
static void atk75_useitemonopponent(void)
{
gBattlerInMenuId = gBattlerAttacker;
ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1);
PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1);
gBattlescriptCurrInstr += 1;
}
@@ -9422,7 +9419,7 @@ static void atkC1_hiddenpowercalc(void)
}
#else
__attribute__((naked))
ASM_DIRECT
static void atkC1_hiddenpowercalc(void)
{
asm(".syntax unified\n\
-1
View File
@@ -5,7 +5,6 @@
#include "battle_transition.h"
#include "main.h"
#include "task.h"
#include "pokemon_3.h"
#include "safari_zone.h"
#include "script.h"
#include "constants/game_stat.h"
-1
View File
@@ -20,7 +20,6 @@
#include "battle_ai_script_commands.h"
#include "battle_controllers.h"
#include "event_data.h"
#include "calculate_base_damage.h"
#include "link.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 sub_81AABF0(void (*callback)(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 sub_8153430(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);
StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[i]], i + 8);
}
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled)
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{
sub_800E0E8();
sub_800DFB4(0, 0);
CreateWirelessStatusIndicatorSprite(0, 0);
}
SetVBlankCallback(VBlankCB0_BerryBlender);
sBerryBlenderData->mainState++;
@@ -1158,10 +1158,10 @@ static void sub_8080018(void)
sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8);
}
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled)
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{
sub_800E0E8();
sub_800DFB4(0, 0);
CreateWirelessStatusIndicatorSprite(0, 0);
}
sBerryBlenderData->mainState++;
break;
@@ -1874,7 +1874,7 @@ static void sub_8081370(u16 a0)
static bool32 sub_80814B0(u16 arg0, u16 arg1, u16 arg2)
{
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled)
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{
if ((arg0 & 0xFF00) == arg2)
return TRUE;
@@ -2316,7 +2316,7 @@ static void sub_8081E20(void)
static void sub_8081F94(u16 *a0)
{
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled)
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
*a0 = 0x2F00;
else
*a0 = 0x2FFF;
@@ -2345,7 +2345,7 @@ static void CB2_HandleBlenderEndGame(void)
sBerryBlenderData->field_4C -= 32;
if (sBerryBlenderData->field_4C <= 0)
{
sub_8009F8C();
ClearLinkCallback();
sBerryBlenderData->field_4C = 0;
if (gReceivedRemoteLinkPlayers != 0)
@@ -2365,7 +2365,7 @@ static void CB2_HandleBlenderEndGame(void)
}
else if (sub_800A520())
{
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled)
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{
sBerryBlenderData->gameBlock.timeRPM.time = sBerryBlenderData->gameFrameTime;
sBerryBlenderData->gameBlock.timeRPM.max_RPM = sBerryBlenderData->max_RPM;
@@ -2394,7 +2394,7 @@ static void CB2_HandleBlenderEndGame(void)
ResetBlockReceivedFlags();
sBerryBlenderData->gameEndState++;
if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled)
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType)
{
struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock*)(&gBlockRecvBuffer);
@@ -2871,7 +2871,7 @@ static void sub_8082D28(void)
if (gReceivedRemoteLinkPlayers != 0)
playerId = GetMultiplayerId();
if (gLinkVSyncDisabled && gReceivedRemoteLinkPlayers != 0)
if (gWirelessCommType && gReceivedRemoteLinkPlayers != 0)
{
if (playerId == 0)
{
+3 -3
View File
@@ -463,7 +463,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
return FALSE;
}
#else
__attribute__((naked))
ASM_DIRECT
bool8 IsDma3ManagerBusyWithBgCopy(void)
{
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)
{
asm("push {r4-r7,lr}\n\
@@ -1495,7 +1495,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal
*dest = test;
}
#else
__attribute__((naked))
ASM_DIRECT
void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2)
{
asm("push {r4-r6,lr}\n\
+1 -1
View File
@@ -421,7 +421,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void)
return FALSE;
}
#else
__attribute__((naked))
ASM_DIRECT
bool8 ShouldDoBrailleRegicePuzzle(void)
{
asm(".syntax unified\n\

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