Merge pull request #18 from ElectroDeoxys/master

Disassemble animation engine
This commit is contained in:
dannye
2025-06-05 17:31:51 -05:00
committed by GitHub
18 changed files with 4184 additions and 302 deletions
+93 -6
View File
@@ -1,3 +1,9 @@
; Animation duel screen constants (see wDuelAnimationScreen)
const_def
const DUEL_ANIM_SCREEN_MAIN_SCENE
const DUEL_ANIM_SCREEN_PLAYER_PLAY_AREA
const DUEL_ANIM_SCREEN_OPP_PLAY_AREA
const_def
; Normal animations
const DUEL_ANIM_NONE ; $00
@@ -97,11 +103,92 @@
const DUEL_ANIM_DUEL_LOSS ; $5e
const DUEL_ANIM_DUEL_DRAW ; $5f
const DUEL_ANIM_UNUSED_60 ; $60
const DUEL_ANIM_61 ; $61
const DUEL_ANIM_62 ; $62
const DUEL_ANIM_63 ; $63
const DUEL_ANIM_64 ; $64
const DUEL_ANIM_65 ; $65
const DUEL_ANIM_66 ; $66
const DUEL_ANIM_67 ; $67
const DUEL_ANIM_68 ; $68
const DUEL_ANIM_69 ; $69
const DUEL_ANIM_6A ; $6a
const DUEL_ANIM_6B ; $6b
const DUEL_ANIM_6C ; $6c
const DUEL_ANIM_6D ; $6d
const DUEL_ANIM_6E ; $6e
const DUEL_ANIM_6F ; $6f
const DUEL_ANIM_70 ; $70
const DUEL_ANIM_71 ; $71
const DUEL_ANIM_72 ; $72
const DUEL_ANIM_73 ; $73
const DUEL_ANIM_74 ; $74
const DUEL_ANIM_75 ; $75
const DUEL_ANIM_76 ; $76
const DUEL_ANIM_77 ; $77
const DUEL_ANIM_78 ; $78
const DUEL_ANIM_79 ; $79
const DUEL_ANIM_7A ; $7a
const DUEL_ANIM_7B ; $7b
const DUEL_ANIM_7C ; $7c
const DUEL_ANIM_7D ; $7d
const DUEL_ANIM_7E ; $7e
const DUEL_ANIM_7F ; $7f
const DUEL_ANIM_80 ; $80
const DUEL_ANIM_81 ; $81
const DUEL_ANIM_82 ; $82
const DUEL_ANIM_83 ; $83
const DUEL_ANIM_84 ; $84
const DUEL_ANIM_85 ; $85
const DUEL_ANIM_86 ; $86
DEF NUM_REGULAR_DUEL_ANIMS EQU const_value
; screen animations
DEF DUEL_SCREEN_ANIMS EQU const_value
const DUEL_ANIM_SMALL_SHAKE_X ; $87
const DUEL_ANIM_BIG_SHAKE_X ; $88
const DUEL_ANIM_SMALL_SHAKE_Y ; $89
const DUEL_ANIM_BIG_SHAKE_Y ; $8a
const DUEL_ANIM_FLASH ; $8b
const DUEL_ANIM_DISTORT ; $8c
; Animation duel screen constants (see wDuelAnimationScreen)
const_def
const DUEL_ANIM_SCREEN_MAIN_SCENE
const DUEL_ANIM_SCREEN_PLAYER_PLAY_AREA
const DUEL_ANIM_SCREEN_OPP_PLAY_AREA
; this animation is only played within DUEL_ANIM_SHOW_DAMAGE
const DUEL_ANIM_DAMAGE_HUD ; $8d
const_def $96
; animations passed this point are treated differently
DEF DUEL_SPECIAL_ANIMS EQU const_value
const DUEL_ANIM_SET_SCREEN ; $96
const DUEL_PRINT_DAMAGE ; $97
const DUEL_ANIM_UPDATE_HUD ; $98
const DUEL_ANIM_153_UNUSED ; $99
const DUEL_ANIM_154_UNUSED ; $9a
const DUEL_ANIM_155_UNUSED ; $9b
const DUEL_ANIM_156_UNUSED ; $9c
const DUEL_ANIM_157_UNUSED ; $9d
const DUEL_ANIM_158_UNUSED ; $9e
; Duel Anim Struct constants
RSRESET
DEF DUEL_ANIM_STRUCT_ID RB ; $0
DEF DUEL_ANIM_STRUCT_SCREEN RB ; $1
DEF DUEL_ANIM_STRUCT_DUELIST_SIDE RB ; $2
DEF DUEL_ANIM_STRUCT_LOCATION_PARAM RB ; $3
DEF DUEL_ANIM_STRUCT_DAMAGE RW ; $4
DEF DUEL_ANIM_STRUCT_UNKNOWN_2 RB ; $6
DEF DUEL_ANIM_STRUCT_BANK RB ; $7
DEF DUEL_ANIM_STRUCT_SIZE EQU _RS
; ow_frame struct constants
RSRESET
DEF OW_FRAME_STRUCT_DURATION RB ; $0
DEF OW_FRAME_STRUCT_VRAM_TILE_OFFSET RB ; $1
DEF OW_FRAME_STRUCT_VRAM_BANK RB ; $2
DEF OW_FRAME_STRUCT_TILESET_BANK RB ; $3
DEF OW_FRAME_STRUCT_TILESET RW ; $4
DEF OW_FRAME_STRUCT_TILESET_OFFSET RW ; $6
DEF OW_FRAME_STRUCT_SIZE EQU _RS
DEF NUM_OW_FRAMESET_SUBGROUPS EQU 3
DEF SET_ANIM_SCREEN_MAIN EQU $1
DEF SET_ANIM_SCREEN_PLAY_AREA EQU $4
@@ -257,3 +257,4 @@
const ATK_ANIM_SURPRISE_THUNDER ; $fc
const ATK_ANIM_PUSH_ASIDE ; $fd
const ATK_ANIM_BONE_HEADBUTT ; $fe
const ATK_ANIM_UNUSED_FF ; $ff
+22 -22
View File
@@ -1,26 +1,26 @@
const_def
const COIN_CHANSEY ; $00
const COIN_GR ; $01
const COIN_ODDISH ; $02
const COIN_CHANSEY ; $00
const COIN_GR ; $01
const COIN_ODDISH ; $02
const COIN_CHARMANDER ; $03
const COIN_STARMIE ; $04
const COIN_PIKACHU ; $05
const COIN_ALAKAZAM ; $06
const COIN_KABUTO ; $07
const COIN_MAGNEMITE ; $08
const COIN_GOLBAT ; $09
const COIN_MAGMAR ; $0a
const COIN_PSYDUCK ; $0b
const COIN_MACHAMP ; $0c
const COIN_MEW ; $0d
const COIN_SNORLAX ; $0e
const COIN_TOGEPI ; $0f
const COIN_PONYTA ; $10
const COIN_HORSEA ; $11
const COIN_ARBOK ; $12
const COIN_STARMIE ; $04
const COIN_PIKACHU ; $05
const COIN_ALAKAZAM ; $06
const COIN_KABUTO ; $07
const COIN_MAGNEMITE ; $08
const COIN_GOLBAT ; $09
const COIN_MAGMAR ; $0a
const COIN_PSYDUCK ; $0b
const COIN_MACHAMP ; $0c
const COIN_MEW ; $0d
const COIN_SNORLAX ; $0e
const COIN_TOGEPI ; $0f
const COIN_PONYTA ; $10
const COIN_HORSEA ; $11
const COIN_ARBOK ; $12
const COIN_JIGGLYPUFF ; $13
const COIN_DUGTRIO ; $14
const COIN_GENGAR ; $15
const COIN_RAICHU ; $16
const COIN_LUGIA ; $17
const COIN_DUGTRIO ; $14
const COIN_GENGAR ; $15
const COIN_RAICHU ; $16
const COIN_LUGIA ; $17
DEF NUM_COINS EQU const_value
+1
View File
@@ -240,6 +240,7 @@ DEF NO_DAMAGE_OR_EFFECT_FLY EQU $03
DEF NO_DAMAGE_OR_EFFECT_TRANSPARENCY EQU $04
DEF NO_DAMAGE_OR_EFFECT_NSHIELD EQU $05
DEF NO_DAMAGE_OR_EFFECT_HIDE EQU $06
DEF NO_DAMAGE_OR_EFFECT_AURORA_VEIL EQU $07
; OppAction_* constants (OppActionTable)
const_def
+21
View File
@@ -595,3 +595,24 @@ DEF SPRITEANIMSTRUCT_DIR_MASK EQU %00001110
const FRAMESET_175 ; $175
const FRAMESET_176 ; $176
const FRAMESET_177 ; $177
; wAnimationDataFlags and wAnimFlags values
const_def
const SPRITE_ANIM_FLAG_X_INVERTED_F ; $0
const SPRITE_ANIM_FLAG_Y_INVERTED_F ; $1
const SPRITE_ANIM_FLAG_CENTERED_F ; $2
const SPRITE_ANIM_FLAG_3_F ; $3
const SPRITE_ANIM_FLAG_8x16_F ; $4
const SPRITE_ANIM_FLAG_X_FLIP_F ; $5
const SPRITE_ANIM_FLAG_Y_FLIP_F ; $6
const SPRITE_ANIM_FLAG_UNSKIPPABLE_F ; $7
DEF SPRITE_ANIM_FLAG_X_INVERTED EQU 1 << SPRITE_ANIM_FLAG_X_INVERTED_F
DEF SPRITE_ANIM_FLAG_Y_INVERTED EQU 1 << SPRITE_ANIM_FLAG_Y_INVERTED_F
DEF SPRITE_ANIM_FLAG_CENTERED EQU 1 << SPRITE_ANIM_FLAG_CENTERED_F
DEF SPRITE_ANIM_FLAG_3 EQU 1 << SPRITE_ANIM_FLAG_3_F
DEF SPRITE_ANIM_FLAG_8x16 EQU 1 << SPRITE_ANIM_FLAG_8x16_F
DEF SPRITE_ANIM_FLAG_X_FLIP EQU 1 << SPRITE_ANIM_FLAG_X_FLIP_F
DEF SPRITE_ANIM_FLAG_Y_FLIP EQU 1 << SPRITE_ANIM_FLAG_Y_FLIP_F
DEF SPRITE_ANIM_FLAG_UNSKIPPABLE EQU 1 << SPRITE_ANIM_FLAG_UNSKIPPABLE_F
+1 -1
View File
@@ -421,7 +421,7 @@
const TILESET_DARK_SONG ; $1a3
const TILESET_CARD ; $1a4
const TILESET_TCG1_PIKACHU_COIN ; $1a5
const TILESET_DUEL_RESULT ; $1a6
const TILESET_DUEL_RESULT ; $1a6
const TILESET_SMALL_COINS ; $1a7
const TILESET_CHANSEY_COIN ; $1a8
const TILESET_ODDISH_COIN ; $1a9
+46 -9
View File
@@ -43,12 +43,14 @@ StartDuel_VSAIOpp:
ld a, DUELIST_TYPE_PLAYER
ld [wPlayerDuelistType], a
ld [wOpponentDuelistType], a
ld a, $17
ld [wcc18], a
ld a, COIN_LUGIA
ld [wOppCoin], a
ld a, $06
ld [wcc15], a
xor a
ld [wcc19], a
xor a ; COIN_CHANSEY
ld [wPlayerCoin], a
ld a, NUM_NPC_IDS
call Random
ld [wOpponentNPCID], a
@@ -5325,7 +5327,7 @@ ProcessPlayedPokemonCard:
ret
.TriggerPkmnPower:
farcall Func_18a14
farcall ResetAttackAnimationIsPlaying
ld a, EFFECTCMDTYPE_PKMN_POWER_TRIGGER
call TryExecuteEffectCommandFunction
ret
@@ -6043,7 +6045,7 @@ InitVariablesToBeginDuel:
ld [wPlayerAttackingAttackIndex], a
ld a, [wdc08]
ld [wcc19], a
ld [wPlayerCoin], a
call Func_6838
ld b, MAX_PLAY_AREA_POKEMON
@@ -6087,7 +6089,7 @@ InitVariablesToBeginTurn:
ld [wcc1b], a
ldh a, [hWhoseTurn]
ld [wWhoseTurn], a
farcall Func_18a14
farcall ResetAttackAnimationIsPlaying
ret
; make all Pokemon in the turn holder's play area able to evolve. called from the
@@ -6422,7 +6424,7 @@ Func_6986:
ld a, EFFECTCMDTYPE_PKMN_POWER_TRIGGER
call CheckMatchingCommand
ret c
farcall Func_18a14
farcall ResetAttackAnimationIsPlaying
ld a, EFFECTCMDTYPE_PKMN_POWER_TRIGGER
call TryExecuteEffectCommandFunction
ret
@@ -7465,7 +7467,42 @@ CheckHaunterTransparency:
or a
ret
SECTION "Bank 1@70b3", ROMX[$70b3], BANK[$1]
; return carry and return the appropriate text id in hl if the target has an
; special status or power that prevents any damage or effect done to it this turn
; input: a = NO_DAMAGE_OR_EFFECT_*
CheckNoDamageOrEffect::
ld a, [wNoDamageOrEffect]
or a
ret z
bit 7, a
jr nz, .dont_print_text ; already been here so don't repeat the text
ld hl, wNoDamageOrEffect
set 7, [hl]
dec a
add a
ld e, a
ld d, $0
ld hl, NoDamageOrEffectTextIDTable
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
scf
ret
.dont_print_text
ld hl, NULL
scf
ret
NoDamageOrEffectTextIDTable::
tx Text015b ; NoDamageOrEffectDueToAgilityText ; NO_DAMAGE_OR_EFFECT_AGILITY
tx Text015a ; NoDamageOrEffectDueToBarrierText ; NO_DAMAGE_OR_EFFECT_BARRIER
tx Text0159 ; NoDamageOrEffectDueToFlyText ; NO_DAMAGE_OR_EFFECT_FLY
tx Text015f ; NoDamageOrEffectDueToTransparencyText ; NO_DAMAGE_OR_EFFECT_TRANSPARENCY
tx Text015e ; NoDamageOrEffectDueToNShieldText ; NO_DAMAGE_OR_EFFECT_NSHIELD
tx Text015c ; NoDamageOrEffectDueToHideText ; NO_DAMAGE_OR_EFFECT_HIDE
tx Text01c9 ; NoDamageOrEffectDueToAuroraVeilText ; NO_DAMAGE_OR_EFFECT_AURORA_VEIL
CheckIsIncapableOfUsingPkmnPower_ArenaCard:
xor a ; PLAY_AREA_ARENA
+20 -11
View File
@@ -833,9 +833,11 @@ ClearSpriteAnims:
pop bc
pop af
ret
; 0x10908
SECTION "Bank 4@490e", ROMX[$490e], BANK[$4]
Func_10908:
ld c, $00
call LoadGfxPalettes
ret
GetNextInactiveSpriteAnim::
push af
@@ -898,7 +900,15 @@ SetNewSpriteAnimValues::
pop af
ret
SECTION "Bank 4@4991", ROMX[$4991], BANK[$4]
SECTION "Bank 4@4989", ROMX[$4989], BANK[$4]
Func_10989:
ld [wd96f], a
ret
Func_1098d:
ld [wd970], a
ret
MoveSpriteAnim:
push af
@@ -1154,9 +1164,6 @@ SetSpriteAnimMotion:
pop bc
pop af
ret
; 0x10a83
SECTION "Bank 4@4a83", ROMX[$4a83], BANK[$4]
Func_10a83:
push af
@@ -1204,9 +1211,10 @@ Func_10aa8:
pop hl
pop af
ret
; 0x10ab7
SECTION "Bank 4@4ab9", ROMX[$4ab9], BANK[$4]
Func_10ab7:
ld a, [hl]
ret
Func_10ab9:
res SPRITEANIMSTRUCT_FLAG6_F, [hl] ; SPRITEANIMSTRUCT_FLAGS
@@ -1421,9 +1429,10 @@ Func_10b9c:
pop bc
pop af
ret
; 0x10bc4
SECTION "Bank 4@4bc8", ROMX[$4bc8], BANK[$4]
Func_10bc4:
ld hl, wSpriteAnimationStructs
ret
SetSpriteAnimAnimating:
set SPRITEANIMSTRUCT_ANIMATING_F, [hl] ; SPRITEANIMSTRUCT_FLAGS
@@ -4951,6 +4960,6 @@ Func_13dfa:
farcall InitFadePalettes
call Func_3f61
farcall Func_1dfb9
farcall Func_1e419
farcall EnableAnimations
ret
; 0x13e27
+2178 -3
View File
File diff suppressed because it is too large Load Diff
+1351 -21
View File
File diff suppressed because it is too large Load Diff
+120 -120
View File
@@ -3013,7 +3013,7 @@ LoadDeckIDData:
ld a, [hli]
ld [wcd0f], a
ld a, [hli]
ld [wcc18], a
ld [wOppCoin], a
or a
ret
@@ -3027,7 +3027,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db STARTER_DECK_ID - 1
tx Text0448 ; deck name
@@ -3038,7 +3038,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db SWEAT_ANTI_GR1_DECK_ID - 1
tx Text044d ; deck name
@@ -3049,7 +3049,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db GIVE_IN_ANTI_GR2_DECK_ID - 1
tx Text0466 ; deck name
@@ -3060,7 +3060,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db VENGEFUL_ANTI_GR3_DECK_ID - 1
tx Text0449 ; deck name
@@ -3071,7 +3071,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db UNFORGIVING_ANTI_GR4_DECK_ID - 1
tx Text0470 ; deck name
@@ -3082,7 +3082,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db UNUSED_SAMS_PRACTICE_DECK_ID - 1
tx Text04f1 ; deck name
@@ -3093,7 +3093,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db UNUSED_SAMS_PRACTICE_DECK_ID
tx Text04d6 ; deck name
@@ -3104,7 +3104,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AARON_PRACTICE_DECK1_ID
tx Text04af ; deck name
@@ -3115,7 +3115,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AARONS_STEP1_DECK_ID
tx Text0433 ; deck name
@@ -3126,7 +3126,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AARON_PRACTICE_DECK2_ID
tx Text04b0 ; deck name
@@ -3137,7 +3137,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AARONS_STEP2_DECK_ID
tx Text0434 ; deck name
@@ -3148,7 +3148,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AARON_PRACTICE_DECK3_ID
tx Text04b1 ; deck name
@@ -3159,7 +3159,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_STOP ; duel theme
db $00 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AARONS_STEP3_DECK_ID
tx Text0435 ; deck name
@@ -3170,7 +3170,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db BRICK_WALK_DECK_ID
tx Text043e ; deck name
@@ -3181,7 +3181,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db BENCH_TRAP_DECK_ID
tx Text044b ; deck name
@@ -3192,7 +3192,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $12 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db SKY_SPARK_DECK_ID
tx Text049d ; deck name
@@ -3203,7 +3203,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $09 ; ?
db $05 ; ?
db COIN_PIKACHU ; coin
db ELECTRIC_SELFDESTRUCT_DECK_ID
tx Text04c1 ; deck name
@@ -3214,7 +3214,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $09 ; ?
db $05 ; ?
db COIN_PIKACHU ; coin
db OVERFLOW_DECK_ID
tx Text0481 ; deck name
@@ -3225,7 +3225,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $01 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db TRIPLE_ZAPDOS_DECK_ID
tx Text04ad ; deck name
@@ -3236,7 +3236,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $01 ; ?
db $05 ; ?
db COIN_PIKACHU ; coin
db I_LOVE_PIKACHU_DECK_ID
tx Text04c4 ; deck name
@@ -3247,7 +3247,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $01 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db TEN_THOUSAND_VOLTS_DECK_ID
tx Text0426 ; deck name
@@ -3258,7 +3258,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $01 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db HAND_OVER_GR_DECK_ID
tx Text0471 ; deck name
@@ -3269,7 +3269,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0a ; ?
db $06 ; ?
db COIN_ALAKAZAM ; coin
db PSYCHIC_ELITE_DECK_ID
tx Text0453 ; deck name
@@ -3280,7 +3280,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0a ; ?
db $06 ; ?
db COIN_ALAKAZAM ; coin
db PSYCHOKINESIS_DECK_ID
tx Text0496 ; deck name
@@ -3291,7 +3291,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $02 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db PHANTOM_DECK_ID
tx Text046e ; deck name
@@ -3302,7 +3302,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $02 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db PUPPET_MASTER_DECK_ID
tx Text045f ; deck name
@@ -3313,7 +3313,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $02 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db EVEN3_YEARS_ON_A_ROCK_DECK_ID
tx Text0438 ; deck name
@@ -3324,7 +3324,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0b ; ?
db $07 ; ?
db COIN_KABUTO ; coin
db ROLLING_STONE_DECK_ID
tx Text04f3 ; deck name
@@ -3335,7 +3335,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $03 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db GREAT_EARTHQUAKE_DECK_ID
tx Text044f ; deck name
@@ -3346,7 +3346,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $03 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db AWESOME_FOSSIL_DECK_ID
tx Text0498 ; deck name
@@ -3357,7 +3357,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $03 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db RAGING_BILLOW_OF_FISTS_DECK_ID
tx Text04b2 ; deck name
@@ -3368,7 +3368,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0c ; ?
db $0c ; ?
db COIN_MACHAMP ; coin
db YOU_CAN_DO_IT_MACHOP_DECK_ID
tx Text0440 ; deck name
@@ -3379,7 +3379,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $04 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db NEW_MACHOKE_DECK_ID
tx Text04b7 ; deck name
@@ -3390,7 +3390,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $04 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db SKILLED_WARRIOR_DECK_ID
tx Text046a ; deck name
@@ -3401,7 +3401,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $04 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db I_LOVE_TO_FIGHT_DECK_ID
tx Text04bb ; deck name
@@ -3412,7 +3412,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $04 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db MAX_ENERGY_DECK_ID
tx Text042c ; deck name
@@ -3423,7 +3423,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0d ; ?
db $02 ; ?
db COIN_ODDISH ; coin
db REMAINING_GREEN_DECK_ID
tx Text0461 ; deck name
@@ -3434,7 +3434,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $05 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db POISON_CURSE_DECK_ID
tx Text045d ; deck name
@@ -3445,7 +3445,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $05 ; ?
db $02 ; ?
db COIN_ODDISH ; coin
db GLITTERING_SCALES_DECK_ID
tx Text043c ; deck name
@@ -3456,7 +3456,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $05 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db STEADY_INCREASE_DECK_ID
tx Text04b3 ; deck name
@@ -3467,7 +3467,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $05 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db DARK_SCIENCE_DECK_ID
tx Text04a6 ; deck name
@@ -3478,7 +3478,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0e ; ?
db $08 ; ?
db COIN_MAGNEMITE ; coin
db NATURAL_SCIENCE_DECK_ID
tx Text044a ; deck name
@@ -3489,7 +3489,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $06 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db POISONOUS_SWAMP_DECK_ID
tx Text045b ; deck name
@@ -3500,7 +3500,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $06 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db GATHERING_NIDORAN_DECK_ID
tx Text042f ; deck name
@@ -3511,7 +3511,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $06 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db RAIN_DANCE_CONFUSION_DECK_ID
tx Text0431 ; deck name
@@ -3522,7 +3522,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $0f ; ?
db $04 ; ?
db COIN_STARMIE ; coin
db CONSERVING_WATER_DECK_ID
tx Text0460 ; deck name
@@ -3533,7 +3533,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $07 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db ENERGY_REMOVAL_DECK_ID
tx Text0480 ; deck name
@@ -3544,7 +3544,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $07 ; ?
db $04 ; ?
db COIN_STARMIE ; coin
db SPLASHING_ABOUT_DECK_ID
tx Text0467 ; deck name
@@ -3555,7 +3555,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $07 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db BEACH_DECK_ID
tx Text045e ; deck name
@@ -3566,7 +3566,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $07 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db GO_ARCANINE_DECK_ID
tx Text046f ; deck name
@@ -3577,7 +3577,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $10 ; ?
db $03 ; ?
db COIN_CHARMANDER ; coin
db FLAME_FESTIVAL_DECK_ID
tx Text0465 ; deck name
@@ -3588,7 +3588,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $08 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db IMMORTAL_FLAME_DECK_ID
tx Text0463 ; deck name
@@ -3599,7 +3599,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $08 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db ELECTRIC_CURRENT_SHOCK_DECK_ID
tx Text0459 ; deck name
@@ -3610,7 +3610,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $08 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db GREAT_ROCKET4_DECK_ID
tx Text0490 ; deck name
@@ -3621,7 +3621,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $16 ; ?
db $01 ; ?
db COIN_GR ; coin
db GREAT_ROCKET1_DECK_ID
tx Text048d ; deck name
@@ -3632,7 +3632,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $16 ; ?
db $01 ; ?
db COIN_GR ; coin
db GREAT_ROCKET2_DECK_ID
tx Text048e ; deck name
@@ -3643,7 +3643,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $16 ; ?
db $01 ; ?
db COIN_GR ; coin
db GREAT_ROCKET3_DECK_ID
tx Text048f ; deck name
@@ -3654,7 +3654,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $16 ; ?
db $01 ; ?
db COIN_GR ; coin
db GRAND_FIRE_DECK_ID
tx Text048b ; deck name
@@ -3665,7 +3665,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_3 ; duel theme
db $11 ; ?
db $03 ; ?
db COIN_CHARMANDER ; coin
db LEGENDARY_FOSSIL_DECK_ID
tx Text0458 ; deck name
@@ -3676,7 +3676,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_3 ; duel theme
db $11 ; ?
db $05 ; ?
db COIN_PIKACHU ; coin
db WATER_LEGEND_DECK_ID
tx Text047c ; deck name
@@ -3687,7 +3687,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_3 ; duel theme
db $11 ; ?
db $04 ; ?
db COIN_STARMIE ; coin
db GREAT_DRAGON_DECK_ID
tx Text0450 ; deck name
@@ -3698,7 +3698,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_3 ; duel theme
db $11 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db BUG_COLLECTING_DECK_ID
tx Text0447 ; deck name
@@ -3709,7 +3709,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $17 ; ?
db $01 ; ?
db COIN_GR ; coin
db DEMONIC_FOREST_DECK_ID
tx Text042e ; deck name
@@ -3720,7 +3720,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $17 ; ?
db $01 ; ?
db COIN_GR ; coin
db STICKY_POISON_GAS_DECK_ID
tx Text045c ; deck name
@@ -3731,7 +3731,7 @@ DeckIDData:
db $01 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $17 ; ?
db $01 ; ?
db COIN_GR ; coin
db MAD_PETALS_DECK_ID
tx Text0445 ; deck name
@@ -3742,7 +3742,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $1d ; ?
db $08 ; ?
db COIN_MAGNEMITE ; coin
db DANGEROUS_BENCH_DECK_ID
tx Text0441 ; deck name
@@ -3753,7 +3753,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $26 ; ?
db $00 ; ?
db COIN_CHANSEY ; coin
db CHAIN_LIGHTNING_BY_PIKACHU_DECK_ID
tx Text04c5 ; deck name
@@ -3764,7 +3764,7 @@ DeckIDData:
db $07 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $18 ; ?
db $01 ; ?
db COIN_GR ; coin
db THIS_IS_THE_POWER_OF_ELECTRICITY_DECK_ID
tx Text0456 ; deck name
@@ -3775,7 +3775,7 @@ DeckIDData:
db $02 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $18 ; ?
db $01 ; ?
db COIN_GR ; coin
db QUICK_ATTACK_DECK_ID
tx Text0457 ; deck name
@@ -3786,7 +3786,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $1e ; ?
db $09 ; ?
db COIN_GOLBAT ; coin
db COMPLETE_COMBUSTION_DECK_ID
tx Text043f ; deck name
@@ -3797,7 +3797,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $19 ; ?
db $01 ; ?
db COIN_GR ; coin
db FIREBALL_DECK_ID
tx Text04c6 ; deck name
@@ -3808,7 +3808,7 @@ DeckIDData:
db $03 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $19 ; ?
db $01 ; ?
db COIN_GR ; coin
db EEVEE_SHOWDOWN_DECK_ID
tx Text0477 ; deck name
@@ -3819,7 +3819,7 @@ DeckIDData:
db $08 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $19 ; ?
db $01 ; ?
db COIN_GR ; coin
db GAZE_UPON_THE_POWER_OF_FIRE_DECK_ID
tx Text0468 ; deck name
@@ -3830,7 +3830,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $1f ; ?
db $0a ; ?
db COIN_MAGMAR ; coin
db WHIRLPOOL_SHOWER_DECK_ID
tx Text0439 ; deck name
@@ -3841,7 +3841,7 @@ DeckIDData:
db $04 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1a ; ?
db $01 ; ?
db COIN_GR ; coin
db PARALYZED_PARALYZED_DECK_ID
tx Text04d1 ; deck name
@@ -3852,7 +3852,7 @@ DeckIDData:
db $09 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1a ; ?
db $01 ; ?
db COIN_GR ; coin
db BENCH_CALL_DECK_ID
tx Text04c7 ; deck name
@@ -3863,7 +3863,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1a ; ?
db $01 ; ?
db COIN_GR ; coin
db WATER_STREAM_DECK_ID
tx Text047b ; deck name
@@ -3874,7 +3874,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $20 ; ?
db $0b ; ?
db COIN_PSYDUCK ; coin
db ROCK_BLAST_DECK_ID
tx Text04f4 ; deck name
@@ -3885,7 +3885,7 @@ DeckIDData:
db $0c ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1b ; ?
db $01 ; ?
db COIN_GR ; coin
db FULL_STRENGTH_DECK_ID
tx Text0451 ; deck name
@@ -3896,7 +3896,7 @@ DeckIDData:
db $05 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1b ; ?
db $01 ; ?
db COIN_GR ; coin
db RUNNING_WILD_DECK_ID
tx Text0430 ; deck name
@@ -3907,7 +3907,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $21 ; ?
db $0c ; ?
db COIN_MACHAMP ; coin
db DIRECT_HIT_DECK_ID
tx Text0454 ; deck name
@@ -3918,7 +3918,7 @@ DeckIDData:
db $06 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1c ; ?
db $01 ; ?
db COIN_GR ; coin
db SUPERDESTRUCTIVE_POWER_DECK_ID
tx Text0452 ; deck name
@@ -3929,7 +3929,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1c ; ?
db $01 ; ?
db COIN_GR ; coin
db BAD_DREAM_DECK_ID
tx Text04ba ; deck name
@@ -3940,7 +3940,7 @@ DeckIDData:
db $0a ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1c ; ?
db $01 ; ?
db COIN_GR ; coin
db POKEMON_POWER_DECK_ID
tx Text04cb ; deck name
@@ -3951,7 +3951,7 @@ DeckIDData:
db $0d ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $1c ; ?
db $01 ; ?
db COIN_GR ; coin
db SPIRITED_AWAY_DECK_ID
tx Text043d ; deck name
@@ -3962,7 +3962,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $22 ; ?
db $0d ; ?
db COIN_MEW ; coin
db SNORLAX_GUARD_DECK_ID
tx Text0484 ; deck name
@@ -3973,7 +3973,7 @@ DeckIDData:
db $0e ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $23 ; ?
db $0e ; ?
db COIN_SNORLAX ; coin
db EYE_OF_THE_STORM_DECK_ID
tx Text044c ; deck name
@@ -3984,7 +3984,7 @@ DeckIDData:
db $0f ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $23 ; ?
db $0e ; ?
db COIN_SNORLAX ; coin
db SUDDEN_GROWTH_DECK_ID
tx Text0443 ; deck name
@@ -3995,7 +3995,7 @@ DeckIDData:
db $10 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $23 ; ?
db $0e ; ?
db COIN_SNORLAX ; coin
db VERY_RARE_CARD_DECK_ID
tx Text045a ; deck name
@@ -4006,7 +4006,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_ISHIHARA ; duel theme
db $14 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db BAD_GUYS_DECK_ID
tx Text0472 ; deck name
@@ -4017,7 +4017,7 @@ DeckIDData:
db $0b ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $24 ; ?
db $11 ; ?
db COIN_HORSEA ; coin
db POISON_MIST_DECK_ID
tx Text04ca ; deck name
@@ -4028,7 +4028,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $24 ; ?
db $12 ; ?
db COIN_ARBOK ; coin
db ULTRA_REMOVAL_DECK_ID
tx Text047e ; deck name
@@ -4039,7 +4039,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $24 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db PSYCHIC_BATTLE_DECK_ID
tx Text0495 ; deck name
@@ -4050,7 +4050,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $24 ; ?
db $15 ; ?
db COIN_GENGAR ; coin
db STOP_LIFE_DECK_ID
tx Text0437 ; deck name
@@ -4061,7 +4061,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_3 ; duel theme
db $25 ; ?
db $0f ; ?
db COIN_TOGEPI ; coin
db SCORCHER_DECK_ID
tx Text046d ; deck name
@@ -4072,7 +4072,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_3 ; duel theme
db $25 ; ?
db $0f ; ?
db COIN_TOGEPI ; coin
db TSUNAMI_STARTER_DECK_ID
tx Text044e ; deck name
@@ -4083,7 +4083,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_3 ; duel theme
db $25 ; ?
db $0f ; ?
db COIN_TOGEPI ; coin
db SMASH_TO_MINCEMEAT_DECK_ID
tx Text0455 ; deck name
@@ -4094,7 +4094,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_3 ; duel theme
db $25 ; ?
db $0f ; ?
db COIN_TOGEPI ; coin
db TEST_YOUR_LUCK_DECK_ID
tx Text043a ; deck name
@@ -4105,7 +4105,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_1 ; duel theme
db $27 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db PROTOHISTORIC_DECK_ID
tx Text0446 ; deck name
@@ -4116,7 +4116,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_DUELTHEME_2 ; duel theme
db $27 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db TEXTURE_TUNER7_DECK_ID
tx Text04a8 ; deck name
@@ -4127,7 +4127,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $27 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db COLORLESS_ENERGY_DECK_ID
tx Text046b ; deck name
@@ -4138,7 +4138,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_1 ; duel theme
db $27 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db POWERFUL_POKEMON_DECK_ID
tx Text0444 ; deck name
@@ -4149,7 +4149,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $27 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db WEIRD_DECK_ID
tx Text0464 ; deck name
@@ -4160,7 +4160,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_IMAKUNI ; duel theme
db $13 ; ?
db $0b ; ?
db COIN_PSYDUCK ; coin
db STRANGE_DECK_ID
tx Text0442 ; deck name
@@ -4171,7 +4171,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_IMAKUNI2 ; duel theme
db $13 ; ?
db $13 ; ?
db COIN_JIGGLYPUFF ; coin
db RONALDS_UNCOOL_DECK_ID
tx Text04e8 ; deck name
@@ -4182,7 +4182,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_RONALD ; duel theme
db $15 ; ?
db $16 ; ?
db COIN_RAICHU ; coin
db RONALDS_GRX_DECK_ID
tx Text04e7 ; deck name
@@ -4193,7 +4193,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_RONALD ; duel theme
db $16 ; ?
db $16 ; ?
db COIN_RAICHU ; coin
db RONALDS_POWER_DECK_ID
tx Text04eb ; deck name
@@ -4204,7 +4204,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_RONALD ; duel theme
db $15 ; ?
db $16 ; ?
db COIN_RAICHU ; coin
db RONALDS_PSYCHIC_DECK_ID
tx Text04ea ; deck name
@@ -4215,7 +4215,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_RONALD ; duel theme
db $15 ; ?
db $16 ; ?
db COIN_RAICHU ; coin
db RONALDS_ULTRA_DECK_ID
tx Text04e9 ; deck name
@@ -4226,7 +4226,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_RONALD ; duel theme
db $15 ; ?
db $16 ; ?
db COIN_RAICHU ; coin
db EVERYBODYS_FRIEND_DECK_ID
tx Text0469 ; deck name
@@ -4237,7 +4237,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db IMMORTAL_POKEMON_DECK_ID
tx Text0462 ; deck name
@@ -4248,7 +4248,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db TORRENTIAL_FLOOD_DECK_ID
tx Text043b ; deck name
@@ -4259,7 +4259,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db TRAINER_IMPRISON_DECK_ID
tx Text04ae ; deck name
@@ -4270,7 +4270,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db BLAZING_FLAME_DECK_ID
tx Text046c ; deck name
@@ -4281,7 +4281,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db DAMAGE_CHAOS_DECK_ID
tx Text04a7 ; deck name
@@ -4292,7 +4292,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db BIG_THUNDER_DECK_ID
tx Text04c0 ; deck name
@@ -4303,7 +4303,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db POWER_OF_DARKNESS_DECK_ID
tx Text0436 ; deck name
@@ -4314,7 +4314,7 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db POISON_STORM_DECK_ID
tx Text04c9 ; deck name
@@ -4325,6 +4325,6 @@ DeckIDData:
db $00 ; ?
db MUSIC_GRDUELTHEME_2 ; duel theme
db $28 ; ?
db $17 ; ?
db COIN_LUGIA ; coin
db $ff ; end
+60
View File
@@ -32,6 +32,66 @@ Func_6809a:
ret
; 0x680a0
SECTION "Bank 1a@42f4", ROMX[$42f4], BANK[$1a]
; applies HP recovery on Pokemon after an attack
; with HP recovery effect, and handles its animation.
; input:
; d = damage effectiveness
; e = HP amount to recover
ApplyAndAnimateHPRecovery:
push de
ld hl, wccbd
ld [hl], e
inc hl
ld [hl], d
; get Arena card's damage
ld e, PLAY_AREA_ARENA
call GetCardDamageAndMaxHP
pop de
or a
ret z ; return if no damage
; load correct animation
push de
ld a, ATK_ANIM_HEAL
ld [wLoadedAttackAnimation], a
farcall ResetAttackAnimationIsPlaying
ldh a, [hWhoseTurn]
ld h, a
lb bc, PLAY_AREA_ARENA, $1 ; arrow
farcall PlayAttackAnimation
; compare HP to be restored with max HP
; if HP to be restored would cause HP to
; be larger than max HP, cap it accordingly
ld e, PLAY_AREA_ARENA
call GetCardDamageAndMaxHP
ld b, $00
pop de
ld a, DUELVARS_ARENA_CARD_HP
get_turn_duelist_var
add e
ld e, a
ld a, 0
adc d
ld d, a
; de = damage dealt + current HP
; bc = max HP of card
call CompareDEtoBC
jr c, .skip_cap
; cap de to value in bc
ld e, c
ld d, b
.skip_cap
ld [hl], e ; apply new HP to arena card
farcall WaitAttackAnimation
ret
; 0x68335
SECTION "Bank 1a@43ec", ROMX[$43ec], BANK[$1a]
; makes a list in wDuelTempList with the deck indices
+6 -6
View File
@@ -1369,7 +1369,7 @@ UseAttackOrPokemonPower::
PlayAttackAnimation_DealAttackDamage:
call Func_14f1
bank1call SetDarkWaveAndDarknessVeilDamageModifiers
farcall Func_18a14
farcall ResetAttackAnimationIsPlaying
ld a, [wLoadedAttackCategory]
and RESIDUAL
jr nz, .deal_damage
@@ -1398,9 +1398,9 @@ PlayAttackAnimation_DealAttackDamage:
call GetNonTurnDuelistVariable
push de
push hl
farcall $6, $4ac1 ; PlayAttackAnimation
farcall $6, $4a19 ; Func_741a
farcall $6, $4ab1 ; WaitAttackAnimation
farcall PlayAttackAnimation
farcall $6, $4a19 ; PlayStatusConditionQueueAnimations
farcall WaitAttackAnimation
pop hl
pop de
call SubtractHP
@@ -1485,7 +1485,7 @@ HandleConfusionDamageToSelf:
; use Pokemon Power
UsePokemonPower:
call ClearTwoTurnDuelVars
farcall Func_18a14
farcall ResetAttackAnimationIsPlaying
ld a, EFFECTCMDTYPE_INITIAL_EFFECT_2
call TryExecuteEffectCommandFunction
jr c, DrawWideTextBox_WaitForInput_ReturnCarry
@@ -1631,7 +1631,7 @@ DealConfusionDamageToSelf:
ld [wNoDamageOrEffect], a
ld a, $01
ld [wIsDamageToSelf], a
farcall Func_18a14
farcall ResetAttackAnimationIsPlaying
ld hl, wTempNonTurnDuelistCardID
ld e, [hl]
inc hl
+96 -85
View File
@@ -885,10 +885,10 @@ CallMappedFunction::
scf
ret
Func_355c::
CallHL2::
jp hl
Func_355d::
CallBC::
push bc
ret
@@ -1665,13 +1665,13 @@ Func_3924::
add e
ld e, a
ld a, [wd96f]
bit 6, a
jr z, .asm_3953
bit SPRITE_ANIM_FLAG_Y_FLIP_F, a
jr z, .got_y
ld a, e
xor $ff
inc a
ld e, a
.asm_3953
.got_y
ldh a, [hSCY]
ld c, a
ld a, e
@@ -1682,13 +1682,13 @@ Func_3924::
add d
ld d, a
ld a, [wd96f]
bit 5, a
jr z, .asm_3968
bit SPRITE_ANIM_FLAG_X_FLIP_F, a
jr z, .got_x
ld a, d
xor $ff
inc a
ld d, a
.asm_3968
.got_x
ldh a, [hSCX]
ld c, a
ld a, d
@@ -1750,7 +1750,7 @@ GetFramesetData::
ld a, d
xor $ff
inc a
ld d, a
ld d, a ; d = -d
.asm_39ba
ld a, [wd970]
bit 6, a
@@ -1758,7 +1758,7 @@ GetFramesetData::
ld a, e
xor $ff
inc a
ld e, a
ld e, a ; e = -e
.asm_39c6
pop af
call BankswitchROM
@@ -1901,12 +1901,12 @@ Func_3a81::
push bc
push de
push hl
farcall $7, $6088
ld a, [$dcea]
farcall Func_1e088
ld a, [wActiveScreenAnim]
cp $ff
jr nz, .asm_3a94
jr nz, .skip_update_sprites
farcall UpdateSpriteAnims
.asm_3a94
.skip_update_sprites
pop hl
pop de
pop bc
@@ -2258,8 +2258,8 @@ FinishQueuedAnimations::
.asm_3c60
xor a
ld [wdc57], a
ld [wdc5e + 0], a
ld [wdc5e + 1], a
ld [wDuelAnimBufferSize], a
ld [wDuelAnimBufferCurPos], a
farcall Func_1dfb9
pop af
ret
@@ -2270,66 +2270,72 @@ FinishQueuedAnimations::
; input:
; - a = animation index
PlayDuelAnimation::
ld [$dce2], a
call Func_3c77
ld [wCurAnimation], a ; hold an animation temporarily
call .LoadDuelAnimationToBuffer
ret
Func_3c77::
.LoadDuelAnimationToBuffer:
ldh a, [hBankROM]
push af
ld [$dce9], a
farcall $7, $5ff5
ld [wDuelAnimReturnBank], a
farcall _LoadDuelAnimationToBuffer
pop af
call BankswitchROM
ret
; return nc if wActiveScreenAnim, wd4c0, and wAnimationQueue[] are all equal to $ff
; nc means no animation is playing (or animation(s) has/have ended)
; return c if an animation is still playing
CheckAnyAnimationPlaying::
farcall $7, $6420
farcall _CheckAnyAnimationPlaying
scf
ret nz
ccf
ret
Func_3c8e::
ld a, [$dce2]
cp $9e
ld a, [wCurAnimation]
cp DUEL_ANIM_158_UNUSED
jr z, .asm_3ca8
ld a, [$dce2]
ld a, [wCurAnimation]
sub $96
add a
ld c, a
ld b, $00
ld hl, Data_3cb3
ld hl, .pointer_table
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
jp Func_3cc3
.asm_3ca8
ld a, [$dce6]
ld a, [wDuelAnimDamage]
ld l, a
ld a, [$dce7]
ld a, [wDuelAnimDamage + 1]
ld h, a
jp Func_3cc3
Data_3cb3::
dw $4C62, $4CA0, $4D07, $4D0B
dw $4D0B, $4D0B, $4D0B, $4D0B
.pointer_table
dw SetScreenForDuelAnimation ; DUEL_ANIM_SET_SCREEN
dw PrintDamageText ; DUEL_ANIM_SHOW_DAMAGE
dw UpdateMainSceneHUD ; DUEL_ANIM_UPDATE_HUD
dw DuelAnim153 ; DUEL_ANIM_153_UNUSED
dw DuelAnim154 ; DUEL_ANIM_154_UNUSED
dw DuelAnim155 ; DUEL_ANIM_155_UNUSED
dw DuelAnim156 ; DUEL_ANIM_156_UNUSED
dw DuelAnim157 ; DUEL_ANIM_157_UNUSED
Func_3cc3::
ld a, $ff
ld [$dcf0], a
ld [wdcf0], a
ldh a, [hBankROM]
push af
ld a, [$dce9]
ld a, [wDuelAnimReturnBank]
call BankswitchROM
call Func_355c
call CallHL2
pop af
call BankswitchROM
xor a
ld [$dcf0], a
ld [wdcf0], a
ret
Func_3cdd::
@@ -2653,116 +2659,121 @@ Func_3e7a::
pop af
ret
Func_3e87::
; apply background scroll for lines 0 to 96 using the values at BGScrollData
; skip if wApplyBGScroll is non-0
ApplyBackgroundScroll::
push af
push hl
ldh a, [rSVBK]
push af
ld a, $01
ld a, BANK("WRAM1")
ldh [rSVBK], a
call Func_3f53
call DisableInt_LYCoincidence
ld hl, rSTAT
res 2, [hl]
res STAT_LYCFLAG, [hl] ; reset coincidence flag
ei
ld hl, $de66
ld hl, wApplyBGScroll
ld a, [hl]
or a
jr nz, .asm_3edd
jr nz, .done
inc [hl]
push bc
push de
xor a
ld [$de67], a
.asm_3ea7
ld a, [$de67]
ld [wNextScrollLY], a
.ly_loop
ld a, [wNextScrollLY]
ld b, a
.asm_3eab
.wait_ly
ldh a, [rLY]
cp $60
jr nc, .asm_3ec8
cp b
jr c, .asm_3eab
call Func_3f23
jr nc, .ly_over_0x60
cp b ; already hit LY=b?
jr c, .wait_ly
call GetNextBackgroundScroll
ld hl, rSTAT
.asm_3eba
bit 1, [hl]
jr nz, .asm_3eba
.wait_hblank_or_vblank
bit STAT_BUSY, [hl]
jr nz, .wait_hblank_or_vblank
ldh [rSCX], a
ldh a, [rLY]
inc a
ld [$de67], a
jr .asm_3ea7
.asm_3ec8
ld [wNextScrollLY], a
jr .ly_loop
.ly_over_0x60
xor a
ldh [rSCX], a
ld a, $00
ldh [rLYC], a
call Func_3f23
call GetNextBackgroundScroll
ldh [hSCX], a
pop de
pop bc
xor a
ld [$de66], a
call Func_3f45
.asm_3edd
ld [wApplyBGScroll], a
call EnableInt_LYCoincidence
.done
pop af
ldh [rSVBK], a
pop hl
pop af
ret
Data_3ee3::
db $00, $00, $00, $01, $01, $01, $02, $02
db $02, $03, $03, $03, $03, $03, $03, $03
db $04, $03, $03, $03, $03, $03, $03, $03
db $02, $02, $02, $01, $01, $01, $00, $00
db $00, $FF, $FF, $FF, $FE, $FE, $FE, $FD
db $FD, $FD, $FC, $FC, $FC, $FC, $FC, $FC
db $FB, $FC, $FC, $FC, $FC, $FC, $FC, $FD
db $FD, $FD, $FE, $FE, $FE, $FF, $FF, $FF
BGScrollData::
db 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3
db 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0
db 0, -1, -1, -1, -2, -2, -2, -3, -3, -3, -4, -4, -4, -4, -4, -4
db -5, -4, -4, -4, -4, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1
Func_3f23::
; x = BGScrollData[(wVBlankCounter + a) & $3f]
; return, in register a, x rotated right [wBGScrollMod]-1 times (max 3 times)
GetNextBackgroundScroll::
ld hl, wVBlankCounter
add [hl]
and $3f
ld c, a
ld b, $00
ld hl, Data_3ee3
ld hl, BGScrollData
add hl, bc
ld a, [$de65]
ld a, [wBGScrollMod]
ld c, a
ld a, [hl]
dec c
jr z, .asm_3f44
jr z, .done
dec c
jr z, .asm_3f42
jr z, .halve
dec c
jr z, .asm_3f40
jr z, .quarter
; effectively zero
sra a
.asm_3f40
.quarter
sra a
.asm_3f42
.halve
sra a
.asm_3f44
.done
ret
Func_3f45::
; enable lcdc interrupt on LYC=LC coincidence
EnableInt_LYCoincidence::
push hl
ld hl, rSTAT
set 6, [hl]
set STAT_LYC, [hl]
xor a
ld hl, rIE
set 1, [hl]
set INT_LCD_STAT, [hl]
pop hl
ret
Func_3f53::
; disable lcdc interrupt and the LYC=LC coincidence trigger
DisableInt_LYCoincidence::
push hl
ld hl, rSTAT
res 6, [hl]
res STAT_LYC, [hl]
xor a
ld hl, rIE
res 1, [hl]
res INT_LCD_STAT, [hl]
pop hl
ret
+1
View File
@@ -2,5 +2,6 @@ INCLUDE "macros/audio.asm"
INCLUDE "macros/constants.asm"
INCLUDE "macros/code.asm"
INCLUDE "macros/data.asm"
INCLUDE "macros/animations.asm"
INCLUDE "macros/text.asm"
INCLUDE "macros/wram.asm"
+38
View File
@@ -0,0 +1,38 @@
const_def
const ANIMCMD_END ; $0
MACRO anim_end
db ANIMCMD_END
ENDM
const ANIMCMD_NORMAL ; $1
MACRO anim_normal
db ANIMCMD_NORMAL, \1
ENDM
const ANIMCMD_PLAYER_SIDE ; $2
MACRO anim_player
db ANIMCMD_PLAYER_SIDE, \1
ENDM
const ANIMCMD_OPP_SIDE ; $3
MACRO anim_opponent
db ANIMCMD_OPP_SIDE, \1
ENDM
const ANIMCMD_SET_SCREEN ; $4
MACRO anim_screen
db ANIMCMD_SET_SCREEN, \1
ENDM
const ANIMCMD_PLAY_AREA ; $5
MACRO anim_play_area
db ANIMCMD_PLAY_AREA, \1
ENDM
const ANIMCMD_END_UNUSED ; $6
MACRO anim_end2
db ANIMCMD_END_UNUSED
ENDM
DEF NUM_ANIM_COMMANDS EQU const_value
+8
View File
@@ -10,3 +10,11 @@ MACRO const
DEF \1 EQU const_value
DEF const_value = const_value + 1
ENDM
MACRO const_skip
if _NARG > 0
DEF const_value += \1
else
DEF const_value += 1
endc
ENDM
+121 -18
View File
@@ -636,10 +636,14 @@ wNPCDuelDeckID:: ; cc16
wDuelTheme:: ; cc17
ds $1
wcc18:: ; cc18
; which coin the opponent is using for this duel
; holds a COIN_* constant
wOppCoin:: ; cc18
ds $1
wcc19:: ; cc19
; which coin the player is using for this duel
; holds a COIN_* constant
wPlayerCoin:: ; cc19
ds $1
wcc1a:: ; cc1a
@@ -686,6 +690,8 @@ wAIMinDamage:: ; cccb
wAIMaxDamage:: ; cccc
ds $1
; only written, never read
wccbd:: ; cccd
ds $2
; damage dealt by an attack to a target
@@ -1766,10 +1772,20 @@ wGlossaryMenu:: ; d0d1
wd0d2:: ; d0d2
ds $1
wd0d3:: ; d0d3
wAttackAnimationIsPlaying:: ; d0d3
ds $1
ds $5
wDamageAnimAmount:: ; d0d4
ds $2
wDamageAnimPlayAreaLocation:: ; d0d6
ds $1
wDamageAnimEffectiveness:: ; d0d7
ds $1
wDamageAnimPlayAreaSide:: ; d0d8
ds $1
; buffer to store data that will be sent/received through IR
wIRDataBuffer:: ; d0d9
@@ -2792,34 +2808,74 @@ wdc06:: ; dc06
ds $1
wdc08:: ; dc08
ds $2
ds $1
wdc09:: ; dc09
ds $1
ds $5
wdc0f:: ; dc0f
; store settings for animation enabled/disabled
; FALSE means enabled, TRUE means disabled
wAnimationsDisabled:: ; dc0f
ds $1
ds $47
; temporarily holds the palettes from
; wBackgroundPalettesCGB
wTempBackgroundPalettesCGB:: ; dc10
ds NUM_BACKGROUND_PALETTES palettes
ds $7
wdc57:: ; dc57
ds $1
wdc58:: ; dc58
ds $1
wdc59:: ; dc59
wNumActiveAnimations:: ; dc59
ds $1
ds $4
wdc5a:: ; dc5a
ds $1
wdc5e:: ; dc5e
ds $2
ds $1
wAnimFlags:: ; dc5c
ds $1
wAnimAllowedFlags:: ; dc5d
ds $1
wdc60:: ; dc60
ds $80
wDuelAnimBufferSize:: ; dc5e
ds $1
wDuelAnimBufferCurPos:: ; dc5e
ds $1
wDuelAnimBuffer:: ; dc60
duel_anim_struct wDuelAnim1
duel_anim_struct wDuelAnim2
duel_anim_struct wDuelAnim3
duel_anim_struct wDuelAnim4
duel_anim_struct wDuelAnim5
duel_anim_struct wDuelAnim6
duel_anim_struct wDuelAnim7
duel_anim_struct wDuelAnim8
duel_anim_struct wDuelAnim9
duel_anim_struct wDuelAnim10
duel_anim_struct wDuelAnim11
duel_anim_struct wDuelAnim12
duel_anim_struct wDuelAnim13
duel_anim_struct wDuelAnim14
duel_anim_struct wDuelAnim15
duel_anim_struct wDuelAnim16
wDuelAnimBufferEnd::
ds $2
wdce2:: ; dce2
; holds an animation to play
wCurAnimation:: ; dce2
ds $1
; used to know what coordinate offsets to use to place animations
@@ -2846,19 +2902,54 @@ wDuelAnimLocationParam:: ; dce5
wDuelAnimDamage:: ; dce6
ds $2
wdce8:: ; dce8
wDuelAnimSetScreen:: ; dce8
wDuelAnimEffectiveness::
ds $1
; bank number to return to after processing animation
wDuelAnimReturnBank:: ; dce9
ds $1
wdcea:: ; dcea
wActiveScreenAnim:: ; dcea
ds $1
ds $5
; pointer to a function to update
; the current screen animation
wScreenAnimUpdatePtr:: ; dceb
ds $2
; duration of the current screen animation
wScreenAnimDuration:: ; dced
ds $1
wdcee:: ; dcee
ds $2
wdcf0:: ; dcf0
ds $1
wAnimationTileset:: ; dcf1
ds $2
wAnimationSpriteAnim:: ; dcf3
ds $2
wAnimationFrameset:: ; dcf5
ds $2
wAnimationPalette:: ; dcf7
ds $2
wAnimationDataFlags:: ; dcf9
ds $1
wAnimationSFX:: ; dcfa
ds $1
; only written, always equals 0
wAnimationUnknownParam:: ; dcfb
ds $1
SECTION "WRAM1@dd02", WRAMX
; stores the player's result in a duel (0: win, 1: loss, 2: ???, -1: transmission error?)
@@ -3028,7 +3119,19 @@ wPlayerName:: ; de54
wde64:: ; de64
ds $1
ds $4
; used by GetNextBackgroundScroll
wBGScrollMod:: ; de65
ds $1
; used by ApplyBackgroundScroll
wApplyBGScroll:: ; de66
ds $1
; used by ApplyBackgroundScroll
wNextScrollLY:: ; de67
ds $1
ds $1
wde69:: ; de69
ds $2