summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/constants.asm2
-rw-r--r--src/constants/card_data_constants.asm31
-rw-r--r--src/constants/duel_constants.asm25
-rw-r--r--src/constants/misc_constants.asm4
-rwxr-xr-xsrc/constants/set_constants.asm21
-rw-r--r--src/data/effect_commands.asm908
-rwxr-xr-xsrc/engine/bank1.asm190
-rwxr-xr-xsrc/engine/bank3.asm2
-rwxr-xr-xsrc/engine/bank4.asm22
-rwxr-xr-xsrc/engine/bank6.asm2
-rwxr-xr-xsrc/engine/bank7.asm4
-rwxr-xr-xsrc/engine/home.asm2111
-rw-r--r--src/hram.asm6
-rwxr-xr-xsrc/wram.asm389
14 files changed, 2904 insertions, 813 deletions
diff --git a/src/constants.asm b/src/constants.asm
index c3b9f2d..3cf9cd1 100755
--- a/src/constants.asm
+++ b/src/constants.asm
@@ -1,11 +1,11 @@
INCLUDE "constants/map_constants.asm"
INCLUDE "constants/music_constants.asm"
INCLUDE "constants/text_constants.asm"
+INCLUDE "constants/duel_constants.asm"
INCLUDE "constants/duelist_constants.asm"
INCLUDE "constants/card_constants.asm"
INCLUDE "constants/deck_constants.asm"
INCLUDE "constants/card_data_constants.asm"
-INCLUDE "constants/set_constants.asm"
INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/hardware_constants.asm"
INCLUDE "constants/sgb_constants.asm"
diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm
index 7c1359c..6ea7a74 100644
--- a/src/constants/card_data_constants.asm
+++ b/src/constants/card_data_constants.asm
@@ -2,7 +2,7 @@ CARD_DATA_LENGTH EQU $41
DECK_SIZE EQU 60
BENCH_SIZE EQU 5
-;;; card types (byte 1 of every card data)
+;;; card types
FIRE EQU $0
GRASS EQU $1
LIGHTNING EQU $2
@@ -21,7 +21,32 @@ DOUBLE_COLORLESS_ENERGY_CARD EQU $E
TRAINER_CARD EQU $10
-;;; weakness/resistance (bytes 2 and 3 of Pokemon cards post-move data)
+;;; rarity
+CIRCLE EQU $0
+DIAMOND EQU $1
+STAR EQU $2
+PROMOSTAR EQU $FF
+
+;;; set
+COLOSSEUM EQU $00
+EVOLUTION EQU $10
+MYSTERY EQU $20
+LABORATORY EQU $30
+PROMOTIONAL EQU $40
+ENERGY EQU $50
+
+NONE EQU $0
+JUNGLE EQU $1
+FOSSIL EQU $2
+GB EQU $7
+PRO EQU $8
+
+;;; evolution stage
+BASIC EQU $0
+STAGE1 EQU $1
+STAGE2 EQU $2
+
+;;; weakness/resistance
WR_FIRE EQU $80
WR_GRASS EQU $40
WR_LIGHTNING EQU $20
@@ -58,7 +83,7 @@ FLAG_2_BIT_5 EQU %00100000
FLAG_2_BIT_6 EQU %01000000
FLAG_2_BIT_7 EQU %10000000
-;;; flags 2 (10th param of Pokemon cards move data)
+;;; flags 3 (10th param of Pokemon cards move data)
; bit 1 covers a wide variety of effects
; bits 2-7 are unused
BOOST_IF_TAKEN_DAMAGE EQU %00000001
diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm
new file mode 100644
index 0000000..0eb4b5b
--- /dev/null
+++ b/src/constants/duel_constants.asm
@@ -0,0 +1,25 @@
+PLAYER_TURN EQUS "wPlayerDuelVariables >> $8"
+OPPONENT_TURN EQUS "wOpponentDuelVariables >> $8"
+
+DUEL_WON EQU $1
+DUEL_LOST EQU $2
+DUEL_DRAW EQU $3
+
+DUELVARS_CARD_LOCATIONS EQUS "wPlayerCardLocations & $ff" ; 00
+DUELVARS_HAND EQUS "wPlayerHand & $ff" ; 42
+DUELVARS_DECK_CARDS EQUS "wPlayerDeckCards & $ff" ; 7e
+DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK EQUS "wPlayerNumberOfCardsNotInDeck & $ff" ; ba
+DUELVARS_ARENA_CARD EQUS "wPlayerArenaCard & $ff" ; bb
+DUELVARS_BENCH EQUS "wPlayerBench & $ff" ; bc
+DUELVARS_ARENA_CARD_HP EQUS "wPlayerArenaCardHP & $ff" ; c8
+DUELVARS_BENCH1_CARD_HP EQUS "wPlayerBench1CardHP & $ff" ; c9
+DUELVARS_BENCH2_CARD_HP EQUS "wPlayerBench2CardHP & $ff" ; ca
+DUELVARS_BENCH3_CARD_HP EQUS "wPlayerBench3CardHP & $ff" ; cb
+DUELVARS_BENCH4_CARD_HP EQUS "wPlayerBench4CardHP & $ff" ; cc
+DUELVARS_BENCH5_CARD_HP EQUS "wPlayerBench5CardHP & $ff" ; cd
+DUELVARS_PRIZES EQUS "wPlayerPrizes & $ff" ; ec
+DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE EQUS "wPlayerNumberOfCardsInDiscardPile & $ff" ; ed
+DUELVARS_NUMBER_OF_CARDS_IN_HAND EQUS "wPlayerNumberOfCardsInHand & $ff" ; ee
+DUELVARS_NUMBER_OF_POKEMON_IN_PLAY EQUS "wPlayerNumberOfPokemonInPlay & $ff" ; ef
+DUELVARS_ARENA_CARD_STATUS EQUS "wPlayerArenaCardStatus & $ff" ; f0
+DUELVARS_DUELIST_TYPE EQUS "wPlayerDuelistType & $ff" ; f1
diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm
index 08b6c35..d985e77 100644
--- a/src/constants/misc_constants.asm
+++ b/src/constants/misc_constants.asm
@@ -2,7 +2,3 @@
CONSOLE_DMG EQU $00
CONSOLE_SGB EQU $01
CONSOLE_CGB EQU $02
-
-; dueling constants
-PLAYER_TURN EQUS "wPlayerDuelVariables >> $8"
-OPPONENT_TURN EQUS "wOpponentDuelVariables >> $8" \ No newline at end of file
diff --git a/src/constants/set_constants.asm b/src/constants/set_constants.asm
deleted file mode 100755
index d3cfa57..0000000
--- a/src/constants/set_constants.asm
+++ /dev/null
@@ -1,21 +0,0 @@
-COLOSSEUM EQU $00
-EVOLUTION EQU $10
-MYSTERY EQU $20
-LABORATORY EQU $30
-PROMOTIONAL EQU $40
-ENERGY EQU $50
-
-NONE EQU $0
-JUNGLE EQU $1
-FOSSIL EQU $2
-GB EQU $7
-PRO EQU $8
-
-BASIC EQU $0
-STAGE1 EQU $1
-STAGE2 EQU $2
-
-CIRCLE EQU $0
-DIAMOND EQU $1
-STAR EQU $2
-PROMOSTAR EQU $FF
diff --git a/src/data/effect_commands.asm b/src/data/effect_commands.asm
index 46ff81c..39bc603 100644
--- a/src/data/effect_commands.asm
+++ b/src/data/effect_commands.asm
@@ -16,52 +16,52 @@ EffectCommands: ; 186f7 (6:46f7)
; xxx use <TrainerCardName>EffectCommands or <EnergyCardName>EffectCommands for these types of cards.
EkansSpitPoisonEffectCommands:
- dbw $03, $46F8
- dbw $09, $46F0
+ dbw $03, $46f8
+ dbw $09, $46f0
db $00
-
+
EkansWrapEffectCommands:
dbw $03, $4011
db $00
-
+
ArbokTerrorStrikeEffectCommands:
dbw $04, $4726
- dbw $05, $470A
- dbw $0A, $470A
+ dbw $05, $470a
+ dbw $0a, $470a
db $00
-
+
ArbokPoisonFangEffectCommands:
dbw $03, $4007
dbw $09, $4730
db $00
-
+
WeepinbellPoisonPowderEffectCommands:
dbw $03, $4000
dbw $09, $4738
db $00
-
+
VictreebelLureEffectCommands:
dbw $01, $4740
- dbw $04, $476A
- dbw $05, $474B
+ dbw $04, $476a
+ dbw $05, $474b
dbw $08, $4764
db $00
-
+
VictreebelAcidEffectCommands:
- dbw $03, $477E
+ dbw $03, $477e
db $00
-
+
PinsirIronGripEffectCommands:
dbw $03, $4011
db $00
-
+
CaterpieStringShotEffectCommands:
dbw $03, $4011
db $00
GloomPoisonPowderEffectCommands:
dbw $03, $4007
- dbw $09, $478B
+ dbw $09, $478b
db $00
GloomFoulOdorEffectCommands:
@@ -69,16 +69,16 @@ GloomFoulOdorEffectCommands:
db $00
KakunaStiffenEffectCommands:
- dbw $03, $47A0
+ dbw $03, $47a0
db $00
KakunaPoisonPowderEffectCommands:
dbw $03, $4000
- dbw $09, $47B4
+ dbw $09, $47b4
db $00
GolbatLeechLifeEffectCommands:
- dbw $04, $47BC
+ dbw $04, $47bc
db $00
VenonatStunSporeEffectCommands:
@@ -86,29 +86,29 @@ VenonatStunSporeEffectCommands:
db $00
VenonatLeechLifeEffectCommands:
- dbw $04, $47C6
+ dbw $04, $47c6
db $00
ScytherSwordsDanceEffectCommands:
- dbw $03, $47D0
+ dbw $03, $47d0
db $00
ZubatSupersonicEffectCommands:
- dbw $03, $47DC
+ dbw $03, $47dc
db $00
ZubatLeechLifeEffectCommands:
- dbw $04, $47E3
+ dbw $04, $47e3
db $00
BeedrillTwineedleEffectCommands:
- dbw $03, $47F5
- dbw $09, $47ED
+ dbw $03, $47f5
+ dbw $09, $47ed
db $00
BeedrillPoisonStingEffectCommands:
dbw $03, $4000
- dbw $09, $480D
+ dbw $09, $480d
db $00
ExeggcuteHypnosisEffectCommands:
@@ -120,7 +120,7 @@ ExeggcuteLeechSeedEffectCommands:
db $00
KoffingFoulGasEffectCommands:
- dbw $03, $482A
+ dbw $03, $482a
dbw $09, $4822
db $00
@@ -137,17 +137,17 @@ OddishStunSporeEffectCommands:
db $00
OddishSproutEffectCommands:
- dbw $01, $484A
- dbw $04, $48CC
- dbw $05, $485A
- dbw $08, $48B7
+ dbw $01, $484a
+ dbw $04, $48cc
+ dbw $05, $485a
+ dbw $08, $48b7
db $00
ExeggutorTeleportEffectCommands:
- dbw $01, $48EC
- dbw $04, $491A
- dbw $05, $48F7
- dbw $08, $490F
+ dbw $01, $48ec
+ dbw $04, $491a
+ dbw $05, $48f7
+ dbw $08, $490f
db $00
ExeggutorBigEggsplosionEffectCommands:
@@ -158,12 +158,12 @@ ExeggutorBigEggsplosionEffectCommands:
NidokingThrashEffectCommands:
dbw $03, $4973
dbw $04, $4982
- dbw $09, $496B
+ dbw $09, $496b
db $00
NidokingToxicEffectCommands:
dbw $03, $4994
- dbw $09, $498C
+ dbw $09, $498c
db $00
NidoqueenBoyfriendsEffectCommands:
@@ -171,44 +171,44 @@ NidoqueenBoyfriendsEffectCommands:
db $00
NidoranFFurySweepesEffectCommands:
- dbw $03, $49C6
- dbw $09, $49BE
+ dbw $03, $49c6
+ dbw $09, $49be
db $00
NidoranFCallforFamilyEffectCommands:
- dbw $01, $49DB
- dbw $04, $4A6E
- dbw $05, $49EB
- dbw $08, $4A55
+ dbw $01, $49db
+ dbw $04, $4a6e
+ dbw $05, $49eb
+ dbw $08, $4a55
db $00
NidoranMHornHazardEffectCommands:
- dbw $03, $4A96
- dbw $09, $4A8E
+ dbw $03, $4a96
+ dbw $09, $4a8e
db $00
NidorinaSupersonicEffectCommands:
- dbw $03, $4AAC
+ dbw $03, $4aac
db $00
NidorinaDoubleKickEffectCommands:
- dbw $03, $4ABB
- dbw $09, $4AB3
+ dbw $03, $4abb
+ dbw $09, $4ab3
db $00
NidorinoDoubleKickEffectCommands:
- dbw $03, $4ADB
- dbw $09, $4AD3
+ dbw $03, $4adb
+ dbw $09, $4ad3
db $00
ButterfreeWhirlwindEffectCommands:
- dbw $04, $4B09
- dbw $05, $4AF3
- dbw $0A, $4AF3
+ dbw $04, $4b09
+ dbw $05, $4af3
+ dbw $0a, $4af3
db $00
ButterfreeMegaDrainEffectCommands:
- dbw $04, $4B0F
+ dbw $04, $4b0f
db $00
ParasSporeEffectCommands:
@@ -221,23 +221,23 @@ ParasectSporeEffectCommands:
WeedlePoisonStingEffectCommands:
dbw $03, $4000
- dbw $09, $4B27
+ dbw $09, $4b27
db $00
IvysaurPoisonPowderEffectCommands:
dbw $03, $4007
- dbw $09, $4B2F
+ dbw $09, $4b2f
db $00
BulbasaurLeechSeedEffectCommands:
- dbw $04, $4B37
+ dbw $04, $4b37
db $00
VenusaurEnergyTransEffectCommands:
- dbw $02, $4B44
- dbw $03, $4B77
- dbw $04, $4BFB
- dbw $05, $4B6F
+ dbw $02, $4b44
+ dbw $03, $4b77
+ dbw $04, $4bfb
+ dbw $05, $4b6f
db $00
GrimerNastyGooEffectCommands:
@@ -245,43 +245,43 @@ GrimerNastyGooEffectCommands:
db $00
GrimerMinimizeEffectCommands:
- dbw $03, $4C30
+ dbw $03, $4c30
db $00
MukToxicGasEffectCommands:
- dbw $01, $4C36
+ dbw $01, $4c36
db $00
MukSludgeEffectCommands:
dbw $03, $4000
- dbw $09, $4C38
+ dbw $09, $4c38
db $00
BellsproutCallforFamilyEffectCommands:
- dbw $01, $4C40
- dbw $04, $4CC2
- dbw $05, $4C50
- dbw $08, $4CAD
+ dbw $01, $4c40
+ dbw $04, $4cc2
+ dbw $05, $4c50
+ dbw $08, $4cad
db $00
WeezingSmogEffectCommands:
dbw $03, $4000
- dbw $09, $4CE2
+ dbw $09, $4ce2
db $00
WeezingSelfdestructEffectCommands:
- dbw $04, $4CEA
+ dbw $04, $4cea
db $00
VenomothShiftEffectCommands:
- dbw $02, $4D09
- dbw $03, $4D5D
- dbw $05, $4D21
+ dbw $02, $4d09
+ dbw $03, $4d5d
+ dbw $05, $4d21
db $00
VenomothVenomPowderEffectCommands:
- dbw $03, $4D8C
- dbw $09, $4D84
+ dbw $03, $4d8c
+ dbw $09, $4d84
db $00
TangelaBindEffectCommands:
@@ -290,17 +290,17 @@ TangelaBindEffectCommands:
TangelaPoisonPowderEffectCommands:
dbw $03, $4007
- dbw $09, $4DA0
+ dbw $09, $4da0
db $00
VileplumeHealEffectCommands:
- dbw $02, $4DA8
- dbw $03, $4DC7
+ dbw $02, $4da8
+ dbw $03, $4dc7
db $00
VileplumePetalDanceEffectCommands:
- dbw $03, $4E2B
- dbw $09, $4E23
+ dbw $03, $4e2b
+ dbw $09, $4e23
db $00
TangelaStunSporeEffectCommands:
@@ -309,48 +309,48 @@ TangelaStunSporeEffectCommands:
TangelaPoisonWhipEffectCommands:
dbw $03, $4007
- dbw $09, $4E4B
+ dbw $09, $4e4b
db $00
VenusaurSolarPowerEffectCommands:
- dbw $02, $4E53
- dbw $03, $4E82
+ dbw $02, $4e53
+ dbw $03, $4e82
db $00
VenusaurMegaDrainEffectCommands:
- dbw $04, $4EB0
+ dbw $04, $4eb0
db $00
OmastarWaterGunEffectCommands:
- dbw $03, $4F05
- dbw $09, $4F05
+ dbw $03, $4f05
+ dbw $09, $4f05
db $00
OmastarSpikeCannonEffectCommands:
- dbw $03, $4F12
- dbw $09, $4F0A
+ dbw $03, $4f12
+ dbw $09, $4f0a
db $00
OmanyteClairvoyanceEffectCommands:
- dbw $01, $4F2A
+ dbw $01, $4f2a
db $00
OmanyteWaterGunEffectCommands:
- dbw $03, $4F2C
- dbw $09, $4F2C
+ dbw $03, $4f2c
+ dbw $09, $4f2c
db $00
WartortleWithdrawEffectCommands:
- dbw $03, $4F32
+ dbw $03, $4f32
db $00
BlastoiseRainDanceEffectCommands:
- dbw $01, $4F46
+ dbw $01, $4f46
db $00
BlastoiseHydroPumpEffectCommands:
- dbw $03, $4F48
- dbw $09, $4F48
+ dbw $03, $4f48
+ dbw $09, $4f48
db $00
GyaradosBubblebeamEffectCommands:
@@ -358,28 +358,28 @@ GyaradosBubblebeamEffectCommands:
db $00
KinglerFlailEffectCommands:
- dbw $03, $4F54
- dbw $09, $4F4E
+ dbw $03, $4f54
+ dbw $09, $4f4e
db $00
KrabbyCallforFamilyEffectCommands:
- dbw $01, $4F5D
- dbw $04, $4FDF
- dbw $05, $4F6D
- dbw $08, $4FCA
+ dbw $01, $4f5d
+ dbw $04, $4fdf
+ dbw $05, $4f6d
+ dbw $08, $4fca
db $00
MagikarpFlailEffectCommands:
dbw $03, $5005
- dbw $09, $4FFF
+ dbw $09, $4fff
db $00
PsyduckHeadacheEffectCommands:
- dbw $03, $500E
+ dbw $03, $500e
db $00
PsyduckFurySweepesEffectCommands:
- dbw $03, $501E
+ dbw $03, $501e
dbw $09, $5016
db $00
@@ -388,7 +388,7 @@ GolduckPsyshockEffectCommands:
db $00
GolduckHyperBeamEffectCommands:
- dbw $04, $506B
+ dbw $04, $506b
dbw $05, $5033
dbw $08, $5065
db $00
@@ -399,25 +399,25 @@ SeadraWaterGunEffectCommands:
db $00
SeadraAgilityEffectCommands:
- dbw $03, $508B
+ dbw $03, $508b
db $00
ShellderSupersonicEffectCommands:
- dbw $03, $509D
+ dbw $03, $509d
db $00
ShellderHideinShellEffectCommands:
- dbw $03, $50A4
+ dbw $03, $50a4
db $00
VaporeonQuickAttackEffectCommands:
- dbw $03, $50C0
- dbw $09, $50B8
+ dbw $03, $50c0
+ dbw $09, $50b8
db $00
VaporeonWaterGunEffectCommands:
- dbw $03, $50D3
- dbw $09, $50D3
+ dbw $03, $50d3
+ dbw $09, $50d3
db $00
DewgongIceBeamEffectCommands:
@@ -425,10 +425,10 @@ DewgongIceBeamEffectCommands:
db $00
StarmieRecoverEffectCommands:
- dbw $01, $50D9
- dbw $02, $50F0
+ dbw $01, $50d9
+ dbw $02, $50f0
dbw $04, $5114
- dbw $06, $510E
+ dbw $06, $510e
dbw $08, $5103
db $00
@@ -449,7 +449,7 @@ HorseaSmokescreenEffectCommands:
db $00
TentacruelSupersonicEffectCommands:
- dbw $03, $513A
+ dbw $03, $513a
db $00
TentacruelJellyfishStingEffectCommands:
@@ -459,25 +459,25 @@ TentacruelJellyfishStingEffectCommands:
PoliwhirlAmnesiaEffectCommands:
dbw $01, $5149
- dbw $02, $516F
+ dbw $02, $516f
dbw $03, $5179
dbw $08, $5173
db $00
PoliwhirlDoubleslapEffectCommands:
- dbw $03, $51C8
- dbw $09, $51C0
+ dbw $03, $51c8
+ dbw $09, $51c0
db $00
PoliwrathWaterGunEffectCommands:
- dbw $03, $51E0
- dbw $09, $51E0
+ dbw $03, $51e0
+ dbw $09, $51e0
db $00
PoliwrathWhirlpoolEffectCommands:
dbw $04, $5214
- dbw $05, $51E6
- dbw $08, $520E
+ dbw $05, $51e6
+ dbw $08, $520e
db $00
PoliwagWaterGunEffectCommands:
@@ -486,11 +486,11 @@ PoliwagWaterGunEffectCommands:
db $00
CloysterClampEffectCommands:
- dbw $03, $522D
+ dbw $03, $522d
db $00
CloysterSpikeCannonEffectCommands:
- dbw $03, $524E
+ dbw $03, $524e
dbw $09, $5246
db $00
@@ -500,36 +500,36 @@ ArticunoFreezeDryEffectCommands:
ArticunoBlizzardEffectCommands:
dbw $03, $5266
- dbw $04, $526F
+ dbw $04, $526f
db $00
TentacoolCowardiceEffectCommands:
- dbw $02, $528B
- dbw $03, $52C3
- dbw $05, $52AE
+ dbw $02, $528b
+ dbw $03, $52c3
+ dbw $05, $52ae
db $00
LaprasWaterGunEffectCommands:
- dbw $03, $52EB
- dbw $09, $52EB
+ dbw $03, $52eb
+ dbw $09, $52eb
db $00
LaprasConfuseRayEffectCommands:
- dbw $03, $401D
+ dbw $03, $401d
db $00
ArticunoQuickfreezeEffectCommands:
- dbw $01, $52F1
- dbw $07, $52F3
+ dbw $01, $52f1
+ dbw $07, $52f3
db $00
ArticunoIceBreathEffectCommands:
dbw $03, $5329
- dbw $04, $532E
+ dbw $04, $532e
db $00
VaporeonFocusEnergyEffectCommands:
- dbw $03, $533F
+ dbw $03, $533f
db $00
ArcanineFlamethrowerEffectCommands:
@@ -540,26 +540,26 @@ ArcanineFlamethrowerEffectCommands:
db $00
ArcanineTakeDownEffectCommands:
- dbw $04, $537F
+ dbw $04, $537f
db $00
ArcanineQuickAttackEffectCommands:
- dbw $03, $538D
+ dbw $03, $538d
dbw $09, $5385
db $00
ArcanineFlamesofRageEffectCommands:
- dbw $01, $53A0
- dbw $02, $53AE
- dbw $03, $53EF
- dbw $06, $53DE
- dbw $08, $53D5
- dbw $09, $53E9
+ dbw $01, $53a0
+ dbw $02, $53ae
+ dbw $03, $53ef
+ dbw $06, $53de
+ dbw $08, $53d5
+ dbw $09, $53e9
db $00
RapidashStompEffectCommands:
dbw $03, $5400
- dbw $09, $53F8
+ dbw $09, $53f8
db $00
RapidashAgilityEffectCommands:
@@ -568,7 +568,7 @@ RapidashAgilityEffectCommands:
NinetailsLureEffectCommands:
dbw $01, $5425
- dbw $04, $544F
+ dbw $04, $544f
dbw $05, $5430
dbw $08, $5449
db $00
@@ -581,22 +581,22 @@ NinetailsFireBlastEffectCommands:
db $00
CharmanderEmberEffectCommands:
- dbw $01, $547F
- dbw $02, $548D
+ dbw $01, $547f
+ dbw $02, $548d
dbw $06, $5495
dbw $08, $5491
db $00
MoltresWildfireEffectCommands:
- dbw $01, $549B
- dbw $02, $54A9
- dbw $04, $54F4
- dbw $06, $54E1
- dbw $08, $54DD
+ dbw $01, $549b
+ dbw $02, $54a9
+ dbw $04, $54f4
+ dbw $06, $54e1
+ dbw $08, $54dd
db $00
Moltres1DiveBombEffectCommands:
- dbw $03, $552B
+ dbw $03, $552b
dbw $09, $5523
db $00
@@ -606,17 +606,17 @@ FlareonQuickAttackEffectCommands:
db $00
FlareonFlamethrowerEffectCommands:
- dbw $01, $555C
- dbw $02, $556A
+ dbw $01, $555c
+ dbw $02, $556a
dbw $06, $5572
- dbw $08, $556E
+ dbw $08, $556e
db $00
MagmarFlamethrowerEffectCommands:
dbw $01, $5578
dbw $02, $5586
- dbw $06, $558E
- dbw $08, $558A
+ dbw $06, $558e
+ dbw $08, $558a
db $00
MagmarSmokescreenEffectCommands:
@@ -625,33 +625,33 @@ MagmarSmokescreenEffectCommands:
MagmarSmogEffectCommands:
dbw $03, $4000
- dbw $09, $559A
+ dbw $09, $559a
db $00
CharmeleonFlamethrowerEffectCommands:
- dbw $01, $55A2
- dbw $02, $55B0
- dbw $06, $55B8
- dbw $08, $55B4
+ dbw $01, $55a2
+ dbw $02, $55b0
+ dbw $06, $55b8
+ dbw $08, $55b4
db $00
CharizardEnergyBurnEffectCommands:
- dbw $01, $55BE
+ dbw $01, $55be
db $00
CharizardFireSpinEffectCommands:
- dbw $01, $55C0
- dbw $02, $55CD
+ dbw $01, $55c0
+ dbw $02, $55cd
dbw $06, $5614
dbw $08, $5606
db $00
VulpixConfuseRayEffectCommands:
- dbw $03, $401D
+ dbw $03, $401d
db $00
FlareonRageEffectCommands:
- dbw $03, $563E
+ dbw $03, $563e
dbw $09, $5638
db $00
@@ -660,18 +660,18 @@ NinetailsMixUpEffectCommands:
db $00
NinetailsDancingEmbersEffectCommands:
- dbw $03, $56AB
- dbw $09, $56A3
+ dbw $03, $56ab
+ dbw $09, $56a3
db $00
MoltresFiregiverEffectCommands:
- dbw $01, $56C0
- dbw $07, $56C2
+ dbw $01, $56c0
+ dbw $07, $56c2
db $00
Moltres2DiveBombEffectCommands:
dbw $03, $5776
- dbw $09, $576E
+ dbw $09, $576e
db $00
AbraPsyshockEffectCommands:
@@ -679,19 +679,19 @@ AbraPsyshockEffectCommands:
db $00
GengarCurseEffectCommands:
- dbw $02, $57FC
- dbw $03, $58BB
+ dbw $02, $57fc
+ dbw $03, $58bb
dbw $05, $5834
db $00
GengarDarkMindEffectCommands:
- dbw $04, $593C
+ dbw $04, $593c
dbw $05, $5903
- dbw $08, $592A
+ dbw $08, $592a
db $00
GastlySleepingGasEffectCommands:
- dbw $03, $594F
+ dbw $03, $594f
db $00
GastlyDestinyBondEffectCommands:
@@ -707,10 +707,10 @@ GastlyLickEffectCommands:
db $00
GastlyEnergyConversionEffectCommands:
- dbw $01, $598D
- dbw $04, $59B4
+ dbw $01, $598d
+ dbw $04, $59b4
dbw $05, $5994
- dbw $08, $599B
+ dbw $08, $599b
db $00
HaunterHypnosisEffectCommands:
@@ -718,11 +718,11 @@ HaunterHypnosisEffectCommands:
db $00
HaunterDreamEaterEffectCommands:
- dbw $01, $59D6
+ dbw $01, $59d6
db $00
HaunterTransparencyEffectCommands:
- dbw $01, $59E5
+ dbw $01, $59e5
db $00
HaunterNightmareEffectCommands:
@@ -730,55 +730,55 @@ HaunterNightmareEffectCommands:
db $00
HypnoProphecyEffectCommands:
- dbw $01, $59E7
- dbw $04, $5A41
- dbw $05, $5A00
- dbw $08, $5A3C
+ dbw $01, $59e7
+ dbw $04, $5a41
+ dbw $05, $5a00
+ dbw $08, $5a3c
db $00
HypnoDarkMindEffectCommands:
- dbw $04, $5B64
- dbw $05, $5B2B
- dbw $08, $5B52
+ dbw $04, $5b64
+ dbw $05, $5b2b
+ dbw $08, $5b52
db $00
DrowzeeConfuseRayEffectCommands:
- dbw $03, $401D
+ dbw $03, $401d
db $00
MrMimeInvisibleWallEffectCommands:
- dbw $01, $5B77
+ dbw $01, $5b77
db $00
MrMimeMeditateEffectCommands:
- dbw $03, $5B7F
- dbw $09, $5B79
+ dbw $03, $5b7f
+ dbw $09, $5b79
db $00
AlakazamDamageSwapEffectCommands:
- dbw $02, $5B8E
- dbw $03, $5BA2
- dbw $04, $5C27
+ dbw $02, $5b8e
+ dbw $03, $5ba2
+ dbw $04, $5c27
db $00
AlakazamConfuseRayEffectCommands:
- dbw $03, $401D
+ dbw $03, $401d
db $00
MewPsywaveEffectCommands:
- dbw $03, $5C49
+ dbw $03, $5c49
db $00
MewDevolutionBeamEffectCommands:
- dbw $01, $5C53
- dbw $02, $5C64
- dbw $03, $5CB6
- dbw $04, $5CBB
- dbw $08, $5C9E
+ dbw $01, $5c53
+ dbw $02, $5c64
+ dbw $03, $5cb6
+ dbw $04, $5cbb
+ dbw $08, $5c9e
db $00
MewNeutralizingShieldEffectCommands:
- dbw $01, $5D79
+ dbw $01, $5d79
db $00
MewPsyshockEffectCommands:
@@ -786,36 +786,36 @@ MewPsyshockEffectCommands:
db $00
MewtwoPsychicEffectCommands:
- dbw $03, $5D81
- dbw $09, $5D7B
+ dbw $03, $5d81
+ dbw $09, $5d7b
db $00
MewtwoMrMimeKindAndBarrierEffectCommands:
- dbw $01, $5D8E
- dbw $02, $5D9C
- dbw $03, $5DBF
- dbw $06, $5DB9
- dbw $08, $5DAE
+ dbw $01, $5d8e
+ dbw $02, $5d9c
+ dbw $03, $5dbf
+ dbw $06, $5db9
+ dbw $08, $5dae
db $00
Mewtwo3EnergyAbsorptionEffectCommands:
- dbw $01, $5DC5
- dbw $04, $5DEC
- dbw $05, $5DCC
- dbw $08, $5DD3
+ dbw $01, $5dc5
+ dbw $04, $5dec
+ dbw $05, $5dcc
+ dbw $08, $5dd3
db $00
Mewtwo2EnergyAbsorptionEffectCommands:
- dbw $01, $5DFF
- dbw $04, $5E26
- dbw $05, $5E06
- dbw $08, $5E0D
+ dbw $01, $5dff
+ dbw $04, $5e26
+ dbw $05, $5e06
+ dbw $08, $5e0d
db $00
SlowbroStrangeBehaviorEffectCommands:
- dbw $02, $5E39
- dbw $03, $5E5B
- dbw $04, $5EB3
+ dbw $02, $5e39
+ dbw $03, $5e5b
+ dbw $04, $5eb3
db $00
SlowbroPsyshockEffectCommands:
@@ -823,54 +823,54 @@ SlowbroPsyshockEffectCommands:
db $00
SlowpokeSpacingOutEffectCommands:
- dbw $01, $5ED5
- dbw $03, $5EE0
- dbw $04, $5EF1
+ dbw $01, $5ed5
+ dbw $03, $5ee0
+ dbw $04, $5ef1
db $00
SlowpokeScavengeEffectCommands:
- dbw $01, $5F05
- dbw $02, $5F1A
- dbw $04, $5F5F
- dbw $05, $5F46
- dbw $06, $5F40
- dbw $08, $5F2D
+ dbw $01, $5f05
+ dbw $02, $5f1a
+ dbw $04, $5f5f
+ dbw $05, $5f46
+ dbw $06, $5f40
+ dbw $08, $5f2d
db $00
SlowpokeAmnesiaEffectCommands:
- dbw $01, $5F74
- dbw $02, $5F7B
- dbw $03, $5F85
- dbw $08, $5F7F
+ dbw $01, $5f74
+ dbw $02, $5f7b
+ dbw $03, $5f85
+ dbw $08, $5f7f
db $00
KadabraRecoverEffectCommands:
- dbw $01, $5F89
- dbw $02, $5FA0
- dbw $04, $5FC3
- dbw $06, $5FBD
- dbw $08, $5FB2
+ dbw $01, $5f89
+ dbw $02, $5fa0
+ dbw $04, $5fc3
+ dbw $06, $5fbd
+ dbw $08, $5fb2
db $00
JynxDoubleslapEffectCommands:
- dbw $03, $5FD7
- dbw $09, $5FCF
+ dbw $03, $5fd7
+ dbw $09, $5fcf
db $00
JynxMeditateEffectCommands:
- dbw $03, $5FF2
- dbw $09, $5FEC
+ dbw $03, $5ff2
+ dbw $09, $5fec
db $00
MewMysteryAttackEffectCommands:
dbw $03, $6009
- dbw $04, $603E
+ dbw $04, $603e
dbw $09, $6001
db $00
GeodudeStoneBarrageEffectCommands:
dbw $03, $6052
- dbw $09, $604A
+ dbw $09, $604a
db $00
OnixHardenEffectCommands:
@@ -879,7 +879,7 @@ OnixHardenEffectCommands:
PrimeapeFurySweepesEffectCommands:
dbw $03, $6083
- dbw $09, $607B
+ dbw $09, $607b
db $00
PrimeapeTantrumEffectCommands:
@@ -887,29 +887,29 @@ PrimeapeTantrumEffectCommands:
db $00
MachampStrikesBackEffectCommands:
- dbw $01, $60AF
+ dbw $01, $60af
db $00
KabutoKabutoArmorEffectCommands:
- dbw $01, $60B1
+ dbw $01, $60b1
db $00
KabutopsAbsorbEffectCommands:
- dbw $04, $60B3
+ dbw $04, $60b3
db $00
CuboneSnivelEffectCommands:
- dbw $03, $60CB
+ dbw $03, $60cb
db $00
CuboneRageEffectCommands:
- dbw $03, $60D7
- dbw $09, $60D1
+ dbw $03, $60d7
+ dbw $09, $60d1
db $00
MarowakBonemerangEffectCommands:
- dbw $03, $60E8
- dbw $09, $60E0
+ dbw $03, $60e8
+ dbw $09, $60e0
db $00
MarowakCallforFriendEffectCommands:
@@ -920,41 +920,41 @@ MarowakCallforFriendEffectCommands:
db $00
MachokeKarateChopEffectCommands:
- dbw $03, $61BA
- dbw $09, $61B4
+ dbw $03, $61ba
+ dbw $09, $61b4
db $00
MachokeSubmissionEffectCommands:
- dbw $04, $61D1
+ dbw $04, $61d1
db $00
GolemSelfdestructEffectCommands:
- dbw $04, $61D7
+ dbw $04, $61d7
db $00
GravelerHardenEffectCommands:
- dbw $03, $61F6
+ dbw $03, $61f6
db $00
RhydonRamEffectCommands:
dbw $04, $6212
- dbw $05, $61FC
- dbw $0A, $61FC
+ dbw $05, $61fc
+ dbw $0a, $61fc
db $00
RhyhornLeerEffectCommands:
- dbw $03, $621D
+ dbw $03, $621d
db $00
HitmonleeStretchKickEffectCommands:
dbw $01, $6231
- dbw $04, $625B
- dbw $05, $623C
+ dbw $04, $625b
+ dbw $05, $623c
dbw $08, $6255
db $00
SandshrewSandAttackEffectCommands:
- dbw $03, $626B
+ dbw $03, $626b
db $00
SandslashFurySweepesEffectCommands:
@@ -963,24 +963,24 @@ SandslashFurySweepesEffectCommands:
db $00
DugtrioEarthquakeEffectCommands:
- dbw $04, $628F
+ dbw $04, $628f
db $00
AerodactylPrehistoricPowerEffectCommands:
- dbw $01, $629A
+ dbw $01, $629a
db $00
MankeyPeekEffectCommands:
- dbw $02, $629C
- dbw $03, $62B4
+ dbw $02, $629c
+ dbw $03, $62b4
db $00
MarowakBoneAttackEffectCommands:
- dbw $03, $630F
+ dbw $03, $630f
db $00
MarowakWailEffectCommands:
- dbw $01, $631C
+ dbw $01, $631c
dbw $04, $6335
db $00
@@ -989,18 +989,18 @@ ElectabuzzThundershockEffectCommands:
db $00
ElectabuzzThunderpunchEffectCommands:
- dbw $03, $63A1
- dbw $04, $63B0
+ dbw $03, $63a1
+ dbw $04, $63b0
dbw $09, $6399
db $00
ElectabuzzLightScreenEffectCommands:
- dbw $03, $63BA
+ dbw $03, $63ba
db $00
ElectabuzzQuickAttackEffectCommands:
- dbw $03, $63C8
- dbw $09, $63C0
+ dbw $03, $63c8
+ dbw $09, $63c0
db $00
MagnemiteThunderWaveEffectCommands:
@@ -1012,7 +1012,7 @@ MagnemiteSelfdestructEffectCommands:
db $00
ZapdosThunderEffectCommands:
- dbw $03, $63FA
+ dbw $03, $63fa
dbw $04, $6409
db $00
@@ -1025,13 +1025,13 @@ ZapdosThunderstormEffectCommands:
db $00
JolteonQuickAttackEffectCommands:
- dbw $03, $64C3
- dbw $09, $64BB
+ dbw $03, $64c3
+ dbw $09, $64bb
db $00
JolteonPinMissileEffectCommands:
- dbw $03, $64DE
- dbw $09, $64D6
+ dbw $03, $64de
+ dbw $09, $64d6
db $00
FlyingPikachuThundershockEffectCommands:
@@ -1039,12 +1039,12 @@ FlyingPikachuThundershockEffectCommands:
db $00
FlyingPikachuFlyEffectCommands:
- dbw $03, $64FC
- dbw $09, $64F4
+ dbw $03, $64fc
+ dbw $09, $64f4
db $00
PikachuThunderJoltEffectCommands:
- dbw $03, $651A
+ dbw $03, $651a
dbw $04, $6529
db $00
@@ -1063,7 +1063,7 @@ Pikachu3ThundershockEffectCommands:
db $00
Pikachu4GrowlEffectCommands:
- dbw $03, $658F
+ dbw $03, $658f
db $00
Pikachu4ThundershockEffectCommands:
@@ -1075,18 +1075,18 @@ ElectrodeChainLightningEffectCommands:
db $00
RaichuAgilityEffectCommands:
- dbw $03, $65DC
+ dbw $03, $65dc
db $00
RaichuThunderEffectCommands:
- dbw $03, $65EE
- dbw $04, $65FD
+ dbw $03, $65ee
+ dbw $04, $65fd
db $00
RaichuGigashockEffectCommands:
- dbw $04, $671F
- dbw $05, $660D
- dbw $08, $66C3
+ dbw $04, $671f
+ dbw $05, $660d
+ dbw $08, $66c3
db $00
MagnetonThunderWaveEffectCommands:
@@ -1099,25 +1099,25 @@ Magneton1SelfdestructEffectCommands:
MagnetonSonicboomEffectCommands:
dbw $03, $6758
- dbw $04, $675E
+ dbw $04, $675e
dbw $09, $6758
db $00
Magneton2SelfdestructEffectCommands:
- dbw $04, $675F
+ dbw $04, $675f
db $00
ZapdosPealofThunderEffectCommands:
- dbw $01, $677E
+ dbw $01, $677e
dbw $07, $6780
db $00
ZapdosBigThunderEffectCommands:
- dbw $04, $67CB
+ dbw $04, $67cb
db $00
MagnemiteMagneticStormEffectCommands:
- dbw $04, $67D5
+ dbw $04, $67d5
db $00
ElectrodeSonicboomEffectCommands:
@@ -1128,9 +1128,9 @@ ElectrodeSonicboomEffectCommands:
ElectrodeEnergySpikeEffectCommands:
dbw $01, $6877
- dbw $04, $68F6
- dbw $05, $687B
- dbw $08, $68F1
+ dbw $04, $68f6
+ dbw $05, $687b
+ dbw $08, $68f1
db $00
JolteonDoubleKickEffectCommands:
@@ -1143,40 +1143,40 @@ JolteonStunNeedleEffectCommands:
db $00
EeveeTailWagEffectCommands:
- dbw $03, $694E
+ dbw $03, $694e
db $00
EeveeQuickAttackEffectCommands:
- dbw $03, $696A
+ dbw $03, $696a
dbw $09, $6962
db $00
SpearowMirrorMoveEffectCommands:
- dbw $01, $697F
+ dbw $01, $697f
dbw $02, $6981
dbw $03, $6987
dbw $04, $6989
dbw $05, $6983
dbw $08, $6985
- dbw $09, $697D
+ dbw $09, $697d
db $00
FearowAgilityEffectCommands:
- dbw $03, $6AB8
+ dbw $03, $6ab8
db $00
DragoniteStepInEffectCommands:
- dbw $02, $6ACA
- dbw $03, $6AE8
+ dbw $02, $6aca
+ dbw $03, $6ae8
db $00
Dragonite2SlamEffectCommands:
- dbw $03, $6AFE
- dbw $09, $6AF6
+ dbw $03, $6afe
+ dbw $09, $6af6
db $00
SnorlaxThickSkinnedEffectCommands:
- dbw $01, $6B15
+ dbw $01, $6b15
db $00
SnorlaxBodySlamEffectCommands:
@@ -1184,98 +1184,98 @@ SnorlaxBodySlamEffectCommands:
db $00
FarfetchdLeekSlapEffectCommands:
- dbw $01, $6B1F
- dbw $03, $6B34
- dbw $06, $6B2C
- dbw $09, $6B17
+ dbw $01, $6b1f
+ dbw $03, $6b34
+ dbw $06, $6b2c
+ dbw $09, $6b17
db $00
KangaskhanFetchEffectCommands:
- dbw $04, $6B40
+ dbw $04, $6b40
db $00
KangaskhanCometPunchEffectCommands:
- dbw $03, $6B65
- dbw $09, $6B5D
+ dbw $03, $6b65
+ dbw $09, $6b5d
db $00
TaurosStompEffectCommands:
- dbw $03, $6B83
- dbw $09, $6B7B
+ dbw $03, $6b83
+ dbw $09, $6b7b
db $00
TaurosRampageEffectCommands:
- dbw $03, $6BA1
- dbw $09, $6B96
+ dbw $03, $6ba1
+ dbw $09, $6b96
db $00
DoduoFuryAttackEffectCommands:
- dbw $03, $6BC2
- dbw $09, $6BBA
+ dbw $03, $6bc2
+ dbw $09, $6bba
db $00
DodrioRetreatAidEffectCommands:
- dbw $01, $6BD7
+ dbw $01, $6bd7
db $00
DodrioRageEffectCommands:
- dbw $03, $6BDF
- dbw $09, $6BD9
+ dbw $03, $6bdf
+ dbw $09, $6bd9
db $00
MeowthPayDayEffectCommands:
- dbw $04, $6BE8
+ dbw $04, $6be8
db $00
DragonairSlamEffectCommands:
- dbw $03, $6C14
- dbw $09, $6C0C
+ dbw $03, $6c14
+ dbw $09, $6c0c
db $00
DragonairHyperBeamEffectCommands:
- dbw $04, $6C35
- dbw $05, $6C2C
- dbw $08, $6C2F
+ dbw $04, $6c35
+ dbw $05, $6c2c
+ dbw $08, $6c2f
db $00
ClefableMetronomeEffectCommands:
- dbw $01, $6C77
- dbw $02, $6C82
- dbw $08, $6C7E
+ dbw $01, $6c77
+ dbw $02, $6c82
+ dbw $08, $6c7e
db $00
ClefableMinimizeEffectCommands:
- dbw $03, $6C88
+ dbw $03, $6c88
db $00
PidgeotHurricaneEffectCommands:
- dbw $04, $6C8E
+ dbw $04, $6c8e
db $00
PidgeottoWhirlwindEffectCommands:
- dbw $04, $6CE9
- dbw $05, $6CD3
- dbw $0A, $6CD3
+ dbw $04, $6ce9
+ dbw $05, $6cd3
+ dbw $0a, $6cd3
db $00
PidgeottoMirrorMoveEffectCommands:
- dbw $01, $6CF2
- dbw $02, $6CF5
- dbw $03, $6CFE
- dbw $04, $6D01
- dbw $05, $6CF8
- dbw $08, $6CFB
- dbw $09, $6CEF
+ dbw $01, $6cf2
+ dbw $02, $6cf5
+ dbw $03, $6cfe
+ dbw $04, $6d01
+ dbw $05, $6cf8
+ dbw $08, $6cfb
+ dbw $09, $6cef
db $00
ClefairySingEffectCommands:
- dbw $03, $6D04
+ dbw $03, $6d04
db $00
ClefairyMetronomeEffectCommands:
- dbw $01, $6D0B
- dbw $02, $6D16
- dbw $08, $6D12
+ dbw $01, $6d0b
+ dbw $02, $6d16
+ dbw $08, $6d12
db $00
WigglytuffLullabyEffectCommands:
@@ -1283,8 +1283,8 @@ WigglytuffLullabyEffectCommands:
db $00
WigglytuffDotheWaveEffectCommands:
- dbw $03, $6D87
- dbw $09, $6D87
+ dbw $03, $6d87
+ dbw $09, $6d87
db $00
JigglypuffLullabyEffectCommands:
@@ -1292,16 +1292,16 @@ JigglypuffLullabyEffectCommands:
db $00
JigglypuffFirstAidEffectCommands:
- dbw $01, $6D94
- dbw $04, $6D9F
+ dbw $01, $6d94
+ dbw $04, $6d9f
db $00
JigglypuffDoubleEdgeEffectCommands:
- dbw $04, $6DA6
+ dbw $04, $6da6
db $00
PersianPounceEffectCommands:
- dbw $03, $6DAC
+ dbw $03, $6dac
db $00
LickitungTongueWrapEffectCommands:
@@ -1309,77 +1309,77 @@ LickitungTongueWrapEffectCommands:
db $00
LickitungSupersonicEffectCommands:
- dbw $03, $6DB2
+ dbw $03, $6db2
db $00
PidgeyWhirlwindEffectCommands:
- dbw $04, $6DCF
- dbw $05, $6DB9
- dbw $0A, $6DB9
+ dbw $04, $6dcf
+ dbw $05, $6db9
+ dbw $0a, $6db9
db $00
PorygonConversion1EffectCommands:
- dbw $01, $6DD5
- dbw $02, $6DED
- dbw $04, $6DFB
- dbw $08, $6DF7
+ dbw $01, $6dd5
+ dbw $02, $6ded
+ dbw $04, $6dfb
+ dbw $08, $6df7
db $00
PorygonConversion2EffectCommands:
- dbw $01, $6E1F
- dbw $02, $6E31
- dbw $04, $6E5E
- dbw $08, $6E3C
+ dbw $01, $6e1f
+ dbw $02, $6e31
+ dbw $04, $6e5e
+ dbw $08, $6e3c
db $00
ChanseyScrunchEffectCommands:
- dbw $03, $6EE7
+ dbw $03, $6ee7
db $00
ChanseyDoubleEdgeEffectCommands:
- dbw $04, $6EFB
+ dbw $04, $6efb
db $00
RaticateSuperFangEffectCommands:
- dbw $03, $6F07
- dbw $09, $6F01
+ dbw $03, $6f07
+ dbw $09, $6f01
db $00
; Unreferenced?
- dbw $02, $6F18
- dbw $03, $6F3C
- dbw $05, $6F27
+ dbw $02, $6f18
+ dbw $03, $6f3c
+ dbw $05, $6f27
db $00
DragoniteHealingWindEffectCommands:
- dbw $01, $6F51
- dbw $07, $6F53
+ dbw $01, $6f51
+ dbw $07, $6f53
db $00
Dragonite1SlamEffectCommands:
- dbw $03, $6FA4
- dbw $09, $6F9C
+ dbw $03, $6fa4
+ dbw $09, $6f9c
db $00
MeowthCatPunchEffectCommands:
- dbw $04, $6FE0
+ dbw $04, $6fe0
db $00
DittoMorphEffectCommands:
- dbw $04, $6FF6
+ dbw $04, $6ff6
db $00
PidgeotSlicingWindEffectCommands:
- dbw $04, $70BF
+ dbw $04, $70bf
db $00
PidgeotGaleEffectCommands:
- dbw $03, $70D0
- dbw $04, $70D6
+ dbw $03, $70d0
+ dbw $04, $70d6
db $00
JigglypuffFriendshipSongEffectCommands:
- dbw $01, $710D
+ dbw $01, $710d
dbw $04, $7119
db $00
@@ -1411,7 +1411,7 @@ GrassEnergyEffectCommands:
SuperPotionEffectCommands:
dbw $01, $7159
dbw $02, $7167
- dbw $03, $71B5
+ dbw $03, $71b5
db $00
ImakuniEffectCommands:
@@ -1420,41 +1420,41 @@ ImakuniEffectCommands:
EnergyRemovalEffectCommands:
dbw $01, $7252
- dbw $02, $725F
+ dbw $02, $725f
dbw $03, $7273
- dbw $08, $726F
+ dbw $08, $726f
db $00
EnergyRetrievalEffectCommands:
- dbw $01, $728E
- dbw $02, $72A0
- dbw $03, $72F8
- dbw $05, $72B9
+ dbw $01, $728e
+ dbw $02, $72a0
+ dbw $03, $72f8
+ dbw $05, $72b9
db $00
EnergySearchEffectCommands:
- dbw $01, $731C
+ dbw $01, $731c
dbw $03, $7372
dbw $05, $7328
db $00
ProfessorOakEffectCommands:
- dbw $03, $73A1
+ dbw $03, $73a1
db $00
PotionEffectCommands:
- dbw $01, $73CA
- dbw $02, $73D1
- dbw $03, $73EF
+ dbw $01, $73ca
+ dbw $02, $73d1
+ dbw $03, $73ef
db $00
GamblerEffectCommands:
- dbw $03, $73F9
+ dbw $03, $73f9
db $00
ItemFinderEffectCommands:
- dbw $01, $743B
- dbw $02, $744A
+ dbw $01, $743b
+ dbw $02, $744a
dbw $03, $7463
db $00
@@ -1464,45 +1464,45 @@ DefenderEffectCommands:
db $00
MysteriousFossilEffectCommands:
- dbw $01, $74B3
- dbw $03, $74BF
+ dbw $01, $74b3
+ dbw $03, $74bf
db $00
FullHealEffectCommands:
- dbw $01, $74C5
- dbw $03, $74D1
+ dbw $01, $74c5
+ dbw $03, $74d1
db $00
ImposterProfessorOakEffectCommands:
- dbw $03, $74E1
+ dbw $03, $74e1
db $00
ComputerSearchEffectCommands:
dbw $01, $7513
- dbw $02, $752A
+ dbw $02, $752a
dbw $03, $7545
- dbw $05, $752E
+ dbw $05, $752e
db $00
ClefairyDollEffectCommands:
dbw $01, $7561
- dbw $03, $756D
+ dbw $03, $756d
db $00
MrFujiEffectCommands:
dbw $01, $7573
- dbw $02, $757E
- dbw $03, $758F
+ dbw $02, $757e
+ dbw $03, $758f
db $00
PlusPowerEffectCommands:
- dbw $03, $75E0
+ dbw $03, $75e0
db $00
SwitchEffectCommands:
- dbw $01, $75EE
- dbw $02, $75F9
- dbw $03, $760A
+ dbw $01, $75ee
+ dbw $02, $75f9
+ dbw $03, $760a
db $00
PokemonCenterEffectCommands:
@@ -1513,87 +1513,87 @@ PokemonCenterEffectCommands:
PokemonFluteEffectCommands:
dbw $01, $7659
dbw $02, $7672
- dbw $03, $768F
+ dbw $03, $768f
db $00
PokemonBreederEffectCommands:
- dbw $01, $76B3
- dbw $02, $76C1
- dbw $03, $76F4
+ dbw $01, $76b3
+ dbw $02, $76c1
+ dbw $03, $76f4
db $00
ScoopUpEffectCommands:
dbw $01, $7795
- dbw $02, $77A0
- dbw $03, $77C3
+ dbw $02, $77a0
+ dbw $03, $77c3
db $00
PokemonTraderEffectCommands:
dbw $01, $7826
dbw $02, $7838
- dbw $03, $788D
+ dbw $03, $788d
dbw $05, $7853
db $00
PokedexEffectCommands:
- dbw $01, $78E1
- dbw $03, $79AA
- dbw $05, $78ED
+ dbw $01, $78e1
+ dbw $03, $79aa
+ dbw $05, $78ed
db $00
BillEffectCommands:
- dbw $03, $79C4
+ dbw $03, $79c4
db $00
LassEffectCommands:
- dbw $03, $79E3
+ dbw $03, $79e3
db $00
MaintenanceEffectCommands:
- dbw $01, $7A70
- dbw $02, $7A7B
- dbw $03, $7A85
+ dbw $01, $7a70
+ dbw $02, $7a7b
+ dbw $03, $7a85
db $00
PokeBallEffectCommands:
- dbw $01, $7AAD
- dbw $03, $7B15
- dbw $05, $7AB9
+ dbw $01, $7aad
+ dbw $03, $7b15
+ dbw $05, $7ab9
db $00
RecycleEffectCommands:
- dbw $01, $7B36
- dbw $03, $7B68
- dbw $05, $7B41
+ dbw $01, $7b36
+ dbw $03, $7b68
+ dbw $05, $7b41
db $00
ReviveEffectCommands:
- dbw $01, $7B80
- dbw $02, $7B93
- dbw $03, $7BB0
+ dbw $01, $7b80
+ dbw $02, $7b93
+ dbw $03, $7bb0
db $00
DevolutionSprayEffectCommands:
- dbw $01, $7C0B
- dbw $02, $7C24
- dbw $03, $7C99
+ dbw $01, $7c0b
+ dbw $02, $7c24
+ dbw $03, $7c99
db $00
SuperEnergyRemovalEffectCommands:
- dbw $01, $7CD0
- dbw $02, $7CE4
- dbw $03, $7D73
+ dbw $01, $7cd0
+ dbw $02, $7ce4
+ dbw $03, $7d73
db $00
SuperEnergyRetrievalEffectCommands:
- dbw $01, $7DA4
- dbw $02, $7DB6
- dbw $03, $7DFA
- dbw $05, $7DBA
+ dbw $01, $7da4
+ dbw $02, $7db6
+ dbw $03, $7dfa
+ dbw $05, $7dba
db $00
GustofWindEffectCommands:
- dbw $01, $7E6E
- dbw $02, $7E79
- dbw $03, $7E90
+ dbw $01, $7e6e
+ dbw $02, $7e79
+ dbw $03, $7e90
db $00
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm
index 9ddc787..7752b08 100755
--- a/src/engine/bank1.asm
+++ b/src/engine/bank1.asm
@@ -74,7 +74,7 @@ StartDuel: ; 409f (1:409f)
ld a, h
ld [$cbe6], a
xor a
- ld [wBattleMenuSelection], a
+ ld [wCurrentDuelMenuItem], a
call $420b
ld a, [$cc18]
ld [$cc08], a
@@ -87,27 +87,27 @@ StartDuel: ; 409f (1:409f)
; the loop returns here after every turn switch
.mainDuelLoop
xor a
- ld [wBattleMenuSelection], a
- call $35e6
+ ld [wCurrentDuelMenuItem], a
+ call Func_35e6
call $54c8
call Func_4225
- call $0f58
- ld a, [wBattleFinished]
+ call Func_0f58
+ ld a, [wDuelFinished]
or a
- jr nz, .asm_4136
- call $35fa
+ jr nz, .duelIsOver
+ call Func_35fa
call $6baf
- call $3b31
- call $0f58
- ld a, [wBattleFinished]
+ call Func_3b31
+ call Func_0f58
+ ld a, [wDuelFinished]
or a
- jr nz, .asm_4136
+ jr nz, .duelIsOver
ld hl, $cc06
inc [hl]
ld a, [$cc09]
cp $80
jr z, .asm_4126
-
+
.asm_4121
call GetOpposingTurnDuelistVariable_SwapTurn
jr .mainDuelLoop
@@ -123,11 +123,11 @@ StartDuel: ; 409f (1:409f)
ld [$d0c3], a
ret
-.asm_4136
+.duelIsOver
call $5990
call Func_04a2
ld a, $3
- call $2167
+ call Func_2167
ld hl, $0076
call DrawWideTextBox_WaitForInput
call Func_04a2
@@ -139,11 +139,11 @@ StartDuel: ; 409f (1:409f)
call $4ad6
pop af
ldh [hWhoseTurn], a
- call $3b21
- ld a, [wBattleFinished]
- cp $1
+ call Func_3b21
+ ld a, [wDuelFinished]
+ cp DUEL_WON
jr z, .activeDuelistWonBattle
- cp $2
+ cp DUEL_LOST
jr z, .activeDuelistLostBattle
ld a, $5f
ld c, $1a
@@ -175,7 +175,7 @@ StartDuel: ; 409f (1:409f)
ld hl, $0079
.asm_4196
- call $3b6a
+ call Func_3b6a
ld a, c
call PlaySong
ld a, OPPONENT_TURN
@@ -187,12 +187,12 @@ StartDuel: ; 409f (1:409f)
call Func_378a
or a
jr nz, .asm_41a7
- ld a, [wBattleFinished]
- cp $3
+ ld a, [wDuelFinished]
+ cp DUEL_DRAW
jr z, .tiedBattle
call Func_39fc
call WaitForWideTextBoxInput
- call $3b31
+ call Func_3b31
call ResetSerial
ld a, PLAYER_TURN
ldh [hWhoseTurn], a
@@ -200,7 +200,7 @@ StartDuel: ; 409f (1:409f)
.tiedBattle
call WaitForWideTextBoxInput
- call $3b31
+ call Func_3b31
ld a, [wDuelTheme]
call PlaySong
ld hl, $007a
@@ -217,7 +217,7 @@ StartDuel: ; 409f (1:409f)
jp $40ee
.asm_41f3
- call $0f58
+ call Func_0f58
ld h, PLAYER_TURN
ld a, [wSerialOp]
cp $29
@@ -235,43 +235,43 @@ StartDuel: ; 409f (1:409f)
INCBIN "baserom.gbc",$420b,$4225 - $420b
Func_4225: ; 4225 (1:4225)
- ld a, $f1
+ ld a, DUELVARS_DUELIST_TYPE
call GetTurnDuelistVariable
- ld [$CC0D], a
+ ld [$cc0d], a
ld a, [$cc06]
cp a, $02
jr c, .asm_4237
call $70f6
-
+
.asm_4237
call $70e6
call $4933
- call $10cf
+ call DrawCardFromDeck
jr nc, .asm_4248
- ld a, $02
- ld [wBattleFinished], a
+ ld a, DUEL_LOST
+ ld [wDuelFinished], a
ret
.asm_4248
ldh [$ff98], a
- call $1123
+ call AddCardToHand
ld a, [$cc0d]
cp $00
jr z, Func_4262
call GetOpposingTurnDuelistVariable_SwapTurn
- call $34E2
+ call Func_34e2
call GetOpposingTurnDuelistVariable_SwapTurn
call c, $4b2c
jr Func_426d
-
+
Func_4262:
call $4b2c
- call $100b
-
+ call Func_100b
+
Func_4268:
ld a, $06
call $51e7
-
+
Func_426d:
call $4f9d
ld a, [$cc0d]
@@ -283,9 +283,9 @@ Func_426d:
ld [wVBlankCtr], a
ld [$cbf9], a
ld hl, $0088
- call $2a36
- call $2bbf
- ld a, $FF
+ call Func_2a36
+ call Func_2bbf
+ ld a, $ff
ld [$cc11], a
ld [$cc10], a
ret
@@ -294,13 +294,13 @@ Func_4295:
call DrawWideTextBox
ld hl, $54e9
call Func_2c08
- call $669D
- ld a, [wBattleFinished]
+ call $669d
+ ld a, [wDuelFinished]
or a
ret nz
- ld a, [wBattleMenuSelection]
- call $2710
-
+ ld a, [wCurrentDuelMenuItem]
+ call Func_2710
+
Func_42ac:
call DoFrame
ldh a, [hButtonsHeld]
@@ -317,7 +317,7 @@ Func_42ac:
jr nz, Func_4317
bit 3, a
jp nz, $4364
-
+
.asm_42cc
ldh a, [hButtonsPressed]
and a, $08
@@ -328,13 +328,13 @@ Func_42ac:
ld a, [$cbe7]
or a
jr nz, Func_42ac
- call $271a
+ call Func_271a
ld a, e
- ld [wBattleMenuSelection], a
+ ld [wCurrentDuelMenuItem], a
jr nc, Func_42ac
ldh a, [hCurrentMenuItem]
ld hl, BattleMenuFunctionTable
- jp JumpToFunctionInTable
+ jp JumpToFunctionInTable
BattleMenuFunctionTable: ; 42f1 (1:42f1)
dw OpenHandMenu
@@ -343,26 +343,26 @@ BattleMenuFunctionTable: ; 42f1 (1:42f1)
dw OpenPokemonPowerMenu
dw PlayerRetreat
dw PlayerEndTurn
-
+
INCBIN "baserom.gbc",$42fd, $430b - $42fd
-
+
Func_430b: ; 430b (1:430b)
call Func_4329
- jp $426d
-
+ jp Func_426d
+
Func_4311: ; 4311 (1:4311)
call Func_4333
- jp $426d
+ jp Func_426d
Func_4317: ; 4317 (1:4317)
call Func_4339
- jp c, $4295
- jp $426d
+ jp c, Func_4295
+ jp Func_426d
Func_4320: ; 4320 (1:4320)
call Func_4342
- jp c, $4295
- jp $426d
+ jp c, Func_4295
+ jp Func_426d
Func_4329: ; 4329 (1:4329)
call GetOpposingTurnDuelistVariable_SwapTurn
@@ -378,20 +378,16 @@ Func_4339: ; 4339 (1:4339)
call GetOpposingTurnDuelistVariable_SwapTurn
call $5550
jp GetOpposingTurnDuelistVariable_SwapTurn
-
+
Func_4342: ; 4342 (1:4342)
jp $5550
-
INCBIN "baserom.gbc",$4345, $438e - $4345
-
-
-
OpenPokemonPowerMenu: ; 438e (1:438e)
call $6431
jp c, Func_426d
- call $1730
+ call Func_1730
jp Func_426d
PlayerEndTurn: ; 439a (1:439a)
@@ -399,18 +395,18 @@ PlayerEndTurn: ; 439a (1:439a)
call $51e7
jp c, Func_4268
ld a, $05
- call $0f7f
+ call Func_0f7f
call $717a
- ret
-
+ ret
+
PlayerRetreat: ; 43ab (1:43ab)
- ld a, $f0
+ ld a, DUELVARS_ARENA_CARD_STATUS
call GetTurnDuelistVariable
and a,$0f
cp a, $01
ldh [$ffa0], a
jr nz, Func_43f1
- ld a, [$CC0C]
+ ld a, [$cc0c]
or a
jr nz, Func_43e8
call $45bb
@@ -425,7 +421,7 @@ PlayerRetreat: ; 43ab (1:43ab)
ld a, [wBenchSelectedPokemon]
ldh [$ffa1], a
ld a, $04
- call $0f7f
+ call Func_0f7f
call $657a
jr nc, Func_441c
call $4f9d
@@ -433,7 +429,7 @@ PlayerRetreat: ; 43ab (1:43ab)
Func_43e8: ; 43e8
ld hl, $003d
call DrawWideTextBox_WaitForInput
- jp $4295
+ jp Func_4295
Func_43f1: ; 43f1 (1:43f1)
call $45bb
@@ -451,7 +447,7 @@ Func_43f1: ; 43f1 (1:43f1)
pop af
jp c, Func_426d
ld a, $04
- call $0f7f
+ call Func_0f7f
call $657a
Func_441c: ; 441c (1:441c)
@@ -459,41 +455,41 @@ Func_441c: ; 441c (1:441c)
Func_441f: ; 441f (1:441f)
call DrawWideTextBox_WaitForInput
- jp $4295
-
+ jp Func_4295
+
OpenHandMenu: ; 4425 (1:4425)
- ld a, $ee
+ ld a, DUELVARS_NUMBER_OF_CARDS_IN_HAND
call GetTurnDuelistVariable
or a
jr nz, Func_4436
ld hl, $00a4
call DrawWideTextBox_WaitForInput
- jp $4295
-
+ jp Func_4295
+
Func_4436: ; 4436 (1:4436)
INCBIN "baserom.gbc",$4436, $4585 - $4436
OpenBattleCheckMenu: ; 4585 (1:4585)
- call $3b31
- call $3096
+ call Func_3b31
+ call Func_3096
jp Func_426d
INCBIN "baserom.gbc",$458e, $46fc - $458e
OpenBattleAttackMenu: ; 46fc (1:46fc)
- call $33c1
+ call Func_33c1
jr c, .asm_4706
call $4918
jr nc, .asm_470c
-
+
.asm_4706
call DrawWideTextBox_WaitForInput
- jp $4295
+ jp Func_4295
.asm_470c
xor a
- ld [wBattleSubMenuSelected], a
+ ld [wSelectedDuelSubMenuItem], a
Func_4710: ; 4710 (1:4710)
call $4823
@@ -501,20 +497,20 @@ Func_4710: ; 4710 (1:4710)
jr nz, Func_471f
ld hl, $003c
call DrawWideTextBox_WaitForInput
- jp $4295
+ jp Func_4295
Func_471f: ; 471f (1:471f)
push af
- ld a, [wBattleSubMenuSelected]
+ ld a, [wSelectedDuelSubMenuItem]
ld hl, $47e4
call InitializeCursorParameters
pop af
ld [wNumMenuItems], a
ldh a, [hWhoseTurn]
ld h, a
- ld l, $bb
+ ld l, DUELVARS_ARENA_CARD
ld a, [hl]
- call $1376
+ call Func_1376
.asm_4736
call DoFrame
ldh a, [hButtonsPressed]
@@ -523,8 +519,8 @@ Func_471f: ; 471f (1:471f)
call Func_264b
jr nc, .asm_4736
cp a, $ff
- jp z, $4295
- ld [wBattleSubMenuSelected], a
+ jp z, Func_4295
+ ld [wSelectedDuelSubMenuItem], a
call $488f
jr nc, Func_4759
ld hl, $00c0
@@ -541,25 +537,25 @@ Func_4759: ; 4759 (1:4759)
ld d, [hl]
inc hl
ld e, [hl]
- call $16c0
- call $33e1
+ call Func_16c0
+ call Func_33e1
jr c, Func_477d
ld a, $07
call $51e7
jp c, Func_4268
- call $1730
+ call Func_1730
jp c, Func_426d
ret
Func_477d: ; 477d (1:477d)
call DrawWideTextBox_WaitForInput
jr Func_4710
-
+
Func_4782: ; 4782 (1:4782)
call $478b
call $4f9d
jp Func_4710
-
+
INCBIN "baserom.gbc",$478b, $5aeb - $478b
@@ -599,7 +595,7 @@ INCBIN "baserom.gbc",$67b2,$7107 - $67b2
InitializeDuelVariables: ; 7107 (1:7107)
ldh a, [hWhoseTurn]
ld h, a
- ld l, wPlayerDuelistType & $ff
+ ld l, DUELVARS_DUELIST_TYPE
ld a, [hl]
push hl
push af
@@ -612,8 +608,8 @@ InitializeDuelVariables: ; 7107 (1:7107)
pop af
pop hl
ld [hl], a
- ld bc, DECK_SIZE ; lb bc, wPlayerCardLocations & $ff, DECK_SIZE
- ld l, wPlayerDeckCards & $ff
+ ld bc, DECK_SIZE ; lb bc, DUELVARS_CARD_LOCATIONS, DECK_SIZE
+ ld l, DUELVARS_DECK_CARDS
.initDuelVariablesLoop
; zero card locations and cards in hand, and init order of cards in deck
push hl
@@ -625,7 +621,7 @@ InitializeDuelVariables: ; 7107 (1:7107)
inc b
dec c
jr nz, .initDuelVariablesLoop
- ld l, wPlayerArenaCard & $ff
+ ld l, DUELVARS_ARENA_CARD
ld c, 1 + BENCH_SIZE + 1
.initPlayArea
; initialize to $ff card in arena as well as cards in bench (plus a terminator?)
diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm
index cdceeb1..87c0a51 100755
--- a/src/engine/bank3.asm
+++ b/src/engine/bank3.asm
@@ -1035,7 +1035,7 @@ PC_c7ea: ; c7ea (3:47ea)
call $4915
call DoFrameIfLCDEnabled
ld hl, $0352
- call $2c73
+ call Func_2c73
call $484e
.asm_c801
ld a, $1
diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm
index d6b42ee..5c50800 100755
--- a/src/engine/bank4.asm
+++ b/src/engine/bank4.asm
@@ -50,8 +50,8 @@ Medal_1029e: ; 1029e (4:429e)
cp $e0
jr nz, .asm_102e2
ld hl, $038b
- call $2c73
- call $3c96
+ call Func_2c73
+ call Func_3c96
call Func_37a0
pop af
ld [$d291], a
@@ -107,11 +107,11 @@ BoosterPack_1031b: ; 1031b (4:431b)
jr nz, .asm_10373
ld hl, $0388
.asm_10373
- call $2c73
- call $3c96
+ call Func_2c73
+ call Func_3c96
call Func_37a0
ld hl, $0389
- call $2c73
+ call Func_2c73
call DisableLCD
call Func_1288c
call Func_099c
@@ -182,8 +182,8 @@ Duel_Init: ; 103d3 (4:43d3)
ld bc, $2f1d
ld de, $1211
call Func_2a1a
- call $2a00 ; wait for the user to press a or b
- call $3c96
+ call Func_2a00 ; wait for the user to press a or b
+ call Func_3c96
call Func_10ab4 ; fade out
pop af
ld [$d291], a
@@ -1116,8 +1116,8 @@ Func_1344d: ; 1344d (4:744d)
ld a, MUSIC_MEDAL
call PlaySong
ld hl, $07e6
- call $2c73
- call $3c96
+ call Func_2c73
+ call Func_3c96
call Func_37a0
ret
; 0x13462
@@ -1138,8 +1138,8 @@ Func_13485: ; 13485 (4:7485)
ld a, MUSIC_MEDAL
call PlaySong
ld hl, $07e8
- call $2c73
- call $3c96
+ call Func_2c73
+ call Func_3c96
call Func_37a0
ret
; 0x134b1
diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm
index 5a3ca42..1617b6a 100755
--- a/src/engine/bank6.asm
+++ b/src/engine/bank6.asm
@@ -153,7 +153,7 @@ Func_1a61f: ; 1a61f (6:661f)
ld a, [hli]
ld h, [hl]
ld l, a
- bank1call $2ebb
+ bank1call Func_2ebb ; switch to bank 1, but call a home func
ld a, PLAYER_TURN
ldh [hWhoseTurn], a
pop hl
diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm
index 05a5838..8e52cef 100755
--- a/src/engine/bank7.asm
+++ b/src/engine/bank7.asm
@@ -293,13 +293,13 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
ld a, [$d633]
cp $ff
jr nz, .asm_1d6c8
- call $3c96
+ call Func_3c96
ld a, $8
farcallx $4, $6863
ld a, MUSIC_STOP
call PlaySong
farcall Func_10ab4
- call $3ca4
+ call Func_3ca4
call Set_WD_off
call $5758
call EnableLCD
diff --git a/src/engine/home.asm b/src/engine/home.asm
index bf26b1c..296ca2b 100755
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -332,9 +332,9 @@ SetupLCD: ; 030b (0:030b)
ld [rSCX], a
ld [rWY], a
ld [rWX], a
- ld [$cab0], a
- ld [$cab1], a
- ld [$cab2], a
+ ld [wcab0], a
+ ld [wcab1], a
+ ld [wcab2], a
ldh [hSCX], a
ldh [hSCY], a
ldh [hWX], a
@@ -615,7 +615,7 @@ Func_04a2: ; 04a2 (0:04a2)
call DisableLCD
call FillTileMap
xor a
- ld [$cac2], a
+ ld [wcac2], a
ld a, [wConsole]
cp CONSOLE_SGB
ret nz
@@ -717,7 +717,7 @@ DoAFrames: ; 0536 (0:0536)
ret
; updates background, sprites and other game variables, halts until vblank, and reads user input
-; if $cad5 is not 0, the game can be paused (and resumed) by pressing the select button
+; if wcad5 is not 0, the game can be paused (and resumed) by pressing the select button
DoFrame: ; 053f (0:053f)
push af
push hl
@@ -728,7 +728,7 @@ DoFrame: ; 053f (0:053f)
call WaitForVBlank
call ReadJoypad
call HandleDPadRepeat
- ld a, [$cad5]
+ ld a, [wcad5]
or a
jr z, .done
ldh a, [hButtonsPressed]
@@ -1362,7 +1362,7 @@ Func_08ef: ; 08ef (0:08ef)
ld [bc], a
ret
.asm_92a
- ld [$cade], a
+ ld [wcade], a
ld hl, $cada
bit 0, [hl]
jr nz, .asm_94a
@@ -1394,7 +1394,7 @@ INCBIN "baserom.gbc",$0950,$099c - $0950
Func_099c: ; 099c (0:099c)
xor a
- ld [$cab5], a
+ ld [wcab5], a
ld hl, $ca00
ld c, $28
xor a
@@ -1770,15 +1770,15 @@ SerialHandler: ; 0d26 (0:0d26)
push hl
push de
push bc
- ld a, [$ce63] ;
+ ld a, [wce63] ;
or a ;
- jr z, .asm_d35 ; if [$ce63] nonzero:
+ jr z, .asm_d35 ; if [wce63] nonzero:
call Func_3189 ; ?
jr .done ; return
.asm_d35
ld a, [wSerialOp] ;
or a ;
- jr z, .asm_d55 ; skip ahead if [$cb74] zero
+ jr z, .asm_d55 ; skip ahead if [wcb74] zero
; send/receive a byte
ld a, [rSB]
call SerialHandleRecv
@@ -1793,7 +1793,7 @@ SerialHandler: ; 0d26 (0:0d26)
ld [rSB], a ; prepare sending byte (from Func_0dc8?)
ld a, [wSerialOp]
cp $29
- jr z, .done ; if [$cb74] != $29, use external clock
+ jr z, .done ; if [wcb74] != $29, use external clock
jr .asm_d6a ; and prepare for next byte. either way, return
.asm_d55
ld a, $1
@@ -1803,7 +1803,7 @@ SerialHandler: ; 0d26 (0:0d26)
ld a, $ac
ld [rSB], a
ld a, [wSerialRecvBuf]
- cp $12 ; if [$cba5] != $12, use external clock
+ cp $12 ; if [wSerialRecvBuf] != $12, use external clock
jr z, .done ; and prepare for next byte. either way, return
.asm_d6a
ld a, $80 ;
@@ -1851,7 +1851,7 @@ SerialHandleRecv: ; 0d77 (0:0d77)
push af
ld a, [wSerialRecvIndex]
ld e, a
- ld a, [$cba3]
+ ld a, [wcba3]
dec a
and $1f
cp e
@@ -1866,7 +1866,7 @@ SerialHandleRecv: ; 0d77 (0:0d77)
ld a, e
inc a
and $1f
- ld [$cba4], a
+ ld [wSerialRecvIndex], a
; increment received bytes counter & clear flags
ld hl, wSerialRecvCounter
inc [hl]
@@ -1937,7 +1937,7 @@ Func_0e0a: ; 0e0a (0:0e0a)
push bc
push af
.asm_e0e
- ld a, [$cb80]
+ ld a, [wcb80]
ld e, a
ld a, [wSerialSendBufIndex]
dec a
@@ -1948,7 +1948,7 @@ Func_0e0a: ; 0e0a (0:0e0a)
ld a, e
inc a
and $1f
- ld [$cb80], a
+ ld [wcb80], a
ld hl, wSerialSendBuf
add hl, de
pop af
@@ -1983,7 +1983,7 @@ Func_0e39: ; 0e39 (0:0e39)
.asm_e49
push de
dec [hl]
- ld a, [$cba3]
+ ld a, [wcba3]
ld e, a
ld d, $0
ld hl, wSerialRecvBuf
@@ -1993,7 +1993,7 @@ Func_0e39: ; 0e39 (0:0e39)
ld a, e
inc a
and $1f
- ld [$cba3], a
+ ld [wcba3], a
pop af
pop de
pop hl
@@ -2070,9 +2070,142 @@ ClearSerialData: ; 0eb1 (0:0eb1)
or b
jr nz, .loop
ret
-; 0xebf
-INCBIN "baserom.gbc",$0ebf,$1072 - $0ebf
+Func_0ebf: ; 0ebf (0:0ebf)
+ push bc
+.asm_ec0
+ ld a, [hli]
+ call Func_0e0a
+ ld a, [wSerialFlags]
+ or a
+ jr nz, .asm_ed2
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_ec0
+ pop bc
+ or a
+ ret
+.asm_ed2
+ pop bc
+ scf
+ ret
+; 0xed5
+
+INCBIN "baserom.gbc",$0ed5,$0f35 - $0ed5
+
+Func_0f35: ; 0f35 (0:0f35)
+ ld a, [wSerialFlags]
+ ld l, a
+ ld h, $0
+ call Func_2ec4
+ ld hl, $0055
+ call DrawWideTextBox_WaitForInput
+ ld a, $ff
+ ld [wd0c3], a
+ ld hl, $cbe5
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld sp, hl
+ xor a
+ call PlaySong
+ call ResetSerial
+ ret
+
+Func_0f58: ; 0f58 (0:0f58)
+ ld a, [wcc09]
+ cp $1
+ jr z, .asm_f60
+ ret
+.asm_f60
+ ld a, DUELVARS_DUELIST_TYPE
+ call GetTurnDuelistVariable
+ or a
+ jr z, .asm_f70
+ ld hl, $cbe2
+ ld de, wRNG1
+ jr .asm_f76
+.asm_f70
+ ld hl, wRNG1
+ ld de, $cbe2
+.asm_f76
+ ld c, $3
+ call Func_0e63
+ jp c, Func_0f35
+ ret
+
+Func_0f7f: ; 0f7f (0:0f7f)
+ push hl
+ push bc
+ ld [$ff9e], a
+ ld a, $f1
+ call GetOpposingTurnDuelistVariable
+ cp $1
+ jr nz, .asm_f98
+ ld hl, $ff9e
+ ld bc, $000a
+ call Func_0ebf
+ call Func_0f58
+.asm_f98
+ pop bc
+ pop hl
+ ret
+; 0xf9b
+
+INCBIN "baserom.gbc",$0f9b,$100b - $0f9b
+
+Func_100b: ; 100b (0:100b)
+ ld a, $2
+ call BankswitchRAM
+ call $669d
+ xor a
+ call BankswitchRAM
+ call EnableExtRAM
+ ld hl, $a008
+ ld a, [hl]
+ inc [hl]
+ call DisableExtRAM
+ and $3
+ add $28
+ ld l, $0
+ ld h, a
+ add hl, hl
+ add hl, hl
+ ld a, $3
+ call BankswitchRAM
+ push hl
+ ld a, DUELVARS_ARENA_CARD
+ call GetTurnDuelistVariable
+ call Func_1324
+ ld a, e
+ ld [wccc3], a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ ld a, DUELVARS_ARENA_CARD
+ call GetTurnDuelistVariable
+ call Func_1324
+ ld a, e
+ ld [wccc4], a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ pop hl
+ push hl
+ call EnableExtRAM
+ ld a, [wcc06]
+ ld [hli], a
+ ld a, [wccc4]
+ ld [hli], a
+ ld a, [wccc3]
+ ld [hli], a
+ pop hl
+ ld de, $0010
+ add hl, de
+ ld e, l
+ ld d, h
+ call DisableExtRAM
+ bank1call $66a4
+ xor a
+ call BankswitchRAM
+ ret
; copies the deck pointed to by de to wPlayerDeck or wOpponentDeck
CopyDeckData: ; 1072 (0:1072)
@@ -2131,22 +2264,21 @@ ShuffleDeck: ; 10bc (0:10bc)
ld h, a
ld d, a
ld a, DECK_SIZE
- ld l, wPlayerNumberOfCardsNotInDeck & $ff
+ ld l, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK
sub [hl]
ld b, a
- ld a, wPlayerDeckCards & $ff
+ ld a, DUELVARS_DECK_CARDS
add [hl]
ld l, a ; hl = position in the wPlayerDeckCards or wOpponentDeckCards array of the first (top) card in the deck
ld a, b ; a = number of cards in the deck
call ShuffleCards
ret
-; 0x10cf
; draw a card from the deck, saving its location as $40
; returns c if deck is empty, nc if a card was succesfully drawn
DrawCardFromDeck: ; 10cf (0:10cf)
push hl
- ld a, wPlayerNumberOfCardsNotInDeck & $ff
+ ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK
call GetTurnDuelistVariable
cp DECK_SIZE
jr nc, .emptyDeck
@@ -2154,7 +2286,7 @@ DrawCardFromDeck: ; 10cf (0:10cf)
inc a
ld [hl], a
; point to top card in the deck
- add (wPlayerDeckCards - 1) & $ff
+ add DUELVARS_DECK_CARDS - 1
ld l, a
; grab card number (0-59) from wPlayerDeckCards or wOpponentDeckCards array
ld a, [hl]
@@ -2186,10 +2318,10 @@ AddCardToHand: ; 1123 (0:1123)
; write $1 (hand) into the location of this card
ld [hl], $1
; increment number of cards in hand
- ld l, wPlayerNumberOfCardsInHand & $ff
+ ld l, DUELVARS_NUMBER_OF_CARDS_IN_HAND
inc [hl]
; add card to hand
- ld a, (wPlayerHand - 1) & $ff
+ ld a, DUELVARS_HAND - 1
add [hl]
ld l, a
ld [hl], e
@@ -2241,7 +2373,94 @@ ShuffleCards: ; 127f (0:127f)
ret
; 0x12a3
-INCBIN "baserom.gbc",$12a3,$160b - $12a3
+INCBIN "baserom.gbc",$12a3,$1324 - $12a3
+
+Func_1324: ; 1324 (0:1324)
+ push af
+ push hl
+ call Func_1362
+ ld e, a
+ ld d, $0
+ pop hl
+ pop af
+ ret
+; 0x132f
+
+INCBIN "baserom.gbc",$132f,$1362 - $132f
+
+Func_1362: ; 1362 (0:1362)
+ push de
+ ld e, a
+ ld d, $0
+ ld hl, wPlayerDeck
+ ld a, [$ff97]
+ cp $c2
+ jr z, .asm_1372
+ ld hl, wOpponentDeck
+.asm_1372
+ add hl, de
+ ld a, [hl]
+ pop de
+ ret
+
+Func_1376: ; 1376 (0:1376)
+ push hl
+ push de
+ push bc
+ push af
+ call Func_1324
+ call LoadCardDataToRAM
+ pop af
+ ld hl, wCardBuffer1
+ bank1call $6d84
+ ld a, e
+ pop bc
+ pop de
+ pop hl
+ ret
+
+Func_138c: ; 138c (0:138c)
+ push hl
+ push de
+ push bc
+ push af
+ call Func_1324
+ call Func_2f0a
+ pop af
+ ld hl, wCardBuffer2
+ bank1call $6d84
+ ld a, e
+ pop bc
+ pop de
+ pop hl
+ ret
+; 0x13a2
+
+INCBIN "baserom.gbc",$13a2,$15ef - $13a2
+
+Func_15ef: ; 15ef (0:15ef)
+ push bc
+ ld l, $0
+ ld c, $0
+.asm_15f4
+ ld a, [hl]
+ cp b
+ jr nz, .asm_1602
+ ld a, l
+ push hl
+ call Func_1362
+ cp e
+ pop hl
+ jr nz, .asm_1602
+ inc c
+.asm_1602
+ inc l
+ ld a, l
+ cp $3c
+ jr c, .asm_15f4
+ ld a, c
+ pop bc
+ ret
; returns [[hWhoseTurn] << 8 + a] in a
; i.e. variable a of the player whose turn it is
@@ -2266,7 +2485,616 @@ GetOpposingTurnDuelistVariable: ; 1611 (0:1611)
ret
; 0x161e
-INCBIN "baserom.gbc",$161e,$1c72 - $161e
+INCBIN "baserom.gbc",$161e,$16c0 - $161e
+
+Func_16c0: ; 16c0 (0:16c0)
+ ld a, e
+ ld [wccc6], a
+ ld a, d
+ ld [$ff9f], a
+ call Func_1376
+ ld a, [$cc2b]
+ ld [wccc2], a
+ ld hl, $cc30
+ dec e
+ jr nz, .asm_16d9
+ ld hl, $cc43
+.asm_16d9
+ ld de, $cca6
+ ld c, $13
+.asm_16de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_16de
+ ld a, [wccb0]
+ ld hl, $ccb9
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ld [wccc7], a
+ ld hl, $ccbf
+ ld [hli], a
+ ld [hl], a
+ ret
+
+Func_16f6: ; 16f6 (0:16f6)
+ ld a, $bb
+ call GetTurnDuelistVariable
+ ld [$ff9f], a
+ call Func_1324
+ ld a, e
+ ld [wccc3], a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ ld a, $bb
+ call GetTurnDuelistVariable
+ call Func_1324
+ ld a, e
+ ld [wccc4], a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ xor a
+ ld [wccec], a
+ ld [wcccd], a
+ ld [wcced], a
+ ld [wcce6], a
+ ld [wccef], a
+ ld [wccf0], a
+ ld [wccf1], a
+ bank1call $7189
+ ret
+
+Func_1730: ; 1730 (0:1730)
+ ld a, [wccc6]
+ ld [wcc10], a
+ ld a, [$ff9f]
+ ld [wcc11], a
+ ld a, [wccc2]
+ ld [wcc12], a
+ ld a, [wccb1]
+ cp $4
+ jp z, Func_184b
+ call Func_16f6
+ ld a, $1
+ call TryExecuteEffectCommandFunction
+ jp c, Func_181e
+ call Func_3414
+ jr c, .asm_1766
+ ld a, $2
+ call TryExecuteEffectCommandFunction
+ jp c, Func_1821
+ call Func_1874
+ jr .asm_1777
+.asm_1766
+ call Func_1874
+ call Func_3400
+ jp c, Func_1823
+ ld a, $2
+ call TryExecuteEffectCommandFunction
+ jp c, Func_1821
+.asm_1777
+ ld a, $9
+ call Func_0f7f
+ ld a, $6
+ call TryExecuteEffectCommandFunction
+ call Func_18d7
+ jp c, Func_1828
+ call Func_1b8d
+ call WaitForWideTextBoxInput
+ call Func_0f58
+ ld a, $5
+ call TryExecuteEffectCommandFunction
+ ld a, $a
+ call Func_0f7f
+ call $7415
+ ld a, [wccb1]
+ and $80
+ jr nz, .asm_17ad
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ call Func_3432
+ call GetOpposingTurnDuelistVariable_SwapTurn
+.asm_17ad
+ xor a
+ ld [$ff9d], a
+ ld a, $3
+ call TryExecuteEffectCommandFunction
+ call Func_1994
+ call Func_189d
+ ld hl, $ccbf
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld b, $0
+ ld a, [wccc1]
+ ld c, a
+ ld a, $c8
+ call GetOpposingTurnDuelistVariable
+ push de
+ push hl
+ call $7494
+ call $741a
+ call $7484
+ pop hl
+ pop de
+ call Func_1a96
+ ld a, [wcac2]
+ cp $1
+ jr nz, .asm_17e8
+ push hl
+ bank1call $503a
+ pop hl
+.asm_17e8
+ call Func_1ad0
+ jr Func_17fb
+
+Func_17ed: ; 17ed (0:17ed)
+ call DrawWideTextBox_WaitForInput
+ xor a
+ ld hl, $ccb9
+ ld [hli], a
+ ld [hl], a
+ ld a, $1
+ ld [wccc7], a
+Func_17fb: ; 17fb (0:17fb)
+ ld a, [wccc4]
+ push af
+ ld a, $4
+ call TryExecuteEffectCommandFunction
+ pop af
+ ld [wccc4], a
+ call Func_367b
+ bank1call $6df1
+ call Func_1bb4
+ bank1call $7195
+ call $6e49
+ or a
+ ret
+
+Func_1819: ; 1819 (0:1819)
+ push hl
+ call $6510
+ pop hl
+
+Func_181e: ; 181e (0:181e)
+ call DrawWideTextBox_WaitForInput
+
+Func_1821: ; 1821 (0:1821)
+ scf
+ ret
+
+Func_1823: ; 1823 (0:1823)
+ bank1call $717a
+ or a
+ ret
+
+Func_1828: ; 1828 (0:1828)
+ bank1call $4f9d
+ ld a, $1
+ ld [wcce6], a
+ ld hl, $004f
+ call DrawWideTextBox_PrintText
+ ld a, $75
+ ld [wccb8], a
+ ld a, $14
+ call Func_195c
+ call Func_1bb4
+ call $6e49
+ bank1call $717a
+ or a
+ ret
+
+Func_184b: ; 184b (0:184b)
+ call $7415
+ ld a, $2
+ call TryExecuteEffectCommandFunction
+ jr c, Func_1819
+ ld a, $5
+ call TryExecuteEffectCommandFunction
+ jr c, Func_1821
+ ld a, $c
+ call Func_0f7f
+ call Func_0f58
+ ld a, $d
+ call Func_0f7f
+ ld a, $3
+ call TryExecuteEffectCommandFunction
+ ld a, $16
+ call Func_0f7f
+ ret
+
+Func_1874: ; 1874 (0:1874)
+ ld a, [wccec]
+ or a
+ ret nz
+ ld a, [$ffa0]
+ push af
+ ld a, [$ff9f]
+ push af
+ ld a, $1
+ ld [wccec], a
+ ld a, [wcc11]
+ ld [$ff9f], a
+ ld a, [wcc10]
+ ld [$ffa0], a
+ ld a, $8
+ call Func_0f7f
+ call Func_0f58
+ pop af
+ ld [$ff9f], a
+ pop af
+ ld [$ffa0], a
+ ret
+
+Func_189d: ; 189d (0:189d)
+ ld a, [wccb1]
+ bit 7, a
+ ret nz
+ ld a, [wccc7]
+ or a
+ ret nz
+ ld a, e
+ or d
+ jr nz, .asm_18b9
+ ld a, $e8
+ call GetOpposingTurnDuelistVariable
+ or a
+ jr nz, .asm_18b9
+ ld a, [wcccd]
+ or a
+ ret z
+.asm_18b9
+ push de
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ xor a
+ ld [wcceb], a
+ call Func_348a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ pop de
+ ret nc
+ bank1call $4f9d
+ ld a, $e8
+ call GetOpposingTurnDuelistVariable
+ ld [hl], $0
+ ld de, $0000
+ ret
+
+Func_18d7: ; 18d7 (0:18d7)
+ xor a
+ ld [wccc9], a
+ ld a, $f0
+ call GetTurnDuelistVariable
+ and $f
+ cp $1
+ jr z, .asm_18e8
+ or a
+ ret
+.asm_18e8
+ ld de, $00f7
+ call Func_307d
+ jr c, .asm_18f7
+ ld a, $1
+ ld [wccc9], a
+ scf
+ ret
+.asm_18f7
+ or a
+ ret
+; 0x18f9
+
+INCBIN "baserom.gbc",$18f9,$195c - $18f9
+
+Func_195c: ; 195c (0:195c)
+ ld hl, $ccb9
+ ld [hli], a
+ ld [hl], $0
+ ld a, [wccc7]
+ push af
+ xor a
+ ld [wccc7], a
+ bank1call $7415
+ ld a, [wccc4]
+ push af
+ ld a, [wccc3]
+ ld [wccc4], a
+ bank1call Func_1a22 ; switch to bank 1, but call a home func
+ ld a, [wccc1]
+ ld c, a
+ ld b, $0
+ ld a, $c8
+ call GetTurnDuelistVariable
+ bank1call $7469
+ call Func_1ad0
+ pop af
+ ld [wccc4], a
+ pop af
+ ld [wccc7], a
+ ret
+
+Func_1994: ; 1994 (0:1994)
+ xor a
+ ld [wccc1], a
+ ld hl, $ccb9
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_19a3
+ ld de, $0000
+ ret
+.asm_19a3
+ xor a
+ ld [$ff9d], a
+ ld d, [hl]
+ dec hl
+ ld e, [hl]
+ bit 7, d
+ jr z, .asm_19b8
+ res 7, d
+ xor a
+ ld [wccc1], a
+ call Func_321d
+ jr .asm_19f3
+.asm_19b8
+ call Func_321d
+ ld a, e
+ or d
+ ret z
+ ld a, [$ff9d]
+ call Func_36f7
+ call Func_1a0e
+ ld b, a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ call Func_3730
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ and b
+ jr z, .asm_19dc
+ sla e
+ rl d
+ ld hl, $ccc1
+ set 1, [hl]
+.asm_19dc
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ call Func_374a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ and b
+ jr z, .asm_19f3
+ ld hl, $ffe2
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $ccc1
+ set 2, [hl]
+.asm_19f3
+ ld b, $10
+ call Func_1a69
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ ld b, $10
+ call Func_1a7e
+ call Func_3244
+ bit 7, d
+ jr z, .asm_1a0a
+ ld de, $0000
+.asm_1a0a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ ret
+
+Func_1a0e: ; 1a0e (0:1a0e)
+ push hl
+ add $1a
+ ld l, a
+ ld a, $1a
+ adc $0
+ ld h, a
+ ld a, [hl]
+ pop hl
+ ret
+; 0x1a1a
+
+INCBIN "baserom.gbc",$1a1a,$1a22 - $1a1a
+
+Func_1a22: ; 1a22 (0:1a22)
+ xor a
+ ld [wccc1], a
+ ld hl, $ccb9
+ ld a, [hli]
+ or [hl]
+ or a
+ jr z, .asm_1a65
+ ld d, [hl]
+ dec hl
+ ld e, [hl]
+ call Func_36f6
+ call Func_1a0e
+ ld b, a
+ call Func_3730
+ and b
+ jr z, .asm_1a47
+ sla e
+ rl d
+ ld hl, $ccc1
+ set 1, [hl]
+.asm_1a47
+ call Func_374a
+ and b
+ jr z, .asm_1a58
+ ld hl, $ffe2
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $ccc1
+ set 2, [hl]
+.asm_1a58
+ ld b, $10
+ call Func_1a69
+ ld b, $10
+ call Func_1a7e
+ bit 7, d
+ ret z
+.asm_1a65
+ ld de, $0000
+ ret
+
+Func_1a69: ; 1a69 (0:1a69)
+ push de
+ call GetTurnDuelistVariable
+ ld de, $00d8
+ call Func_15ef
+ ld l, a
+ ld h, $a
+ call HtimesL
+ pop de
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+
+Func_1a7e: ; 1a7e (0:1a7e)
+ push de
+ call GetTurnDuelistVariable
+ ld de, $00d9
+ call Func_15ef
+ ld l, a
+ ld h, $14
+ call HtimesL
+ pop de
+ ld a, e
+ sub l
+ ld e, a
+ ld a, d
+ sbc h
+ ld d, a
+ ret
+
+Func_1a96: ; 1a96 (0:1a96)
+ push hl
+ push de
+ ld a, [hl]
+ sub e
+ ld [hl], a
+ ld a, $0
+ sbc d
+ and $80
+ jr z, .asm_1aa4
+ ld [hl], $0
+.asm_1aa4
+ ld a, [hl]
+ or a
+ jr z, .asm_1aa9
+ scf
+.asm_1aa9
+ pop de
+ pop hl
+ ret
+
+Func_1aac: ; 1aac (0:1aac)
+ ld e, a
+ add $c8
+ call GetTurnDuelistVariable
+ or a
+ ret nz
+ ld a, [wccc4]
+ push af
+ ld a, e
+ add $bb
+ call GetTurnDuelistVariable
+ call Func_1376
+ ld a, [wCardBuffer1 + $7]
+ ld [wccc4], a
+ call Func_1ad3
+ pop af
+ ld [wccc4], a
+ scf
+ ret
+
+Func_1ad0: ; 1ad0 (0:1ad0)
+ ld a, [hl]
+ or a
+ ret nz
+Func_1ad3: ; 1ad3 (0:1ad3)
+ ld a, [wccc4]
+ ld e, a
+ call LoadCardDataToRAM
+ ld hl, $cc27
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Func_2ebb
+ ld hl, $0081
+ call DrawWideTextBox_PrintText
+ ld a, $28
+.asm_1aeb
+ call DoFrame
+ dec a
+ jr nz, .asm_1aeb
+ scf
+ ret
+; 0x1af3
+
+INCBIN "baserom.gbc",$1af3,$1b8d - $1af3
+
+Func_1b8d: ; 1b8d (0:1b8d)
+ bank1call $4f9d
+ ld a, $bb
+ call GetTurnDuelistVariable
+ call Func_1376
+ ld a, $12
+ call Func_29f5
+ ld [hl], $0
+ ld hl, $ce3f
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld a, [wccaa]
+ ld [hli], a
+ ld a, [wccab]
+ ld [hli], a
+ ld hl, $0035
+ call DrawWideTextBox_PrintText
+ ret
+
+Func_1bb4: ; 1bb4 (0:1bb4)
+ call Func_3b31
+ bank1call $4f9d
+ call $503a
+ xor a
+ ld [$ff9d], a
+ call Func_1bca
+ call WaitForWideTextBoxInput
+ call Func_0f58
+ ret
+
+Func_1bca: ; 1bca (0:1bca)
+ ld a, [wcced]
+ or a
+ ret z
+ cp $1
+ jr z, .asm_1bfd
+ ld a, [$ff9d]
+ add $bb
+ call GetTurnDuelistVariable
+ call Func_1376
+ ld a, $12
+ call Func_29f5
+ ld [hl], $0
+ ld hl, $0000
+ call Func_2ebb
+ ld hl, $ccaa
+ ld de, $ce41
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld hl, $014a
+ call DrawWideTextBox_PrintText
+ scf
+ ret
+.asm_1bfd
+ call $700a
+ call DrawWideTextBox_PrintText
+ scf
+ ret
+; 0x1c05
+
+INCBIN "baserom.gbc",$1c05,$1c72 - $1c05
; returns [([hWhoseTurn] ^ $1) << 8 + a] in a
; i.e. variable a of the player whose turn it is not
@@ -2318,7 +3146,7 @@ INCBIN "baserom.gbc",$1caa,$1dca - $1caa
; memcpy(HL, DE, C)
Memcpy: ; 1dca (0:1dca)
- ld a, [$cabb] ;
+ ld a, [wLCDC] ;
bit 7, a ;
jr nz, .asm_1dd8 ; assert that LCD is on
.asm_1dd1
@@ -2368,7 +3196,6 @@ AdjustCoordinatesForWindow: ; 1deb (0:1deb)
ld e, a
pop af
ret
-; 0x1e00
; Draws a bxc text box at de printing a name in the left side of the top border.
; The name's text offset must be at hl when this function is called.
@@ -2616,7 +3443,7 @@ ColorizeTextBoxSGB
and $80
jr z, .asm_1f48
ld a, $2
- ld [$cae2], a
+ ld [wcae2], a
.asm_1f48
ld hl, $cae0
call SendSGB
@@ -2744,7 +3571,27 @@ asm_2121
ret
; 0x212f
-INCBIN "baserom.gbc",$212f,$21c5 - $212f
+INCBIN "baserom.gbc",$212f,$2167 - $212f
+
+Func_2167: ; 2167 (0:2167)
+ ld l, a
+ ld h, $a0
+ call HtimesL
+ add hl, hl
+ add hl, hl
+ ld de, $4318
+ add hl, de
+ ld de, $8a00
+ ld b, $28
+ call asm_2121
+ ld a, $a0
+ ld hl, $010a
+ ld bc, $0a04
+ ld de, $0504
+ jp Func_1f5f
+; 0x2189
+
+INCBIN "baserom.gbc",$2189,$21c5 - $2189
Func_21c5: ; 21c5 (0:21c5)
push de
@@ -2796,12 +3643,12 @@ Func_21f2: ; 21f2 (0:21f2)
ret
.asm_220f
ld a, $1
- ld [$cd0a], a
+ ld [wcd0a], a
ret
.asm_2215
call Func_230f
xor a
- ld [$cd0a], a
+ ld [wcd0a], a
ld a, $f
ldh [hffaf], a
ret
@@ -2810,13 +3657,13 @@ Func_21f2: ; 21f2 (0:21f2)
xor a
ret
.asm_2225
- ld a, [$cd0a]
+ ld a, [wcd0a]
push af
ld a, $1
- ld [$cd0a], a
+ ld [wcd0a], a
call Func_230f
pop af
- ld [$cd0a], a
+ ld [wcd0a], a
ldh a, [$ffb0]
or a
jr nz, .asm_2240
@@ -2838,7 +3685,7 @@ Func_21f2: ; 21f2 (0:21f2)
ret
.asm_224d
call Func_230f
- ld a, [$cd08]
+ ld a, [wcd08]
or a
call z, .asm_2257
.asm_2257
@@ -2854,16 +3701,16 @@ Func_21f2: ; 21f2 (0:21f2)
ldh a, [$ffab]
adc $0
ldh [$ffab], a
- ld a, [$cd09]
+ ld a, [wcd09]
inc a
- ld [$cd09], a
+ ld [wcd09], a
xor a
ret
Func_2275: ; 2275 (0:2275)
ld a, d
dec a
- ld [$cd04], a
+ ld [wcd04], a
ld a, e
ldh [$ffa8], a
call Func_2298
@@ -2871,9 +3718,9 @@ Func_2275: ; 2275 (0:2275)
ldh [$ffb0], a
ldh [$ffa9], a
ld a, $88
- ld [$cd06], a
+ ld [wcd06], a
ld a, $80
- ld [$cd07], a
+ ld [wcd07], a
ld hl, $c600
.asm_2292
xor a
@@ -2884,9 +3731,9 @@ Func_2275: ; 2275 (0:2275)
Func_2298: ; 2298 (0:2298)
xor a
- ld [$cd0a], a
+ ld [wcd0a], a
ldh [$ffac], a
- ld [$cd0b], a
+ ld [wcd0b], a
ld a, $f
ldh [hffaf], a
ret
@@ -2904,7 +3751,7 @@ Func_22ae: ; 22ae (0:22ae)
ldh [$ffad], a
xor a
ldh [$ffae], a
- ld [$cd09], a
+ ld [wcd09], a
call CalculateBGMap0Address
ld a, l
ldh [$ffaa], a
@@ -2912,7 +3759,7 @@ Func_22ae: ; 22ae (0:22ae)
ldh [$ffab], a
call Func_2298
xor a
- ld [$cd0b], a
+ ld [wcd0b], a
pop hl
ret
@@ -2944,7 +3791,7 @@ Func_22ca: ; 22ca (0:22ca)
jr .asm_22e9
Func_22f2: ; 22f2 (0:22f2)
- ld [$cd05], a
+ ld [wcd05], a
ld hl, $ffaa
ld e, [hl]
inc hl
@@ -2964,10 +3811,10 @@ Func_22f2: ; 22f2 (0:22f2)
ret
Func_230f: ; 230f (0:230f)
- ld a, [$cd0a]
+ ld a, [wcd0a]
or a
ret z
- ld a, [$cd0b]
+ ld a, [wcd0b]
or a
ret z
push hl
@@ -3028,22 +3875,22 @@ Func_2325: ; 2325 (0:2325)
; search linked-list for letters e/d (regisers), if found hoist the result to
; head of list and return it. carry flag denotes success.
Func_235e: ; 235e (0:235e)
- ld a, [$cd0a] ;
+ ld a, [wcd0a] ;
or a ;
- jr z, .asm_2376 ; if [$cd0a] nonzero:
+ jr z, .asm_2376 ; if [wcd0a] nonzero:
call Uppercase ; uppercase e
- ld a, [$cd0b]
+ ld a, [wcd0b]
ld d, a
or a
- jr nz, .asm_2376 ; if [$cd0b] is zero:
+ jr nz, .asm_2376 ; if [wcd0b] is zero:
ld a, e ;
- ld [$cd0b], a ; [$cd0b] ← e
+ ld [wcd0b], a ; [wcd0b] ← e
ld a, $1 ;
or a ; return a = 1
ret
.asm_2376
xor a
- ld [$cd0b], a ; [$cd0b] ← 0
+ ld [wcd0b], a ; [wcd0b] ← 0
ldh a, [$ffa9]
ld l, a ; l ← [$ffa9]; index to to linked-list head
.asm_237d
@@ -3115,7 +3962,7 @@ Func_23c1: ; 23c1 (0:23c1)
ret
.asm_23cf
xor a
- ld [$cd0a], a
+ ld [wcd0a], a
Func_23d3: ; 23d3 (0:23d3)
push hl
push de
@@ -3212,7 +4059,7 @@ Func_24ac: ; 24ac (0:24ac)
push hl
push de
push bc
- ld a, [$cd0a]
+ ld a, [wcd0a]
or a
jr nz, .asm_24bf
call Func_2510
@@ -3292,7 +4139,7 @@ Func_2518: ; 2518 (0:2518)
add hl, hl
add hl, hl
add hl, hl
- ld a, [$cd06]
+ ld a, [wcd06]
ld b, a
ld c, $0
add hl, bc
@@ -3318,7 +4165,7 @@ Func_252e: ; 252e (0:252e)
ret
Func_2546: ; 2546 (0:2546)
- ld a, [$cd0a]
+ ld a, [wcd0a]
or a
jr nz, .asm_255f
ld a, e
@@ -3391,7 +4238,7 @@ InitializeCursorParameters: ; 2636 (0:2636)
Func_264b: ; 264b (0:264b)
xor a
- ld [$cd99], a
+ ld [wcd99], a
ldh a, [hButtonsPressed2]
or a
jr z, .asm_2685
@@ -3417,7 +4264,7 @@ Func_264b: ; 264b (0:264b)
.asm_2674
push af
ld a, $1
- ld [$cd99], a
+ ld [wcd99], a
call EraseCursor
pop af
ld [wCurMenuItem], a
@@ -3429,27 +4276,29 @@ Func_264b: ; 264b (0:264b)
ld hl, $cd17
ld a, [hli]
or [hl]
- jr z, .asm_26a9
+ jr z, asm_26a9
ld a, [hld]
ld l, [hl]
ld h, a
ldh a, [hCurrentMenuItem]
call CallHL
jr nc, HandleMenuInput
-.asm_269b
+asm_269b:
call Func_270b
+
+Func_269e: ; 269e (0:269e)
call Func_26c0
ld a, [wCurMenuItem]
ld e, a
ldh a, [hCurrentMenuItem]
scf
ret
-.asm_26a9
+asm_26a9:
ldh a, [hButtonsPressed]
and $3
jr z, HandleMenuInput
and $1
- jr nz, .asm_269b
+ jr nz, asm_269b
ld a, [wCurMenuItem]
ld e, a
ld a, $ff
@@ -3472,8 +4321,8 @@ Func_26c0: ; 26c0 (0:26c0)
pop af
ret
-HandleMenuInput: ; 2d61 (0:2d61)
- ld a, [$cd99]
+HandleMenuInput: ; 26d1 (0:26d1)
+ ld a, [wcd99]
or a
jr z, HandleTextBoxInput
call Func_3796
@@ -3487,10 +4336,10 @@ HandleTextBoxInput: ; 26da (0:26da)
ret nz
ld a, [wCursorTileNumber]
bit 4, [hl]
- jr z, drawCursor
+ jr z, DrawCursor
EraseCursor: ; 26e9 (0:26e9)
ld a, [wTileBehindCursor]
-drawCursor
+DrawCursor:
ld c, a
ld a, [wYDisplacementBetweenMenuItems]
ld l, a
@@ -3513,10 +4362,112 @@ drawCursor
Func_270b: ; 270b (0:270b)
ld a, [wCursorTileNumber]
- jr drawCursor
-; 0x2710
+ jr DrawCursor
-INCBIN "baserom.gbc",$2710,$2a1a - $2710
+Func_2710: ; 2710 (0:2710)
+ ld [wCurMenuItem], a
+ ld [$ffb1], a
+ xor a
+ ld [wCursorBlinkCounter], a
+ ret
+
+Func_271a: ; 271a (0:271a)
+ ld a, [$ff8f]
+ or a
+ jr z, .asm_2764
+ ld b, a
+ ld hl, wCurMenuItem
+ and $c0
+ jr z, .asm_272c
+ ld a, [hl]
+ xor $1
+ jr .asm_2748
+.asm_272c
+ bit 5, b
+ jr z, .asm_273b
+ ld a, [hl]
+ sub $2
+ jr nc, .asm_2748
+ and $1
+ add $4
+ jr .asm_2748
+.asm_273b
+ bit 4, b
+ jr z, .asm_275d
+ ld a, [hl]
+ add $2
+ cp $6
+ jr c, .asm_2748
+ and $1
+.asm_2748
+ push af
+ ld a, $1
+ call Func_3796
+ call .asm_2772
+ pop af
+ ld [wCurMenuItem], a
+ ld [$ffb1], a
+ xor a
+ ld [wCursorBlinkCounter], a
+ jr .asm_2764
+.asm_275d
+ ld a, [$ff8f]
+ and $1
+ jp nz, Func_269e
+.asm_2764
+ ld hl, wCursorBlinkCounter
+ ld a, [hl]
+ inc [hl]
+ and $f
+ ret nz
+ ld a, $f
+ bit 4, [hl]
+ jr z, .asm_2774
+.asm_2772
+ ld a, $0
+.asm_2774
+ ld e, a
+ ld a, [wCurMenuItem]
+ add a
+ ld c, a
+ ld b, $0
+ ld hl, $278d
+ add hl, bc
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ ld a, e
+ call Func_06c3
+ ld a, [wCurMenuItem]
+ ld e, a
+ or a
+ ret
+; 0x278d
+
+INCBIN "baserom.gbc",$278d,$29f5 - $278d
+
+Func_29f5: ; 29f5 (0:29f5)
+ farcallx $6, $4000
+ ret
+; 0x29fa
+
+INCBIN "baserom.gbc",$29fa,$2a00 - $29fa
+
+Func_2a00: ; 2a00 (0:2a00)
+ call DoFrame
+ call HandleTextBoxInput
+ ld a, [$ff91]
+ bit 0, a
+ jr nz, .asm_2a15
+ bit 1, a
+ jr z, Func_2a00
+ call EraseCursor
+ scf
+ ret
+.asm_2a15
+ call EraseCursor
+ or a
+ ret
Func_2a1a: ; 2a1a (0:2a1a)
xor a
@@ -3537,12 +4488,19 @@ Func_2a1a: ; 2a1a (0:2a1a)
ret
; 0x2a30
-INCBIN "baserom.gbc",$2a30,$2a3e - $2a30
+INCBIN "baserom.gbc",$2a30,$2a36 - $2a30
+
+Func_2a36: ; 2a36 (0:2a36)
+ push hl
+ call DrawWideTextBox
+ ld a, $13
+ jr Func_2a44
DrawNarrowTextBox_PrintText: ; 2a3e (0:2a3e)
push hl
call DrawNarrowTextBox
ld a, $b
+Func_2a44: ; 2a44 (0:2a44)
ld de, $010e
call AdjustCoordinatesForWindow
call Func_22a6
@@ -3571,7 +4529,6 @@ DrawNarrowTextBox: ; 2a6f (0:2a6f)
call AdjustCoordinatesForWindow
call DrawRegularTextBox
ret
-; 0x2a7c
DrawNarrowTextBox_WaitForInput: ; 2a7c (0:2a7c)
call DrawNarrowTextBox_PrintText
@@ -3586,7 +4543,6 @@ DrawNarrowTextBox_WaitForInput: ; 2a7c (0:2a7c)
and $3
jr z, .waitAorBLoop
ret
-; 0x2a96
NarrowTextBoxPromptCursorData: ; 2a96 (0:2a96)
db $a, $11, $1, $1, $2f, $1d, $0, $0
@@ -3633,10 +4589,10 @@ Func_2af0: ; 2af0 (0:2af0)
ld de, $0210
.asm_2b0a
ld a, d
- ld [$cd98], a
+ ld [wcd98], a
ld bc, $0f00
call Func_2a1a
- ld a, [$cd9a]
+ ld a, [wcd9a]
ld [wCurMenuItem], a
call EnableLCD
jr .asm_2b39
@@ -3653,7 +4609,7 @@ Func_2af0: ; 2af0 (0:2af0)
call Func_3796
call EraseCursor
.asm_2b39
- ld a, [$cd98]
+ ld a, [wcd98]
ld c, a
ld hl, wCurMenuItem
ld a, [hl]
@@ -3671,11 +4627,11 @@ Func_2af0: ; 2af0 (0:2af0)
ldh [hCurrentMenuItem], a
or a
jr nz, .asm_2b5c
- ld [$cd9a], a
+ ld [wcd9a], a
ret
.asm_2b5c
xor a
- ld [$cd9a], a
+ ld [wcd9a], a
ld a, $1
ldh [hCurrentMenuItem], a
scf
@@ -3732,15 +4688,67 @@ LoadOpponentDeck: ; 2b78 (0:2b78)
.validDeck
; set opponent as controlled by AI
- ld a, wOpponentDuelistType & $ff
+ ld a, DUELVARS_DUELIST_TYPE
call GetTurnDuelistVariable
ld a, [wOpponentDeckId]
or $80
ld [hl], a
ret
-; 0x2bbf
-INCBIN "baserom.gbc",$2bbf,$2c08 - $2bbf
+Func_2bbf: ; 2bbf (0:2bbf)
+ ld a, $1
+ jr Func_2bdb
+
+Func_2bc3: ; 2bc3 (0:2bc3)
+ ld a, $2
+ jr Func_2bdb
+
+Func_2bc7: ; 2bc7 (0:2bc7)
+ ld a, $3
+ call Func_2bdb
+ ld [$ff9d], a
+ ret
+
+Func_2bcf: ; 2bcf (0:2bcf)
+ ld a, $4
+ call Func_2bdb
+ ld [$ffa0], a
+ ret
+
+Func_2bd7: ; 2bd7 (0:2bd7)
+ ld a, $5
+ jr Func_2bdb
+Func_2bdb: ; 2bdb (0:2bdb)
+ ld c, a
+ ld a, [$ff80]
+ push af
+ ld a, $5
+ call BankswitchHome
+ ld a, [wOpponentDeckId]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, $4000
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, c
+ or a
+ jr nz, .asm_2bfe
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call CopyDeckData
+ jr .asm_2c01
+.asm_2bfe
+ call JumpToFunctionInTable
+.asm_2c01
+ ld c, a
+ pop af
+ call BankswitchHome
+ ld a, c
+ ret
Func_2c08: ; 2c08 (0:2c08)
ld d, [hl]
@@ -3780,13 +4788,64 @@ Func_2c29: ; 2c29 (0:2c29)
ret
; 0x2c37
-INCBIN "baserom.gbc",$2c37,$2cc8 - $2c37
+INCBIN "baserom.gbc",$2c37,$2c73 - $2c37
+
+Func_2c73: ; 2c73 (0:2c73)
+ xor a
+ call Func_2c84
+
+Func_2c77: ; 2c77 (0:2c77)
+ ld bc, $2f1d
+ ld de, $1211
+ call Func_2a1a
+ call Func_2a00
+ ret
+
+Func_2c84: ; 2c84 (0:2c84)
+ ld [wce4b], a
+ ld a, [$ff80]
+ push af
+ call ReadTextOffset
+ call Func_2d15
+ call Func_2cc8
+.asm_2c93
+ ld a, [wce47]
+ ld c, a
+ inc c
+ jr .asm_2cac
+.asm_2c9a
+ ld a, [wce47]
+ cp $2
+ jr nc, .asm_2ca7
+ ld a, [$ff90]
+ and $2
+ jr nz, .asm_2caf
+.asm_2ca7
+ push bc
+ call DoFrame
+ pop bc
+.asm_2cac
+ dec c
+ jr nz, .asm_2c9a
+.asm_2caf
+ call Func_2d43
+ jr c, .asm_2cc3
+ ld a, [wcd09]
+ cp $3
+ jr c, .asm_2c93
+ call Func_2c77
+ call Func_2d15
+ jr .asm_2c93
+.asm_2cc3
+ pop af
+ call BankswitchHome
+ ret
Func_2cc8: ; 2cc8 (0:2cc8)
xor a
- ld [$ce48], a
- ld [$ce49], a
- ld [$ce4a], a
+ ld [wce48], a
+ ld [wce49], a
+ ld [wce4a], a
ld a, $f
ld [hffaf], a
Func_2cd7: ; 2cd7 (0:2cd7)
@@ -3795,7 +4854,7 @@ Func_2cd7: ; 2cd7 (0:2cd7)
pop bc
ld a, [hffaf]
ld [hli], a
- ld a, [$cd0a]
+ ld a, [wcd0a]
ld [hli], a
ldh a, [hBankROM]
ld [hli], a
@@ -3815,7 +4874,7 @@ Func_2cf3: ; 2cf3 (0:2cf3)
ld a, [hli]
ld [hffaf], a
ld a, [hli]
- ld [$cd0a], a
+ ld [wcd0a], a
ld a, [hli]
call BankswitchHome
ld a, [hli]
@@ -3824,7 +4883,7 @@ Func_2cf3: ; 2cf3 (0:2cf3)
ret
Func_2d06: ; 2d06 (0:2d06)
- ld a, [$ce48]
+ ld a, [wce48]
ld e, a
add a
add a
@@ -3834,9 +4893,31 @@ Func_2d06: ; 2d06 (0:2d06)
ld hl, $ce2b
add hl, de
ret
-; 0x2d15
-INCBIN "baserom.gbc",$2d15,$2d43 - $2d15
+Func_2d15: ; 2d15 (0:2d15)
+ push hl
+ ld de, $000c
+ ld bc, $1406
+ call AdjustCoordinatesForWindow
+ ld a, [wce4b]
+ or a
+ jr nz, .asm_2d2d
+ call DrawRegularTextBox
+ call EnableLCD
+ jr .asm_2d36
+.asm_2d2d
+ ld hl, $ce4c
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call DrawLabeledTextBox
+.asm_2d36
+ ld de, $010e
+ call AdjustCoordinatesForWindow
+ ld a, $13
+ call Func_22a6
+ pop hl
+ ret
Func_2d43: ; 2d43 (0:2d43)
call Func_2cf3
@@ -3871,11 +4952,11 @@ Func_2d43: ; 2d43 (0:2d43)
or a
ret
.asm_2d79
- ld a, [$ce48]
+ ld a, [wce48]
or a
jr z, .asm_2d85
dec a
- ld [$ce48], a
+ ld [wce48], a
jr Func_2d43
.asm_2d85
call Func_230f
@@ -3886,7 +4967,7 @@ Func_2d43: ; 2d43 (0:2d43)
ld a, $f
ld [hffaf], a
xor a
- ld [$cd0a], a
+ ld [wcd0a], a
ld de, $ce3f
ld hl, $ce49
call Func_2de0
@@ -3911,7 +4992,7 @@ Func_2d43: ; 2d43 (0:2d43)
.asm_2dc8
call Func_2ceb
call Func_2e2c
- ld a, [$caa0]
+ ld a, [wcaa0]
cp $6
jr z, .asm_2dda
ld a, $7
@@ -3965,7 +5046,7 @@ ReadTextOffset: ; 2ded (0:2ded)
ret
Func_2e12: ; 2e12 (0:2e12)
- ld a, [$cd0a]
+ ld a, [wcd0a]
or a
jp z, Func_245d
ld de, $caa0
@@ -4014,7 +5095,7 @@ Func_2e41: ; 2e41 (0:2e41)
.asm_2e59
ldh a, [hButtonsHeld]
ld b, a
- ld a, [$ce47]
+ ld a, [wce47]
inc a
cp $3
jr nc, .asm_2e6d
@@ -4071,12 +5152,35 @@ PrintTextBoxBorderLabel: ; 2e89 (0:2e89)
jp PrintPlayerName
; 0x2ea9
-INCBIN "baserom.gbc",$2ea9,$2f10 - $2ea9
+INCBIN "baserom.gbc",$2ea9,$2ebb - $2ea9
+
+Func_2ebb: ; 2ebb (0:2ebb)
+ ld a, l
+ ld [wce3f], a
+ ld a, h
+ ld [wce40], a
+ ret
+
+Func_2ec4: ; 2ec4 (0:2ec4)
+ ld a, l
+ ld [wce43], a
+ ld a, h
+ ld [wce44], a
+ ret
+; 0x2ecd
+
+INCBIN "baserom.gbc",$2ecd,$2f0a - $2ecd
+
+Func_2f0a: ; 2f0a (0:2f0a)
+ push hl
+ ld hl, wCardBuffer2
+ jr Func_2f14
; load data of card with id at e to wCardBuffer1
LoadCardDataToRAM: ; 2f10 (0:2f10)
push hl
ld hl, wCardBuffer1
+Func_2f14: ; 2f14 (0:2f14)
push de
push bc
push hl
@@ -4100,9 +5204,23 @@ LoadCardDataToRAM: ; 2f10 (0:2f10)
pop de
pop hl
ret
-; 0x2f32
-INCBIN "baserom.gbc",$2f32,$2f7c - $2f32
+Func_2f32: ; 2f32 (0:2f32)
+ push hl
+ call GetCardPointer
+ jr c, .asm_2f43
+ ld a, $c
+ call BankpushHome2
+ ld l, [hl]
+ call BankpopHome
+ ld a, l
+ or a
+.asm_2f43
+ pop hl
+ ret
+; 0x2f45
+
+INCBIN "baserom.gbc",$2f45,$2f7c - $2f45
; return at hl the pointer to the data of the card with id at e
; return carry if e was out of bounds, so no pointer was returned
@@ -4133,7 +5251,6 @@ GetCardPointer: ; 2f7c (0:2f7c)
pop bc
pop de
ret
-; 0x2fa0
LoadCardGfx: ; 2fa0 (0:2fa0)
ldh a, [hBankROM]
@@ -4163,7 +5280,6 @@ LoadCardGfx: ; 2fa0 (0:2fa0)
pop af
call BankswitchHome
ret
-; 0x2fcb
Func_2fcb: ; 2fcb (0:2fcb)
ld a, $1d
@@ -4172,7 +5288,6 @@ Func_2fcb: ; 2fcb (0:2fcb)
call CopyGfxData
call BankpopHome
ret
-; 0x2fd9
; Checks if the command ID at a is one of the commands of the move or card effect currently in use,
; and executes its associated function if so.
@@ -4207,7 +5322,6 @@ TryExecuteEffectCommandFunction: ; 2fd9 (0:2fd9)
push bc
pop af
ret
-; 0x2ffe
; input:
; a = command ID to check
@@ -4257,7 +5371,6 @@ CheckMatchingCommand: ; 2ffe (0:2ffe)
call BankswitchHome
scf
ret
-; 0x302c
; loads the deck id in a from DeckPointers
; sets carry flag if an invalid deck id is used
@@ -4290,7 +5403,6 @@ LoadDeck: ; 302c (0:302c)
pop hl
scf
ret
-; 0x3055
Func_3055: ; 3055 (0:3055)
push hl
@@ -4369,7 +5481,7 @@ Func_30a6: ; 30a6 (0:30a6)
ld a, $6
call BankswitchHome
ld a, $1
- ld [$ce60], a
+ ld [wce60], a
call $40d5
pop bc
ld a, b
@@ -4378,9 +5490,9 @@ Func_30a6: ; 30a6 (0:30a6)
Func_30bc: ; 30bc (0:30bc)
ld a, h
- ld [$ce50], a
+ ld [wce50], a
ld a, l
- ld [$ce51], a
+ ld [wce51], a
ldh a, [hBankROM]
push af
ld a, $2
@@ -4425,7 +5537,7 @@ Func_30f9: ; 30f9 (0:30f9)
ret
Func_310a: ; 310a (0:310a)
- ld [$ce59], a
+ ld [wce59], a
ldh a, [hBankROM]
push af
ld a, $2
@@ -4449,37 +5561,37 @@ Func_312d: ; 312d (0:312d) ; serial transfer-related
push hl
ld hl, $ce64
ld a, $88
- ld [hli], a ; [$ce64] ← $88
+ ld [hli], a ; [wce64] ← $88
ld a, $33
- ld [hli], a ; [$ce65] ← $33
- ld [hl], d ; [$ce66] ← d
+ ld [hli], a ; [wce65] ← $33
+ ld [hl], d ; [wce66] ← d
inc hl
- ld [hl], e ; [$ce67] ← e
+ ld [hl], e ; [wce67] ← e
inc hl
- ld [hl], c ; [$ce68] ← c
+ ld [hl], c ; [wce68] ← c
inc hl
- ld [hl], b ; [$ce69] ← b
+ ld [hl], b ; [wce69] ← b
inc hl
pop de
- ld [hl], e ; [$ce6a] ← l
+ ld [hl], e ; [wce6a] ← l
inc hl
- ld [hl], d ; [$ce6b] ← h
+ ld [hl], d ; [wce6b] ← h
inc hl
ld de, $ff45
- ld [hl], e ; [$ce6c] ← $45
+ ld [hl], e ; [wce6c] ← $45
inc hl
- ld [hl], d ; [$ce6d] ← $ff
+ ld [hl], d ; [wce6d] ← $ff
ld hl, $ce70
- ld [hl], $64 ; [$ce70] ← $64
+ ld [hl], $64 ; [wce70] ← $64
inc hl
- ld [hl], $ce ; [$ce71] ← $ce
+ ld [hl], $ce ; [wce71] ← $ce
call Func_0e8e
ld a, $1
- ld [$ce63], a ; [$ce63] ← 1
+ ld [wce63], a ; [wce63] ← 1
call Func_31fc
.asm_315d
call DoFrame
- ld a, [$ce63]
+ ld a, [wce63]
or a
jr nz, .asm_315d
call ResetSerial
@@ -4489,10 +5601,10 @@ Func_312d: ; 312d (0:312d) ; serial transfer-related
ld a, b
or c
jr nz, .asm_316c
- ld a, [$ce6e]
+ ld a, [wce6e]
cp $81
jr nz, .asm_3182
- ld a, [$ce6f]
+ ld a, [wce6f]
ld l, a
and $f1
ld a, l
@@ -4501,7 +5613,7 @@ Func_312d: ; 312d (0:312d) ; serial transfer-related
ret
.asm_3182
ld a, $ff
- ld [$ce6f], a
+ ld [wce6f], a
scf
ret
@@ -4565,27 +5677,27 @@ Func_31ca: ; 31ca (0:31ca)
ret
Func_31dd: ; 31dd (0:31dd)
- ld a, [$ce6c]
+ ld a, [wce6c]
Func_31e0: ; 31e0 (0:31e0)
call Func_3212
jr Func_31ab
Func_31e5: ; 31e5 (0:31e5)
- ld a, [$ce6d]
+ ld a, [wce6d]
jr Func_31e0
Func_31ea: ; 31ea (0:31ea)
ld a, [rSB]
- ld [$ce6e], a
+ ld [wce6e], a
Func_31ef: ; 31ef (0:31ef)
xor a
jr Func_31e0
Func_31f2: ; 31f2 (0:31f2)
ld a, [rSB]
- ld [$ce6f], a
+ ld [wce6f], a
xor a
- ld [$ce63], a
+ ld [wce63], a
ret
Func_31fc: ; 31fc (0:31fc)
@@ -4614,9 +5726,551 @@ Func_3212: ; 3212 (0:3212)
ld a, $81
ld [rSC], a
ret
-; 0x321d
-INCBIN "baserom.gbc",$321d,$377f - $321d
+Func_321d: ; 321d (0:321d)
+ ld a, $eb
+ call GetTurnDuelistVariable
+ bit 0, [hl]
+ call nz, Func_323b
+ ld a, $e7
+ call GetTurnDuelistVariable
+ or a
+ call nz, Func_323a
+ ld a, $e8
+ call GetTurnDuelistVariable
+ or a
+ call nz, Func_3243
+ ret
+
+Func_323a: ; 323a (0:323a)
+ ret
+
+Func_323b: ; 323b (0:323b)
+ ld a, e
+ or d
+ ret z
+ sla e
+ rl d
+ ret
+
+Func_3243: ; 3243 (0:3243)
+ ret
+
+Func_3244: ; 3244 (0:3244)
+ call Func_3269
+ ld a, $e8
+ call GetOpposingTurnDuelistVariable
+ or a
+ ret z
+ cp $3
+ jr z, .asm_325b
+ cp $7
+ jr z, .asm_3262
+ cp $12
+ jr z, .asm_3262
+ ret
+.asm_325b
+ ld hl, $ffec
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+.asm_3262
+ ld hl, $fff6
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+
+Func_3269: ; 3269 (0:3269)
+ ld a, [wccc7]
+ or a
+ jr nz, .asm_32ad
+ ld a, $e7
+ call GetTurnDuelistVariable
+ or a
+ jr z, .asm_3297
+ cp $f
+ jr z, .asm_32ad
+ cp $10
+ jr z, .asm_32ad
+ cp $11
+ jr z, .asm_32ad
+ cp $17
+ jr z, .asm_32ad
+ cp $1e
+ jr z, .asm_32b1
+ cp $13
+ jr z, .asm_32b8
+ cp $e
+ jr z, .asm_32bf
+ cp $15
+ jr z, .asm_32ca
+.asm_3297
+ call Func_34ef
+ ret c
+ ld a, [wccb1]
+ cp $4
+ ret z
+ ld a, [wccc4]
+ cp $9b
+ jr z, .asm_32d8
+ cp $8b
+ jr z, .asm_32e9
+ ret
+.asm_32ad
+ ld de, $0000
+ ret
+.asm_32b1
+ ld hl, $fff6
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+.asm_32b8
+ ld hl, $ffec
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+.asm_32bf
+ ld bc, $0028
+ call Func_3090
+ ret nc
+ ld de, $0000
+ ret
+.asm_32ca
+ sla d
+ rr e
+ bit 0, e
+ ret z
+ ld hl, $fffb
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+.asm_32d8
+ ld a, [wccb1]
+ cp $4
+ ret z
+ ld bc, $001e
+ call Func_3090
+ ret c
+ ld de, $0000
+ ret
+.asm_32e9
+ sla d
+ rr e
+ bit 0, e
+ ret z
+ ld hl, $fffb
+ add hl, de
+ ld e, l
+ ld d, h
+ ret
+; 0x32f7
+
+INCBIN "baserom.gbc",$32f7,$33c1 - $32f7
+
+Func_33c1: ; 33c1 (0:33c1)
+ ld a, $e8
+ call GetTurnDuelistVariable
+ or a
+ ret z
+ ld hl, $0100
+ cp $5
+ jr z, .asm_33df
+ ld hl, $0101
+ cp $6
+ jr z, .asm_33df
+ ld hl, $0102
+ cp $b
+ jr z, .asm_33df
+ or a
+ ret
+.asm_33df
+ scf
+ ret
+
+Func_33e1: ; 33e1 (0:33e1)
+ ld a, $e8
+ call GetTurnDuelistVariable
+ or a
+ jr nz, .asm_33ea
+ ret
+.asm_33ea
+ cp $4
+ jr z, .asm_33f0
+.asm_33ee
+ or a
+ ret
+.asm_33f0
+ ld a, $f2
+ call GetTurnDuelistVariable
+ ld a, [wccc6]
+ cp [hl]
+ jr nz, .asm_33ee
+ ld hl, $0103
+ scf
+ ret
+
+Func_3400: ; 3400 (0:3400)
+ call Func_3414
+ ret nc
+ call Func_307d
+ ld [wcc0a], a
+ ccf
+ ret nc
+ ld hl, $00fd
+ call DrawWideTextBox_WaitForInput
+ scf
+ ret
+
+Func_3414: ; 3414 (0:3414)
+ ld a, $e8
+ call GetTurnDuelistVariable
+ or a
+ ret z
+ ld de, $00de
+ cp $2
+ jr z, .asm_342b
+ ld de, $00df
+ cp $1
+ jr z, .asm_342b
+ or a
+ ret
+.asm_342b
+ ld a, [wcc0a]
+ or a
+ ret nz
+ scf
+ ret
+
+Func_3432: ; 3432 (0:3432)
+ xor a
+ ld [wccc7], a
+ ld a, [wccb1]
+ cp $4
+ ret z
+ ld a, $e7
+ call GetTurnDuelistVariable
+ ld e, $3
+ ld hl, $0107
+ cp $d
+ jr z, .asm_346a
+ ld e, $2
+ ld hl, $0108
+ cp $14
+ jr z, .asm_346a
+ ld e, $1
+ ld hl, $0109
+ cp $c
+ jr z, .asm_346a
+ call Func_34ef
+ ccf
+ ret nc
+ ld a, [wccc4]
+ cp $a0
+ jr z, .asm_3470
+ or a
+ ret
+.asm_346a
+ ld a, e
+ ld [wccc7], a
+ scf
+ ret
+.asm_3470
+ ld a, [wcce6]
+ or a
+ ret nz
+ ld a, [wccc3]
+ ld e, a
+ ld d, $0
+ call Func_2f0a
+ ld a, [wCardBuffer2 + $9]
+ or a
+ ret z
+ ld e, $5
+ ld hl, $010b
+ jr .asm_346a
+
+Func_348a: ; 348a (0:348a)
+ ld a, [wccc4]
+ cp $96
+ jr z, .asm_3493
+.asm_3491
+ or a
+ ret
+.asm_3493
+ ld a, [wccb1]
+ cp $4
+ jr z, .asm_3491
+ ld a, [wcceb]
+ call Func_34f0
+ jr c, .asm_3491
+ xor a
+ ld [wcac2], a
+ ld de, $00f6
+ call Func_307d
+ ret nc
+ ld a, $4
+ ld [wccc7], a
+ ld hl, $010c
+ scf
+ ret
+; 0x34b7
+
+INCBIN "baserom.gbc",$34b7,$34e2 - $34b7
+
+Func_34e2: ; 34e2 (0:34e2)
+ ld a, $27
+ call Func_3509
+ ccf
+ ret nc
+ ld a, $5c
+ call Func_3525
+ ret
+
+Func_34ef: ; 34ef (0:34ef)
+ xor a
+
+Func_34f0: ; 34f0 (0:34f0)
+ or a
+ jr nz, .asm_3500
+ ld a, $f0
+ call GetTurnDuelistVariable
+ and $f
+ ld hl, $00cb
+ scf
+ jr nz, .asm_3508
+.asm_3500
+ ld a, $27
+ call Func_3509
+ ld hl, $00d4
+.asm_3508
+ ret
+
+Func_3509: ; 3509 (0:3509)
+ push bc
+ ld [wce7c], a
+ call Func_3525
+ ld c, a
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ ld a, [wce7c]
+ call Func_3525
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ add c
+ or a
+ scf
+ jr nz, .asm_3523
+ or a
+.asm_3523
+ pop bc
+ ret
+
+Func_3525: ; 3525 (0:3525)
+ push hl
+ push de
+ push bc
+ ld [wce7c], a
+ ld c, $0
+ ld a, $bb
+ call GetTurnDuelistVariable
+ cp $ff
+ jr z, .asm_3549
+ call Func_1324
+ ld a, [wce7c]
+ cp e
+ jr nz, .asm_3549
+ ld a, $f0
+ call GetTurnDuelistVariable
+ and $f
+ jr nz, .asm_3549
+ inc c
+.asm_3549
+ ld a, $bc
+ call GetTurnDuelistVariable
+.asm_354e
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_3560
+ call Func_1324
+ ld a, [wce7c]
+ cp e
+ jr nz, .asm_355d
+ inc c
+.asm_355d
+ inc b
+ jr .asm_354e
+.asm_3560
+ ld a, c
+ or a
+ scf
+ jr nz, .asm_3566
+ or a
+.asm_3566
+ pop bc
+ pop de
+ pop hl
+ ret
+; 0x356a
+
+INCBIN "baserom.gbc",$356a,$35e6 - $356a
+
+Func_35e6: ; 35e6 (0:35e6)
+ ld a, $e7
+ call GetTurnDuelistVariable
+ ld [hl], $0
+ or a
+ ret z
+ cp $19
+ ret nz
+ ld a, $eb
+ call GetTurnDuelistVariable
+ set 0, [hl]
+ ret
+
+Func_35fa: ; 35fa (0:35fa)
+ ld a, $eb
+ call GetTurnDuelistVariable
+ res 1, [hl]
+ push hl
+ ld a, $e8
+ call GetTurnDuelistVariable
+ xor a
+ ld [hl], a
+ ld a, $e7
+ call GetTurnDuelistVariable
+ pop hl
+ cp $19
+ ret z
+ res 0, [hl]
+ ret
+; 0x3615
+
+INCBIN "baserom.gbc",$3615,$367b - $3615
+
+Func_367b: ; 367b (0:367b)
+ ld a, [wccc4]
+ cp $7f
+ jr z, .asm_3683
+ ret
+.asm_3683
+ ld a, [wccb1]
+ and $80
+ ret nz
+ ld a, [wccbf]
+ or a
+ ret z
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ call Func_34ef
+ call GetOpposingTurnDuelistVariable_SwapTurn
+ ret c
+ ld hl, $000a
+ call Func_36a2
+ call nc, WaitForWideTextBoxInput
+ ret
+
+Func_36a2: ; 36a2 (0:36a2)
+ push hl
+ call Func_2ec4
+ ld a, [wccc3]
+ ld e, a
+ ld d, $0
+ call Func_2f0a
+ ld hl, $cc68
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Func_2ebb
+ ld a, $c8
+ call GetTurnDuelistVariable
+ pop de
+ push af
+ push hl
+ call Func_1a96
+ ld hl, $0105
+ call DrawWideTextBox_PrintText
+ pop hl
+ pop af
+ or a
+ ret z
+ call WaitForWideTextBoxInput
+ xor a
+ call Func_1aac
+ call $503a
+ scf
+ ret
+; 0x36d9
+
+INCBIN "baserom.gbc",$36d9,$36f6 - $36d9
+
+Func_36f6: ; 36f6 (0:36f6)
+ xor a
+
+Func_36f7: ; 36f7 (0:36f7)
+ push hl
+ push de
+ ld e, a
+ add $d4
+ call GetTurnDuelistVariable
+ bit 7, a
+ jr nz, .asm_3718
+.asm_3703
+ ld a, e
+ add $bb
+ call GetTurnDuelistVariable
+ call Func_1324
+ call Func_2f32
+ cp $10
+ jr nz, .asm_3715
+ ld a, $6
+.asm_3715
+ pop de
+ pop hl
+ ret
+.asm_3718
+ ld a, e
+ call Func_34f0
+ jr c, .asm_3703
+ ld a, e
+ add $d4
+ call GetTurnDuelistVariable
+ pop de
+ pop hl
+ and $f
+ ret
+; 0x3729
+
+INCBIN "baserom.gbc",$3729,$3730 - $3729
+
+Func_3730: ; 3730 (0:3730)
+ ld a, $e9
+ call GetTurnDuelistVariable
+ or a
+ ret nz
+ ld a, $bb
+ call GetTurnDuelistVariable
+ call Func_138c
+ ld a, [wCardBuffer2 + $33]
+ ret
+; 0x3743
+
+INCBIN "baserom.gbc",$3743,$374a - $3743
+
+Func_374a: ; 374a (0:374a)
+ ld a, $ea
+ call GetTurnDuelistVariable
+ or a
+ ret nz
+ ld a, $bb
+ call GetTurnDuelistVariable
+ call Func_138c
+ ld a, [wCardBuffer2 + $34]
+ ret
+; 0x375d
+
+INCBIN "baserom.gbc",$375d,$377f - $375d
SetupSound_T: ; 377f (0:377f)
farcall SetupSound_Ext
@@ -4654,7 +6308,7 @@ Func_37a0: ; 37a0 (0:37a0)
INCBIN "baserom.gbc",$37a5,$380e - $37a5
Func_380e: ; 380e (0:380e)
- ld a, [$d0c1]
+ ld a, [wd0c1]
bit 7, a
ret nz
ldh a, [hBankROM]
@@ -4691,7 +6345,7 @@ Func_383d: ; 383d (0:383d)
ret
Func_3855: ; 3855 (0:3855)
- ld a, [$d0b5]
+ ld a, [wd0b5]
cp $7
jr c, .asm_385e
ld a, $6
@@ -4720,14 +6374,14 @@ Func_3876: ; 3876 (0:3876)
ld a, MUSIC_CARDPOP
call PlaySong
ld a, $3
- ld [$d0c2], a
- ld a, [$d10e]
+ ld [wd0c2], a
+ ld a, [wd10e]
or $10
- ld [$d10e], a
+ ld [wd10e], a
farcall Func_b177
- ld a, [$d10e]
+ ld a, [wd10e]
and $ef
- ld [$d10e], a
+ ld [wd10e], a
call Func_37a0
pop af
call BankswitchHome
@@ -4736,11 +6390,11 @@ Func_3876: ; 3876 (0:3876)
Func_38a3: ; 38a3 (0:38a3)
ld a, $2
- ld [$d0c2], a
+ ld [wd0c2], a
xor a
- ld [$d112], a
+ ld [wd112], a
ld a, $ff
- ld [$d0c3], a
+ ld [wd0c3], a
ld a, $2
ld [wDuelTheme], a
ld a, MUSIC_CARDPOP
@@ -4751,9 +6405,9 @@ Func_38a3: ; 38a3 (0:38a3)
Func_38c0: ; 38c0 (0:38c0)
ld a, $1
- ld [$d0c2], a
+ ld [wd0c2], a
xor a
- ld [$d112], a
+ ld [wd112], a
call EnableExtRAM
xor a
ld [$ba44], a
@@ -4765,7 +6419,7 @@ Func_38c0: ; 38c0 (0:38c0)
Func_38db: ; 38db (0:38db)
ld a, $6
- ld [$d111], a
+ ld [wd111], a
call Func_39fc
call EnableExtRAM
xor a
@@ -4774,14 +6428,14 @@ Func_38db: ; 38db (0:38db)
asm_38ed
farcall Func_131d3
ld a, $9
- ld [$d111], a
+ ld [wd111], a
call Func_39fc
scf
ret
Func_38fb: ; 38fb (0:38fb)
xor a
- ld [$d112], a
+ ld [wd112], a
bank1call Func_406f
call EnableExtRAM
ld a, [$ba44]
@@ -4827,7 +6481,7 @@ Func_3946: ; 3946 (0:3946)
Func_395a: ; 395a (0:395a)
ldh a, [hBankROM]
push af
- ld a, [$d4c6]
+ ld a, [wd4c6]
call BankswitchHome
call CopyGfxData
pop af
@@ -4881,12 +6535,12 @@ Func_39c3: ; 39c3 (0:39c3)
push bc
push de
xor a
- ld [$d3aa], a
+ ld [wd3aa], a
ld b, a
ld c, $8
ld de, $000c
ld hl, $d34a
- ld a, [$d3ab]
+ ld a, [wd3ab]
.asm_39d6
cp [hl]
jr z, .asm_39e1
@@ -4898,7 +6552,7 @@ Func_39c3: ; 39c3 (0:39c3)
jr z, .asm_39e6
.asm_39e1
ld a, b
- ld [$d3aa], a
+ ld [wd3aa], a
or a
.asm_39e6
pop de
@@ -4927,7 +6581,7 @@ Func_39fc: ; 39fc (0:39fc)
ld a, c
cp $1f
jr nc, .asm_3a1c
- ld [$d112], a
+ ld [wd112], a
call PlaySong
.asm_3a1c
pop bc
@@ -4935,10 +6589,10 @@ Func_39fc: ; 39fc (0:39fc)
ret
Func_3a1f: ; 3a1f (0:3a1f)
- ld a, [$d3b8]
+ ld a, [wd3b8]
or a
jr z, .asm_3a37
- ld a, [$d32e]
+ ld a, [wd32e]
cp $2
jr z, .asm_3a37
cp $b
@@ -4948,7 +6602,7 @@ Func_3a1f: ; 3a1f (0:3a1f)
ld a, MUSIC_RONALD
ret
.asm_3a37
- ld a, [$d111]
+ ld a, [wd111]
ret
Func_3a3b: ; 3a3b (0:3a3b)
@@ -4973,7 +6627,7 @@ Func_3a5e: ; 3a5e (0:3a5e)
call Func_c653
ld a, $4
call BankswitchHome
- ld a, [$d334]
+ ld a, [wd334]
ld d, a
.asm_3a79
ld a, [hli]
@@ -4990,17 +6644,17 @@ Func_3a5e: ; 3a5e (0:3a5e)
cp c
jr nz, .asm_3aab
ld a, [hli]
- ld [$d0c6], a
+ ld [wd0c6], a
ld a, [hli]
- ld [$d0c7], a
+ ld [wd0c7], a
ld a, [hli]
- ld [$d0ca], a
+ ld [wd0ca], a
ld a, [hli]
- ld [$d0cb], a
+ ld [wd0cb], a
ld a, [hli]
- ld [$d0c8], a
+ ld [wd0c8], a
ld a, [hli]
- ld [$d0c9], a
+ ld [wd0c9], a
pop hl
pop bc
pop af
@@ -5084,7 +6738,89 @@ Func_3aed: ; 3aed (0:3aed)
jp [hl]
; 0x3b11
-INCBIN "baserom.gbc",$3b11,$3bd2 - $3b11
+INCBIN "baserom.gbc",$3b11,$3b21 - $3b11
+
+Func_3b21: ; 3b21 (0:3b21)
+ ld a, [$ff80]
+ push af
+ ld a, $7
+ call BankswitchHome
+ call $48bc
+ pop af
+ call BankswitchHome
+ ret
+
+Func_3b31: ; 3b31 (0:3b31)
+ ld a, [$ff80]
+ push af
+ ld a, $7
+ call BankswitchHome
+ call $4b18
+ jr c, .asm_3b45
+ xor a
+ ld [wDoFrameFunction], a
+ ld [wcad4], a
+.asm_3b45
+ call Func_099c
+ ld a, $1
+ ld [wVBlankOAMCopyToggle], a
+ pop af
+ call BankswitchHome
+ ret
+
+Func_3b52: ; 3b52 (0:3b52)
+ push hl
+ push bc
+ ld a, [wd42a]
+ ld hl, $d4c0
+ and [hl]
+ ld hl, $d423
+ ld c, $7
+.asm_3b60
+ and [hl]
+ inc hl
+ dec c
+ jr nz, .asm_3b60
+ cp $ff
+ pop bc
+ pop hl
+ ret
+
+Func_3b6a: ; 3b6a (0:3b6a)
+ ld [wd422], a
+ ld a, [$ff80]
+ push af
+ ld [wd4be], a
+ push hl
+ push bc
+ push de
+ ld a, $7
+ call BankswitchHome
+ ld a, [wd422]
+ cp $61
+ jr nc, .asm_3b90
+ ld hl, $d4ad
+ ld a, [wd4ac]
+ cp [hl]
+ jr nz, .asm_3b90
+ call Func_3b52
+ jr nc, .asm_3b95
+.asm_3b90
+ call $4a31
+ jr .asm_3b9a
+.asm_3b95
+ call $48ef
+ jr .asm_3b9a
+.asm_3b9a
+ pop de
+ pop bc
+ pop hl
+ pop af
+ call BankswitchHome
+ ret
+; 0x3ba2
+
+INCBIN "baserom.gbc",$3ba2,$3bd2 - $3ba2
; writes from hl the pointer to the function to be called by DoFrame
SetDoFrameFunction: ; 3bd2 (0:3bd2)
@@ -5108,11 +6844,11 @@ Func_3bf5: ; 3bf5 (0:3bf5)
ldh a, [hBankROM]
push af
push hl
- ld a, [$d4c6]
+ ld a, [wd4c6]
call BankswitchHome
- ld a, [$d4c4]
+ ld a, [wd4c4]
ld l, a
- ld a, [$d4c5]
+ ld a, [wd4c5]
ld h, a
call CopyData_SaveRegisters
pop hl
@@ -5177,11 +6913,20 @@ Func_3c5a: ; 3c5a (0:3c5a)
ret
; 0x3c83
-INCBIN "baserom.gbc",$3c83,$3ca0 - $3c83
+INCBIN "baserom.gbc",$3c83,$3c96 - $3c83
+
+Func_3c96: ; 3c96 (0:3c96)
+ call DoFrameIfLCDEnabled
+ call Func_378a
+ or a
+ jr nz, Func_3c96
+ ret
Func_3ca0: ; 3ca0 (0:3ca0)
xor a
- ld [$d5d7], a
+ ld [wd5d7], a
+
+Func_3ca4: ; 3ca4 (0:3ca4)
ldh a, [hBankROM]
push af
ld a, BANK(Func_1296e)
@@ -5209,22 +6954,22 @@ Func_3d72: ; 3d72 (0:3d72)
push af
push hl
push hl
- ld a, [$d4ca]
+ ld a, [wd4ca]
cp $ff
jr nz, .asm_3d84
ld de, Unknown_80e5a
xor a
jr .asm_3da1
.asm_3d84
- ld a, [$d4c4]
+ ld a, [wd4c4]
ld l, a
- ld a, [$d4c5]
+ ld a, [wd4c5]
ld h, a
- ld a, [$d4c6]
+ ld a, [wd4c6]
call BankswitchHome
ld a, [hli]
push af
- ld a, [$d4ca]
+ ld a, [wd4ca]
rlca
ld e, [hl]
add e
@@ -5259,7 +7004,7 @@ Func_3db7: ; 3db7 (0:3db7)
ret
Func_3dbf: ; 3dbf (0:3dbf)
- ld a, [$d4cf]
+ ld a, [wd4cf]
cp $10
jr c, .asm_3dc9
rst $38
@@ -5297,14 +7042,14 @@ Func_3df3: ; 3df3 (0:3df3)
pop af
call BankswitchHome
pop af
- ld a, [$d61b]
+ ld a, [wd61b]
ret
; 0x3e10
INCBIN "baserom.gbc",$3e10,$3e17 - $3e10
Func_3e17: ; 3e17 (0:3e17)
- ld [$d131], a
+ ld [wd131], a
ldh a, [hBankROM]
push af
ld a, $4
@@ -5315,7 +7060,7 @@ Func_3e17: ; 3e17 (0:3e17)
ret
Func_3e2a: ; 3e2a (0:3e2a)
- ld [$d61e], a
+ ld [wd61e], a
ld a, $63
jr Func_3e17
; 0x3e31
diff --git a/src/hram.asm b/src/hram.asm
index 978501c..38347fc 100644
--- a/src/hram.asm
+++ b/src/hram.asm
@@ -49,14 +49,14 @@ hWhoseTurn:: ; ff97
hffaf:: ; ffaf
ds 1
-
+
ds 1
hCurrentMenuItem::
ds 1
-
+
ds 3
-
+
hffb5:: ; ffb5
ds 1
diff --git a/src/wram.asm b/src/wram.asm
index 17c9878..da98d0d 100755
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -11,6 +11,10 @@ SECTION "WRAM0", WRAM0
wPlayerDuelVariables:: ; c200
+; In order to be identified during a duel, the 60 cards of each duelist are given an id between 0 and 59.
+; The id's are assigned following the index number order of the cards that make up the deck.
+; This temporary id identifies the card during the current duel and within the duelist's deck.
+
; 60-byte array that indicates where each of the 60 cards is.
; $00 - deck
; $01 - hand
@@ -27,14 +31,13 @@ wPlayerHand:: ; c242
ds DECK_SIZE
; 60-byte array that maps each card to its position in the deck.
-; During a duel, each card of the deck is assigned a number between 0 and 59, following the index number order.
; This array is initialized to 00, 01, 02, ..., 59, until deck is shuffled.
-; The earlier a card appears in the array, the closer to the top of the deck it is.
wPlayerDeckCards:: ; c27e
ds DECK_SIZE
-; stores x = (60 - deck remaining cards)
-; the first x cards in the wPlayerDeckCards array are ignored (e.g. when drawing a card)
+; Stores x = (60 - deck remaining cards)
+; The first x cards in the wPlayerDeckCards array are not actually in the deck
+; For example, the top card of the player's deck is at wPlayerDeckCards + [wPlayerNumberOfCardsNotInDeck]
wPlayerNumberOfCardsNotInDeck:: ; c2ba
ds $1
@@ -59,7 +62,14 @@ wPlayerBench4CardHP:: ; c2cc
ds $1
wPlayerBench5CardHP:: ; c2cd
ds $1
- ds $20
+ ds $1e
+
+; Each bit represents a prize (1 = not taken ; 0 = taken)
+wPlayerPrizes:: ; c2ec
+ ds $1
+
+wPlayerNumberOfCardsInDiscardPile:: ; c2ed
+ ds $1
wPlayerNumberOfCardsInHand:: ; c2ee
ds $1
@@ -112,7 +122,13 @@ wOpponentBench4CardHP:: ; c3cc
ds $1
wOpponentBench5CardHP:: ; c3cd
ds $1
- ds $20
+ ds $1e
+
+wOpponentPrizes:: ; c3ec
+ ds $1
+
+wOpponentNumberOfCardsInDiscardPile:: ; c3ed
+ ds $1
wOpponentNumberOfCardsInHand:: ; c3ee
ds $1
@@ -141,7 +157,18 @@ wOpponentDeck:: ; c480
wBufOAM:: ; ca00
ds $a0
- ds $13
+
+wcaa0:: ; caa0
+ ds $10
+
+wcab0:: ; cab0
+ ds $1
+
+wcab1:: ; cab1
+ ds $1
+
+wcab2:: ; cab2
+ ds $1
; initial value of the A register--used to tell the console when reset
wInitialA:: ; cab3
@@ -151,6 +178,8 @@ wInitialA:: ; cab3
; use constants CONSOLE_DMG, CONSOLE_SGB and CONSOLE_CGB for checks
wConsole:: ; cab4
ds $1
+
+wcab5:: ; cab5
ds $1
wTileMapFill:: ; cab6
@@ -185,7 +214,10 @@ wFlushPaletteFlags:: ; cabf
wVBlankOAMCopyToggle:: ; cac0
ds $1
- ds $2
+ ds $1
+
+wcac2:: ; cac2
+ ds $1
wCounterCtr:: ; cac3
ds $1
@@ -218,8 +250,20 @@ wVBlankFunctionTrampoline:: ; cad0
ds $3
wDoFrameFunction:: ; cad3
- ds $3
- ds $1a
+ ds $1
+
+wcad4:: ; cad4
+ ds $1
+
+wcad5:: ; cad5
+ ds $1
+ ds $8
+
+wcade:: ; cade
+ ds $4
+
+wcae2:: ; cae2
+ ds $e
wBufPalette:: ; caf0 - cab7f
ds $80
@@ -251,6 +295,8 @@ wSerialSendBufToggle:: ; cb7e
wSerialSendBufIndex:: ; cb7f
ds $1
+
+wcb80:: ; cb80
ds $1
wSerialSendBuf:: ; cb81
@@ -261,6 +307,8 @@ wSerialLastReadCA:: ; cba1
wSerialRecvCounter:: ; cba2
ds $1
+
+wcba3:: ; cba3
ds $1
wSerialRecvIndex:: ; cba4
@@ -274,33 +322,64 @@ wSerialRecvBuf:: ; $cba5 - $cbc4
;--- Duels 2 ----------------------------------------------
-wBattleMenuSelection:: ; $cbc6
+; In a duel, the main menu current or last selected menu item
+; From 0 to 5: Hand, Attack, Check, Pkmn Power, Retreat, Done
+wCurrentDuelMenuItem:: ; $cbc6
ds $1
- ds $4
-wBenchSelectedPokemon:: ; $cbcb
+; When we're viewing a card's information, the page we are currently at
+; For Pokemon cards, values from $1 to $6 (two pages for move descriptions)
+; For Energy cards, it's always $9
+; For Trainer cards, $d or $e (two pages for trainer card descriptions)
+wCardPageNumber:: ; $cbc7
ds $1
ds $3
-
-;When you're in a battle menu like your hand
-;and you press a, this keeps track of where the cursor was
-wBattleSubMenuSelected:: ; $cbcf
+
+wBenchSelectedPokemon:: ; $cbcb
ds $1
- ds $37
+ ds $3
-; 0 = no one has won battle yet
-; 1 = player whose turn it is has won the battle
-; 2 = player whose turn it is has lost the battle
-wBattleFinished:: ; $cc07
+; When you're in a duel menu like your hand and you press a,
+; the following two addresses keep track of which item was selected by the cursor
+wSelectedDuelSubMenuItem:: ; $cbcf
ds $1
- ds $6
-
+
+wSelectedDuelSubMenuScrollOffset:: ; $cbd0
+ ds $1
+ ds $35
+
+wcc06:: ; cc06
+ ds $1
+
+; 0 = no one has won duel yet
+; 1 = player whose turn it is has won the duel
+; 2 = player whose turn it is has lost the duel
+; 3 = duel ended in a draw
+wDuelFinished:: ; $cc07
+ ds $1
+ ds $1
+
+wcc09:: ; cc09
+ ds $1
+
+wcc0a:: ; cc0a
+ ds $4
+
; this seems to hold the current opponent's deck id - 2,
; perhaps to account for the two unused pointers at the
; beginning of DeckPointers
wOpponentDeckId:: ; cc0e
ds $1
- ds $4
+ ds $1
+
+wcc10:: ; cc10
+ ds $1
+
+wcc11:: ; cc11
+ ds $1
+
+wcc12:: ; cc12
+ ds $1
wIsPracticeDuel:: ; cc13
ds $1
@@ -319,11 +398,74 @@ wCardBuffer1:: ; cc24
wCardBuffer2:: ; cc65
ds CARD_DATA_LENGTH
- ds $c
+ ds $4
+
+wccaa:: ; ccaa
+ ds $1
+
+wccab:: ; ccab
+ ds $5
+
+wccb0:: ; ccb0
+ ds $1
+
+wccb1:: ; ccb1
+ ds $1
wCurrentMoveOrCardEffect:: ; ccb2
ds $1
- ds $40
+ ds $5
+
+wccb8:: ; ccb8
+ ds $7
+
+wccbf:: ; ccbf
+ ds $2
+
+wccc1:: ; ccc1
+ ds $1
+
+wccc2:: ; ccc2
+ ds $1
+
+wccc3:: ; ccc3
+ ds $1
+
+wccc4:: ; ccc4
+ ds $2
+
+wccc6:: ; ccc6
+ ds $1
+
+wccc7:: ; ccc7
+ ds $2
+
+wccc9:: ; ccc9
+ ds $4
+
+wcccd:: ; cccd
+ ds $19
+
+wcce6:: ; cce6
+ ds $5
+
+wcceb:: ; cceb
+ ds $1
+
+wccec:: ; ccec
+ ds $1
+
+wcced:: ; cced
+ ds $2
+
+wccef:: ; ccef
+ ds $1
+
+wccf0:: ; ccf0
+ ds $1
+
+wccf1:: ; ccf1
+ ds $2
;--- Overworld --------------------------------------------
@@ -332,7 +474,31 @@ wCurrentMoveOrCardEffect:: ; ccb2
; For example the value 4 seems to be used a lot during duels.
wFrameType:: ; ccf3
ds $1
- ds $19
+ ds $10
+
+wcd04:: ; cd04
+ ds $1
+
+wcd05:: ; cd05
+ ds $1
+
+wcd06:: ; cd06
+ ds $1
+
+wcd07:: ; cd07
+ ds $1
+
+wcd08:: ; cd08
+ ds $1
+
+wcd09:: ; cd09
+ ds $1
+
+wcd0a:: ; cd0a
+ ds $1
+
+wcd0b:: ; cd0b
+ ds $2
wUppercaseFlag:: ; cd0d
ds $1
@@ -362,25 +528,136 @@ wCursorTileNumber:: ; cd15
wTileBehindCursor:: ; cd16
ds $1
- ds $10b
+ ds $81
+
+wcd98:: ; cd98
+ ds $1
+
+wcd99:: ; cd99
+ ds $1
+
+wcd9a:: ; cd9a
+ ds $88
; During a duel, this is always $b after the first attack.
; $b is the bank where the functions associated to card or effect commands are.
; Its only purpose seems to be store this value to be read by TryExecuteEffectCommandFunction.
wce22:: ; ce22
+ ds $1d
+
+wce3f:: ; cd3f
+ ds $1
+
+wce40:: ; ce40
+ ds $3
+
+wce43:: ; ce43
+ ds $1
+
+wce44:: ; ce44
+ ds $3
+
+wce47:: ; ce47
+ ds $1
+
+wce48:: ; ce48
+ ds $1
+
+wce49:: ; ce49
+ ds $1
+
+wce4a:: ; ce4a
+ ds $1
+
+wce4b:: ; ce4b
+ ds $5
+
+wce50:: ; ce50
+ ds $1
+
+wce51:: ; ce51
+ ds $8
+
+wce59:: ; ce59
+ ds $7
+
+wce60:: ; ce60
+ ds $3
+
+wce63:: ; ce63
+ ds $9
+
+wce6c:: ; ce6c
+ ds $1
+
+wce6d:: ; ce6d
+ ds $1
+
+wce6e:: ; ce6e
+ ds $1
+
+wce6f:: ; ce6f
+ ds $d
+
+wce7c:: ; ce7c
;----------------------------------------------------------
;--- Bank 1: $Dxxx ----------------------------------------
;----------------------------------------------------------
SECTION "WRAM1", WRAMX, BANK[1]
- ds $113
+ ds $b5
+
+wd0b5:: ; d0b5
+ ds $c
+
+wd0c1:: ; d0c1
+ ds $1
+
+wd0c2:: ; d0c2
+ ds $1
+
+wd0c3:: ; d0c3
+ ds $3
+
+wd0c6:: ; d0c6
+ ds $1
+
+wd0c7:: ; d0c7
+ ds $1
+
+wd0c8:: ; d0c8
+ ds $1
+
+wd0c9:: ; d0c9
+ ds $1
+
+wd0ca:: ; d0ca
+ ds $1
+
+wd0cb:: ; d0cb
+ ds $43
+
+wd10e:: ; d10e
+ ds $3
+
+wd111:: ; d111
+ ds $1
+
+wd112:: ; d112
+ ds $1
;--- Music ------------------------------------------------
wMatchStartTheme:: ; d113
ds $1
- ds $21b
+ ds $1d
+
+wd131:: ; d131
+ ds $1fd
+
+wd32e:: ; d32e
+ ds $1
wCurMap:: ; d32f
ds $1
@@ -390,7 +667,55 @@ wPlayerXCoord:: ; d330
wPlayerYCoord:: ; d331
ds $1
- ds $a52
+ ds $2
+
+wd334:: ; d334
+ ds $76
+
+wd3aa:: ; d3aa
+ ds $1
+
+wd3ab:: ; d3ab
+ ds $d
+
+wd3b8:: ; d3b8
+ ds $6a
+
+wd422:: ; d422
+ ds $8
+
+wd42a:: ; d42a
+ ds $82
+
+wd4ac:: ; d4ac
+ ds $12
+
+wd4be:: ; d4be
+ ds $6
+
+wd4c4:: ; d4c4
+ ds $1
+
+wd4c5:: ; d4c5
+ ds $1
+
+wd4c6:: ; d4c6
+ ds $4
+
+wd4ca:: ; d4ca
+ ds $5
+
+wd4cf:: ; d4cf
+ ds $108
+
+wd5d7:: ; d5d7
+ ds $44
+
+wd61b:: ; d61b
+ ds $3
+
+wd61e:: ; d61e
+ ds $766
wMusicDC:: ; dd84
ds $2