diff options
| author | anmart <andrewrmartinek@gmail.com> | 2016-02-19 23:41:44 -0500 | 
|---|---|---|
| committer | anmart <andrewrmartinek@gmail.com> | 2016-02-19 23:41:44 -0500 | 
| commit | 595988d101d7c7264099ee3b9f559214bfda436c (patch) | |
| tree | 7acf01ef7fa41e056f98dda982f47fccaf3eddab | |
| parent | dc06e764c0d0a4f56d01474c5397a8e47aa0aa13 (diff) | |
| parent | 6fb06a07dace26443a064d56be25972c2cddd8ae (diff) | |
Merge remote-tracking branch 'refs/remotes/pret/master'
| -rwxr-xr-x | src/constants.asm | 2 | ||||
| -rw-r--r-- | src/constants/card_data_constants.asm | 31 | ||||
| -rw-r--r-- | src/constants/duel_constants.asm | 25 | ||||
| -rw-r--r-- | src/constants/misc_constants.asm | 4 | ||||
| -rwxr-xr-x | src/constants/set_constants.asm | 21 | ||||
| -rw-r--r-- | src/data/effect_commands.asm | 908 | ||||
| -rwxr-xr-x | src/engine/bank1.asm | 190 | ||||
| -rwxr-xr-x | src/engine/bank3.asm | 2 | ||||
| -rwxr-xr-x | src/engine/bank4.asm | 22 | ||||
| -rwxr-xr-x | src/engine/bank6.asm | 2 | ||||
| -rwxr-xr-x | src/engine/bank7.asm | 4 | ||||
| -rwxr-xr-x | src/engine/home.asm | 2111 | ||||
| -rw-r--r-- | src/hram.asm | 6 | ||||
| -rwxr-xr-x | src/wram.asm | 389 | 
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 | 
