Skip to content

Latest commit

 

History

History
1197 lines (792 loc) · 65.5 KB

CHANGELOG.md

File metadata and controls

1197 lines (792 loc) · 65.5 KB

Pokémon Trading Card Game, Version 2

Types of Changes:



Bug Fixes For Base Game

  • November 10, 2024: 2 Files Changed
    • Mysterious Fossil and Clefairy Doll are now only considered Basic Pokémon while in the play area
      • engine/duel/core.asm changes reference CheckDeckIndexForBasicPokemon from home/duel.asm, which isn't present in the base disassembly

  • October 29, 2024: 2 Files Changed
    • AI now accounts for Energy Burn when evaluating whether or not a Benched Charizard is able to attack

  • October 25, 2024: 9 Files Changed
    • Update engine/duel/ai/special_attacks.asm and add entries for MarowakLv32's Wail, GastlyLv8's Destiny Bond, and GastlyLv17's Energy Conversion (all 3 are now usable by AI)
    • Add AI logic for using Moltres's Wildfire attack and replace IGNORE_THIS_ATTACK flag with SPECIAL_AI_HANDLING. (Courtney can now use Wildfire to deck out the Player)
    • Add AI logic for using VenusaurLv64's Solar Power Pokémon Power. (although no AI opponents have VenusaurLv64 in their deck)
    • Also update a few effect functions and refactor the ConvertHPToDamageCounters functions in the AI Logic banks (unrelated to the bug fixing)

  • September 12, 2024: 1 File Changed
    • Prevent the Morph attack from transforming the user into a copy of the exact same card

  • September 3, 2024: 2 Files Changed
    • Prevent the header text on the card album and card list screens from being overwritten by new font tiles when scrolling the page
    • This display glitch would only have occurred if the size of the card or booster pack lists were increased or the card names were altered

  • August 17, 2024: 4 Files Changed
    • Use Electro's tutorial to give the AI the ability to read more complex Energy requirements in attack costs (more than 2 types of Energy)
    • This isn't exactly a bug since there were no multicolored attacks in the base game

  • June 11, 2024: 2 Files Changed
    • Replace many uses of call with bank1call when dealing with functions in bank $01 from the home bank. (It's probably best not to assume that bank 1 will always be loaded.)

  • June 10, 2024: 2 Files Changed
    • Fix AI logic for using Dugtrio's Earthquake attack
    • Add AI logic for using Dragonite's Step In Pokémon Power (taken from poketcg2)
      • HandleAIStepIn correction: CheckIfDefendingPokemonCanKnockOut should use farcall

  • May 21, 2024: 3 Files Changed
    • Finish fixing the "Big Lightning" and "Dive Bomb" animations
    • Split "Gfx 12" and "Anims 1" into 2 banks
    • Split "Anims 4" and "Palettes1" into 2 banks

  • May 21, 2024: 17 Files Changed (bugs_and_glitches.md was also removed)
    • Apply new graphics fixes in bugs_and_glitches.md. More specifically:
    • Fix the lower left tiles of the pool area in the Water Club using the wrong color
    • Fix the emblems in the Club entrances using some incorrect tiles
    • Fix a problem with the frame data being used for NPCs with a green palette
    • (Partially) Fix a problem with the "Big Lightning" duel animation
    • (Partially) Fix a problem with the "Dive Bomb" duel animation

  • May 6, 2024: 9 Files Changed (8 are Code Optimization)
    • Fix "Ninetails" typo

  • April 15, 2024: 1 File Changed
    • Fix the AI not checking the Unable_Retreat substatus before retreating (credit to Oats)
    • This was updated in this commit (it no longer prevents Switch from being played)

  • April 15, 2024: 24 Files Changed
    • Apply all of the changes currently laid out in bugs_and_glitches.md. More specifically:
    • Fix the AI repeating the Active Pokémon score bonus when attaching an Energy card
    • Fix designated cards not being set aside when the AI places Prize cards
    • Apply the AI score modifiers for retreating
    • Fix a flaw in AI's Professor Oak logic
    • Fix Rick never playing Energy Search
    • Fix Rick using the wrong Pokédex AI subroutine
    • Fix Chris never using Revive on Kangaskhan
    • Fix a flaw in the AI's Pokémon Trader logic for the PowerGenerator deck
    • Fix various flaws in the AI's Full Heal logic
    • Prevent the AI from attacking with a Pokémon Power after playing PlusPower and then evolving
    • Fix the AI never using Energy Trans to retreat
    • Fix Sam's practice deck checking for the wrong card ID
    • Fix various flaws in the AI logic for the Shift Pokémon Power
    • Prevent the AI from being able to use Cowardice without waiting a turn
    • Fix the wrong name being displayed in the Challenge Cup
    • Fix a flaw in the Card Pop logic when comparing player names
    • Add a missing return to the InitPromotionalCardAndDeckCounterSaveData function in src/engine/menus/deck_selection.asm


Code Optimization

  • November 14, 2024: 3 Files Changed
    • Refactor some code in engine/menus/duel.asm and engine/menus/play_area.asm
    • Replace a couple of values in engine/menus/duel_init.asm with constants

  • November 12, 2024: 2 Files Changed
    • Rename ConvertWordToNumericalDigits engine/menus/print_stats.asm to ThreeDigitNumberToTxSymbol_TrimLeadingZeros
    • Plus a few additional comments and a minor refactor of another function in the same file

  • November 12, 2024: 1 File Changed
    • Update various comments in engine/menus/mail.asm and implement several minor optimizations

  • November 10, 2024: 1 File Changed
    • Use a fallthrough for .play_sfx subroutine in each of the deck search (Find*) functions in engine/duel/effect_functions2.asm

  • November 9, 2024: 26 Files Changed
    • Change various instances of $ff to -1 to better comply with the original disassembly's style guide (-1 = empty/false, $ff = list/data terminator)
    • Change some instances of cp -1 with inc a (so long as the flag differences seemed irrelevant)
    • Remove some redundant loads following menu input functions (when the necessary variable was already loaded to the a register)
    • Edit a lot of input/output comments in the effect function and ai logic files (mostly related to deck indices)

  • November 4, 2024: 2 Files Changed
    • Move several card list display functions from home/menus.asm (bank $00) to engine/duel/core.asm (bank $01)

  • November 4, 2024: 9 Files Changed
    • Implement a variety of minor optimizations, all of which are related to printing card lists
    • Correct a few constants (NUM_DECK_SAVE_MACHINE_SLOTS instead of DECK_SIZE and MAX_PLAY_AREA_POKEMON instead of 6)

  • November 2, 2024: 17 Files Changed
    • Implement a variety of minor optimizations, most of which are related to the xor a instruction setting the a register to 0

  • November 2, 2024: 6 Files Changed
    • Create a ClearData function in the home bank and use it to replace the equivalent code in numerous functions

  • November 2, 2024: 4 Files Changed
    • Add a call EnableSRAM to the start of various functions that end with jp DisableSRAM
    • Refactor CopyPalsToSRAMBuffer and LoadPalsFromSRAMBuffer to remove some redundant code and reduce the amount of cycles used

  • November 1, 2024: 2 Files Changed
    • Remove SetMenuItem from home/menus.asm and inline the code for the single call in engine/duel/core.asm
    • Move HandleDuelMenuInput from home/menus.asm (bank $00) to engine/duel/core.asm (bank $01)

  • October 31, 2024: 9 Files Changed
    • Replace several instances of loading an 8-bit constant into a 16-bit register pair before copying memory with alternate code that only uses a single register
    • Remove FillMemoryWithA function from the home bank and replace the 2 calls with (significantly optimized) inlined code that accomplishes the same thing

  • October 31, 2024: 9 Files Changed
    • Replace various copy code with calls to either CopyNBytesFromHLToDE or CopyNBytesFromDEToHL

  • October 31, 2024: 15 Files Changed (although 2 are no longer in the build)
    • Reorganize default palette data and put actual functions in the home bank (now, nothing is stored in engine/duel/core.asm)

  • October 30, 2024: 3 Files Changed
    • Update some code that checks for the Amnesia attack effect (all related to the HandleAmnesiaSubstatus function)

  • October 30, 2024: 5 Files Changed
    • Have CheckUnableToRetreatDueToEffect check if the Active Pokémon is Asleep or Paralyzed
    • Replace HandleCantAttackSubstatus with CheckUnableToAttackDueToEffect, which also checks if the Active Pokémon is Asleep or Paralyzed

  • October 30, 2024: 5 Files Changed
    • Replace individual Snorlax and Trainer Pokémon checks with calls to the newly created CheckIfActiveCardCanBeAffectedByStatus function in home/substatus

  • October 29, 2024: 7 Files Changed
    • Combine the default effect commands for Clefairy Doll and Mysterious Fossil
    • Move ConvertSpecialTrainerCardToPokemon from engine/duel/core.asm (bank $01) to engine/duel/effect_functions.asm (bank $09)
    • Move HandleNShieldAndTransparency from home/substatus.asm (bank $00) to engine/duel/effect_functions2.asm (bank $0a)
    • Move HandleStrikesBack_AgainstDamagingAttack from home/substatus.asm to home/duel.asm (to mirror the other Strikes Back function, which is also stored near its call)
    • Also adjust some comments in both of the Strikes Back functions, as well as a minor optimization for the one in engine/duel/core.asm

  • October 28, 2024: 3 Files Changed
    • Move ClearDamageReductionSubstatus2, UpdateSubstatusConditions_StartOfTurn, UpdateSubstatusConditions_EndOfTurn, and HandleDestinyBondSubstatus from home/substatus.asm (bank $00) to engine/duel/core.asm (bank $01)
    • Refactor HandleDestinyBondSubstatus

  • October 28, 2024: 5 Files Changed
    • Add constants for both of the wPlayAreaSelectAction variables
    • Replace the HasAlivePokemonIn* functions in engine/duel/core.asm and with InitPlayAreaScreenVars and InitPlayAreaScreenVars_OnlyBench (placed in home/duel.asm to reduce bank1calls)
    • The call HasAlivePokemonInBench in CheckAbleToRetreat was replaced with an inline check that uses DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA
    • The call HasAlivePokemonInBench in ReplaceKnockedOutPokemon, which was the only call that actually made use of the alive Pokémon check, was replaced by a call to another new function: CheckForAlivePokemonInBench
    • Also remove some redundant code in a few of the play area screen functions

  • October 27, 2024: 3 Files Changed
    • Move UpdateArenaCardIDsAndClearTwoTurnDuelVars and SendAttackDataToLinkOpponent from home/duel.asm (bank $00) to engine/duel/core.asm (bank $01)

  • October 27, 2024: 4 Files Changed
    • Replace 10 bank1calls by moving PlayAttackAnimation from engine/duel/core.asm (bank $01) to home/duel.asm (bank $00)
    • Reorder several functions in home/duel.asm for better organization
    • Use a conditional call/jp to the PreventAllDamage function to remove a few bytes from ApplyDamageModifiers_DamageToTarget and DealDamageToPlayAreaPokemon

  • October 27, 2024: 3 Files Changed
    • Move GetCardInDuelTempList_OnlyDeckIndex, GetCardInDuelTempList, ApplyDamageModifiers_DamageToTarget, and PrintFailedEffectText from home/duel.asm (bank $00) to engine/duel/core.asm (bank $01)
    • Make a couple of minor changes to ApplyDamageModifiers_DamageToTarget

  • October 26, 2024: 5 Files Changed (although 1 is no longer in the build)
    • Replace 6 bank1calls by moving DrawWholeScreenTextBox from engine/duel/core.asm (bank $01) to home/menus.asm (bank $00)

  • October 26, 2024: 2 Files Changed
    • Replace 2 farcalls by moving CheckWhichDecksToDismantleToBuildSavedDeck from engine/auto_deck_machines.asm (bank $06) to engine/menus/deck_machines.asm (bank $02)

  • October 26, 2024: 4 Files Changed
    • Move DiscardSavedDuelData from bank $01 to bank $04 to (4 bank1calls -> 3 calls and 1 farcall)
    • Remove some redundant code near the calls to said function

  • October 24, 2024: 3 Files Changed
    • Various optimizations in engine/duel/effect_functions.asm that revolve around damage adjustments

  • October 23, 2024: 2 Files Changed
    • Reconfigure a few AI effect commands (SetDefiniteAIDamage is redundant if SetDefiniteDamage was already called)

  • October 22, 2024: 20 Files Changed
    • Perform various optimizations and update a few of the comments in the engine/duel/ai/decks files

  • October 21, 2024: 3 Files Changed
    • Merge the Cowardice Pokémon Power logic (HandleAICowardice) into the HandleAIPkmnPowers function
    • Put HandleAIStepIn in the proper place (after the other functions that are called by HandleAIPkmnPowers)
    • The Energy Trans AI functions were also moved below the HandleAIPkmnPowers functions in the previous commit

  • October 21, 2024: 3 Files Changed
    • Swap some variables in the Potion effect functions and AI logic to eliminate the need for a separate AIPlay_Potion function

  • October 21, 2024: 6 Files Changed
    • Remove the EnergyRemoval_AISelection effect function since Trainer cards don't use AISelection effect commands
    • Replace the call to that function in DiscardEnergyDefendingPokemon_AISelection with a farcall to the real Energy Removal AI logic
    • Move CheckIfEnergyIsUseful from engine/duel/ai/core.asm to engine/duel/ai/common.asm to minimize farcalls

  • October 21, 2024: 7 Files Changed
    • Refactor a lot of functions that loop through DUELVARS_CARD_LOCATIONS

  • October 20, 2024: 3 Files Changed
    • Various optimizations in engine/duel/core.asm, home/duel.asm, and home/substatus.asm

  • October 19, 2024: 9 Files Changed
    • Make a dedicated function for checking if Toxic Gas is in effect (labeled CheckIfPkmnPowersAreCurrentlyDisabled in case other disabling effects are added)

  • October 19, 2024: 1 File Changed
    • Condense the Pokémon Power checks being performed during HandleStrikesBack_AgainstDamagingAttack
    • The changes were spread out over two commits because I mistakenly thought that the developers overlooked something. SECOND COMMIT

  • October 18, 2024: 13 Files Changed
    • Try to standardize the function comments that are used in the engine/duel/ai files (excluding the decks folder)
    • Plus several more code changes in said files (only big change was to _AIProcessHandTrainerCards)
    • A small (but very important) mistake in _AIProcessHandTrainerCards was fixed in This Commit and This Commit

  • October 15, 2024: 16 Files Changed
    • Countless optimizations and refactoring in engine/duel/ai files
    • Several functions in said files were relocated and a few others were completely removed
    • Numerous corrections were also made and some of the functions were even expanded

  • October 10, 2024: 19 Files Changed
    • Miscellaneous optimizations, mostly related to storing information in RAM

  • October 9, 2024: 3 Files Changed
    • Thoroughly review engine/duel/core.asm, updating comments, code, and even some labels
    • Change the name of a subroutine in home/copy.asm into CopyNBytesFromDEToHL and use it in a couple of other files

  • October 4, 2024: 4 Files Changed
    • Thoroughly review the effect functions files, optimizing and occasionally correcting miscellaneous code
    • Update various comments in the effect functions files (also correct RemoveCardFromDuelTempList's output comments in home/duel.asm)
    • Reorder a lot of the individual effect commands (EFFECTCMDTYPE_*) to reflect the actual order of execution

  • October 1, 2024: 1 File Changed
    • Refactor some code and delete a couple of useless lines in home/duel.asm

  • September 30, 2024: 32 Files Changed
    • Add/edit a lot of function comments and move a couple of functions (within the same file)
    • Change several magic numbers to the correct constants and add constants for wLineSeparation

  • September 15, 2024: 1 File Changed
    • Some more comments and minor optimizations in home/substatus.asm

  • September 10, 2024: 28 Files Changed
    • Replace some jumps that skip over a call with a conditional call (e.g. call nz)
    • Replace various instances of 2 numbers being separately loaded into a register pair with a 16-bit load
    • Replace a few uses of jp with jr and remove a few duplicate xor a instructions

  • September 9, 2024: 10 Files Changed
    • Eliminate some more tail calls (replacing a call and subsequent ret with a fallthrough/jr/jp)

  • September 9, 2024: 6 Files Changed
    • Remove some more unreferenced functions from the build

  • September 5, 2024: 3 Files Changed
    • Make some changes to the effect functions files pertaining to hram labels and eliminate some unnecessary functions in the process.
    • A missing ret was added in this commit.

  • September 1, 2024: 11 Files Changed
    • Eliminate some unnecessary loading of card data to wram

  • August 31, 2024: 6 Files Changed
    • Replace call GetNonTurnDuelistVariable with the rst macro for GetTurnDuelistVariable when SwapTurn is being called immediately afterward

  • August 31, 2024: 16 Files Changed
    • Make _GetCardIDFromDeckIndex preserve hl and use it instead of GetCardIDFromDeckIndex when loading the ID into the a register

  • August 30, 2024: 13 Files Changed
    • Update comments and labels for the 7 pairs of identical functions in engine/duel/ai/core.asm and engine/duel/ai/common.asm (and add an 8th)
    • Shuffle some data around in both of these files

  • August 30, 2024: 2 Files Changed
    • Consolidate some identical functions in engine/duel/ai/trainer_cards.asm

  • August 29, 2024: 23 Files Changed
    • Remove some unnecessary ret instructions in the src/scripts files
    • Fix Amanda's booster pack rewards (now Water-focused instead of Lightning)

  • August 29, 2024: 5 Files Changed (1 was deleted)
    • Move all palette data into a single file/bank
    • Add comments to explain what each palette set is used for

  • August 20, 2024: 13 Files Changed
    • Comment out some unnecessary loads and make use of a new function in the home bank: GetCardTypeFromDeckIndex_SaveDE
    • Remove some redundant code in the engine/duel/ai files (e.g. unnecessary stack pushes and pops)
    • Replace some uses of jp in said files with jr or inlined code and eliminate tail calls (replacing a call and subsequent ret with a fallthrough/jr/jp)
    • Rearrange a couple of functions in said files
    • Rename CopyHandCardList and CopyBuffer to CopyListWithFFTerminatorFromHLToDE_Bank5 and CopyListWithFFTerminatorFromHLToDE_Bank8

  • August 20, 2024: 4 Files Changed
    • Fix register preservation comments for BankPushROM, BankPushROM2, and GetCardType
    • Adjust push/pop instructions surrounding calls to GetCardType

  • August 20, 2024: 13 Files Changed
    • Try to standardize the function comments that are used in the unsorted engine files
    • Plus some labeling/corrections/optimizations/shuffling of functions in said files

  • August 18, 2024: 3 Files Changed
    • Delete a few unnecessary functions from home/duel_menu.asm

  • August 18, 2024: 21 Files Changed
    • Make SwapTurn a restart vector and replace each call with rst (you could also replace each jp with rst and a subsequent ret to free up even more space, at the cost of 4 cycles per byte saved)

  • August 18, 2024: 5 Files Changed
    • Move some functions from home/duel.asm and home/substatus.asm to engine/duel/core.asm
    • Shuffle a few functions in the home bank

  • August 17, 2024: 4 Files Changed
    • Use in-lined bank switches instead of farcall for a few home bank functions and do the opposite for a couple of rarely used functions that are related to Mankey's Peek

  • August 17, 2024: 26 Files Changed
    • Make BankSwitchROM a restart vector and replace each call with rst (you could also replace each jp with rst and a subsequent ret to free up even more space in the home bank, at the cost of 4 cycles per byte saved)

  • August 17, 2024: 28 Files Changed
    • Use Electro's tutorial to make GetTurnDuelistVariable a restart vector and replace each call GetTurnDuelistVariable with an rst macro

  • August 17, 2024: 13 Files Changed
    • Remove all references to the debug_nop restart vector

  • August 16, 2024: 10 Files Changed
    • Replace numerous instances of call DisableSRAM and a later ret with jp DisableSRAM

  • August 16, 2024: 7 Files Changed
    • Replace numerous instances of call SwapTurn and a later ret with jp SwapTurn

  • August 16, 2024: 19 Files Changed
    • Eliminate some redundant bank 1 functions (mainly from engine/menus/common.asm)

  • August 15, 2024: 5 Files Changed
    • Return FillBGMapLineWithA and FillDEWithA to engine/menu/deck_configuration.asm
    • Remove some unnecessary push af and pop af instructions surrounding calls of BCCoordToBGMap0Address

  • August 14, 2024: 8 Files Changed
    • Create engine/menus/gift_center.core.asm and move gift center functions in engine/menus/deck_configuration and engine/menu/deck_machine.asm to the new file
    • Organize functions in engine/menus/printer.asm (after importing PrinterMenu_DeckConfiguration)
    • Move and label unrelated menu parameter data from engine/menus/gift_center.asm to engine/menus/labels.asm

  • August 13, 2024: 5 Files Changed
    • Move CopyNBytesFromHLToDE from engine/menu/deck_configuration.asm to home/copy.asm
    • Refactor several functions to make use of the new home bank function

  • August 13, 2024: 16 Files Changed
    • Add InitTextPrinting_PrintTextNoDelay and InitTextPrinting_ProcessText functions
    • Edit some of the comments in home/menus.asm, home/print_text.asm, and home_process_text.asm, plus a few minor optimizations

  • August 11, 2024: 5 Files Changed
    • Move coss toss functions from engine/duel.core.asm to a separate file that's linked with a less important bank
    • Align the printed coin tally numbers

  • August 11, 2024: 11 Files Changed
    • Refactor and better organize all functions associated with writing numbers
    • This commit swapped the FULLWIDTH3 fonts for TX_SYMBOL fonts in the fullwidth text functions, to avoid overwriting the numbers on screen with other font tiles once VRAM runs out of space for new font tiles

  • August 9, 2024: 1 File Changed
    • Comment out some unreferenced data in home/sgb.asm

  • August 8, 2024: 10 Files Changed
    • Standardize the functions responsible for playing the confirm/cancel sound effects
    • Eliminate some unnecessary uses of farcall

  • August 5, 2024: 1 File Changed
    • Review and clean up engine/menus/deck_machine.asm
    • This file also had a small bug which was fixed in this commit

  • August 4, 2024: 8 Files Changed
    • Eliminate 8 uses of farcall by moving HandleAIMewtwoDeckStrategy from engine/duel/ai/common.asm to engine/duel/ai/core.asm

  • August 4, 2024: 6 Files Changed (1 was simply deleted)
    • Some refactoring to make use of the DoAFrames function
    • Plus some minor home bank clean up

  • August 4, 2024: 5 Files Changed
    • Try to standardize the function comments that are used in the engine/link files
    • Plus some corrections/optimizations in said files

  • August 2, 2024: 2 Files Changed
    • Move Prophecy/Pokedex player select effects to engine/duel/effect_functions2.asm

  • August 2, 2024: 5 Files Changed
    • Move several functions from engine/duel/core.asm to engine/duel/effect_functions.asm
    • Label numerous functions in engine/duel/core.asm and engine/duel/effect_functions.asm

  • August 2, 2024: 3 Files Changed
    • Move a few functions from banks 0/1 to bank 6 (engine/link/link_duel.asm)

  • August 1, 2024: 2 Files Changed
    • Restructure TossCoin functions in home/coin_toss.asm
    • Eliminate a redundant call in home/print_text.asm

  • August 1, 2024: 2 Files Changed
    • Try to standardize the function comments that are used in engine/duel/core.asm
    • Plus some corrections/optimizations/shuffling of functions in said file

  • July 30, 2024: 3 Files Changed
    • Try to standardize the function comments that are used in the engine/duel/animations files
    • Plus some corrections/optimizations/shuffling of functions in said files

  • July 25, 2024: 2 Files Changed
    • Delete the BankswitchVRAM function and replace every bank20 call BankswitchVRAM and jp BankswitchVRAM with the inlined code

  • July 24, 2024: 9 Files Changed
    • Eliminate some redundant stack pushes and pops (mostly in ai files)

  • July 24, 2024: 2 Files Changed
    • Eliminate some redundant code in home/duel.asm and home/serial.asm
    • Revise a lot of function comments in home/duel.asm


  • July 21, 2024: 3 Files Changed
    • Try to standardize the function comments that are used in the effect functions files
    • Plus some corrections/optimizations/shuffling of functions in said files

  • July 14, 2024: 1 File Changed
    • Add some more comments to home/substatus.asm

  • June 26, 2024: 9 Files Changed
    • Remove some now unreferenced material and put it where it belongs (in debug files)

  • June 26, 2024: 17 Files Changed
    • Try to standardize the function comments that are used in the engine/menus files
    • Plus some corrections/optimizations/shuffling of functions in said files

  • June 24, 2024: 6 Files Changed
    • Try to standardize the function comments that are used in the engine/overworld files
    • Also perform many small optimizations in the engine/overworld files

  • June 22, 2024: 19 Files Changed
    • Delete Func_7415, SetNoLineSeparation, and SetOneLineSeparation from engine/duel.core.asm, replacing any calls with the 2 lines of code from the deleted function
    • Move Func_61a1 to engine/duel/effect_functions.asm
    • Move ZeroObjectPositionsAndToggleOAMCopy to home/objects.asm
    • Move WaitAttackAnimation to home/duel.asm
    • Move SetCardListHeader and SetCardListInfoBoxText to home/menus.asm

  • June 22, 2024: 9 Files Changed
    • Add comments related to setting the carry flag for a variety of home bank functions
    • Perform minor optimizations in home/duel.asm related to setting the carry flag

  • June 21, 2024: 3 Files Changed
    • Try to standardize the function comments that are used in engine/bank20.asm and the engine/sequences files
    • Remove some unnecessary code from the aforementioned files

  • June 20, 2024: 3 Files Changed
    • Move debug.asm from engine/menus and debug_player_coordinates.asm from engine/overworld to engine/unused

  • June 20, 2024: 4 Files Changed
    • Try to standardize the function comments that are used in the engine/gfx files
    • Remove several unnecessary stack pushes and pops in engine/gfx/sprite_animations.asm

  • June 19, 2024: 7 Files Changed (Plus 5 Files Relocated)
    • Comment out a few more unreferenced functions in the home bank
    • Move debug_sprites, unused_copyright.asm, and unused_save_validation.asm from engine to engine/unused
    • Move debug_main.asm and unknown.asm from engine/menus to engine/unused

  • June 19, 2024: 1 File Changed
    • Delete JPWriteByteToBGMap0 and add a slight optimization for PrintDuelResultStats

  • June 18, 2024: 6 Files Changed
    • Delete ResetDoFrameFunction functions, and replace each call with the requisite lines of code

  • June 18, 2024: 21 Files Changed (4 of these were removed from the repository)
    • Shuffle some functions in the home bank for better organization
    • Delete the redundant JPHblankCopyDataHLtoDE function
    • Add a missing colon to fix a build error from the commit below this one

  • June 18, 2024: 5 Files Changed
    • Shuffle some functions in the home bank that are related to printing numbers (and use more accurate labels)

  • June 17, 2024: 3 Files Changed
    • Reorganize the functions in home/substatus.asm

  • June 17, 2024: 51 Files Changed
    • Try to standardize the function comments that are used in the home bank files
    • Also eliminate some redundant code and swap out a few more ld instructions with ldh
    • Further adjustments made in This Commit

  • June 9, 2024: 6 Files Changed
    • Remove some unnecessary uses of farcall (instead of call) and ld [hff__], a (instead of ldh [hff__])

  • June 8, 2024: 1 File Changed
    • Revise/add code comments and perform minor code optimizations in engine/save.asm

  • June 8, 2024: 1 File Changed
    • Revise/add code comments and perform minor code optimizations in engine/overworld_map.asm

  • June 6, 2024: 40 Files Changed
    • Eliminate most tail calls in the non-ai engine files (replacing a call and subsequent ret with a fallthrough/jr/jp)
    • Rearrange some functions in the non-ai engine files to replace some uses of jp with jr or a fallthrough

  • June 3, 2024: 22 Files Changed
    • Rearrange some functions in the home bank to replace some uses of jp with jr or a fallthrough
    • Eliminate remaining home bank tail calls (replacing a call and subsequent ret with a fallthrough/jr/jp)
      • Intentially ignored BankpopROM tail calls (that function can't be jumped to)

  • May 29, 2024: 35 Files Changed
    • Refactor code to minimize use of unconditional jr instructions
    • Other minor optimizations, most of which involve jumps

  • May 27, 2024: 11 Files Changed
    • Refactor a variety of code pertaining to the effect functions
    • Fix numerous errors in the effect functions code
    • Replace some hexadecimal numbers with the appropriate icon tile offset constants
    • Miscellaneous Text Changes

  • May 17, 2024: 3 Files Changed
    • Review most of the code comments in the effect functions files
    • Replace many uses of jp with jr and fallthroughs, moving functions as necessary
    • Refactor several effect functions

  • May 10, 2024: 2 Files Changed
    • Refactor some code in src/engine/duel/effect_functions2.asm

  • May 10, 2024: 2 Files Changed
    • Refactor some code in src/engine/duel/effect_functions.asm

  • May 8, 2024: 36 Files Changed
    • Remove some redundant code
    • Use jr instead of jp for numerous shorter jumps
    • Replace some conditional jumps to returns with conditional returns (e.g. ret z instead of jr z, .done)
    • Refactor some code in src/engine/duel/effect_functions.asm and effect_functions2.asm
    • Removed references to Sand Attack substatus (since it was merged with Smokescreen substatus)
    • The changes to AIDecide_GustOfWind crash the game (Link to Bug Fix)

  • May 7, 2024: 9 Files Changed
    • Remove some redundant code

  • May 6, 2024: 9 Files Changed (1 is Bug Fix)
    • Eliminate some home bank tail calls (replacing a call and subsequent ret with a fallthrough/jr/jp)
    • Replace some conditional jumps to returns with conditional returns (e.g. ret z instead of jr z, .done)
    • Remove some redundant code
    • Refactor some code in src/engine/duel/effect_functions.asm
    • Add a couple of division functions to src/home/math.asm

  • May 4, 2024: 7 Files Changed
    • Combine various subroutines related to setting or resetting the carry flag for Effect Functions and AI Logic banks

  • May 4, 2024: 52 Files Changed
    • Comment out most unreferenced functions and move them to a section at the end of each file
    • Unlink debug_main.asm, debug_sprites.asm, unknown.asm, unused_copyright.asm, and unused_save_validation.asm from src/main.asm and src/layout.link
    • Remove some redundant lines of code
    • Replace some conditional jumps to returns with conditional returns (e.g. ret z instead of jr z, .done)
    • Replace various conditional jumps to set carry subroutines in the home bank with jumps to the ReturnCarry function

  • May 4, 2024: 12 Files Changed
    • Replace any mistaken bank1calls with calls
    • Label several unlabeled functions in src/engine/duel/core.asm and effect_functions.asm

  • April 30, 2024: 26 Files Changed
    • Comment out many unreferenced functions in the home bank
    • Remove src/home/ai.asm and src/home/damage.asm and unlink them from src/home.asm
    • Transfer some functions out of the home banks
    • Eliminate some same bank tail calls (replacing a call and subsequent ret with a fallthrough/jr/jp)
    • Replace some mistaken uses of farcalls and bank1call with call
    • Relocating some of the home bank functions led to some crashes (Reversion #1, Reversion #2, Reversion #3)

  • April 29, 2024: 14 Files Changed
    • Remove some redundant lines of code
    • Eliminate some same bank tail calls (replacing a call and subsequent ret with a fallthrough/jr/jp)
    • Replace some conditional jumps to returns with conditional returns (e.g. ret z instead of jr z, .done)

  • April 15, 2024: 19 Files Changed (Half are Miscellaneous Changes)
    • Massively condense Effect Commands and Effect Functions


Miscellaneous Changes

  • November 8, 2024: 5 Files Changed
    • Increase minimum probability for a type when generating a booster pack card to 5% (1/160 -> 8/160), to encourage more variety
    • Officially add Double Colorless Energy to the Mystery set and remove the code that allows any Energy card to be included in a booster, regardless of set
      • Energy cards are still treated differently in the card album to ensure they appear at the end of the set list
    • Optimize many of the functions in engine/booster_packs.asm
    • Further changes were made to the card album Energy code in the following commit, to more easily adapt to possible changes to the card pool

  • November 7, 2024: 12 Files Changed
    • Update numerous aspects of the Card Album display (includes some changes to texts and ram, as well as editing the Fullwidth0 question mark)
    • Also optimize various code and update some of the comments and labels in engine/menus/card_album.asm

  • October 26, 2024: 7 Files Changed
    • Change Unknown2 byte for Pokémon card data to PokemonFlags and update constants, card data, and AI logic accordingly

  • October 23, 2024: 6 Files Changed
    • Update various attack data, AI logic, and constants relating to the attack flags that are stored in card data

  • September 10, 2024: 2 Files Changed (1 was deleted)
    • Remove remaining rom comparison references in Makefile and delete rom.sha1

  • September 9, 2024: 128 Files Deleted
    • Remove the .match files for the map graphics data

  • August 27, 2024: 4 Files Changed
    • Update the palettes and icons for Ronald's and the Player's duelist portraits (most changes were taken from the sequel's portraits)
    • Identify palettes that are used for all of the duelist portraits

  • August 15, 2024: 3 Files Changed
    • Make the phantom cards (Venusaur Lv64 and Mew Lv15) obtainable without using Card Pop! by adding them to the list of possible Challenge Cup prizes

  • August 12, 2024: 6 Files Changed
    • Pokedex numbers now use 2 bytes to support Pokemon from all generations
    • Although, the printing function will have to be edited if it exceeds 3 digits (1,000+)


  • June 13, 2024: 1 File Changed
    • Make the default player name (Mark) mixed case and have it be displayed with halfwidth font tiles to match the rest of the game's text

  • June 9, 2024: 1 File Changed (technically 2 since I renamed the original sprite)
    • Use JappaWakka's updated Double Colorless Energy sprite (with 2 Energy symbols)

  • June 7, 2024: 17 Files Changed
    • Revise various texts and combine some texts that are identical

  • June 5, 2024: 10 Files Changed
    • Make small adjustments to the menu screens related to deck selection
    • Replace hand_cards icon with a deck_box icon I made (used to represent the active deck)
    • Also add a deck icon next to the other completed decks on the deck selection screens
    • Revise/add code comments and perform minor code optimizations in both engine/menus/deck_configuration.asm and engine/menus/deck/selection.asm
    • Replace all uses of ld a, [hff__] in the repository with ldh a, [hff__]
    • Alter the number fonts stored in gfx/fonts/full_width?/0_2_digits_kanji1.png

  • June 2, 2024: 16 Files Changed
    • Update the Glossary (both the overall display and the actual text information)
    • Increase the size of the font tile section in vram when viewing the Glossary from a duel
    • Create many new fullwidth and halfwidth font characters, plus 2 new text box symbols
    • Move a lot of texts from text3.asm to text2.asm (Needed more space for Glossary)
    • Move a lot of texts from text2.asm to text1.asm
    • Make some minor adjustments to several of the title menu texts in text3.asm
    • The newly added DrawTextBoxSeparator function was later fixed in This Commit.

  • May 30, 2024: 1 File Changed
    • Attempt to identify all unused wram bytes (total is around 2 kilobytes)
    • Edit some of the existing comments in wram.asm and create some new ones as well

  • May 21, 2024: 22 Files Changed
    • Fix minor typos and remove end of line spaces in the text files
    • Adjust texts to better fit the 2 line display used by the text boxes
    • Rewrite some of the larger texts, like glossary pages and tutorial messages
    • Use spaces to center most of the Trainer and Energy card descriptions

  • May 15, 2024: 1 File Changed
    • Decrease the wait time during the overworld section of the game's intro

  • May 15, 2024: 2 Files Changed
    • Give Text Offsets its own bank (instead of sharing one with Text 1)
    • Text pointers were later adjusted in This Commit

  • May 12, 2024: 4 Files Changed
    • Add text speed constants and increase the default text speed to the fastest setting

  • May 11, 2024: 1 File Changed
    • Adjust scroll arrows in the card album (no longer on top of the border)

  • May 10, 2024: 8 Files Changed
    • Replace the "No" text symbol with a fullwidth "#" and display leading zeroes in Pokédex numbers

  • May 8, 2024: 13 Files Changed
    • Remove dead space (ds $--) in the GFX and Text banks

  • May 6, 2024: 1 File Changed
    • Change the name of the rom file produced by this repository from "poketcg.gbc" to "poketcg_v2.gbc"

  • April 26, 2024: 1 File Changed
    • Align the list numbers in the top right of the card list header

  • April 16, 2024: 3 Files Changed
    • Update fullwidth and halfwidth font graphics and some of the box messages
    • Further Adjustments to box_messages.png in This Commit

  • April 16, 2024: 1 File Changed
    • Replace the word "Hand" with the hand icon from the duel graphics in the play area screens

  • April 15, 2024: 19 Files Changed (Half are Code Optimization)
    • Remove rom matching comparison
    • Split "Decks" and "Cards" into 2 banks
    • Add another Text bank, which uses the newly created text14.asm
    • Add another Effect Functions bank, which uses the newly created effect_functions2.asm
    • Update a wide variety of duel texts


New Features

  • November 5, 2024: 12 Files Changed
    • Implement new booster pack card list display that informs the player which cards from the booster pack are newly obtained (using a red ! symbol)
      • Most of the edited functions from engine/duel/core.asm were originally located in home/menus.asm
    • Separate BoosterPackText into 2 texts: 1 for the card album's table of contents and another for the booster pack card list header


  • June 1, 2024: 2 Files Changed
    • Display lowercase halfwidth font characters
    • Increase size of half_width.png to account for future additions

  • May 15, 2024: 5 Files Changed
    • Add support for common accented characters (halfwidth and fullwidth)
    • Expand the halfwidth font graphics (at the cost of some kanji)
    • This commit caused a major text display glitch (Link to Bug Fix)

  • May 14, 2024: 3 Files Changed
    • The practice game with Sam at the start of the game is now optional

  • May 10, 2024: 1 File Changed
    • Add a scroll arrow to a Trainer or Pokémon attack card page when the description is continued on another page (credit to Oats)

  • April 16, 2024: 4 Files Changed
    • Display the Promostar symbol on card pages

  • April 15, 2024: 1 File Changed
    • Replace damage counter display with "current HP/max HP"
    • The maximum HP value of a Pokémon is now 250 (was 120)
    • Reference the engine/duel/core.asm from the current version of poketcg_v2 if attempting to copy this change to another repository (some optimizations were made)

  • April 15, 2024: 1 File Changed
    • Cards can now have Weakness or Resistance to Colorless (Use WR_COLORLESS)


Other Bug Fixes And Commit Reversions

  • October 21, 2024: 1 File Changed
    • Fix an oversight (merging 2 jumps when one of them was conditional) with the new _AIProcessHandTrainerCards code
    • Ended up making another oversight (missing pop hl) that was addressed in This Commit
    • These are bug fixes for This Commit

  • September 11, 2024: 3 Files Changed
    • Make DrawTextBoxSeparator function SGB-compatible (it no longer crashes the game)
    • This is a bug fix for This Commit

  • August 18, 2024: 1 File Changed
    • Revert the textpointers because it screws up the printing of some empty texts (plus everything works fine without making any adjustments)
    • This completely undoes This Commit

  • August 2, 2024: 1 File Changed
    • Change a conditional return to a conditional jump to avoid missing a couple of pops
    • This is a bug fix for This Commit

  • June 11, 2024: 1 File Changed
    • Use farcall when CheckIfCanEvolveInto_BasicToStage2 is accessed by the AI Logic 2 bank
    • This is a bug fix for This Commit

  • May 27, 2024: 1 File Changed
    • Revert a change to AIDecide_GustOfWind that was causing the game to crash
    • This is a bug fix for This Commit

  • May 24, 2024: 5 Files Changed
    • Put a few more functions back in the home bank
    • At least the booster pack one was causing a crash
    • This is a bug fix for This Commit

  • May 23, 2024: 8 Files Changed
    • Put all of the animation and palette data back in their original locations
    • This completely undoes This Commit that sorted all of the animation and palette data in the proper banks

  • May 22, 2024: 2 Files Changed
    • Revert some text changes relating to duel texts
    • This cancels out some of the changes from This Commit

  • May 15, 2024: 1 File Changed
    • Removed Fullwidth4 instead of 1 & 2 to fix the wrong characters being displayed
    • This is a major bug fix for This Commit

  • May 8, 2024: 2 Files Changed
    • Put Func_3bb5 back in the home bank
    • This is a possible bug fix for This Commit

  • May 7, 2024: 4 Files Changed
    • Put AIDoAction functions back in the home bank
    • This is a major bug fix for This Commit

  • May 7, 2024: 4 Files Changed
    • Revert some set carry flag optimizations in the AI Logic 1 bank
    • This cancels out some of the changes from This Commit

  • April 15, 2024: 8 Files Changed
    • Fix some text display issues caused by the first commit
    • This is a minor bug fix for This Commit


Potential Hacks

  • August 16, 2024: Only Need to Change 1 File
    • Instructions for giving the Player a full card collection (credit to Oats)

  • May 14, 2024: Only Need to Change 1 File
    • Instructions for skipping the mandatory practice duel with Sam
    • This is less relevant now that the practice duel is optional