diff options
| author | Daniel Harding <33dannye@gmail.com> | 2018-03-15 22:59:31 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-03-15 22:59:31 -0500 |
| commit | d5e21ce300222d80c3e4c35ada6451a67817a9ea (patch) | |
| tree | cf4f10d597cf4e29764177b20d41bef590ef81ca /src/constants | |
| parent | 96b32412d82bdee2756b1a300b05d2647da9ad1f (diff) | |
| parent | 9b94866531970895c0f059ba123273e3959196b8 (diff) | |
Merge pull request #37 from xCrystal/master
Bank 1 duel engine disassembly ; general labeling and documentation ; more text symbols ; split duel graphics
Diffstat (limited to 'src/constants')
| -rw-r--r-- | src/constants/card_data_constants.asm | 17 | ||||
| -rw-r--r-- | src/constants/duel_constants.asm | 108 | ||||
| -rw-r--r-- | src/constants/gfx_constants.asm | 4 | ||||
| -rw-r--r-- | src/constants/hardware_constants.asm | 1 | ||||
| -rw-r--r-- | src/constants/text_constants.asm | 62 |
5 files changed, 135 insertions, 57 deletions
diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 6b6d299..e857aa6 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -96,6 +96,7 @@ TYPE_PKMN_PSYCHIC EQU PSYCHIC TYPE_PKMN_COLORLESS EQU COLORLESS TYPE_PKMN_UNUSED EQU UNUSED_TYPE const_def TYPE_PKMN_UNUSED + 1 - TYPE_PKMN_FIRE +TYPE_ENERGY EQU const_value const TYPE_ENERGY_FIRE ; $08 const TYPE_ENERGY_GRASS ; $09 const TYPE_ENERGY_LIGHTNING ; $0a @@ -183,3 +184,19 @@ FLAG_3_BIT_1 EQU %00000010 ; special CARD_DATA_RETREAT_COST values UNABLE_RETREAT EQU $64 + +; wCardPageNumber constants +CARDPAGE_POKEMON_OVERVIEW EQU $01 +CARDPAGE_POKEMON_MOVE1_1 EQU $02 +CARDPAGE_POKEMON_MOVE1_2 EQU $03 +CARDPAGE_POKEMON_MOVE2_1 EQU $04 +CARDPAGE_POKEMON_MOVE2_2 EQU $05 +CARDPAGE_POKEMON_DESCRIPTION EQU $06 +CARDPAGE_ENERGY EQU $09 +CARDPAGE_TRAINER_1 EQU $0d +CARDPAGE_TRAINER_2 EQU $0e + +; card type header constants ($10-tile headers in DuelCardHeaderGraphics) +HEADER_TRAINER EQU $00 +HEADER_ENERGY EQU $01 +HEADER_POKEMON EQU $02 diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index d033722..eaa9a65 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -1,14 +1,25 @@ MAX_BENCH_POKEMON EQU 5 MAX_PLAY_AREA_POKEMON EQU 6 ; arena + bench +MAX_HP EQU 120 +HP_BAR_LENGTH EQU MAX_HP / 10 ; hWhoseTurn constants PLAYER_TURN EQUS "HIGH(wPlayerDuelVariables)" OPPONENT_TURN EQUS "HIGH(wOpponentDuelVariables)" +; wDuelType constants +DUELTYPE_LINK EQU $1 +DUELTYPE_PRACTICE EQU $80 +; for normal duels (vs AI), wDuelType is $80 + [wOpponentDeckID] + ; wDuelFinished constants -DUEL_WON EQU $1 -DUEL_LOST EQU $2 -DUEL_DRAW EQU $3 +TURN_PLAYER_WON EQU $1 +TURN_PLAYER_LOST EQU $2 +TURN_PLAYER_TIED EQU $3 + +; wDuelResult constants +DUEL_WIN EQU $0 +DUEL_LOSS EQU $1 ; Box message id's const_def @@ -21,42 +32,55 @@ DUEL_DRAW EQU $3 const BOXMSG_COIN_TOSS ; wPlayerDuelVariables or wOpponentDuelVariables constants -DUELVARS_CARD_LOCATIONS EQUS "LOW(wPlayerCardLocations)" ; 00 -DUELVARS_HAND EQUS "LOW(wPlayerHand)" ; 42 -DUELVARS_DECK_CARDS EQUS "LOW(wPlayerDeckCards)" ; 7e -DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK EQUS "LOW(wPlayerNumberOfCardsNotInDeck)" ; ba -DUELVARS_ARENA_CARD EQUS "LOW(wPlayerArenaCard)" ; bb -DUELVARS_BENCH EQUS "LOW(wPlayerBench)" ; bc -DUELVARS_ARENA_CARD_HP EQUS "LOW(wPlayerArenaCardHP)" ; c8 -DUELVARS_BENCH1_CARD_HP EQUS "LOW(wPlayerBench1CardHP)" ; c9 -DUELVARS_BENCH2_CARD_HP EQUS "LOW(wPlayerBench2CardHP)" ; ca -DUELVARS_BENCH3_CARD_HP EQUS "LOW(wPlayerBench3CardHP)" ; cb -DUELVARS_BENCH4_CARD_HP EQUS "LOW(wPlayerBench4CardHP)" ; cc -DUELVARS_BENCH5_CARD_HP EQUS "LOW(wPlayerBench5CardHP)" ; cd -DUELVARS_ARENA_CARD_STAGE EQUS "LOW(wPlayerArenaCardStage)" ; ce -DUELVARS_BENCH1_CARD_STAGE EQUS "LOW(wPlayerBench1CardStage)" ; cf -DUELVARS_BENCH2_CARD_STAGE EQUS "LOW(wPlayerBench2CardStage)" ; d0 -DUELVARS_BENCH3_CARD_STAGE EQUS "LOW(wPlayerBench3CardStage)" ; d1 -DUELVARS_BENCH4_CARD_STAGE EQUS "LOW(wPlayerBench4CardStage)" ; d2 -DUELVARS_BENCH5_CARD_STAGE EQUS "LOW(wPlayerBench5CardStage)" ; d3 -DUELVARS_ARENA_CARD_CHANGED_TYPE EQUS "LOW(wPlayerArenaCardChangedType)" ; d4 -DUELVARS_BENCH1_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench1CardChangedType)" ; d5 -DUELVARS_BENCH2_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench2CardChangedType)" ; d6 -DUELVARS_BENCH3_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench3CardChangedType)" ; d7 -DUELVARS_BENCH4_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench4CardChangedType)" ; d8 -DUELVARS_BENCH5_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench5CardChangedType)" ; d9 -DUELVARS_ARENA_CARD_SUBSTATUS1 EQUS "LOW(wPlayerArenaCardSubstatus1)" ; e7 -DUELVARS_ARENA_CARD_SUBSTATUS2 EQUS "LOW(wPlayerArenaCardSubstatus2)" ; e8 -DUELVARS_ARENA_CARD_CHANGED_WEAKNESS EQUS "LOW(wPlayerArenaCardChangedWeakness)" ; e9 -DUELVARS_ARENA_CARD_CHANGED_RESISTANCE EQUS "LOW(wPlayerArenaCardChangedResistance)" ; ea -DUELVARS_ARENA_CARD_SUBSTATUS3 EQUS "LOW(wPlayerArenaCardSubstatus3)" ; eb -DUELVARS_PRIZES EQUS "LOW(wPlayerPrizes)" ; ec -DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE EQUS "LOW(wPlayerNumberOfCardsInDiscardPile)" ; ed -DUELVARS_NUMBER_OF_CARDS_IN_HAND EQUS "LOW(wPlayerNumberOfCardsInHand)" ; ee -DUELVARS_NUMBER_OF_POKEMON_IN_PLAY EQUS "LOW(wPlayerNumberOfPokemonInPlay)" ; ef -DUELVARS_ARENA_CARD_STATUS EQUS "LOW(wPlayerArenaCardStatus)" ; f0 -DUELVARS_DUELIST_TYPE EQUS "LOW(wPlayerDuelistType)" ; f1 -DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX EQUS "LOW(wPlayerArenaCardDisabledMoveIndex)" ; f2 +DUELVARS_CARD_LOCATIONS EQUS "LOW(wPlayerCardLocations)" ; 00 +DUELVARS_HAND EQUS "LOW(wPlayerHand)" ; 42 +DUELVARS_DECK_CARDS EQUS "LOW(wPlayerDeckCards)" ; 7e +DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK EQUS "LOW(wPlayerNumberOfCardsNotInDeck)" ; ba +DUELVARS_ARENA_CARD EQUS "LOW(wPlayerArenaCard)" ; bb +DUELVARS_BENCH EQUS "LOW(wPlayerBench)" ; bc +DUELVARS_ARENA_CARD_FLAGS_C2 EQU $c2 +DUELVARS_ARENA_CARD_HP EQUS "LOW(wPlayerArenaCardHP)" ; c8 +DUELVARS_BENCH1_CARD_HP EQUS "LOW(wPlayerBench1CardHP)" ; c9 +DUELVARS_BENCH2_CARD_HP EQUS "LOW(wPlayerBench2CardHP)" ; ca +DUELVARS_BENCH3_CARD_HP EQUS "LOW(wPlayerBench3CardHP)" ; cb +DUELVARS_BENCH4_CARD_HP EQUS "LOW(wPlayerBench4CardHP)" ; cc +DUELVARS_BENCH5_CARD_HP EQUS "LOW(wPlayerBench5CardHP)" ; cd +DUELVARS_ARENA_CARD_STAGE EQUS "LOW(wPlayerArenaCardStage)" ; ce +DUELVARS_BENCH1_CARD_STAGE EQUS "LOW(wPlayerBench1CardStage)" ; cf +DUELVARS_BENCH2_CARD_STAGE EQUS "LOW(wPlayerBench2CardStage)" ; d0 +DUELVARS_BENCH3_CARD_STAGE EQUS "LOW(wPlayerBench3CardStage)" ; d1 +DUELVARS_BENCH4_CARD_STAGE EQUS "LOW(wPlayerBench4CardStage)" ; d2 +DUELVARS_BENCH5_CARD_STAGE EQUS "LOW(wPlayerBench5CardStage)" ; d3 +DUELVARS_ARENA_CARD_CHANGED_TYPE EQUS "LOW(wPlayerArenaCardChangedType)" ; d4 +DUELVARS_BENCH1_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench1CardChangedType)" ; d5 +DUELVARS_BENCH2_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench2CardChangedType)" ; d6 +DUELVARS_BENCH3_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench3CardChangedType)" ; d7 +DUELVARS_BENCH4_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench4CardChangedType)" ; d8 +DUELVARS_BENCH5_CARD_CHANGED_TYPE EQUS "LOW(wPlayerBench5CardChangedType)" ; d9 +DUELVARS_ARENA_CARD_ATTACHED_DEFENDER EQUS "LOW(wPlayerArenaCardAttachedDefender)" ; da +DUELVARS_BENCH1_CARD_ATTACHED_DEFENDER EQUS "LOW(wPlayerBench1CardAttachedDefender)" ; db +DUELVARS_BENCH2_CARD_ATTACHED_DEFENDER EQUS "LOW(wPlayerBench2CardAttachedDefender)" ; dc +DUELVARS_BENCH3_CARD_ATTACHED_DEFENDER EQUS "LOW(wPlayerBench3CardAttachedDefender)" ; dd +DUELVARS_BENCH4_CARD_ATTACHED_DEFENDER EQUS "LOW(wPlayerBench4CardAttachedDefender)" ; de +DUELVARS_BENCH5_CARD_ATTACHED_DEFENDER EQUS "LOW(wPlayerBench5CardAttachedDefender)" ; df +DUELVARS_ARENA_CARD_ATTACHED_PLUSPOWER EQUS "LOW(wPlayerArenaCardAttachedPluspower)" ; e0 +DUELVARS_BENCH1_CARD_ATTACHED_PLUSPOWER EQUS "LOW(wPlayerBench1CardAttachedPluspower)" ; e1 +DUELVARS_BENCH2_CARD_ATTACHED_PLUSPOWER EQUS "LOW(wPlayerBench2CardAttachedPluspower)" ; e2 +DUELVARS_BENCH3_CARD_ATTACHED_PLUSPOWER EQUS "LOW(wPlayerBench3CardAttachedPluspower)" ; e3 +DUELVARS_BENCH4_CARD_ATTACHED_PLUSPOWER EQUS "LOW(wPlayerBench4CardAttachedPluspower)" ; e4 +DUELVARS_BENCH5_CARD_ATTACHED_PLUSPOWER EQUS "LOW(wPlayerBench5CardAttachedPluspower)" ; e5 +DUELVARS_ARENA_CARD_SUBSTATUS1 EQUS "LOW(wPlayerArenaCardSubstatus1)" ; e7 +DUELVARS_ARENA_CARD_SUBSTATUS2 EQUS "LOW(wPlayerArenaCardSubstatus2)" ; e8 +DUELVARS_ARENA_CARD_CHANGED_WEAKNESS EQUS "LOW(wPlayerArenaCardChangedWeakness)" ; e9 +DUELVARS_ARENA_CARD_CHANGED_RESISTANCE EQUS "LOW(wPlayerArenaCardChangedResistance)" ; ea +DUELVARS_ARENA_CARD_SUBSTATUS3 EQUS "LOW(wPlayerArenaCardSubstatus3)" ; eb +DUELVARS_PRIZES EQUS "LOW(wPlayerPrizes)" ; ec +DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE EQUS "LOW(wPlayerNumberOfCardsInDiscardPile)" ; ed +DUELVARS_NUMBER_OF_CARDS_IN_HAND EQUS "LOW(wPlayerNumberOfCardsInHand)" ; ee +DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA EQUS "LOW(wPlayerNumberOfPokemonInPlayArea)" ; ef +DUELVARS_ARENA_CARD_STATUS EQUS "LOW(wPlayerArenaCardStatus)" ; f0 +DUELVARS_DUELIST_TYPE EQUS "LOW(wPlayerDuelistType)" ; f1 +DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX EQUS "LOW(wPlayerArenaCardDisabledMoveIndex)" ; f2 ; card location constants (DUELVARS_CARD_LOCATIONS) CARD_LOCATION_DECK EQU $00 @@ -87,7 +111,7 @@ PLAY_AREA_BENCH_5 EQU $5 ; duelist types (DUELVARS_DUELIST_TYPE) DUELIST_TYPE_PLAYER EQU $00 DUELIST_TYPE_LINK_OPP EQU $01 -DUELIST_TYPE_AI_OPP EQU $80 +DUELIST_TYPE_AI_OPP EQU $80 ; $80 + [wOpponentDeckID] ; status conditions (DUELVARS_ARENA_CARD_STATUS) ; two statuses can be combined if they are identified by a different nybble @@ -129,6 +153,10 @@ SUBSTATUS2_GROWL EQU $12 SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE EQU 0 SUBSTATUS3_HEADACHE EQU 1 +; DUELVARS_ARENA_CARD_FLAGS_C2 constants +CAN_EVOLVE_THIS_TURN_F EQU 7 +CAN_EVOLVE_THIS_TURN EQU 1 << CAN_EVOLVE_THIS_TURN_F + ; wNoDamageOrEffect constants NO_DAMAGE_OR_EFFECT_AGILITY EQU $01 NO_DAMAGE_OR_EFFECT_BARRIER EQU $02 diff --git a/src/constants/gfx_constants.asm b/src/constants/gfx_constants.asm index 2f5ca4a..f5915d3 100644 --- a/src/constants/gfx_constants.asm +++ b/src/constants/gfx_constants.asm @@ -8,9 +8,11 @@ BG_MAP_HEIGHT EQU 32 ; tiles ; cgb palette size CGB_PAL_SIZE EQU 8 ; bytes +palettes EQUS "* CGB_PAL_SIZE" ; tile size TILE_SIZE EQU 16 ; bytes +tiles EQUS "* TILE_SIZE" ; wFlushPaletteFlags constants FLUSH_ONE EQU %10000000 @@ -38,4 +40,4 @@ SPRITE_ANIM_BUFFER_CAPACITY EQU 16 ; sprites const SPRITE_ANIM_FIELD_0D const SPRITE_ANIM_MOVEMENT_COUNTER const SPRITE_ANIM_FIELD_0F -SPRITE_ANIM_LENGTH EQU const_value
\ No newline at end of file +SPRITE_ANIM_LENGTH EQU const_value diff --git a/src/constants/hardware_constants.asm b/src/constants/hardware_constants.asm index 0471e74..098b569 100644 --- a/src/constants/hardware_constants.asm +++ b/src/constants/hardware_constants.asm @@ -113,4 +113,3 @@ rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) rIE EQU $ffff ; Interrupt Enable (R/W) - diff --git a/src/constants/text_constants.asm b/src/constants/text_constants.asm index 062f5e4..3c93cdf 100644 --- a/src/constants/text_constants.asm +++ b/src/constants/text_constants.asm @@ -1,20 +1,52 @@ -TX_START EQU $06 -TX_LINE EQU "\n" -TX_END EQU $00 - -TX_RAM1 EQU $09 -TX_RAM2 EQU $0B -TX_RAM3 EQU $0C +TX_END EQU $00 +TX_SYMBOL EQU $05 +TX_START EQU $06 +TX_RAM1 EQU $09 +TX_LINE EQU "\n" ; $0a +TX_RAM2 EQU $0B +TX_RAM3 EQU $0C text EQUS "db TX_START, " line EQUS "db TX_LINE, " done EQUS "db TX_END" -TX_FIRE EQUS "$05, $01" -TX_GRASS EQUS "$05, $02" -TX_LIGHTNING EQUS "$05, $03" -TX_WATER EQUS "$05, $04" -TX_FIGHTING EQUS "$05, $05" -TX_PSYCHIC EQUS "$05, $06" -TX_COLORLESS EQUS "$05, $07" -TX_LVL EQUS "$05, $11" + charmap "é", "`" + charmap "♂", "$" + charmap "♀", "%" + charmap "”", "\"" + +; TX_SYMBOL (full-tile symbols loaded into v0Tiles2) + charmap "<", TX_SYMBOL + charmap " >", $00 + charmap "FIRE>", $01 + charmap "GRASS>", $02 + charmap "LIGHTNING>", $03 + charmap "WATER>", $04 + charmap "FIGHTING>", $05 + charmap "PSYCHIC>", $06 + charmap "COLORLESS>", $07 + charmap "POISONED>", $08 + charmap "ASLEEP>", $09 + charmap "CONFUSED>", $0a + charmap "PARALYZED>", $0b + charmap "PKMN_ICON>", $0d ; icon displayed along with no. of Pkmn in duel screen + charmap "HP>", $10 + charmap "Lv>", $11 + charmap "E>", $12 + charmap "No>", $13 + charmap "PLUSPOWER>", $14 + charmap "DEFENDER>", $15 + charmap "🌕>", $16 ; HP tile + charmap "🌑>", $17 ; HP tile with damage counter + charmap "0>", $20 + charmap "1>", $21 + charmap "2>", $22 + charmap "3>", $23 + charmap "4>", $24 + charmap "5>", $25 + charmap "6>", $26 + charmap "7>", $27 + charmap "8>", $28 + charmap "9>", $29 + charmap "+>", $2b + charmap "PRIZE_ICON>", $30 ; icon displayed along with no. of prizes in duel screen |
