From 1082494d9886e99f2eab1d924ec4091a1a902055 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Thu, 15 Feb 2018 21:42:06 +0100 Subject: Style --- src/audio/music1.asm | 84 +++++++++---------- src/audio/music2.asm | 82 +++++++++--------- src/audio/vibrato_types.asm | 46 +++++----- src/data/cards.asm | 54 ++++++------ src/data/effect_commands.asm | 16 ++-- src/engine/bank1.asm | 182 ++++++++++++++++++++-------------------- src/engine/bank3.asm | 42 +++++----- src/engine/bank5.asm | 12 +-- src/engine/booster_packs.asm | 144 +++++++++++++++---------------- src/engine/effect_functions.asm | 24 +++--- src/engine/home.asm | 14 ++-- src/gfx.asm | 2 +- src/text/text10.asm | 16 ++-- src/text/text11.asm | 4 +- src/text/text12.asm | 4 +- src/text/text13.asm | 4 +- src/text/text_offsets.asm | 33 ++++---- 17 files changed, 381 insertions(+), 382 deletions(-) diff --git a/src/audio/music1.asm b/src/audio/music1.asm index 2db31c7..c4ccf4b 100755 --- a/src/audio/music1.asm +++ b/src/audio/music1.asm @@ -131,7 +131,7 @@ Music1_Init: ; f407d (3d:407d) ld [wMusicDC], a ld de, $0001 ld bc, $0000 -.zeroLoop1 +.zero_loop1 ld hl, wMusicIsPlaying add hl, bc ld [hl], d @@ -150,16 +150,16 @@ Music1_Init: ; f407d (3d:407d) inc c ld a, c cp $4 - jr nz, .zeroLoop1 + jr nz, .zero_loop1 ld hl, Music1_ChannelLoopStacks ld bc, wMusicChannelStackPointers ld d, $8 -.zeroLoop2 +.zero_loop2 ld a, [hli] ld [bc], a inc bc dec d - jr nz, .zeroLoop2 + jr nz, .zero_loop2 ret Music1_Update: ; f40e9 (3d:40e9) @@ -172,15 +172,15 @@ Music1_Update: ; f40e9 (3d:40e9) ld [MBC3RomBank], a ld a, [wddf2] cp $0 - jr z, .updateChannels + jr z, .update_channels call Func_f4980 - jr .skipChannelUpdates -.updateChannels + jr .skip_channel_Updates +.update_channels call Music1_UpdateChannel1 call Music1_UpdateChannel2 call Music1_UpdateChannel3 call Music1_UpdateChannel4 -.skipChannelUpdates +.skip_channel_Updates call Func_f4866 call Music1_CheckForEndOfSong ret @@ -188,24 +188,24 @@ Music1_Update: ; f40e9 (3d:40e9) Music1_CheckForNewSound: ; f411c (3d:411c) ld a, [wCurSongID] rla - jr c, .checkForNewSfx + jr c, .check_for_new_sfx call Music1_StopAllChannels ld a, [wCurSongID] call Music1_BeginSong ld a, [wCurSongID] or $80 ld [wCurSongID], a -.checkForNewSfx +.check_for_new_sfx ld a, [wCurSfxID] rla - jr c, .noNewSound + jr c, .no_new_sound ld a, [wCurSfxID] ld hl, SFX_PlaySFX call Bankswitch3dTo3f ld a, [wCurSfxID] or $80 ld [wCurSfxID], a -.noNewSound +.no_new_sound ret Music1_StopAllChannels: ; f414b (3d:414b) @@ -214,30 +214,30 @@ Music1_StopAllChannels: ; f414b (3d:414b) xor a ld [wMusicIsPlaying], a bit 0, d - jr nz, .stopChannel2 + jr nz, .stop_channel_2 ld a, $8 ld [rNR12], a swap a ld [rNR14], a -.stopChannel2 +.stop_channel_2 xor a ld [wMusicIsPlaying + 1], a bit 1, d - jr nz, .stopChannel4 + jr nz, .stop_channel_4 ld a, $8 ld [rNR22], a swap a ld [rNR24], a -.stopChannel4 +.stop_channel_4 xor a ld [wMusicIsPlaying + 3], a bit 3, d - jr nz, .stopChannel3 + jr nz, .stop_channel_3 ld a, $8 ld [rNR42], a swap a ld [rNR44], a -.stopChannel3 +.stop_channel_3 xor a ld [wMusicIsPlaying + 2], a bit 2, d @@ -273,7 +273,7 @@ Music1_BeginSong: ; f418c (3d:418c) ld b, h ld c, l rr e - jr nc, .noChannel1 + jr nc, .no_channel_1 ld a, [bc] inc bc ld [wMusicChannelPointers], a @@ -297,9 +297,9 @@ Music1_BeginSong: ; f418c (3d:418c) ld [wMusicChannelStackPointers + 1], a ld a, $8 ld [wMusicE9], a -.noChannel1 +.no_channel_1 rr e - jr nc, .noChannel2 + jr nc, .no_channel_2 ld a, [bc] inc bc ld [wMusicChannelPointers + 2], a @@ -323,9 +323,9 @@ Music1_BeginSong: ; f418c (3d:418c) ld [wMusicChannelStackPointers + 3], a ld a, $8 ld [wMusicE9 + 1], a -.noChannel2 +.no_channel_2 rr e - jr nc, .noChannel3 + jr nc, .no_channel_3 ld a, [bc] inc bc ld [wMusicChannelPointers + 4], a @@ -349,9 +349,9 @@ Music1_BeginSong: ; f418c (3d:418c) ld [wMusicChannelStackPointers + 5], a ld a, $40 ld [wMusicE9 + 2], a -.noChannel3 +.no_channel_3 rr e - jr nc, .noChannel4 + jr nc, .no_channel_4 ld a, [bc] inc bc ld [wMusicChannelPointers + 6], a @@ -374,7 +374,7 @@ Music1_BeginSong: ; f418c (3d:418c) ld [wMusicChannelStackPointers + 7], a ld a, $40 ld [wMusicE9 + 3], a -.noChannel4 +.no_channel_4 xor a ld [wddf2], a ret @@ -935,9 +935,9 @@ Music1_Loop: ; f4609 (3d:4609) inc de push af call Music1_GetChannelStackPointer - ld [hl], e ; + ld [hl], e ; inc hl ; store address of command at beginning of loop - ld [hl], d ; + ld [hl], d ; inc hl pop af ld [hl], a ; store loop count @@ -951,16 +951,16 @@ Music1_EndLoop: ; f461e (3d:461e) dec hl ld a, [hl] ; get remaining loop count dec a - jr z, .loopDone + jr z, .loop_done ld [hld], a ld d, [hl] dec hl ld e, [hl] pop hl - ld h, d ; + ld h, d ; ld l, e ; go to address of beginning of loop jp Music1_PlayNextNote -.loopDone +.loop_done dec hl dec hl call Music1_SetChannelStackPointer @@ -977,9 +977,9 @@ Music1_call: ; f463f (3d:463f) call Music1_GetChannelStackPointer pop de ld a, e - ld [hli], a ; + ld [hli], a ; ld a, d ; store address of command after call - ld [hli], a ; + ld [hli], a ; ld a, [de] ld b, a inc de @@ -995,7 +995,7 @@ Music1_ret: ; f4656 (3d:4656) pop de call Music1_GetChannelStackPointer dec hl - ld a, [hld] ; + ld a, [hld] ; ld e, [hl] ; retrieve address of caller of this sub branch ld d, a inc de @@ -1237,12 +1237,12 @@ Func_f479c: ; f479c (3d:479c) ld d, $0 ld a, [wMusicWaveChange] or a - jr z, .noWaveChange + jr z, .no_wave_change xor a ld [rNR30], a call Music1_LoadWaveInstrument ld d, $80 -.noWaveChange +.no_wave_change ld a, [wddb9] cp $0 jr z, .asm_f47e1 @@ -1287,14 +1287,14 @@ Music1_LoadWaveInstrument: ; f479c (3d:47ea) ld l, a ld b, d ld de, $ff30 -.copyWaveLoop +.copy_wave_loop ld a, [hli] ld [de], a inc de inc b ld a, b cp $10 - jr nz, .copyWaveLoop + jr nz, .copy_wave_loop xor a ld [wMusicWaveChange], a ret @@ -1487,7 +1487,7 @@ Music1_UpdateVibrato: ; f4898 (3d:4898) Func_f490b: ; f490b (3d:490b) cp $0 - jr nz, .notChannel1 + jr nz, .not_channel_1 ld a, [wMusicVibratoDelay] cp $0 jr z, .done @@ -1503,9 +1503,9 @@ Func_f490b: ; f490b (3d:490b) and $3f ld [rNR14], a ret -.notChannel1 +.not_channel_1 cp $1 - jr nz, .notChannel2 + jr nz, .not_channel_2 ld a, [wMusicVibratoDelay + 1] cp $0 jr z, .done @@ -1520,7 +1520,7 @@ Func_f490b: ; f490b (3d:490b) ld a, d ld [rNR24], a ret -.notChannel2 +.not_channel_2 cp $2 jr nz, .done ld a, [wMusicVibratoDelay + 2] diff --git a/src/audio/music2.asm b/src/audio/music2.asm index ddae2bb..d329326 100755 --- a/src/audio/music2.asm +++ b/src/audio/music2.asm @@ -131,7 +131,7 @@ Music2_Init: ; f807d (3e:407d) ld [wMusicDC], a ld de, $0001 ld bc, $0000 -.zeroLoop1 +.zero_loop1 ld hl, wMusicIsPlaying add hl, bc ld [hl], d @@ -150,16 +150,16 @@ Music2_Init: ; f807d (3e:407d) inc c ld a, c cp $4 - jr nz, .zeroLoop1 + jr nz, .zero_loop1 ld hl, Music2_ChannelLoopStacks ld bc, wMusicChannelStackPointers ld d, $8 -.zeroLoop2 +.zero_loop2 ld a, [hli] ld [bc], a inc bc dec d - jr nz, .zeroLoop2 + jr nz, .zero_loop2 ret Music2_Update: ; f80e9 (3e:40e9) @@ -172,15 +172,15 @@ Music2_Update: ; f80e9 (3e:40e9) ld [MBC3RomBank], a ld a, [wddf2] cp $0 - jr z, .updateChannels + jr z, .update_channels call Func_f8980 - jr .skipChannelUpdates -.updateChannels + jr .skip_channel_Updates +.update_channels call Music2_UpdateChannel1 call Music2_UpdateChannel2 call Music2_UpdateChannel3 call Music2_UpdateChannel4 -.skipChannelUpdates +.skip_channel_Updates call Func_f8866 call Music2_CheckForEndOfSong ret @@ -188,24 +188,24 @@ Music2_Update: ; f80e9 (3e:40e9) Music2_CheckForNewSound: ; f811c (3e:411c) ld a, [wCurSongID] rla - jr c, .checkForNewSfx + jr c, .check_for_new_sfx call Music2_StopAllChannels ld a, [wCurSongID] call Music2_BeginSong ld a, [wCurSongID] or $80 ld [wCurSongID], a -.checkForNewSfx +.check_for_new_sfx ld a, [wCurSfxID] rla - jr c, .noNewSound + jr c, .no_new_sound ld a, [wCurSfxID] ld hl, SFX_PlaySFX call Bankswitch3dTo3f ld a, [wCurSfxID] or $80 ld [wCurSfxID], a -.noNewSound +.no_new_sound ret Music2_StopAllChannels: ; f814b (3e:414b) @@ -214,30 +214,30 @@ Music2_StopAllChannels: ; f814b (3e:414b) xor a ld [wMusicIsPlaying], a bit 0, d - jr nz, .stopChannel2 + jr nz, .stop_channel_2 ld a, $8 ld [rNR12], a swap a ld [rNR14], a -.stopChannel2 +.stop_channel_2 xor a ld [wMusicIsPlaying + 1], a bit 1, d - jr nz, .stopChannel4 + jr nz, .stop_channel_4 ld a, $8 ld [rNR22], a swap a ld [rNR24], a -.stopChannel4 +.stop_channel_4 xor a ld [wMusicIsPlaying + 3], a bit 3, d - jr nz, .stopChannel3 + jr nz, .stop_channel_3 ld a, $8 ld [rNR42], a swap a ld [rNR44], a -.stopChannel3 +.stop_channel_3 xor a ld [wMusicIsPlaying + 2], a bit 2, d @@ -273,7 +273,7 @@ Music2_BeginSong: ; f818c (3e:418c) ld b, h ld c, l rr e - jr nc, .noChannel1 + jr nc, .no_channel_1 ld a, [bc] inc bc ld [wMusicChannelPointers], a @@ -297,9 +297,9 @@ Music2_BeginSong: ; f818c (3e:418c) ld [wMusicChannelStackPointers + 1], a ld a, $8 ld [wMusicE9], a -.noChannel1 +.no_channel_1 rr e - jr nc, .noChannel2 + jr nc, .no_channel_2 ld a, [bc] inc bc ld [wMusicChannelPointers + 2], a @@ -323,9 +323,9 @@ Music2_BeginSong: ; f818c (3e:418c) ld [wMusicChannelStackPointers + 3], a ld a, $8 ld [wMusicE9 + 1], a -.noChannel2 +.no_channel_2 rr e - jr nc, .noChannel3 + jr nc, .no_channel_3 ld a, [bc] inc bc ld [wMusicChannelPointers + 4], a @@ -349,9 +349,9 @@ Music2_BeginSong: ; f818c (3e:418c) ld [wMusicChannelStackPointers + 5], a ld a, $40 ld [wMusicE9 + 2], a -.noChannel3 +.no_channel_3 rr e - jr nc, .noChannel4 + jr nc, .no_channel_4 ld a, [bc] inc bc ld [wMusicChannelPointers + 6], a @@ -374,7 +374,7 @@ Music2_BeginSong: ; f818c (3e:418c) ld [wMusicChannelStackPointers + 7], a ld a, $40 ld [wMusicE9 + 3], a -.noChannel4 +.no_channel_4 xor a ld [wddf2], a ret @@ -935,7 +935,7 @@ Music2_Loop: ; f8609 (3e:4609) inc de push af call Music2_GetChannelStackPointer - ld [hl], e ; + ld [hl], e ; inc hl ; store address of command at beginning of loop ld [hl], d ; inc hl @@ -951,16 +951,16 @@ Music2_EndLoop: ; f861e (3e:461e) dec hl ld a, [hl] ; get remaining loop count dec a - jr z, .loopDone + jr z, .loop_done ld [hld], a ld d, [hl] dec hl ld e, [hl] pop hl - ld h, d ; + ld h, d ; ld l, e ; go to address of beginning of loop jp Music2_PlayNextNote -.loopDone +.loop_done dec hl dec hl call Music2_SetChannelStackPointer @@ -977,9 +977,9 @@ Music2_call: ; f863f (3e:463f) call Music2_GetChannelStackPointer pop de ld a, e - ld [hli], a ; + ld [hli], a ; ld a, d ; store address of command after call - ld [hli], a ; + ld [hli], a ; ld a, [de] ld b, a inc de @@ -995,7 +995,7 @@ Music2_ret: ; f8656 (3e:4656) pop de call Music2_GetChannelStackPointer dec hl - ld a, [hld] ; + ld a, [hld] ; ld e, [hl] ; retrieve address of caller of this sub branch ld d, a inc de @@ -1237,12 +1237,12 @@ Func_f879c: ; f879c (3e:479c) ld d, $0 ld a, [wMusicWaveChange] or a - jr z, .noWaveChange + jr z, .no_wave_change xor a ld [rNR30], a call Music2_LoadWaveInstrument ld d, $80 -.noWaveChange +.no_wave_change ld a, [wddb9] cp $0 jr z, .asm_f87e1 @@ -1287,14 +1287,14 @@ Music2_LoadWaveInstrument: ; f879c (3e:47ea) ld l, a ld b, d ld de, $ff30 -.copyWaveLoop +.copy_wave_loop ld a, [hli] ld [de], a inc de inc b ld a, b cp $10 - jr nz, .copyWaveLoop + jr nz, .copy_wave_loop xor a ld [wMusicWaveChange], a ret @@ -1487,7 +1487,7 @@ Func_f8898: ; f8898 (3e:4898) Func_f890b: ; f890b (3e:490b) cp $0 - jr nz, .notChannel1 + jr nz, .not_channel_1 ld a, [wMusicVibratoDelay] cp $0 jr z, .done @@ -1503,9 +1503,9 @@ Func_f890b: ; f890b (3e:490b) and $3f ld [rNR14], a ret -.notChannel1 +.not_channel_1 cp $1 - jr nz, .notChannel2 + jr nz, .not_channel_2 ld a, [wMusicVibratoDelay + 1] cp $0 jr z, .done @@ -1520,7 +1520,7 @@ Func_f890b: ; f890b (3e:490b) ld a, d ld [rNR24], a ret -.notChannel2 +.not_channel_2 cp $2 jr nz, .done ld a, [wMusicVibratoDelay + 2] diff --git a/src/audio/vibrato_types.asm b/src/audio/vibrato_types.asm index d51546e..6d6b7e1 100755 --- a/src/audio/vibrato_types.asm +++ b/src/audio/vibrato_types.asm @@ -1,44 +1,44 @@ - dw .vibratoType0 - dw .vibratoType1 - dw .vibratoType2 - dw .vibratoType3 - dw .vibratoType4 - dw .vibratoType5 - dw .vibratoType6 - dw .vibratoType7 - dw .vibratoType8 - dw .vibratoType9 - dw .vibratoTypeA - -.vibratoType0 + dw .vibrato_type_0 + dw .vibrato_type_1 + dw .vibrato_type_2 + dw .vibrato_type_3 + dw .vibrato_type_4 + dw .vibrato_type_5 + dw .vibrato_type_6 + dw .vibrato_type_7 + dw .vibrato_type_8 + dw .vibrato_type_9 + dw .vibrato_type_A + +.vibrato_type_0 db $00,$80,$80 -.vibratoType1 +.vibrato_type_1 db $01,$02,$01,$00,$ff,$fe,$ff,$00,$80,$80 -.vibratoType2 +.vibrato_type_2 db $03,$fd,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$01 -.vibratoType3 +.vibrato_type_3 db $01,$01,$00,$00,$ff,$ff,$00,$00,$80,$80 -.vibratoType4 +.vibrato_type_4 db $01,$01,$01,$00,$00,$00,$ff,$ff,$ff,$00,$00,$00,$80,$80 -.vibratoType5 +.vibrato_type_5 db $02,$04,$06,$04,$02,$00,$fe,$fc,$fa,$fc,$fe,$00,$80,$80 -.vibratoType6 +.vibrato_type_6 db $04,$04,$08,$08,$04,$04,$00,$00,$fc,$fc,$f8,$f8,$fc,$fc,$00,$00,$80,$80 -.vibratoType7 +.vibrato_type_7 db $f8,$f8,$f9,$f9,$fa,$fa,$fb,$fb,$fc,$fc,$fd,$fd,$fe,$fe,$ff,$ff,$00,$00,$80,$05 -.vibratoType8 +.vibrato_type_8 db $02,$04,$02,$00,$fe,$fc,$fe,$00,$80,$80 -.vibratoType9 +.vibrato_type_9 db $01,$02,$04,$02,$01,$00,$ff,$fe,$fc,$fe,$ff,$00,$80,$08 -.vibratoTypeA +.vibrato_type_A db $01,$01,$01,$01,$00,$00,$00,$00,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$80,$80 diff --git a/src/data/cards.asm b/src/data/cards.asm index b246f59..480607e 100755 --- a/src/data/cards.asm +++ b/src/data/cards.asm @@ -221,7 +221,7 @@ CardPointers: ; 30c5c (c:4c5c) dw PlusPowerCard dw DefenderCard dw ItemFinderCard - dw GustofWindCard + dw GustOfWindCard dw DevolutionSprayCard dw PotionCard dw SuperPotionCard @@ -872,12 +872,12 @@ NidoranFCard: ; 31134 (c:5134) ; move 2 energy GRASS, 2 ; energies - tx CallforFamilyName ; name - tx NidoranFsCallforFamilyDescription ; description + tx CallForFamilyName ; name + tx NidoranFsCallForFamilyDescription ; description dw NONE ; description (cont) db 0 ; damage db RESIDUAL ; category - dw NidoranFCallforFamilyEffectCommands ; effect commands + dw NidoranFCallForFamilyEffectCommands ; effect commands db NONE ; flags 1 db NONE ; flags 2 db FLAG_3_BIT_1 ; flags 3 @@ -1637,12 +1637,12 @@ BellsproutCard: ; 31503 (c:5503) ; move 2 energy GRASS, 1 ; energies - tx CallforFamilyName ; name - tx BellsproutsCallforFamilyDescription ; description + tx CallForFamilyName ; name + tx BellsproutsCallForFamilyDescription ; description dw NONE ; description (cont) db 0 ; damage db RESIDUAL ; category - dw BellsproutCallforFamilyEffectCommands ; effect commands + dw BellsproutCallForFamilyEffectCommands ; effect commands db NONE ; flags 1 db NONE ; flags 2 db FLAG_3_BIT_1 ; flags 3 @@ -2657,12 +2657,12 @@ Arcanine1Card: ; 31a17 (c:5a17) ; move 2 energy FIRE, 2 ; energies - tx FlamesofRageName ; name - tx FlamesofRageDescription ; description + tx FlamesOfRageName ; name + tx FlamesOfRageDescription ; description dw NONE ; description (cont) db 40 ; damage db DAMAGE_PLUS ; category - dw ArcanineFlamesofRageEffectCommands ; effect commands + dw ArcanineFlamesOfRageEffectCommands ; effect commands db NONE ; flags 1 db DISCARD_ENERGY ; flags 2 db BOOST_IF_TAKEN_DAMAGE ; flags 3 @@ -3779,12 +3779,12 @@ ShellderCard: ; 31fad (c:5fad) ; move 2 energy WATER, 1 ; energies - tx HideinShellName ; name - tx HideinShellDescription ; description + tx HideInShellName ; name + tx HideInShellDescription ; description dw NONE ; description (cont) db 0 ; damage db RESIDUAL ; category - dw ShellderHideinShellEffectCommands ; effect commands + dw ShellderHideInShellEffectCommands ; effect commands db NONE ; flags 1 db NULLIFY_OR_WEAKEN_ATTACK ; flags 2 db NONE ; flags 3 @@ -3867,12 +3867,12 @@ KrabbyCard: ; 3202f (c:602f) ; move 1 energy WATER, 1 ; energies - tx CallforFamilyName ; name - tx KrabbysCallforFamilyDescription ; description + tx CallForFamilyName ; name + tx KrabbysCallForFamilyDescription ; description dw NONE ; description (cont) db 0 ; damage db RESIDUAL ; category - dw KrabbyCallforFamilyEffectCommands ; effect commands + dw KrabbyCallForFamilyEffectCommands ; effect commands db NONE ; flags 1 db NONE ; flags 2 db FLAG_3_BIT_1 ; flags 3 @@ -5856,12 +5856,12 @@ Zapdos3Card: ; 32a16 (c:6a16) ; move 1 energy 0 ; energies - tx PealofThunderName ; name - tx PealofThunderDescription ; description + tx PealOfThunderName ; name + tx PealOfThunderDescription ; description dw NONE ; description (cont) db 0 ; damage db POKEMON_POWER ; category - dw ZapdosPealofThunderEffectCommands ; effect commands + dw ZapdosPealOfThunderEffectCommands ; effect commands db DAMAGE_TO_OPPONENT_BENCH ; flags 1 db NONE ; flags 2 db NONE ; flags 3 @@ -8828,12 +8828,12 @@ WigglytuffCard: ; 338d0 (c:78d0) ; move 2 energy COLORLESS, 3 ; energies - tx DotheWaveName ; name - tx DotheWaveDescription ; description + tx DoTheWaveName ; name + tx DoTheWaveDescription ; description dw NONE ; description (cont) db 10 ; damage db DAMAGE_PLUS ; category - dw WigglytuffDotheWaveEffectCommands ; effect commands + dw WigglytuffDoTheWaveEffectCommands ; effect commands db NONE ; flags 1 db NONE ; flags 2 db NONE ; flags 3 @@ -10111,15 +10111,15 @@ ItemFinderCard: ; 33f47 (c:7f47) tx ItemFinderDescription ; description dw NONE ; description (cont) -GustofWindCard: ; 33f55 (c:7f55) +GustOfWindCard: ; 33f55 (c:7f55) db TYPE_TRAINER ; type - gfx GustofWindCardGfx ; gfx - tx GustofWindName ; name + gfx GustOfWindCardGfx ; gfx + tx GustOfWindName ; name db CIRCLE ; rarity db EVOLUTION | NONE ; sets db GUST_OF_WIND - dw GustofWindEffectCommands ; effect commands - tx GustofWindDescription ; description + dw GustOfWindEffectCommands ; effect commands + tx GustOfWindDescription ; description dw NONE ; description (cont) DevolutionSprayCard: ; 33f63 (c:7f63) diff --git a/src/data/effect_commands.asm b/src/data/effect_commands.asm index 3dfdf9c..1df3d0d 100644 --- a/src/data/effect_commands.asm +++ b/src/data/effect_commands.asm @@ -182,7 +182,7 @@ NidoranFFurySweepesEffectCommands: dbw $09, $49be db $00 -NidoranFCallforFamilyEffectCommands: +NidoranFCallForFamilyEffectCommands: dbw $01, $49db dbw $04, $4a6e dbw $05, $49eb @@ -264,7 +264,7 @@ MukSludgeEffectCommands: dbw $09, $4c38 db $00 -BellsproutCallforFamilyEffectCommands: +BellsproutCallForFamilyEffectCommands: dbw $01, $4c40 dbw $04, $4cc2 dbw $05, $4c50 @@ -369,7 +369,7 @@ KinglerFlailEffectCommands: dbw $09, $4f4e db $00 -KrabbyCallforFamilyEffectCommands: +KrabbyCallForFamilyEffectCommands: dbw $01, $4f5d dbw $04, $4fdf dbw $05, $4f6d @@ -413,7 +413,7 @@ ShellderSupersonicEffectCommands: dbw $03, $509d db $00 -ShellderHideinShellEffectCommands: +ShellderHideInShellEffectCommands: dbw $03, $50a4 db $00 @@ -555,7 +555,7 @@ ArcanineQuickAttackEffectCommands: dbw $09, $5385 db $00 -ArcanineFlamesofRageEffectCommands: +ArcanineFlamesOfRageEffectCommands: dbw $01, $53a0 dbw $02, $53ae dbw $03, $53ef @@ -1114,7 +1114,7 @@ Magneton2SelfdestructEffectCommands: dbw $04, $675f db $00 -ZapdosPealofThunderEffectCommands: +ZapdosPealOfThunderEffectCommands: dbw $01, $677e dbw $07, $6780 db $00 @@ -1289,7 +1289,7 @@ WigglytuffLullabyEffectCommands: dbw $03, SleepEffect db $00 -WigglytuffDotheWaveEffectCommands: +WigglytuffDoTheWaveEffectCommands: dbw $03, $6d87 dbw $09, $6d87 db $00 @@ -1599,7 +1599,7 @@ SuperEnergyRetrievalEffectCommands: dbw $05, $7dba db $00 -GustofWindEffectCommands: +GustOfWindEffectCommands: dbw $01, $7e6e dbw $02, $7e79 dbw $03, $7e90 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index b5894d2..2d9e6f9 100755 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -86,7 +86,7 @@ StartDuel: ; 409f (1:409f) ret c ; the loop returns here after every turn switch -.mainDuelLoop ; 40ee (1:40ee) +.main_duel_loop ; 40ee (1:40ee) xor a ld [wCurrentDuelMenuItem], a call HandleSwordsDanceOrFocusEnergySubstatus @@ -95,36 +95,36 @@ StartDuel: ; 409f (1:409f) call Func_0f58 ld a, [wDuelFinished] or a - jr nz, .duelFinished + jr nz, .duel_finished call UpdateSubstatusConditions call $6baf call Func_3b31 call Func_0f58 ld a, [wDuelFinished] or a - jr nz, .duelFinished + jr nz, .duel_finished ld hl, $cc06 inc [hl] ld a, [wcc09] cp $80 jr z, .asm_4126 -.nextTurn +.next_turn call SwapTurn - jr .mainDuelLoop + jr .main_duel_loop .asm_4126 ld a, [wIsPracticeDuel] or a - jr z, .nextTurn + jr z, .next_turn ld a, [hl] cp $f - jr c, .nextTurn + jr c, .next_turn xor a ld [wd0c3], a ret -.duelFinished +.duel_finished call $5990 call Func_04a2 ld a, $3 @@ -143,38 +143,38 @@ StartDuel: ; 409f (1:409f) call Func_3b21 ld a, [wDuelFinished] cp DUEL_WON - jr z, .activeDuelistWonBattle + jr z, .active_duelist_won_battle cp DUEL_LOST - jr z, .activeDuelistLostBattle + jr z, .active_duelist_lost_batte ld a, $5f ld c, MUSIC_DARKDIDDLY ldtx hl, DuelWasDrawText - jr .handleDuelFinished + jr .handle_duel_finished -.activeDuelistWonBattle +.active_duelist_won_battle ldh a, [hWhoseTurn] cp PLAYER_TURN - jr nz, .opponentWonBattle -.playerWonBattle + jr nz, .opponent_won_battle +.player_won_battle xor a ld [wd0c3], a ld a, $5d ld c, MUSIC_MATCHVICTORY ldtx hl, WonDuelText - jr .handleDuelFinished + jr .handle_duel_finished -.activeDuelistLostBattle +.active_duelist_lost_batte ldh a, [hWhoseTurn] cp PLAYER_TURN - jr nz, .playerWonBattle -.opponentWonBattle + jr nz, .player_won_battle +.opponent_won_battle ld a, $1 ld [wd0c3], a ld a, $5e ld c, MUSIC_MATCHLOSS ldtx hl, LostDuelText -.handleDuelFinished +.handle_duel_finished call Func_3b6a ld a, c call PlaySong @@ -189,7 +189,7 @@ StartDuel: ; 409f (1:409f) jr nz, .asm_41a7 ld a, [wDuelFinished] cp DUEL_DRAW - jr z, .tiedBattle + jr z, .tied_battle call Func_39fc call WaitForWideTextBoxInput call Func_3b31 @@ -198,7 +198,7 @@ StartDuel: ; 409f (1:409f) ldh [hWhoseTurn], a ret -.tiedBattle +.tied_battle call WaitForWideTextBoxInput call Func_3b31 ld a, [wDuelTheme] @@ -247,12 +247,12 @@ HandleTurn: ; 4225 (1:4225) call $70e6 call $4933 call DrawCardFromDeck - jr nc, .deckNotEmpty + jr nc, .deck_not_empty ld a, DUEL_LOST ld [wDuelFinished], a ret -.deckNotEmpty +.deck_not_empty ldh [hTempCardNumber], a call AddCardToHand ld a, [wcc0d] @@ -474,14 +474,14 @@ Func_4436: ; 4436 (1:4436) PlayerUseEnergyCard: ; 4477 (1:4477) ld a, c cp TYPE_ENERGY_WATER ; XXX why treat water energy card differently? - jr nz, .notWaterEnergy + jr nz, .not_water_energy call $3615 - jr c, .waterEnergy + jr c, .water_energy -.notWaterEnergy +.not_water_energy ld a, [wAlreadyPlayedEnergy] or a - jr nz, .alreadyPlayedEnergy + jr nz, .already_played_energy call $5fdd call $600c ; choose card to play energy card on jp c, Func_426d ; exit if no card was chosen @@ -501,7 +501,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) call $68e4 jp Func_426d -.waterEnergy +.water_energy call $5fdd call $600c ; choose card to play energy card on jp c, Func_426d ; exit if no card was chosen @@ -514,7 +514,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) call DrawWideTextBox_WaitForInput jp Func_4436 -.alreadyPlayedEnergy +.already_played_energy ldtx hl, OnlyOneEnergyCardText call DrawWideTextBox_WaitForInput call CreateHandCardBuffer @@ -533,27 +533,27 @@ DuelMenu_Check: ; 4585 (1:4585) DuelMenu_Attack: ; 46fc (1:46fc) call HandleCantAttackSubstatus - jr c, .alertCantAttackAndCancelMenu + jr c, .alert_cant_attack_and_cancel_menu call CheckIfActiveCardParalyzedOrAsleep - jr nc, .clearSubMenuSelection + jr nc, .clear_sub_menu_selection -.alertCantAttackAndCancelMenu +.alert_cant_attack_and_cancel_menu call DrawWideTextBox_WaitForInput jp PrintDuelMenu -.clearSubMenuSelection +.clear_sub_menu_selection xor a ld [wSelectedDuelSubMenuItem], a -.tryOpenAttackMenu +.try_open_attack_menu call LoadPokemonMovesToDuelCardOrAttackList or a - jr nz, .openAttackMenu + jr nz, .open_attack_menu ldtx hl, NoSelectableAttackText call DrawWideTextBox_WaitForInput jp PrintDuelMenu -.openAttackMenu +.open_attack_menu push af ld a, [wSelectedDuelSubMenuItem] ld hl, AttackMenuCursorData @@ -566,23 +566,23 @@ DuelMenu_Attack: ; 46fc (1:46fc) ld a, [hl] call LoadDeckCardToBuffer1 -.waitForInput +.wait_for_input call DoFrame ldh a, [hButtonsPressed] and START - jr nz, .displaySelectedMoveInfo + jr nz, .display_selected_move_info call HandleMenuInput - jr nc, .waitForInput + jr nc, .wait_for_input cp $ff ; was B pressed? jp z, PrintDuelMenu ld [wSelectedDuelSubMenuItem], a call CheckIfEnoughEnergies - jr nc, .enoughEnergy + jr nc, .enough_energy ldtx hl, NotEnoughEnergyCardsText call DrawWideTextBox_WaitForInput - jr .tryOpenAttackMenu + jr .try_open_attack_menu -.enoughEnergy +.enough_energy ldh a, [hCurrentMenuItem] add a ld e, a @@ -594,7 +594,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) ld e, [hl] ; attack index (0 or 1) call CopyMoveDataAndDamageToBuffer call HandleAmnesiaSubstatus - jr c, .cannotUseDueToAmnesia + jr c, .cannot_use_due_to_amnesia ld a, $07 call $51e7 jp c, Func_4268 @@ -602,14 +602,14 @@ DuelMenu_Attack: ; 46fc (1:46fc) jp c, Func_426d ret -.cannotUseDueToAmnesia ; 477d (1:477d) +.cannot_use_due_to_amnesia ; 477d (1:477d) call DrawWideTextBox_WaitForInput - jr .tryOpenAttackMenu + jr .try_open_attack_menu -.displaySelectedMoveInfo ; 4782 (1:4782) +.display_selected_move_info ; 4782 (1:4782) call Func_478b call $4f9d - jp .tryOpenAttackMenu + jp .try_open_attack_menu Func_478b: ; 478b (1:478b) ld a, $01 @@ -725,7 +725,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) ld [wCardPageNumber], a ld de, wLoadedCard1Move1Name call CheckIfMoveExists - jr c, .checkForSecondAttackSlot + jr c, .check_for_second_attack_slot ldh a, [hTempCardNumber] ld [hli], a xor a @@ -741,10 +741,10 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) inc b inc b -.checkForSecondAttackSlot +.check_for_second_attack_slot ld de, wLoadedCard1Move2Name call CheckIfMoveExists - jr c, .finishLoadingAttacks + jr c, .finish_loading_attacks ldh a, [hTempCardNumber] ld [hli], a ld a, $01 @@ -758,7 +758,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) pop bc pop hl -.finishLoadingAttacks +.finish_loading_attacks ld a, c ret @@ -771,13 +771,13 @@ CheckIfMoveExists: ; 4872 (1:4872) inc de ld a, [de] or c - jr z, .returnNoMoveFound + jr z, .return_no_move_found ld hl, wLoadedCard1Move1Category - (wLoadedCard1Move1Name + 1) add hl, de ld a, [hl] and $ff - RESIDUAL cp POKEMON_POWER - jr z, .returnNoMoveFound + jr z, .return_no_move_found or a .return @@ -786,7 +786,7 @@ CheckIfMoveExists: ; 4872 (1:4872) pop hl ret -.returnNoMoveFound +.return_no_move_found scf jr .return @@ -829,35 +829,35 @@ _CheckIfEnoughEnergies: ; 48ac (1:48ac) ld de, wLoadedCard1Move1Energy ld a, c or a - jr z, .gotMove + jr z, .got_move ld de, wLoadedCard1Move2Energy -.gotMove +.got_move ld hl, wLoadedCard1Move1Name - wLoadedCard1Move1Energy add hl, de ld a, [hli] or [hl] - jr z, .notUsable + jr z, .not_usable ld hl, wLoadedCard1Move1Category - wLoadedCard1Move1Energy add hl, de ld a, [hl] cp POKEMON_POWER - jr z, .notUsable + jr z, .not_usable xor a ld [wAttachedEnergiesAccum], a ld hl, wAttachedEnergies ld c, (COLORLESS - FIRE) / 2 -.nextEnergyTypePair +.next_energy_type_pair ld a, [de] swap a call _CheckIfEnoughEnergiesOfType - jr c, .notEnoughEnergies + jr c, .not_enough_energies ld a, [de] call _CheckIfEnoughEnergiesOfType - jr c, .notEnoughEnergies + jr c, .not_enough_energies inc de dec c - jr nz, .nextEnergyTypePair + jr nz, .next_energy_type_pair ld a, [de] ; colorless energy swap a and $f @@ -867,14 +867,14 @@ _CheckIfEnoughEnergies: ; 48ac (1:48ac) ld a, [wTotalAttachedEnergies] sub c cp b - jr c, .notEnoughEnergies + jr c, .not_enough_energies or a .asm_48fb pop de ret -.notUsable -.notEnoughEnergies +.not_usable +.not_enough_energies scf jr .asm_48fb ; 0x4900 @@ -891,16 +891,16 @@ _CheckIfEnoughEnergiesOfType: ; 4900 (1:4900) ld [hl], a ; accumulate the amount of energies required pop hl pop af - jr z, .enoughEnergies ; jump if no energies of this type are required + jr z, .enough_energies ; jump if no energies of this type are required cp [hl] ; jump if the energies required of this type are not more than the amount attached - jr z, .enoughEnergies - jr c, .enoughEnergies + jr z, .enough_energies + jr c, .enough_energies inc hl scf ret -.enoughEnergies +.enough_energies inc hl or a ret @@ -919,12 +919,12 @@ CheckIfActiveCardParalyzedOrAsleep: ; 4918 (1:4918) .paralyzed ldtx hl, UnableDueToParalysisText - jr .returnWithStatusCondition + jr .return_with_status_condition .asleep ldtx hl, UnableDueToSleepText -.returnWithStatusCondition: +.return_with_status_condition scf ret @@ -1181,12 +1181,12 @@ LoadPlayerDeck: ; 6793 (1:6793) add hl, de ld de, wPlayerDeck ld c, DECK_SIZE -.nextCardLoop +.next_card_loop ld a, [hli] ld [de], a inc de dec c - jr nz, .nextCardLoop + jr nz, .next_card_loop call DisableExtRAM ret ; 0x67b2 @@ -1201,14 +1201,14 @@ AIMakeDecision: ; 67be (1:67be) ld a, [hl] ld [hl], $0 or a - jr nz, .skipDelay -.delayLoop + jr nz, .skip_delay +.delay_loop call DoFrame ld a, [wVBlankCtr] cp $3c - jr c, .delayLoop + jr c, .delay_loop -.skipDelay +.skip_delay ld a, [$ff9e] ld hl, $cbe1 ld [hl], $0 @@ -1217,7 +1217,7 @@ AIMakeDecision: ; 67be (1:67be) ld a, [wDuelFinished] ld hl, $cbe1 or [hl] - jr nz, .turnEnded + jr nz, .turn_ended ld a, [wcbf9] or a ret nz @@ -1227,7 +1227,7 @@ AIMakeDecision: ; 67be (1:67be) or a ret -.turnEnded +.turn_ended scf ret ; 0x67fb @@ -1296,23 +1296,23 @@ ConvertTrainerCardToPokemon: ret z ld a, e cp MYSTERIOUS_FOSSIL - jr nz, .checkForClefairyDoll + jr nz, .check_for_clefairy_doll ld a, d cp $00 - jr z, .startRamDataOverwrite + jr z, .start_ram_data_overwrite ret -.checkForClefairyDoll +.check_for_clefairy_doll cp CLEFAIRY_DOLL ret nz ld a, d cp $00 ret nz -.startRamDataOverwrite +.start_ram_data_overwrite push de ld [hl], COLORLESS ld bc, wLoadedCard1HP - wLoadedCard1 add hl, bc - ld de, .dataToOverwrite + ld de, .data_to_overwrite ld c, wLoadedCard1Unknown2 - wLoadedCard1HP .loop ld a, [de] @@ -1323,7 +1323,7 @@ ConvertTrainerCardToPokemon: pop de ret -.dataToOverwrite +.data_to_overwrite db 10 ; hp ds $07 ; wLoadedCard1Move1Name - (wLoadedCard1HP + 1) tx DiscardName ; move1 name @@ -1349,16 +1349,16 @@ InitializeDuelVariables: ; 7107 (1:7107) push af xor a ld l, a -.zeroDuelVariablesLoop +.zero_duel_variables_loop ld [hl], a inc l - jr nz, .zeroDuelVariablesLoop + jr nz, .zero_duel_variables_loop pop af pop hl ld [hl], a lb bc, DUELVARS_CARD_LOCATIONS, DECK_SIZE ld l, DUELVARS_DECK_CARDS -.initDuelVariablesLoop +.init_duel_variables_loop ; zero card locations and cards in hand, and init order of cards in deck push hl ld [hl], b @@ -1368,15 +1368,15 @@ InitializeDuelVariables: ; 7107 (1:7107) inc l inc b dec c - jr nz, .initDuelVariablesLoop + jr nz, .init_duel_variables_loop ld l, DUELVARS_ARENA_CARD ld c, 1 + BENCH_SIZE + 1 -.initPlayArea +.init_play_area ; initialize to $ff card in arena as well as cards in bench (plus a terminator?) ld [hl], $ff inc l dec c - jr nz, .initPlayArea + jr nz, .init_play_area ret ; 0x7133 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 563a667..f591863 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -772,13 +772,13 @@ AttemptScriptedMovement: ; c619 (3:4619) push bc ld a, b cp $1f - jr nc, .quitMovement + jr nc, .quit_movement ld a, c cp $1f - jr nc, .quitMovement + jr nc, .quit_movement call GetFloorObjectFromPos and $40 | $80 ; the two impassable objects found in the floor map - jr nz, .quitMovement + jr nz, .quit_movement ld a, b ld [wPlayerXCoord], a ld a, c @@ -795,7 +795,7 @@ AttemptScriptedMovement: ; c619 (3:4619) call ModifyUnknownOAMBufferProperty ld a, $4 ld [hl], a -.quitMovement +.quit_movement pop bc pop hl ret @@ -2981,11 +2981,11 @@ WaterClubMovePlayer: ; e13f (3:613f) jp Func_c926 WaterClubAfterDuel: ;e157 (3:6157) - ld hl, .afterDuelTable + ld hl, .after_duel_table call FindEndOfBattleScript ret -.afterDuelTable +.after_duel_table dw $1f1f dw OWSequence_BeatSara dw OWSequence_LostToSara @@ -3009,11 +3009,11 @@ OWSequence_Sara: ; e177 (3:6177) tx Text042c run_script OWScript_AskQuestionJump tx Text042d - dw .yesDuel + dw .yes_duel run_script OWScript_PrintTextString tx Text042e run_script OWScript_EndScriptCloseText -.yesDuel +.yes_duel run_script OWScript_PrintTextString tx Text042f run_script OWScript_StartBattle @@ -3047,11 +3047,11 @@ OWSequence_Amanda: ; e19e (03:619e) tx Text0433 run_script OWScript_AskQuestionJump tx Text0434 - dw .yesDuel + dw .yes_duel run_script OWScript_PrintTextString tx Text0435 run_script OWScript_EndScriptCloseText -.yesDuel +.yes_duel run_script OWScript_PrintTextString tx Text0436 run_script OWScript_StartBattle @@ -3086,20 +3086,20 @@ OWSequence_Joshua: start_script run_script OWScript_JumpIfFlagNotSet db FLAG_BEAT_AMANDA - dw .saraAndAmandaNotBeaten + dw .sara_and_amanda_not_beaten run_script OWScript_JumpIfFlagNotSet db FLAG_BEAT_SARA - dw .saraAndAmandaNotBeaten + dw .sara_and_amanda_not_beaten run_script OWScript_ScriptJump - dw .beatSaraAndAmanda -.saraAndAmandaNotBeaten + dw .beat_sara_and_amanda +.sara_and_amanda_not_beaten run_script OWScript_CustomModifyEventFlags db $33 ; offset on flagmod table db $01 ; the control bit run_script OWScript_PrintTextString tx Text043b run_script OWScript_EndScriptCloseText -.beatSaraAndAmanda +.beat_sara_and_amanda run_script OWScript_JumpIfFlagSet db $33 dw $623c @@ -3120,23 +3120,23 @@ FindEndOfBattleScript: ; e52c (3:652c) ld c, $0 ld a, [wd0c3] or a - jr z, .playerWon + jr z, .player_won ld c, $2 -.playerWon +.player_won ld a, [wd0c4] ld b, a ld de, $0005 -.checkEnemyByteLoop +.check_enemy_byte_loop ld a, [hli] or a ret z cp b - jr z, .foundEnemy + jr z, .found_enemy add hl, de - jr .checkEnemyByteLoop + jr .check_enemy_byte_loop -.foundEnemy +.found_enemy ld a, [hli] ld [wd3ab], a ld b, $0 diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 3f0e5a2..aeceb86 100755 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -59,7 +59,7 @@ PointerTable_14000: ; 14000 (05:4000) Func_14226: ; 14226 (5:4226) call CreateHandCardBuffer ld hl, wDuelCardOrAttackList -.checkForNextPokemon +.check_for_next_pokemon ld a, [hli] ld [$ff98], a cp $ff @@ -67,15 +67,15 @@ Func_14226: ; 14226 (5:4226) call LoadDeckCardToBuffer1 ld a, [wLoadedCard1Type] cp TYPE_ENERGY_FIRE - jr nc, .checkForNextPokemon + jr nc, .check_for_next_pokemon ld a, [wLoadedCard1Stage] or a - jr nz, .checkForNextPokemon + jr nz, .check_for_next_pokemon push hl ld a, [$ff98] call Func_1485 pop hl - jr .checkForNextPokemon + jr .check_for_next_pokemon ; 0x1424b INCROM $1424b, $14663 @@ -310,10 +310,10 @@ ZeroData: ; 1575e (5:575e) push hl ld b, a xor a -.clearLoop +.clear_loop ld [hli], a dec b - jr nz, .clearLoop + jr nz, .clear_loop pop hl pop bc pop af diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index e3180fe..e955ed0 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -3,11 +3,11 @@ GenerateBoosterPack: ; 1e1c4 (7:61c4) push bc push de ld [wBoosterIndex], a -.noCardsFoundLoop +.no_cards_found_loop call InitBoosterData call GenerateBoosterEnergies call GenerateBoosterNonEnergies - jr c, .noCardsFoundLoop + jr c, .no_cards_found_loop call PutEnergiesAndNonEnergiesTogether call AddBoosterCardsToCollection pop de @@ -19,15 +19,15 @@ GenerateBoosterPack: ; 1e1c4 (7:61c4) GenerateBoosterNonEnergies: ; 1e1df (7:61df) ld a, STAR ld [wBoosterCurRarity], a -.generateCardLoop +.generate_card_loop call FindCurRarityChance ld a, [hl] or a - jr z, .noMoreOfCurrentRarity + jr z, .no_more_of_current_rarity call FindCardsInSetAndRarity call FindTotalTypeChances or a - jr z, .noValidCards + jr z, .no_valid_cards call Random call DetermineBoosterCardType call FindBoosterCard @@ -35,16 +35,16 @@ GenerateBoosterNonEnergies: ; 1e1df (7:61df) call AddBoosterCardToDrawnNonEnergies call FindCurRarityChance dec [hl] - jr .generateCardLoop -.noMoreOfCurrentRarity + jr .generate_card_loop +.no_more_of_current_rarity ld a, [wBoosterCurRarity] dec a ld [wBoosterCurRarity], a bit 7, a ; any rarity left to check? - jr z, .generateCardLoop + jr z, .generate_card_loop or a ret -.noValidCards +.no_valid_cards rst $38 scf ret @@ -64,22 +64,22 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) ld c, NUM_BOOSTER_CARD_TYPES ld hl, wBoosterAmountOfCardTypeTable xor a -.deleteTypeTableLoop +.delete_type_table_loop ld [hli], a dec c - jr nz, .deleteTypeTableLoop + jr nz, .delete_type_table_loop xor a ld hl, wBoosterViableCardList ld [hl], a ld de, $1 -.checkCardViableLoop +.check_card_viable_loop push de ld a, e ld [wBoosterTempCard], a call IsByteInTempCardCollectionZero - jr c, .finishedWithCurrentCard + jr c, .finished_with_current_card call CheckCardViable - jr c, .finishedWithCurrentCard + jr c, .finished_with_current_card ld a, [wBoosterCurrentCardType] call GetCardType push af @@ -96,12 +96,12 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) ld [hli], a xor a ld [hl], a -.finishedWithCurrentCard +.finished_with_current_card pop de inc e ld a, e cp NUM_CARDS + 1 - jr c, .checkCardViableLoop + jr c, .check_card_viable_loop ret CheckCardViable: ; 1e268 (7:6268) @@ -117,22 +117,22 @@ CheckCardViable: ; 1e268 (7:6268) ld c, a ld a, [wBoosterCurRarity] cp c - jr nz, .invalidCard + jr nz, .invalid_card ld a, [wBoosterCurrentCardType] call GetCardType cp BOOSTER_CARD_TYPE_ENERGY - jr z, .returnValidCard + jr z, .return_valid_card ld a, [wBoosterCurrentCardSet] swap a and $0f ld c, a ld a, [wBoosterDataSet] cp c - jr nz, .invalidCard -.returnValidCard + jr nz, .invalid_card +.return_valid_card or a jr .return -.invalidCard +.invalid_card scf .return pop bc @@ -144,11 +144,11 @@ GetCardType: ; 1e2a0 (7:62a0) push bc ld hl, CardTypeTable cp NUM_CARD_TYPES - jr nc, .loadType + jr nc, .load_type ld c, a ld b, $00 add hl, bc -.loadType +.load_type ld a, [hl] pop bc pop hl @@ -177,36 +177,36 @@ FindTotalTypeChances: ; 1e2c2 (7:62c2) ld c, NUM_BOOSTER_CARD_TYPES xor a ld hl, wBoosterTempTypeChanceTable -.deleteTempTypeChanceTableLoop +.delete_temp_type_chance_table_loop ld [hli], a dec c - jr nz, .deleteTempTypeChanceTableLoop + jr nz, .delete_temp_type_chance_table_loop ld [wd4ca], a ld bc, $00 -.checkIfTypeIsValid +.check_if_type_is_valid push bc ld hl, wBoosterAmountOfCardTypeTable add hl, bc ld a, [hl] or a - jr z, .amountOfTypeOrChanceZero + jr z, .amount_of_type_or_chance_zero ld hl, wBoosterDataTypeChances add hl, bc ld a, [hl] or a - jr z, .amountOfTypeOrChanceZero + jr z, .amount_of_type_or_chance_zero ld hl, wBoosterTempTypeChanceTable add hl, bc ld [hl], a ld a, [wd4ca] add [hl] ld [wd4ca], a -.amountOfTypeOrChanceZero +.amount_of_type_or_chance_zero pop bc inc c ld a, c cp NUM_BOOSTER_CARD_TYPES - jr c, .checkIfTypeIsValid + jr c, .check_if_type_is_valid ld a, [wd4ca] ret @@ -214,22 +214,22 @@ DetermineBoosterCardType: ; 1e2fa (7:62fa) ld [wd4ca], a ld c, $00 ld hl, wBoosterTempTypeChanceTable -.loopThroughCardTypes +.loop_through_card_types ld a, [hl] or a - jr z, .skipNoChanceType + jr z, .skip_no_chance_type ld a, [wd4ca] sub [hl] ld [wd4ca], a - jr c, .foundCardType -.skipNoChanceType + jr c, .found_card_type +.skip_no_chance_type inc hl inc c ld a, c cp a, NUM_BOOSTER_CARD_TYPES - jr c, .loopThroughCardTypes + jr c, .loop_through_card_types ld a, BOOSTER_CARD_TYPE_ENERGY -.foundCardType +.found_card_type ld a, c ld [wBoosterSelectedCardType], a ret @@ -244,26 +244,26 @@ FindBoosterCard: ; 1e31d (7:631d) call Random ld [wd4ca], a ld hl, wBoosterViableCardList -.findMatchingCardLoop +.find_matching_card_loop ld a, [hli] or a - jr z, .noValidCardFound + jr z, .no_valid_card_found ld [wBoosterTempCard], a ld a, [wBoosterSelectedCardType] cp [hl] - jr nz, .cardIncorrectType + jr nz, .card_incorrect_type ld a, [wd4ca] or a - jr z, .returnWithCurrentCard + jr z, .return_with_current_card dec a ld [wd4ca], a -.cardIncorrectType +.card_incorrect_type inc hl - jr .findMatchingCardLoop -.returnWithCurrentCard + jr .find_matching_card_loop +.return_with_current_card or a ret -.noValidCardFound +.no_valid_card_found rst $38 scf ret @@ -284,12 +284,12 @@ UpdateBoosterCardTypesChanceByte: ; 1e350 (7:6350) ld a, [hl] sub c ld [hl], a - jr z, .chanceLessThanOne - jr nc, .stillSomeChanceLeft -.chanceLessThanOne + jr z, .chance_less_than_one + jr nc, .still_some_chance_left +.chance_less_than_one ld a, $01 ld [hl], a -.stillSomeChanceLeft +.still_some_chance_left pop bc pop hl ret @@ -300,11 +300,11 @@ GenerateBoosterEnergies: ; 1e3db (7:63db) ld hl, wBoosterDataEnergyFunctionPointer + 1 ld a, [hld] or a - jr z, .noFunctionPointer + jr z, .no_function_pointer ld l, [hl] ld h, a jp hl -.noFunctionPointer +.no_function_pointer ld a, [hl] or a ret z ; return if no hardcoded energy either @@ -328,12 +328,12 @@ GenerateEndingEnergy: ; 1e387 (7:6387) ; generates a booster with 10 random energies GenerateRandomEnergyBooster: ; 1e390 (7:6390) ld a, NUM_CARDS_IN_BOOSTER -.generateEnergyLoop +.generate_energy_loop push af call GenerateEndingEnergy pop af dec a - jr nz, .generateEnergyLoop + jr nz, .generate_energy_loop jr ZeroBoosterRarityData GenerateEnergyBoosterLightningFire: ; 1e39c (7:639c) @@ -351,9 +351,9 @@ GenerateEnergyBoosterGrassPsychic: ; 1e3a6 (7:63a6) ; generates a booster with 5 energies of 2 different types each GenerateTwoTypesEnergyBooster: ; 1e3ab (7:63ab) ld b, $02 -.addTwoEnergiesToBoosterLoop +.add_two_energies_to_booster_loop ld c, NUM_CARDS_IN_BOOSTER / 2 -.addEnergyToBoosterLoop +.add_energy_to_booster_loop push hl push bc ld a, [hl] @@ -361,10 +361,10 @@ GenerateTwoTypesEnergyBooster: ; 1e3ab (7:63ab) pop bc pop hl dec c - jr nz, .addEnergyToBoosterLoop + jr nz, .add_energy_to_booster_loop inc hl dec b - jr nz, .addTwoEnergiesToBoosterLoop + jr nz, .add_two_energies_to_booster_loop ZeroBoosterRarityData: xor a ld [wBoosterDataCommonAmount], a @@ -410,30 +410,30 @@ CopyToFirstEmptyByte: ; 1e3e7 (7:63e7) PutEnergiesAndNonEnergiesTogether: ; 1e3f3 (7:63f3) push hl ld hl, wBoosterTempEnergiesDrawn -.loopThroughExtraCards +.loop_through_extra_cards ld a, [hli] or a - jr z, .endOfCards + jr z, .end_of_cards ld [wBoosterTempCard], a push hl ld hl, wBoosterTempNonEnergiesDrawn call CopyToFirstEmptyByte pop hl - jr .loopThroughExtraCards -.endOfCards + jr .loop_through_extra_cards +.end_of_cards pop hl ret AddBoosterCardsToCollection:; 1e40a (7:640a) push hl ld hl, wBoosterCardsDrawn -.addCardsLoop +.add_cards_loop ld a, [hli] or a - jr z, .noCardsLeft + jr z, .no_cards_left call AddCardToCollection - jr .addCardsLoop -.noCardsLeft + jr .add_cards_loop +.no_cards_left pop hl ret @@ -464,17 +464,17 @@ InitBoosterData: ; 1e430 (7:6430) ld c, wBoosterCardsDrawnEnd - wBoosterCardsDrawn ld hl, wBoosterCardsDrawn xor a -.clearPlayerDeckLoop +.clear_player_deck_loop ld [hli], a dec c - jr nz, .clearPlayerDeckLoop + jr nz, .clear_player_deck_loop ld c, $00 ; $100 ld hl, wTempCardCollection xor a -.clearTempCardCollectionLoop +.clear_temp_card_collection_loop ld [hli], a dec c - jr nz, .clearTempCardCollectionLoop + jr nz, .clear_temp_card_collection_loop call FindBoosterDataPointer ld de, wBoosterDataSet ld bc, wBoosterDataTypeChances - wBoosterDataSet + NUM_BOOSTER_CARD_TYPES ; Pack2 - Pack1 @@ -484,16 +484,16 @@ InitBoosterData: ; 1e430 (7:6430) ld d, NUM_BOOSTER_CARD_TYPES ld e, $0 ld hl, wBoosterDataTypeChances -.addChanceBytesLoop +.add_chance_bytes_loop ld a, [hli] or a - jr z, .skipChanceByte + jr z, .skip_chance_byte add c ld c, a inc e -.skipChanceByte +.skip_chance_byte dec d - jr nz, .addChanceBytesLoop + jr nz, .add_chance_bytes_loop call DivideBCbyDE ld a, c ld [wBoosterAveragedTypeChances], a diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index dc05043..5b9d6ef 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -38,30 +38,30 @@ applyEffect ldh a, [hWhoseTurn] ld hl, wcc05 cp [hl] - jr nz, .canInduceStatus + jr nz, .can_induce_status ld a, [wTempNonTurnDuelistCardId] cp CLEFAIRY_DOLL - jr z, .cantInduceStatus + jr z, .cant_induce_status cp MYSTERIOUS_FOSSIL - jr z, .cantInduceStatus + jr z, .cant_induce_status ; snorlax's thick skinned prevents it from being statused... cp SNORLAX - jr nz, .canInduceStatus + jr nz, .can_induce_status call SwapTurn xor a ; ...unless already so, or if affected by muk's toxic gas call CheckIfUnderAnyCannotUseStatus2 call SwapTurn - jr c, .canInduceStatus + jr c, .can_induce_status -.cantInduceStatus +.cant_induce_status ld a, c ld [wccf1], a call Func_2c09c or a ret -.canInduceStatus +.can_induce_status ld hl, wcccd push hl ld e, [hl] @@ -101,7 +101,7 @@ Func_2c087: ; 2c087 (b:4087) xor a jr asm_2c08c -Func_2c08a: ; 2c08a (b:408a) +Func_2c08a: ; 2c08a (b:408a) ld a, $1 asm_2c08c @@ -143,7 +143,7 @@ Func_2c0d4: ; 2c0d4 (b:40d4) ld a, DUELVARS_ARENA_CARD_STATUS call GetNonTurnDuelistVariable and DOUBLE_POISONED - jr z, .notDoublePoisoned + jr z, .not_double_poisoned pop af ld a, [wDamage] ld [wccbb], a @@ -152,7 +152,7 @@ Func_2c0d4: ; 2c0d4 (b:40d4) push af -.notDoublePoisoned +.not_double_poisoned ld hl, wDamage ld a, [hl] add d @@ -198,7 +198,7 @@ ApplySubstatus1ToDefendingCard: ; 2c140 (b:4140) ApplySubstatus2ToDefendingCard: ; 2c149 (b:4149) push af call CheckNoDamageOrEffect - jr c, .noDamageOrEffect + jr c, .no_damage_orEffect ld a, DUELVARS_ARENA_CARD_SUBSTATUS2 call GetNonTurnDuelistVariable pop af @@ -207,7 +207,7 @@ ApplySubstatus2ToDefendingCard: ; 2c149 (b:4149) ld [hl], a ret -.noDamageOrEffect +.no_damage_orEffect pop af push hl bank1call $4f9d diff --git a/src/engine/home.asm b/src/engine/home.asm index 2f57dce..b572b07 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1781,7 +1781,7 @@ DetectSGB: ; 0b59 (0:0b59) ld a, [rJOYP] and $3 cp $3 - jr nz, .asm_ba3 + jr nz, .sgb ld a, $20 ld [rJOYP], a ld a, [rJOYP] @@ -1804,12 +1804,12 @@ DetectSGB: ; 0b59 (0:0b59) ld a, [rJOYP] and $3 cp $3 - jr nz, .asm_ba3 + jr nz, .sgb ld hl, SGB_MLT_REQ_1 call SendSGB or a ret -.asm_ba3 +.sgb ld hl, SGB_MLT_REQ_1 call SendSGB scf @@ -2951,11 +2951,11 @@ GetAttachedEnergies: ; 159f (0:159f) ld hl, wAttachedEnergies ld c, NUM_TYPES xor a -.sumAttachedEnergiesLoop +.sum_attached_energies_loop add [hl] inc hl dec c - jr nz, .sumAttachedEnergiesLoop + jr nz, .sum_attached_energies_loop ld [hl], a ; save to wTotalAttachedEnergies pop bc pop de @@ -6752,11 +6752,11 @@ HandleAmnesiaSubstatus: ; 33e1 (0:33e1) ret .check_amnesia cp SUBSTATUS2_AMNESIA - jr z, .affectedByAmnesia + jr z, .affected_by_amnesia .not_the_disabled_move or a ret -.affectedByAmnesia +.affected_by_amnesia ld a, DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX call GetTurnDuelistVariable ld a, [wSelectedMoveIndex] diff --git a/src/gfx.asm b/src/gfx.asm index 7ee87f7..dc7f9b9 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -1779,7 +1779,7 @@ ItemFinderCardGfx:: ; ed538 (3b:5538) INCBIN "gfx/cards/itemfinder.8x6.2bpp" INCBIN "gfx/cards/itemfinder.pal" -GustofWindCardGfx:: ; ed840 (3b:5840) +GustOfWindCardGfx:: ; ed840 (3b:5840) INCBIN "gfx/cards/gustofwind.8x6.2bpp" INCBIN "gfx/cards/gustofwind.pal" diff --git a/src/text/text10.asm b/src/text/text10.asm index 385fc69..0a56ec6 100644 --- a/src/text/text10.asm +++ b/src/text/text10.asm @@ -94,11 +94,11 @@ TripleAttackX10Description: ; 582fc (16:42fc) line "damage times the number of heads." done -CallforFamilyName: ; 58341 (16:4341) +CallForFamilyName: ; 58341 (16:4341) text "Call for Family" done -NidoranFsCallforFamilyDescription: ; 58352 (16:4352) +NidoranFsCallForFamilyDescription: ; 58352 (16:4352) text "Search your deck for a Basic Pok`mon" line "named Nidoran% or Nidoran$ and put" line "it onto your Bench. Shuffle your" @@ -472,7 +472,7 @@ BellsproutName: ; 592e5 (16:52e5) text "Bellsprout" done -BellsproutsCallforFamilyDescription: ; 592f1 (16:52f1) +BellsproutsCallForFamilyDescription: ; 592f1 (16:52f1) text "Search your deck for a Basic Pok`mon" line "named Bellsprout and put it onto" line "your Bench. Shuffle your deck" @@ -963,11 +963,11 @@ QuickAttackDescription: ; 5a56a (16:656a) line "damage." done -FlamesofRageName: ; 5a5d8 (16:65d8) +FlamesOfRageName: ; 5a5d8 (16:65d8) text "Flames of Rage" done -FlamesofRageDescription: ; 5a5e8 (16:65e8) +FlamesOfRageDescription: ; 5a5e8 (16:65e8) text "Discard 2 ",TX_FIRE," Energy cards attached" line "to Arcanine in order to use this" line "attack. This attack does 40 damage" @@ -1481,11 +1481,11 @@ ShellderName: ; 5bb6e (16:7b6e) text "Shellder" done -HideinShellName: ; 5bb78 (16:7b78) +HideInShellName: ; 5bb78 (16:7b78) text "Hide in Shell" done -HideinShellDescription: ; 5bb87 (16:7b87) +HideInShellDescription: ; 5bb87 (16:7b87) text "Flip a coin. If heads, prevent all" line "damage done to Shellder during your" line "opponent's next turn. (Any other" @@ -1531,7 +1531,7 @@ KrabbyName: ; 5bd63 (16:7d63) text "Krabby" done -KrabbysCallforFamilyDescription: ; 5bd6b (16:7d6b) +KrabbysCallForFamilyDescription: ; 5bd6b (16:7d6b) text "Search your deck for a Basic Pok`mon" line "named Krabby and put it onto your" line "Bench. Shuffle your deck afterward." diff --git a/src/text/text11.asm b/src/text/text11.asm index b99e881..e590276 100644 --- a/src/text/text11.asm +++ b/src/text/text11.asm @@ -764,11 +764,11 @@ Zapdos2Description: ; 5e2e7 (17:62e7) line "enormous lightning bolts." done -PealofThunderName: ; 5e345 (17:6345) +PealOfThunderName: ; 5e345 (17:6345) text "Peal of Thunder" done -PealofThunderDescription: ; 5e356 (17:6356) +PealOfThunderDescription: ; 5e356 (17:6356) text "When you put Zapdos into play during" line "your turn (not during set-up), do" line "30 damage to a Pok`mon other than" diff --git a/src/text/text12.asm b/src/text/text12.asm index 37622bb..e381cac 100644 --- a/src/text/text12.asm +++ b/src/text/text12.asm @@ -745,11 +745,11 @@ WigglytuffName: ; 621ac (18:61ac) text "Wigglytuff" done -DotheWaveName: ; 621b8 (18:61b8) +DoTheWaveName: ; 621b8 (18:61b8) text "Do the Wave" done -DotheWaveDescription: ; 621c5 (18:61c5) +DoTheWaveDescription: ; 621c5 (18:61c5) text "Does 10 damage plus 10 more damage" line "for each of your Benched Pok`mon." done diff --git a/src/text/text13.asm b/src/text/text13.asm index 6dec01b..0a39189 100644 --- a/src/text/text13.asm +++ b/src/text/text13.asm @@ -66,11 +66,11 @@ ItemFinderDescription: ; 6434f (19:434f) line "your hand." done -GustofWindName: ; 643c2 (19:43c2) +GustOfWindName: ; 643c2 (19:43c2) text "Gust of Wind" done -GustofWindDescription: ; 643d0 (19:43d0) +GustOfWindDescription: ; 643d0 (19:43d0) text "Choose 1 of your opponent's Benched" line "Pok`mon and switch it with his or" line "her Active Pok`mon." diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index 29fc093..7b60d4f 100755 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -1,8 +1,7 @@ - -const_value = 1 + const_def 1 TextOffsets:: ; 34000 (d:4000) - db $00,$00,$00 + dwb $0000, $00 textpointer HandText textpointer CheckText textpointer AttackText @@ -2127,8 +2126,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer NidoranFName textpointer FurySweepesName textpointer TripleAttackX10Description - textpointer CallforFamilyName - textpointer NidoranFsCallforFamilyDescription + textpointer CallForFamilyName + textpointer NidoranFsCallForFamilyDescription textpointer NidoranFKind textpointer NidoranFDescription textpointer NidorinaName @@ -2201,7 +2200,7 @@ TextOffsets:: ; 34000 (d:4000) textpointer VenomothKind textpointer VenomothDescription textpointer BellsproutName - textpointer BellsproutsCallforFamilyDescription + textpointer BellsproutsCallForFamilyDescription textpointer BellsproutDescription textpointer WeepinbellName textpointer RazorLeafName @@ -2299,8 +2298,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer ArcanineName textpointer QuickAttackName textpointer QuickAttackDescription - textpointer FlamesofRageName - textpointer FlamesofRageDescription + textpointer FlamesOfRageName + textpointer FlamesOfRageDescription textpointer ArcanineKind textpointer Arcanine1Description textpointer ArcaninesFlamethrowerDescription @@ -2401,8 +2400,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer IceBeamName textpointer DewgongDescription textpointer ShellderName - textpointer HideinShellName - textpointer HideinShellDescription + textpointer HideInShellName + textpointer HideInShellDescription textpointer ShellderKind textpointer ShellderDescription textpointer CloysterName @@ -2411,7 +2410,7 @@ TextOffsets:: ; 34000 (d:4000) textpointer SpikeCannonName textpointer CloysterDescription textpointer KrabbyName - textpointer KrabbysCallforFamilyDescription + textpointer KrabbysCallForFamilyDescription textpointer KrabbyKind textpointer KrabbyDescription textpointer KinglerName @@ -2566,8 +2565,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer ThunderboltName textpointer ThunderboltDescription textpointer Zapdos2Description - textpointer PealofThunderName - textpointer PealofThunderDescription + textpointer PealOfThunderName + textpointer PealOfThunderDescription textpointer BigThunderName textpointer BigThunderDescription textpointer Zapdos3Description @@ -2834,8 +2833,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer LullabyName textpointer Jigglypuff3Description textpointer WigglytuffName - textpointer DotheWaveName - textpointer DotheWaveDescription + textpointer DoTheWaveName + textpointer DoTheWaveDescription textpointer WigglytuffDescription textpointer MeowthName textpointer CatPunchName @@ -2971,8 +2970,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer DefenderDescription textpointer ItemFinderName textpointer ItemFinderDescription - textpointer GustofWindName - textpointer GustofWindDescription + textpointer GustOfWindName + textpointer GustOfWindDescription textpointer DevolutionSprayName textpointer DevolutionSprayDescription textpointer DevolutionSprayDescriptionCont -- cgit v1.2.3 From cdd2d4eac475082078cf4a266dd6429d0d8c6379 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 16 Feb 2018 17:49:37 +0100 Subject: Correct palette engine functions and more clean up --- src/constants/misc_constants.asm | 3 + src/engine/bank1c.asm | 4 +- src/engine/bank3.asm | 8 +- src/engine/bank4.asm | 6 +- src/engine/effect_functions.asm | 12 +-- src/engine/home.asm | 168 ++++++++++++++++++++++----------------- src/wram.asm | 8 +- 7 files changed, 117 insertions(+), 92 deletions(-) diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index 422fda4..18bf014 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -6,6 +6,9 @@ SCREEN_HEIGHT EQU 18 ; tiles BG_MAP_WIDTH EQU 32 ; tiles BG_MAP_HEIGHT EQU 32 ; tiles +; palettes +CGB_PAL_SIZE EQU 8 + ; console types (for wConsole) CONSOLE_DMG EQU $00 CONSOLE_SGB EQU $01 diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index c7ae122..60dfb26 100755 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -164,7 +164,7 @@ Func_70136: ; 70136 (1c:4136) ld [wLCDC], a ld a, $e4 ld [rBGP], a - call Func_040c + call SetBGP xor a ldh [hSCX], a ld [rSCX], a @@ -188,7 +188,7 @@ Func_70177: ; 70177 (1c:4177) ld a, [wd41e] ldh [hSCY], a ld a, [wd41f] - call Func_040c + call SetBGP ld a, [wd420] ld [wLCDC], a call DisableLCD diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index f591863..dd8638b 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -219,11 +219,11 @@ Func_c1a0: ; c1a0 (3:41a0) Func_c1a4: ; c1a4 (3:41a4) xor a - call Func_040c + call SetBGP xor a - call Set_OBP0 + call SetOBP0 xor a - call Set_OBP1 + call SetOBP1 ret Func_c1b1: ; c1b1 (3:41b1) @@ -452,7 +452,7 @@ Func_c34e: ; c34e (3:434e) ld de, $cb30 ld bc, $0040 call CopyDataHLtoDE_SaveRegisters - call Func_0404 + call SetFlushAllPalettes ret Func_c36a: ; c36a (3:436a) diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 29d96fc..757c670 100755 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -31,11 +31,11 @@ Func_10031: ; 10031 (4:4031) call $4cbb call DisableExtRAM call $4b28 - call Func_0404 + call SetFlushAllPalettes call EnableLCD call DoFrameIfLCDEnabled call $4cea - call Func_0404 + call SetFlushAllPalettes pop af call BankswitchRAM call DisableExtRAM @@ -1094,7 +1094,7 @@ Func_126d1: ; 126d1 (4:66d1) scf ret -PointerTable_126fc +PointerTable_126fc: dw CardPop_12768 dw Func_12741 dw Func_12704 diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index 5b9d6ef..88a8361 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -5,17 +5,17 @@ Poison50PercentEffect: ; 2c000 (b:4000) PoisonEffect: ; 2c007 (b:4007) lb bc, $0f, POISONED - jr applyEffect + jr ApplyStatusEffect lb bc, $0f, DOUBLE_POISONED - jr applyEffect + jr ApplyStatusEffect Paralysis50PercentEffect: ; 2c011 (b:4011) ldtx de, ParalysisCheckText call TossCoin_BankB ret nc lb bc, $f0, PARALYZED - jr applyEffect + jr ApplyStatusEffect Confusion50PercentEffect: ; 2c01d (b:401d) ldtx de, ConfusionCheckText @@ -24,7 +24,7 @@ Confusion50PercentEffect: ; 2c01d (b:401d) ConfusionEffect: ; 2c024 (b:4024) lb bc, $f0, CONFUSED - jr applyEffect + jr ApplyStatusEffect ldtx de, SleepCheckText call TossCoin_BankB @@ -32,9 +32,9 @@ ConfusionEffect: ; 2c024 (b:4024) SleepEffect: ; 2c030 (b:4030) lb bc, $f0, ASLEEP - jr applyEffect + jr ApplyStatusEffect -applyEffect +ApplyStatusEffect: ldh a, [hWhoseTurn] ld hl, wcc05 cp [hl] diff --git a/src/engine/home.asm b/src/engine/home.asm index b572b07..799d476 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -379,30 +379,30 @@ SetupPalettes: ; 036a (0:036a) ld hl, wBGP ld a, %11100100 ld [rBGP], a - ld [hli], a + ld [hli], a ; wBGP ld [rOBP0], a ld [rOBP1], a - ld [hli], a - ld [hl], a + ld [hli], a ; wOBP0 + ld [hl], a ; wOBP1 xor a ld [wFlushPaletteFlags], a ld a, [wConsole] cp CONSOLE_CGB ret nz - ld de, wBufPalette - ld c, $10 -.asm_387 + ld de, wBackgroundPalettesCGB + ld c, 16 +.copy_pals_loop ld hl, InitialPalette - ld b, $8 -.asm_38c + ld b, CGB_PAL_SIZE +.copy_bytes_loop ld a, [hli] ld [de], a inc de dec b - jr nz, .asm_38c + jr nz, .copy_bytes_loop dec c - jr nz, .asm_387 - call FlushBothCGBPalettes + jr nz, .copy_pals_loop + call FlushAllCGBPalettes ret InitialPalette: ; 0399 (0:0399) @@ -479,19 +479,25 @@ ZeroRAM: ; 03ec (0:03ec) jr nz, .zero_hram_loop ret -Func_0404: ; 0404 (0:0404) +; Flush all non-CGB and CGB palettes +SetFlushAllPalettes: ; 0404 (0:0404) ld a, $c0 - jr asm_411 + jr SetFlushPalettes -Func_0408: ; 0408 (0:0408) +; Flush non-CGB palettes and a single CGB palette, +; provided in a as an index between 0-7 (BGP) or 8-15 (OBP) +SetFlushPalette: ; 0408 (0:0408) or $80 - jr asm_411 + jr SetFlushPalettes -Func_040c: ; 040c (0:040c) +; Set wBGP to the specified value, flush non-CGB palettes, and the first CGB palette. +SetBGP: ; 040c (0:040c) ld [wBGP], a -asm_40f + +SetFlushPalette0: ld a, $80 -asm_411 + +SetFlushPalettes: ld [wFlushPaletteFlags], a ld a, [wLCDC] rla @@ -505,19 +511,21 @@ asm_411 pop hl ret -Set_OBP0: ; 0423 (0:0423) +; Set wOBP0 to the specified value, flush non-CGB palettes, and the first CGB palette. +SetOBP0: ; 0423 (0:0423) ld [wOBP0], a - jr asm_40f + jr SetFlushPalette0 -Set_OBP1: ; 0428 (0:0428) +; Set wOBP1 to the specified value, flush non-CGB palettes, and the first CGB palette. +SetOBP1: ; 0428 (0:0428) ld [wOBP1], a - jr asm_40f + jr SetFlushPalette0 -; flushes non-CGB palettes from [wBGP], [wOBP0], [wOBP1] as well as CGB -; palettes from [wBufPalette..wBufPalette+$1f] (BG palette) and -; [wBufPalette+$20..wBufPalette+$3f] (sprite palette). -; only flushes if [wFlushPaletteFlags] is nonzero, and only flushes sprite -; palette if bit6 of that location is set. +; Flushes non-CGB palettes from [wBGP], [wOBP0], [wOBP1] as well as CGB +; palettes from [wBackgroundPalettesCGB..wBackgroundPalettesCGB+$3f] (BG palette) +; and [wObjectPalettesCGB+$00..wObjectPalettesCGB+$3f] (sprite palette). +; Only flushes if [wFlushPaletteFlags] is nonzero, and only flushes +; a single CGB palette if bit6 of that location is reset. FlushPalettes: ; 042d (0:042d) ld a, [wFlushPaletteFlags] or a @@ -532,65 +540,67 @@ FlushPalettes: ; 042d (0:042d) ld [rOBP1], a ld a, [wConsole] cp CONSOLE_CGB - jr z, flushPaletteCGB -flushPaletteDone + jr z, .CGB +.done xor a ld [wFlushPaletteFlags], a ret -flushPaletteCGB - ; flush BG palette (BGP) - ; if bit6 of [wFlushPaletteFlags] is set, flush OBP too +.CGB + ; flush a single CGB BG or OB palette + ; if bit6 of [wFlushPaletteFlags] is set, flush all 16 of them ld a, [wFlushPaletteFlags] bit 6, a - jr nz, FlushBothCGBPalettes - ld b, $8 - call CopyPalette - jr flushPaletteDone + jr nz, FlushAllCGBPalettes + ld b, CGB_PAL_SIZE + call CopyCGBPalettes + jr .done -FlushBothCGBPalettes: ; 0458 (0:0458) +FlushAllCGBPalettes: ; 0458 (0:0458) + ; flush 8 BGP palettes xor a - ld b, $40 - ; flush BGP $00-$1f - call CopyPalette - ld a, $8 - ld b, $40 - ; flush OBP $00-$1f - call CopyPalette - jr flushPaletteDone - -CopyPalette: ; 0467 (0:0467) + ld b, 8 * CGB_PAL_SIZE + call CopyCGBPalettes + ; flush 8 OBP palettes + ld a, CGB_PAL_SIZE + ld b, 8 * CGB_PAL_SIZE + call CopyCGBPalettes + jr FlushPalettes.done + +; copy b bytes of CGB palette data starting at +; wBackgroundPalettesCGB + a * CGB_PAL_SIZE into rBGPD or rOGPD. +CopyCGBPalettes: ; 0467 (0:0467) add a add a add a ld e, a ld d, $0 - ld hl, wBufPalette + ld hl, wBackgroundPalettesCGB add hl, de - ld c, $68 - bit 6, a - jr z, .asm_479 - ld c, $6a -.asm_479 - and $bf + ld c, LOW(rBGPI) + bit 6, a ; was a between 0-7 (BGP), or between 8-15 (OBP)? + jr z, .copy + ld c, LOW(rOBPI) +.copy + and %10111111 ld e, a -.asm_47c +.next_byte ld a, e ld [$ff00+c], a inc c -.asm_47f +.wait ld a, [rSTAT] and $2 - jr nz, .asm_47f + jr nz, .wait ld a, [hl] ld [$ff00+c], a ld a, [$ff00+c] cp [hl] - jr nz, .asm_47f + jr nz, .wait inc hl dec c inc e dec b - jr nz, .asm_47c + jr nz, .next_byte ret Func_0492: ; 0492 (0:0492) @@ -644,7 +654,6 @@ BCCoordToBGMap0Address: ; 04cf (0:04cf) ld d, h ret -; read joypad ReadJoypad: ; 04de (0:04de) ld a, $20 ld [rJOYP], a @@ -665,7 +674,7 @@ ReadJoypad: ; 04de (0:04de) cpl and $f or b - ld c, a ; joypad data + ld c, a ; joypad data cpl ld b, a ldh a, [hButtonsHeld] @@ -680,13 +689,17 @@ ReadJoypad: ; 04de (0:04de) ldh a, [hButtonsHeld] and BUTTONS cp BUTTONS - jr nz, asm_522 ; handle reset + jr nz, ReadJoypad_SaveButtonsHeld + ; A + B + Start + Select: reset game call ResetSerial +; fallthrough + Reset: ; 051b (0:051b) ld a, [wInitialA] di jp Start -asm_522 + +ReadJoypad_SaveButtonsHeld: ld a, c ldh [hButtonsHeld], a ld a, $30 @@ -819,7 +832,7 @@ CallIndirect: ; 05b6 (0:05b6) ld l, [hl] ld h, a pop af - ; fallthrough +; fallthrough CallHL: ; 05c1 (0:05c1) jp hl ; 0x5c2 @@ -1590,7 +1603,7 @@ RST18: ; 09ae (0:09ae) ld a, [de] ld [hl], a ld a, $1 - ; fallthrough +; fallthrough Func_09ce: ; 09ce (0:09ce) call BankswitchHome ld hl, sp+$d @@ -2263,7 +2276,7 @@ ResetSerial: ; 0ea6 (0:0ea6) xor a ld [rSB], a ld [rSC], a - ; fallthrough +; fallthrough ClearSerialData: ; 0eb1 (0:0eb1) ld hl, wSerialOp ld bc, $0051 @@ -3668,12 +3681,12 @@ SwapTurn: ; 1c72 (0:1c72) PrintPlayerName: ; 1c7d (0:1c7d) call EnableExtRAM ld hl, $a010 -printNameLoop +.loop ld a, [hli] ld [de], a inc de or a - jr nz, printNameLoop + jr nz, .loop dec de call DisableExtRAM ret @@ -3692,7 +3705,7 @@ PrintOpponentName: ; 1c8e (0:1c8e) ld a, [hl] or a jr z, .print_player2 - jr printNameLoop + jr PrintPlayerName.loop .print_player2 ldtx hl, Player2Text jp PrintTextBoxBorderLabel @@ -4049,7 +4062,9 @@ DrawRegularTextBoxDMG: ; 1e88 (0:1e88) ld a, $1c lb de, $18, $19 call CopyLine -ContinueDrawingTextBoxDMGorSGB +; fallthrough + +ContinueDrawingTextBoxDMGorSGB: dec c dec c .draw_text_box_body_loop @@ -4105,7 +4120,9 @@ DrawRegularTextBoxCGB: ld a, $1c lb de, $18, $19 call CopyCurrentLineTilesAndAttrCGB -ContinueDrawingTextBoxCGB +; fallthrough + +ContinueDrawingTextBoxCGB: dec c dec c .draw_text_box_body_loop @@ -4137,7 +4154,8 @@ CopyCurrentLineTilesAndAttrCGB: ; 1efb (0:1efb) push hl call CopyLine pop hl -CopyCurrentLineAttrCGB +; fallthrough +CopyCurrentLineAttrCGB: call BankswitchVRAM_1 ld a, [wFrameType] ; on CGB, wFrameType determines the palette and the other attributes ld e, a @@ -6110,7 +6128,7 @@ LoadCardGfx: ; 2fa0 (0:2fa0) res 7, h set 6, h call CopyGfxData - ld b, $8 ; length of palette + ld b, CGB_PAL_SIZE ld de, $ce23 .copy_card_palette ld a, [hli] @@ -6565,7 +6583,7 @@ Func_31fc: ; 31fc (0:31fc) adc [hl] ld [hl], a ld a, e - ; fallthrough +; fallthrough Func_3212: ; 3212 (0:3212) ld [rSB], a ld a, $1 @@ -8019,7 +8037,7 @@ Func_3df3: ; 3df3 (0:3df3) ld hl, sp+$5 ld a, [hl] call Func_12c7f - call Func_0404 + call SetFlushAllPalettes pop hl pop af call BankswitchHome diff --git a/src/wram.asm b/src/wram.asm index 4431587..0a92ff2 100755 --- a/src/wram.asm +++ b/src/wram.asm @@ -355,8 +355,12 @@ wcade:: ; cade wcae2:: ; cae2 ds $e -wBufPalette:: ; caf0 - ds $80 +; temporal CGB palette data buffer to eventually save into BGPD or OBPD registers. +wBackgroundPalettesCGB:: ; caf0 + ds 8 * CGB_PAL_SIZE + +wObjectPalettesCGB:: ; cb30 + ds 8 * CGB_PAL_SIZE ds $4 -- cgit v1.2.3 From 6a747cd61a34de515ce432fb34f86f4e0752faf1 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 16 Feb 2018 19:59:38 +0100 Subject: Clean up SGB commands --- src/constants/sgb_constants.asm | 13 +++++ src/engine/bank1c.asm | 50 +++++++++++------ src/engine/home.asm | 118 +++++++++++++++++++++++++--------------- src/macros/data.asm | 2 +- 4 files changed, 122 insertions(+), 61 deletions(-) diff --git a/src/constants/sgb_constants.asm b/src/constants/sgb_constants.asm index e956881..6ba250e 100644 --- a/src/constants/sgb_constants.asm +++ b/src/constants/sgb_constants.asm @@ -23,3 +23,16 @@ ATTR_TRN EQU $15 ; Set Attribute from ATF ATTR_SET EQU $16 ; Set Data to ATF MASK_EN EQU $17 ; Game Boy Window Mask OBJ_TRN EQU $18 ; Super NES OBJ Mode + +ATTR_BLK_CTRL_INSIDE EQU 1 +ATTR_BLK_CTRL_LINE EQU 2 +ATTR_BLK_CTRL_OUTSIDE EQU 4 + +MLT_REQ_1_PLAYER EQU 0 +MLT_REQ_2_PLAYERS EQU 1 +MLT_REQ_4_PLAYERS EQU 3 + +MASK_EN_CANCEL_MASK EQU 0 +MASK_EN_FREEZE_SCREEN EQU 1 +MASK_EN_BLANK_SCREEN_BLACK EQU 2 +MASK_EN_BLANK_SCREEN_COLOR_0 EQU 3 diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index 60dfb26..79994a3 100755 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -22,7 +22,16 @@ Func_70018: ; 70018 (1c:4018) ret ; 0x70024 - INCROM $70024, $70044 +AtrcEnPacket_Disable: ; 70024 (1c:4024) + sgb ATRC_EN, 1 ; sgb_command, length + db 1 + ds $0e + +; disable Controller Set-up Screen +IconEnPacket: ; 70034 (1c:4034) + sgb ICON_EN, 3 ; sgb_command, length + db $01 + ds $0e Func_70044: ; 70044 (1c:4044) push hl @@ -83,7 +92,7 @@ Func_700a3: ; 700a3 (1c:40a3) ld de, vTiles1 call Func_701e9 call Func_701fe - ld hl, SGB_700de + ld hl, ChrTrnPacket_BGTiles1 call Func_70177 pop hl ld de, $0002 @@ -98,7 +107,7 @@ Func_700a3: ; 700a3 (1c:40a3) dec hl ld de, vTiles1 call Func_701e9 - ld hl, SGB_700ee + ld hl, ChrTrnPacket_BGTiles2 call Func_70177 .asm_700da pop de @@ -107,12 +116,16 @@ Func_700a3: ; 700a3 (1c:40a3) ret ; CHR_TRN: tiles $00-$7F, BG (border) tiles (from SNES $000-$FFF) -SGB_700de: ; 700de (1c:40de) - INCROM $700de, $700ee +ChrTrnPacket_BGTiles1: ; 700de (1c:40de) + sgb CHR_TRN, 1 ; sgb_command, length + db 0 + ds $0e ; CHR_TRN: tiles $80-$FF, BG (border) tiles (from SNES $000-$FFF) -SGB_700ee: ; 700ee (1c:40ee) - INCROM $700ee, $700fe +ChrTrnPacket_BGTiles2: ; 700ee (1c:40ee) + sgb CHR_TRN, 1 ; sgb_command, length + db 1 + ds $0e Func_700fe: ; 700fe (1c:40fe) push hl @@ -131,7 +144,7 @@ Func_700fe: ; 700fe (1c:40fe) call Func_701fe pop hl call Func_70214 - ld hl, SGB_70126 + ld hl, PctTrnPacket call Func_70177 pop de pop bc @@ -139,8 +152,9 @@ Func_700fe: ; 700fe (1c:40fe) ret ; PCT_TRN: read tile map & palette data into VRAM (from SNES $000-$87F) -SGB_70126: ; 70126 (1c:4126) - INCROM $70126, $70136 +PctTrnPacket: ; 70126 (1c:4126) + sgb PCT_TRN, 1 ; sgb_command, length + ds $0f Func_70136: ; 70136 (1c:4136) push hl @@ -155,7 +169,7 @@ Func_70136: ; 70136 (1c:4136) ld a, [wLCDC] ld [wd420], a di - ld hl, SGB_MASK_EN_ON_701a0 + ld hl, MaskEnPacket_Freeze_Bank1c call SendSGB call DisableLCD ld a, [wLCDC] @@ -199,12 +213,16 @@ Func_70177: ; 70177 (1c:4177) ret ; MASK_EN on -SGB_MASK_EN_ON_701a0: ; 701a0 (1c:41a0) - INCROM $701a0, $701b0 +MaskEnPacket_Freeze_Bank1c: ; 701a0 (1c:41a0) + sgb MASK_EN, 1 ; sgb_command, length + db MASK_EN_FREEZE_SCREEN + ds $0e ; MASK_EN off -SGB_MASK_EN_OFF_701b0: ; 701b0 (1c:41b0) - INCROM $701b0, $701c0 +MaskEnPacket_Cancel_Bank1c: ; 701b0 (1c:41b0) + sgb MASK_EN, 1 ; sgb_command, length + db MASK_EN_CANCEL_MASK + ds $0e Func_701c0: ; 701c0 (1c:41c0) push hl @@ -225,7 +243,7 @@ Func_701c0: ; 701c0 (1c:41c0) pop af ld [wTileMapFill], a di - ld hl, SGB_MASK_EN_OFF_701b0 + ld hl, MaskEnPacket_Cancel_Bank1c call SendSGB ei pop bc diff --git a/src/engine/home.asm b/src/engine/home.asm index 799d476..ebffefa 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -628,14 +628,18 @@ Func_04a2: ; 04a2 (0:04a2) cp CONSOLE_SGB ret nz call EnableLCD ; - ld hl, SGB_ATTR_BLK_04bf ; send SGB data + ld hl, AttrBlkPacket_04bf ; send SGB data call SendSGB ; call DisableLCD ; ret -SGB_ATTR_BLK_04bf: ; 04bf (0:04bf) +AttrBlkPacket_04bf: ; 04bf (0:04bf) sgb ATTR_BLK, 1 ; sgb_command, length - db $01,$03,$00,$00,$00,$13,$11,$00,$00,$00,$00,$00,$00,$00,$00 + db 1 ; number of data sets + ; Control Code, Color Palette Designation, X1, Y1, X2, Y2 + db ATTR_BLK_CTRL_INSIDE + ATTR_BLK_CTRL_LINE, 0 << 0 + 0 << 2, 0, 0, 19, 17 ; data set 1 + ds 6 ; data set 2 + ds 2 ; data set 3 ; returns vBGMapTiles + BG_MAP_WIDTH * c + b in de. ; used to map coordinates at bc to a BGMap0 address. @@ -1667,81 +1671,101 @@ RST28: ; 09e9 (0:09e9) ; setup SNES memory $810-$867 and palette InitSGB: ; 0a0d (0:0a0d) - ld hl, SGB_MASK_EN_ON + ld hl, MaskEnPacket_Freeze call SendSGB - ld hl, SGB_DATA_SND_0a50 + ld hl, DataSndPacket_0a50 call SendSGB - ld hl, SGB_DATA_SND_0a60 + ld hl, DataSndPacket_0a60 call SendSGB - ld hl, SGB_DATA_SND_0a70 + ld hl, DataSndPacket_0a70 call SendSGB - ld hl, SGB_DATA_SND_0a80 + ld hl, DataSndPacket_0a80 call SendSGB - ld hl, SGB_DATA_SND_0a90 + ld hl, DataSndPacket_0a90 call SendSGB - ld hl, SGB_DATA_SND_0aa0 + ld hl, DataSndPacket_0aa0 call SendSGB - ld hl, SGB_DATA_SND_0ab0 + ld hl, DataSndPacket_0ab0 call SendSGB - ld hl, SGB_DATA_SND_0ac0 + ld hl, DataSndPacket_0ac0 call SendSGB - ld hl, SGB_PAL01 + ld hl, Pal01Packet call SendSGB - ld hl, SGB_MASK_EN_OFF + ld hl, MaskEnPacket_Cancel call SendSGB ret -SGB_DATA_SND_0a50: ; 0a50 (0:0a50) +DataSndPacket_0a50: ; 0a50 (0:0a50) sgb DATA_SND, 1 ; sgb_command, length db $5d,$08,$00,$0b,$8c,$d0,$f4,$60,$00,$00,$00,$00,$00,$00,$00 -SGB_DATA_SND_0a60: ; 0a60 (0:0a60) +DataSndPacket_0a60: ; 0a60 (0:0a60) sgb DATA_SND, 1 ; sgb_command, length db $52,$08,$00,$0b,$a9,$e7,$9f,$01,$c0,$7e,$e8,$e8,$e8,$e8,$e0 -SGB_DATA_SND_0a70: ; 0a70 (0:0a70) +DataSndPacket_0a70: ; 0a70 (0:0a70) sgb DATA_SND, 1 ; sgb_command, length db $47,$08,$00,$0b,$c4,$d0,$16,$a5,$cb,$c9,$05,$d0,$10,$a2,$28 -SGB_DATA_SND_0a80: ; 0a80 (0:0a80) +DataSndPacket_0a80: ; 0a80 (0:0a80) sgb DATA_SND, 1 ; sgb_command, length db $3c,$08,$00,$0b,$f0,$12,$a5,$c9,$c9,$c8,$d0,$1c,$a5,$ca,$c9 -SGB_DATA_SND_0a90: ; 0a90 (0:0a90) +DataSndPacket_0a90: ; 0a90 (0:0a90) sgb DATA_SND, 1 ; sgb_command, length db $31,$08,$00,$0b,$0c,$a5,$ca,$c9,$7e,$d0,$06,$a5,$cb,$c9,$7e -SGB_DATA_SND_0aa0: ; 0aa0 (0:0aa0) +DataSndPacket_0aa0: ; 0aa0 (0:0aa0) sgb DATA_SND, 1 ; sgb_command, length db $26,$08,$00,$0b,$39,$cd,$48,$0c,$d0,$34,$a5,$c9,$c9,$80,$d0 -SGB_DATA_SND_0ab0: ; 0ab0 (0:0ab0) +DataSndPacket_0ab0: ; 0ab0 (0:0ab0) sgb DATA_SND, 1 ; sgb_command, length db $1b,$08,$00,$0b,$ea,$ea,$ea,$ea,$ea,$a9,$01,$cd,$4f,$0c,$d0 -SGB_DATA_SND_0ac0: ; 0ac0 (0:0ac0) +DataSndPacket_0ac0: ; 0ac0 (0:0ac0) sgb DATA_SND, 1 ; sgb_command, length db $10,$08,$00,$0b,$4c,$20,$08,$ea,$ea,$ea,$ea,$ea,$60,$ea,$ea -SGB_MASK_EN_ON: ; 0ad0 (0:0ad0) +MaskEnPacket_Freeze: ; 0ad0 (0:0ad0) sgb MASK_EN, 1 ; sgb_command, length - db $01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db MASK_EN_FREEZE_SCREEN + ds $0e -SGB_MASK_EN_OFF: ; 0ae0 (0:0ae0) +MaskEnPacket_Cancel: ; 0ae0 (0:0ae0) sgb MASK_EN, 1 ; sgb_command, length - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db MASK_EN_CANCEL_MASK + ds $0e -SGB_PAL01: ; 0af0 (0:0af0) +Pal01Packet: ; 0af0 (0:0af0) sgb PAL01, 1 ; sgb_command, length - db $9c,$63,$94,$42,$08,$21,$00,$00,$1f,$00,$0f,$00,$07,$00,$00 - -SGB_PAL23: ; 0b00 (0:0b00) + rgb 28, 28, 24 + rgb 20, 20, 16 + rgb 8, 8, 8 + rgb 0, 0, 0 + rgb 31, 0, 0 + rgb 15, 0, 0 + rgb 7, 0, 0 + db $00 + +Pal23Packet: ; 0b00 (0:0b00) sgb PAL23, 1 ; sgb_command, length - db $e0,$03,$e0,$01,$e0,$00,$00,$00,$00,$7c,$00,$3c,$00,$1c,$00 - -SGB_ATTR_BLK_0b10: ; 0b10 (0:0b10) + rgb 0, 31, 0 + rgb 0, 15, 0 + rgb 0, 7, 0 + rgb 0, 0, 0 + rgb 0, 0, 31 + rgb 0, 0, 15 + rgb 0, 0, 7 + db $00 + +AttrBlkPacket_0b10: ; 0b10 (0:0b10) sgb ATTR_BLK, 1 ; sgb_command, length - db $01,$03,$09,$05,$05,$0a,$0a,$00,$00,$00,$00,$00,$00,$00,$00 + db 1 ; number of data sets + ; Control Code, Color Palette Designation, X1, Y1, X2, Y2 + db ATTR_BLK_CTRL_INSIDE + ATTR_BLK_CTRL_LINE, 1 << 0 + 2 << 2, 5, 5, 10, 10 ; data set 1 + ds 6 ; data set 2 + ds 2 ; data set 3 ; send SGB command SendSGB: ; 0b20 (0:0b20) @@ -1789,7 +1813,7 @@ SendSGB: ; 0b20 (0:0b20) DetectSGB: ; 0b59 (0:0b59) ld bc, 60 call Wait - ld hl, SGB_MLT_REQ_2 + ld hl, MltReq2Packet call SendSGB ld a, [rJOYP] and $3 @@ -1818,23 +1842,25 @@ DetectSGB: ; 0b59 (0:0b59) and $3 cp $3 jr nz, .sgb - ld hl, SGB_MLT_REQ_1 + ld hl, MltReq1Packet call SendSGB or a ret .sgb - ld hl, SGB_MLT_REQ_1 + ld hl, MltReq1Packet call SendSGB scf ret -SGB_MLT_REQ_1: ; 0bab (0:0bab) +MltReq1Packet: ; 0bab (0:0bab) sgb MLT_REQ, 1 ; sgb_command, length - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db MLT_REQ_1_PLAYER + ds $0e -SGB_MLT_REQ_2: ; 0bbb (0:0bbb) +MltReq2Packet: ; 0bbb (0:0bbb) sgb MLT_REQ, 1 ; sgb_command, length - db $01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db MLT_REQ_2_PLAYERS + ds $0e Func_0bcb: ; 0bcb (0:0bcb) di @@ -4177,7 +4203,7 @@ ColorizeTextBoxSGB push bc push de ld hl, $cae0 - ld de, SGB_ATTR_BLK_1f4f + ld de, AttrBlkPacket_1f4f ld c, $10 .copy_sgb_command_loop ld a, [de] @@ -4210,9 +4236,13 @@ ColorizeTextBoxSGB call SendSGB ret -SGB_ATTR_BLK_1f4f: ; 1f4f (0:1f4f) +AttrBlkPacket_1f4f: ; 1f4f (0:1f4f) sgb ATTR_BLK, 1 ; sgb_command, length - db $01,$03,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db 1 ; number of data sets + ; Control Code, Color Palette Designation, X1, Y1, X2, Y2 + db ATTR_BLK_CTRL_INSIDE + ATTR_BLK_CTRL_LINE, 0 << 0 + 1 << 2, 0, 0, 0, 0 ; data set 1 + ds 6 ; data set 2 + ds 2 ; data set 3 Func_1f5f: ; 1f5f (0:1f5f) push de diff --git a/src/macros/data.asm b/src/macros/data.asm index 4f66742..2fd4b7d 100644 --- a/src/macros/data.asm +++ b/src/macros/data.asm @@ -33,7 +33,7 @@ bigdw: MACRO ; big-endian word ENDM sgb: MACRO - db \1 * 8 + \2 ; sgb_command * 8 + length + db \1 << 3 + \2 ; sgb_command * 8 + length ENDM rgb: MACRO -- cgit v1.2.3 From 80812bcb9544ae878dfc378d82816fe75420f8c7 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 16 Feb 2018 22:29:17 +0100 Subject: Reorganize some graphics --- src/constants/misc_constants.asm | 7 +- src/engine/bank1.asm | 57 +++++++++- src/engine/bank3.asm | 4 +- src/engine/home.asm | 26 ++--- src/gfx.asm | 126 ++++++++++----------- src/gfx/booster_packs/colosseum1.png | Bin 0 -> 1175 bytes src/gfx/booster_packs/colosseum2.t10.png | Bin 0 -> 1033 bytes src/gfx/booster_packs/evolution1.png | Bin 0 -> 1191 bytes src/gfx/booster_packs/evolution2.t10.png | Bin 0 -> 1068 bytes src/gfx/booster_packs/laboratory1.png | Bin 0 -> 1206 bytes src/gfx/booster_packs/laboratory2.t10.png | Bin 0 -> 1068 bytes src/gfx/booster_packs/mystery1.png | Bin 0 -> 1259 bytes src/gfx/booster_packs/mystery2.t10.png | Bin 0 -> 1136 bytes src/gfx/booster_packs/oam.png | Bin 0 -> 355 bytes src/gfx/boosterpacks/aerodactylintro1.png | Bin 1260 -> 0 bytes src/gfx/boosterpacks/aerodactylintro2.png | Bin 1259 -> 0 bytes src/gfx/boosterpacks/boosterpack_oam.png | Bin 355 -> 0 bytes src/gfx/boosterpacks/charizardintro1.png | Bin 1465 -> 0 bytes src/gfx/boosterpacks/charizardintro2.png | Bin 1482 -> 0 bytes src/gfx/boosterpacks/colosseum1.png | Bin 1175 -> 0 bytes src/gfx/boosterpacks/colosseum2.t10.png | Bin 1033 -> 0 bytes src/gfx/boosterpacks/evolution1.png | Bin 1191 -> 0 bytes src/gfx/boosterpacks/evolution2.t10.png | Bin 1068 -> 0 bytes src/gfx/boosterpacks/laboratory1.png | Bin 1206 -> 0 bytes src/gfx/boosterpacks/laboratory2.t10.png | Bin 1068 -> 0 bytes src/gfx/boosterpacks/mystery1.png | Bin 1259 -> 0 bytes src/gfx/boosterpacks/mystery2.t10.png | Bin 1136 -> 0 bytes src/gfx/boosterpacks/scytherintro1.png | Bin 1377 -> 0 bytes src/gfx/boosterpacks/scytherintro2.png | Bin 1375 -> 0 bytes src/gfx/cardpop/cardpop1.t3.png | Bin 0 -> 1452 bytes src/gfx/cardpop/cardpop2.t3.png | Bin 0 -> 803 bytes src/gfx/cardpop/cardpop3.t3.png | Bin 0 -> 784 bytes src/gfx/cardpop1.t3.png | Bin 1452 -> 0 bytes src/gfx/cardpop2.t3.png | Bin 803 -> 0 bytes src/gfx/cardpop3.t3.png | Bin 784 -> 0 bytes src/gfx/overworld_map_oam.png | Bin 0 -> 174 bytes src/gfx/overworld_sprites/0.png | Bin 0 -> 282 bytes src/gfx/overworld_sprites/1.png | Bin 0 -> 254 bytes src/gfx/overworld_sprites/10.png | Bin 0 -> 303 bytes src/gfx/overworld_sprites/11.png | Bin 0 -> 275 bytes src/gfx/overworld_sprites/12.png | Bin 0 -> 294 bytes src/gfx/overworld_sprites/13.png | Bin 0 -> 274 bytes src/gfx/overworld_sprites/14.png | Bin 0 -> 271 bytes src/gfx/overworld_sprites/15.png | Bin 0 -> 284 bytes src/gfx/overworld_sprites/16.png | Bin 0 -> 267 bytes src/gfx/overworld_sprites/17.png | Bin 0 -> 274 bytes src/gfx/overworld_sprites/18.png | Bin 0 -> 271 bytes src/gfx/overworld_sprites/19.png | Bin 0 -> 277 bytes src/gfx/overworld_sprites/2.png | Bin 0 -> 276 bytes src/gfx/overworld_sprites/20.png | Bin 0 -> 274 bytes src/gfx/overworld_sprites/21.png | Bin 0 -> 272 bytes src/gfx/overworld_sprites/22.png | Bin 0 -> 271 bytes src/gfx/overworld_sprites/23.png | Bin 0 -> 281 bytes src/gfx/overworld_sprites/24.png | Bin 0 -> 309 bytes src/gfx/overworld_sprites/25.png | Bin 0 -> 270 bytes src/gfx/overworld_sprites/26.png | Bin 0 -> 300 bytes src/gfx/overworld_sprites/27.png | Bin 0 -> 280 bytes src/gfx/overworld_sprites/28.png | Bin 0 -> 277 bytes src/gfx/overworld_sprites/29.png | Bin 0 -> 292 bytes src/gfx/overworld_sprites/3.png | Bin 0 -> 264 bytes src/gfx/overworld_sprites/30.png | Bin 0 -> 263 bytes src/gfx/overworld_sprites/31.png | Bin 0 -> 295 bytes src/gfx/overworld_sprites/32.png | Bin 0 -> 332 bytes src/gfx/overworld_sprites/4.png | Bin 0 -> 290 bytes src/gfx/overworld_sprites/5.png | Bin 0 -> 375 bytes src/gfx/overworld_sprites/6.png | Bin 0 -> 280 bytes src/gfx/overworld_sprites/7.png | Bin 0 -> 273 bytes src/gfx/overworld_sprites/8.png | Bin 0 -> 288 bytes src/gfx/overworld_sprites/9.png | Bin 0 -> 270 bytes src/gfx/overworld_sprites/doctormason.png | Bin 0 -> 288 bytes src/gfx/overworld_sprites/help_desk_lady.png | Bin 0 -> 184 bytes src/gfx/overworld_sprites/player.png | Bin 0 -> 323 bytes src/gfx/overworld_sprites/ronald.png | Bin 0 -> 272 bytes src/gfx/ow/doctormason.png | Bin 288 -> 0 bytes src/gfx/ow/help_desk_lady.png | Bin 184 -> 0 bytes src/gfx/ow/player.png | Bin 323 -> 0 bytes src/gfx/ow/ronald.png | Bin 272 -> 0 bytes src/gfx/ow/sprite0.png | Bin 282 -> 0 bytes src/gfx/ow/sprite1.png | Bin 254 -> 0 bytes src/gfx/ow/sprite10.png | Bin 303 -> 0 bytes src/gfx/ow/sprite11.png | Bin 275 -> 0 bytes src/gfx/ow/sprite12.png | Bin 294 -> 0 bytes src/gfx/ow/sprite13.png | Bin 274 -> 0 bytes src/gfx/ow/sprite14.png | Bin 271 -> 0 bytes src/gfx/ow/sprite15.png | Bin 284 -> 0 bytes src/gfx/ow/sprite16.png | Bin 267 -> 0 bytes src/gfx/ow/sprite17.png | Bin 274 -> 0 bytes src/gfx/ow/sprite18.png | Bin 271 -> 0 bytes src/gfx/ow/sprite19.png | Bin 277 -> 0 bytes src/gfx/ow/sprite2.png | Bin 276 -> 0 bytes src/gfx/ow/sprite20.png | Bin 274 -> 0 bytes src/gfx/ow/sprite21.png | Bin 272 -> 0 bytes src/gfx/ow/sprite22.png | Bin 271 -> 0 bytes src/gfx/ow/sprite23.png | Bin 281 -> 0 bytes src/gfx/ow/sprite24.png | Bin 309 -> 0 bytes src/gfx/ow/sprite25.png | Bin 270 -> 0 bytes src/gfx/ow/sprite26.png | Bin 300 -> 0 bytes src/gfx/ow/sprite27.png | Bin 280 -> 0 bytes src/gfx/ow/sprite28.png | Bin 277 -> 0 bytes src/gfx/ow/sprite29.png | Bin 292 -> 0 bytes src/gfx/ow/sprite3.png | Bin 264 -> 0 bytes src/gfx/ow/sprite30.png | Bin 263 -> 0 bytes src/gfx/ow/sprite31.png | Bin 295 -> 0 bytes src/gfx/ow/sprite32.png | Bin 332 -> 0 bytes src/gfx/ow/sprite4.png | Bin 290 -> 0 bytes src/gfx/ow/sprite5.png | Bin 375 -> 0 bytes src/gfx/ow/sprite6.png | Bin 280 -> 0 bytes src/gfx/ow/sprite7.png | Bin 273 -> 0 bytes src/gfx/ow/sprite8.png | Bin 288 -> 0 bytes src/gfx/ow/sprite9.png | Bin 270 -> 0 bytes src/gfx/ow_map_oam.png | Bin 174 -> 0 bytes .../titlescreen/booster_packs/aerodactylintro1.png | Bin 0 -> 1260 bytes .../titlescreen/booster_packs/aerodactylintro2.png | Bin 0 -> 1259 bytes .../titlescreen/booster_packs/charizardintro1.png | Bin 0 -> 1465 bytes .../titlescreen/booster_packs/charizardintro2.png | Bin 0 -> 1482 bytes .../titlescreen/booster_packs/scytherintro1.png | Bin 0 -> 1377 bytes .../titlescreen/booster_packs/scytherintro2.png | Bin 0 -> 1375 bytes src/gfx/titlescreen/colorless.png | Bin 123 -> 0 bytes src/gfx/titlescreen/energies/colorless.png | Bin 0 -> 123 bytes src/gfx/titlescreen/energies/fighting.png | Bin 0 -> 128 bytes src/gfx/titlescreen/energies/fire.png | Bin 0 -> 135 bytes src/gfx/titlescreen/energies/grass.png | Bin 0 -> 137 bytes src/gfx/titlescreen/energies/lightning.png | Bin 0 -> 131 bytes src/gfx/titlescreen/energies/psychic.png | Bin 0 -> 130 bytes src/gfx/titlescreen/energies/water.png | Bin 0 -> 126 bytes src/gfx/titlescreen/fighting.png | Bin 128 -> 0 bytes src/gfx/titlescreen/fire.png | Bin 135 -> 0 bytes src/gfx/titlescreen/grass.png | Bin 137 -> 0 bytes src/gfx/titlescreen/lightning.png | Bin 131 -> 0 bytes src/gfx/titlescreen/psychic.png | Bin 130 -> 0 bytes src/gfx/titlescreen/water.png | Bin 126 -> 0 bytes src/text/text1.asm | 2 +- src/text/text_offsets.asm | 2 +- 133 files changed, 137 insertions(+), 87 deletions(-) create mode 100644 src/gfx/booster_packs/colosseum1.png create mode 100644 src/gfx/booster_packs/colosseum2.t10.png create mode 100644 src/gfx/booster_packs/evolution1.png create mode 100644 src/gfx/booster_packs/evolution2.t10.png create mode 100644 src/gfx/booster_packs/laboratory1.png create mode 100644 src/gfx/booster_packs/laboratory2.t10.png create mode 100644 src/gfx/booster_packs/mystery1.png create mode 100644 src/gfx/booster_packs/mystery2.t10.png create mode 100644 src/gfx/booster_packs/oam.png delete mode 100755 src/gfx/boosterpacks/aerodactylintro1.png delete mode 100755 src/gfx/boosterpacks/aerodactylintro2.png delete mode 100755 src/gfx/boosterpacks/boosterpack_oam.png delete mode 100755 src/gfx/boosterpacks/charizardintro1.png delete mode 100755 src/gfx/boosterpacks/charizardintro2.png delete mode 100755 src/gfx/boosterpacks/colosseum1.png delete mode 100755 src/gfx/boosterpacks/colosseum2.t10.png delete mode 100755 src/gfx/boosterpacks/evolution1.png delete mode 100755 src/gfx/boosterpacks/evolution2.t10.png delete mode 100755 src/gfx/boosterpacks/laboratory1.png delete mode 100755 src/gfx/boosterpacks/laboratory2.t10.png delete mode 100755 src/gfx/boosterpacks/mystery1.png delete mode 100755 src/gfx/boosterpacks/mystery2.t10.png delete mode 100755 src/gfx/boosterpacks/scytherintro1.png delete mode 100755 src/gfx/boosterpacks/scytherintro2.png create mode 100644 src/gfx/cardpop/cardpop1.t3.png create mode 100644 src/gfx/cardpop/cardpop2.t3.png create mode 100644 src/gfx/cardpop/cardpop3.t3.png delete mode 100755 src/gfx/cardpop1.t3.png delete mode 100755 src/gfx/cardpop2.t3.png delete mode 100755 src/gfx/cardpop3.t3.png create mode 100644 src/gfx/overworld_map_oam.png create mode 100644 src/gfx/overworld_sprites/0.png create mode 100644 src/gfx/overworld_sprites/1.png create mode 100644 src/gfx/overworld_sprites/10.png create mode 100644 src/gfx/overworld_sprites/11.png create mode 100644 src/gfx/overworld_sprites/12.png create mode 100644 src/gfx/overworld_sprites/13.png create mode 100644 src/gfx/overworld_sprites/14.png create mode 100644 src/gfx/overworld_sprites/15.png create mode 100644 src/gfx/overworld_sprites/16.png create mode 100644 src/gfx/overworld_sprites/17.png create mode 100644 src/gfx/overworld_sprites/18.png create mode 100644 src/gfx/overworld_sprites/19.png create mode 100644 src/gfx/overworld_sprites/2.png create mode 100644 src/gfx/overworld_sprites/20.png create mode 100644 src/gfx/overworld_sprites/21.png create mode 100644 src/gfx/overworld_sprites/22.png create mode 100644 src/gfx/overworld_sprites/23.png create mode 100644 src/gfx/overworld_sprites/24.png create mode 100644 src/gfx/overworld_sprites/25.png create mode 100644 src/gfx/overworld_sprites/26.png create mode 100644 src/gfx/overworld_sprites/27.png create mode 100644 src/gfx/overworld_sprites/28.png create mode 100644 src/gfx/overworld_sprites/29.png create mode 100644 src/gfx/overworld_sprites/3.png create mode 100644 src/gfx/overworld_sprites/30.png create mode 100644 src/gfx/overworld_sprites/31.png create mode 100644 src/gfx/overworld_sprites/32.png create mode 100644 src/gfx/overworld_sprites/4.png create mode 100644 src/gfx/overworld_sprites/5.png create mode 100644 src/gfx/overworld_sprites/6.png create mode 100644 src/gfx/overworld_sprites/7.png create mode 100644 src/gfx/overworld_sprites/8.png create mode 100644 src/gfx/overworld_sprites/9.png create mode 100644 src/gfx/overworld_sprites/doctormason.png create mode 100644 src/gfx/overworld_sprites/help_desk_lady.png create mode 100644 src/gfx/overworld_sprites/player.png create mode 100644 src/gfx/overworld_sprites/ronald.png delete mode 100755 src/gfx/ow/doctormason.png delete mode 100755 src/gfx/ow/help_desk_lady.png delete mode 100755 src/gfx/ow/player.png delete mode 100755 src/gfx/ow/ronald.png delete mode 100755 src/gfx/ow/sprite0.png delete mode 100755 src/gfx/ow/sprite1.png delete mode 100755 src/gfx/ow/sprite10.png delete mode 100755 src/gfx/ow/sprite11.png delete mode 100755 src/gfx/ow/sprite12.png delete mode 100755 src/gfx/ow/sprite13.png delete mode 100755 src/gfx/ow/sprite14.png delete mode 100755 src/gfx/ow/sprite15.png delete mode 100755 src/gfx/ow/sprite16.png delete mode 100755 src/gfx/ow/sprite17.png delete mode 100755 src/gfx/ow/sprite18.png delete mode 100755 src/gfx/ow/sprite19.png delete mode 100755 src/gfx/ow/sprite2.png delete mode 100755 src/gfx/ow/sprite20.png delete mode 100755 src/gfx/ow/sprite21.png delete mode 100755 src/gfx/ow/sprite22.png delete mode 100755 src/gfx/ow/sprite23.png delete mode 100755 src/gfx/ow/sprite24.png delete mode 100755 src/gfx/ow/sprite25.png delete mode 100755 src/gfx/ow/sprite26.png delete mode 100755 src/gfx/ow/sprite27.png delete mode 100755 src/gfx/ow/sprite28.png delete mode 100755 src/gfx/ow/sprite29.png delete mode 100755 src/gfx/ow/sprite3.png delete mode 100755 src/gfx/ow/sprite30.png delete mode 100755 src/gfx/ow/sprite31.png delete mode 100755 src/gfx/ow/sprite32.png delete mode 100755 src/gfx/ow/sprite4.png delete mode 100755 src/gfx/ow/sprite5.png delete mode 100755 src/gfx/ow/sprite6.png delete mode 100755 src/gfx/ow/sprite7.png delete mode 100755 src/gfx/ow/sprite8.png delete mode 100755 src/gfx/ow/sprite9.png delete mode 100755 src/gfx/ow_map_oam.png create mode 100644 src/gfx/titlescreen/booster_packs/aerodactylintro1.png create mode 100644 src/gfx/titlescreen/booster_packs/aerodactylintro2.png create mode 100644 src/gfx/titlescreen/booster_packs/charizardintro1.png create mode 100644 src/gfx/titlescreen/booster_packs/charizardintro2.png create mode 100644 src/gfx/titlescreen/booster_packs/scytherintro1.png create mode 100644 src/gfx/titlescreen/booster_packs/scytherintro2.png delete mode 100755 src/gfx/titlescreen/colorless.png create mode 100644 src/gfx/titlescreen/energies/colorless.png create mode 100644 src/gfx/titlescreen/energies/fighting.png create mode 100644 src/gfx/titlescreen/energies/fire.png create mode 100644 src/gfx/titlescreen/energies/grass.png create mode 100644 src/gfx/titlescreen/energies/lightning.png create mode 100644 src/gfx/titlescreen/energies/psychic.png create mode 100644 src/gfx/titlescreen/energies/water.png delete mode 100755 src/gfx/titlescreen/fighting.png delete mode 100755 src/gfx/titlescreen/fire.png delete mode 100755 src/gfx/titlescreen/grass.png delete mode 100755 src/gfx/titlescreen/lightning.png delete mode 100755 src/gfx/titlescreen/psychic.png delete mode 100755 src/gfx/titlescreen/water.png diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index 18bf014..50bb03c 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -6,8 +6,11 @@ SCREEN_HEIGHT EQU 18 ; tiles BG_MAP_WIDTH EQU 32 ; tiles BG_MAP_HEIGHT EQU 32 ; tiles -; palettes -CGB_PAL_SIZE EQU 8 +; cgb palette size +CGB_PAL_SIZE EQU 8 ; bytes + +; tile size +TILE_SIZE EQU 16 ; bytes ; console types (for wConsole) CONSOLE_DMG EQU $00 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 2d9e6f9..985418b 100755 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -1,4 +1,5 @@ -Func_4000: ; 4000 (1:4000) +; continuation of Bank0 Start +Start_Cont: ; 4000 (1:4000) di ld sp, $e000 call ResetSerial @@ -18,7 +19,7 @@ Func_4000: ; 4000 (1:4000) cp A_BUTTON | B_BUTTON jr z, .ask_erase_backup_ram farcall Func_126d1 - jr Func_4000 + jr Start_Cont .ask_erase_backup_ram call Func_405a call Func_04a2 @@ -40,10 +41,43 @@ Func_4050: ; 4050 (1:4050) ret Func_405a: ; 405a (1:405a) - INCROM $405a, $406f + xor a + ld [wTileMapFill], a + call DisableLCD + call Func_2119 + call Func_5aeb + ld de, $387f + call Func_2275 + ret +; 0x406e + +CommentedOut_406e: ; 406e (1:406e) + ret +; 0x406f Func_406f: ; 406f (1:406f) - INCROM $406f, $409f + call $420b + call $66e9 + ldtx hl, BackUpIsBrokenText + jr c, .asm_4097 + ld hl, sp+$00 + ld a, l + ld [wcbe5], a + ld a, h + ld [wcbe6], a + call ClearJoypad + ld a, [wDuelTheme] + call PlaySong + xor a + ld [wDuelFinished], a + call Func_426d + jp StartDuel.asm_40fb +.asm_4097 + call DrawWideTextBox_WaitForInput + call ResetSerial + scf + ret +; 0x409f ; this function begins the duel after the opponent's ; graphics, name and deck have been introduced @@ -92,6 +126,8 @@ StartDuel: ; 409f (1:409f) call HandleSwordsDanceOrFocusEnergySubstatus call $54c8 call HandleTurn + +.asm_40fb call Func_0f58 ld a, [wDuelFinished] or a @@ -232,7 +268,18 @@ StartDuel: ; 409f (1:409f) ret ; 0x420b - INCROM $420b, $4225 +Func_420b: ; 420b (1:420b) + xor a + ld [wTileMapFill], a + call $5990 + call Func_04a2 + call Func_2119 + call Func_5aeb + ld de, $389f + call Func_2275 + call EnableLCD + ret +; 0x4225 HandleTurn: ; 4225 (1:4225) ld a, DUELVARS_DUELIST_TYPE diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index dd8638b..68fb245 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -83,9 +83,9 @@ Func_c0ce: ; c0ce (3:40ce) ld a, [wd0bf] res 7, a rlca - add PointerTable_c0e0 & $ff + add LOW(PointerTable_c0e0) ld l, a - ld a, PointerTable_c0e0 >> $8 + ld a, HIGH(PointerTable_c0e0) adc $0 ld h, a ld a, [hli] diff --git a/src/engine/home.asm b/src/engine/home.asm index ebffefa..78e32ae 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -61,10 +61,10 @@ Start: ; 0150 (0:0150) call ResetSerial call CopyDMAFunction call SetupExtRAM - ld a, BANK(Func_4000) + ld a, BANK(Start_Cont) call BankswitchHome ld sp, $e000 - jp Func_4000 + jp Start_Cont VBlankHandler: ; 019b (0:019b) push af @@ -627,10 +627,10 @@ Func_04a2: ; 04a2 (0:04a2) ld a, [wConsole] cp CONSOLE_SGB ret nz - call EnableLCD ; - ld hl, AttrBlkPacket_04bf ; send SGB data - call SendSGB ; - call DisableLCD ; + call EnableLCD + ld hl, AttrBlkPacket_04bf + call SendSGB + call DisableLCD ret AttrBlkPacket_04bf: ; 04bf (0:04bf) @@ -2069,7 +2069,7 @@ SerialHandleRecv: ; 0d77 (0:0d77) dec e jr z, .last_was_ca cp $ac - ret z ; return if read_data == $ac + ret z ; return if read_data == $ac cp $ca jr z, .read_ca or a @@ -2081,7 +2081,7 @@ SerialHandleRecv: ; 0d77 (0:0d77) set 6, [hl] ret .read_ca - inc [hl] ; inc [wSerialLastReadCA] + inc [hl] ; inc [wSerialLastReadCA] ret .last_was_ca ; if last byte read was $ca, flip all bits of data received @@ -4350,13 +4350,13 @@ Func_210f: ; 210f (0:210f) jr asm_2121 Func_2119: ; 2119 (0:2119) - ld hl, DuelGraphics - Fonts + ld hl, DuelGraphics - $4000 ld de, vTiles2 ; destination ld b, $38 ; number of tiles asm_2121 - ld a, BANK(Fonts) + ld a, BANK(DuelGraphics) call BankpushHome - ld c, $10 + ld c, TILE_SIZE call CopyGfxData call BankpopHome ret @@ -4707,7 +4707,7 @@ Func_235e: ; 235e (0:235e) ld b, $c9 ld a, l ld [bc], a ; prev[i0] ← i - ldh [$ffa9], a ; [$ffa9] ← i (update linked-list head) + ldh [$ffa9], a ; [$ffa9] ← i (update linked-list head) ld h, $c9 ld b, [hl] ld [hl], $0 ; prev[i] ← 0 @@ -6173,7 +6173,7 @@ LoadCardGfx: ; 2fa0 (0:2fa0) Func_2fcb: ; 2fcb (0:2fcb) ld a, $1d call BankpushHome - ld c, $10 + ld c, TILE_SIZE call CopyGfxData call BankpopHome ret diff --git a/src/gfx.asm b/src/gfx.asm index dc7f9b9..71c6934 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -85,7 +85,7 @@ GrassClubTilesetGfx: ; 8b91e (22:791e) OWSpritePlayer: ; 8be90 (22:7e90) dw $14 - INCBIN "gfx/ow/player.2bpp" + INCBIN "gfx/overworld_sprites/player.2bpp" Unnamed3Gfx: ; 8bfd2 (22:7fd2) dw $1 @@ -160,39 +160,39 @@ PoisonGfx: ; 8ffa4 (23:7fa4) SECTION "Gfx 6", ROMX CardPop1Gfx: ; 90000 (24:4000) dw $bd - INCBIN "gfx/cardpop1.t3.2bpp" + INCBIN "gfx/cardpop/cardpop1.t3.2bpp" CardPop2Gfx: ; 90bd2 (24:4bd2) dw $6d - INCBIN "gfx/cardpop2.t3.2bpp" + INCBIN "gfx/cardpop/cardpop2.t3.2bpp" CardPop3Gfx: ; 912a4 (24:52a4) dw $5d - INCBIN "gfx/cardpop3.t3.2bpp" + INCBIN "gfx/cardpop/cardpop3.t3.2bpp" Colosseum1Gfx: ; 91876 (24:5876) dw $60 - INCBIN "gfx/boosterpacks/colosseum1.2bpp" + INCBIN "gfx/booster_packs/colosseum1.2bpp" Colosseum2Gfx: ; 91e78 (24:5e78) dw $56 - INCBIN "gfx/boosterpacks/colosseum2.t10.2bpp" + INCBIN "gfx/booster_packs/colosseum2.t10.2bpp" Evolution1Gfx: ; 923da (24:63da) dw $60 - INCBIN "gfx/boosterpacks/evolution1.2bpp" + INCBIN "gfx/booster_packs/evolution1.2bpp" Evolution2Gfx: ; 929dc (24:69dc) dw $56 - INCBIN "gfx/boosterpacks/evolution2.t10.2bpp" + INCBIN "gfx/booster_packs/evolution2.t10.2bpp" Mystery1Gfx: ; 92f3e (24:6f3e) dw $60 - INCBIN "gfx/boosterpacks/mystery1.2bpp" + INCBIN "gfx/booster_packs/mystery1.2bpp" Mystery2Gfx: ; 93540 (24:7540) dw $56 - INCBIN "gfx/boosterpacks/mystery2.t10.2bpp" + INCBIN "gfx/booster_packs/mystery2.t10.2bpp" RonaldGfx: ; 93aa2 (24:7aa2) dw $24 @@ -204,7 +204,7 @@ CopyrightGfx: ; 93ce4 (24:7ce4) HelpDeskLadyGfx: ; 93f26 (24:7f26) dw $8 - INCBIN "gfx/ow/help_desk_lady.2bpp" + INCBIN "gfx/overworld_sprites/help_desk_lady.2bpp" Unnamed4Gfx: ; 93fa8 (24:7fa8) dw $3 @@ -221,35 +221,35 @@ endr SECTION "Gfx 7", ROMX Laboratory1Gfx: ; 94000 (25:4000) dw $60 - INCBIN "gfx/boosterpacks/laboratory1.2bpp" + INCBIN "gfx/booster_packs/laboratory1.2bpp" Laboratory2Gfx: ; 94602 (25:4602) dw $56 - INCBIN "gfx/boosterpacks/laboratory2.t10.2bpp" + INCBIN "gfx/booster_packs/laboratory2.t10.2bpp" CharizardIntro1Gfx: ; 94b64 (25:4b64) dw $60 - INCBIN "gfx/boosterpacks/charizardintro1.2bpp" + INCBIN "gfx/titlescreen/booster_packs/charizardintro1.2bpp" CharizardIntro2Gfx: ; 95166 (25:5166) dw $60 - INCBIN "gfx/boosterpacks/charizardintro2.2bpp" + INCBIN "gfx/titlescreen/booster_packs/charizardintro2.2bpp" ScytherIntro1Gfx: ; 95768 (25:5768) dw $60 - INCBIN "gfx/boosterpacks/scytherintro1.2bpp" + INCBIN "gfx/titlescreen/booster_packs/scytherintro1.2bpp" ScytherIntro2Gfx: ; 95d6a (25:5d6a) dw $60 - INCBIN "gfx/boosterpacks/scytherintro2.2bpp" + INCBIN "gfx/titlescreen/booster_packs/scytherintro2.2bpp" AerodactylIntro1Gfx: ; 9636c (25:636c) dw $60 - INCBIN "gfx/boosterpacks/aerodactylintro1.2bpp" + INCBIN "gfx/titlescreen/booster_packs/aerodactylintro1.2bpp" AerodactylIntro2Gfx: ; 9696e (25:696e) dw $60 - INCBIN "gfx/boosterpacks/aerodactylintro2.2bpp" + INCBIN "gfx/titlescreen/booster_packs/aerodactylintro2.2bpp" Titlescreen1Gfx: ; 96f70 (25:6f70) dw $61 @@ -265,7 +265,7 @@ CompaniesGfx: ; 97b94 (25:7b94) RonaldOWGfx: ; 97ea6 (25:7ea6) dw $14 - INCBIN "gfx/ow/ronald.2bpp" + INCBIN "gfx/overworld_sprites/ronald.2bpp" INCROM $97fe8, $98000 @@ -288,11 +288,11 @@ Titlescreen6Gfx: ; 9b0b6 (26:70b6) DoctorMasonOWGfx: ; 9bdf8 (26:7df8) dw $14 - INCBIN "gfx/ow/doctormason.2bpp" + INCBIN "gfx/overworld_sprites/doctormason.2bpp" OverworldMapOAMGfx: ; 9bf3a (26:7f3a) dw $8 - INCBIN "gfx/ow_map_oam.2bpp" + INCBIN "gfx/overworld_map_oam.2bpp" Unnamed6Gfx: ; 9bfbc (26:7fbc) dw $3 @@ -474,123 +474,123 @@ AaronGfx: ; a1694 (28:5694) OWSprite0: ; a18d6 (28:58d6) dw $14 - INCBIN "gfx/ow/sprite0.2bpp" + INCBIN "gfx/overworld_sprites/0.2bpp" OWSprite1: ; a1a18 (28:5a18) dw $14 - INCBIN "gfx/ow/sprite1.2bpp" + INCBIN "gfx/overworld_sprites/1.2bpp" OWSprite2: ; a1b5a (28:5b5a) dw $14 - INCBIN "gfx/ow/sprite2.2bpp" + INCBIN "gfx/overworld_sprites/2.2bpp" OWSprite3: ; a1c9c (28:5c9c) dw $14 - INCBIN "gfx/ow/sprite3.2bpp" + INCBIN "gfx/overworld_sprites/3.2bpp" OWSprite4: ; a1dde (28:5dde) dw $14 - INCBIN "gfx/ow/sprite4.2bpp" + INCBIN "gfx/overworld_sprites/4.2bpp" OWSprite5: ; a1f20 (28:5f20) dw $1b - INCBIN "gfx/ow/sprite5.2bpp" + INCBIN "gfx/overworld_sprites/5.2bpp" OWSprite6: ; a20d2 (28:60d2) dw $14 - INCBIN "gfx/ow/sprite6.2bpp" + INCBIN "gfx/overworld_sprites/6.2bpp" OWSprite7: ; a2214 (28:6214) dw $14 - INCBIN "gfx/ow/sprite7.2bpp" + INCBIN "gfx/overworld_sprites/7.2bpp" OWSprite8: ; a2356 (28:6356) dw $14 - INCBIN "gfx/ow/sprite8.2bpp" + INCBIN "gfx/overworld_sprites/8.2bpp" OWSprite9: ; a2498 (28:6498) dw $14 - INCBIN "gfx/ow/sprite9.2bpp" + INCBIN "gfx/overworld_sprites/9.2bpp" OWSprite10: ; a25da (28:65da) dw $14 - INCBIN "gfx/ow/sprite10.2bpp" + INCBIN "gfx/overworld_sprites/10.2bpp" OWSprite11: ; a271c (28:671c) dw $14 - INCBIN "gfx/ow/sprite11.2bpp" + INCBIN "gfx/overworld_sprites/11.2bpp" OWSprite12: ; a285e (28:685e) dw $14 - INCBIN "gfx/ow/sprite12.2bpp" + INCBIN "gfx/overworld_sprites/12.2bpp" OWSprite13: ; a29a0 (28:69a0) dw $14 - INCBIN "gfx/ow/sprite13.2bpp" + INCBIN "gfx/overworld_sprites/13.2bpp" OWSprite14: ; a2ae2 (28:6ae2) dw $14 - INCBIN "gfx/ow/sprite14.2bpp" + INCBIN "gfx/overworld_sprites/14.2bpp" OWSprite15: ; a2c24 (28:6c24) dw $14 - INCBIN "gfx/ow/sprite15.2bpp" + INCBIN "gfx/overworld_sprites/15.2bpp" OWSprite16: ; a2d66 (28:6d66) dw $14 - INCBIN "gfx/ow/sprite16.2bpp" + INCBIN "gfx/overworld_sprites/16.2bpp" OWSprite17: ; a2ea8 (28:6ea8) dw $14 - INCBIN "gfx/ow/sprite17.2bpp" + INCBIN "gfx/overworld_sprites/17.2bpp" OWSprite18: ; a2fea (28:6fea) dw $14 - INCBIN "gfx/ow/sprite18.2bpp" + INCBIN "gfx/overworld_sprites/18.2bpp" OWSprite19: ; a312c (28:712c) dw $14 - INCBIN "gfx/ow/sprite19.2bpp" + INCBIN "gfx/overworld_sprites/19.2bpp" OWSprite20: ; a326e (28:726e) dw $14 - INCBIN "gfx/ow/sprite20.2bpp" + INCBIN "gfx/overworld_sprites/20.2bpp" OWSprite21: ; a33b0 (28:73b0) dw $14 - INCBIN "gfx/ow/sprite21.2bpp" + INCBIN "gfx/overworld_sprites/21.2bpp" OWSprite22: ; a34f2 (28:74f2) dw $14 - INCBIN "gfx/ow/sprite22.2bpp" + INCBIN "gfx/overworld_sprites/22.2bpp" OWSprite23: ; a3634 (28:7634) dw $14 - INCBIN "gfx/ow/sprite23.2bpp" + INCBIN "gfx/overworld_sprites/23.2bpp" OWSprite24: ; a3776 (28:7776) dw $14 - INCBIN "gfx/ow/sprite24.2bpp" + INCBIN "gfx/overworld_sprites/24.2bpp" OWSprite25: ; a38b8 (28:78b8) dw $14 - INCBIN "gfx/ow/sprite25.2bpp" + INCBIN "gfx/overworld_sprites/25.2bpp" OWSprite26: ; a39fa (28:79fa) dw $14 - INCBIN "gfx/ow/sprite26.2bpp" + INCBIN "gfx/overworld_sprites/26.2bpp" OWSprite27: ; a3b3c (28:7b3c) dw $14 - INCBIN "gfx/ow/sprite27.2bpp" + INCBIN "gfx/overworld_sprites/27.2bpp" OWSprite28: ; a3c7e (28:7c7e) dw $14 - INCBIN "gfx/ow/sprite28.2bpp" + INCBIN "gfx/overworld_sprites/28.2bpp" OWSprite29: ; a3dc0 (28:7dc0) dw $14 - INCBIN "gfx/ow/sprite29.2bpp" + INCBIN "gfx/overworld_sprites/29.2bpp" Unnamed10Gfx: ; a3f02 (28:7f02) dw $b @@ -605,15 +605,15 @@ Unnamed11Gfx: ; a3fb4 (28:7fb4) SECTION "Gfx 11", ROMX OWSprite30: ; a4000 (29:4000) dw $14 - INCBIN "gfx/ow/sprite30.2bpp" + INCBIN "gfx/overworld_sprites/30.2bpp" OWSprite31: ; a4142 (29:4142) dw $14 - INCBIN "gfx/ow/sprite31.2bpp" + INCBIN "gfx/overworld_sprites/31.2bpp" OWSprite32: ; a4284 (29:4284) dw $14 - INCBIN "gfx/ow/sprite32.2bpp" + INCBIN "gfx/overworld_sprites/32.2bpp" Duel0Gfx: ; a43c6 (29:43c6) dw $16 @@ -840,7 +840,7 @@ Duel54Gfx: ; a87e0 (2a:47e0) BoosterPackOAMGfx: ; a8942 (2a:4942) dw $20 - INCBIN "gfx/boosterpacks/boosterpack_oam.2bpp" + INCBIN "gfx/booster_packs/oam.2bpp" PressStartGfx: ; a8b44 (2a:4b44) dw $14 @@ -848,31 +848,31 @@ PressStartGfx: ; a8b44 (2a:4b44) GrassGfx: ; a8c86 (2a:4c86) dw $04 - INCBIN "gfx/titlescreen/grass.2bpp" + INCBIN "gfx/titlescreen/energies/grass.2bpp" FireGfx: ; a8cc8 (2a:4cc8) dw $04 - INCBIN "gfx/titlescreen/fire.2bpp" + INCBIN "gfx/titlescreen/energies/fire.2bpp" WaterGfx: ; a8d0a (2a:4d0a) dw $04 - INCBIN "gfx/titlescreen/water.2bpp" + INCBIN "gfx/titlescreen/energies/water.2bpp" ColorlessGfx: ; a8d4c (2a:4d4c) dw $04 - INCBIN "gfx/titlescreen/colorless.2bpp" + INCBIN "gfx/titlescreen/energies/colorless.2bpp" LightningGfx: ; a8d8e (2a:4d8e) dw $04 - INCBIN "gfx/titlescreen/lightning.2bpp" + INCBIN "gfx/titlescreen/energies/lightning.2bpp" PsychicGfx: ; a8dd0 (2a:4dd0) dw $04 - INCBIN "gfx/titlescreen/psychic.2bpp" + INCBIN "gfx/titlescreen/energies/psychic.2bpp" FightingGfx: ; a8e12 (2a:4e12) dw $04 - INCBIN "gfx/titlescreen/fighting.2bpp" + INCBIN "gfx/titlescreen/energies/fighting.2bpp" INCROM $a8e54, $ac000 diff --git a/src/gfx/booster_packs/colosseum1.png b/src/gfx/booster_packs/colosseum1.png new file mode 100644 index 0000000..9ce2500 Binary files /dev/null and b/src/gfx/booster_packs/colosseum1.png differ diff --git a/src/gfx/booster_packs/colosseum2.t10.png b/src/gfx/booster_packs/colosseum2.t10.png new file mode 100644 index 0000000..1da1a52 Binary files /dev/null and b/src/gfx/booster_packs/colosseum2.t10.png differ diff --git a/src/gfx/booster_packs/evolution1.png b/src/gfx/booster_packs/evolution1.png new file mode 100644 index 0000000..15caac5 Binary files /dev/null and b/src/gfx/booster_packs/evolution1.png differ diff --git a/src/gfx/booster_packs/evolution2.t10.png b/src/gfx/booster_packs/evolution2.t10.png new file mode 100644 index 0000000..09affa5 Binary files /dev/null and b/src/gfx/booster_packs/evolution2.t10.png differ diff --git a/src/gfx/booster_packs/laboratory1.png b/src/gfx/booster_packs/laboratory1.png new file mode 100644 index 0000000..5444be5 Binary files /dev/null and b/src/gfx/booster_packs/laboratory1.png differ diff --git a/src/gfx/booster_packs/laboratory2.t10.png b/src/gfx/booster_packs/laboratory2.t10.png new file mode 100644 index 0000000..4feb880 Binary files /dev/null and b/src/gfx/booster_packs/laboratory2.t10.png differ diff --git a/src/gfx/booster_packs/mystery1.png b/src/gfx/booster_packs/mystery1.png new file mode 100644 index 0000000..06a5749 Binary files /dev/null and b/src/gfx/booster_packs/mystery1.png differ diff --git a/src/gfx/booster_packs/mystery2.t10.png b/src/gfx/booster_packs/mystery2.t10.png new file mode 100644 index 0000000..fc04dbf Binary files /dev/null and b/src/gfx/booster_packs/mystery2.t10.png differ diff --git a/src/gfx/booster_packs/oam.png b/src/gfx/booster_packs/oam.png new file mode 100644 index 0000000..dcb3850 Binary files /dev/null and b/src/gfx/booster_packs/oam.png differ diff --git a/src/gfx/boosterpacks/aerodactylintro1.png b/src/gfx/boosterpacks/aerodactylintro1.png deleted file mode 100755 index e18b96b..0000000 Binary files a/src/gfx/boosterpacks/aerodactylintro1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/aerodactylintro2.png b/src/gfx/boosterpacks/aerodactylintro2.png deleted file mode 100755 index ba347b5..0000000 Binary files a/src/gfx/boosterpacks/aerodactylintro2.png and /dev/null differ diff --git a/src/gfx/boosterpacks/boosterpack_oam.png b/src/gfx/boosterpacks/boosterpack_oam.png deleted file mode 100755 index dcb3850..0000000 Binary files a/src/gfx/boosterpacks/boosterpack_oam.png and /dev/null differ diff --git a/src/gfx/boosterpacks/charizardintro1.png b/src/gfx/boosterpacks/charizardintro1.png deleted file mode 100755 index 50e757f..0000000 Binary files a/src/gfx/boosterpacks/charizardintro1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/charizardintro2.png b/src/gfx/boosterpacks/charizardintro2.png deleted file mode 100755 index c7ec7b4..0000000 Binary files a/src/gfx/boosterpacks/charizardintro2.png and /dev/null differ diff --git a/src/gfx/boosterpacks/colosseum1.png b/src/gfx/boosterpacks/colosseum1.png deleted file mode 100755 index 9ce2500..0000000 Binary files a/src/gfx/boosterpacks/colosseum1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/colosseum2.t10.png b/src/gfx/boosterpacks/colosseum2.t10.png deleted file mode 100755 index 1da1a52..0000000 Binary files a/src/gfx/boosterpacks/colosseum2.t10.png and /dev/null differ diff --git a/src/gfx/boosterpacks/evolution1.png b/src/gfx/boosterpacks/evolution1.png deleted file mode 100755 index 15caac5..0000000 Binary files a/src/gfx/boosterpacks/evolution1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/evolution2.t10.png b/src/gfx/boosterpacks/evolution2.t10.png deleted file mode 100755 index 09affa5..0000000 Binary files a/src/gfx/boosterpacks/evolution2.t10.png and /dev/null differ diff --git a/src/gfx/boosterpacks/laboratory1.png b/src/gfx/boosterpacks/laboratory1.png deleted file mode 100755 index 5444be5..0000000 Binary files a/src/gfx/boosterpacks/laboratory1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/laboratory2.t10.png b/src/gfx/boosterpacks/laboratory2.t10.png deleted file mode 100755 index 4feb880..0000000 Binary files a/src/gfx/boosterpacks/laboratory2.t10.png and /dev/null differ diff --git a/src/gfx/boosterpacks/mystery1.png b/src/gfx/boosterpacks/mystery1.png deleted file mode 100755 index 06a5749..0000000 Binary files a/src/gfx/boosterpacks/mystery1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/mystery2.t10.png b/src/gfx/boosterpacks/mystery2.t10.png deleted file mode 100755 index fc04dbf..0000000 Binary files a/src/gfx/boosterpacks/mystery2.t10.png and /dev/null differ diff --git a/src/gfx/boosterpacks/scytherintro1.png b/src/gfx/boosterpacks/scytherintro1.png deleted file mode 100755 index 3e6bd36..0000000 Binary files a/src/gfx/boosterpacks/scytherintro1.png and /dev/null differ diff --git a/src/gfx/boosterpacks/scytherintro2.png b/src/gfx/boosterpacks/scytherintro2.png deleted file mode 100755 index c6fd814..0000000 Binary files a/src/gfx/boosterpacks/scytherintro2.png and /dev/null differ diff --git a/src/gfx/cardpop/cardpop1.t3.png b/src/gfx/cardpop/cardpop1.t3.png new file mode 100644 index 0000000..c607d8d Binary files /dev/null and b/src/gfx/cardpop/cardpop1.t3.png differ diff --git a/src/gfx/cardpop/cardpop2.t3.png b/src/gfx/cardpop/cardpop2.t3.png new file mode 100644 index 0000000..75e5149 Binary files /dev/null and b/src/gfx/cardpop/cardpop2.t3.png differ diff --git a/src/gfx/cardpop/cardpop3.t3.png b/src/gfx/cardpop/cardpop3.t3.png new file mode 100644 index 0000000..48bd233 Binary files /dev/null and b/src/gfx/cardpop/cardpop3.t3.png differ diff --git a/src/gfx/cardpop1.t3.png b/src/gfx/cardpop1.t3.png deleted file mode 100755 index c607d8d..0000000 Binary files a/src/gfx/cardpop1.t3.png and /dev/null differ diff --git a/src/gfx/cardpop2.t3.png b/src/gfx/cardpop2.t3.png deleted file mode 100755 index 75e5149..0000000 Binary files a/src/gfx/cardpop2.t3.png and /dev/null differ diff --git a/src/gfx/cardpop3.t3.png b/src/gfx/cardpop3.t3.png deleted file mode 100755 index 48bd233..0000000 Binary files a/src/gfx/cardpop3.t3.png and /dev/null differ diff --git a/src/gfx/overworld_map_oam.png b/src/gfx/overworld_map_oam.png new file mode 100644 index 0000000..323fc59 Binary files /dev/null and b/src/gfx/overworld_map_oam.png differ diff --git a/src/gfx/overworld_sprites/0.png b/src/gfx/overworld_sprites/0.png new file mode 100644 index 0000000..0eceeb6 Binary files /dev/null and b/src/gfx/overworld_sprites/0.png differ diff --git a/src/gfx/overworld_sprites/1.png b/src/gfx/overworld_sprites/1.png new file mode 100644 index 0000000..b3fa35f Binary files /dev/null and b/src/gfx/overworld_sprites/1.png differ diff --git a/src/gfx/overworld_sprites/10.png b/src/gfx/overworld_sprites/10.png new file mode 100644 index 0000000..e63ba2b Binary files /dev/null and b/src/gfx/overworld_sprites/10.png differ diff --git a/src/gfx/overworld_sprites/11.png b/src/gfx/overworld_sprites/11.png new file mode 100644 index 0000000..4a231fe Binary files /dev/null and b/src/gfx/overworld_sprites/11.png differ diff --git a/src/gfx/overworld_sprites/12.png b/src/gfx/overworld_sprites/12.png new file mode 100644 index 0000000..b24cd69 Binary files /dev/null and b/src/gfx/overworld_sprites/12.png differ diff --git a/src/gfx/overworld_sprites/13.png b/src/gfx/overworld_sprites/13.png new file mode 100644 index 0000000..d55c62c Binary files /dev/null and b/src/gfx/overworld_sprites/13.png differ diff --git a/src/gfx/overworld_sprites/14.png b/src/gfx/overworld_sprites/14.png new file mode 100644 index 0000000..0026093 Binary files /dev/null and b/src/gfx/overworld_sprites/14.png differ diff --git a/src/gfx/overworld_sprites/15.png b/src/gfx/overworld_sprites/15.png new file mode 100644 index 0000000..67a227d Binary files /dev/null and b/src/gfx/overworld_sprites/15.png differ diff --git a/src/gfx/overworld_sprites/16.png b/src/gfx/overworld_sprites/16.png new file mode 100644 index 0000000..0baa4eb Binary files /dev/null and b/src/gfx/overworld_sprites/16.png differ diff --git a/src/gfx/overworld_sprites/17.png b/src/gfx/overworld_sprites/17.png new file mode 100644 index 0000000..2f696e6 Binary files /dev/null and b/src/gfx/overworld_sprites/17.png differ diff --git a/src/gfx/overworld_sprites/18.png b/src/gfx/overworld_sprites/18.png new file mode 100644 index 0000000..97281b6 Binary files /dev/null and b/src/gfx/overworld_sprites/18.png differ diff --git a/src/gfx/overworld_sprites/19.png b/src/gfx/overworld_sprites/19.png new file mode 100644 index 0000000..437a376 Binary files /dev/null and b/src/gfx/overworld_sprites/19.png differ diff --git a/src/gfx/overworld_sprites/2.png b/src/gfx/overworld_sprites/2.png new file mode 100644 index 0000000..0bda3be Binary files /dev/null and b/src/gfx/overworld_sprites/2.png differ diff --git a/src/gfx/overworld_sprites/20.png b/src/gfx/overworld_sprites/20.png new file mode 100644 index 0000000..3da8ad9 Binary files /dev/null and b/src/gfx/overworld_sprites/20.png differ diff --git a/src/gfx/overworld_sprites/21.png b/src/gfx/overworld_sprites/21.png new file mode 100644 index 0000000..7d07d78 Binary files /dev/null and b/src/gfx/overworld_sprites/21.png differ diff --git a/src/gfx/overworld_sprites/22.png b/src/gfx/overworld_sprites/22.png new file mode 100644 index 0000000..2d47555 Binary files /dev/null and b/src/gfx/overworld_sprites/22.png differ diff --git a/src/gfx/overworld_sprites/23.png b/src/gfx/overworld_sprites/23.png new file mode 100644 index 0000000..8432c39 Binary files /dev/null and b/src/gfx/overworld_sprites/23.png differ diff --git a/src/gfx/overworld_sprites/24.png b/src/gfx/overworld_sprites/24.png new file mode 100644 index 0000000..0d7b908 Binary files /dev/null and b/src/gfx/overworld_sprites/24.png differ diff --git a/src/gfx/overworld_sprites/25.png b/src/gfx/overworld_sprites/25.png new file mode 100644 index 0000000..1e161da Binary files /dev/null and b/src/gfx/overworld_sprites/25.png differ diff --git a/src/gfx/overworld_sprites/26.png b/src/gfx/overworld_sprites/26.png new file mode 100644 index 0000000..6a5f4cd Binary files /dev/null and b/src/gfx/overworld_sprites/26.png differ diff --git a/src/gfx/overworld_sprites/27.png b/src/gfx/overworld_sprites/27.png new file mode 100644 index 0000000..7b738e4 Binary files /dev/null and b/src/gfx/overworld_sprites/27.png differ diff --git a/src/gfx/overworld_sprites/28.png b/src/gfx/overworld_sprites/28.png new file mode 100644 index 0000000..0ba9e64 Binary files /dev/null and b/src/gfx/overworld_sprites/28.png differ diff --git a/src/gfx/overworld_sprites/29.png b/src/gfx/overworld_sprites/29.png new file mode 100644 index 0000000..5926395 Binary files /dev/null and b/src/gfx/overworld_sprites/29.png differ diff --git a/src/gfx/overworld_sprites/3.png b/src/gfx/overworld_sprites/3.png new file mode 100644 index 0000000..2fac558 Binary files /dev/null and b/src/gfx/overworld_sprites/3.png differ diff --git a/src/gfx/overworld_sprites/30.png b/src/gfx/overworld_sprites/30.png new file mode 100644 index 0000000..ef25140 Binary files /dev/null and b/src/gfx/overworld_sprites/30.png differ diff --git a/src/gfx/overworld_sprites/31.png b/src/gfx/overworld_sprites/31.png new file mode 100644 index 0000000..1494e05 Binary files /dev/null and b/src/gfx/overworld_sprites/31.png differ diff --git a/src/gfx/overworld_sprites/32.png b/src/gfx/overworld_sprites/32.png new file mode 100644 index 0000000..7d3fac1 Binary files /dev/null and b/src/gfx/overworld_sprites/32.png differ diff --git a/src/gfx/overworld_sprites/4.png b/src/gfx/overworld_sprites/4.png new file mode 100644 index 0000000..a12569b Binary files /dev/null and b/src/gfx/overworld_sprites/4.png differ diff --git a/src/gfx/overworld_sprites/5.png b/src/gfx/overworld_sprites/5.png new file mode 100644 index 0000000..d46c9bb Binary files /dev/null and b/src/gfx/overworld_sprites/5.png differ diff --git a/src/gfx/overworld_sprites/6.png b/src/gfx/overworld_sprites/6.png new file mode 100644 index 0000000..2423fd1 Binary files /dev/null and b/src/gfx/overworld_sprites/6.png differ diff --git a/src/gfx/overworld_sprites/7.png b/src/gfx/overworld_sprites/7.png new file mode 100644 index 0000000..c7f1d29 Binary files /dev/null and b/src/gfx/overworld_sprites/7.png differ diff --git a/src/gfx/overworld_sprites/8.png b/src/gfx/overworld_sprites/8.png new file mode 100644 index 0000000..2527ae9 Binary files /dev/null and b/src/gfx/overworld_sprites/8.png differ diff --git a/src/gfx/overworld_sprites/9.png b/src/gfx/overworld_sprites/9.png new file mode 100644 index 0000000..69c5451 Binary files /dev/null and b/src/gfx/overworld_sprites/9.png differ diff --git a/src/gfx/overworld_sprites/doctormason.png b/src/gfx/overworld_sprites/doctormason.png new file mode 100644 index 0000000..8b0f384 Binary files /dev/null and b/src/gfx/overworld_sprites/doctormason.png differ diff --git a/src/gfx/overworld_sprites/help_desk_lady.png b/src/gfx/overworld_sprites/help_desk_lady.png new file mode 100644 index 0000000..92bb5ef Binary files /dev/null and b/src/gfx/overworld_sprites/help_desk_lady.png differ diff --git a/src/gfx/overworld_sprites/player.png b/src/gfx/overworld_sprites/player.png new file mode 100644 index 0000000..2f891ef Binary files /dev/null and b/src/gfx/overworld_sprites/player.png differ diff --git a/src/gfx/overworld_sprites/ronald.png b/src/gfx/overworld_sprites/ronald.png new file mode 100644 index 0000000..4cd2be0 Binary files /dev/null and b/src/gfx/overworld_sprites/ronald.png differ diff --git a/src/gfx/ow/doctormason.png b/src/gfx/ow/doctormason.png deleted file mode 100755 index 8b0f384..0000000 Binary files a/src/gfx/ow/doctormason.png and /dev/null differ diff --git a/src/gfx/ow/help_desk_lady.png b/src/gfx/ow/help_desk_lady.png deleted file mode 100755 index 92bb5ef..0000000 Binary files a/src/gfx/ow/help_desk_lady.png and /dev/null differ diff --git a/src/gfx/ow/player.png b/src/gfx/ow/player.png deleted file mode 100755 index 2f891ef..0000000 Binary files a/src/gfx/ow/player.png and /dev/null differ diff --git a/src/gfx/ow/ronald.png b/src/gfx/ow/ronald.png deleted file mode 100755 index 4cd2be0..0000000 Binary files a/src/gfx/ow/ronald.png and /dev/null differ diff --git a/src/gfx/ow/sprite0.png b/src/gfx/ow/sprite0.png deleted file mode 100755 index 0eceeb6..0000000 Binary files a/src/gfx/ow/sprite0.png and /dev/null differ diff --git a/src/gfx/ow/sprite1.png b/src/gfx/ow/sprite1.png deleted file mode 100755 index b3fa35f..0000000 Binary files a/src/gfx/ow/sprite1.png and /dev/null differ diff --git a/src/gfx/ow/sprite10.png b/src/gfx/ow/sprite10.png deleted file mode 100755 index e63ba2b..0000000 Binary files a/src/gfx/ow/sprite10.png and /dev/null differ diff --git a/src/gfx/ow/sprite11.png b/src/gfx/ow/sprite11.png deleted file mode 100755 index 4a231fe..0000000 Binary files a/src/gfx/ow/sprite11.png and /dev/null differ diff --git a/src/gfx/ow/sprite12.png b/src/gfx/ow/sprite12.png deleted file mode 100755 index b24cd69..0000000 Binary files a/src/gfx/ow/sprite12.png and /dev/null differ diff --git a/src/gfx/ow/sprite13.png b/src/gfx/ow/sprite13.png deleted file mode 100755 index d55c62c..0000000 Binary files a/src/gfx/ow/sprite13.png and /dev/null differ diff --git a/src/gfx/ow/sprite14.png b/src/gfx/ow/sprite14.png deleted file mode 100755 index 0026093..0000000 Binary files a/src/gfx/ow/sprite14.png and /dev/null differ diff --git a/src/gfx/ow/sprite15.png b/src/gfx/ow/sprite15.png deleted file mode 100755 index 67a227d..0000000 Binary files a/src/gfx/ow/sprite15.png and /dev/null differ diff --git a/src/gfx/ow/sprite16.png b/src/gfx/ow/sprite16.png deleted file mode 100755 index 0baa4eb..0000000 Binary files a/src/gfx/ow/sprite16.png and /dev/null differ diff --git a/src/gfx/ow/sprite17.png b/src/gfx/ow/sprite17.png deleted file mode 100755 index 2f696e6..0000000 Binary files a/src/gfx/ow/sprite17.png and /dev/null differ diff --git a/src/gfx/ow/sprite18.png b/src/gfx/ow/sprite18.png deleted file mode 100755 index 97281b6..0000000 Binary files a/src/gfx/ow/sprite18.png and /dev/null differ diff --git a/src/gfx/ow/sprite19.png b/src/gfx/ow/sprite19.png deleted file mode 100755 index 437a376..0000000 Binary files a/src/gfx/ow/sprite19.png and /dev/null differ diff --git a/src/gfx/ow/sprite2.png b/src/gfx/ow/sprite2.png deleted file mode 100755 index 0bda3be..0000000 Binary files a/src/gfx/ow/sprite2.png and /dev/null differ diff --git a/src/gfx/ow/sprite20.png b/src/gfx/ow/sprite20.png deleted file mode 100755 index 3da8ad9..0000000 Binary files a/src/gfx/ow/sprite20.png and /dev/null differ diff --git a/src/gfx/ow/sprite21.png b/src/gfx/ow/sprite21.png deleted file mode 100755 index 7d07d78..0000000 Binary files a/src/gfx/ow/sprite21.png and /dev/null differ diff --git a/src/gfx/ow/sprite22.png b/src/gfx/ow/sprite22.png deleted file mode 100755 index 2d47555..0000000 Binary files a/src/gfx/ow/sprite22.png and /dev/null differ diff --git a/src/gfx/ow/sprite23.png b/src/gfx/ow/sprite23.png deleted file mode 100755 index 8432c39..0000000 Binary files a/src/gfx/ow/sprite23.png and /dev/null differ diff --git a/src/gfx/ow/sprite24.png b/src/gfx/ow/sprite24.png deleted file mode 100755 index 0d7b908..0000000 Binary files a/src/gfx/ow/sprite24.png and /dev/null differ diff --git a/src/gfx/ow/sprite25.png b/src/gfx/ow/sprite25.png deleted file mode 100755 index 1e161da..0000000 Binary files a/src/gfx/ow/sprite25.png and /dev/null differ diff --git a/src/gfx/ow/sprite26.png b/src/gfx/ow/sprite26.png deleted file mode 100755 index 6a5f4cd..0000000 Binary files a/src/gfx/ow/sprite26.png and /dev/null differ diff --git a/src/gfx/ow/sprite27.png b/src/gfx/ow/sprite27.png deleted file mode 100755 index 7b738e4..0000000 Binary files a/src/gfx/ow/sprite27.png and /dev/null differ diff --git a/src/gfx/ow/sprite28.png b/src/gfx/ow/sprite28.png deleted file mode 100755 index 0ba9e64..0000000 Binary files a/src/gfx/ow/sprite28.png and /dev/null differ diff --git a/src/gfx/ow/sprite29.png b/src/gfx/ow/sprite29.png deleted file mode 100755 index 5926395..0000000 Binary files a/src/gfx/ow/sprite29.png and /dev/null differ diff --git a/src/gfx/ow/sprite3.png b/src/gfx/ow/sprite3.png deleted file mode 100755 index 2fac558..0000000 Binary files a/src/gfx/ow/sprite3.png and /dev/null differ diff --git a/src/gfx/ow/sprite30.png b/src/gfx/ow/sprite30.png deleted file mode 100755 index ef25140..0000000 Binary files a/src/gfx/ow/sprite30.png and /dev/null differ diff --git a/src/gfx/ow/sprite31.png b/src/gfx/ow/sprite31.png deleted file mode 100755 index 1494e05..0000000 Binary files a/src/gfx/ow/sprite31.png and /dev/null differ diff --git a/src/gfx/ow/sprite32.png b/src/gfx/ow/sprite32.png deleted file mode 100755 index 7d3fac1..0000000 Binary files a/src/gfx/ow/sprite32.png and /dev/null differ diff --git a/src/gfx/ow/sprite4.png b/src/gfx/ow/sprite4.png deleted file mode 100755 index a12569b..0000000 Binary files a/src/gfx/ow/sprite4.png and /dev/null differ diff --git a/src/gfx/ow/sprite5.png b/src/gfx/ow/sprite5.png deleted file mode 100755 index d46c9bb..0000000 Binary files a/src/gfx/ow/sprite5.png and /dev/null differ diff --git a/src/gfx/ow/sprite6.png b/src/gfx/ow/sprite6.png deleted file mode 100755 index 2423fd1..0000000 Binary files a/src/gfx/ow/sprite6.png and /dev/null differ diff --git a/src/gfx/ow/sprite7.png b/src/gfx/ow/sprite7.png deleted file mode 100755 index c7f1d29..0000000 Binary files a/src/gfx/ow/sprite7.png and /dev/null differ diff --git a/src/gfx/ow/sprite8.png b/src/gfx/ow/sprite8.png deleted file mode 100755 index 2527ae9..0000000 Binary files a/src/gfx/ow/sprite8.png and /dev/null differ diff --git a/src/gfx/ow/sprite9.png b/src/gfx/ow/sprite9.png deleted file mode 100755 index 69c5451..0000000 Binary files a/src/gfx/ow/sprite9.png and /dev/null differ diff --git a/src/gfx/ow_map_oam.png b/src/gfx/ow_map_oam.png deleted file mode 100755 index 323fc59..0000000 Binary files a/src/gfx/ow_map_oam.png and /dev/null differ diff --git a/src/gfx/titlescreen/booster_packs/aerodactylintro1.png b/src/gfx/titlescreen/booster_packs/aerodactylintro1.png new file mode 100644 index 0000000..e18b96b Binary files /dev/null and b/src/gfx/titlescreen/booster_packs/aerodactylintro1.png differ diff --git a/src/gfx/titlescreen/booster_packs/aerodactylintro2.png b/src/gfx/titlescreen/booster_packs/aerodactylintro2.png new file mode 100644 index 0000000..ba347b5 Binary files /dev/null and b/src/gfx/titlescreen/booster_packs/aerodactylintro2.png differ diff --git a/src/gfx/titlescreen/booster_packs/charizardintro1.png b/src/gfx/titlescreen/booster_packs/charizardintro1.png new file mode 100644 index 0000000..50e757f Binary files /dev/null and b/src/gfx/titlescreen/booster_packs/charizardintro1.png differ diff --git a/src/gfx/titlescreen/booster_packs/charizardintro2.png b/src/gfx/titlescreen/booster_packs/charizardintro2.png new file mode 100644 index 0000000..c7ec7b4 Binary files /dev/null and b/src/gfx/titlescreen/booster_packs/charizardintro2.png differ diff --git a/src/gfx/titlescreen/booster_packs/scytherintro1.png b/src/gfx/titlescreen/booster_packs/scytherintro1.png new file mode 100644 index 0000000..3e6bd36 Binary files /dev/null and b/src/gfx/titlescreen/booster_packs/scytherintro1.png differ diff --git a/src/gfx/titlescreen/booster_packs/scytherintro2.png b/src/gfx/titlescreen/booster_packs/scytherintro2.png new file mode 100644 index 0000000..c6fd814 Binary files /dev/null and b/src/gfx/titlescreen/booster_packs/scytherintro2.png differ diff --git a/src/gfx/titlescreen/colorless.png b/src/gfx/titlescreen/colorless.png deleted file mode 100755 index fe55d79..0000000 Binary files a/src/gfx/titlescreen/colorless.png and /dev/null differ diff --git a/src/gfx/titlescreen/energies/colorless.png b/src/gfx/titlescreen/energies/colorless.png new file mode 100644 index 0000000..fe55d79 Binary files /dev/null and b/src/gfx/titlescreen/energies/colorless.png differ diff --git a/src/gfx/titlescreen/energies/fighting.png b/src/gfx/titlescreen/energies/fighting.png new file mode 100644 index 0000000..849d5d6 Binary files /dev/null and b/src/gfx/titlescreen/energies/fighting.png differ diff --git a/src/gfx/titlescreen/energies/fire.png b/src/gfx/titlescreen/energies/fire.png new file mode 100644 index 0000000..518fcfc Binary files /dev/null and b/src/gfx/titlescreen/energies/fire.png differ diff --git a/src/gfx/titlescreen/energies/grass.png b/src/gfx/titlescreen/energies/grass.png new file mode 100644 index 0000000..b864fc4 Binary files /dev/null and b/src/gfx/titlescreen/energies/grass.png differ diff --git a/src/gfx/titlescreen/energies/lightning.png b/src/gfx/titlescreen/energies/lightning.png new file mode 100644 index 0000000..9dcddef Binary files /dev/null and b/src/gfx/titlescreen/energies/lightning.png differ diff --git a/src/gfx/titlescreen/energies/psychic.png b/src/gfx/titlescreen/energies/psychic.png new file mode 100644 index 0000000..60bbe0b Binary files /dev/null and b/src/gfx/titlescreen/energies/psychic.png differ diff --git a/src/gfx/titlescreen/energies/water.png b/src/gfx/titlescreen/energies/water.png new file mode 100644 index 0000000..124f54c Binary files /dev/null and b/src/gfx/titlescreen/energies/water.png differ diff --git a/src/gfx/titlescreen/fighting.png b/src/gfx/titlescreen/fighting.png deleted file mode 100755 index 849d5d6..0000000 Binary files a/src/gfx/titlescreen/fighting.png and /dev/null differ diff --git a/src/gfx/titlescreen/fire.png b/src/gfx/titlescreen/fire.png deleted file mode 100755 index 518fcfc..0000000 Binary files a/src/gfx/titlescreen/fire.png and /dev/null differ diff --git a/src/gfx/titlescreen/grass.png b/src/gfx/titlescreen/grass.png deleted file mode 100755 index b864fc4..0000000 Binary files a/src/gfx/titlescreen/grass.png and /dev/null differ diff --git a/src/gfx/titlescreen/lightning.png b/src/gfx/titlescreen/lightning.png deleted file mode 100755 index 9dcddef..0000000 Binary files a/src/gfx/titlescreen/lightning.png and /dev/null differ diff --git a/src/gfx/titlescreen/psychic.png b/src/gfx/titlescreen/psychic.png deleted file mode 100755 index 60bbe0b..0000000 Binary files a/src/gfx/titlescreen/psychic.png and /dev/null differ diff --git a/src/gfx/titlescreen/water.png b/src/gfx/titlescreen/water.png deleted file mode 100755 index 124f54c..0000000 Binary files a/src/gfx/titlescreen/water.png and /dev/null differ diff --git a/src/text/text1.asm b/src/text/text1.asm index eb11f83..3c82b18 100755 --- a/src/text/text1.asm +++ b/src/text/text1.asm @@ -992,7 +992,7 @@ Text00d5: ; 37a3a (d:7a3a) text "A Transmission Error occured." done -Text00d6: ; 37a59 (d:7a59) +BackUpIsBrokenText: ; 37a59 (d:7a59) text "Back Up is broken." done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index 7b60d4f..acb7f4c 100755 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -215,7 +215,7 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text00d3 textpointer UnableDueToToxicGasText textpointer Text00d5 - textpointer Text00d6 + textpointer BackUpIsBrokenText textpointer Text00d7 textpointer Text00d8 textpointer Text00d9 -- cgit v1.2.3 From c2b95ff8800032b50d5c69fb8f9eaf9d06e2bcb0 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 16 Feb 2018 23:08:10 +0100 Subject: all permissions 755 -> 644 --- .gitignore | 0 Makefile | 0 README.md | 0 src/audio.asm | 0 src/audio/music1.asm | 0 src/audio/music1_headers.asm | 0 src/audio/music2.asm | 0 src/audio/music2_headers.asm | 0 src/audio/noise_instruments.asm | 0 src/audio/sfx.asm | 0 src/audio/sfx_headers.asm | 0 src/audio/vibrato_types.asm | 0 src/audio/wave_instruments.asm | 0 src/constants.asm | 0 src/constants/booster_constants.asm | 0 src/constants/card_constants.asm | 0 src/constants/deck_constants.asm | 0 src/constants/map_constants.asm | 0 src/constants/music_constants.asm | 0 src/constants/npc_constants.asm | 0 src/constants/overworld_script_constants.asm | 0 src/constants/text_constants.asm | 0 src/data/cards.asm | 0 src/data/decks.asm | 0 src/data/map_scripts.asm | 0 src/data/map_songs.asm | 0 src/data/overworld_indexes.asm | 0 src/engine/bank1.asm | 0 src/engine/bank1c.asm | 0 src/engine/bank2.asm | 0 src/engine/bank20.asm | 0 src/engine/bank3.asm | 0 src/engine/bank4.asm | 0 src/engine/bank5.asm | 0 src/engine/bank6.asm | 0 src/engine/bank7.asm | 0 src/engine/bank8.asm | 0 src/engine/home.asm | 0 src/gfx/cards/abra.8x6.png | Bin src/gfx/cards/aerodactyl.8x6.png | Bin src/gfx/cards/alakazam.8x6.png | Bin src/gfx/cards/arbok.8x6.png | Bin src/gfx/cards/arcanine1.8x6.png | Bin src/gfx/cards/arcanine2.8x6.png | Bin src/gfx/cards/articuno1.8x6.png | Bin src/gfx/cards/articuno2.8x6.png | Bin src/gfx/cards/beedrill.8x6.png | Bin src/gfx/cards/bellsprout.8x6.png | Bin src/gfx/cards/bill.8x6.png | Bin src/gfx/cards/blastoise.8x6.png | Bin src/gfx/cards/bulbasaur.8x6.png | Bin src/gfx/cards/butterfree.8x6.png | Bin src/gfx/cards/caterpie.8x6.png | Bin src/gfx/cards/chansey.8x6.png | Bin src/gfx/cards/charizard.8x6.png | Bin src/gfx/cards/charmander.8x6.png | Bin src/gfx/cards/charmeleon.8x6.png | Bin src/gfx/cards/clefable.8x6.png | Bin src/gfx/cards/clefairy.8x6.png | Bin src/gfx/cards/clefairydoll.8x6.png | Bin src/gfx/cards/cloyster.8x6.png | Bin src/gfx/cards/computersearch.8x6.png | Bin src/gfx/cards/cubone.8x6.png | Bin src/gfx/cards/defender.8x6.png | Bin src/gfx/cards/devolutionspray.8x6.png | Bin src/gfx/cards/dewgong.8x6.png | Bin src/gfx/cards/diglett.8x6.png | Bin src/gfx/cards/ditto.8x6.png | Bin src/gfx/cards/dodrio.8x6.png | Bin src/gfx/cards/doduo.8x6.png | Bin src/gfx/cards/doublecolorlessenergy.8x6.png | Bin src/gfx/cards/dragonair.8x6.png | Bin src/gfx/cards/dragonite1.8x6.png | Bin src/gfx/cards/dragonite2.8x6.png | Bin src/gfx/cards/dratini.8x6.png | Bin src/gfx/cards/drowzee.8x6.png | Bin src/gfx/cards/dugtrio.8x6.png | Bin src/gfx/cards/eevee.8x6.png | Bin src/gfx/cards/ekans.8x6.png | Bin src/gfx/cards/electabuzz1.8x6.png | Bin src/gfx/cards/electabuzz2.8x6.png | Bin src/gfx/cards/electrode1.8x6.png | Bin src/gfx/cards/electrode2.8x6.png | Bin src/gfx/cards/energyremoval.8x6.png | Bin src/gfx/cards/energyretrieval.8x6.png | Bin src/gfx/cards/energysearch.8x6.png | Bin src/gfx/cards/exeggcute.8x6.png | Bin src/gfx/cards/exeggutor.8x6.png | Bin src/gfx/cards/farfetchd.8x6.png | Bin src/gfx/cards/fearow.8x6.png | Bin src/gfx/cards/fightingenergy.8x6.png | Bin src/gfx/cards/fireenergy.8x6.png | Bin src/gfx/cards/flareon1.8x6.png | Bin src/gfx/cards/flareon2.8x6.png | Bin src/gfx/cards/flyingpikachu.8x6.png | Bin src/gfx/cards/fullheal.8x6.png | Bin src/gfx/cards/gambler.8x6.png | Bin src/gfx/cards/gastly1.8x6.png | Bin src/gfx/cards/gastly2.8x6.png | Bin src/gfx/cards/gengar.8x6.png | Bin src/gfx/cards/geodude.8x6.png | Bin src/gfx/cards/gloom.8x6.png | Bin src/gfx/cards/golbat.8x6.png | Bin src/gfx/cards/goldeen.8x6.png | Bin src/gfx/cards/golduck.8x6.png | Bin src/gfx/cards/golem.8x6.png | Bin src/gfx/cards/grassenergy.8x6.png | Bin src/gfx/cards/graveler.8x6.png | Bin src/gfx/cards/grimer.8x6.png | Bin src/gfx/cards/growlithe.8x6.png | Bin src/gfx/cards/gustofwind.8x6.png | Bin src/gfx/cards/gyarados.8x6.png | Bin src/gfx/cards/haunter1.8x6.png | Bin src/gfx/cards/haunter2.8x6.png | Bin src/gfx/cards/hitmonchan.8x6.png | Bin src/gfx/cards/hitmonlee.8x6.png | Bin src/gfx/cards/horsea.8x6.png | Bin src/gfx/cards/hypno.8x6.png | Bin src/gfx/cards/imakuni.8x6.png | Bin src/gfx/cards/imposterprofessoroak.8x6.png | Bin src/gfx/cards/itemfinder.8x6.png | Bin src/gfx/cards/ivysaur.8x6.png | Bin src/gfx/cards/jigglypuff1.8x6.png | Bin src/gfx/cards/jigglypuff2.8x6.png | Bin src/gfx/cards/jigglypuff3.8x6.png | Bin src/gfx/cards/jolteon1.8x6.png | Bin src/gfx/cards/jolteon2.8x6.png | Bin src/gfx/cards/jynx.8x6.png | Bin src/gfx/cards/kabuto.8x6.png | Bin src/gfx/cards/kabutops.8x6.png | Bin src/gfx/cards/kadabra.8x6.png | Bin src/gfx/cards/kakuna.8x6.png | Bin src/gfx/cards/kangaskhan.8x6.png | Bin src/gfx/cards/kingler.8x6.png | Bin src/gfx/cards/koffing.8x6.png | Bin src/gfx/cards/krabby.8x6.png | Bin src/gfx/cards/lapras.8x6.png | Bin src/gfx/cards/lass.8x6.png | Bin src/gfx/cards/lickitung.8x6.png | Bin src/gfx/cards/lightningenergy.8x6.png | Bin src/gfx/cards/machamp.8x6.png | Bin src/gfx/cards/machoke.8x6.png | Bin src/gfx/cards/machop.8x6.png | Bin src/gfx/cards/magikarp.8x6.png | Bin src/gfx/cards/magmar1.8x6.png | Bin src/gfx/cards/magmar2.8x6.png | Bin src/gfx/cards/magnemite1.8x6.png | Bin src/gfx/cards/magnemite2.8x6.png | Bin src/gfx/cards/magneton1.8x6.png | Bin src/gfx/cards/magneton2.8x6.png | Bin src/gfx/cards/maintenance.8x6.png | Bin src/gfx/cards/mankey.8x6.png | Bin src/gfx/cards/marowak1.8x6.png | Bin src/gfx/cards/marowak2.8x6.png | Bin src/gfx/cards/meowth1.8x6.png | Bin src/gfx/cards/meowth2.8x6.png | Bin src/gfx/cards/metapod.8x6.png | Bin src/gfx/cards/mew1.8x6.png | Bin src/gfx/cards/mew2.8x6.png | Bin src/gfx/cards/mew3.8x6.png | Bin src/gfx/cards/mewtwo1.8x6.png | Bin src/gfx/cards/mewtwo2.8x6.png | Bin src/gfx/cards/mewtwo3.8x6.png | Bin src/gfx/cards/moltres1.8x6.png | Bin src/gfx/cards/moltres2.8x6.png | Bin src/gfx/cards/mrfuji.8x6.png | Bin src/gfx/cards/mrmime.8x6.png | Bin src/gfx/cards/muk.8x6.png | Bin src/gfx/cards/mysteriousfossil.8x6.png | Bin src/gfx/cards/nidoking.8x6.png | Bin src/gfx/cards/nidoqueen.8x6.png | Bin src/gfx/cards/nidoranf.8x6.png | Bin src/gfx/cards/nidoranm.8x6.png | Bin src/gfx/cards/nidorina.8x6.png | Bin src/gfx/cards/nidorino.8x6.png | Bin src/gfx/cards/ninetails1.8x6.png | Bin src/gfx/cards/ninetails2.8x6.png | Bin src/gfx/cards/oddish.8x6.png | Bin src/gfx/cards/omanyte.8x6.png | Bin src/gfx/cards/omastar.8x6.png | Bin src/gfx/cards/onix.8x6.png | Bin src/gfx/cards/paras.8x6.png | Bin src/gfx/cards/parasect.8x6.png | Bin src/gfx/cards/persian.8x6.png | Bin src/gfx/cards/pidgeot1.8x6.png | Bin src/gfx/cards/pidgeot2.8x6.png | Bin src/gfx/cards/pidgeotto.8x6.png | Bin src/gfx/cards/pidgey.8x6.png | Bin src/gfx/cards/pikachu1.8x6.png | Bin src/gfx/cards/pikachu2.8x6.png | Bin src/gfx/cards/pikachu3.8x6.png | Bin src/gfx/cards/pikachu4.8x6.png | Bin src/gfx/cards/pinsir.8x6.png | Bin src/gfx/cards/pluspower.8x6.png | Bin src/gfx/cards/pokeball.8x6.png | Bin src/gfx/cards/pokedex.8x6.png | Bin src/gfx/cards/pokemonbreeder.8x6.png | Bin src/gfx/cards/pokemoncenter.8x6.png | Bin src/gfx/cards/pokemonflute.8x6.png | Bin src/gfx/cards/pokemontrader.8x6.png | Bin src/gfx/cards/poliwag.8x6.png | Bin src/gfx/cards/poliwhirl.8x6.png | Bin src/gfx/cards/poliwrath.8x6.png | Bin src/gfx/cards/ponyta.8x6.png | Bin src/gfx/cards/porygon.8x6.png | Bin src/gfx/cards/potion.8x6.png | Bin src/gfx/cards/primeape.8x6.png | Bin src/gfx/cards/professoroak.8x6.png | Bin src/gfx/cards/psychicenergy.8x6.png | Bin src/gfx/cards/psyduck.8x6.png | Bin src/gfx/cards/raichu1.8x6.png | Bin src/gfx/cards/raichu2.8x6.png | Bin src/gfx/cards/rapidash.8x6.png | Bin src/gfx/cards/raticate.8x6.png | Bin src/gfx/cards/rattata.8x6.png | Bin src/gfx/cards/recycle.8x6.png | Bin src/gfx/cards/revive.8x6.png | Bin src/gfx/cards/rhydon.8x6.png | Bin src/gfx/cards/rhyhorn.8x6.png | Bin src/gfx/cards/sandshrew.8x6.png | Bin src/gfx/cards/sandslash.8x6.png | Bin src/gfx/cards/scoopup.8x6.png | Bin src/gfx/cards/scyther.8x6.png | Bin src/gfx/cards/seadra.8x6.png | Bin src/gfx/cards/seaking.8x6.png | Bin src/gfx/cards/seel.8x6.png | Bin src/gfx/cards/shellder.8x6.png | Bin src/gfx/cards/slowbro.8x6.png | Bin src/gfx/cards/slowpoke1.8x6.png | Bin src/gfx/cards/slowpoke2.8x6.png | Bin src/gfx/cards/snorlax.8x6.png | Bin src/gfx/cards/spearow.8x6.png | Bin src/gfx/cards/squirtle.8x6.png | Bin src/gfx/cards/starmie.8x6.png | Bin src/gfx/cards/staryu.8x6.png | Bin src/gfx/cards/superenergyremoval.8x6.png | Bin src/gfx/cards/superenergyretrieval.8x6.png | Bin src/gfx/cards/superpotion.8x6.png | Bin src/gfx/cards/surfingpikachu1.8x6.png | Bin src/gfx/cards/surfingpikachu2.8x6.png | Bin src/gfx/cards/switch.8x6.png | Bin src/gfx/cards/tangela1.8x6.png | Bin src/gfx/cards/tangela2.8x6.png | Bin src/gfx/cards/tauros.8x6.png | Bin src/gfx/cards/tentacool.8x6.png | Bin src/gfx/cards/tentacruel.8x6.png | Bin src/gfx/cards/vaporeon1.8x6.png | Bin src/gfx/cards/vaporeon2.8x6.png | Bin src/gfx/cards/venomoth.8x6.png | Bin src/gfx/cards/venonat.8x6.png | Bin src/gfx/cards/venusaur1.8x6.png | Bin src/gfx/cards/venusaur2.8x6.png | Bin src/gfx/cards/victreebel.8x6.png | Bin src/gfx/cards/vileplume.8x6.png | Bin src/gfx/cards/voltorb.8x6.png | Bin src/gfx/cards/vulpix.8x6.png | Bin src/gfx/cards/wartortle.8x6.png | Bin src/gfx/cards/waterenergy.8x6.png | Bin src/gfx/cards/weedle.8x6.png | Bin src/gfx/cards/weepinbell.8x6.png | Bin src/gfx/cards/weezing.8x6.png | Bin src/gfx/cards/wigglytuff.8x6.png | Bin src/gfx/cards/zapdos1.8x6.png | Bin src/gfx/cards/zapdos2.8x6.png | Bin src/gfx/cards/zapdos3.8x6.png | Bin src/gfx/cards/zubat.8x6.png | Bin src/gfx/companies.png | Bin src/gfx/duel/0.png | Bin src/gfx/duel/1.png | Bin src/gfx/duel/10.png | Bin src/gfx/duel/11.png | Bin src/gfx/duel/12.png | Bin src/gfx/duel/13.png | Bin src/gfx/duel/14.png | Bin src/gfx/duel/15.png | Bin src/gfx/duel/16.png | Bin src/gfx/duel/17.png | Bin src/gfx/duel/18.png | Bin src/gfx/duel/19.png | Bin src/gfx/duel/2.png | Bin src/gfx/duel/20.png | Bin src/gfx/duel/21.png | Bin src/gfx/duel/22.png | Bin src/gfx/duel/23.png | Bin src/gfx/duel/24.png | Bin src/gfx/duel/25.png | Bin src/gfx/duel/26.png | Bin src/gfx/duel/27.png | Bin src/gfx/duel/28.png | Bin src/gfx/duel/29.png | Bin src/gfx/duel/3.png | Bin src/gfx/duel/30.png | Bin src/gfx/duel/31.png | Bin src/gfx/duel/32.png | Bin src/gfx/duel/33.png | Bin src/gfx/duel/34.png | Bin src/gfx/duel/35.png | Bin src/gfx/duel/36.png | Bin src/gfx/duel/37.png | Bin src/gfx/duel/38.png | Bin src/gfx/duel/39.png | Bin src/gfx/duel/4.png | Bin src/gfx/duel/40.png | Bin src/gfx/duel/41.png | Bin src/gfx/duel/42.png | Bin src/gfx/duel/43.png | Bin src/gfx/duel/44.png | Bin src/gfx/duel/45.png | Bin src/gfx/duel/46.png | Bin src/gfx/duel/47.png | Bin src/gfx/duel/48.png | Bin src/gfx/duel/49.png | Bin src/gfx/duel/5.png | Bin src/gfx/duel/50.png | Bin src/gfx/duel/51.t10.png | Bin src/gfx/duel/52.png | Bin src/gfx/duel/53.png | Bin src/gfx/duel/54.png | Bin src/gfx/duel/6.png | Bin src/gfx/duel/7.png | Bin src/gfx/duel/8.png | Bin src/gfx/duel/9.png | Bin src/gfx/duel/duel1.t5.png | Bin src/gfx/duel/duel2.png | Bin src/gfx/duel/poison.png | Bin src/gfx/duelists/aaron.png | Bin src/gfx/duelists/adam.png | Bin src/gfx/duelists/amanda.png | Bin src/gfx/duelists/amy.png | Bin src/gfx/duelists/andrew.png | Bin src/gfx/duelists/brandon.png | Bin src/gfx/duelists/brittany.png | Bin src/gfx/duelists/chris.png | Bin src/gfx/duelists/courtney.png | Bin src/gfx/duelists/daniel.png | Bin src/gfx/duelists/david.png | Bin src/gfx/duelists/erik.png | Bin src/gfx/duelists/gene.png | Bin src/gfx/duelists/heather.png | Bin src/gfx/duelists/imakuni.png | Bin src/gfx/duelists/isaac.png | Bin src/gfx/duelists/jack.png | Bin src/gfx/duelists/jennifer.png | Bin src/gfx/duelists/jessica.png | Bin src/gfx/duelists/john.png | Bin src/gfx/duelists/jonathan.png | Bin src/gfx/duelists/joseph.png | Bin src/gfx/duelists/joshua.png | Bin src/gfx/duelists/ken.png | Bin src/gfx/duelists/kristin.png | Bin src/gfx/duelists/matthew.png | Bin src/gfx/duelists/michael.png | Bin src/gfx/duelists/mitch.png | Bin src/gfx/duelists/murray.png | Bin src/gfx/duelists/nicholas.png | Bin src/gfx/duelists/nikki.png | Bin src/gfx/duelists/player.png | Bin src/gfx/duelists/rick.png | Bin src/gfx/duelists/robert.png | Bin src/gfx/duelists/rod.png | Bin src/gfx/duelists/ronald.png | Bin src/gfx/duelists/ryan.png | Bin src/gfx/duelists/sam.png | Bin src/gfx/duelists/sara.png | Bin src/gfx/duelists/stephanie.png | Bin src/gfx/duelists/steve.png | Bin src/gfx/fonts.t3.png | Bin src/gfx/medals.png | Bin src/gfx/overworld_map.t15.png | Bin src/gfx/tilesets/challengehall.t3.png | Bin src/gfx/tilesets/clubentrance.t15.png | Bin src/gfx/tilesets/clublobby.t8.png | Bin src/gfx/tilesets/fightingclub.t13.png | Bin src/gfx/tilesets/fireclub.t9.png | Bin src/gfx/tilesets/grassclub.t9.png | Bin src/gfx/tilesets/hallofhonor.t7.png | Bin src/gfx/tilesets/ishihara.t3.png | Bin src/gfx/tilesets/lightningclub.t13.png | Bin src/gfx/tilesets/masonlaboratory.t9.png | Bin src/gfx/tilesets/pokemondome.t1.png | Bin src/gfx/tilesets/pokemondomeentrance.t2.png | Bin src/gfx/tilesets/psychicclub.t6.png | Bin src/gfx/tilesets/rockclub.t4.png | Bin src/gfx/tilesets/scienceclub.t14.png | Bin src/gfx/tilesets/waterclub.t15.png | Bin src/gfx/titlescreen/press_start.png | Bin src/gfx/titlescreen/titlescreen1.t15.png | Bin src/gfx/titlescreen/titlescreen2.t15.png | Bin src/gfx/titlescreen/titlescreen3.t12.png | Bin src/gfx/titlescreen/titlescreen4.t5.png | Bin src/gfx/titlescreen/titlescreen5.t4.png | Bin src/gfx/titlescreen/titlescreen6.t12.png | Bin src/gfx/unnamed/1.png | Bin src/gfx/unnamed/10.png | Bin src/gfx/unnamed/11.png | Bin src/gfx/unnamed/2.png | Bin src/gfx/unnamed/3.png | Bin src/gfx/unnamed/4.png | Bin src/gfx/unnamed/5.png | Bin src/gfx/unnamed/6.png | Bin src/gfx/unnamed/7.png | Bin src/gfx/unnamed/8.png | Bin src/gfx/unnamed/9.png | Bin src/gfx/vwf.png | Bin src/macros.asm | 0 src/main.asm | 0 src/sram.asm | 0 src/text.asm | 0 src/text/text1.asm | 0 src/text/text_offsets.asm | 0 src/wram.asm | 0 411 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .gitignore mode change 100755 => 100644 Makefile mode change 100755 => 100644 README.md mode change 100755 => 100644 src/audio.asm mode change 100755 => 100644 src/audio/music1.asm mode change 100755 => 100644 src/audio/music1_headers.asm mode change 100755 => 100644 src/audio/music2.asm mode change 100755 => 100644 src/audio/music2_headers.asm mode change 100755 => 100644 src/audio/noise_instruments.asm mode change 100755 => 100644 src/audio/sfx.asm mode change 100755 => 100644 src/audio/sfx_headers.asm mode change 100755 => 100644 src/audio/vibrato_types.asm mode change 100755 => 100644 src/audio/wave_instruments.asm mode change 100755 => 100644 src/constants.asm mode change 100755 => 100644 src/constants/booster_constants.asm mode change 100755 => 100644 src/constants/card_constants.asm mode change 100755 => 100644 src/constants/deck_constants.asm mode change 100755 => 100644 src/constants/map_constants.asm mode change 100755 => 100644 src/constants/music_constants.asm mode change 100755 => 100644 src/constants/npc_constants.asm mode change 100755 => 100644 src/constants/overworld_script_constants.asm mode change 100755 => 100644 src/constants/text_constants.asm mode change 100755 => 100644 src/data/cards.asm mode change 100755 => 100644 src/data/decks.asm mode change 100755 => 100644 src/data/map_scripts.asm mode change 100755 => 100644 src/data/map_songs.asm mode change 100755 => 100644 src/data/overworld_indexes.asm mode change 100755 => 100644 src/engine/bank1.asm mode change 100755 => 100644 src/engine/bank1c.asm mode change 100755 => 100644 src/engine/bank2.asm mode change 100755 => 100644 src/engine/bank20.asm mode change 100755 => 100644 src/engine/bank3.asm mode change 100755 => 100644 src/engine/bank4.asm mode change 100755 => 100644 src/engine/bank5.asm mode change 100755 => 100644 src/engine/bank6.asm mode change 100755 => 100644 src/engine/bank7.asm mode change 100755 => 100644 src/engine/bank8.asm mode change 100755 => 100644 src/engine/home.asm mode change 100755 => 100644 src/gfx/cards/abra.8x6.png mode change 100755 => 100644 src/gfx/cards/aerodactyl.8x6.png mode change 100755 => 100644 src/gfx/cards/alakazam.8x6.png mode change 100755 => 100644 src/gfx/cards/arbok.8x6.png mode change 100755 => 100644 src/gfx/cards/arcanine1.8x6.png mode change 100755 => 100644 src/gfx/cards/arcanine2.8x6.png mode change 100755 => 100644 src/gfx/cards/articuno1.8x6.png mode change 100755 => 100644 src/gfx/cards/articuno2.8x6.png mode change 100755 => 100644 src/gfx/cards/beedrill.8x6.png mode change 100755 => 100644 src/gfx/cards/bellsprout.8x6.png mode change 100755 => 100644 src/gfx/cards/bill.8x6.png mode change 100755 => 100644 src/gfx/cards/blastoise.8x6.png mode change 100755 => 100644 src/gfx/cards/bulbasaur.8x6.png mode change 100755 => 100644 src/gfx/cards/butterfree.8x6.png mode change 100755 => 100644 src/gfx/cards/caterpie.8x6.png mode change 100755 => 100644 src/gfx/cards/chansey.8x6.png mode change 100755 => 100644 src/gfx/cards/charizard.8x6.png mode change 100755 => 100644 src/gfx/cards/charmander.8x6.png mode change 100755 => 100644 src/gfx/cards/charmeleon.8x6.png mode change 100755 => 100644 src/gfx/cards/clefable.8x6.png mode change 100755 => 100644 src/gfx/cards/clefairy.8x6.png mode change 100755 => 100644 src/gfx/cards/clefairydoll.8x6.png mode change 100755 => 100644 src/gfx/cards/cloyster.8x6.png mode change 100755 => 100644 src/gfx/cards/computersearch.8x6.png mode change 100755 => 100644 src/gfx/cards/cubone.8x6.png mode change 100755 => 100644 src/gfx/cards/defender.8x6.png mode change 100755 => 100644 src/gfx/cards/devolutionspray.8x6.png mode change 100755 => 100644 src/gfx/cards/dewgong.8x6.png mode change 100755 => 100644 src/gfx/cards/diglett.8x6.png mode change 100755 => 100644 src/gfx/cards/ditto.8x6.png mode change 100755 => 100644 src/gfx/cards/dodrio.8x6.png mode change 100755 => 100644 src/gfx/cards/doduo.8x6.png mode change 100755 => 100644 src/gfx/cards/doublecolorlessenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/dragonair.8x6.png mode change 100755 => 100644 src/gfx/cards/dragonite1.8x6.png mode change 100755 => 100644 src/gfx/cards/dragonite2.8x6.png mode change 100755 => 100644 src/gfx/cards/dratini.8x6.png mode change 100755 => 100644 src/gfx/cards/drowzee.8x6.png mode change 100755 => 100644 src/gfx/cards/dugtrio.8x6.png mode change 100755 => 100644 src/gfx/cards/eevee.8x6.png mode change 100755 => 100644 src/gfx/cards/ekans.8x6.png mode change 100755 => 100644 src/gfx/cards/electabuzz1.8x6.png mode change 100755 => 100644 src/gfx/cards/electabuzz2.8x6.png mode change 100755 => 100644 src/gfx/cards/electrode1.8x6.png mode change 100755 => 100644 src/gfx/cards/electrode2.8x6.png mode change 100755 => 100644 src/gfx/cards/energyremoval.8x6.png mode change 100755 => 100644 src/gfx/cards/energyretrieval.8x6.png mode change 100755 => 100644 src/gfx/cards/energysearch.8x6.png mode change 100755 => 100644 src/gfx/cards/exeggcute.8x6.png mode change 100755 => 100644 src/gfx/cards/exeggutor.8x6.png mode change 100755 => 100644 src/gfx/cards/farfetchd.8x6.png mode change 100755 => 100644 src/gfx/cards/fearow.8x6.png mode change 100755 => 100644 src/gfx/cards/fightingenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/fireenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/flareon1.8x6.png mode change 100755 => 100644 src/gfx/cards/flareon2.8x6.png mode change 100755 => 100644 src/gfx/cards/flyingpikachu.8x6.png mode change 100755 => 100644 src/gfx/cards/fullheal.8x6.png mode change 100755 => 100644 src/gfx/cards/gambler.8x6.png mode change 100755 => 100644 src/gfx/cards/gastly1.8x6.png mode change 100755 => 100644 src/gfx/cards/gastly2.8x6.png mode change 100755 => 100644 src/gfx/cards/gengar.8x6.png mode change 100755 => 100644 src/gfx/cards/geodude.8x6.png mode change 100755 => 100644 src/gfx/cards/gloom.8x6.png mode change 100755 => 100644 src/gfx/cards/golbat.8x6.png mode change 100755 => 100644 src/gfx/cards/goldeen.8x6.png mode change 100755 => 100644 src/gfx/cards/golduck.8x6.png mode change 100755 => 100644 src/gfx/cards/golem.8x6.png mode change 100755 => 100644 src/gfx/cards/grassenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/graveler.8x6.png mode change 100755 => 100644 src/gfx/cards/grimer.8x6.png mode change 100755 => 100644 src/gfx/cards/growlithe.8x6.png mode change 100755 => 100644 src/gfx/cards/gustofwind.8x6.png mode change 100755 => 100644 src/gfx/cards/gyarados.8x6.png mode change 100755 => 100644 src/gfx/cards/haunter1.8x6.png mode change 100755 => 100644 src/gfx/cards/haunter2.8x6.png mode change 100755 => 100644 src/gfx/cards/hitmonchan.8x6.png mode change 100755 => 100644 src/gfx/cards/hitmonlee.8x6.png mode change 100755 => 100644 src/gfx/cards/horsea.8x6.png mode change 100755 => 100644 src/gfx/cards/hypno.8x6.png mode change 100755 => 100644 src/gfx/cards/imakuni.8x6.png mode change 100755 => 100644 src/gfx/cards/imposterprofessoroak.8x6.png mode change 100755 => 100644 src/gfx/cards/itemfinder.8x6.png mode change 100755 => 100644 src/gfx/cards/ivysaur.8x6.png mode change 100755 => 100644 src/gfx/cards/jigglypuff1.8x6.png mode change 100755 => 100644 src/gfx/cards/jigglypuff2.8x6.png mode change 100755 => 100644 src/gfx/cards/jigglypuff3.8x6.png mode change 100755 => 100644 src/gfx/cards/jolteon1.8x6.png mode change 100755 => 100644 src/gfx/cards/jolteon2.8x6.png mode change 100755 => 100644 src/gfx/cards/jynx.8x6.png mode change 100755 => 100644 src/gfx/cards/kabuto.8x6.png mode change 100755 => 100644 src/gfx/cards/kabutops.8x6.png mode change 100755 => 100644 src/gfx/cards/kadabra.8x6.png mode change 100755 => 100644 src/gfx/cards/kakuna.8x6.png mode change 100755 => 100644 src/gfx/cards/kangaskhan.8x6.png mode change 100755 => 100644 src/gfx/cards/kingler.8x6.png mode change 100755 => 100644 src/gfx/cards/koffing.8x6.png mode change 100755 => 100644 src/gfx/cards/krabby.8x6.png mode change 100755 => 100644 src/gfx/cards/lapras.8x6.png mode change 100755 => 100644 src/gfx/cards/lass.8x6.png mode change 100755 => 100644 src/gfx/cards/lickitung.8x6.png mode change 100755 => 100644 src/gfx/cards/lightningenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/machamp.8x6.png mode change 100755 => 100644 src/gfx/cards/machoke.8x6.png mode change 100755 => 100644 src/gfx/cards/machop.8x6.png mode change 100755 => 100644 src/gfx/cards/magikarp.8x6.png mode change 100755 => 100644 src/gfx/cards/magmar1.8x6.png mode change 100755 => 100644 src/gfx/cards/magmar2.8x6.png mode change 100755 => 100644 src/gfx/cards/magnemite1.8x6.png mode change 100755 => 100644 src/gfx/cards/magnemite2.8x6.png mode change 100755 => 100644 src/gfx/cards/magneton1.8x6.png mode change 100755 => 100644 src/gfx/cards/magneton2.8x6.png mode change 100755 => 100644 src/gfx/cards/maintenance.8x6.png mode change 100755 => 100644 src/gfx/cards/mankey.8x6.png mode change 100755 => 100644 src/gfx/cards/marowak1.8x6.png mode change 100755 => 100644 src/gfx/cards/marowak2.8x6.png mode change 100755 => 100644 src/gfx/cards/meowth1.8x6.png mode change 100755 => 100644 src/gfx/cards/meowth2.8x6.png mode change 100755 => 100644 src/gfx/cards/metapod.8x6.png mode change 100755 => 100644 src/gfx/cards/mew1.8x6.png mode change 100755 => 100644 src/gfx/cards/mew2.8x6.png mode change 100755 => 100644 src/gfx/cards/mew3.8x6.png mode change 100755 => 100644 src/gfx/cards/mewtwo1.8x6.png mode change 100755 => 100644 src/gfx/cards/mewtwo2.8x6.png mode change 100755 => 100644 src/gfx/cards/mewtwo3.8x6.png mode change 100755 => 100644 src/gfx/cards/moltres1.8x6.png mode change 100755 => 100644 src/gfx/cards/moltres2.8x6.png mode change 100755 => 100644 src/gfx/cards/mrfuji.8x6.png mode change 100755 => 100644 src/gfx/cards/mrmime.8x6.png mode change 100755 => 100644 src/gfx/cards/muk.8x6.png mode change 100755 => 100644 src/gfx/cards/mysteriousfossil.8x6.png mode change 100755 => 100644 src/gfx/cards/nidoking.8x6.png mode change 100755 => 100644 src/gfx/cards/nidoqueen.8x6.png mode change 100755 => 100644 src/gfx/cards/nidoranf.8x6.png mode change 100755 => 100644 src/gfx/cards/nidoranm.8x6.png mode change 100755 => 100644 src/gfx/cards/nidorina.8x6.png mode change 100755 => 100644 src/gfx/cards/nidorino.8x6.png mode change 100755 => 100644 src/gfx/cards/ninetails1.8x6.png mode change 100755 => 100644 src/gfx/cards/ninetails2.8x6.png mode change 100755 => 100644 src/gfx/cards/oddish.8x6.png mode change 100755 => 100644 src/gfx/cards/omanyte.8x6.png mode change 100755 => 100644 src/gfx/cards/omastar.8x6.png mode change 100755 => 100644 src/gfx/cards/onix.8x6.png mode change 100755 => 100644 src/gfx/cards/paras.8x6.png mode change 100755 => 100644 src/gfx/cards/parasect.8x6.png mode change 100755 => 100644 src/gfx/cards/persian.8x6.png mode change 100755 => 100644 src/gfx/cards/pidgeot1.8x6.png mode change 100755 => 100644 src/gfx/cards/pidgeot2.8x6.png mode change 100755 => 100644 src/gfx/cards/pidgeotto.8x6.png mode change 100755 => 100644 src/gfx/cards/pidgey.8x6.png mode change 100755 => 100644 src/gfx/cards/pikachu1.8x6.png mode change 100755 => 100644 src/gfx/cards/pikachu2.8x6.png mode change 100755 => 100644 src/gfx/cards/pikachu3.8x6.png mode change 100755 => 100644 src/gfx/cards/pikachu4.8x6.png mode change 100755 => 100644 src/gfx/cards/pinsir.8x6.png mode change 100755 => 100644 src/gfx/cards/pluspower.8x6.png mode change 100755 => 100644 src/gfx/cards/pokeball.8x6.png mode change 100755 => 100644 src/gfx/cards/pokedex.8x6.png mode change 100755 => 100644 src/gfx/cards/pokemonbreeder.8x6.png mode change 100755 => 100644 src/gfx/cards/pokemoncenter.8x6.png mode change 100755 => 100644 src/gfx/cards/pokemonflute.8x6.png mode change 100755 => 100644 src/gfx/cards/pokemontrader.8x6.png mode change 100755 => 100644 src/gfx/cards/poliwag.8x6.png mode change 100755 => 100644 src/gfx/cards/poliwhirl.8x6.png mode change 100755 => 100644 src/gfx/cards/poliwrath.8x6.png mode change 100755 => 100644 src/gfx/cards/ponyta.8x6.png mode change 100755 => 100644 src/gfx/cards/porygon.8x6.png mode change 100755 => 100644 src/gfx/cards/potion.8x6.png mode change 100755 => 100644 src/gfx/cards/primeape.8x6.png mode change 100755 => 100644 src/gfx/cards/professoroak.8x6.png mode change 100755 => 100644 src/gfx/cards/psychicenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/psyduck.8x6.png mode change 100755 => 100644 src/gfx/cards/raichu1.8x6.png mode change 100755 => 100644 src/gfx/cards/raichu2.8x6.png mode change 100755 => 100644 src/gfx/cards/rapidash.8x6.png mode change 100755 => 100644 src/gfx/cards/raticate.8x6.png mode change 100755 => 100644 src/gfx/cards/rattata.8x6.png mode change 100755 => 100644 src/gfx/cards/recycle.8x6.png mode change 100755 => 100644 src/gfx/cards/revive.8x6.png mode change 100755 => 100644 src/gfx/cards/rhydon.8x6.png mode change 100755 => 100644 src/gfx/cards/rhyhorn.8x6.png mode change 100755 => 100644 src/gfx/cards/sandshrew.8x6.png mode change 100755 => 100644 src/gfx/cards/sandslash.8x6.png mode change 100755 => 100644 src/gfx/cards/scoopup.8x6.png mode change 100755 => 100644 src/gfx/cards/scyther.8x6.png mode change 100755 => 100644 src/gfx/cards/seadra.8x6.png mode change 100755 => 100644 src/gfx/cards/seaking.8x6.png mode change 100755 => 100644 src/gfx/cards/seel.8x6.png mode change 100755 => 100644 src/gfx/cards/shellder.8x6.png mode change 100755 => 100644 src/gfx/cards/slowbro.8x6.png mode change 100755 => 100644 src/gfx/cards/slowpoke1.8x6.png mode change 100755 => 100644 src/gfx/cards/slowpoke2.8x6.png mode change 100755 => 100644 src/gfx/cards/snorlax.8x6.png mode change 100755 => 100644 src/gfx/cards/spearow.8x6.png mode change 100755 => 100644 src/gfx/cards/squirtle.8x6.png mode change 100755 => 100644 src/gfx/cards/starmie.8x6.png mode change 100755 => 100644 src/gfx/cards/staryu.8x6.png mode change 100755 => 100644 src/gfx/cards/superenergyremoval.8x6.png mode change 100755 => 100644 src/gfx/cards/superenergyretrieval.8x6.png mode change 100755 => 100644 src/gfx/cards/superpotion.8x6.png mode change 100755 => 100644 src/gfx/cards/surfingpikachu1.8x6.png mode change 100755 => 100644 src/gfx/cards/surfingpikachu2.8x6.png mode change 100755 => 100644 src/gfx/cards/switch.8x6.png mode change 100755 => 100644 src/gfx/cards/tangela1.8x6.png mode change 100755 => 100644 src/gfx/cards/tangela2.8x6.png mode change 100755 => 100644 src/gfx/cards/tauros.8x6.png mode change 100755 => 100644 src/gfx/cards/tentacool.8x6.png mode change 100755 => 100644 src/gfx/cards/tentacruel.8x6.png mode change 100755 => 100644 src/gfx/cards/vaporeon1.8x6.png mode change 100755 => 100644 src/gfx/cards/vaporeon2.8x6.png mode change 100755 => 100644 src/gfx/cards/venomoth.8x6.png mode change 100755 => 100644 src/gfx/cards/venonat.8x6.png mode change 100755 => 100644 src/gfx/cards/venusaur1.8x6.png mode change 100755 => 100644 src/gfx/cards/venusaur2.8x6.png mode change 100755 => 100644 src/gfx/cards/victreebel.8x6.png mode change 100755 => 100644 src/gfx/cards/vileplume.8x6.png mode change 100755 => 100644 src/gfx/cards/voltorb.8x6.png mode change 100755 => 100644 src/gfx/cards/vulpix.8x6.png mode change 100755 => 100644 src/gfx/cards/wartortle.8x6.png mode change 100755 => 100644 src/gfx/cards/waterenergy.8x6.png mode change 100755 => 100644 src/gfx/cards/weedle.8x6.png mode change 100755 => 100644 src/gfx/cards/weepinbell.8x6.png mode change 100755 => 100644 src/gfx/cards/weezing.8x6.png mode change 100755 => 100644 src/gfx/cards/wigglytuff.8x6.png mode change 100755 => 100644 src/gfx/cards/zapdos1.8x6.png mode change 100755 => 100644 src/gfx/cards/zapdos2.8x6.png mode change 100755 => 100644 src/gfx/cards/zapdos3.8x6.png mode change 100755 => 100644 src/gfx/cards/zubat.8x6.png mode change 100755 => 100644 src/gfx/companies.png mode change 100755 => 100644 src/gfx/duel/0.png mode change 100755 => 100644 src/gfx/duel/1.png mode change 100755 => 100644 src/gfx/duel/10.png mode change 100755 => 100644 src/gfx/duel/11.png mode change 100755 => 100644 src/gfx/duel/12.png mode change 100755 => 100644 src/gfx/duel/13.png mode change 100755 => 100644 src/gfx/duel/14.png mode change 100755 => 100644 src/gfx/duel/15.png mode change 100755 => 100644 src/gfx/duel/16.png mode change 100755 => 100644 src/gfx/duel/17.png mode change 100755 => 100644 src/gfx/duel/18.png mode change 100755 => 100644 src/gfx/duel/19.png mode change 100755 => 100644 src/gfx/duel/2.png mode change 100755 => 100644 src/gfx/duel/20.png mode change 100755 => 100644 src/gfx/duel/21.png mode change 100755 => 100644 src/gfx/duel/22.png mode change 100755 => 100644 src/gfx/duel/23.png mode change 100755 => 100644 src/gfx/duel/24.png mode change 100755 => 100644 src/gfx/duel/25.png mode change 100755 => 100644 src/gfx/duel/26.png mode change 100755 => 100644 src/gfx/duel/27.png mode change 100755 => 100644 src/gfx/duel/28.png mode change 100755 => 100644 src/gfx/duel/29.png mode change 100755 => 100644 src/gfx/duel/3.png mode change 100755 => 100644 src/gfx/duel/30.png mode change 100755 => 100644 src/gfx/duel/31.png mode change 100755 => 100644 src/gfx/duel/32.png mode change 100755 => 100644 src/gfx/duel/33.png mode change 100755 => 100644 src/gfx/duel/34.png mode change 100755 => 100644 src/gfx/duel/35.png mode change 100755 => 100644 src/gfx/duel/36.png mode change 100755 => 100644 src/gfx/duel/37.png mode change 100755 => 100644 src/gfx/duel/38.png mode change 100755 => 100644 src/gfx/duel/39.png mode change 100755 => 100644 src/gfx/duel/4.png mode change 100755 => 100644 src/gfx/duel/40.png mode change 100755 => 100644 src/gfx/duel/41.png mode change 100755 => 100644 src/gfx/duel/42.png mode change 100755 => 100644 src/gfx/duel/43.png mode change 100755 => 100644 src/gfx/duel/44.png mode change 100755 => 100644 src/gfx/duel/45.png mode change 100755 => 100644 src/gfx/duel/46.png mode change 100755 => 100644 src/gfx/duel/47.png mode change 100755 => 100644 src/gfx/duel/48.png mode change 100755 => 100644 src/gfx/duel/49.png mode change 100755 => 100644 src/gfx/duel/5.png mode change 100755 => 100644 src/gfx/duel/50.png mode change 100755 => 100644 src/gfx/duel/51.t10.png mode change 100755 => 100644 src/gfx/duel/52.png mode change 100755 => 100644 src/gfx/duel/53.png mode change 100755 => 100644 src/gfx/duel/54.png mode change 100755 => 100644 src/gfx/duel/6.png mode change 100755 => 100644 src/gfx/duel/7.png mode change 100755 => 100644 src/gfx/duel/8.png mode change 100755 => 100644 src/gfx/duel/9.png mode change 100755 => 100644 src/gfx/duel/duel1.t5.png mode change 100755 => 100644 src/gfx/duel/duel2.png mode change 100755 => 100644 src/gfx/duel/poison.png mode change 100755 => 100644 src/gfx/duelists/aaron.png mode change 100755 => 100644 src/gfx/duelists/adam.png mode change 100755 => 100644 src/gfx/duelists/amanda.png mode change 100755 => 100644 src/gfx/duelists/amy.png mode change 100755 => 100644 src/gfx/duelists/andrew.png mode change 100755 => 100644 src/gfx/duelists/brandon.png mode change 100755 => 100644 src/gfx/duelists/brittany.png mode change 100755 => 100644 src/gfx/duelists/chris.png mode change 100755 => 100644 src/gfx/duelists/courtney.png mode change 100755 => 100644 src/gfx/duelists/daniel.png mode change 100755 => 100644 src/gfx/duelists/david.png mode change 100755 => 100644 src/gfx/duelists/erik.png mode change 100755 => 100644 src/gfx/duelists/gene.png mode change 100755 => 100644 src/gfx/duelists/heather.png mode change 100755 => 100644 src/gfx/duelists/imakuni.png mode change 100755 => 100644 src/gfx/duelists/isaac.png mode change 100755 => 100644 src/gfx/duelists/jack.png mode change 100755 => 100644 src/gfx/duelists/jennifer.png mode change 100755 => 100644 src/gfx/duelists/jessica.png mode change 100755 => 100644 src/gfx/duelists/john.png mode change 100755 => 100644 src/gfx/duelists/jonathan.png mode change 100755 => 100644 src/gfx/duelists/joseph.png mode change 100755 => 100644 src/gfx/duelists/joshua.png mode change 100755 => 100644 src/gfx/duelists/ken.png mode change 100755 => 100644 src/gfx/duelists/kristin.png mode change 100755 => 100644 src/gfx/duelists/matthew.png mode change 100755 => 100644 src/gfx/duelists/michael.png mode change 100755 => 100644 src/gfx/duelists/mitch.png mode change 100755 => 100644 src/gfx/duelists/murray.png mode change 100755 => 100644 src/gfx/duelists/nicholas.png mode change 100755 => 100644 src/gfx/duelists/nikki.png mode change 100755 => 100644 src/gfx/duelists/player.png mode change 100755 => 100644 src/gfx/duelists/rick.png mode change 100755 => 100644 src/gfx/duelists/robert.png mode change 100755 => 100644 src/gfx/duelists/rod.png mode change 100755 => 100644 src/gfx/duelists/ronald.png mode change 100755 => 100644 src/gfx/duelists/ryan.png mode change 100755 => 100644 src/gfx/duelists/sam.png mode change 100755 => 100644 src/gfx/duelists/sara.png mode change 100755 => 100644 src/gfx/duelists/stephanie.png mode change 100755 => 100644 src/gfx/duelists/steve.png mode change 100755 => 100644 src/gfx/fonts.t3.png mode change 100755 => 100644 src/gfx/medals.png mode change 100755 => 100644 src/gfx/overworld_map.t15.png mode change 100755 => 100644 src/gfx/tilesets/challengehall.t3.png mode change 100755 => 100644 src/gfx/tilesets/clubentrance.t15.png mode change 100755 => 100644 src/gfx/tilesets/clublobby.t8.png mode change 100755 => 100644 src/gfx/tilesets/fightingclub.t13.png mode change 100755 => 100644 src/gfx/tilesets/fireclub.t9.png mode change 100755 => 100644 src/gfx/tilesets/grassclub.t9.png mode change 100755 => 100644 src/gfx/tilesets/hallofhonor.t7.png mode change 100755 => 100644 src/gfx/tilesets/ishihara.t3.png mode change 100755 => 100644 src/gfx/tilesets/lightningclub.t13.png mode change 100755 => 100644 src/gfx/tilesets/masonlaboratory.t9.png mode change 100755 => 100644 src/gfx/tilesets/pokemondome.t1.png mode change 100755 => 100644 src/gfx/tilesets/pokemondomeentrance.t2.png mode change 100755 => 100644 src/gfx/tilesets/psychicclub.t6.png mode change 100755 => 100644 src/gfx/tilesets/rockclub.t4.png mode change 100755 => 100644 src/gfx/tilesets/scienceclub.t14.png mode change 100755 => 100644 src/gfx/tilesets/waterclub.t15.png mode change 100755 => 100644 src/gfx/titlescreen/press_start.png mode change 100755 => 100644 src/gfx/titlescreen/titlescreen1.t15.png mode change 100755 => 100644 src/gfx/titlescreen/titlescreen2.t15.png mode change 100755 => 100644 src/gfx/titlescreen/titlescreen3.t12.png mode change 100755 => 100644 src/gfx/titlescreen/titlescreen4.t5.png mode change 100755 => 100644 src/gfx/titlescreen/titlescreen5.t4.png mode change 100755 => 100644 src/gfx/titlescreen/titlescreen6.t12.png mode change 100755 => 100644 src/gfx/unnamed/1.png mode change 100755 => 100644 src/gfx/unnamed/10.png mode change 100755 => 100644 src/gfx/unnamed/11.png mode change 100755 => 100644 src/gfx/unnamed/2.png mode change 100755 => 100644 src/gfx/unnamed/3.png mode change 100755 => 100644 src/gfx/unnamed/4.png mode change 100755 => 100644 src/gfx/unnamed/5.png mode change 100755 => 100644 src/gfx/unnamed/6.png mode change 100755 => 100644 src/gfx/unnamed/7.png mode change 100755 => 100644 src/gfx/unnamed/8.png mode change 100755 => 100644 src/gfx/unnamed/9.png mode change 100755 => 100644 src/gfx/vwf.png mode change 100755 => 100644 src/macros.asm mode change 100755 => 100644 src/main.asm mode change 100755 => 100644 src/sram.asm mode change 100755 => 100644 src/text.asm mode change 100755 => 100644 src/text/text1.asm mode change 100755 => 100644 src/text/text_offsets.asm mode change 100755 => 100644 src/wram.asm diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/Makefile b/Makefile old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/src/audio.asm b/src/audio.asm old mode 100755 new mode 100644 diff --git a/src/audio/music1.asm b/src/audio/music1.asm old mode 100755 new mode 100644 diff --git a/src/audio/music1_headers.asm b/src/audio/music1_headers.asm old mode 100755 new mode 100644 diff --git a/src/audio/music2.asm b/src/audio/music2.asm old mode 100755 new mode 100644 diff --git a/src/audio/music2_headers.asm b/src/audio/music2_headers.asm old mode 100755 new mode 100644 diff --git a/src/audio/noise_instruments.asm b/src/audio/noise_instruments.asm old mode 100755 new mode 100644 diff --git a/src/audio/sfx.asm b/src/audio/sfx.asm old mode 100755 new mode 100644 diff --git a/src/audio/sfx_headers.asm b/src/audio/sfx_headers.asm old mode 100755 new mode 100644 diff --git a/src/audio/vibrato_types.asm b/src/audio/vibrato_types.asm old mode 100755 new mode 100644 diff --git a/src/audio/wave_instruments.asm b/src/audio/wave_instruments.asm old mode 100755 new mode 100644 diff --git a/src/constants.asm b/src/constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/booster_constants.asm b/src/constants/booster_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/card_constants.asm b/src/constants/card_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/deck_constants.asm b/src/constants/deck_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/map_constants.asm b/src/constants/map_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/music_constants.asm b/src/constants/music_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/npc_constants.asm b/src/constants/npc_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/overworld_script_constants.asm b/src/constants/overworld_script_constants.asm old mode 100755 new mode 100644 diff --git a/src/constants/text_constants.asm b/src/constants/text_constants.asm old mode 100755 new mode 100644 diff --git a/src/data/cards.asm b/src/data/cards.asm old mode 100755 new mode 100644 diff --git a/src/data/decks.asm b/src/data/decks.asm old mode 100755 new mode 100644 diff --git a/src/data/map_scripts.asm b/src/data/map_scripts.asm old mode 100755 new mode 100644 diff --git a/src/data/map_songs.asm b/src/data/map_songs.asm old mode 100755 new mode 100644 diff --git a/src/data/overworld_indexes.asm b/src/data/overworld_indexes.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm old mode 100755 new mode 100644 diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm old mode 100755 new mode 100644 diff --git a/src/engine/home.asm b/src/engine/home.asm old mode 100755 new mode 100644 diff --git a/src/gfx/cards/abra.8x6.png b/src/gfx/cards/abra.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/aerodactyl.8x6.png b/src/gfx/cards/aerodactyl.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/alakazam.8x6.png b/src/gfx/cards/alakazam.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/arbok.8x6.png b/src/gfx/cards/arbok.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/arcanine1.8x6.png b/src/gfx/cards/arcanine1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/arcanine2.8x6.png b/src/gfx/cards/arcanine2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/articuno1.8x6.png b/src/gfx/cards/articuno1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/articuno2.8x6.png b/src/gfx/cards/articuno2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/beedrill.8x6.png b/src/gfx/cards/beedrill.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/bellsprout.8x6.png b/src/gfx/cards/bellsprout.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/bill.8x6.png b/src/gfx/cards/bill.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/blastoise.8x6.png b/src/gfx/cards/blastoise.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/bulbasaur.8x6.png b/src/gfx/cards/bulbasaur.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/butterfree.8x6.png b/src/gfx/cards/butterfree.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/caterpie.8x6.png b/src/gfx/cards/caterpie.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/chansey.8x6.png b/src/gfx/cards/chansey.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/charizard.8x6.png b/src/gfx/cards/charizard.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/charmander.8x6.png b/src/gfx/cards/charmander.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/charmeleon.8x6.png b/src/gfx/cards/charmeleon.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/clefable.8x6.png b/src/gfx/cards/clefable.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/clefairy.8x6.png b/src/gfx/cards/clefairy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/clefairydoll.8x6.png b/src/gfx/cards/clefairydoll.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/cloyster.8x6.png b/src/gfx/cards/cloyster.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/computersearch.8x6.png b/src/gfx/cards/computersearch.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/cubone.8x6.png b/src/gfx/cards/cubone.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/defender.8x6.png b/src/gfx/cards/defender.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/devolutionspray.8x6.png b/src/gfx/cards/devolutionspray.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dewgong.8x6.png b/src/gfx/cards/dewgong.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/diglett.8x6.png b/src/gfx/cards/diglett.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/ditto.8x6.png b/src/gfx/cards/ditto.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dodrio.8x6.png b/src/gfx/cards/dodrio.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/doduo.8x6.png b/src/gfx/cards/doduo.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/doublecolorlessenergy.8x6.png b/src/gfx/cards/doublecolorlessenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dragonair.8x6.png b/src/gfx/cards/dragonair.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dragonite1.8x6.png b/src/gfx/cards/dragonite1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dragonite2.8x6.png b/src/gfx/cards/dragonite2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dratini.8x6.png b/src/gfx/cards/dratini.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/drowzee.8x6.png b/src/gfx/cards/drowzee.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/dugtrio.8x6.png b/src/gfx/cards/dugtrio.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/eevee.8x6.png b/src/gfx/cards/eevee.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/ekans.8x6.png b/src/gfx/cards/ekans.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/electabuzz1.8x6.png b/src/gfx/cards/electabuzz1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/electabuzz2.8x6.png b/src/gfx/cards/electabuzz2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/electrode1.8x6.png b/src/gfx/cards/electrode1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/electrode2.8x6.png b/src/gfx/cards/electrode2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/energyremoval.8x6.png b/src/gfx/cards/energyremoval.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/energyretrieval.8x6.png b/src/gfx/cards/energyretrieval.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/energysearch.8x6.png b/src/gfx/cards/energysearch.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/exeggcute.8x6.png b/src/gfx/cards/exeggcute.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/exeggutor.8x6.png b/src/gfx/cards/exeggutor.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/farfetchd.8x6.png b/src/gfx/cards/farfetchd.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/fearow.8x6.png b/src/gfx/cards/fearow.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/fightingenergy.8x6.png b/src/gfx/cards/fightingenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/fireenergy.8x6.png b/src/gfx/cards/fireenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/flareon1.8x6.png b/src/gfx/cards/flareon1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/flareon2.8x6.png b/src/gfx/cards/flareon2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/flyingpikachu.8x6.png b/src/gfx/cards/flyingpikachu.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/fullheal.8x6.png b/src/gfx/cards/fullheal.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gambler.8x6.png b/src/gfx/cards/gambler.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gastly1.8x6.png b/src/gfx/cards/gastly1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gastly2.8x6.png b/src/gfx/cards/gastly2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gengar.8x6.png b/src/gfx/cards/gengar.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/geodude.8x6.png b/src/gfx/cards/geodude.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gloom.8x6.png b/src/gfx/cards/gloom.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/golbat.8x6.png b/src/gfx/cards/golbat.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/goldeen.8x6.png b/src/gfx/cards/goldeen.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/golduck.8x6.png b/src/gfx/cards/golduck.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/golem.8x6.png b/src/gfx/cards/golem.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/grassenergy.8x6.png b/src/gfx/cards/grassenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/graveler.8x6.png b/src/gfx/cards/graveler.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/grimer.8x6.png b/src/gfx/cards/grimer.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/growlithe.8x6.png b/src/gfx/cards/growlithe.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gustofwind.8x6.png b/src/gfx/cards/gustofwind.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/gyarados.8x6.png b/src/gfx/cards/gyarados.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/haunter1.8x6.png b/src/gfx/cards/haunter1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/haunter2.8x6.png b/src/gfx/cards/haunter2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/hitmonchan.8x6.png b/src/gfx/cards/hitmonchan.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/hitmonlee.8x6.png b/src/gfx/cards/hitmonlee.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/horsea.8x6.png b/src/gfx/cards/horsea.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/hypno.8x6.png b/src/gfx/cards/hypno.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/imakuni.8x6.png b/src/gfx/cards/imakuni.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/imposterprofessoroak.8x6.png b/src/gfx/cards/imposterprofessoroak.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/itemfinder.8x6.png b/src/gfx/cards/itemfinder.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/ivysaur.8x6.png b/src/gfx/cards/ivysaur.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/jigglypuff1.8x6.png b/src/gfx/cards/jigglypuff1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/jigglypuff2.8x6.png b/src/gfx/cards/jigglypuff2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/jigglypuff3.8x6.png b/src/gfx/cards/jigglypuff3.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/jolteon1.8x6.png b/src/gfx/cards/jolteon1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/jolteon2.8x6.png b/src/gfx/cards/jolteon2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/jynx.8x6.png b/src/gfx/cards/jynx.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/kabuto.8x6.png b/src/gfx/cards/kabuto.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/kabutops.8x6.png b/src/gfx/cards/kabutops.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/kadabra.8x6.png b/src/gfx/cards/kadabra.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/kakuna.8x6.png b/src/gfx/cards/kakuna.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/kangaskhan.8x6.png b/src/gfx/cards/kangaskhan.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/kingler.8x6.png b/src/gfx/cards/kingler.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/koffing.8x6.png b/src/gfx/cards/koffing.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/krabby.8x6.png b/src/gfx/cards/krabby.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/lapras.8x6.png b/src/gfx/cards/lapras.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/lass.8x6.png b/src/gfx/cards/lass.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/lickitung.8x6.png b/src/gfx/cards/lickitung.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/lightningenergy.8x6.png b/src/gfx/cards/lightningenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/machamp.8x6.png b/src/gfx/cards/machamp.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/machoke.8x6.png b/src/gfx/cards/machoke.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/machop.8x6.png b/src/gfx/cards/machop.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magikarp.8x6.png b/src/gfx/cards/magikarp.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magmar1.8x6.png b/src/gfx/cards/magmar1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magmar2.8x6.png b/src/gfx/cards/magmar2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magnemite1.8x6.png b/src/gfx/cards/magnemite1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magnemite2.8x6.png b/src/gfx/cards/magnemite2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magneton1.8x6.png b/src/gfx/cards/magneton1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/magneton2.8x6.png b/src/gfx/cards/magneton2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/maintenance.8x6.png b/src/gfx/cards/maintenance.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mankey.8x6.png b/src/gfx/cards/mankey.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/marowak1.8x6.png b/src/gfx/cards/marowak1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/marowak2.8x6.png b/src/gfx/cards/marowak2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/meowth1.8x6.png b/src/gfx/cards/meowth1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/meowth2.8x6.png b/src/gfx/cards/meowth2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/metapod.8x6.png b/src/gfx/cards/metapod.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mew1.8x6.png b/src/gfx/cards/mew1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mew2.8x6.png b/src/gfx/cards/mew2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mew3.8x6.png b/src/gfx/cards/mew3.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mewtwo1.8x6.png b/src/gfx/cards/mewtwo1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mewtwo2.8x6.png b/src/gfx/cards/mewtwo2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mewtwo3.8x6.png b/src/gfx/cards/mewtwo3.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/moltres1.8x6.png b/src/gfx/cards/moltres1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/moltres2.8x6.png b/src/gfx/cards/moltres2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mrfuji.8x6.png b/src/gfx/cards/mrfuji.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mrmime.8x6.png b/src/gfx/cards/mrmime.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/muk.8x6.png b/src/gfx/cards/muk.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/mysteriousfossil.8x6.png b/src/gfx/cards/mysteriousfossil.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/nidoking.8x6.png b/src/gfx/cards/nidoking.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/nidoqueen.8x6.png b/src/gfx/cards/nidoqueen.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/nidoranf.8x6.png b/src/gfx/cards/nidoranf.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/nidoranm.8x6.png b/src/gfx/cards/nidoranm.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/nidorina.8x6.png b/src/gfx/cards/nidorina.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/nidorino.8x6.png b/src/gfx/cards/nidorino.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/ninetails1.8x6.png b/src/gfx/cards/ninetails1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/ninetails2.8x6.png b/src/gfx/cards/ninetails2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/oddish.8x6.png b/src/gfx/cards/oddish.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/omanyte.8x6.png b/src/gfx/cards/omanyte.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/omastar.8x6.png b/src/gfx/cards/omastar.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/onix.8x6.png b/src/gfx/cards/onix.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/paras.8x6.png b/src/gfx/cards/paras.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/parasect.8x6.png b/src/gfx/cards/parasect.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/persian.8x6.png b/src/gfx/cards/persian.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pidgeot1.8x6.png b/src/gfx/cards/pidgeot1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pidgeot2.8x6.png b/src/gfx/cards/pidgeot2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pidgeotto.8x6.png b/src/gfx/cards/pidgeotto.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pidgey.8x6.png b/src/gfx/cards/pidgey.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pikachu1.8x6.png b/src/gfx/cards/pikachu1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pikachu2.8x6.png b/src/gfx/cards/pikachu2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pikachu3.8x6.png b/src/gfx/cards/pikachu3.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pikachu4.8x6.png b/src/gfx/cards/pikachu4.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pinsir.8x6.png b/src/gfx/cards/pinsir.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pluspower.8x6.png b/src/gfx/cards/pluspower.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pokeball.8x6.png b/src/gfx/cards/pokeball.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pokedex.8x6.png b/src/gfx/cards/pokedex.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pokemonbreeder.8x6.png b/src/gfx/cards/pokemonbreeder.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pokemoncenter.8x6.png b/src/gfx/cards/pokemoncenter.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pokemonflute.8x6.png b/src/gfx/cards/pokemonflute.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/pokemontrader.8x6.png b/src/gfx/cards/pokemontrader.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/poliwag.8x6.png b/src/gfx/cards/poliwag.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/poliwhirl.8x6.png b/src/gfx/cards/poliwhirl.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/poliwrath.8x6.png b/src/gfx/cards/poliwrath.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/ponyta.8x6.png b/src/gfx/cards/ponyta.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/porygon.8x6.png b/src/gfx/cards/porygon.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/potion.8x6.png b/src/gfx/cards/potion.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/primeape.8x6.png b/src/gfx/cards/primeape.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/professoroak.8x6.png b/src/gfx/cards/professoroak.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/psychicenergy.8x6.png b/src/gfx/cards/psychicenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/psyduck.8x6.png b/src/gfx/cards/psyduck.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/raichu1.8x6.png b/src/gfx/cards/raichu1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/raichu2.8x6.png b/src/gfx/cards/raichu2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/rapidash.8x6.png b/src/gfx/cards/rapidash.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/raticate.8x6.png b/src/gfx/cards/raticate.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/rattata.8x6.png b/src/gfx/cards/rattata.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/recycle.8x6.png b/src/gfx/cards/recycle.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/revive.8x6.png b/src/gfx/cards/revive.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/rhydon.8x6.png b/src/gfx/cards/rhydon.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/rhyhorn.8x6.png b/src/gfx/cards/rhyhorn.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/sandshrew.8x6.png b/src/gfx/cards/sandshrew.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/sandslash.8x6.png b/src/gfx/cards/sandslash.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/scoopup.8x6.png b/src/gfx/cards/scoopup.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/scyther.8x6.png b/src/gfx/cards/scyther.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/seadra.8x6.png b/src/gfx/cards/seadra.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/seaking.8x6.png b/src/gfx/cards/seaking.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/seel.8x6.png b/src/gfx/cards/seel.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/shellder.8x6.png b/src/gfx/cards/shellder.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/slowbro.8x6.png b/src/gfx/cards/slowbro.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/slowpoke1.8x6.png b/src/gfx/cards/slowpoke1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/slowpoke2.8x6.png b/src/gfx/cards/slowpoke2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/snorlax.8x6.png b/src/gfx/cards/snorlax.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/spearow.8x6.png b/src/gfx/cards/spearow.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/squirtle.8x6.png b/src/gfx/cards/squirtle.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/starmie.8x6.png b/src/gfx/cards/starmie.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/staryu.8x6.png b/src/gfx/cards/staryu.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/superenergyremoval.8x6.png b/src/gfx/cards/superenergyremoval.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/superenergyretrieval.8x6.png b/src/gfx/cards/superenergyretrieval.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/superpotion.8x6.png b/src/gfx/cards/superpotion.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/surfingpikachu1.8x6.png b/src/gfx/cards/surfingpikachu1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/surfingpikachu2.8x6.png b/src/gfx/cards/surfingpikachu2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/switch.8x6.png b/src/gfx/cards/switch.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/tangela1.8x6.png b/src/gfx/cards/tangela1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/tangela2.8x6.png b/src/gfx/cards/tangela2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/tauros.8x6.png b/src/gfx/cards/tauros.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/tentacool.8x6.png b/src/gfx/cards/tentacool.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/tentacruel.8x6.png b/src/gfx/cards/tentacruel.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/vaporeon1.8x6.png b/src/gfx/cards/vaporeon1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/vaporeon2.8x6.png b/src/gfx/cards/vaporeon2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/venomoth.8x6.png b/src/gfx/cards/venomoth.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/venonat.8x6.png b/src/gfx/cards/venonat.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/venusaur1.8x6.png b/src/gfx/cards/venusaur1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/venusaur2.8x6.png b/src/gfx/cards/venusaur2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/victreebel.8x6.png b/src/gfx/cards/victreebel.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/vileplume.8x6.png b/src/gfx/cards/vileplume.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/voltorb.8x6.png b/src/gfx/cards/voltorb.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/vulpix.8x6.png b/src/gfx/cards/vulpix.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/wartortle.8x6.png b/src/gfx/cards/wartortle.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/waterenergy.8x6.png b/src/gfx/cards/waterenergy.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/weedle.8x6.png b/src/gfx/cards/weedle.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/weepinbell.8x6.png b/src/gfx/cards/weepinbell.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/weezing.8x6.png b/src/gfx/cards/weezing.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/wigglytuff.8x6.png b/src/gfx/cards/wigglytuff.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/zapdos1.8x6.png b/src/gfx/cards/zapdos1.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/zapdos2.8x6.png b/src/gfx/cards/zapdos2.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/zapdos3.8x6.png b/src/gfx/cards/zapdos3.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/cards/zubat.8x6.png b/src/gfx/cards/zubat.8x6.png old mode 100755 new mode 100644 diff --git a/src/gfx/companies.png b/src/gfx/companies.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/0.png b/src/gfx/duel/0.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/1.png b/src/gfx/duel/1.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/10.png b/src/gfx/duel/10.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/11.png b/src/gfx/duel/11.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/12.png b/src/gfx/duel/12.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/13.png b/src/gfx/duel/13.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/14.png b/src/gfx/duel/14.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/15.png b/src/gfx/duel/15.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/16.png b/src/gfx/duel/16.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/17.png b/src/gfx/duel/17.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/18.png b/src/gfx/duel/18.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/19.png b/src/gfx/duel/19.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/2.png b/src/gfx/duel/2.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/20.png b/src/gfx/duel/20.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/21.png b/src/gfx/duel/21.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/22.png b/src/gfx/duel/22.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/23.png b/src/gfx/duel/23.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/24.png b/src/gfx/duel/24.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/25.png b/src/gfx/duel/25.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/26.png b/src/gfx/duel/26.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/27.png b/src/gfx/duel/27.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/28.png b/src/gfx/duel/28.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/29.png b/src/gfx/duel/29.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/3.png b/src/gfx/duel/3.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/30.png b/src/gfx/duel/30.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/31.png b/src/gfx/duel/31.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/32.png b/src/gfx/duel/32.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/33.png b/src/gfx/duel/33.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/34.png b/src/gfx/duel/34.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/35.png b/src/gfx/duel/35.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/36.png b/src/gfx/duel/36.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/37.png b/src/gfx/duel/37.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/38.png b/src/gfx/duel/38.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/39.png b/src/gfx/duel/39.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/4.png b/src/gfx/duel/4.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/40.png b/src/gfx/duel/40.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/41.png b/src/gfx/duel/41.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/42.png b/src/gfx/duel/42.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/43.png b/src/gfx/duel/43.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/44.png b/src/gfx/duel/44.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/45.png b/src/gfx/duel/45.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/46.png b/src/gfx/duel/46.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/47.png b/src/gfx/duel/47.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/48.png b/src/gfx/duel/48.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/49.png b/src/gfx/duel/49.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/5.png b/src/gfx/duel/5.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/50.png b/src/gfx/duel/50.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/51.t10.png b/src/gfx/duel/51.t10.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/52.png b/src/gfx/duel/52.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/53.png b/src/gfx/duel/53.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/54.png b/src/gfx/duel/54.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/6.png b/src/gfx/duel/6.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/7.png b/src/gfx/duel/7.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/8.png b/src/gfx/duel/8.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/9.png b/src/gfx/duel/9.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/duel1.t5.png b/src/gfx/duel/duel1.t5.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/duel2.png b/src/gfx/duel/duel2.png old mode 100755 new mode 100644 diff --git a/src/gfx/duel/poison.png b/src/gfx/duel/poison.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/aaron.png b/src/gfx/duelists/aaron.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/adam.png b/src/gfx/duelists/adam.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/amanda.png b/src/gfx/duelists/amanda.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/amy.png b/src/gfx/duelists/amy.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/andrew.png b/src/gfx/duelists/andrew.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/brandon.png b/src/gfx/duelists/brandon.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/brittany.png b/src/gfx/duelists/brittany.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/chris.png b/src/gfx/duelists/chris.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/courtney.png b/src/gfx/duelists/courtney.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/daniel.png b/src/gfx/duelists/daniel.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/david.png b/src/gfx/duelists/david.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/erik.png b/src/gfx/duelists/erik.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/gene.png b/src/gfx/duelists/gene.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/heather.png b/src/gfx/duelists/heather.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/imakuni.png b/src/gfx/duelists/imakuni.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/isaac.png b/src/gfx/duelists/isaac.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/jack.png b/src/gfx/duelists/jack.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/jennifer.png b/src/gfx/duelists/jennifer.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/jessica.png b/src/gfx/duelists/jessica.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/john.png b/src/gfx/duelists/john.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/jonathan.png b/src/gfx/duelists/jonathan.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/joseph.png b/src/gfx/duelists/joseph.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/joshua.png b/src/gfx/duelists/joshua.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/ken.png b/src/gfx/duelists/ken.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/kristin.png b/src/gfx/duelists/kristin.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/matthew.png b/src/gfx/duelists/matthew.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/michael.png b/src/gfx/duelists/michael.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/mitch.png b/src/gfx/duelists/mitch.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/murray.png b/src/gfx/duelists/murray.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/nicholas.png b/src/gfx/duelists/nicholas.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/nikki.png b/src/gfx/duelists/nikki.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/player.png b/src/gfx/duelists/player.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/rick.png b/src/gfx/duelists/rick.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/robert.png b/src/gfx/duelists/robert.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/rod.png b/src/gfx/duelists/rod.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/ronald.png b/src/gfx/duelists/ronald.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/ryan.png b/src/gfx/duelists/ryan.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/sam.png b/src/gfx/duelists/sam.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/sara.png b/src/gfx/duelists/sara.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/stephanie.png b/src/gfx/duelists/stephanie.png old mode 100755 new mode 100644 diff --git a/src/gfx/duelists/steve.png b/src/gfx/duelists/steve.png old mode 100755 new mode 100644 diff --git a/src/gfx/fonts.t3.png b/src/gfx/fonts.t3.png old mode 100755 new mode 100644 diff --git a/src/gfx/medals.png b/src/gfx/medals.png old mode 100755 new mode 100644 diff --git a/src/gfx/overworld_map.t15.png b/src/gfx/overworld_map.t15.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/challengehall.t3.png b/src/gfx/tilesets/challengehall.t3.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/clubentrance.t15.png b/src/gfx/tilesets/clubentrance.t15.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/clublobby.t8.png b/src/gfx/tilesets/clublobby.t8.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/fightingclub.t13.png b/src/gfx/tilesets/fightingclub.t13.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/fireclub.t9.png b/src/gfx/tilesets/fireclub.t9.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/grassclub.t9.png b/src/gfx/tilesets/grassclub.t9.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/hallofhonor.t7.png b/src/gfx/tilesets/hallofhonor.t7.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/ishihara.t3.png b/src/gfx/tilesets/ishihara.t3.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/lightningclub.t13.png b/src/gfx/tilesets/lightningclub.t13.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/masonlaboratory.t9.png b/src/gfx/tilesets/masonlaboratory.t9.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/pokemondome.t1.png b/src/gfx/tilesets/pokemondome.t1.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/pokemondomeentrance.t2.png b/src/gfx/tilesets/pokemondomeentrance.t2.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/psychicclub.t6.png b/src/gfx/tilesets/psychicclub.t6.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/rockclub.t4.png b/src/gfx/tilesets/rockclub.t4.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/scienceclub.t14.png b/src/gfx/tilesets/scienceclub.t14.png old mode 100755 new mode 100644 diff --git a/src/gfx/tilesets/waterclub.t15.png b/src/gfx/tilesets/waterclub.t15.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/press_start.png b/src/gfx/titlescreen/press_start.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/titlescreen1.t15.png b/src/gfx/titlescreen/titlescreen1.t15.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/titlescreen2.t15.png b/src/gfx/titlescreen/titlescreen2.t15.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/titlescreen3.t12.png b/src/gfx/titlescreen/titlescreen3.t12.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/titlescreen4.t5.png b/src/gfx/titlescreen/titlescreen4.t5.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/titlescreen5.t4.png b/src/gfx/titlescreen/titlescreen5.t4.png old mode 100755 new mode 100644 diff --git a/src/gfx/titlescreen/titlescreen6.t12.png b/src/gfx/titlescreen/titlescreen6.t12.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/1.png b/src/gfx/unnamed/1.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/10.png b/src/gfx/unnamed/10.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/11.png b/src/gfx/unnamed/11.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/2.png b/src/gfx/unnamed/2.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/3.png b/src/gfx/unnamed/3.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/4.png b/src/gfx/unnamed/4.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/5.png b/src/gfx/unnamed/5.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/6.png b/src/gfx/unnamed/6.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/7.png b/src/gfx/unnamed/7.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/8.png b/src/gfx/unnamed/8.png old mode 100755 new mode 100644 diff --git a/src/gfx/unnamed/9.png b/src/gfx/unnamed/9.png old mode 100755 new mode 100644 diff --git a/src/gfx/vwf.png b/src/gfx/vwf.png old mode 100755 new mode 100644 diff --git a/src/macros.asm b/src/macros.asm old mode 100755 new mode 100644 diff --git a/src/main.asm b/src/main.asm old mode 100755 new mode 100644 diff --git a/src/sram.asm b/src/sram.asm old mode 100755 new mode 100644 diff --git a/src/text.asm b/src/text.asm old mode 100755 new mode 100644 diff --git a/src/text/text1.asm b/src/text/text1.asm old mode 100755 new mode 100644 diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm old mode 100755 new mode 100644 diff --git a/src/wram.asm b/src/wram.asm old mode 100755 new mode 100644 -- cgit v1.2.3 From c58266dc318f79bf5479868d7b2b6c067365fee0 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 17 Feb 2018 18:35:14 +0100 Subject: Document some gfx loading functions --- src/engine/home.asm | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/engine/home.asm b/src/engine/home.asm index 78e32ae..35e4bd5 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1064,6 +1064,8 @@ JumpToHblankCopyDataHLtoDE: ; 0709 (0:0709) jp HblankCopyDataHLtoDE ; 0x70c +; copy c bytes of data from hl to de, b times. +; used to copy gfx data. CopyGfxData: ; 070c (0:070c) ld a, [wLCDC] rla @@ -1147,7 +1149,7 @@ BankpushHome: ; 0745 (0:0745) and $3 ld b, a res 7, d - set 6, d + set 6, d ; $4000 ≤ de ≤ $7fff ld l, e ld h, d pop de @@ -4299,7 +4301,7 @@ Func_20b0: ; 20b0 (0:20b0) .asm_20bd ld de, vTiles1 + $500 ld b, $30 - jr asm_2121 + jr CopyFontsOrDuelGraphicsTiles Func_20c4: ; 20c4 (0:20c4) ld hl, $3028 @@ -4310,7 +4312,7 @@ Func_20c4: ; 20c4 (0:20c4) .asm_20d1 ld de, vTiles1 + $540 ld b, $c - jr asm_2121 + jr CopyFontsOrDuelGraphicsTiles Func_20d8: ; 20d8 (0:20d8) ld b, $10 @@ -4326,13 +4328,13 @@ asm_20de ld hl, $3af8 .asm_20eb ld de, vTiles1 + $500 - jr asm_2121 + jr CopyFontsOrDuelGraphicsTiles Func_20f0: ; 20f0 (0:20f0) ld hl, $4008 ld de, vTiles1 + $200 ld b, $d - call asm_2121 + call CopyFontsOrDuelGraphicsTiles ld hl, $3528 ld a, [wConsole] cp CONSOLE_CGB @@ -4341,20 +4343,23 @@ Func_20f0: ; 20f0 (0:20f0) .asm_2108 ld de, vTiles1 + $500 ld b, $30 - jr asm_2121 + jr CopyFontsOrDuelGraphicsTiles Func_210f: ; 210f (0:210f) ld hl, $40d8 ld de, vTiles2 + $300 ld b, $8 - jr asm_2121 + jr CopyFontsOrDuelGraphicsTiles Func_2119: ; 2119 (0:2119) ld hl, DuelGraphics - $4000 ld de, vTiles2 ; destination ld b, $38 ; number of tiles -asm_2121 - ld a, BANK(DuelGraphics) +; fallthrough + +; copy b tiles from BANK(Fonts):hl to de +CopyFontsOrDuelGraphicsTiles: + ld a, BANK(Fonts); BANK(DuelGraphics); BANK(VWF) call BankpushHome ld c, TILE_SIZE call CopyGfxData @@ -4374,7 +4379,7 @@ Func_2167: ; 2167 (0:2167) add hl, de ld de, $8a00 ld b, $28 - call asm_2121 + call CopyFontsOrDuelGraphicsTiles ld a, $a0 ld hl, $010a ld bc, $0a04 @@ -6141,10 +6146,13 @@ GetCardPointer: ; 2f7c (0:2f7c) pop de ret +; input: hl = card_gfx_index +; card_gfx_index = (CardGfx - CardGraphics) / 8 ; using absolute ROM addresses LoadCardGfx: ; 2fa0 (0:2fa0) ldh a, [hBankROM] push af push hl + ; first, get the bank with the card gfx is at srl h srl h srl h @@ -6152,11 +6160,12 @@ LoadCardGfx: ; 2fa0 (0:2fa0) add h call BankswitchHome pop hl + ; once we have the bank, get the pointer: multiply by 8 and discard the bank offset add hl, hl add hl, hl add hl, hl res 7, h - set 6, h + set 6, h ; $4000 ≤ de ≤ $7fff call CopyGfxData ld b, CGB_PAL_SIZE ld de, $ce23 @@ -6170,8 +6179,9 @@ LoadCardGfx: ; 2fa0 (0:2fa0) call BankswitchHome ret -Func_2fcb: ; 2fcb (0:2fcb) - ld a, $1d +; identical to CopyFontsOrDuelGraphicsTiles +CopyFontsOrDuelGraphicsTiles2: ; 2fcb (0:2fcb) + ld a, BANK(Fonts); BANK(DuelGraphics); BANK(VWF) call BankpushHome ld c, TILE_SIZE call CopyGfxData -- cgit v1.2.3 From ccb7c0c359dd1aa4475c9f51b37f7b5faabc1e34 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 17 Feb 2018 19:11:28 +0100 Subject: Create sprite_buffer_struct --- src/constants.asm | 19 ++++++++++--------- src/constants/gfx_constants.asm | 17 +++++++++++++++++ src/constants/misc_constants.asm | 14 -------------- src/engine/bank3.asm | 26 +++++++++++++------------- src/engine/bank4.asm | 28 ++++++++++++++-------------- src/engine/home.asm | 18 +++++++++--------- src/macros/wram.asm | 19 +++++++++++++++++++ src/wram.asm | 30 ++++++++++++++++++++++++------ 8 files changed, 106 insertions(+), 65 deletions(-) create mode 100644 src/constants/gfx_constants.asm diff --git a/src/constants.asm b/src/constants.asm index 392c8ca..90c6a06 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -1,13 +1,14 @@ -INCLUDE "constants/map_constants.asm" -INCLUDE "constants/music_constants.asm" -INCLUDE "constants/text_constants.asm" -INCLUDE "constants/duel_constants.asm" -INCLUDE "constants/npc_constants.asm" +INCLUDE "constants/booster_constants.asm" INCLUDE "constants/card_constants.asm" -INCLUDE "constants/deck_constants.asm" INCLUDE "constants/card_data_constants.asm" -INCLUDE "constants/misc_constants.asm" +INCLUDE "constants/deck_constants.asm" +INCLUDE "constants/duel_constants.asm" +INCLUDE "constants/gfx_constants.asm" INCLUDE "constants/hardware_constants.asm" -INCLUDE "constants/sgb_constants.asm" +INCLUDE "constants/map_constants.asm" +INCLUDE "constants/misc_constants.asm" +INCLUDE "constants/music_constants.asm" +INCLUDE "constants/npc_constants.asm" INCLUDE "constants/overworld_script_constants.asm" -INCLUDE "constants/booster_constants.asm" +INCLUDE "constants/sgb_constants.asm" +INCLUDE "constants/text_constants.asm" diff --git a/src/constants/gfx_constants.asm b/src/constants/gfx_constants.asm new file mode 100644 index 0000000..fbcbdda --- /dev/null +++ b/src/constants/gfx_constants.asm @@ -0,0 +1,17 @@ +; screen size +SCREEN_WIDTH EQU 20 ; tiles +SCREEN_HEIGHT EQU 18 ; tiles + +; background map size +BG_MAP_WIDTH EQU 32 ; tiles +BG_MAP_HEIGHT EQU 32 ; tiles + +; cgb palette size +CGB_PAL_SIZE EQU 8 ; bytes + +; tile size +TILE_SIZE EQU 16 ; bytes + +; wram sprite buffer +SPRITE_BUFFER_CAPACITY EQU 16 ; sprites +SPRITE_DATA_LENGTH EQU 16 ; bytes of data per sprite diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index 50bb03c..11693b4 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -1,17 +1,3 @@ -; screen size -SCREEN_WIDTH EQU 20 ; tiles -SCREEN_HEIGHT EQU 18 ; tiles - -; background map size -BG_MAP_WIDTH EQU 32 ; tiles -BG_MAP_HEIGHT EQU 32 ; tiles - -; cgb palette size -CGB_PAL_SIZE EQU 8 ; bytes - -; tile size -TILE_SIZE EQU 16 ; bytes - ; console types (for wConsole) CONSOLE_DMG EQU $00 CONSOLE_SGB EQU $01 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 68fb245..b7038eb 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -580,7 +580,7 @@ Func_c4b9: ; c4b9 (3:44b9) ld [wd337], a ld a, $0 farcall Func_1299f - ld a, [wd4cf] + ld a, [wWhichSprite] ld [wd336], a ld b, $2 ld a, [wCurMap] @@ -607,7 +607,7 @@ Func_c4b9: ; c4b9 (3:44b9) Func_c510: ; c510 (3:4510) ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wd335] bit 4, a ret nz @@ -630,7 +630,7 @@ Func_c510: ; c510 (3:4510) Func_c53d: ; c53d (3:453d) ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wd335] bit 0, a call nz, Func_c687 @@ -641,7 +641,7 @@ Func_c53d: ; c53d (3:453d) Func_c554: ; c554 (3:4554) ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wCurMap] cp OVERWORLD_MAP jr nz, .asm_c566 @@ -657,7 +657,7 @@ Func_c554: ; c554 (3:4554) ld a, [wSCYBuffer] ld e, a ld c, $2 - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty ld a, [wd332] sub d add $8 @@ -681,7 +681,7 @@ Func_c58b: ; c58b (3:458b) and $10 push af ld c, $f - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty pop af ld a, [hl] jr z, .asm_c5a7 @@ -740,7 +740,7 @@ Unknown_c5e5: ; c5e5 (3:45e5) Func_c5e9: ; c5e9 (3:45e9) push bc ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wd337] ld b, a ld a, [wd334] @@ -759,7 +759,7 @@ Func_c5fe: ; c5fe (3:45fe) StartScriptedMovement: ; c607 (3:4607) push bc ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [$d339] call FindScriptedMovementWithOffset call AttemptScriptedMovement @@ -789,10 +789,10 @@ AttemptScriptedMovement: ; c619 (3:4619) ld a, $10 ld [wd338], a ld c, $f - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty set 2, [hl] ld c, $e - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty ld a, $4 ld [hl], a .quit_movement @@ -917,12 +917,12 @@ Func_c6dc: ; c6dc (3:46dc) Func_c6f7: ; c6f7 (3:46f7) ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld c, $f - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty res 2, [hl] ld c, $e - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty ld a, $ff ld [hl], a ret diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 757c670..b2facda 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -345,7 +345,7 @@ Func_10e28: ; 10e28 (4:4e28) Func_10e55: ; 10e55 (4:4e55) ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wd33e] or a jr nz, .asm_10e65 @@ -496,7 +496,7 @@ Func_10fbc: ; 10fbc (4:4fbc) ld a, $25 farcall Func_1299f ld c, $2 - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty ld a, $80 ld [hli], a ld a, $10 @@ -518,7 +518,7 @@ Func_10fde: ; 10fde (4:4fde) ld [wd33e], a ld a, $25 call Func_1299f - ld a, [wd4cf] + ld a, [wWhichSprite] ld [wd33b], a ld b, $35 ld a, [wConsole] @@ -534,14 +534,14 @@ Func_10fde: ; 10fde (4:4fde) or a jr nz, .asm_11015 ld c, $f - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty set 7, [hl] .asm_11015 ret Func_11016: ; 11016 (4:5016) ld a, [wd33b] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wd33c] inc a call Func_12ab5 @@ -551,9 +551,9 @@ Func_11024: ; 11024 (4:5024) ld a, $57 call PlaySFX ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld c, $f - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty set 2, [hl] ld hl, Unknown_1229f ld a, [wd33d] @@ -583,7 +583,7 @@ Func_11024: ; 11024 (4:5024) Func_11060: ; 11060 (4:5060) ld a, [wd336] - ld [wd4cf], a + ld [wWhichSprite], a ld a, [wd341] or a jp nz, Func_11184 @@ -626,7 +626,7 @@ Func_110a6: ; 110a6 (4:50a6) push hl push bc ld c, $2 - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty pop bc ld a, b sub [hl] @@ -766,7 +766,7 @@ Func_11184: ; 11184 (4:5184) ld a, [wd348] ld e, a ld c, $2 - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty ld a, [wd343] add d ld d, a @@ -1192,7 +1192,7 @@ Func_1299f: ; 1299f (4:699f) call Func_12c05 ld [wd5d3], a xor a - ld [wd4cf], a + ld [wWhichSprite], a call Func_3db7 ld bc, $0010 .asm_129bb @@ -1200,9 +1200,9 @@ Func_1299f: ; 1299f (4:699f) or a jr z, .asm_129cf add hl, bc - ld a, [wd4cf] + ld a, [wWhichSprite] inc a - ld [wd4cf], a + ld [wWhichSprite], a cp $10 jr nz, .asm_129bb rst $38 @@ -1254,7 +1254,7 @@ Func_12ab5: ; 12ab5 (4:6ab5) push hl push af ld c, $5 - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty pop af cp [hl] pop hl diff --git a/src/engine/home.asm b/src/engine/home.asm index 35e4bd5..d11c4c0 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -8038,18 +8038,18 @@ Func_3d72: ; 3d72 (0:3d72) Func_3db7: ; 3db7 (0:3db7) push bc ld c, $0 - call ModifyUnknownOAMBufferProperty + call GetSpriteBufferProperty pop bc ret -; this needs to be determined after we learn more about the buffer. -ModifyUnknownOAMBufferProperty: ; 3dbf (0:3dbf) - ld a, [wd4cf] - cp $10 - jr c, .asm_3dc9 +; read property (byte) c from a sprite in wSpriteBuffer identified by wWhichSprite +GetSpriteBufferProperty: ; 3dbf (0:3dbf) + ld a, [wWhichSprite] + cp SPRITE_BUFFER_CAPACITY + jr c, .got_sprite rst $38 - ld a, $f -.asm_3dc9 + ld a, SPRITE_BUFFER_CAPACITY - 1 ; default to last sprite +.got_sprite push bc swap a push af @@ -8059,7 +8059,7 @@ ModifyUnknownOAMBufferProperty: ; 3dbf (0:3dbf) and $f0 or c ld c, a - ld hl, wOAMBuffer + ld hl, wSpriteBuffer add hl, bc pop bc ret diff --git a/src/macros/wram.asm b/src/macros/wram.asm index cea20fa..8b3f306 100644 --- a/src/macros/wram.asm +++ b/src/macros/wram.asm @@ -40,3 +40,22 @@ move_data_struct: MACRO \1Unknown1:: db \1Animation:: db ENDM + +sprite_buffer_struct: MACRO +\1Property1:: ds 1 +\1Property2:: ds 1 +\1Property3:: ds 1 +\1Property4:: ds 1 +\1Property5:: ds 1 +\1Property6:: ds 1 +\1Property7:: ds 1 +\1Property8:: ds 1 +\1Property9:: ds 1 +\1Property10:: ds 1 +\1Property11:: ds 1 +\1Property12:: ds 1 +\1Property13:: ds 1 +\1Property14:: ds 1 +\1Property15:: ds 1 +\1Property16:: ds 1 +ENDM \ No newline at end of file diff --git a/src/wram.asm b/src/wram.asm index 0a92ff2..70ac991 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1174,13 +1174,31 @@ wd4ca:: ; d4ca wd4cb:: ; d4cb ds $4 -; some sort of control bit for the OAMBuffer -wd4cf:: ; d4cf - ds $1 -; this might be more of an animation buffer as I can't find any properties like which tile sprites go where. -wOAMBuffer:: ; d4d0 - ds $103 +; used as an index to manipulate a sprite from wSpriteBuffer +wWhichSprite:: ; d4cf + ds $1 + +; 16-byte data for up to 16 sprites +wSpriteBuffer:: ; d4d0 + sprite_buffer_struct wSprite1 + sprite_buffer_struct wSprite2 + sprite_buffer_struct wSprite3 + sprite_buffer_struct wSprite4 + sprite_buffer_struct wSprite5 + sprite_buffer_struct wSprite6 + sprite_buffer_struct wSprite7 + sprite_buffer_struct wSprite8 + sprite_buffer_struct wSprite9 + sprite_buffer_struct wSprite10 + sprite_buffer_struct wSprite11 + sprite_buffer_struct wSprite12 + sprite_buffer_struct wSprite13 + sprite_buffer_struct wSprite14 + sprite_buffer_struct wSprite15 + sprite_buffer_struct wSprite16 + + ds $3 wd5d3:: ; d5d3 ds $4 -- cgit v1.2.3 From 1e411d212d8bb47ee134afc872be9a9303c52820 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 17 Feb 2018 19:55:51 +0100 Subject: SPRITE_ANIM_ constants (for the sprite anim buffer --- src/constants/gfx_constants.asm | 24 +++++++++++++++++++++--- src/constants/misc_constants.asm | 2 +- src/engine/bank3.asm | 12 ++++++------ src/engine/bank4.asm | 14 +++++++------- src/engine/home.asm | 10 +++++----- src/macros/wram.asm | 17 +++++++++-------- src/wram.asm | 36 ++++++++++++++++++------------------ 7 files changed, 67 insertions(+), 48 deletions(-) diff --git a/src/constants/gfx_constants.asm b/src/constants/gfx_constants.asm index fbcbdda..1cf3770 100644 --- a/src/constants/gfx_constants.asm +++ b/src/constants/gfx_constants.asm @@ -12,6 +12,24 @@ CGB_PAL_SIZE EQU 8 ; bytes ; tile size TILE_SIZE EQU 16 ; bytes -; wram sprite buffer -SPRITE_BUFFER_CAPACITY EQU 16 ; sprites -SPRITE_DATA_LENGTH EQU 16 ; bytes of data per sprite +; wSpriteAnimBuffer +SPRITE_ANIM_BUFFER_CAPACITY EQU 16 ; sprites + +; sprite_anim_struct constants + const_def + const SPRITE_ANIM_PROPERTY_1 + const SPRITE_ANIM_PROPERTY_2 + const SPRITE_ANIM_COORD_X + const SPRITE_ANIM_COORD_Y + const SPRITE_ANIM_TILE_ID + const SPRITE_ANIM_PROPERTY_6 + const SPRITE_ANIM_PROPERTY_7 + const SPRITE_ANIM_PROPERTY_8 + const SPRITE_ANIM_PROPERTY_9 + const SPRITE_ANIM_PROPERTY_10 + const SPRITE_ANIM_PROPERTY_11 + const SPRITE_ANIM_PROPERTY_12 + const SPRITE_ANIM_PROPERTY_13 + const SPRITE_ANIM_PROPERTY_14 + const SPRITE_ANIM_MOVEMENT_COUNTER + const SPRITE_ANIM_PROPERTY_16 diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index 11693b4..1cfffb4 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -1,4 +1,4 @@ -; console types (for wConsole) +; console types (wConsole) CONSOLE_DMG EQU $00 CONSOLE_SGB EQU $01 CONSOLE_CGB EQU $02 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index b7038eb..2859382 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -656,7 +656,7 @@ Func_c554: ; c554 (3:4554) ld d, a ld a, [wSCYBuffer] ld e, a - ld c, $2 + ld c, SPRITE_ANIM_COORD_X call GetSpriteBufferProperty ld a, [wd332] sub d @@ -680,7 +680,7 @@ Func_c58b: ; c58b (3:458b) call GetFloorObjectFromPos and $10 push af - ld c, $f + ld c, SPRITE_ANIM_PROPERTY_16 call GetSpriteBufferProperty pop af ld a, [hl] @@ -788,10 +788,10 @@ AttemptScriptedMovement: ; c619 (3:4619) ld [wd335], a ld a, $10 ld [wd338], a - ld c, $f + ld c, SPRITE_ANIM_PROPERTY_16 call GetSpriteBufferProperty set 2, [hl] - ld c, $e + ld c, SPRITE_ANIM_MOVEMENT_COUNTER call GetSpriteBufferProperty ld a, $4 ld [hl], a @@ -918,10 +918,10 @@ Func_c6dc: ; c6dc (3:46dc) Func_c6f7: ; c6f7 (3:46f7) ld a, [wd336] ld [wWhichSprite], a - ld c, $f + ld c, SPRITE_ANIM_PROPERTY_16 call GetSpriteBufferProperty res 2, [hl] - ld c, $e + ld c, SPRITE_ANIM_MOVEMENT_COUNTER call GetSpriteBufferProperty ld a, $ff ld [hl], a diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index b2facda..9d2e86a 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -495,7 +495,7 @@ INCLUDE "data/overworld_indexes.asm" Func_10fbc: ; 10fbc (4:4fbc) ld a, $25 farcall Func_1299f - ld c, $2 + ld c, SPRITE_ANIM_COORD_X call GetSpriteBufferProperty ld a, $80 ld [hli], a @@ -503,7 +503,7 @@ Func_10fbc: ; 10fbc (4:4fbc) ld [hl], a ld b, $34 ld a, [wConsole] - cp $2 + cp CONSOLE_CGB jr nz, .asm_10fd8 ld b, $37 .asm_10fd8 @@ -533,7 +533,7 @@ Func_10fde: ; 10fde (4:4fde) farcall CheckIfEventFlagSet or a jr nz, .asm_11015 - ld c, $f + ld c, SPRITE_ANIM_PROPERTY_16 call GetSpriteBufferProperty set 7, [hl] .asm_11015 @@ -552,7 +552,7 @@ Func_11024: ; 11024 (4:5024) call PlaySFX ld a, [wd336] ld [wWhichSprite], a - ld c, $f + ld c, SPRITE_ANIM_PROPERTY_16 call GetSpriteBufferProperty set 2, [hl] ld hl, Unknown_1229f @@ -625,7 +625,7 @@ Func_11060: ; 11060 (4:5060) Func_110a6: ; 110a6 (4:50a6) push hl push bc - ld c, $2 + ld c, SPRITE_ANIM_COORD_X call GetSpriteBufferProperty pop bc ld a, b @@ -765,7 +765,7 @@ Func_11184: ; 11184 (4:5184) ld d, a ld a, [wd348] ld e, a - ld c, $2 + ld c, SPRITE_ANIM_COORD_X call GetSpriteBufferProperty ld a, [wd343] add d @@ -1253,7 +1253,7 @@ Func_12a21: ; 12a21 (4:6a21) Func_12ab5: ; 12ab5 (4:6ab5) push hl push af - ld c, $5 + ld c, SPRITE_ANIM_PROPERTY_6 call GetSpriteBufferProperty pop af cp [hl] diff --git a/src/engine/home.asm b/src/engine/home.asm index d11c4c0..c1c4e07 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -8037,18 +8037,18 @@ Func_3d72: ; 3d72 (0:3d72) Func_3db7: ; 3db7 (0:3db7) push bc - ld c, $0 + ld c, SPRITE_ANIM_PROPERTY_1 call GetSpriteBufferProperty pop bc ret -; read property (byte) c from a sprite in wSpriteBuffer identified by wWhichSprite +; read property (byte) c from a sprite in wSpriteAnimBuffer identified by wWhichSprite GetSpriteBufferProperty: ; 3dbf (0:3dbf) ld a, [wWhichSprite] - cp SPRITE_BUFFER_CAPACITY + cp SPRITE_ANIM_BUFFER_CAPACITY jr c, .got_sprite rst $38 - ld a, SPRITE_BUFFER_CAPACITY - 1 ; default to last sprite + ld a, SPRITE_ANIM_BUFFER_CAPACITY - 1 ; default to last sprite .got_sprite push bc swap a @@ -8059,7 +8059,7 @@ GetSpriteBufferProperty: ; 3dbf (0:3dbf) and $f0 or c ld c, a - ld hl, wSpriteBuffer + ld hl, wSpriteAnimBuffer add hl, bc pop bc ret diff --git a/src/macros/wram.asm b/src/macros/wram.asm index 8b3f306..55d32ad 100644 --- a/src/macros/wram.asm +++ b/src/macros/wram.asm @@ -28,9 +28,9 @@ card_data_struct: MACRO ENDM move_data_struct: MACRO -\1Energy:: ds $4 +\1Energy:: ds NUM_TYPES / 2 \1Name:: dw -\1Description:: ds $4 +\1Description:: ds 4 \1Damage:: db \1Category:: db \1EffectCommands:: dw @@ -41,12 +41,13 @@ move_data_struct: MACRO \1Animation:: db ENDM -sprite_buffer_struct: MACRO +; TODO: Figure out what the rest are for +sprite_anim_struct: MACRO \1Property1:: ds 1 -\1Property2:: ds 1 -\1Property3:: ds 1 -\1Property4:: ds 1 -\1Property5:: ds 1 +\1Property2:: ds 1 ; movement handling / palette +\1CoordX:: db +\1CoordY:: db +\1TileID:: db \1Property6:: ds 1 \1Property7:: ds 1 \1Property8:: ds 1 @@ -56,6 +57,6 @@ sprite_buffer_struct: MACRO \1Property12:: ds 1 \1Property13:: ds 1 \1Property14:: ds 1 -\1Property15:: ds 1 +\1MovementCounter:: ds 1 \1Property16:: ds 1 ENDM \ No newline at end of file diff --git a/src/wram.asm b/src/wram.asm index 70ac991..a8f1e10 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1175,28 +1175,28 @@ wd4cb:: ; d4cb ds $4 -; used as an index to manipulate a sprite from wSpriteBuffer +; used as an index to manipulate a sprite from wSpriteAnimBuffer wWhichSprite:: ; d4cf ds $1 ; 16-byte data for up to 16 sprites -wSpriteBuffer:: ; d4d0 - sprite_buffer_struct wSprite1 - sprite_buffer_struct wSprite2 - sprite_buffer_struct wSprite3 - sprite_buffer_struct wSprite4 - sprite_buffer_struct wSprite5 - sprite_buffer_struct wSprite6 - sprite_buffer_struct wSprite7 - sprite_buffer_struct wSprite8 - sprite_buffer_struct wSprite9 - sprite_buffer_struct wSprite10 - sprite_buffer_struct wSprite11 - sprite_buffer_struct wSprite12 - sprite_buffer_struct wSprite13 - sprite_buffer_struct wSprite14 - sprite_buffer_struct wSprite15 - sprite_buffer_struct wSprite16 +wSpriteAnimBuffer:: ; d4d0 + sprite_anim_struct wSprite1 + sprite_anim_struct wSprite2 + sprite_anim_struct wSprite3 + sprite_anim_struct wSprite4 + sprite_anim_struct wSprite5 + sprite_anim_struct wSprite6 + sprite_anim_struct wSprite7 + sprite_anim_struct wSprite8 + sprite_anim_struct wSprite9 + sprite_anim_struct wSprite10 + sprite_anim_struct wSprite11 + sprite_anim_struct wSprite12 + sprite_anim_struct wSprite13 + sprite_anim_struct wSprite14 + sprite_anim_struct wSprite15 + sprite_anim_struct wSprite16 ds $3 -- cgit v1.2.3 From f5999929fcc9c522c01af57d816f5beb7def37e9 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 17 Feb 2018 20:00:40 +0100 Subject: debug_ret EQUS rst 38 --- src/engine/bank4.asm | 6 +++--- src/engine/bank7.asm | 2 +- src/engine/booster_packs.asm | 4 ++-- src/engine/home.asm | 6 +++--- src/macros/code.asm | 4 ++++ 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 9d2e86a..440b216 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -262,7 +262,7 @@ Func_10a70: ; 10a70 (4:4a70) inc hl dec c jr nz, .asm_10a87 - rst $38 + debug_ret jr .asm_10a97 .asm_10a93 @@ -1205,7 +1205,7 @@ Func_1299f: ; 1299f (4:699f) ld [wWhichSprite], a cp $10 jr nz, .asm_129bb - rst $38 + debug_ret scf jr .asm_129d6 .asm_129cf @@ -1467,7 +1467,7 @@ Func_12c05: ; 12c05 (4:6c05) or a jr .asm_12c4b .asm_12c48 - rst $38 + debug_ret xor a scf .asm_12c4b diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index 9d2d603..a049d7c 100644 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -354,7 +354,7 @@ Func_1c83d: ; 1c83d (7:483d) inc hl dec c jr nz, .asm_1c845 - rst $38 + debug_ret jr .asm_1c855 .asm_1c853 diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index e955ed0..09c7dbb 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -45,7 +45,7 @@ GenerateBoosterNonEnergies: ; 1e1df (7:61df) or a ret .no_valid_cards - rst $38 + debug_ret scf ret @@ -264,7 +264,7 @@ FindBoosterCard: ; 1e31d (7:631d) or a ret .no_valid_card_found - rst $38 + debug_ret scf ret diff --git a/src/engine/home.asm b/src/engine/home.asm index c1c4e07..19fc49d 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2612,7 +2612,7 @@ CopyDeckData: ; 1072 (0:1072) ld a, [hl] or a ret nz - rst $38 + debug_ret scf ret ; 0x10aa @@ -7547,7 +7547,7 @@ Func_39ad: ; 39ad (0:39ad) push bc cp $8 jr c, .asm_39b4 - rst $38 + debug_ret xor a .asm_39b4 add a @@ -8047,7 +8047,7 @@ GetSpriteBufferProperty: ; 3dbf (0:3dbf) ld a, [wWhichSprite] cp SPRITE_ANIM_BUFFER_CAPACITY jr c, .got_sprite - rst $38 + debug_ret ld a, SPRITE_ANIM_BUFFER_CAPACITY - 1 ; default to last sprite .got_sprite push bc diff --git a/src/macros/code.asm b/src/macros/code.asm index 47b698f..24c3bf1 100644 --- a/src/macros/code.asm +++ b/src/macros/code.asm @@ -42,6 +42,10 @@ farcallx: MACRO dw \2 ENDM +; the rst $38 handler is a single ret +; probably used for testing purposes during development +debug_ret EQUS "rst $38" + emptybank: MACRO rept $4000 db $ff -- cgit v1.2.3 From a1a2541c9895539082c2d42a25aca7e77b1bd953 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 17 Feb 2018 20:03:02 +0100 Subject: GetSpriteBufferProperty -> GetSpriteAnimBufferProperty --- src/engine/bank3.asm | 12 ++++++------ src/engine/bank4.asm | 12 ++++++------ src/engine/home.asm | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 2859382..a97a835 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -657,7 +657,7 @@ Func_c554: ; c554 (3:4554) ld a, [wSCYBuffer] ld e, a ld c, SPRITE_ANIM_COORD_X - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty ld a, [wd332] sub d add $8 @@ -681,7 +681,7 @@ Func_c58b: ; c58b (3:458b) and $10 push af ld c, SPRITE_ANIM_PROPERTY_16 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty pop af ld a, [hl] jr z, .asm_c5a7 @@ -789,10 +789,10 @@ AttemptScriptedMovement: ; c619 (3:4619) ld a, $10 ld [wd338], a ld c, SPRITE_ANIM_PROPERTY_16 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty set 2, [hl] ld c, SPRITE_ANIM_MOVEMENT_COUNTER - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty ld a, $4 ld [hl], a .quit_movement @@ -919,10 +919,10 @@ Func_c6f7: ; c6f7 (3:46f7) ld a, [wd336] ld [wWhichSprite], a ld c, SPRITE_ANIM_PROPERTY_16 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty res 2, [hl] ld c, SPRITE_ANIM_MOVEMENT_COUNTER - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty ld a, $ff ld [hl], a ret diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 440b216..42cfdac 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -496,7 +496,7 @@ Func_10fbc: ; 10fbc (4:4fbc) ld a, $25 farcall Func_1299f ld c, SPRITE_ANIM_COORD_X - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty ld a, $80 ld [hli], a ld a, $10 @@ -534,7 +534,7 @@ Func_10fde: ; 10fde (4:4fde) or a jr nz, .asm_11015 ld c, SPRITE_ANIM_PROPERTY_16 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty set 7, [hl] .asm_11015 ret @@ -553,7 +553,7 @@ Func_11024: ; 11024 (4:5024) ld a, [wd336] ld [wWhichSprite], a ld c, SPRITE_ANIM_PROPERTY_16 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty set 2, [hl] ld hl, Unknown_1229f ld a, [wd33d] @@ -626,7 +626,7 @@ Func_110a6: ; 110a6 (4:50a6) push hl push bc ld c, SPRITE_ANIM_COORD_X - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty pop bc ld a, b sub [hl] @@ -766,7 +766,7 @@ Func_11184: ; 11184 (4:5184) ld a, [wd348] ld e, a ld c, SPRITE_ANIM_COORD_X - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty ld a, [wd343] add d ld d, a @@ -1254,7 +1254,7 @@ Func_12ab5: ; 12ab5 (4:6ab5) push hl push af ld c, SPRITE_ANIM_PROPERTY_6 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty pop af cp [hl] pop hl diff --git a/src/engine/home.asm b/src/engine/home.asm index 19fc49d..4d9c632 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -8038,12 +8038,12 @@ Func_3d72: ; 3d72 (0:3d72) Func_3db7: ; 3db7 (0:3db7) push bc ld c, SPRITE_ANIM_PROPERTY_1 - call GetSpriteBufferProperty + call GetSpriteAnimBufferProperty pop bc ret ; read property (byte) c from a sprite in wSpriteAnimBuffer identified by wWhichSprite -GetSpriteBufferProperty: ; 3dbf (0:3dbf) +GetSpriteAnimBufferProperty: ; 3dbf (0:3dbf) ld a, [wWhichSprite] cp SPRITE_ANIM_BUFFER_CAPACITY jr c, .got_sprite -- cgit v1.2.3 From fe28e119720c008569833e0acad86d8a15ee8391 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 17 Feb 2018 21:11:05 +0100 Subject: More style cleaning up --- src/constants/gfx_constants.asm | 1 + src/constants/text_constants.asm | 20 +++--- src/engine/bank1.asm | 18 +++--- src/engine/bank3.asm | 2 +- src/engine/booster_packs.asm | 6 +- src/engine/home.asm | 15 ++--- src/gfx.asm | 71 +++++++++++++-------- src/text/text1.asm | 124 ++++++++++++++++++------------------- src/text/text10.asm | 30 ++++----- src/text/text11.asm | 16 ++--- src/text/text12.asm | 8 +-- src/text/text2.asm | 126 ++++++++++++++++++------------------- src/text/text3.asm | 92 +++++++++++++-------------- src/text/text4.asm | 56 ++++++++--------- src/text/text5.asm | 40 ++++++------ src/text/text6.asm | 130 +++++++++++++++++++-------------------- src/text/text7.asm | 72 +++++++++++----------- src/text/text8.asm | 58 ++++++++--------- src/text/text9.asm | 70 ++++++++++----------- 19 files changed, 490 insertions(+), 465 deletions(-) diff --git a/src/constants/gfx_constants.asm b/src/constants/gfx_constants.asm index 1cf3770..4cc72f5 100644 --- a/src/constants/gfx_constants.asm +++ b/src/constants/gfx_constants.asm @@ -33,3 +33,4 @@ SPRITE_ANIM_BUFFER_CAPACITY EQU 16 ; sprites const SPRITE_ANIM_PROPERTY_14 const SPRITE_ANIM_MOVEMENT_COUNTER const SPRITE_ANIM_PROPERTY_16 +SPRITE_ANIM_LENGTH EQU const_value \ No newline at end of file diff --git a/src/constants/text_constants.asm b/src/constants/text_constants.asm index 674037e..062f5e4 100644 --- a/src/constants/text_constants.asm +++ b/src/constants/text_constants.asm @@ -6,15 +6,15 @@ TX_RAM1 EQU $09 TX_RAM2 EQU $0B TX_RAM3 EQU $0C -text EQUS "db TX_START," -line EQUS "db TX_LINE," +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" +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" diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 985418b..5be8768 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -286,7 +286,7 @@ HandleTurn: ; 4225 (1:4225) call GetTurnDuelistVariable ld [wcc0d], a ld a, [wcc06] - cp a, $02 + cp $02 jr c, .asm_4237 call $70f6 @@ -322,9 +322,9 @@ Func_4268: Func_426d: call $4f9d ld a, [wcc0d] - cp a, DUELIST_TYPE_PLAYER + cp DUELIST_TYPE_PLAYER jr z, PrintDuelMenu - cp a, DUELIST_TYPE_LINK_OPP + cp DUELIST_TYPE_LINK_OPP jp z, $6911 ; DUELIST_TYPE_AI_OPP xor a @@ -352,7 +352,7 @@ PrintDuelMenu: Func_42ac: call DoFrame ldh a, [hButtonsHeld] - and a, $02 + and $02 jr z, .asm_42cc ldh a, [hButtonsPressed] bit D_UP_F, a @@ -368,7 +368,7 @@ Func_42ac: .asm_42cc ldh a, [hButtonsPressed] - and a, START + and START jp nz, $4370 ldh a, [hButtonsPressed] bit SELECT_F, a @@ -450,8 +450,8 @@ DuelMenu_Done: ; 439a (1:439a) DuelMenu_Retreat: ; 43ab (1:43ab) ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable - and a,PASSIVE_STATUS_MASK - cp a, $01 + and PASSIVE_STATUS_MASK + cp $01 ldh [$ffa0], a jr nz, Func_43f1 ld a, [wcc0c] @@ -700,10 +700,10 @@ Func_478b: ; 478b (1:478b) .asm_47d4 call DoFrame ldh a, [hButtonsPressed2] - and a, D_RIGHT | D_LEFT + and D_RIGHT | D_LEFT jr nz, .asm_47ce ldh a, [hButtonsPressed] - and a, A_BUTTON | B_BUTTON + and A_BUTTON | B_BUTTON jr z, .asm_47d4 ret diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index a97a835..b1fe932 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -1627,7 +1627,7 @@ IncreaseOWScriptPointer: ; cc7a (3:4c7a) add c ld [wOWScriptPointer], a ld a, [wOWScriptPointer+1] - adc a, 00 + adc 0 ld [wOWScriptPointer+1], a ret diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index 09c7dbb..967a0ee 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -226,7 +226,7 @@ DetermineBoosterCardType: ; 1e2fa (7:62fa) inc hl inc c ld a, c - cp a, NUM_BOOSTER_CARD_TYPES + cp NUM_BOOSTER_CARD_TYPES jr c, .loop_through_card_types ld a, BOOSTER_CARD_TYPE_ENERGY .found_card_type @@ -279,7 +279,7 @@ UpdateBoosterCardTypesChanceByte: ; 1e350 (7:6350) ld b, $00 ld hl, wBoosterDataTypeChances add hl, bc - ld a,[wBoosterAveragedTypeChances] + ld a, [wBoosterAveragedTypeChances] ld c, a ld a, [hl] sub c @@ -322,7 +322,7 @@ AddBoosterEnergyToDrawnEnergies: ; 1e380 (7:6380) GenerateEndingEnergy: ; 1e387 (7:6387) ld a, COLORLESS - FIRE call Random - add a, $01 + add $01 jr AddBoosterEnergyToDrawnEnergies ; generates a booster with 10 random energies diff --git a/src/engine/home.asm b/src/engine/home.asm index 4d9c632..beabbfc 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -6127,10 +6127,10 @@ GetCardPointer: ; 2f7c (0:2f7c) ld bc, CardPointers add hl, bc ld a, h - cp a, (CardPointers + 2 + (2 * NUM_CARDS)) / $100 + cp HIGH(CardPointers + 2 + (2 * NUM_CARDS)) jr nz, .nz ld a, l - cp a, (CardPointers + 2 + (2 * NUM_CARDS)) % $100 + cp LOW(CardPointers + 2 + (2 * NUM_CARDS)) .nz ccf jr c, .out_of_bounds @@ -6138,7 +6138,7 @@ GetCardPointer: ; 2f7c (0:2f7c) call BankpushHome2 ld a, [hli] ld h, [hl] - ld l,a + ld l, a call BankpopHome or a .out_of_bounds @@ -6244,7 +6244,7 @@ CheckMatchingCommand: ; 2ffe (0:2ffe) call BankswitchHome ; store the bank number of command functions ($b) in wce22 ld a, $b - ld [wce22],a + ld [wce22], a .check_command_loop ld a, [hli] or a @@ -8042,7 +8042,8 @@ Func_3db7: ; 3db7 (0:3db7) pop bc ret -; read property (byte) c from a sprite in wSpriteAnimBuffer identified by wWhichSprite +; return hl pointing to the property (byte) c of a sprite in wSpriteAnimBuffer. +; the sprite is identified by its index in wWhichSprite. GetSpriteAnimBufferProperty: ; 3dbf (0:3dbf) ld a, [wWhichSprite] cp SPRITE_ANIM_BUFFER_CAPACITY @@ -8051,13 +8052,13 @@ GetSpriteAnimBufferProperty: ; 3dbf (0:3dbf) ld a, SPRITE_ANIM_BUFFER_CAPACITY - 1 ; default to last sprite .got_sprite push bc - swap a + swap a ; a *= SPRITE_ANIM_LENGTH push af and $f ld b, a pop af and $f0 - or c + or c ; add the property offset ld c, a ld hl, wSpriteAnimBuffer add hl, bc diff --git a/src/gfx.asm b/src/gfx.asm index 71c6934..85d954f 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -1,6 +1,7 @@ INCLUDE "macros.asm" SECTION "Gfx 1", ROMX + Fonts:: ; 74000 (1d:4000) INCBIN "gfx/fonts.t3.1bpp" @@ -8,10 +9,11 @@ VWF:: ; 76668 (1d:6668) INCBIN "gfx/vwf.1bpp" DuelGraphics:: ; 76968 (1d:6968) -INCBIN "gfx/duel/duel1.t5.2bpp",$0,$1698 +INCBIN "gfx/duel/duel1.t5.2bpp", $0, $1698 SECTION "Gfx 2", ROMX -INCBIN "gfx/duel/duel1.t5.2bpp",$1698,$318 + +INCBIN "gfx/duel/duel1.t5.2bpp", $1698, $318 INCBIN "gfx/duel/duel2.2bpp" rept $2b68 @@ -22,6 +24,7 @@ SECTION "Empty Bank 1F", ROMX emptybank SECTION "Gfx 3", ROMX + INCROM $84000, $87828 IshiharaTilesetGfx: ; 87828 (21:7828) @@ -51,6 +54,7 @@ Unnamed2Gfx: ; 87fe2 (21:7fe2) INCROM $87ff4, $88000 SECTION "Gfx 4", ROMX + OverworldMapTiles: ; 88000 (22:4000) dw $c1 INCBIN "gfx/overworld_map.t15.2bpp" @@ -94,6 +98,7 @@ Unnamed3Gfx: ; 8bfd2 (22:7fd2) INCROM $8bfe4, $8C000 SECTION "Gfx 5", ROMX + LightningClubTilesetGfx: ; 8c000 (23:4000) dw $83 INCBIN "gfx/tilesets/lightningclub.t13.2bpp" @@ -128,24 +133,24 @@ HallOfHonorTilesetGfx: ; 8f20e (23:720e) MedalGfx: ; 8f9a0 (23:79a0) dw $48 - INCBIN "gfx/medals.2bpp",$0,$c0 - INCBIN "gfx/medals.2bpp",$240,$30 - INCBIN "gfx/medals.2bpp",$340,$10 - INCBIN "gfx/medals.2bpp",$c0,$c0 - INCBIN "gfx/medals.2bpp",$300,$30 - INCBIN "gfx/medals.2bpp",$350,$10 - INCBIN "gfx/medals.2bpp",$180,$c0 - INCBIN "gfx/medals.2bpp",$3c0,$30 - INCBIN "gfx/medals.2bpp",$410,$10 - INCBIN "gfx/medals.2bpp",$2d0,$30 - INCBIN "gfx/medals.2bpp",$2a0,$30 - INCBIN "gfx/medals.2bpp",$270,$30 - INCBIN "gfx/medals.2bpp",$390,$30 - INCBIN "gfx/medals.2bpp",$360,$30 - INCBIN "gfx/medals.2bpp",$330,$10 - INCBIN "gfx/medals.2bpp",$450,$30 - INCBIN "gfx/medals.2bpp",$420,$30 - INCBIN "gfx/medals.2bpp",$3f0,$20 + INCBIN "gfx/medals.2bpp", $0, $c0 + INCBIN "gfx/medals.2bpp", $240, $30 + INCBIN "gfx/medals.2bpp", $340, $10 + INCBIN "gfx/medals.2bpp", $c0, $c0 + INCBIN "gfx/medals.2bpp", $300, $30 + INCBIN "gfx/medals.2bpp", $350, $10 + INCBIN "gfx/medals.2bpp", $180, $c0 + INCBIN "gfx/medals.2bpp", $3c0, $30 + INCBIN "gfx/medals.2bpp", $410, $10 + INCBIN "gfx/medals.2bpp", $2d0, $30 + INCBIN "gfx/medals.2bpp", $2a0, $30 + INCBIN "gfx/medals.2bpp", $270, $30 + INCBIN "gfx/medals.2bpp", $390, $30 + INCBIN "gfx/medals.2bpp", $360, $30 + INCBIN "gfx/medals.2bpp", $330, $10 + INCBIN "gfx/medals.2bpp", $450, $30 + INCBIN "gfx/medals.2bpp", $420, $30 + INCBIN "gfx/medals.2bpp", $3f0, $20 NintendoGfx: ; 8fe22 (23:7e22) dw $18 @@ -158,6 +163,7 @@ PoisonGfx: ; 8ffa4 (23:7fa4) INCROM $8ffe6, $90000 SECTION "Gfx 6", ROMX + CardPop1Gfx: ; 90000 (24:4000) dw $bd INCBIN "gfx/cardpop/cardpop1.t3.2bpp" @@ -219,6 +225,7 @@ rept $4 endr SECTION "Gfx 7", ROMX + Laboratory1Gfx: ; 94000 (25:4000) dw $60 INCBIN "gfx/booster_packs/laboratory1.2bpp" @@ -270,6 +277,7 @@ RonaldOWGfx: ; 97ea6 (25:7ea6) INCROM $97fe8, $98000 SECTION "Gfx 8", ROMX + Titlescreen3Gfx: ; 98000 (26:4000) dw $f4 INCBIN "gfx/titlescreen/titlescreen3.t12.2bpp" @@ -303,6 +311,7 @@ Unnamed7Gfx: ; 9bfee (26:7fee) INCBIN "gfx/unnamed/7.2bpp" SECTION "Gfx 9", ROMX + SamGfx: ; 9c000 (27:4000) dw $24 INCBIN "gfx/duelists/sam.2bpp" @@ -428,6 +437,7 @@ rept $4 endr SECTION "Gfx 10", ROMX + DanielGfx: ; a0000 (28:4000) dw $24 INCBIN "gfx/duelists/daniel.2bpp" @@ -603,6 +613,7 @@ Unnamed11Gfx: ; a3fb4 (28:7fb4) INCROM $a3ff6, $a4000 SECTION "Gfx 11", ROMX + OWSprite30: ; a4000 (29:4000) dw $14 INCBIN "gfx/overworld_sprites/30.2bpp" @@ -802,6 +813,7 @@ Duel45Gfx: ; a7fb0 (29:7fb0) INCROM $a7fe2, $a8000 SECTION "Gfx 12", ROMX + Duel46Gfx: ; a8000 (2a:4000) dw $08 INCBIN "gfx/duel/46.2bpp" @@ -877,16 +889,16 @@ FightingGfx: ; a8e12 (2a:4e12) INCROM $a8e54, $ac000 SECTION "Gfx 13", ROMX -INCBIN "baserom.gbc",$AC000,$4000 +INCBIN "baserom.gbc", $ac000, $4000 SECTION "Gfx 14", ROMX -INCBIN "baserom.gbc",$B0000,$4000 +INCBIN "baserom.gbc", $b0000, $4000 SECTION "Gfx 15", ROMX -INCBIN "baserom.gbc",$B4000,$4000 +INCBIN "baserom.gbc", $b4000, $4000 SECTION "Gfx 16", ROMX -INCBIN "baserom.gbc",$B8000,$4000 +INCBIN "baserom.gbc", $b8000, $4000 SECTION "Empty Bank 2F", ROMX emptybank @@ -895,6 +907,7 @@ SECTION "Empty Bank 30", ROMX emptybank SECTION "Card Gfx 1", ROMX + CardGraphics:: ; c4000 (31:4000) GrassEnergyCardGfx:: ; c4000 (31:4000) @@ -982,6 +995,7 @@ NidorinaCardGfx:: ; c7ca0 (31:7ca0) INCBIN "gfx/cards/nidorina.pal" SECTION "Card Gfx 2", ROMX + NidoqueenCardGfx:: ; c8000 (32:4000) INCBIN "gfx/cards/nidoqueen.8x6.2bpp" INCBIN "gfx/cards/nidoqueen.pal" @@ -1067,6 +1081,7 @@ KoffingCardGfx:: ; cbca0 (32:7ca0) INCBIN "gfx/cards/koffing.pal" SECTION "Card Gfx 3", ROMX + WeezingCardGfx:: ; cc000 (33:4000) INCBIN "gfx/cards/weezing.8x6.2bpp" INCBIN "gfx/cards/weezing.pal" @@ -1152,6 +1167,7 @@ Moltres1CardGfx:: ; cfca0 (33:7ca0) INCBIN "gfx/cards/moltres1.pal" SECTION "Card Gfx 4", ROMX + Moltres2CardGfx:: ; d0000 (34:4000) INCBIN "gfx/cards/moltres2.8x6.2bpp" INCBIN "gfx/cards/moltres2.pal" @@ -1237,6 +1253,7 @@ SeakingCardGfx:: ; d3ca0 (34:7ca0) INCBIN "gfx/cards/seaking.pal" SECTION "Card Gfx 5", ROMX + StaryuCardGfx:: ; d4000 (35:4000) INCBIN "gfx/cards/staryu.8x6.2bpp" INCBIN "gfx/cards/staryu.pal" @@ -1322,6 +1339,7 @@ Magnemite1CardGfx:: ; d7ca0 (35:7ca0) INCBIN "gfx/cards/magnemite1.pal" SECTION "Card Gfx 6", ROMX + Magnemite2CardGfx:: ; d8000 (36:4000) INCBIN "gfx/cards/magnemite2.8x6.2bpp" INCBIN "gfx/cards/magnemite2.pal" @@ -1407,6 +1425,7 @@ MachokeCardGfx:: ; dbca0 (36:7ca0) INCBIN "gfx/cards/machoke.pal" SECTION "Card Gfx 7", ROMX + MachampCardGfx:: ; dc000 (37:4000) INCBIN "gfx/cards/machamp.8x6.2bpp" INCBIN "gfx/cards/machamp.pal" @@ -1492,6 +1511,7 @@ SlowbroCardGfx:: ; dfca0 (37:7ca0) INCBIN "gfx/cards/slowbro.pal" SECTION "Card Gfx 8", ROMX + Gastly1CardGfx:: ; e0000 (38:4000) INCBIN "gfx/cards/gastly1.8x6.2bpp" INCBIN "gfx/cards/gastly1.pal" @@ -1577,6 +1597,7 @@ RaticateCardGfx:: ; e3ca0 (38:7ca0) INCBIN "gfx/cards/raticate.pal" SECTION "Card Gfx 9", ROMX + SpearowCardGfx:: ; e4000 (39:4000) INCBIN "gfx/cards/spearow.8x6.2bpp" INCBIN "gfx/cards/spearow.pal" @@ -1662,6 +1683,7 @@ PorygonCardGfx:: ; e7ca0 (39:7ca0) INCBIN "gfx/cards/porygon.pal" SECTION "Card Gfx 10", ROMX + SnorlaxCardGfx:: ; e8000 (3a:4000) INCBIN "gfx/cards/snorlax.8x6.2bpp" INCBIN "gfx/cards/snorlax.pal" @@ -1747,6 +1769,7 @@ SwitchCardGfx:: ; ebca0 (3a:7ca0) INCBIN "gfx/cards/switch.pal" SECTION "Card Gfx 11", ROMX + PokemonCenterCardGfx:: ; ec000 (3b:4000) INCBIN "gfx/cards/pokemoncenter.8x6.2bpp" INCBIN "gfx/cards/pokemoncenter.pal" diff --git a/src/text/text1.asm b/src/text/text1.asm index 3c82b18..64ef19b 100644 --- a/src/text/text1.asm +++ b/src/text/text1.asm @@ -147,27 +147,27 @@ UnableDueToParalysisText: ; 364a1 (d:64a1) done Received10DamageDueToPoisonText: ; 364be (d:64be) - text TX_RAM2," received" + text TX_RAM2, " received" line "10 damage due to Poison." done Received20DamageDueToPoisonText: ; 364e3 (d:64e3) - text TX_RAM2," received" + text TX_RAM2, " received" line "20 damage due to Double Poison." done IsStillAsleepText: ; 3650f (d:650f) - text TX_RAM2," is" + text TX_RAM2, " is" line "still Asleep." done IsCuredOfSleepText: ; 36523 (d:6523) - text TX_RAM2," is" + text TX_RAM2, " is" line "cured of Sleep." done IsCuredOfParalysisText: ; 36539 (d:6539) - text TX_RAM2," is" + text TX_RAM2, " is" line "cured of Paralysis." done @@ -204,7 +204,7 @@ Text0032: ; 365b6 (d:65b6) done Text0033: ; 365be (d:65be) - text "Used ",TX_RAM2,"." + text "Used ", TX_RAM2, "." done Text0034: ; 365c7 (d:65c7) @@ -212,38 +212,38 @@ Text0034: ; 365c7 (d:65c7) done PokemonsAttackText: ; 365d8 (d:65d8) - text TX_RAM2,"'s" + text TX_RAM2, "'s" line "" - text TX_RAM2,"!" + text TX_RAM2, "!" done Text0036: ; 365e1 (d:65e1) - text TX_RAM2," received" - line TX_RAM3," damage due to Resistance!" + text TX_RAM2, " received" + line TX_RAM3, " damage due to Resistance!" done Text0037: ; 36609 (d:6609) - text TX_RAM2," received" - line TX_RAM3," damage due to Weakness!" + text TX_RAM2, " received" + line TX_RAM3, " damage due to Weakness!" done Text0038: ; 3662f (d:662f) - text TX_RAM2," received" - line TX_RAM3," damage due to Weakness!" + text TX_RAM2, " received" + line TX_RAM3, " damage due to Weakness!" done Text0039: ; 36655 (d:6655) - text TX_RAM2," did not" + text TX_RAM2, " did not" line "receive damage due to Resistance." done Text003a: ; 36682 (d:6682) - text TX_RAM2," took" - line TX_RAM3," damage." + text TX_RAM2, " took" + line TX_RAM3, " damage." done Text003b: ; 36694 (d:6694) - text TX_RAM2," did not" + text TX_RAM2, " did not" line "receive damage!" done @@ -278,16 +278,16 @@ DiscardDescription: ; 36757 (d:6757) done Text0042: ; 367cc (d:67cc) - text TX_RAM1," will draw ",TX_RAM3," Prize(s)." + text TX_RAM1, " will draw ", TX_RAM3, " Prize(s)." done Text0043: ; 367e5 (d:67e5) - text TX_RAM1," drew ",TX_RAM3," Prize(s)." + text TX_RAM1, " drew ", TX_RAM3, " Prize(s)." done Text0044: ; 367f9 (d:67f9) - text TX_RAM1," placed" - line "a ",TX_RAM2,"." + text TX_RAM1, " placed" + line "a ", TX_RAM2, "." done Text0045: ; 36808 (d:6808) @@ -387,18 +387,18 @@ Text0059: ; 369dc (d:69dc) done Text005a: ; 36a19 (d:6a19) - text TX_RAM2,"" + text TX_RAM2, "" line "Retreated to the Bench." done Text005b: ; 36a34 (d:6a34) - text TX_RAM2,"'s" + text TX_RAM2, "'s" line "Retreat was unsuccessful." done Text005c: ; 36a53 (d:6a53) - text TX_RAM2," will use the" - line "Pok`mon Power ",TX_RAM2,"." + text TX_RAM2, " will use the" + line "Pok`mon Power ", TX_RAM2, "." done Text005d: ; 36a74 (d:6a74) @@ -407,31 +407,31 @@ Text005d: ; 36a74 (d:6a74) done Text005e: ; 36a9a (d:6a9a) - text TX_RAM1,"'s Turn." + text TX_RAM1, "'s Turn." done Text005f: ; 36aa5 (d:6aa5) - text "Attached ",TX_RAM2,"" - line "to ",TX_RAM2,"." + text "Attached ", TX_RAM2, "" + line "to ", TX_RAM2, "." done Text0060: ; 36ab7 (d:6ab7) - text TX_RAM2," evolved" - line "into ",TX_RAM2,"." + text TX_RAM2, " evolved" + line "into ", TX_RAM2, "." done Text0061: ; 36aca (d:6aca) - text "Placed ",TX_RAM2,"" + text "Placed ", TX_RAM2, "" line "on the Bench." done Text0062: ; 36ae2 (d:6ae2) - text TX_RAM2,"" + text TX_RAM2, "" line "was placed in the Arena." done Text0063: ; 36afe (d:6afe) - text TX_RAM1," shuffles the Deck." + text TX_RAM1, " shuffles the Deck." done Text0064: ; 36b14 (d:6b14) @@ -449,12 +449,12 @@ Text0066: ; 36b7a (d:6b7a) done Text0067: ; 36b9a (d:6b9a) - text TX_RAM1,"" + text TX_RAM1, "" line "drew 7 cards." done Text0068: ; 36bab (d:6bab) - text TX_RAM1,"'s deck has ",TX_RAM3," cards." + text TX_RAM1, "'s deck has ", TX_RAM3, " cards." done Text0069: ; 36bc2 (d:6bc2) @@ -464,7 +464,7 @@ Text0069: ; 36bc2 (d:6bc2) Text006a: ; 36bf1 (d:6bf1) text "There are no Basic Pok`mon" - line "in ",TX_RAM1,"'s hand." + line "in ", TX_RAM1, "'s hand." done Text006b: ; 36c1a (d:6c1a) @@ -493,7 +493,7 @@ Text006f: ; 36ce1 (d:6ce1) done Text0070: ; 36cfd (d:6cfd) - text "You drew ",TX_RAM2,"." + text "You drew ", TX_RAM2, "." done Text0071: ; 36d0a (d:6d0a) @@ -506,13 +506,13 @@ Text0072: ; 36d28 (d:6d28) Text0073: ; 36d3f (d:6d3f) text "Please place" - line TX_RAM3," Prizes." + line TX_RAM3, " Prizes." done Text0074: ; 36d57 (d:6d57) text "If heads," line "" - text TX_RAM2," plays first." + text TX_RAM2, " plays first." done Text0075: ; 36d72 (d:6d72) @@ -525,17 +525,17 @@ DecisionText: ; 36da4 (d:6da4) done DuelWasDrawText: ; 36db1 (d:6db1) - text "The Duel with ",TX_RAM1,"" + text "The Duel with ", TX_RAM1, "" line "was a Draw!" done WonDuelText: ; 36dce (d:6dce) - text "You won the Duel with ",TX_RAM1,"!" + text "You won the Duel with ", TX_RAM1, "!" done LostDuelText: ; 36de8 (d:6de8) text "You lost the Duel" - line "with ",TX_RAM1,"..." + line "with ", TX_RAM1, "..." done StartSuddenDeathMatchText: ; 36e05 (d:6e05) @@ -562,22 +562,22 @@ Text007e: ; 36e63 (d:6e63) done Text007f: ; 36e6a (d:6e6a) - text TX_RAM1," took" + text TX_RAM1, " took" line "all the Prizes!" done Text0080: ; 36e82 (d:6e82) text "There are no Pok`mon" - line "in ",TX_RAM1,"'s Play Area!" + line "in ", TX_RAM1, "'s Play Area!" done WasKnockedOutText: ; 36eaa (d:6eaa) - text TX_RAM2," was" + text TX_RAM2, " was" line "Knocked Out!" done Text0082: ; 36ebe (d:6ebe) - text TX_RAM2," have" + text TX_RAM2, " have" line "Pok`mon Power." done @@ -606,7 +606,7 @@ Text0087: ; 36f43 (d:6f43) done DuelistIsThinkingText: ; 36f4a (d:6f4a) - text TX_RAM1," is thinking." + text TX_RAM1, " is thinking." done Text0089: ; 36f5a (d:6f5a) @@ -724,19 +724,19 @@ Text009d: ; 371f7 (d:71f7) done Text009e: ; 3720c (d:720c) - text TX_GRASS," Pok`mon" + text TX_GRASS, " Pok`mon" line "" - text TX_FIRE," Pok`mon" + text TX_FIRE, " Pok`mon" line "" - text TX_WATER," Pok`mon" + text TX_WATER, " Pok`mon" line "" - text TX_LIGHTNING," Pok`mon" + text TX_LIGHTNING, " Pok`mon" line "" - text TX_FIGHTING," Pok`mon" + text TX_FIGHTING, " Pok`mon" line "" - text TX_PSYCHIC," Pok`mon" + text TX_PSYCHIC, " Pok`mon" line "" - text TX_COLORLESS," Pok`mon" + text TX_COLORLESS, " Pok`mon" line "Trainer Card" line "Energy Card" done @@ -780,15 +780,15 @@ Text00a6: ; 3737b (d:737b) done Text00a7: ; 37392 (d:7392) - text TX_RAM1,"'s Hand" + text TX_RAM1, "'s Hand" done Text00a8: ; 3739c (d:739c) - text TX_RAM1,"'s Play Area" + text TX_RAM1, "'s Play Area" done Text00a9: ; 373ab (d:73ab) - text TX_RAM1,"'s Deck" + text TX_RAM1, "'s Deck" done Text00aa: ; 373b5 (d:73b5) @@ -892,7 +892,7 @@ Text00be: ; 37715 (d:7715) done Text00bf: ; 37758 (d:7758) - text TX_RAM3," Energy cards" + text TX_RAM3, " Energy cards" line "are required to Retreat." done @@ -1108,7 +1108,7 @@ Text00ec: ; 37e73 (d:7e73) done Text00ed: ; 37e92 (d:7e92) - text "If Tails, ",TX_RAM3," damage" + text "If Tails, ", TX_RAM3, " damage" line "to yourself, too." done @@ -1138,10 +1138,10 @@ Text00f2: ; 37f9a (d:7f9a) Text00f3: ; 37fa8 (d:7fa8) text "Damage check!" - line "If Heads, +",TX_RAM3," damage!!" + line "If Heads, +", TX_RAM3, " damage!!" done Text00f4: ; 37fcd (d:7fcd) text "Damage check!" - line "If Heads, x ",TX_RAM3," damage!!" + line "If Heads, x ", TX_RAM3, " damage!!" done diff --git a/src/text/text10.asm b/src/text/text10.asm index 0a56ec6..15154c0 100644 --- a/src/text/text10.asm +++ b/src/text/text10.asm @@ -777,7 +777,7 @@ EmberName: ; 59e0e (16:5e0e) done EmberDescription: ; 59e15 (16:5e15) - text "Discard 1 ",TX_FIRE," Energy card attached to" + text "Discard 1 ", TX_FIRE, " Energy card attached to" line "Charmander in order to use this" line "attack." done @@ -802,7 +802,7 @@ FlamethrowerName: ; 59ee6 (16:5ee6) done CharmeleonsFlamethrowerDescription: ; 59ef4 (16:5ef4) - text "Discard 1 ",TX_FIRE," Energy card attached to" + text "Discard 1 ", TX_FIRE, " Energy card attached to" line "Charmeleon in order to use this" line "attack." done @@ -829,7 +829,7 @@ EnergyBurnDescription: ; 59fb8 (16:5fb8) text "As often as you like during your" line "turn (before your attack), you may" line "turn all Energy attached to" - line "Charizard into ",TX_FIRE," Energy for the" + line "Charizard into ", TX_FIRE, " Energy for the" line "rest of the turn. This power can't" line "be used if Charizard is Asleep," line "Confused, or Paralyzed." @@ -884,7 +884,7 @@ FireBlastName: ; 5a231 (16:6231) done FireBlastDescription: ; 5a23d (16:623d) - text "Discard 1 ",TX_FIRE," Energy card attached" + text "Discard 1 ", TX_FIRE, " Energy card attached" line "to Ninetales in order to use this" line "attack." done @@ -968,7 +968,7 @@ FlamesOfRageName: ; 5a5d8 (16:65d8) done FlamesOfRageDescription: ; 5a5e8 (16:65e8) - text "Discard 2 ",TX_FIRE," Energy cards attached" + text "Discard 2 ", TX_FIRE, " Energy cards attached" line "to Arcanine in order to use this" line "attack. This attack does 40 damage" line "plus 10 more damage for each damage" @@ -986,7 +986,7 @@ Arcanine1Description: ; 5a694 (16:6694) done ArcaninesFlamethrowerDescription: ; 5a6ed (16:66ed) - text "Discard 1 ",TX_FIRE," Energy card attached to" + text "Discard 1 ", TX_FIRE, " Energy card attached to" line "Arcanine in order to use this" line "attack." done @@ -1068,7 +1068,7 @@ FirePunchName: ; 5a9b3 (16:69b3) done FirePunchDescription: ; 5a9bf (16:69bf) - text "Discard 1 ",TX_FIRE," Energy card attached to" + text "Discard 1 ", TX_FIRE, " Energy card attached to" line "Magmar in order to use this attack." done @@ -1128,7 +1128,7 @@ Flareon1Description: ; 5abe1 (16:6be1) done FlareonsFlamethrowerDescription: ; 5ac46 (16:6c46) - text "Discard 1 ",TX_FIRE," Energy card attached to" + text "Discard 1 ", TX_FIRE, " Energy card attached to" line "Flareon in order to use this attack." done @@ -1147,7 +1147,7 @@ WildfireName: ; 5acf6 (16:6cf6) done WildfireDescription: ; 5ad00 (16:6d00) - text "You may discard any number of ",TX_FIRE,"" + text "You may discard any number of ", TX_FIRE, "" line "Energy cards attached to Moltres" line "when you use this attack. If you do," line "discard that many cards from the top" @@ -1172,7 +1172,7 @@ FiregiverDescription: ; 5ae1e (16:6e1e) text "When you put Moltres into play" line "during your turn (not during" line "set-up), put from 1 to 4 (chosen at" - line "random) ",TX_FIRE," Energy cards from your" + line "random) ", TX_FIRE, " Energy cards from your" line "deck into your hand. Shuffle your" line "deck afterward." done @@ -1244,8 +1244,8 @@ RainDanceName: ; 5b159 (16:7159) RainDanceDescription: ; 5b165 (16:7165) text "As often as you like during your" line "turn (before your attack), you may" - line "attach 1 ",TX_WATER," Energy card to 1 of" - line "your ",TX_WATER," Pok`mon. (This doesn't use" + line "attach 1 ", TX_WATER, " Energy card to 1 of" + line "your ", TX_WATER, " Pok`mon. (This doesn't use" line "up your 1 Energy card attachment" line "for the turn.)" done @@ -1262,7 +1262,7 @@ HydroPumpName: ; 5b267 (16:7267) HydroPumpDescription: ; 5b273 (16:7273) text "Does 40 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Blastoise but not used to pay for" line "this attack's Energy cost. You can't" line "add more than 20 damage in this way." @@ -1335,7 +1335,7 @@ WaterGunName: ; 5b53c (16:753c) PoliwagsWaterGunDescription: ; 5b547 (16:7547) text "Does 10 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Poliwag but not used to pay for" line "this attack's Energy cost. You can't" line "add more than 20 damage in this way." @@ -1382,7 +1382,7 @@ PoliwrathName: ; 5b74f (16:774f) PoliwrathsWaterGunDescription: ; 5b75a (16:775a) text "Does 30 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Poliwrath but not used to pay for" line "this attack's Energy cost. You" line "can't add more than 20 damage in" diff --git a/src/text/text11.asm b/src/text/text11.asm index e590276..649bf27 100644 --- a/src/text/text11.asm +++ b/src/text/text11.asm @@ -10,7 +10,7 @@ SeadraName: ; 5c05d (17:405d) SeadrasWaterGunDescription: ; 5c065 (17:4065) text "Does 20 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Seadra but not used to pay for this" line "attack's Energy cost. You can't add" line "more than 20 damage in this way." @@ -88,7 +88,7 @@ RecoverName: ; 5c352 (17:4352) done StarmiesRecoverDescription: ; 5c35b (17:435b) - text "Discard 1 ",TX_WATER," Energy card attached to" + text "Discard 1 ", TX_WATER, " Energy card attached to" line "Starmie in order to use this attack." line "Remove all damage counters from" line "Starmie." @@ -159,7 +159,7 @@ LaprasName: ; 5c58f (17:458f) LaprasWaterGunDescription: ; 5c597 (17:4597) text "Does 10 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Lapras but not used to pay for this" line "attack's Energy cost. You can't add" line "more than 20 damage in this way." @@ -201,7 +201,7 @@ Vaporeon1Description: ; 5c717 (17:4717) VaporeonsWaterGunDescription: ; 5c77b (17:477b) text "Does 30 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Vaporeon but not used to pay for" line "this attack's Energy cost. You can't" line "add more than 20 damage in this way." @@ -234,7 +234,7 @@ ClairvoyanceDescription: ; 5c8b5 (17:48b5) OmanytesWaterGunDescription: ; 5c932 (17:4932) text "Does 10 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Omanyte but not used to pay for this" line "attack's Energy cost. You can't add" line "more than 20 damage in this way." @@ -256,7 +256,7 @@ OmastarName: ; 5ca3e (17:4a3e) OmastarsWaterGunDescription: ; 5ca47 (17:4a47) text "Does 20 damage plus 10 more damage" - line "for each ",TX_WATER," Energy attached to" + line "for each ", TX_WATER, " Energy attached to" line "Omastar but not used to pay for this" line "attack's Energy cost. You can't add" line "more than 20 damage in this way." @@ -1145,7 +1145,7 @@ CallforFriendName: ; 5f33e (17:733e) done CallforFriendDescription: ; 5f34f (17:734f) - text "Search your deck for a ",TX_FIGHTING," Basic" + text "Search your deck for a ", TX_FIGHTING, " Basic" line "Pok`mon card and put it onto your" line "Bench. Shuffle your deck afterward." line "(You can't use this attack if your" @@ -1405,7 +1405,7 @@ KadabraName: ; 5fed3 (17:7ed3) done KadabrasRecoverDescription: ; 5fedc (17:7edc) - text "Discard 1 ",TX_PSYCHIC," Energy card attached to" + text "Discard 1 ", TX_PSYCHIC, " Energy card attached to" line "Kadabra in order to use this attack." line "Remove all damage counters from" line "Kadabra." diff --git a/src/text/text12.asm b/src/text/text12.asm index e381cac..4bc570e 100644 --- a/src/text/text12.asm +++ b/src/text/text12.asm @@ -51,7 +51,7 @@ ScavengeName: ; 602b5 (18:42b5) done ScavengeDescription: ; 602bf (18:42bf) - text "Discard 1 ",TX_PSYCHIC," Energy card attached" + text "Discard 1 ", TX_PSYCHIC, " Energy card attached" line "to Slowpoke in order to use this" line "attack. Put a Trainer card from your" line "discard pile into your hand." @@ -103,7 +103,7 @@ DestinyBondName: ; 6050e (18:450e) done DestinyBondDescription: ; 6051c (18:451c) - text "Discard 1 ",TX_PSYCHIC," Energy card attached to" + text "Discard 1 ", TX_PSYCHIC, " Energy card attached to" line "Gastly in order to use this attack." line "If a Pok`mon Knocks Out Gastly" line "during your opponent's next turn," @@ -334,7 +334,7 @@ PsychicDescription: ; 60ee9 (18:4ee9) done BarrierDescription: ; 60f45 (18:4f45) - text "Discard 1 ",TX_PSYCHIC," Energy card attached to" + text "Discard 1 ", TX_PSYCHIC, " Energy card attached to" line "Mewtwo in order to use this attack." line "During your opponent's next turn," line "prevent all effects of attacks," @@ -889,7 +889,7 @@ RetreatAidName: ; 62796 (18:6796) RetreatAidDescription: ; 627a3 (18:67a3) text "As long as Dodrio is Benched, pay" - line TX_COLORLESS," less to retreat your Active" + line TX_COLORLESS, " less to retreat your Active" line "Pok`mon." done diff --git a/src/text/text2.asm b/src/text/text2.asm index 4754a23..f567507 100644 --- a/src/text/text2.asm +++ b/src/text/text2.asm @@ -19,7 +19,7 @@ Text00f8: ; 380ac (e:40ac) done Text00f9: ; 380db (e:40db) - text TX_RAM2,"'s Sleep check." + text TX_RAM2, "'s Sleep check." done Text00fa: ; 380ed (e:40ed) @@ -72,12 +72,12 @@ UnableToUseAttackDueToAmnesiaText: ; 382af (e:42af) done KnockedOutDueToDestinyBondText: ; 382e9 (e:42e9) - text TX_RAM2," was Knocked Out" + text TX_RAM2, " was Knocked Out" line "due to the effects of Destiny Bond." done ReceivesDamageDueToStrikesBackText: ; 38320 (e:4320) - text TX_RAM2," receives ",TX_RAM3," damage" + text TX_RAM2, " receives ", TX_RAM3, " damage" line "due to the effects of Strikes Back." done @@ -117,8 +117,8 @@ NoDamageOrEffectDueToTransparencyText: ; 384d8 (e:44d8) done Text010d: ; 3851f (e:451f) - text TX_RAM2,"" - line "metamorphs to ",TX_RAM2,"." + text TX_RAM2, "" + line "metamorphs to ", TX_RAM2, "." done SelectMonOnBenchToSwitchWithActiveText: ; 38533 (e:4533) @@ -132,7 +132,7 @@ Text010f: ; 38575 (e:4575) done Text0110: ; 3859e (e:459e) - text TX_RAM1," is selecting a Pok`mon" + text TX_RAM1, " is selecting a Pok`mon" line "to place in the Arena." done @@ -154,19 +154,19 @@ Text0113: ; 38647 (e:4647) Text0114: ; 3868d (e:468d) text "Changed the Weakness of" line "" - text TX_RAM2," to ",TX_RAM2,"." + text TX_RAM2, " to ", TX_RAM2, "." done Text0115: ; 386af (e:46af) text "Changed the Resistance of" line "" - text TX_RAM2," to ",TX_RAM2,"." + text TX_RAM2, " to ", TX_RAM2, "." done Text0116: ; 386d3 (e:46d3) text "Changed the color of" line "" - text TX_RAM2," to ",TX_RAM2,"." + text TX_RAM2, " to ", TX_RAM2, "." done Text0117: ; 386f2 (e:46f2) @@ -174,7 +174,7 @@ Text0117: ; 386f2 (e:46f2) done Text0118: ; 3870e (e:470e) - text "Draw ",TX_RAM3," card(s) from the Deck." + text "Draw ", TX_RAM3, " card(s) from the Deck." done Text0119: ; 3872d (e:472d) @@ -407,7 +407,7 @@ Text013a: ; 391dc (e:51dc) done Text013b: ; 39215 (e:5215) - text "There is no ",TX_RAM2,"" + text "There is no ", TX_RAM2, "" line "in the Deck." done @@ -451,7 +451,7 @@ Text0144: ; 3930a (e:530a) Text0145: ; 39318 (e:5318) text "Peek was used to look at the" - line TX_RAM2," in your Hand." + line TX_RAM2, " in your Hand." done Text0146: ; 39346 (e:5346) @@ -459,12 +459,12 @@ Text0146: ; 39346 (e:5346) done Text0147: ; 3935d (e:535d) - text TX_RAM2," and all attached" + text TX_RAM2, " and all attached" line "cards were returned to the Hand." done Text0148: ; 39392 (e:5392) - text TX_RAM2," was chosen" + text TX_RAM2, " was chosen" line "for the effect of Amnesia." done @@ -474,27 +474,27 @@ Text0149: ; 393bb (e:53bb) done WasUnsuccessfulText: ; 393e6 (e:53e6) - text TX_RAM2,"'s" - line TX_RAM2," was unsuccessful." + text TX_RAM2, "'s" + line TX_RAM2, " was unsuccessful." done Text014b: ; 393ff (e:53ff) text "There was no effect" - line "from ",TX_RAM2,"." + line "from ", TX_RAM2, "." done Text014c: ; 3941c (e:541c) - text "The Energy card from ",TX_RAM1,"'s" + text "The Energy card from ", TX_RAM1, "'s" line "Play Area was moved." done Text014d: ; 3944b (e:544b) - text TX_RAM1," drew" - line TX_RAM3," Fire Energy from the Hand." + text TX_RAM1, " drew" + line TX_RAM3, " Fire Energy from the Hand." done Text014e: ; 39470 (e:5470) - text "The Pok`mon cards in ",TX_RAM1,"'s" + text "The Pok`mon cards in ", TX_RAM1, "'s" line "Hand and Deck were shuffled" done @@ -549,7 +549,7 @@ Text0158: ; 3968b (e:568b) done Text0159: ; 396b4 (e:56b4) - text "You can draw up to ",TX_RAM3," cards." + text "You can draw up to ", TX_RAM3, " cards." line "A to Draw, B to End." done @@ -608,7 +608,7 @@ Text0164: ; 3985b (e:585b) done Text0165: ; 3986b (e:586b) - text TX_RAM2," was chosen." + text TX_RAM2, " was chosen." done Text0166: ; 3987a (e:587a) @@ -637,27 +637,27 @@ Text016a: ; 39952 (e:5952) done Text016b: ; 39987 (e:5987) - text TX_RAM2," and all attached" + text TX_RAM2, " and all attached" line "cards were returned to the Deck." done Text016c: ; 399bc (e:59bc) - text TX_RAM2," was returned" + text TX_RAM2, " was returned" line "from the Arena to the Hand." done Text016d: ; 399e8 (e:59e8) - text TX_RAM2," was returned" + text TX_RAM2, " was returned" line "from the Bench to the Hand." done Text016e: ; 39a14 (e:5a14) - text TX_RAM2," was returned" + text TX_RAM2, " was returned" line "to the Deck." done Text016f: ; 39a31 (e:5a31) - text TX_RAM2," was placed" + text TX_RAM2, " was placed" line "in the Hand." done @@ -680,12 +680,12 @@ Text0173: ; 39a9c (e:5a9c) done Text0174: ; 39ab9 (e:5ab9) - text "Discarded ",TX_RAM3," cards" - line "from ",TX_RAM1,"'s Deck." + text "Discarded ", TX_RAM3, " cards" + line "from ", TX_RAM1, "'s Deck." done Text0175: ; 39adb (e:5adb) - text "Discarded ",TX_RAM2,"" + text "Discarded ", TX_RAM2, "" line "from the Hand." done @@ -694,23 +694,23 @@ Text0176: ; 39af7 (e:5af7) done Text0177: ; 39b03 (e:5b03) - text TX_RAM2,"" + text TX_RAM2, "" line "came to the Bench!" done Text0178: ; 39b19 (e:5b19) - text TX_RAM1," has" + text TX_RAM1, " has" line "no cards in Hand!" done Text0179: ; 39b32 (e:5b32) - text TX_RAM2," healed" - line TX_RAM3," damage!" + text TX_RAM2, " healed" + line TX_RAM3, " damage!" done Text017a: ; 39b46 (e:5b46) - text TX_RAM2," devolved" - line "to ",TX_RAM2,"!" + text TX_RAM2, " devolved" + line "to ", TX_RAM2, "!" done Text017b: ; 39b58 (e:5b58) @@ -718,7 +718,7 @@ Text017b: ; 39b58 (e:5b58) done Text017c: ; 39b73 (e:5b73) - text "You can select ",TX_RAM3," more cards. Quit?" + text "You can select ", TX_RAM3, " more cards. Quit?" done Text017d: ; 39b97 (e:5b97) @@ -757,7 +757,7 @@ Text0183: ; 39c5a (e:5c5a) Text0184: ; 39c86 (e:5c86) text "Exchanged the cards" - line "in ",TX_RAM1,"'s Hand." + line "in ", TX_RAM1, "'s Hand." done Text0185: ; 39ca8 (e:5ca8) @@ -780,8 +780,8 @@ Text0188: ; 39cea (e:5cea) done Text0189: ; 39d1b (e:5d1b) - text "Begin a ",TX_RAM3,"-Prize Duel" - line "with ",TX_RAM1,"." + text "Begin a ", TX_RAM3, "-Prize Duel" + line "with ", TX_RAM1, "." done Text018a: ; 39d39 (e:5d39) @@ -805,32 +805,32 @@ Text018d: ; 39dcc (e:5dcc) done Text018e: ; 39e02 (e:5e02) - text "Received ",TX_RAM2,"" + text "Received ", TX_RAM2, "" line "through Card Pop!" done ReceivedCardText: ; 39e20 (e:5e20) - text TX_RAM1," received" - line "a ",TX_RAM2,"!" + text TX_RAM1, " received" + line "a ", TX_RAM2, "!" done ReceivedPromotionalCardText: ; 39e31 (e:5e31) - text TX_RAM1," received a Promotional" - line "card ",TX_RAM2,"!" + text TX_RAM1, " received a Promotional" + line "card ", TX_RAM2, "!" done ReceivedLegendaryCardText: ; 39e53 (e:5e53) - text TX_RAM1," received the Legendary" - line "card ",TX_RAM2,"!" + text TX_RAM1, " received the Legendary" + line "card ", TX_RAM2, "!" done ReceivedPromotionalFlyingPikachuText: ; 39e75 (e:5e75) - text TX_RAM1," received a Promotinal" + text TX_RAM1, " received a Promotinal" line "card Flyin' Pikachu!" done ReceivedPromotionalSurfingPikachuText: ; 39ea3 (e:5ea3) - text TX_RAM1," received a Promotional" + text TX_RAM1, " received a Promotional" line "card Surfin' Pikachu!" done @@ -853,11 +853,11 @@ Text0197: ; 39f2f (e:5f2f) done Text0198: ; 39f4d (e:5f4d) - text "Sent to ",TX_RAM1,"." + text "Sent to ", TX_RAM1, "." done Text0199: ; 39f59 (e:5f59) - text "Received from ",TX_RAM1,"." + text "Received from ", TX_RAM1, "." done Text019a: ; 39f6b (e:5f6b) @@ -1101,7 +1101,7 @@ Text01c4: ; 3ab08 (e:6b08) line "Energy to use Waterfall." line "You need to attach a Psychic Energy" line "card to Seaking." - line TX_COLORLESS," means any Energy card." + line TX_COLORLESS, " means any Energy card." line "Now you can use Waterfall." line "Keep the Water Energy card for" line "other Pok`mon." @@ -1220,7 +1220,7 @@ Text01d4: ; 3b1f4 (e:71f4) line "" line "Pick up the last Prize." line "" - text TX_RAM1," is the winner!" + text TX_RAM1, " is the winner!" done Text01d5: ; 3b242 (e:7242) @@ -1259,7 +1259,7 @@ Text01da: ; 3b3bb (e:73bb) done Text01db: ; 3b3fe (e:73fe) - text TX_RAM1,"'s turn ",TX_RAM3 + text TX_RAM1, "'s turn ", TX_RAM3 done Text01dc: ; 3b40a (e:740a) @@ -1553,7 +1553,7 @@ Text0221: ; 3b8f2 (e:78f2) line $03,$39,$70,$03,$3a,$70,$03,$3b,$70,$03,$3c,$70,$03,$3d,$70,$03,$3e,$70,$03,$3f,$70,$03,$40,$70,$03,$41,"" line $03,$42,$70,$03,$43,$70,$03,$44,$70,$03,$45,$70,$03,$46,$70,$03,$47,$70,$03,$48,$70,$03,$49,$70,$6e,"" line $6f,$70,$03,$5d,$70,$6a,$70,$6b,$70,$77,$70,$60,$70,$61,$70,$62,$70,$63,"" - line $64,$70,$65,$70,$66,$70,$67,$70,$68,$70,$69,$70,$05,$13,$70,TX_LVL,$70,$70,"" + line $64,$70,$65,$70,$66,$70,$67,$70,$68,$70,$69,$70,$05,$13,$70, TX_LVL, $70,$70,"" line $70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70 done @@ -1595,7 +1595,7 @@ Text0229: ; 3ba51 (e:7a51) done ChosenAsDuelingDeckText: ; 3ba55 (e:7a55) - text TX_RAM2," was" + text TX_RAM2, " was" line "chosen as the dueling deck!" done @@ -1715,7 +1715,7 @@ Text0246: ; 3bc85 (e:7c85) done Text0247: ; 3bc9e (e:7c9e) - text TX_RAM1,"'s Play Area" + text TX_RAM1, "'s Play Area" done Text0248: ; 3bcad (e:7cad) @@ -1747,11 +1747,11 @@ Text024e: ; 3bd20 (e:7d20) done Text024f: ; 3bd26 (e:7d26) - text TX_RAM1,"'s Hand" + text TX_RAM1, "'s Hand" done Text0250: ; 3bd30 (e:7d30) - text TX_RAM1,"'s Discard Pile" + text TX_RAM1, "'s Discard Pile" done Text0251: ; 3bd42 (e:7d42) @@ -1830,7 +1830,7 @@ Text0262: ; 3be7d (e:7e7d) Text0263: ; 3be82 (e:7e82) text "Saved the configuration for" line "" - text TX_RAM2,"! " + text TX_RAM2, "! " done Text0264: ; 3bea4 (e:7ea4) @@ -1849,7 +1849,7 @@ Text0266: ; 3bee7 (e:7ee7) Text0267: ; 3bf06 (e:7f06) text "Deleted the configuration for" line "" - text TX_RAM2,"." + text TX_RAM2, "." done Text0268: ; 3bf29 (e:7f29) @@ -1863,7 +1863,7 @@ Text0269: ; 3bf46 (e:7f46) Text026a: ; 3bf63 (e:7f63) text "Dismantled" line "" - text TX_RAM2,"." + text TX_RAM2, "." done Text026b: ; 3bf73 (e:7f73) diff --git a/src/text/text3.asm b/src/text/text3.asm index e1f4b96..1c810c0 100644 --- a/src/text/text3.asm +++ b/src/text/text3.asm @@ -108,7 +108,7 @@ Text0282: ; 3c357 (f:4357) Text0283: ; 3c36a (f:436a) text "Received these cards" - line "from ",TX_RAM2,"!" + line "from ", TX_RAM2, "!" done Text0284: ; 3c389 (f:4389) @@ -126,7 +126,7 @@ Text0286: ; 3c3d3 (f:43d3) Text0287: ; 3c3eb (f:43eb) text "Received a deck configuration" - line "from ",TX_RAM2,"!" + line "from ", TX_RAM2, "!" done Text0288: ; 3c413 (f:4413) @@ -808,10 +808,10 @@ Text0315: ; 3dcb2 (f:5cb2) line "your Pok`mon, making them able" line "to Attack." line "There are 7 types of Energy Cards" - line "[",TX_GRASS," Grass] [",TX_FIRE," Fire]" - line "[",TX_WATER," Water] [",TX_LIGHTNING," Lightning]" - line "[",TX_PSYCHIC," Psychic] [",TX_FIGHTING," Fighting]" - line "and [",TX_COLORLESS," Double Colorless]" + line "[", TX_GRASS, " Grass] [", TX_FIRE, " Fire]" + line "[", TX_WATER, " Water] [", TX_LIGHTNING, " Lightning]" + line "[", TX_PSYCHIC, " Psychic] [", TX_FIGHTING, " Fighting]" + line "and [", TX_COLORLESS, " Double Colorless]" line "You may only play 1 Energy Card" line "from your Hand per turn." done @@ -1065,7 +1065,7 @@ Text033e: ; 3e834 (f:6834) done Text033f: ; 3e85f (f:685f) - text "Name ",TX_RAM1 + text "Name ", TX_RAM1 done Text0340: ; 3e867 (f:6867) @@ -1077,7 +1077,7 @@ Text0341: ; 3e87b (f:687b) done Text0342: ; 3e892 (f:6892) - text TX_RAM1,"'s diary" + text TX_RAM1, "'s diary" done Text0343: ; 3e89d (f:689d) @@ -1089,7 +1089,7 @@ Text0344: ; 3e8b1 (f:68b1) done Text0345: ; 3e8d2 (f:68d2) - text TX_RAM1,"" + text TX_RAM1, "" line "wrote in the diary." done @@ -1123,8 +1123,8 @@ Text034b: ; 3e9a0 (f:69a0) done Text034c: ; 3e9b2 (f:69b2) - text "Duel [",TX_RAM2,"]" - line "SELECT [",TX_RAM2,"]" + text "Duel [", TX_RAM2, "]" + line "SELECT [", TX_RAM2, "]" line "Receive many cards" line "To Pok`mon Dome 1" line "To Pok`mon Dome 2" @@ -1155,12 +1155,12 @@ Text0351: ; 3ea3a (f:6a3a) done TurnedPCOnText: ; 3ea69 (f:6a69) - text TX_RAM1,"" + text TX_RAM1, "" line "turned the PC on!" done TurnedPCOffText: ; 3ea7e (f:6a7e) - text TX_RAM1,"" + text TX_RAM1, "" line "turned the PC off!" done @@ -1189,7 +1189,7 @@ Text0358: ; 3eb16 (f:6b16) done Text0359: ; 3eb32 (f:6b32) - text " Mail ",TX_RAM1," " + text " Mail ", TX_RAM1, " " done Text035a: ; 3eb3e (f:6b3e) @@ -1287,7 +1287,7 @@ Text036f: ; 3ec74 (f:6c74) done Text0370: ; 3ecb9 (f:6cb9) - text " ",TX_RAM1," ",TX_RAM2,"" + text " ", TX_RAM1, " ", TX_RAM2, "" line " Master Medals Won ",$07,$0c,$06,"" line " Album ",$07,$6d,$06,"" line " Play time ",$07,$03,$5e,$06 @@ -1343,10 +1343,10 @@ Text0378: ; 3ef66 (f:6f66) done Text0379: ; 3efc3 (f:6fc3) - text TX_RAM1," is crazy about Pok`mon" + text TX_RAM1, " is crazy about Pok`mon" line "and Pok`mon card collecting!" line "One day," - line TX_RAM1," heard a rumor:" + line TX_RAM1, " heard a rumor:" line " \"The Legendary Pok`mon Cards..." line " the extremely rare and powerful " line " cards held by Pok`mon Trading " @@ -1355,7 +1355,7 @@ Text0379: ; 3efc3 (f:6fc3) line " for one to inherit the legend!\"" line "Dreaming of inheriting the" line "Legendary Pok`mon Cards," - line TX_RAM1," visits the Pok`mon" + line TX_RAM1, " visits the Pok`mon" line "card researcher, Dr. Mason..." done @@ -1440,26 +1440,26 @@ Text0384: ; 3f2c0 (f:72c0) done Text0385: ; 3f2c6 (f:72c6) - text "WIN ",TX_RAM3," Prizes Duel" - line "LOSE with ",TX_RAM2,"(",TX_RAM3,")" + text "WIN ", TX_RAM3, " Prizes Duel" + line "LOSE with ", TX_RAM2, "(", TX_RAM3, ")" done Text0386: ; 3f2f1 (f:72f1) - text " Use ",TX_RAM3,"'s Deck" + text " Use ", TX_RAM3, "'s Deck" done ReceivedBoosterPackText: ; 3f308 (f:7308) - text TX_RAM1," received a Booster" - line "Pack: ",TX_RAM2,"." + text TX_RAM1, " received a Booster" + line "Pack: ", TX_RAM2, "." done AndAnotherBoosterPackText: ; 3f327 (f:7327) text "...And another Booster Pack:" - line TX_RAM2,"." + line TX_RAM2, "." done CheckedCardsInBoosterPackText: ; 3f348 (f:7348) - text TX_RAM1," checked the cards" + text TX_RAM1, " checked the cards" line "in the Booster Pack!!" done @@ -1469,8 +1469,8 @@ Text038a: ; 3f373 (f:7373) done WonTheMedalText: ; 3f39b (f:739b) - text TX_RAM1,"" - line "Won the ",TX_RAM2," Medal!" + text TX_RAM1, "" + line "Won the ", TX_RAM2, " Medal!" done Text038c: ; 3f3af (f:73af) @@ -1515,11 +1515,11 @@ Text0394: ; 3f4d6 (f:74d6) done Text0395: ; 3f4f3 (f:74f3) - text TX_RAM2," ",TX_RAM2 + text TX_RAM2, " ", TX_RAM2 done Text0396: ; 3f4f9 (f:74f9) - text TX_RAM2," Deck" + text TX_RAM2, " Deck" done Text0397: ; 3f501 (f:7501) @@ -1846,51 +1846,51 @@ Text03e7: ; 3f823 (f:7823) done Text03e8: ; 3f82a (f:782a) - text TX_LVL,"60 MEWTWO " + text TX_LVL, "60 MEWTWO " done Text03e9: ; 3f838 (f:7838) - text TX_LVL,"8 MEW " + text TX_LVL, "8 MEW " done Text03ea: ; 3f842 (f:7842) - text TX_LVL,"34 ARCANINE" + text TX_LVL, "34 ARCANINE" done Text03eb: ; 3f851 (f:7851) - text TX_LVL,"16 PIKACHU" + text TX_LVL, "16 PIKACHU" done Text03ec: ; 3f85f (f:785f) - text TX_LVL,"13 SURFING PIKACHU" + text TX_LVL, "13 SURFING PIKACHU" done Text03ed: ; 3f875 (f:7875) - text TX_LVL,"20 ELECTABUZZ" + text TX_LVL, "20 ELECTABUZZ" done Text03ee: ; 3f886 (f:7886) - text TX_LVL,"9 SLOWPOKE" + text TX_LVL, "9 SLOWPOKE" done Text03ef: ; 3f894 (f:7894) - text TX_LVL,"12 JIGGLYPUFF" + text TX_LVL, "12 JIGGLYPUFF" done Text03f0: ; 3f8a5 (f:78a5) - text TX_LVL,"68 ZAPDOS" + text TX_LVL, "68 ZAPDOS" done Text03f1: ; 3f8b2 (f:78b2) - text TX_LVL,"37 MOLTRES" + text TX_LVL, "37 MOLTRES" done Text03f2: ; 3f8c0 (f:78c0) - text TX_LVL,"37 ARTICUNO" + text TX_LVL, "37 ARTICUNO" done Text03f3: ; 3f8cf (f:78cf) - text TX_LVL,"41 DRAGONITE" + text TX_LVL, "41 DRAGONITE" done Text03f4: ; 3f8df (f:78df) @@ -1898,7 +1898,7 @@ Text03f4: ; 3f8df (f:78df) done Text03f5: ; 3f8f7 (f:78f7) - text TX_LVL,"12 FLYING PIKACHU" + text TX_LVL, "12 FLYING PIKACHU" done Text03f6: ; 3f90c (f:790c) @@ -1935,7 +1935,7 @@ Text03fd: ; 3f9d0 (f:79d0) done Text03fe: ; 3f9f2 (f:79f2) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "How can I help you?" done @@ -1958,7 +1958,7 @@ Text0400: ; 3fa32 (f:7a32) done Text0401: ; 3faaa (f:7aaa) - text TX_RAM1,"," + text TX_RAM1, "," line "It's me, Doctor Mason." line "Are you getting the hang of" line "the Pok`mon Trading Card Game?" @@ -1995,7 +1995,7 @@ Text0402: ; 3fd72 (f:7d72) done Text0403: ; 3fe10 (f:7e10) - text TX_RAM1,"," + text TX_RAM1, "," line "It's me, Doctor Mason." line "I have some information for you" line "about Mitch's deck - he's " @@ -2010,7 +2010,7 @@ Text0403: ; 3fe10 (f:7e10) done Text0404: ; 3ff4d (f:7f4d) - text TX_RAM1,", I know you can do it!" + text TX_RAM1, ", I know you can do it!" line "Go win the Fighting Medal!" line "Mason Laboratory" line " Doctor Mason ;)" diff --git a/src/text/text4.asm b/src/text/text4.asm index c7e1f27..6aa3493 100644 --- a/src/text/text4.asm +++ b/src/text/text4.asm @@ -1,5 +1,5 @@ Text0405: ; 40000 (10:4000) - text TX_RAM1,"," + text TX_RAM1, "," line "It's me, Doctor Mason." line "I have some information about" line "Gene's deck - he's the Master " @@ -14,14 +14,14 @@ Text0405: ; 40000 (10:4000) done Text0406: ; 4014a (10:414a) - text TX_RAM1,"! Go defeat Gene," + text TX_RAM1, "! Go defeat Gene," line "the Master of the Rock Club!" line "Mason Laboratory" line " Doctor Mason ;)" done Text0407: ; 401a3 (10:41a3) - text TX_RAM1,"," + text TX_RAM1, "," line "It's me, Doctor Mason." line "I have some information for you" line "about Amy's deck - she's the " @@ -41,14 +41,14 @@ Text0407: ; 401a3 (10:41a3) done Text0408: ; 4033e (10:433e) - text TX_RAM1,"!" + text TX_RAM1, "!" line "Keep at it, and don't give up!" line "Mason Laboratory" line " Doctor Mason ;)" done Text0409: ; 40389 (10:4389) - text "How's it going, ",TX_RAM1,"?" + text "How's it going, ", TX_RAM1, "?" line "It's me, Doctor Mason." line "I have some information for you" line "about Isaac's deck - he's" @@ -120,7 +120,7 @@ Text040d: ; 40819 (10:4819) done Text040e: ; 409c6 (10:49c6) - text "Fight to the end, ",TX_START,TX_RAM1,"," + text "Fight to the end, ", TX_START, TX_RAM1, "," line "and don't give up!" line "Mason Laboratory" line " Dr. Mason ;)" @@ -128,7 +128,7 @@ Text040e: ; 409c6 (10:49c6) Text040f: ; 40a15 (10:4a15) text "It's me, Dr. Mason." - line "How are you doing, ",TX_RAM1,"?" + line "How are you doing, ", TX_RAM1, "?" line "I have some information for you" line "about Rick's deck - he's " line "the Master of the Science Club." @@ -148,7 +148,7 @@ Text040f: ; 40a15 (10:4a15) Text0410: ; 40bea (10:4bea) text "Win all 8 Master Medals, " line "" - text TX_RAM1,"!" + text TX_RAM1, "!" line "Mason Laboratory" line " Dr. Mason ;)" done @@ -226,7 +226,7 @@ Text0414: ; 40fca (10:4fca) done Text0415: ; 4123d (10:523d) - text TX_RAM1,"," + text TX_RAM1, "," line "It's me, Dr. Mason." line "You're finally going to be dueling" line "a Grand Master..." @@ -247,7 +247,7 @@ Text0415: ; 4123d (10:523d) done Text0416: ; 413f1 (10:53f1) - text TX_RAM1,"," + text TX_RAM1, "," line "It's me, Dr. Mason!" line "Grand Master Steve uses" line "the Legendary ZAPDOS." @@ -264,7 +264,7 @@ Text0416: ; 413f1 (10:53f1) line "using your Fighting Pok`mon." line "Defeat the Grand Masters," line "" - text TX_RAM1,"!!!" + text TX_RAM1, "!!!" line "Mason Laboratory" line " Dr. Mason ;)" line "p.s." @@ -284,7 +284,7 @@ Text0417: ; 415cf (10:55cf) line "His deck should be mostly" line "Water Pok`mon, so it will be" line "weak against Lightning Pok`mon!" - line "Go get 'em, ",TX_RAM1,"!" + line "Go get 'em, ", TX_RAM1, "!" line "You're almost there!" line "Mason Laboratory" line " Dr. Mason ;)" @@ -305,7 +305,7 @@ Text0418: ; 4174c (10:574c) line "of striking early. This is the " line "final test in inheriting " line "the Legendary Pok`mon Cards!" - line "Go, ",TX_RAM1,"!" + line "Go, ", TX_RAM1, "!" line "Be a part of the legend!" line "Mason Laboratory" line " Dr. Mason ;)" @@ -386,12 +386,12 @@ Text0423: ; 41cf7 (10:5cf7) done Text0424: ; 41d2a (10:5d2a) - text TX_RAM1," traded a Lapras" + text TX_RAM1, " traded a Lapras" line "for an Arcanine!" done Text0425: ; 41d4e (10:5d4e) - text "Thanks, ",TX_RAM1,"!" + text "Thanks, ", TX_RAM1, "!" line "I'll take good care" line "of this Lapras." done @@ -642,14 +642,14 @@ Text044d: ; 4294b (10:694b) done Text044e: ; 4296d (10:696d) - text "Was it ",TX_RAM1,"?" + text "Was it ", TX_RAM1, "?" line "I will be your next opponent." line "I, Amy, the Master of the " line "Water Club!" done Text044f: ; 429bd (10:69bd) - text "Aren't you ",TX_RAM1,"?" + text "Aren't you ", TX_RAM1, "?" line "So you decided you want to" line "duel me?" done @@ -698,7 +698,7 @@ Text0457: ; 42ba1 (10:6ba1) done Text0458: ; 42be9 (10:6be9) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "Nice to see you again!!!" line "Did you come to play the" line "Pok`mon Trading Card Game?" @@ -724,7 +724,7 @@ Text045b: ; 42d1e (10:6d1e) line "Card Game. I'm not into dueling." line "I prefer collecting the cards." line "By the way, would you happen to have" - line TX_RAM2,"?" + line TX_RAM2, "?" line "If you do, I was wondering if you" line "might want to give it to me?" line "How about it?" @@ -734,20 +734,20 @@ Text045c: ; 42df7 (10:6df7) text "Hi! It's you!" line "What's up?" line "Did you decide to give me" - line "your ",TX_RAM2,"?" + line "your ", TX_RAM2, "?" done Text045d: ; 42e33 (10:6e33) text "Hi! I see you're playing with" line "the cards again." line "By the way, I'm looking for" - line TX_RAM2," this time." + line TX_RAM2, " this time." line "If you should happen to have one," line "would you mind giving it to me?" done Text045e: ; 42ece (10:6ece) - text "Give away your ",TX_RAM2,"?" + text "Give away your ", TX_RAM2, "?" done Text045f: ; 42ee1 (10:6ee1) @@ -757,17 +757,17 @@ Text045f: ; 42ee1 (10:6ee1) done Text0460: ; 42f2d (10:6f2d) - text "But you don't have ",TX_RAM2,"!" + text "But you don't have ", TX_RAM2, "!" line "I appreciate your generosity, but " line "you can't give me what you don't " line "have. Come see me again after " - line "you get ",TX_RAM2,"." + line "you get ", TX_RAM2, "." done Text0461: ; 42fb3 (10:6fb3) text "You're going to give it to me?" line "Thank you!" - line "But your ",TX_RAM2,"" + line "But your ", TX_RAM2, "" line "is in your Deck." line "I can't take a card that you're" line "playing with!" @@ -786,7 +786,7 @@ Text0463: ; 430ab (10:70ab) line "me so many cards," line "please accept this card as a gift" line "from me to you." - line "It's a ",TX_LVL,"16 Pikachu." + line "It's a ", TX_LVL, "16 Pikachu." line "Please take good care of it!" done @@ -815,7 +815,7 @@ Text0467: ; 43221 (10:7221) line "I am the super musical star," line "Imakuni?!" line "I'll sing the Pok`Rap - You dance!" - line $07,$03,$63,TX_START,"La di da la di da" + line $07,$03,$63, TX_START, "La di da la di da" line " La di da la di da..." line "Hey!" line "Move those feet!" @@ -878,7 +878,7 @@ Text0471: ; 435a7 (10:75a7) line "You weren't too bad, but since " line "I won...Let's see you shake it!" line "Come on, shake it!!!" - line $07,$03,$63,TX_START,"La di da la di da" + line $07,$03,$63, TX_START, "La di da la di da" line " La di da la di da..." line "... You dance weird!" done diff --git a/src/text/text5.asm b/src/text/text5.asm index 404dbfa..16f26e9 100644 --- a/src/text/text5.asm +++ b/src/text/text5.asm @@ -692,7 +692,7 @@ Text04f4: ; 46aae (11:6aae) line "for Game Boy includes many " line "original cards, like the " line "" - text TX_LVL,"14 Meowth with the Cat Punch " + text TX_LVL, "14 Meowth with the Cat Punch " line "attack. There are many new cards," line "so go search them out!" done @@ -743,7 +743,7 @@ Text04fb: ; 46dcb (11:6dcb) Text04fc: ; 46dec (11:6dec) text "The first of the Legendary Pok`mon" - line "Cards is ",TX_LVL,"37 Moltres. With" + line "Cards is ", TX_LVL, "37 Moltres. With" line "Firegiver, you can place Fire" line "Energy cards in your hand! Also," line "Dive Bomb is a powerful attack!" @@ -757,7 +757,7 @@ Text04fd: ; 46ec2 (11:6ec2) Text04fe: ; 46ee3 (11:6ee3) text "The second Legendary Pok`mon Card" - line "is ",TX_LVL,"68 Zapdos. With Peal of" + line "is ", TX_LVL, "68 Zapdos. With Peal of" line "Thunder, just putting this card on" line "the bench causes damage!" line "Also, Big Thunder is a powerful" @@ -771,7 +771,7 @@ Text04ff: ; 46fb8 (11:6fb8) Text0500: ; 46fd9 (11:6fd9) text "The third Legendary Pok`mon Card" - line "is ",TX_LVL,"37 Articuno. Its Quickfreeze" + line "is ", TX_LVL, "37 Articuno. Its Quickfreeze" line "will paralyze opponents' Pok`mon" line "when the card is put in play!" line "Also, Ice Breath is a powerful" @@ -785,7 +785,7 @@ Text0501: ; 470b3 (11:70b3) Text0502: ; 470d4 (11:70d4) text "The fourth Legendary Pok`mon Card" - line "is ",TX_LVL,"41 Dragonite. Its Healing" + line "is ", TX_LVL, "41 Dragonite. Its Healing" line "Wind will heal damage done to " line "Pok`mon when this card is played!" line "Also, Slam is a powerful attack!" @@ -864,14 +864,14 @@ Text050c: ; 475ab (11:75ab) done Text050d: ; 47644 (11:7644) - text "Most unfortunate, ",TX_RAM1,"." + text "Most unfortunate, ", TX_RAM1, "." line "Once you enter, you won't be able" line "to re-enter for some time. " line "Please try again another day." done Text050e: ; 476b6 (11:76b6) - text "Congratulations, ",TX_RAM1,"!" + text "Congratulations, ", TX_RAM1, "!" line "You received a card!" line "Please join us for the next " line "Challenge Cup, too." @@ -919,7 +919,7 @@ Text0514: ; 47913 (11:7913) done Text0515: ; 47984 (11:7984) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "Are you competing, too?" done @@ -927,13 +927,13 @@ Text0516: ; 479a4 (11:79a4) text "I'm the one who's going to" line "defeat 3 opponents! The prize, " line "" - text TX_LVL,"60 Mewtwo, belongs to me!" + text TX_LVL, "60 Mewtwo, belongs to me!" line "You just sit tight and watch me win!" line "See Ya! Ha ha ha ha ha ha!" done Text0517: ; 47a3d (11:7a3d) - text "Hey, it's ",TX_RAM1," - the loser" + text "Hey, it's ", TX_RAM1, " - the loser" line "of the Challenge Cup!" done @@ -947,26 +947,26 @@ Text0518: ; 47a6c (11:7a6c) done Text0519: ; 47b25 (11:7b25) - text "Hey ",TX_RAM1,", too bad " + text "Hey ", TX_RAM1, ", too bad " line "you're too late!" done Text051a: ; 47b47 (11:7b47) text "The Challenge Cup is over! I" line "defeated 3 opponents and won" - line "the prize - ",TX_LVL,"60 Mewtwo!" + line "the prize - ", TX_LVL, "60 Mewtwo!" line "See ya! Ha ha ha ha ha ha!" done Text051b: ; 47bb6 (11:7bb6) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "What are you doing here?" done Text051c: ; 47bd7 (11:7bd7) text "The Challenge Cup is over! I" line "defeated 3 opponents and won" - line "the prize - ",TX_LVL,"60 Mewtwo!" + line "the prize - ", TX_LVL, "60 Mewtwo!" line "I guess you could try entering" line "the next Challenge Cup, but " line "you won't have a chance since " @@ -975,7 +975,7 @@ Text051c: ; 47bd7 (11:7bd7) done Text051d: ; 47cb9 (11:7cb9) - text "Hey, ",TX_RAM1,"." + text "Hey, ", TX_RAM1, "." line "We meet again." done @@ -983,14 +983,14 @@ Text051e: ; 47cd1 (11:7cd1) text "No matter who enters the Challenge" line "Cup, I'll be the winner! " line "" - text TX_LVL,"8 Mew, this Cup's prize, will " + text TX_LVL, "8 Mew, this Cup's prize, will " line "belong to me! Why don't you just" line "give up and go home!" line "See ya! Ha ha ha ha ha ha!" done Text051f: ; 47d82 (11:7d82) - text "Hey, it's ",TX_RAM1," - the" + text "Hey, it's ", TX_RAM1, " - the" line "loser of the Challenge Cup!" done @@ -1003,7 +1003,7 @@ Text0520: ; 47db1 (11:7db1) done Text0521: ; 47e4f (11:7e4f) - text "Hey, isn't that ",TX_RAM1,"?" + text "Hey, isn't that ", TX_RAM1, "?" line "Late as always!" done @@ -1012,11 +1012,11 @@ Text0522: ; 47e73 (11:7e73) line "over! What? Who won?" line "Who do you expect!?! Me, of " line "course! The prize belongs to" - line "me! ",TX_LVL,"8 Mew! See ya!" + line "me! ", TX_LVL, "8 Mew! See ya!" line "Ha ha ha ha ha ha!" done Text0523: ; 47f08 (11:7f08) - text "Hey, ",TX_RAM1,"!" + text "Hey, ", TX_RAM1, "!" line "What are you doing here?" done diff --git a/src/text/text6.asm b/src/text/text6.asm index 5cbf6dd..78e60cb 100644 --- a/src/text/text6.asm +++ b/src/text/text6.asm @@ -1,7 +1,7 @@ Text0524: ; 48000 (12:4000) text "The Challenge Cup is over already! " line "Too bad you couldn't enter!" - line "The prize belongs to me! ",TX_LVL,"8 Mew!" + line "The prize belongs to me! ", TX_LVL, "8 Mew!" line "You really should enter the next" line "Challenge Cup! But then again, " line "why bother, since I'll also win " @@ -55,14 +55,14 @@ Text052b: ; 48376 (12:4376) text "The first Challenge Cup is" line "now underway!" line "Defeat 3 opponents to win the" - line "wonderful prize of ",TX_LVL,"60 Mewtwo!" + line "wonderful prize of ", TX_LVL, "60 Mewtwo!" done Text052c: ; 483de (12:43de) text "The second Challenge Cup is" line "now under way!" line "Defeat 3 opponents to win the" - line "wonderful prize of ",TX_LVL,"8 Mew!" + line "wonderful prize of ", TX_LVL, "8 Mew!" done Text052d: ; 48444 (12:4444) @@ -98,12 +98,12 @@ Text0532: ; 4856a (12:456a) done Text0533: ; 485a2 (12:45a2) - text "Presently, ",TX_RAM1," is still" + text "Presently, ", TX_RAM1, " is still" line "a contender!" done Text0534: ; 485c6 (12:45c6) - text TX_RAM1," is the new challenger!" + text TX_RAM1, " is the new challenger!" done Text0535: ; 485e0 (12:45e0) @@ -113,22 +113,22 @@ Text0535: ; 485e0 (12:45e0) done Text0536: ; 48612 (12:4612) - text "The winner is ",TX_RAM2,"!!" + text "The winner is ", TX_RAM2, "!!" line "" - text TX_RAM2," has defeated 2 opponents!" + text TX_RAM2, " has defeated 2 opponents!" line "Just 1 more opponent to go" line "before winning the prize!" done Text0537: ; 48677 (12:4677) - text "Too bad, ",TX_RAM1,"." + text "Too bad, ", TX_RAM1, "." line "Have a safe trip home!" done Text0538: ; 4869b (12:469b) - text "The Winner is ",TX_RAM2,"!!!" + text "The Winner is ", TX_RAM2, "!!!" line "" - text TX_RAM2," has defeated 1 opponent!" + text TX_RAM2, " has defeated 1 opponent!" line "2 more opponents to go" line "before winning the prize!" done @@ -136,7 +136,7 @@ Text0538: ; 4869b (12:469b) Text0539: ; 486fc (12:46fc) text "How unfortunate!" line "Unable to defeat the last opponent!" - line "It was close, but ",TX_RAM1," was " + line "It was close, but ", TX_RAM1, " was " line "defeated by the third opponent!" done @@ -150,26 +150,26 @@ Text053b: ; 487c0 (12:47c0) text "Ha ha ha! How about that!?!" line "I win!!" line "2 more opponents to go and" - line "the ",TX_LVL,"8 Mew belongs to me!" + line "the ", TX_LVL, "8 Mew belongs to me!" done Text053c: ; 4881b (12:481b) text "Congratulations!" - line "The Winner is ",TX_RAM1,"!" + line "The Winner is ", TX_RAM1, "!" line "" - text TX_RAM1," has defeated" + text TX_RAM1, " has defeated" line "1 opponent!!!" done Text053d: ; 4885c (12:485c) - text "Way to go, ",TX_RAM1,"!" + text "Way to go, ", TX_RAM1, "!" line "That's 2 wins!!!" line "One more opponent to go before" line "winning the Challenge Cup!" done Text053e: ; 488b6 (12:48b6) - text "Most unfortunate, ",TX_RAM2,"." + text "Most unfortunate, ", TX_RAM2, "." line "Have a safe trip home!" done @@ -180,27 +180,27 @@ Text053f: ; 488e3 (12:48e3) Text0540: ; 48904 (12:4904) text "Our new challenger is..." line "" - text TX_RAM2,"!" + text TX_RAM2, "!" done Text0541: ; 48922 (12:4922) text "The third opponent is" line "" - text TX_RAM2,"!" + text TX_RAM2, "!" done Text0542: ; 4893d (12:493d) - text "Hey, ",TX_RAM1,"!" + text "Hey, ", TX_RAM1, "!" line "I'm not gonna lose to you!" line "" - text TX_LVL,"60 Mewtwo belongs to me!!!" + text TX_LVL, "60 Mewtwo belongs to me!!!" done Text0543: ; 4897f (12:497f) - text TX_RAM1,"!" + text TX_RAM1, "!" line "I'm going to defeat you!" line "" - text TX_LVL,"8 Mew belongs to me!!!" + text TX_LVL, "8 Mew belongs to me!!!" done Text0544: ; 489b6 (12:49b6) @@ -217,12 +217,12 @@ Text0546: ; 489f5 (12:49f5) done Text0547: ; 48a09 (12:4a09) - text "Well then, ",TX_RAM1,"!" + text "Well then, ", TX_RAM1, "!" line "Let the second match begin!" done Text0548: ; 48a34 (12:4a34) - text "Well, ",TX_RAM1,", let the third," + text "Well, ", TX_RAM1, ", let the third," line "and final, match begin!" done @@ -237,7 +237,7 @@ Text054a: ; 48a90 (12:4a90) done Text054b: ; 48abf (12:4abf) - text "Most unfortunate, ",TX_RAM2,"." + text "Most unfortunate, ", TX_RAM2, "." line "Do try again in the next" line "Challenge Cup." done @@ -252,31 +252,31 @@ Text054d: ; 48b25 (12:4b25) done Text054e: ; 48b3f (12:4b3f) - text TX_RAM1,"!" + text TX_RAM1, "!" line "I won't lose next time!" done Text054f: ; 48b5b (12:4b5b) - text TX_RAM1,"!" + text TX_RAM1, "!" line "I'll win next time!" done Text0550: ; 48b73 (12:4b73) text "The Winner of this Challenge Cup " - line "is ",TX_START,TX_RAM1,"!!!" + line "is ", TX_START, TX_RAM1, "!!!" done Text0551: ; 48b9f (12:4b9f) - text TX_RAM1,", your prize" - line "is ",TX_RAM2,"!" + text TX_RAM1, ", your prize" + line "is ", TX_RAM2, "!" done Text0552: ; 48bb4 (12:4bb4) - text "Congratulations, ",TX_START,TX_RAM1,"!!!" + text "Congratulations, ", TX_START, TX_RAM1, "!!!" done Text0553: ; 48bcc (12:4bcc) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "What are you doing here?" done @@ -296,9 +296,9 @@ Text0555: ; 48c87 (12:4c87) done Text0556: ; 48cf5 (12:4cf5) - text "Hey, ",TX_RAM1,"!" - line "You only have ",TX_RAM3," Medals!" - line "I've already collected ",TX_RAM3,"!" + text "Hey, ", TX_RAM1, "!" + line "You only have ", TX_RAM3, " Medals!" + line "I've already collected ", TX_RAM3, "!" line "Why don't you just give up? See ya!" done @@ -329,7 +329,7 @@ Text055a: ; 48eb8 (12:4eb8) done Text055b: ; 48f10 (12:4f10) - text "You're very good, ",TX_RAM1,"." + text "You're very good, ", TX_RAM1, "." line "Please take care of my card." done @@ -352,7 +352,7 @@ Text055e: ; 48fcb (12:4fcb) Text055f: ; 48ff9 (12:4ff9) text "You've really improved your " - line "game, ",TX_START,TX_RAM1,"." + line "game, ", TX_START, TX_RAM1, "." line "Use my card to make it better!" done @@ -361,7 +361,7 @@ Text0560: ; 49040 (12:5040) line "The Legendary Cards seem pleased" line "to be passed on to you" line "" - text TX_RAM1,". Hurry and go through" + text TX_RAM1, ". Hurry and go through" line "to the Hall of Honor!" done @@ -372,14 +372,14 @@ Text0561: ; 490c6 (12:50c6) done Text0562: ; 4911e (12:511e) - text TX_RAM1,", That is not the way" + text TX_RAM1, ", That is not the way" line "to the Hall of Honor." - line "Hurry, ",TX_START,TX_RAM1,"! Go through to" + line "Hurry, ", TX_START, TX_RAM1, "! Go through to" line "the Hall of Honor!" done Text0563: ; 49178 (12:5178) - text TX_RAM1,", if you leave the " + text TX_RAM1, ", if you leave the " line "Grand Hall, you must defeat " line "each of us again to enter" line "the Hall of Honor." @@ -460,7 +460,7 @@ Text0570: ; 49506 (12:5506) done Text0571: ; 49570 (12:5570) - text TX_RAM1,"," + text TX_RAM1, "," line "take your place at the table." done @@ -521,12 +521,12 @@ Text057a: ; 49864 (12:5864) done Text057b: ; 498b8 (12:58b8) - text "Very good, ",TX_RAM1,"!" + text "Very good, ", TX_RAM1, "!" line "Your second opponent is Steve!" done Text057c: ; 498e6 (12:58e6) - text TX_RAM1,"! Next, you must duel " + text TX_RAM1, "! Next, you must duel " line "Steve!" done @@ -538,12 +538,12 @@ Text057d: ; 49906 (12:5906) done Text057e: ; 49980 (12:5980) - text "Hey, ",TX_RAM1,"!" + text "Hey, ", TX_RAM1, "!" line "Come battle Steve!" done Text057f: ; 4999c (12:599c) - text "Is your Deck ready, ",TX_START,TX_RAM1,"?" + text "Is your Deck ready, ", TX_START, TX_RAM1, "?" done Text0580: ; 499b5 (12:59b5) @@ -587,12 +587,12 @@ Text0586: ; 49b27 (12:5b27) done Text0587: ; 49b50 (12:5b50) - text "Very good, ",TX_RAM1,"." + text "Very good, ", TX_RAM1, "." line "Your next opponent is Jack!" done Text0588: ; 49b7b (12:5b7b) - text "That's great, ",TX_RAM1,"!" + text "That's great, ", TX_RAM1, "!" line "Jack is your next opponent!" done @@ -609,7 +609,7 @@ Text058a: ; 49c1c (12:5c1c) done Text058b: ; 49c5f (12:5c5f) - text TX_RAM1,"," + text TX_RAM1, "," line "have you readied your deck?" done @@ -682,7 +682,7 @@ Text0597: ; 49f7e (12:5f7e) done Text0598: ; 49fb5 (12:5fb5) - text "Is your Deck ready, ",TX_START,TX_RAM1,"?" + text "Is your Deck ready, ", TX_START, TX_RAM1, "?" done Text0599: ; 49fce (12:5fce) @@ -719,7 +719,7 @@ Text059f: ; 4a11a (12:611a) text "Wha-what on earth? Even" line "I, Rod, have been defeated?!?" line "Wonderful! This is wonderful!!" - line "Congratulations, ",TX_RAM1,". " + line "Congratulations, ", TX_RAM1, ". " line "You have proven yourself worthy" line "enough to inherit the" line "Legendary Pok`mon Cards!!!" @@ -727,7 +727,7 @@ Text059f: ; 4a11a (12:611a) done Text05a0: ; 4a1e1 (12:61e1) - text "Congratulations, ",TX_RAM1,"!" + text "Congratulations, ", TX_RAM1, "!" line "You're a master duelist!!!" line "But..." done @@ -744,7 +744,7 @@ Text05a2: ; 4a26c (12:626c) done Text05a3: ; 4a289 (12:6289) - text "Congratulations, ",TX_RAM1,"!" + text "Congratulations, ", TX_RAM1, "!" line "You're a master duelist!" done @@ -767,7 +767,7 @@ Text05a6: ; 4a369 (12:6369) line "allowed! He, too, has earned " line "the right to inherit the " line "Legendary Pok`mon Cards!" - line "Ronald! ",TX_RAM1,"!" + line "Ronald! ", TX_RAM1, "!" line "You two must duel to determine who " line "will inherit the Legendary Pok`mon " line "Cards. So say the Rules!" @@ -782,11 +782,11 @@ Text05a8: ; 4a452 (12:6452) line "Ronald!!!" line "I'll take your challenge," line "" - text TX_RAM1,"!" + text TX_RAM1, "!" done Text05a9: ; 4a49a (12:649a) - text "Is your Deck ready, ",TX_START,TX_RAM1,"?" + text "Is your Deck ready, ", TX_START, TX_RAM1, "?" done Text05aa: ; 4a4b3 (12:64b3) @@ -802,7 +802,7 @@ Text05ac: ; 4a4f5 (12:64f5) text "I was here first! The Legendary" line "Pok`mon Cards belong to me!" line "I'll make it all too clear to" - line "you, ",TX_START,TX_RAM1,"!" + line "you, ", TX_START, TX_RAM1, "!" done Text05ad: ; 4a559 (12:6559) @@ -827,7 +827,7 @@ Text05af: ; 4a65c (12:665c) Text05b0: ; 4a67f (12:667f) text "I'm sorry, but the Legendary Pok`mon" - line "Cards have chosen ",TX_RAM1,"." + line "Cards have chosen ", TX_RAM1, "." done Text05b1: ; 4a6ba (12:66ba) @@ -843,7 +843,7 @@ Text05b2: ; 4a6f4 (12:66f4) done Text05b3: ; 4a72d (12:672d) - text "Congratulations, ",TX_RAM1,"!" + text "Congratulations, ", TX_RAM1, "!" line "You are a Card Master" line "worthy of inheriting" line "the Legendary Pok`mon Cards!" @@ -961,7 +961,7 @@ Text05c0: ; 4af26 (12:6f26) done Text05c1: ; 4afb0 (12:6fb0) - text TX_RAM1," received some " + text TX_RAM1, " received some " line "Energy cards!" done @@ -987,7 +987,7 @@ Text05c4: ; 4b129 (12:7129) text "You finally inherited the" line "Legendary Pok`mon Cards!" line "Amazing!" - line "Congratulations, ",TX_RAM1,"!!!" + line "Congratulations, ", TX_RAM1, "!!!" done Text05c5: ; 4b17c (12:717c) @@ -1005,7 +1005,7 @@ Text05c6: ; 4b274 (12:7274) text "Congratulations on inheriting " line "the Legendary Pok`mon Cards," line "" - text TX_RAM1,"! Now you should try" + text TX_RAM1, "! Now you should try" line "dueling different people using the" line "cards you inherited. I'm sure " line "you'll have a good time!" @@ -1048,7 +1048,7 @@ Text05ca: ; 4b4ea (12:74ea) line "opponents, you win! You can also " line "play to extend your winning " line "streak! Build a deck and " - line "give it a try, ",TX_RAM1,"!" + line "give it a try, ", TX_RAM1, "!" done Text05cb: ; 4b63e (12:763e) @@ -1129,8 +1129,8 @@ Text05d7: ; 4ba32 (12:7a32) line "by attacking. Pok`mon need Energy " line "cards in order to attack." line "For example, the energy required " - line "for Seaking's Waterfall is ",TX_WATER,TX_COLORLESS,"." - line TX_WATER,TX_COLORLESS," stands for 1 Water Energy " + line "for Seaking's Waterfall is ", TX_WATER, TX_COLORLESS, "." + line TX_WATER, TX_COLORLESS, " stands for 1 Water Energy " line "card and another Energy card of " line "any type. The energy required " line "differs according to the attack." diff --git a/src/text/text7.asm b/src/text/text7.asm index 76e2c47..d7b9b51 100644 --- a/src/text/text7.asm +++ b/src/text/text7.asm @@ -69,7 +69,7 @@ Text05e0: ; 4c5a1 (13:45a1) done Text05e1: ; 4c66a (13:466a) - text "Congratulations, ",TX_RAM1,"!" + text "Congratulations, ", TX_RAM1, "!" line "I hear you have inherited the" line "Legendary Pok`mon Cards!" line "The strength of a Deck does" @@ -94,7 +94,7 @@ Text05e2: ; 4c786 (13:4786) done Text05e3: ; 4c86f (13:486f) - text "Oh! Why the rush, ",TX_RAM1,"?" + text "Oh! Why the rush, ", TX_RAM1, "?" line "What? " line "You want to learn how to play" line "the Pok`mon Trading Card Game?" @@ -112,7 +112,7 @@ Text05e3: ; 4c86f (13:486f) Text05e4: ; 4c9d7 (13:49d7) text "Yes, Dr. Mason." - line "Hello, ",TX_RAM1,"." + line "Hello, ", TX_RAM1, "." done Text05e5: ; 4c9f2 (13:49f2) @@ -121,7 +121,7 @@ Text05e5: ; 4c9f2 (13:49f2) done Text05e6: ; 4ca0c (13:4a0c) - text "Hey! ",TX_RAM1,"!" + text "Hey! ", TX_RAM1, "!" line "Hurry and come here!" done @@ -131,7 +131,7 @@ Text05e7: ; 4ca2a (13:4a2a) done Text05e8: ; 4ca52 (13:4a52) - text "OK, ",TX_RAM1,"." + text "OK, ", TX_RAM1, "." line "What do you want to ask about?" done @@ -196,31 +196,31 @@ Text05f0: ; 4ce5a (13:4e5a) done Text05f1: ; 4ce96 (13:4e96) - text TX_RAM1," handed his cards to " + text TX_RAM1, " handed his cards to " line "Dr. Mason." done Text05f2: ; 4ceb9 (13:4eb9) text "Hmm...let me add some of my own " line "cards to yours!" - line "Now, ",TX_RAM1,", what kind" + line "Now, ", TX_RAM1, ", what kind" line "of Deck do you want?" done Text05f3: ; 4cf12 (13:4f12) - text "A ",TX_RAM2,"?" + text "A ", TX_RAM2, "?" done Text05f4: ; 4cf18 (13:4f18) - text "OK, a ",TX_RAM2,"!" + text "OK, a ", TX_RAM2, "!" line "Here are the remaining cards!" done Text05f5: ; 4cf40 (13:4f40) - text TX_RAM1," received" - line "a ",TX_RAM2,"!" + text TX_RAM1, " received" + line "a ", TX_RAM2, "!" line "" - text TX_RAM1," received" + text TX_RAM1, " received" line "30 cards!" done @@ -284,7 +284,7 @@ Text05fb: ; 4d361 (13:5361) done Text05fc: ; 4d423 (13:5423) - text TX_RAM1,", thanks to you, all" + text TX_RAM1, ", thanks to you, all" line "the Auto Deck Machines have" line "been activated!" done @@ -312,7 +312,7 @@ Text0600: ; 4d531 (13:5531) done Text0601: ; 4d56a (13:556a) - text "Is it ",TX_RAM2,"?" + text "Is it ", TX_RAM2, "?" done Text0602: ; 4d574 (13:5574) @@ -341,17 +341,17 @@ Text0606: ; 4d655 (13:5655) done Text0607: ; 4d676 (13:5676) - text "It's a ",TX_RAM2," Medal" + text "It's a ", TX_RAM2, " Medal" line "Auto Deck Machine." done Text0608: ; 4d699 (13:5699) text "It isn't working since the " - line TX_RAM2," Medal is not inserted." + line TX_RAM2, " Medal is not inserted." done Text0609: ; 4d6cf (13:56cf) - text "Insert the ",TX_RAM2," Medal?" + text "Insert the ", TX_RAM2, " Medal?" done Text060a: ; 4d6e4 (13:56e4) @@ -382,25 +382,25 @@ Text060e: ; 4d767 (13:5767) Text060f: ; 4d7fc (13:57fc) text "Hey! Kid!" - line "I've got a ",TX_LVL,"20 Electabuzz," + line "I've got a ", TX_LVL, "20 Electabuzz," line "but what I really want is" - line "a ",TX_LVL,"35 Electabuzz!" + line "a ", TX_LVL, "35 Electabuzz!" line "Hey! Kid! Do you have a" line "" - text TX_LVL,"35 Electabuzz?" + text TX_LVL, "35 Electabuzz?" done Text0610: ; 4d87a (13:587a) text "Hey! Kid!" line "We meet again!" - line "Do you have a ",TX_LVL,"35 Electabuzz?" + line "Do you have a ", TX_LVL, "35 Electabuzz?" line "Come on! Trade it for my" line "" - text TX_LVL,"20 Electabuzz!" + text TX_LVL, "20 Electabuzz!" done Text0611: ; 4d8de (13:58de) - text "Trade your ",TX_LVL,"35 Electabuzz?" + text "Trade your ", TX_LVL, "35 Electabuzz?" done Text0612: ; 4d8fb (13:58fb) @@ -413,14 +413,14 @@ Text0612: ; 4d8fb (13:58fb) Text0613: ; 4d938 (13:5938) text "Hey, kid!" line "It's not cool to lie!" - line "You don't own a ",TX_LVL,"35 Electabuzz!" + line "You don't own a ", TX_LVL, "35 Electabuzz!" line "You could get hurt lying to me, kid!" done Text0614: ; 4d99f (13:599f) text "You're gonna trade me your" line "" - text TX_LVL,"35 Electabuzz?" + text TX_LVL, "35 Electabuzz?" line "Way cool!...Hey! Wait, kid!" line "That card's in your Deck!" line "It isn't cool to take that card!" @@ -432,10 +432,10 @@ Text0614: ; 4d99f (13:599f) Text0615: ; 4da6d (13:5a6d) text "You're gonna trade me your" line "" - text TX_LVL,"35 Electabuzz? Way cool, kid!" + text TX_LVL, "35 Electabuzz? Way cool, kid!" line "OK, I'll trade you my" line "" - text TX_LVL,"20 Electabuzz for it!" + text TX_LVL, "20 Electabuzz for it!" done Text0616: ; 4dad9 (13:5ad9) @@ -445,8 +445,8 @@ Text0616: ; 4dad9 (13:5ad9) Text0617: ; 4dafe (13:5afe) text "Whoa! Cool, kid! Thanks for " - line "that ",TX_LVL,"35 Electabuzz! " - line "My ",TX_LVL,"20 Electabuzz is a cool card!" + line "that ", TX_LVL, "35 Electabuzz! " + line "My ", TX_LVL, "20 Electabuzz is a cool card!" line "Charge it up with Electabuzz!" done @@ -465,7 +465,7 @@ Text0619: ; 4dbcb (13:5bcb) done Text061a: ; 4dc30 (13:5c30) - text "Hey! ",TX_RAM1,"!" + text "Hey! ", TX_RAM1, "!" line "You beat the Grand Masters?" line "Cool! Got all the Legendary " line "Pok`mon Cards? Yeah!" @@ -710,14 +710,14 @@ Text0644: ; 4e774 (13:6774) done Text0645: ; 4e7e1 (13:67e1) - text "Well, getting the ",TX_RAM2," Medal " + text "Well, getting the ", TX_RAM2, " Medal " line "wasn't that hard! If I keep " line "this up, I should be able to get " line "the Legendary Pok`mon Cards!" done Text0646: ; 4e859 (13:6859) - text "What? It's you, ",TX_RAM1,"!" + text "What? It's you, ", TX_RAM1, "!" line "What are you doing?" line "Huh? That's a Deck!" line "Are you... trying to get the" @@ -752,12 +752,12 @@ Text0649: ; 4e991 (13:6991) line "'Cause the Legendary Pok`mon Cards" line "are gonna be mine!" line "I already won the first Medal!" - line "See ya, ",TX_RAM1,"!" + line "See ya, ", TX_RAM1, "!" line "Ha ha ha ha ha!!!" done Text064a: ; 4eb39 (13:6b39) - text "Hi, ",TX_RAM1,"!" + text "Hi, ", TX_RAM1, "!" line "How ya doin'?" done @@ -793,7 +793,7 @@ Text064e: ; 4ec9a (13:6c9a) done Text064f: ; 4ed1c (13:6d1c) - text "Hi, ",TX_RAM1,"!" + text "Hi, ", TX_RAM1, "!" line "Have you gotten any better?" done @@ -938,7 +938,7 @@ Text0663: ; 4f522 (13:7522) done Text0664: ; 4f574 (13:7574) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "So you've finally come this far?" line "I've already won 5 Medals!" line "By the time you win your 8th Medal," diff --git a/src/text/text8.asm b/src/text/text8.asm index f7dd0a1..4860e03 100644 --- a/src/text/text8.asm +++ b/src/text/text8.asm @@ -13,7 +13,7 @@ Text0685: ; 5005b (14:405b) done Text0686: ; 500df (14:40df) - text "Hello, ",TX_RAM1,"!" + text "Hello, ", TX_RAM1, "!" line "I just came up with a new card" line "strategy and was looking for" line "someone to test it on." @@ -65,7 +65,7 @@ Text068d: ; 5037f (14:437f) line "date. Why do I have to do it?" line "Why me?" line "I'm Jessica of the Fighting Club." - line "Oh! You must be ",TX_RAM1,"." + line "Oh! You must be ", TX_RAM1, "." line "I heard about you from Mitch." line "Defeating you should be more" line "fun than training!" @@ -75,7 +75,7 @@ Text068e: ; 5044a (14:444a) text "Training's so boring and out of " line "date. Why do I have to do it?" line "" - text TX_RAM1,", it's you again!" + text TX_RAM1, ", it's you again!" line "What a pain." line "But defeating you should be more" line "fun than training." @@ -188,7 +188,7 @@ Text069f: ; 50988 (14:4988) done Text06a0: ; 509d3 (14:49d3) - text TX_RAM1," lost all " + text TX_RAM1, " lost all " line "his Energy cards!" done @@ -206,11 +206,11 @@ Text06a1: ; 509f2 (14:49f2) done Text06a2: ; 50a9e (14:4a9e) - text TX_RAM1,"" + text TX_RAM1, "" line "checked the wall!" line "" - text TX_RAM1,"" - line "found a ",TX_LVL,"9 Slowpoke!" + text TX_RAM1, "" + line "found a ", TX_LVL, "9 Slowpoke!" done Text06a3: ; 50acc (14:4acc) @@ -472,7 +472,7 @@ Text06cd: ; 51720 (14:5720) Text06ce: ; 5175f (14:575f) text "OK, " - line "To ",TX_RAM2,"." + line "To ", TX_RAM2, "." line "Please write in your Diary before" line "the transaction." done @@ -487,7 +487,7 @@ Text06d0: ; 517b4 (14:57b4) done Text06d1: ; 517f7 (14:57f7) - text TX_RAM1,"" + text TX_RAM1, "" line "wrote in the Diary." done @@ -498,21 +498,21 @@ Text06d2: ; 5180e (14:580e) Text06d3: ; 5182d (14:582d) text "You sent a card to" - line TX_RAM2,"!" + line TX_RAM2, "!" line "Thank you." line "Please come again." done Text06d4: ; 51862 (14:5862) text "You sent the configuration for" - line "the ",TX_RAM2," Deck!" + line "the ", TX_RAM2, " Deck!" line "Thank you." line "Please come again." done Text06d5: ; 518ac (14:58ac) text "You received the configuration for" - line "the ",TX_RAM2," Deck!" + line "the ", TX_RAM2, " Deck!" line "Thank you." line "Please come again." done @@ -544,14 +544,14 @@ Text06d8: ; 51a6f (14:5a6f) line "are girls." line "But I can't beat girls who" line "are this tough!" - line "Huh? You must be ",TX_RAM1,"." + line "Huh? You must be ", TX_RAM1, "." line "Mitch told me all about you." line "Beating you will be much better" line "than losing to the girls!" done Text06d9: ; 51b2e (14:5b2e) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "Would you duel me?" done @@ -697,7 +697,7 @@ Text06f1: ; 521a8 (14:61a8) done Text06f2: ; 521d8 (14:61d8) - text TX_RAM1," traded an Oddish" + text TX_RAM1, " traded an Oddish" line "for a Vileplume!" done @@ -747,7 +747,7 @@ Text06f9: ; 523c4 (14:63c4) done Text06fa: ; 523f0 (14:63f0) - text TX_RAM1," traded a Clefairy" + text TX_RAM1, " traded a Clefairy" line "for a Pikachu!" done @@ -792,7 +792,7 @@ Text0700: ; 525d9 (14:65d9) done Text0701: ; 5260b (14:660b) - text TX_RAM1," traded a Charizard" + text TX_RAM1, " traded a Charizard" line "for a Blastoise!" done @@ -941,7 +941,7 @@ Text0718: ; 52cc3 (14:6cc3) done Text0719: ; 52d1a (14:6d1a) - text "Hello, ",TX_RAM1,"." + text "Hello, ", TX_RAM1, "." line "Did you come for a Duel?" done @@ -1050,7 +1050,7 @@ Text0727: ; 53245 (14:7245) done Text0728: ; 53368 (14:7368) - text "Hello, ",TX_RAM1,"." + text "Hello, ", TX_RAM1, "." line "Welcome." line "There aren't any cards I want " line "or can trade at the moment." @@ -1061,7 +1061,7 @@ Text0728: ; 53368 (14:7368) done Text0729: ; 53435 (14:7435) - text "Hello, ",TX_RAM1,"." + text "Hello, ", TX_RAM1, "." line "I guess you're here because you" line "heard the rumor that I'm looking" line "for a Clefable..." @@ -1071,7 +1071,7 @@ Text0729: ; 53435 (14:7435) done Text072a: ; 534e1 (14:74e1) - text "Hello, ",TX_RAM1,"." + text "Hello, ", TX_RAM1, "." line "Are you enjoying the " line "Pok`mon Trading Card Game?" line "By the way, I'm looking for a " @@ -1114,7 +1114,7 @@ Text072f: ; 536f6 (14:76f6) done Text0730: ; 5371b (14:771b) - text TX_RAM1," traded a Clefable" + text TX_RAM1, " traded a Clefable" line "for a Surfing Pikachu!" done @@ -1124,7 +1124,7 @@ Text0731: ; 53747 (14:7747) done Text0732: ; 5377f (14:777f) - text "Hello, ",TX_RAM1,"." + text "Hello, ", TX_RAM1, "." line "I suppose you're here because you" line "heard that I was looking for" line "a Ditto this time..." @@ -1134,7 +1134,7 @@ Text0732: ; 5377f (14:777f) done Text0733: ; 53829 (14:7829) - text "Hello, ",TX_RAM1,". " + text "Hello, ", TX_RAM1, ". " line "Are you enjoying the" line "Pok`mon Trading Card Game?" line "I'm looking for a Ditto" @@ -1163,7 +1163,7 @@ Text0735: ; 5395a (14:795a) done Text0736: ; 539ed (14:79ed) - text TX_RAM1," traded a Ditto" + text TX_RAM1, " traded a Ditto" line "for a Flying Pikachu!" done @@ -1173,7 +1173,7 @@ Text0737: ; 53a15 (14:7a15) done Text0738: ; 53a4a (14:7a4a) - text "Hello, ",TX_RAM1,"." + text "Hello, ", TX_RAM1, "." line "You're really current on the news!" line "I'm looking for a Chansey this " line "time! I'm thinking about trading" @@ -1184,7 +1184,7 @@ Text0738: ; 53a4a (14:7a4a) done Text0739: ; 53b25 (14:7b25) - text "Hello, ",TX_RAM1,". " + text "Hello, ", TX_RAM1, ". " line "Are you enjoying the" line "Pok`mon Trading Card Game?" line "I'm looking for a Chansey" @@ -1212,7 +1212,7 @@ Text073b: ; 53c6a (14:7c6a) done Text073c: ; 53cf9 (14:7cf9) - text TX_RAM1," traded a Chansey" + text TX_RAM1, " traded a Chansey" line "for a Surfing Pikachu!" done @@ -1222,7 +1222,7 @@ Text073d: ; 53d24 (14:7d24) done Text073e: ; 53d5b (14:7d5b) - text "Oh! Congratulations, ",TX_RAM1,"!" + text "Oh! Congratulations, ", TX_RAM1, "!" line "I heard the news! You've finally " line "inherited the Legendary Pok`mon " line "Cards! Don't worry, I'm not going " diff --git a/src/text/text9.asm b/src/text/text9.asm index 17cd8cf..12f2203 100644 --- a/src/text/text9.asm +++ b/src/text/text9.asm @@ -1,6 +1,6 @@ Text073f: ; 54000 (15:4000) text "Who?" - line "Oh! It's you, ",TX_RAM1,"..." + line "Oh! It's you, ", TX_RAM1, "..." line "I couldn't believe that I could" line "lose, but now..." line "Now I understand." @@ -16,14 +16,14 @@ Text073f: ; 54000 (15:4000) line "the different cards to build " line "different types of Decks, and" line "to play against different people!" - line "So...",TX_RAM1,"..." + line "So...", TX_RAM1, "..." line "Will you play with me again?" line "With all sorts of different Decks?" line "And this time, I not gonna lose!" done Text0740: ; 54223 (15:4223) - text "Oh, hi ",TX_RAM1,"..." + text "Oh, hi ", TX_RAM1, "..." line "Do you want to Duel?" done @@ -115,7 +115,7 @@ Text074c: ; 546cf (15:46cf) done Text074d: ; 5471b (15:471b) - text "If I use ",TX_RAM2," now," + text "If I use ", TX_RAM2, " now," line "This will happen..." done @@ -420,7 +420,7 @@ Text0781: ; 5557a (15:557a) done Text0782: ; 55621 (15:5621) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "Would you like to duel?" line "The Legendary Cards will eventually" line "belong to me!" @@ -429,7 +429,7 @@ Text0782: ; 55621 (15:5621) done Text0783: ; 5569c (15:569c) - text "Hi, ",TX_RAM1,"." + text "Hi, ", TX_RAM1, "." line "Would you like to duel?" done @@ -634,7 +634,7 @@ Text07a2: ; 56049 (15:6049) Text07a3: ; 5606c (15:606c) text "I am Gene, the Master of the" line "Rock Club! Rock is good..." - line "Isn't Rock good, ",TX_RAM1,"...?" + line "Isn't Rock good, ", TX_RAM1, "...?" line "Rock is hard and strong!" line "Doesn't crumble under pressure!" line "After you Duel me, you'll know " @@ -1010,7 +1010,7 @@ Text07d4: ; 5705e (15:705e) done Text07d5: ; 57075 (15:7075) - text TX_RAM1,"'s Score" + text TX_RAM1, "'s Score" done Text07d6: ; 57080 (15:7080) @@ -1023,7 +1023,7 @@ Text07d7: ; 570a4 (15:70a4) Text07d8: ; 570be (15:70be) text "Maximum Consecutive Wins" - line " [ ",TX_RAM2," ]" + line " [ ", TX_RAM2, " ]" done Text07d9: ; 570e3 (15:70e3) @@ -1031,13 +1031,13 @@ Text07d9: ; 570e3 (15:70e3) done Text07da: ; 570e9 (15:70e9) - text TX_RAM1," ",TX_RAM3," Consecutive Wins!" + text TX_RAM1, " ", TX_RAM3, " Consecutive Wins!" line "" - text TX_RAM3," opponent is ",TX_RAM2,"." + text TX_RAM3, " opponent is ", TX_RAM2, "." done Text07db: ; 57112 (15:7112) - text TX_RAM3," opponent is ",TX_RAM2,"." + text TX_RAM3, " opponent is ", TX_RAM2, "." done Text07dc: ; 57124 (15:7124) @@ -1063,13 +1063,13 @@ Text07e0: ; 571bd (15:71bd) done Text07e1: ; 571df (15:71df) - text "You lost to the ",TX_RAM3," opponent," - line TX_RAM2,"!" + text "You lost to the ", TX_RAM3, " opponent," + line TX_RAM2, "!" done Text07e2: ; 571ff (15:71ff) - text TX_RAM1,"'s consecutive wins" - line "ended at ",TX_RAM3,"." + text TX_RAM1, "'s consecutive wins" + line "ended at ", TX_RAM3, "." done Text07e3: ; 57221 (15:7221) @@ -1082,7 +1082,7 @@ Text07e4: ; 57240 (15:7240) Text07e5: ; 5725f (15:725f) text "Congratulations!" - line "You won against ",TX_RAM3," opponents!" + line "You won against ", TX_RAM3, " opponents!" done DefeatedFiveOpponentsText: ; 5728e (15:728e) @@ -1091,13 +1091,13 @@ DefeatedFiveOpponentsText: ; 5728e (15:728e) done Text07e7: ; 572ba (15:72ba) - text TX_RAM1," successfully defeated " - line "5 opponents ",TX_START,TX_RAM3," time(s)!!!" + text TX_RAM1, " successfully defeated " + line "5 opponents ", TX_START, TX_RAM3, " time(s)!!!" done ConsecutiveWinRecordIncreasedText: ; 572ee (15:72ee) - text TX_RAM1,"'s consecutive win" - line "record increased to ",TX_RAM3,"!" + text TX_RAM1, "'s consecutive win" + line "record increased to ", TX_RAM3, "!" done Text07e9: ; 5731a (15:731a) @@ -1153,27 +1153,27 @@ Text07f5: ; 5736a (15:736a) done Text07f6: ; 5736d (15:736d) - db $03,$50,TX_FIRE,$03,$51 + db $03,$50, TX_FIRE, $03,$51 done Text07f7: ; 57374 (15:7374) - db $03,$50,TX_LIGHTNING,$03,$51 + db $03,$50, TX_LIGHTNING, $03,$51 done Text07f8: ; 5737b (15:737b) - db $03,$50,TX_WATER,$03,$51 + db $03,$50, TX_WATER, $03,$51 done Text07f9: ; 57382 (15:7382) - db $03,$50,TX_FIGHTING,$03,$51 + db $03,$50, TX_FIGHTING, $03,$51 done Text07fa: ; 57389 (15:7389) - db $03,$50,TX_PSYCHIC,$03,$51 + db $03,$50, TX_PSYCHIC, $03,$51 done Text07fb: ; 57390 (15:7390) - db $03,$50,TX_GRASS,$03,$51 + db $03,$50, TX_GRASS, $03,$51 done GrassEnergyName: ; 57397 (15:7397) @@ -1181,7 +1181,7 @@ GrassEnergyName: ; 57397 (15:7397) done GrassEnergyDescription: ; 573a5 (15:73a5) - text "Provides 1 ",TX_GRASS," Energy." + text "Provides 1 ", TX_GRASS, " Energy." done FireEnergyName: ; 573bc (15:73bc) @@ -1189,7 +1189,7 @@ FireEnergyName: ; 573bc (15:73bc) done FireEnergyDescription: ; 573c9 (15:73c9) - text "Provides 1 ",TX_FIRE," Energy." + text "Provides 1 ", TX_FIRE, " Energy." done WaterEnergyName: ; 573e0 (15:73e0) @@ -1197,7 +1197,7 @@ WaterEnergyName: ; 573e0 (15:73e0) done WaterEnergyDescription: ; 573ee (15:73ee) - text "Provides 1 ",TX_WATER," Energy." + text "Provides 1 ", TX_WATER, " Energy." done LightningEnergyName: ; 57405 (15:7405) @@ -1205,7 +1205,7 @@ LightningEnergyName: ; 57405 (15:7405) done LightningEnergyDescription: ; 57417 (15:7417) - text "Provides 1 ",TX_LIGHTNING," Energy." + text "Provides 1 ", TX_LIGHTNING, " Energy." done FightingEnergyName: ; 5742e (15:742e) @@ -1213,7 +1213,7 @@ FightingEnergyName: ; 5742e (15:742e) done FightingEnergyDescription: ; 5743f (15:743f) - text "Provides 1 ",TX_FIGHTING," Energy." + text "Provides 1 ", TX_FIGHTING, " Energy." done PsychicEnergyName: ; 57456 (15:7456) @@ -1221,7 +1221,7 @@ PsychicEnergyName: ; 57456 (15:7456) done PsychicEnergyDescription: ; 57466 (15:7466) - text "Provides 1 ",TX_PSYCHIC," Energy." + text "Provides 1 ", TX_PSYCHIC, " Energy." done DoubleColorlessEnergyName: ; 5747d (15:747d) @@ -1229,7 +1229,7 @@ DoubleColorlessEnergyName: ; 5747d (15:747d) done DoubleColorlessEnergyDescription: ; 57496 (15:7496) - text "Provides ",TX_COLORLESS,TX_COLORLESS," Energy. (Doesn't" + text "Provides ", TX_COLORLESS, TX_COLORLESS, " Energy. (Doesn't" line "count as a basic Energy card.) " line "Colorless Energy can't be used to" line "pay colored Energy costs. (Any type" @@ -1340,7 +1340,7 @@ EnergyTransName: ; 57960 (15:7960) EnergyTransDescription: ; 5796e (15:796e) text "As often as you like during your" line "turn (before your attack), you may" - line "take 1 ",TX_GRASS," Energy card attached to 1" + line "take 1 ", TX_GRASS, " Energy card attached to 1" line "of your Pok`mon and attach it to a" line "different one. This power can't be" line "used if Venusaur is Asleep," -- cgit v1.2.3 From 81ff6d189e101d399e26ebad93a3427bd20156bb Mon Sep 17 00:00:00 2001 From: xCrystal Date: Mon, 19 Feb 2018 15:19:42 +0100 Subject: Duel message box constants and more graphics and misc documenting/cleaning up --- src/constants/duel_constants.asm | 37 ++++++++++++++++--------- src/constants/gfx_constants.asm | 24 ++++++++--------- src/engine/bank1.asm | 16 +++++------ src/engine/bank3.asm | 6 ++--- src/engine/bank4.asm | 6 ++--- src/engine/home.asm | 58 +++++++++++++++++++++------------------- src/gfx.asm | 4 ++- src/macros/wram.asm | 24 ++++++++--------- 8 files changed, 96 insertions(+), 79 deletions(-) diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index ee964b3..4994c0c 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -1,14 +1,28 @@ -DECK_NAME_SIZE EQU 24 -DECK_SIZE EQU 60 -BENCH_SIZE EQU 5 +DECK_NAME_SIZE EQU 24 +DECK_SIZE EQU 60 +BENCH_SIZE EQU 5 +MAX_POKEMON_IN_PLAY EQU 6 ; arena + bench -PLAYER_TURN EQUS "wPlayerDuelVariables >> $8" -OPPONENT_TURN EQUS "wOpponentDuelVariables >> $8" +; hWhoseTurn constants +PLAYER_TURN EQUS "HIGH(wPlayerDuelVariables)" +OPPONENT_TURN EQUS "HIGH(wOpponentDuelVariables)" +; wDuelFinished constants DUEL_WON EQU $1 DUEL_LOST EQU $2 DUEL_DRAW EQU $3 +; Box message id's + const_def + const BOXMSG_PLAYERS_TURN + const BOXMSG_OPPONENTS_TURN + const BOXMSG_BETWEEN_TURNS + const BOXMSG_DECISION + const BOXMSG_BENCH_POKEMON + const BOXMSG_ARENA_POKEMON + const BOXMSG_COIN_TOSS + +; wPlayerDuelVariables or wOpponentDuelVariables constants DUELVARS_CARD_LOCATIONS EQUS "wPlayerCardLocations & $ff" ; 00 DUELVARS_HAND EQUS "wPlayerHand & $ff" ; 42 DUELVARS_DECK_CARDS EQUS "wPlayerDeckCards & $ff" ; 7e @@ -34,7 +48,7 @@ DUELVARS_ARENA_CARD_STATUS EQUS "wPlayerArenaCardStatus & $ff" DUELVARS_DUELIST_TYPE EQUS "wPlayerDuelistType & $ff" ; f1 DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX EQUS "wPlayerArenaCardDisabledMoveIndex & $ff" ; f2 -;;; card locations +; card location constants (DUELVARS_CARD_LOCATIONS) CARD_LOCATION_DECK EQU $00 CARD_LOCATION_HAND EQU $01 CARD_LOCATION_DISCARD_PILE EQU $02 @@ -47,15 +61,12 @@ CARD_LOCATION_BENCH_4 EQU $14 CARD_LOCATION_BENCH_5 EQU $15 CARD_LOCATION_JUST_DRAWN EQU $40 -;;; duelist types +; duelist types (DUELVARS_DUELIST_TYPE) DUELIST_TYPE_PLAYER EQU $00 DUELIST_TYPE_LINK_OPP EQU $01 DUELIST_TYPE_AI_OPP EQU $80 -;;; constant values -MAX_POKEMON_IN_PLAY EQU $06 - -;;; status conditions +; status conditions (DUELVARS_ARENA_CARD_STATUS) ; two statuses can be combined if they are identified by a different nybble NO_STATUS EQU $00 CONFUSED EQU $01 @@ -66,7 +77,7 @@ DOUBLE_POISONED EQU $c0 PASSIVE_STATUS_MASK EQU $f ; confused, asleep or paralyzed -;;; substatus conditions +; substatus conditions (DUELVARS_ARENA_CARD_SUBSTATUS*) SUBSTATUS1_AGILITY EQU $0c SUBSTATUS1_FLY EQU $0d SUBSTATUS1_HARDEN EQU $0e @@ -94,7 +105,7 @@ SUBSTATUS2_GROWL EQU $12 SUBSTATUS5_THIS_TURN_DOUBLE_DAMAGE EQU 0 -;;; wNoDamageOrEffect constants +; wNoDamageOrEffect constants NO_DAMAGE_OR_EFFECT_AGILITY EQU $01 NO_DAMAGE_OR_EFFECT_BARRIER EQU $02 NO_DAMAGE_OR_EFFECT_FLY EQU $03 diff --git a/src/constants/gfx_constants.asm b/src/constants/gfx_constants.asm index 4cc72f5..2ddb8ae 100644 --- a/src/constants/gfx_constants.asm +++ b/src/constants/gfx_constants.asm @@ -17,20 +17,20 @@ SPRITE_ANIM_BUFFER_CAPACITY EQU 16 ; sprites ; sprite_anim_struct constants const_def - const SPRITE_ANIM_PROPERTY_1 - const SPRITE_ANIM_PROPERTY_2 + const SPRITE_ANIM_FIELD_00 + const SPRITE_ANIM_FIELD_01 const SPRITE_ANIM_COORD_X const SPRITE_ANIM_COORD_Y const SPRITE_ANIM_TILE_ID - const SPRITE_ANIM_PROPERTY_6 - const SPRITE_ANIM_PROPERTY_7 - const SPRITE_ANIM_PROPERTY_8 - const SPRITE_ANIM_PROPERTY_9 - const SPRITE_ANIM_PROPERTY_10 - const SPRITE_ANIM_PROPERTY_11 - const SPRITE_ANIM_PROPERTY_12 - const SPRITE_ANIM_PROPERTY_13 - const SPRITE_ANIM_PROPERTY_14 + const SPRITE_ANIM_FIELD_05 + const SPRITE_ANIM_FIELD_06 + const SPRITE_ANIM_FIELD_07 + const SPRITE_ANIM_FIELD_08 + const SPRITE_ANIM_FIELD_09 + const SPRITE_ANIM_FIELD_0A + const SPRITE_ANIM_FIELD_0B + const SPRITE_ANIM_FIELD_0C + const SPRITE_ANIM_FIELD_0D const SPRITE_ANIM_MOVEMENT_COUNTER - const SPRITE_ANIM_PROPERTY_16 + const SPRITE_ANIM_FIELD_0F SPRITE_ANIM_LENGTH EQU const_value \ No newline at end of file diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 5be8768..eedb048 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -163,8 +163,8 @@ StartDuel: ; 409f (1:409f) .duel_finished call $5990 call Func_04a2 - ld a, $3 - call Func_2167 + ld a, BOXMSG_DECISION + call DrawDuelBoxMessage ldtx hl, DecisionText call DrawWideTextBox_WaitForInput call Func_04a2 @@ -1060,8 +1060,8 @@ Func_4b60: ; 4b60 (1:4b60) call $7133 call SwapTurn call Func_04a2 - ld a, $6 - call Func_2167 + ld a, BOXMSG_COIN_TOSS + call DrawDuelBoxMessage ld hl, $0075 call DrawWideTextBox_WaitForInput ld a, [$ff97] @@ -1146,8 +1146,8 @@ Func_4cd5: ; 4cd5 (1:4cd5) .asm_4d15 call Func_04a2 - ld a, $5 - call Func_2167 + ld a, BOXMSG_ARENA_POKEMON + call DrawDuelBoxMessage ld hl, $0069 call DrawWideTextBox_WaitForInput ld a, $1 @@ -1171,8 +1171,8 @@ Func_4cd5: ; 4cd5 (1:4cd5) .asm_4d4c call Func_04a2 - ld a, $4 - call Func_2167 + ld a, BOXMSG_BENCH_POKEMON + call DrawDuelBoxMessage ld hl, $006d call Func_2c73 ld a, $3 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index b1fe932..c5e2fb4 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -680,7 +680,7 @@ Func_c58b: ; c58b (3:458b) call GetFloorObjectFromPos and $10 push af - ld c, SPRITE_ANIM_PROPERTY_16 + ld c, SPRITE_ANIM_FIELD_0F call GetSpriteAnimBufferProperty pop af ld a, [hl] @@ -788,7 +788,7 @@ AttemptScriptedMovement: ; c619 (3:4619) ld [wd335], a ld a, $10 ld [wd338], a - ld c, SPRITE_ANIM_PROPERTY_16 + ld c, SPRITE_ANIM_FIELD_0F call GetSpriteAnimBufferProperty set 2, [hl] ld c, SPRITE_ANIM_MOVEMENT_COUNTER @@ -918,7 +918,7 @@ Func_c6dc: ; c6dc (3:46dc) Func_c6f7: ; c6f7 (3:46f7) ld a, [wd336] ld [wWhichSprite], a - ld c, SPRITE_ANIM_PROPERTY_16 + ld c, SPRITE_ANIM_FIELD_0F call GetSpriteAnimBufferProperty res 2, [hl] ld c, SPRITE_ANIM_MOVEMENT_COUNTER diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 42cfdac..5aed479 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -533,7 +533,7 @@ Func_10fde: ; 10fde (4:4fde) farcall CheckIfEventFlagSet or a jr nz, .asm_11015 - ld c, SPRITE_ANIM_PROPERTY_16 + ld c, SPRITE_ANIM_FIELD_0F call GetSpriteAnimBufferProperty set 7, [hl] .asm_11015 @@ -552,7 +552,7 @@ Func_11024: ; 11024 (4:5024) call PlaySFX ld a, [wd336] ld [wWhichSprite], a - ld c, SPRITE_ANIM_PROPERTY_16 + ld c, SPRITE_ANIM_FIELD_0F call GetSpriteAnimBufferProperty set 2, [hl] ld hl, Unknown_1229f @@ -1253,7 +1253,7 @@ Func_12a21: ; 12a21 (4:6a21) Func_12ab5: ; 12ab5 (4:6ab5) push hl push af - ld c, SPRITE_ANIM_PROPERTY_6 + ld c, SPRITE_ANIM_FIELD_05 call GetSpriteAnimBufferProperty pop af cp [hl] diff --git a/src/engine/home.asm b/src/engine/home.asm index beabbfc..0040051 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1122,7 +1122,7 @@ CopyDataHLtoDE: ; 073c (0:073c) ret ; switch to rombank (A + top2 of H shifted down), -; set top2 of H to 01, +; set top2 of H to 01 (switchable ROM bank area), ; return old rombank id on top-of-stack BankpushHome: ; 0745 (0:0745) push hl @@ -4293,23 +4293,23 @@ Func_1f5f: ; 1f5f (0:1f5f) INCROM $1f96, $20b0 Func_20b0: ; 20b0 (0:20b0) - ld hl, $2fe8 + ld hl, DuelGraphics + $680 - $4000 ld a, [wConsole] cp CONSOLE_CGB jr nz, .asm_20bd - ld hl, $37f8 + ld hl, DuelGraphics + $e90 - $4000 .asm_20bd ld de, vTiles1 + $500 ld b, $30 jr CopyFontsOrDuelGraphicsTiles Func_20c4: ; 20c4 (0:20c4) - ld hl, $3028 + ld hl, DuelGraphics + $6c0 - $4000 ld a, [wConsole] cp CONSOLE_CGB - jr nz, .asm_20d1 - ld hl, $3838 -.asm_20d1 + jr nz, .copy + ld hl, DuelGraphics + $ed0 - $4000 +.copy ld de, vTiles1 + $540 ld b, $c jr CopyFontsOrDuelGraphicsTiles @@ -4321,32 +4321,32 @@ Func_20d8: ; 20d8 (0:20d8) Func_20dc: ; 20dc (0:20dc) ld b, $24 asm_20de - ld hl, $32e8 + ld hl, DuelGraphics + $980 - $4000 ld a, [wConsole] cp CONSOLE_CGB - jr nz, .asm_20eb - ld hl, $3af8 -.asm_20eb + jr nz, .copy + ld hl, DuelGraphics + $1190 - $4000 +.copy ld de, vTiles1 + $500 jr CopyFontsOrDuelGraphicsTiles Func_20f0: ; 20f0 (0:20f0) - ld hl, $4008 + ld hl, Fonts + $8 ld de, vTiles1 + $200 ld b, $d call CopyFontsOrDuelGraphicsTiles - ld hl, $3528 + ld hl, DuelGraphics + $bc0 - $4000 ld a, [wConsole] cp CONSOLE_CGB - jr nz, .asm_2108 - ld hl, $3d38 -.asm_2108 + jr nz, .copy + ld hl, DuelGraphics + $13d0 - $4000 +.copy ld de, vTiles1 + $500 ld b, $30 jr CopyFontsOrDuelGraphicsTiles Func_210f: ; 210f (0:210f) - ld hl, $40d8 + ld hl, DuelGraphics + $1770 - $4000 ld de, vTiles2 + $300 ld b, $8 jr CopyFontsOrDuelGraphicsTiles @@ -4357,7 +4357,10 @@ Func_2119: ; 2119 (0:2119) ld b, $38 ; number of tiles ; fallthrough -; copy b tiles from BANK(Fonts):hl to de +; if hl ≤ $3fff +; copy b tiles from Gfx1:hl to de +; if $4000 ≤ hl ≤ $7fff +; copy b tiles from Gfx2:hl to de CopyFontsOrDuelGraphicsTiles: ld a, BANK(Fonts); BANK(DuelGraphics); BANK(VWF) call BankpushHome @@ -4369,15 +4372,16 @@ CopyFontsOrDuelGraphicsTiles: INCROM $212f, $2167 -Func_2167: ; 2167 (0:2167) +DrawDuelBoxMessage: ; 2167 (0:2167) ld l, a - ld h, $a0 + ld h, (40 * TILE_SIZE) / 4 ; boxes are 10x4 tiles call HtimesL add hl, hl add hl, hl - ld de, $4318 + ; hl = a * $280 + ld de, DuelBoxMessages add hl, de - ld de, $8a00 + ld de, vTiles1 + $200 ld b, $28 call CopyFontsOrDuelGraphicsTiles ld a, $a0 @@ -4943,7 +4947,7 @@ Func_2518: ; 2518 (0:2518) ret Func_252e: ; 252e (0:252e) - ld a, $1d + ld a, BANK(Fonts); BANK(DuelGraphics); BANK(VWF) call BankpushHome ld de, $ccf4 push de @@ -6064,7 +6068,7 @@ Func_2f32: ; 2f32 (0:2f32) push hl call GetCardPointer jr c, .asm_2f43 - ld a, $c + ld a, BANK(CardPointers) call BankpushHome2 ld l, [hl] call BankpopHome @@ -6078,7 +6082,7 @@ Func_2f45: ; 2f45 (0:2f45) push hl call GetCardPointer jr c, .asm_2f5b - ld a, $c + ld a, BANK(CardPointers) call BankpushHome2 ld de, $0003 add hl, de @@ -6100,7 +6104,7 @@ GetCardHeader: ; 2f5d (0:2f5d) ld e, a call GetCardPointer jr c, .card_not_found - ld a, $0c + ld a, BANK(CardPointers) call BankpushHome2 ld e, [hl] ld bc, $5 @@ -8037,7 +8041,7 @@ Func_3d72: ; 3d72 (0:3d72) Func_3db7: ; 3db7 (0:3db7) push bc - ld c, SPRITE_ANIM_PROPERTY_1 + ld c, SPRITE_ANIM_FIELD_00 call GetSpriteAnimBufferProperty pop bc ret diff --git a/src/gfx.asm b/src/gfx.asm index 85d954f..67be845 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -14,6 +14,8 @@ INCBIN "gfx/duel/duel1.t5.2bpp", $0, $1698 SECTION "Gfx 2", ROMX INCBIN "gfx/duel/duel1.t5.2bpp", $1698, $318 + +DuelBoxMessages:: ; 78318 (1e:4318) INCBIN "gfx/duel/duel2.2bpp" rept $2b68 @@ -95,7 +97,7 @@ Unnamed3Gfx: ; 8bfd2 (22:7fd2) dw $1 INCBIN "gfx/unnamed/3.2bpp" - INCROM $8bfe4, $8C000 + INCROM $8bfe4, $8c000 SECTION "Gfx 5", ROMX diff --git a/src/macros/wram.asm b/src/macros/wram.asm index 55d32ad..9a7ffc2 100644 --- a/src/macros/wram.asm +++ b/src/macros/wram.asm @@ -43,20 +43,20 @@ ENDM ; TODO: Figure out what the rest are for sprite_anim_struct: MACRO -\1Property1:: ds 1 -\1Property2:: ds 1 ; movement handling / palette +\1Field0x00:: ds 1 +\1Field0x01:: ds 1 ; movement handling / palette \1CoordX:: db \1CoordY:: db \1TileID:: db -\1Property6:: ds 1 -\1Property7:: ds 1 -\1Property8:: ds 1 -\1Property9:: ds 1 -\1Property10:: ds 1 -\1Property11:: ds 1 -\1Property12:: ds 1 -\1Property13:: ds 1 -\1Property14:: ds 1 +\1Field0x05:: ds 1 +\1Field0x06:: ds 1 +\1Field0x07:: ds 1 +\1Field0x08:: ds 1 +\1Field0x09:: ds 1 +\1Field0x0a:: ds 1 +\1Field0x0b:: ds 1 +\1Field0x0c:: ds 1 +\1Field0x0d:: ds 1 \1MovementCounter:: ds 1 -\1Property16:: ds 1 +\1Field0x0f:: ds 1 ENDM \ No newline at end of file -- cgit v1.2.3 From 20eb1851ec183fb5651f514b6c27d7fe0c157410 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Mon, 19 Feb 2018 16:15:17 +0100 Subject: Move gfx/unnamed/ to gfx/duel/ they're more duel anim gfx scattered at the end of banks not no waste space --- src/engine/home.asm | 2 +- src/gfx.asm | 54 +++++++++++++++++++------------------- src/gfx/duel/55.png | Bin 0 -> 114 bytes src/gfx/duel/56.png | Bin 0 -> 85 bytes src/gfx/duel/57.png | Bin 0 -> 90 bytes src/gfx/duel/58.png | Bin 0 -> 94 bytes src/gfx/duel/59.png | Bin 0 -> 120 bytes src/gfx/duel/60.png | Bin 0 -> 97 bytes src/gfx/duel/61.png | Bin 0 -> 95 bytes src/gfx/duel/62.png | Bin 0 -> 85 bytes src/gfx/duel/63.png | Bin 0 -> 199 bytes src/gfx/duel/64.png | Bin 0 -> 102 bytes src/gfx/duel/65.png | Bin 0 -> 183 bytes src/gfx/duel/66.png | Bin 0 -> 135 bytes src/gfx/duel/box_messages.png | Bin 0 -> 1081 bytes src/gfx/duel/duel1.t5.png | Bin 3283 -> 0 bytes src/gfx/duel/duel2.png | Bin 1081 -> 0 bytes src/gfx/duel/duel_graphics.t5.png | Bin 0 -> 3283 bytes src/gfx/duel/poison.png | Bin 94 -> 0 bytes src/gfx/unnamed/1.png | Bin 114 -> 0 bytes src/gfx/unnamed/10.png | Bin 183 -> 0 bytes src/gfx/unnamed/11.png | Bin 135 -> 0 bytes src/gfx/unnamed/2.png | Bin 85 -> 0 bytes src/gfx/unnamed/3.png | Bin 90 -> 0 bytes src/gfx/unnamed/4.png | Bin 120 -> 0 bytes src/gfx/unnamed/5.png | Bin 97 -> 0 bytes src/gfx/unnamed/6.png | Bin 95 -> 0 bytes src/gfx/unnamed/7.png | Bin 85 -> 0 bytes src/gfx/unnamed/8.png | Bin 199 -> 0 bytes src/gfx/unnamed/9.png | Bin 102 -> 0 bytes 30 files changed, 28 insertions(+), 28 deletions(-) create mode 100644 src/gfx/duel/55.png create mode 100644 src/gfx/duel/56.png create mode 100644 src/gfx/duel/57.png create mode 100644 src/gfx/duel/58.png create mode 100644 src/gfx/duel/59.png create mode 100644 src/gfx/duel/60.png create mode 100644 src/gfx/duel/61.png create mode 100644 src/gfx/duel/62.png create mode 100644 src/gfx/duel/63.png create mode 100644 src/gfx/duel/64.png create mode 100644 src/gfx/duel/65.png create mode 100644 src/gfx/duel/66.png create mode 100644 src/gfx/duel/box_messages.png delete mode 100644 src/gfx/duel/duel1.t5.png delete mode 100644 src/gfx/duel/duel2.png create mode 100644 src/gfx/duel/duel_graphics.t5.png delete mode 100644 src/gfx/duel/poison.png delete mode 100644 src/gfx/unnamed/1.png delete mode 100644 src/gfx/unnamed/10.png delete mode 100644 src/gfx/unnamed/11.png delete mode 100644 src/gfx/unnamed/2.png delete mode 100644 src/gfx/unnamed/3.png delete mode 100644 src/gfx/unnamed/4.png delete mode 100644 src/gfx/unnamed/5.png delete mode 100644 src/gfx/unnamed/6.png delete mode 100644 src/gfx/unnamed/7.png delete mode 100644 src/gfx/unnamed/8.png delete mode 100644 src/gfx/unnamed/9.png diff --git a/src/engine/home.asm b/src/engine/home.asm index 0040051..cd10623 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -4387,7 +4387,7 @@ DrawDuelBoxMessage: ; 2167 (0:2167) ld a, $a0 ld hl, $010a ld bc, $0a04 - ld de, $0504 + lb de, 5, 4 jp Func_1f5f ; 0x2189 diff --git a/src/gfx.asm b/src/gfx.asm index 67be845..91c072a 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -9,14 +9,14 @@ VWF:: ; 76668 (1d:6668) INCBIN "gfx/vwf.1bpp" DuelGraphics:: ; 76968 (1d:6968) -INCBIN "gfx/duel/duel1.t5.2bpp", $0, $1698 +INCBIN "gfx/duel/duel_graphics.t5.2bpp", $0, $1698 SECTION "Gfx 2", ROMX -INCBIN "gfx/duel/duel1.t5.2bpp", $1698, $318 +INCBIN "gfx/duel/duel_graphics.t5.2bpp", $1698, $318 DuelBoxMessages:: ; 78318 (1e:4318) -INCBIN "gfx/duel/duel2.2bpp" +INCBIN "gfx/duel/box_messages.2bpp" rept $2b68 db $ff @@ -45,13 +45,13 @@ PlayerGfx: ; 87d7e (21:7d7e) dw $24 INCBIN "gfx/duelists/player.2bpp" -Unnamed1Gfx: ; 87fc0 (21:7fc0) +Duel55Gfx: ; 87fc0 (21:7fc0) dw $2 - INCBIN "gfx/unnamed/1.2bpp" + INCBIN "gfx/duel/55.2bpp" -Unnamed2Gfx: ; 87fe2 (21:7fe2) +Duel56Gfx: ; 87fe2 (21:7fe2) dw $1 - INCBIN "gfx/unnamed/2.2bpp" + INCBIN "gfx/duel/56.2bpp" INCROM $87ff4, $88000 @@ -93,9 +93,9 @@ OWSpritePlayer: ; 8be90 (22:7e90) dw $14 INCBIN "gfx/overworld_sprites/player.2bpp" -Unnamed3Gfx: ; 8bfd2 (22:7fd2) +Duel57Gfx: ; 8bfd2 (22:7fd2) dw $1 - INCBIN "gfx/unnamed/3.2bpp" + INCBIN "gfx/duel/57.2bpp" INCROM $8bfe4, $8c000 @@ -158,9 +158,9 @@ NintendoGfx: ; 8fe22 (23:7e22) dw $18 INCBIN "gfx/nintendo.2bpp" -PoisonGfx: ; 8ffa4 (23:7fa4) +Duel58Gfx: ; 8ffa4 (23:7fa4) dw $4 - INCBIN "gfx/duel/poison.2bpp" + INCBIN "gfx/duel/58.2bpp" INCROM $8ffe6, $90000 @@ -214,13 +214,13 @@ HelpDeskLadyGfx: ; 93f26 (24:7f26) dw $8 INCBIN "gfx/overworld_sprites/help_desk_lady.2bpp" -Unnamed4Gfx: ; 93fa8 (24:7fa8) +Duel59Gfx: ; 93fa8 (24:7fa8) dw $3 - INCBIN "gfx/unnamed/4.2bpp" + INCBIN "gfx/duel/59.2bpp" -Unnamed5Gfx: ; 93fda (24:7fda) +Duel60Gfx: ; 93fda (24:7fda) dw $2 - INCBIN "gfx/unnamed/5.2bpp" + INCBIN "gfx/duel/60.2bpp" rept $4 db $ff @@ -304,13 +304,13 @@ OverworldMapOAMGfx: ; 9bf3a (26:7f3a) dw $8 INCBIN "gfx/overworld_map_oam.2bpp" -Unnamed6Gfx: ; 9bfbc (26:7fbc) +Duel61Gfx: ; 9bfbc (26:7fbc) dw $3 - INCBIN "gfx/unnamed/6.2bpp" + INCBIN "gfx/duel/61.2bpp" -Unnamed7Gfx: ; 9bfee (26:7fee) +Duel62Gfx: ; 9bfee (26:7fee) dw $1 - INCBIN "gfx/unnamed/7.2bpp" + INCBIN "gfx/duel/62.2bpp" SECTION "Gfx 9", ROMX @@ -426,13 +426,13 @@ MichaelGfx: ; 9fcf6 (27:7cf6) dw $24 INCBIN "gfx/duelists/michael.2bpp" -Unnamed8Gfx: ; 9ff38 (27:7f38) +Duel63Gfx: ; 9ff38 (27:7f38) dw $a - INCBIN "gfx/unnamed/8.2bpp" + INCBIN "gfx/duel/63.2bpp" -Unnamed9Gfx: ; 9ffda (27:7fda) +Duel64Gfx: ; 9ffda (27:7fda) dw $2 - INCBIN "gfx/unnamed/9.2bpp" + INCBIN "gfx/duel/64.2bpp" rept $4 db $ff @@ -604,13 +604,13 @@ OWSprite29: ; a3dc0 (28:7dc0) dw $14 INCBIN "gfx/overworld_sprites/29.2bpp" -Unnamed10Gfx: ; a3f02 (28:7f02) +Duel65Gfx: ; a3f02 (28:7f02) dw $b - INCBIN "gfx/unnamed/10.2bpp" + INCBIN "gfx/duel/65.2bpp" -Unnamed11Gfx: ; a3fb4 (28:7fb4) +Duel66Gfx: ; a3fb4 (28:7fb4) dw $4 - INCBIN "gfx/unnamed/11.2bpp" + INCBIN "gfx/duel/66.2bpp" INCROM $a3ff6, $a4000 diff --git a/src/gfx/duel/55.png b/src/gfx/duel/55.png new file mode 100644 index 0000000..ebab414 Binary files /dev/null and b/src/gfx/duel/55.png differ diff --git a/src/gfx/duel/56.png b/src/gfx/duel/56.png new file mode 100644 index 0000000..dd82623 Binary files /dev/null and b/src/gfx/duel/56.png differ diff --git a/src/gfx/duel/57.png b/src/gfx/duel/57.png new file mode 100644 index 0000000..7b97f92 Binary files /dev/null and b/src/gfx/duel/57.png differ diff --git a/src/gfx/duel/58.png b/src/gfx/duel/58.png new file mode 100644 index 0000000..8f8b22c Binary files /dev/null and b/src/gfx/duel/58.png differ diff --git a/src/gfx/duel/59.png b/src/gfx/duel/59.png new file mode 100644 index 0000000..16b7344 Binary files /dev/null and b/src/gfx/duel/59.png differ diff --git a/src/gfx/duel/60.png b/src/gfx/duel/60.png new file mode 100644 index 0000000..dc60679 Binary files /dev/null and b/src/gfx/duel/60.png differ diff --git a/src/gfx/duel/61.png b/src/gfx/duel/61.png new file mode 100644 index 0000000..de82420 Binary files /dev/null and b/src/gfx/duel/61.png differ diff --git a/src/gfx/duel/62.png b/src/gfx/duel/62.png new file mode 100644 index 0000000..c40fc22 Binary files /dev/null and b/src/gfx/duel/62.png differ diff --git a/src/gfx/duel/63.png b/src/gfx/duel/63.png new file mode 100644 index 0000000..5ea882f Binary files /dev/null and b/src/gfx/duel/63.png differ diff --git a/src/gfx/duel/64.png b/src/gfx/duel/64.png new file mode 100644 index 0000000..36310a4 Binary files /dev/null and b/src/gfx/duel/64.png differ diff --git a/src/gfx/duel/65.png b/src/gfx/duel/65.png new file mode 100644 index 0000000..212a40d Binary files /dev/null and b/src/gfx/duel/65.png differ diff --git a/src/gfx/duel/66.png b/src/gfx/duel/66.png new file mode 100644 index 0000000..65bebfb Binary files /dev/null and b/src/gfx/duel/66.png differ diff --git a/src/gfx/duel/box_messages.png b/src/gfx/duel/box_messages.png new file mode 100644 index 0000000..c8ce50f Binary files /dev/null and b/src/gfx/duel/box_messages.png differ diff --git a/src/gfx/duel/duel1.t5.png b/src/gfx/duel/duel1.t5.png deleted file mode 100644 index e36c5fb..0000000 Binary files a/src/gfx/duel/duel1.t5.png and /dev/null differ diff --git a/src/gfx/duel/duel2.png b/src/gfx/duel/duel2.png deleted file mode 100644 index c8ce50f..0000000 Binary files a/src/gfx/duel/duel2.png and /dev/null differ diff --git a/src/gfx/duel/duel_graphics.t5.png b/src/gfx/duel/duel_graphics.t5.png new file mode 100644 index 0000000..e36c5fb Binary files /dev/null and b/src/gfx/duel/duel_graphics.t5.png differ diff --git a/src/gfx/duel/poison.png b/src/gfx/duel/poison.png deleted file mode 100644 index 8f8b22c..0000000 Binary files a/src/gfx/duel/poison.png and /dev/null differ diff --git a/src/gfx/unnamed/1.png b/src/gfx/unnamed/1.png deleted file mode 100644 index ebab414..0000000 Binary files a/src/gfx/unnamed/1.png and /dev/null differ diff --git a/src/gfx/unnamed/10.png b/src/gfx/unnamed/10.png deleted file mode 100644 index 212a40d..0000000 Binary files a/src/gfx/unnamed/10.png and /dev/null differ diff --git a/src/gfx/unnamed/11.png b/src/gfx/unnamed/11.png deleted file mode 100644 index 65bebfb..0000000 Binary files a/src/gfx/unnamed/11.png and /dev/null differ diff --git a/src/gfx/unnamed/2.png b/src/gfx/unnamed/2.png deleted file mode 100644 index dd82623..0000000 Binary files a/src/gfx/unnamed/2.png and /dev/null differ diff --git a/src/gfx/unnamed/3.png b/src/gfx/unnamed/3.png deleted file mode 100644 index 7b97f92..0000000 Binary files a/src/gfx/unnamed/3.png and /dev/null differ diff --git a/src/gfx/unnamed/4.png b/src/gfx/unnamed/4.png deleted file mode 100644 index 16b7344..0000000 Binary files a/src/gfx/unnamed/4.png and /dev/null differ diff --git a/src/gfx/unnamed/5.png b/src/gfx/unnamed/5.png deleted file mode 100644 index dc60679..0000000 Binary files a/src/gfx/unnamed/5.png and /dev/null differ diff --git a/src/gfx/unnamed/6.png b/src/gfx/unnamed/6.png deleted file mode 100644 index de82420..0000000 Binary files a/src/gfx/unnamed/6.png and /dev/null differ diff --git a/src/gfx/unnamed/7.png b/src/gfx/unnamed/7.png deleted file mode 100644 index c40fc22..0000000 Binary files a/src/gfx/unnamed/7.png and /dev/null differ diff --git a/src/gfx/unnamed/8.png b/src/gfx/unnamed/8.png deleted file mode 100644 index 5ea882f..0000000 Binary files a/src/gfx/unnamed/8.png and /dev/null differ diff --git a/src/gfx/unnamed/9.png b/src/gfx/unnamed/9.png deleted file mode 100644 index 36310a4..0000000 Binary files a/src/gfx/unnamed/9.png and /dev/null differ -- cgit v1.2.3 From 39e9456b0223834d50d64adf798b54b44ccf4a2a Mon Sep 17 00:00:00 2001 From: xCrystal Date: Mon, 19 Feb 2018 21:59:44 +0100 Subject: more home disasm and labeling, FillRectangle, BankswitchRAM->BankswitchSRAM --- src/audio/music1.asm | 4 +- src/engine/bank1.asm | 28 +++-- src/engine/bank1c.asm | 12 +- src/engine/bank2.asm | 66 +++++------ src/engine/bank20.asm | 16 +-- src/engine/bank3.asm | 20 ++-- src/engine/bank4.asm | 42 +++---- src/engine/bank6.asm | 14 +-- src/engine/home.asm | 297 ++++++++++++++++++++++++++++++++++---------------- src/sram.asm | 2 +- src/vram.asm | 25 +++-- tcg.link | 6 +- 12 files changed, 331 insertions(+), 201 deletions(-) diff --git a/src/audio/music1.asm b/src/audio/music1.asm index c4ccf4b..9db9632 100644 --- a/src/audio/music1.asm +++ b/src/audio/music1.asm @@ -25,10 +25,10 @@ Func_f4015:: ; f4015 (3d:4015) Func_f4018:: ; f4018 (3d:4018) jp Func_f406f -Func_f401b:: ; f401b (3d:401b) +_PauseSong:: ; f401b (3d:401b) jp Music1_PauseSong -Func_f401e:: ; f401e (3d:401e) +_ResumeSong:: ; f401e (3d:401e) jp Music1_ResumeSong Music1_PlaySong: ; f4021 (3d:4021) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index eedb048..fdf35c8 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -5,12 +5,12 @@ Start_Cont: ; 4000 (1:4000) call ResetSerial call EnableInt_VBlank call EnableInt_Timer - call EnableExtRAM + call EnableSRAM ld a, [$a006] ld [wTextSpeed], a ld a, [$a009] ld [wccf2], a - call DisableExtRAM + call DisableSRAM ld a, $1 ld [wUppercaseFlag], a ei @@ -27,10 +27,10 @@ Start_Cont: ; 4000 (1:4000) call YesOrNoMenuWithText jr c, .reset_game ; erase sram - call EnableExtRAM + call EnableSRAM xor a ld [$a000], a - call DisableExtRAM + call DisableSRAM .reset_game jp Reset @@ -1215,11 +1215,19 @@ Func_5aeb: ; 5aeb (1:5aeb) INCROM $5aeb, $6785 Func_6785: ; 6785 (1:6785) - INCROM $6785, $6793 + call EnableSRAM + ld hl, $bc00 + xor a + ld [hli], a + ld [hli], a + ld [hl], a + call DisableSRAM + ret +; 0x6793 ; loads player deck from SRAM to wPlayerDeck LoadPlayerDeck: ; 6793 (1:6793) - call EnableExtRAM + call EnableSRAM ld a, [$b700] ld l, a ld h, $54 @@ -1234,7 +1242,7 @@ LoadPlayerDeck: ; 6793 (1:6793) inc de dec c jr nz, .next_card_loop - call DisableExtRAM + call DisableSRAM ret ; 0x67b2 @@ -1580,10 +1588,10 @@ _TossCoin: ; 71ad (1:71ad) .asm_72ad add a ld d, a - ld bc, $0202 - ld hl, $0102 + lb bc, 2, 2 + lb hl, 1, 2 pop af - call Func_1f5f + call FillRectangle .asm_72b9 ld hl, $cd9f diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index 79994a3..1016ae8 100644 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -89,7 +89,7 @@ Func_700a3: ; 700a3 (1c:40a3) ld a, [hli] ld h, [hl] ld l, a - ld de, vTiles1 + ld de, v0Tiles1 call Func_701e9 call Func_701fe ld hl, ChrTrnPacket_BGTiles1 @@ -105,7 +105,7 @@ Func_700a3: ; 700a3 (1c:40a3) jr z, .asm_700da call Func_70136 dec hl - ld de, vTiles1 + ld de, v0Tiles1 call Func_701e9 ld hl, ChrTrnPacket_BGTiles2 call Func_70177 @@ -136,10 +136,10 @@ Func_700fe: ; 700fe (1c:40fe) push hl call Func_70136 pop hl - ld de, vTiles1 + ld de, v0Tiles1 call Func_701e9 pop hl - ld de, vTiles2 + ld de, v0Tiles2 call Func_701e9 call Func_701fe pop hl @@ -230,7 +230,7 @@ Func_701c0: ; 701c0 (1c:41c0) call DisableLCD xor a ld c, $10 - ld hl, vTiles2 + ld hl, v0Tiles2 .asm_701cb ld [hli], a dec c @@ -269,7 +269,7 @@ Func_701e9: ; 701e9 (1c:41e9) ret Func_701fe: ; 701fe (1c:41fe) - ld hl, vBGMapTiles + ld hl, v0BGMapTiles1 ld de, $000c ld a, $80 ld c, $d diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index fea3d9b..f2a796c 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -2,7 +2,7 @@ Func_8cd4: ; 8cd4 (2:4cd4) push bc - call EnableExtRAM + call EnableSRAM ld b, $3c .asm_8cda ld a, [de] @@ -12,7 +12,7 @@ Func_8cd4: ; 8cd4 (2:4cd4) jr nz, .asm_8cda xor a ld [hl], a - call DisableExtRAM + call DisableSRAM pop bc ret ; 0x8ce7 @@ -20,7 +20,7 @@ Func_8cd4: ; 8cd4 (2:4cd4) INCROM $8ce7, $8cf9 Func_8cf9: ; 8cf9 (2:4cf9) - call EnableExtRAM + call EnableSRAM xor a ld hl, $b703 ld [hli], a @@ -29,7 +29,7 @@ Func_8cf9: ; 8cf9 (2:4cf9) ld [hli], a ld [hl], a ld [$b701], a - call DisableExtRAM + call DisableSRAM Func_8d0b: ; 8d0b (2:4d0b) ld hl, Unknown_8d15 ld de, $9380 @@ -178,7 +178,7 @@ Func_8e42: ; 8e42 (2:4e42) call Func_92b4 call Func_9345 jr nc, .asm_8ec4 - call EnableExtRAM + call EnableSRAM ld hl, $cf17 call Func_910a call Func_9048 @@ -200,7 +200,7 @@ Func_8e42: ; 8e42 (2:4e42) call Func_92ad call Func_9038 ld a, [hl] - call DisableExtRAM + call DisableSRAM or a jr z, .asm_8edb .asm_8ec4 @@ -262,10 +262,10 @@ Func_8f05: ; 8f05 (2:4f05) Func_8f38: ; 8f38 (2:4f38) ld hl, $b701 - call EnableExtRAM + call EnableSRAM ld a, [hli] ld h, [hl] - call DisableExtRAM + call DisableSRAM ld l, a ld de, wc590 call Func_0663 @@ -294,7 +294,7 @@ Func_8f38: ; 8f38 (2:4f38) xor a ld [hl], a ld hl, $b701 - call EnableExtRAM + call EnableSRAM ld e, [hl] inc hl ld d, [hl] @@ -310,7 +310,7 @@ Func_8f38: ; 8f38 (2:4f38) ld [hl], d dec hl ld [hl], e - call DisableExtRAM + call DisableSRAM ret Func_8f8a: ; 8f8a (2:4f8a) @@ -323,28 +323,28 @@ Func_8f8a: ; 8f8a (2:4f8a) jp Func_8dbc Func_8f9d: ; 8f9d (2:4f9d) - call EnableExtRAM + call EnableSRAM ld a, [$b700] - call DisableExtRAM + call DisableSRAM ld h, $3 ld l, a call HtimesL ld e, l inc e - ld d, $2 + ld d, 2 xor a - ld hl, $0000 - ld bc, $0202 - call Func_1f5f + lb hl, 0, 0 + lb bc, 2, 2 + call FillRectangle ld a, [wceb1] - call EnableExtRAM + call EnableSRAM ld [$b700], a - call DisableExtRAM + call DisableSRAM call Func_9326 call Func_9038 - call EnableExtRAM + call EnableSRAM call Func_9253 - call DisableExtRAM + call DisableSRAM xor a ld [wce3f], a ld [wce40], a @@ -634,7 +634,7 @@ Func_9168: ; 9168 (2:5168) ld a, $1 ld [wceb5], a .asm_9214 - call EnableExtRAM + call EnableSRAM ld a, [$b700] ld c, a ld b, $0 @@ -656,7 +656,7 @@ Func_9168: ; 9168 (2:5168) .asm_9234 ld a, c ld [$b700], a - call DisableExtRAM + call DisableSRAM call Func_9326 call EnableLCD ret @@ -720,9 +720,9 @@ Func_92ad: ; 92ad (2:52ad) jr Func_92ad Func_92b4: ; 92b4 (2:52b4) - call EnableExtRAM + call EnableSRAM call Func_92ad - call DisableExtRAM + call DisableSRAM ret ; 0x92be @@ -731,9 +731,9 @@ Func_92b4: ; 92b4 (2:52b4) Func_9314: ; 9314 (2:5314) ld bc, $0018 add hl, bc - call EnableExtRAM + call EnableSRAM ld a, [hl] - call DisableExtRAM + call DisableSRAM or a jr nz, .asm_9324 scf @@ -743,19 +743,19 @@ Func_9314: ; 9314 (2:5314) ret Func_9326: ; 9326 (2:5326) - call EnableExtRAM + call EnableSRAM ld a, [$b700] - call DisableExtRAM - ld h, $3 + call DisableSRAM + ld h, 3 ld l, a call HtimesL ld e, l inc e - ld d, $2 + ld d, 2 ld a, $38 - ld hl, $0102 - ld bc, $0202 - call Func_1f5f + lb hl, 1, 2 + lb bc, 2, 2 + call FillRectangle ret Func_9345: ; 9345 (2:5345) diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index b551e73..480823f 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -64,9 +64,9 @@ Func_801a1: ; 801a1 (20:41a1) ld a, [$ff81] push af ld a, $1 - call BankswitchRAM - ld hl, vEnd - ld de, vBGMapTiles + call BankswitchSRAM + ld hl, v0End + ld de, v0BGMapTiles1 ld c, $20 .asm_801b4 push bc @@ -101,8 +101,8 @@ Func_801a1: ; 801a1 (20:41a1) dec c jr nz, .asm_801b4 pop af - call BankswitchRAM - call DisableExtRAM + call BankswitchSRAM + call DisableSRAM pop de pop bc pop hl @@ -114,14 +114,14 @@ Func_801f1: ; 801f1 (20:41f1) ld a, [$ff81] push af ld a, $1 - call BankswitchRAM + call BankswitchSRAM ld hl, $a000 ld bc, $0800 xor a call $3c10 pop af - call BankswitchRAM - call DisableExtRAM + call BankswitchSRAM + call DisableSRAM pop bc pop hl ret diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index c5e2fb4..614e995 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -1,8 +1,8 @@ LoadMap: ; c000 (3:4000) call DisableLCD - call EnableExtRAM + call EnableSRAM bank1call Func_6785 - call DisableExtRAM + call DisableSRAM ld a, $0 ld [wd0b5], a xor a @@ -266,12 +266,12 @@ Func_c1f8: ; c1f8 (3:41f8) ld [wd111], a ld [wd112], a ld [wd3b8], a - call EnableExtRAM + call EnableSRAM ld a, [$a007] ld [wd421], a ld a, [$a006] ld [wTextSpeed], a - call DisableExtRAM + call DisableSRAM farcall Func_10756 ret @@ -977,7 +977,7 @@ Func_c74d: ; c74d (3:474d) ret MainMenu_c75a: ; c75a (3:475a) - call Func_379b + call PauseSong ld a, MUSIC_PAUSEMENU call PlaySong call Func_c797 @@ -1003,7 +1003,7 @@ MainMenu_c75a: ; c75a (3:475a) call Func_c32b jr .asm_c765 .asm_c793 - call Func_37a0 + call ResumeSong ret Func_c797: ; c797 (3:4797) @@ -2645,7 +2645,7 @@ Func_d317: ; d317 (3:5317) DeckMachine_d336: ; d336 (3:5336) push bc call Func_c2a3 - call Func_379b + call PauseSong ld a, MUSIC_DECKMACHINE call PlaySong call Func_04a2 @@ -2665,7 +2665,7 @@ DeckMachine_d336: ; d336 (3:5336) .asm_d360 farcall Func_b19d .asm_d364 - call Func_37a0 + call ResumeSong call Func_c2d4 jp IncreaseOWScriptPointerBy2 @@ -2777,11 +2777,11 @@ Func_d41d: ; d41d (3:541d) jp IncreaseOWScriptPointerBy1 Func_d423: ; d423 (3:5423) - call Func_379b + call PauseSong jp IncreaseOWScriptPointerBy1 Func_d429: ; d429 (3:5429) - call Func_37a0 + call ResumeSong jp IncreaseOWScriptPointerBy1 Func_d42f: ; d42f (3:542f) diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 5aed479..c2de9b9 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -27,9 +27,9 @@ Func_10031: ; 10031 (4:4031) ld a, [$ff81] push af ld a, $1 - call BankswitchRAM + call BankswitchSRAM call $4cbb - call DisableExtRAM + call DisableSRAM call $4b28 call SetFlushAllPalettes call EnableLCD @@ -37,8 +37,8 @@ Func_10031: ; 10031 (4:4031) call $4cea call SetFlushAllPalettes pop af - call BankswitchRAM - call DisableExtRAM + call BankswitchSRAM + call DisableSRAM ret Func_10059: ; 10059 (4:4059) @@ -54,7 +54,7 @@ Medal_1029e: ; 1029e (4:429e) ld a, [wd291] push af push bc - call Func_379b + call PauseSong ld a, MUSIC_STOP call PlaySong farcall Func_70000 @@ -93,7 +93,7 @@ Medal_1029e: ; 1029e (4:429e) ldtx hl, WonTheMedalText call Func_2c73 call Func_3c96 - call Func_37a0 + call ResumeSong pop af ld [wd291], a ret @@ -136,7 +136,7 @@ BoosterPack_1031b: ; 1031b (4:431b) ld a, [hl] ld [wce40], a call $4031 - call Func_379b + call PauseSong ld a, MUSIC_BOOSTERPACK call PlaySong pop bc @@ -150,7 +150,7 @@ BoosterPack_1031b: ; 1031b (4:431b) .asm_10373 call Func_2c73 call Func_3c96 - call Func_37a0 + call ResumeSong ldtx hl, CheckedCardsInBoosterPackText call Func_2c73 call DisableLCD @@ -290,7 +290,7 @@ Func_10c96: ; 10c96 (4:4c96) push af push bc ld a, $1 - call BankswitchRAM + call BankswitchSRAM call $4cbb call Func_10ab4 pop bc @@ -303,8 +303,8 @@ Func_10c96: ; 10c96 (4:4c96) .asm_10cb0 call EnableLCD pop af - call BankswitchRAM - call DisableExtRAM + call BankswitchSRAM + call DisableSRAM ret ; 0x10cbb @@ -1104,12 +1104,12 @@ Func_12704: ; 12704 (4:6704) farcall Func_c1b1 call Func_128a9 farcall Func_1996e - call EnableExtRAM + call EnableSRAM ld a, [$a007] ld [wd421], a ld a, [$a006] ld [wTextSpeed], a - call DisableExtRAM + call DisableSRAM ld a, MUSIC_STOP call PlaySong farcall Func_70000 @@ -1130,10 +1130,10 @@ Func_12741: ; 12741 (4:6741) jr nc, Func_12704 farcall Func_c1ed farcall Func_70000 - call EnableExtRAM + call EnableSRAM xor a ld [$ba44], a - call DisableExtRAM + call DisableSRAM ld a, $0 ld [wd0b5], a farcallx $03, Func_383d @@ -1499,20 +1499,20 @@ Func_131d3: ; 131d3 (4:71d3) INCROM $131d3, $1344d Func_1344d: ; 1344d (4:744d) - call Func_379b + call PauseSong ld a, MUSIC_MEDAL call PlaySong ldtx hl, DefeatedFiveOpponentsText call Func_2c73 call Func_3c96 - call Func_37a0 + call ResumeSong ret ; 0x13462 INCROM $13462, $13485 Func_13485: ; 13485 (4:7485) - call EnableExtRAM + call EnableSRAM ld a, [$ba68] or a ret z @@ -1520,14 +1520,14 @@ Func_13485: ; 13485 (4:7485) ld [wce43], a ld a, [$ba57] ld [wce44], a - call DisableExtRAM - call Func_379b + call DisableSRAM + call PauseSong ld a, MUSIC_MEDAL call PlaySong ldtx hl, ConsecutiveWinRecordIncreasedText call Func_2c73 call Func_3c96 - call Func_37a0 + call ResumeSong ret ; 0x134b1 diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm index 6428c3f..fa1c529 100644 --- a/src/engine/bank6.asm +++ b/src/engine/bank6.asm @@ -5,7 +5,7 @@ INCLUDE "data/effect_commands.asm" INCROM $18f9c, $1996e Func_1996e: ; 1996e (6:596e) - call EnableExtRAM + call EnableSRAM ld a, PLAYER_TURN ldh [hWhoseTurn], a ld hl, $a100 @@ -26,7 +26,7 @@ Func_1996e: ; 1996e (6:596e) ld a, $9 ld hl, $a3f8 call Func_199e0 - call EnableExtRAM + call EnableSRAM ld hl, $a100 ld a, $80 .asm_199a2 @@ -58,7 +58,7 @@ Func_1996e: ; 1996e (6:596e) ld [$a005], a ld [$a00a], a farcall Func_8cf9 - call DisableExtRAM + call DisableSRAM ret Func_199e0: ; 199e0 (6:59e0) @@ -69,7 +69,7 @@ Func_199e0: ; 199e0 (6:59e0) jr c, .asm_19a0e call Func_19a12 pop hl - call EnableExtRAM + call EnableSRAM push hl ld de, wc590 .asm_199f3 @@ -90,7 +90,7 @@ Func_199e0: ; 199e0 (6:59e0) ld [hli], a dec c jr nz, .asm_19a04 - call DisableExtRAM + call DisableSRAM or a .asm_19a0e pop hl @@ -146,7 +146,7 @@ Func_1a61f: ; 1a61f (6:661f) ld e, a ld d, $0 call LoadCardDataToBuffer1 - call Func_379b + call PauseSong ld a, MUSIC_MEDAL call PlaySong ld hl, $cc27 @@ -162,7 +162,7 @@ Func_1a61f: ; 1a61f (6:661f) call Func_378a or a jr nz, .asm_1a680 - call Func_37a0 + call ResumeSong bank1call $5773 ret ; 0x1a68d diff --git a/src/engine/home.asm b/src/engine/home.asm index cd10623..5a9a7a7 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -45,7 +45,7 @@ Start: ; 0150 (0:0150) ld a, $1 call BankswitchHome xor a - call BankswitchRAM + call BankswitchSRAM call BankswitchVRAM_0 call DisableLCD pop af @@ -198,7 +198,7 @@ SetupTimer: ; 0241 (0:0241) ld [rTAC], a ret -; carry flag: 0 if CGB +; return carry if not CGB CheckForCGB: ; 025c (0:025c) ld a, [wConsole] cp CONSOLE_CGB @@ -411,50 +411,51 @@ InitialPalette: ; 0399 (0:0399) rgb 10,10,08 rgb 00,00,00 +; clear VRAM tile data SetupVRAM: ; 03a1 (0:03a1) call FillTileMap call CheckForCGB - jr c, .asm_3b2 + jr c, .vram0 call BankswitchVRAM_1 - call .asm_3b2 + call .vram0 call BankswitchVRAM_0 -.asm_3b2 - ld hl, vTiles0 - ld bc, vBGMapTiles - vTiles0 -.asm_3b8 +.vram0 + ld hl, v0Tiles0 + ld bc, v0BGMapTiles1 - v0Tiles0 +.loop xor a ld [hli], a dec bc ld a, b or c - jr nz, .asm_3b8 + jr nz, .loop ret -; fill VARM tile map banks with [wTileMapFill] +; fill VRAM0 BG maps with [wTileMapFill] and VRAM1 BG Maps with 0 FillTileMap: ; 03c0 (0:03c0) call BankswitchVRAM_0 - ld hl, vBGMapTiles - ld bc, vBGMapAttrs - vBGMapTiles -.asm_3c9 + ld hl, v0BGMapTiles1 + ld bc, v0BGMapTiles2 - v0BGMapTiles1 +.vram0_loop ld a, [wTileMapFill] ld [hli], a dec bc ld a, c or b - jr nz, .asm_3c9 + jr nz, .vram0_loop ld a, [wConsole] cp CONSOLE_CGB ret nz call BankswitchVRAM_1 - ld hl, vBGMapTiles - ld bc, vBGMapAttrs - vBGMapTiles -.asm_3e1 + ld hl, v1BGMapTiles1 + ld bc, v1BGMapTiles2 - v1BGMapTiles1 +.vram1_loop xor a ld [hli], a dec bc ld a, c or b - jr nz, .asm_3e1 + jr nz, .vram1_loop call BankswitchVRAM_0 ret @@ -641,7 +642,7 @@ AttrBlkPacket_04bf: ; 04bf (0:04bf) ds 6 ; data set 2 ds 2 ; data set 3 -; returns vBGMapTiles + BG_MAP_WIDTH * c + b in de. +; returns v0BGMapTiles1 + BG_MAP_WIDTH * c + b in de. ; used to map coordinates at bc to a BGMap0 address. BCCoordToBGMap0Address: ; 04cf (0:04cf) ld l, c @@ -652,7 +653,7 @@ BCCoordToBGMap0Address: ; 04cf (0:04cf) add hl, hl add hl, hl ld c, b - ld b, HIGH(vBGMapTiles) + ld b, HIGH(v0BGMapTiles1) add hl, bc ld e, l ld d, h @@ -1217,8 +1218,8 @@ BankswitchHome: ; 07a3 (0:07a3) ld [MBC3RomBank], a ret -; switch RAM bank -BankswitchRAM: ; 07a9 (0:07a9) +; switch SRAM bank +BankswitchSRAM: ; 07a9 (0:07a9) push af ldh [hBankRAM], a ld [MBC3SRamBank], a @@ -1228,7 +1229,7 @@ BankswitchRAM: ; 07a9 (0:07a9) ret ; enable external RAM -EnableExtRAM: ; 07b6 (0:07b6) +EnableSRAM: ; 07b6 (0:07b6) push af ld a, SRAM_ENABLE ld [MBC3SRamEnable], a @@ -1236,7 +1237,7 @@ EnableExtRAM: ; 07b6 (0:07b6) ret ; disable external RAM -DisableExtRAM: ; 07be (0:07be) +DisableSRAM: ; 07be (0:07be) push af xor a ; SRAM_DISABLE ld [MBC3SRamEnable], a @@ -1303,7 +1304,7 @@ CGBSpeedSwitch: ; 07f1 (0:07f1) SetupExtRAM: ; 080b (0:080b) xor a - call BankswitchRAM + call BankswitchSRAM ld hl, $a000 ld bc, $1000 .asm_815 @@ -1320,7 +1321,7 @@ SetupExtRAM: ; 080b (0:080b) call Func_084d scf call Func_4050 - call DisableExtRAM + call DisableSRAM ret .asm_82f ld hl, $a000 @@ -1338,7 +1339,7 @@ SetupExtRAM: ; 080b (0:080b) call Func_084d or a call Func_4050 - call DisableExtRAM + call DisableSRAM ret Func_084d: ; 084d (0:084d) @@ -1358,8 +1359,8 @@ Func_084d: ; 084d (0:084d) ClearExtRAMBank: ; 0863 (0:0863) push af - call BankswitchRAM - call EnableExtRAM + call BankswitchSRAM + call EnableSRAM ld hl, $a000 ld bc, $2000 .asm_870 @@ -1875,8 +1876,8 @@ Func_0bcb: ; 0bcb (0:0bcb) ld [rLCDC], a ld a, %11100100 ld [rBGP], a - ld de, vTiles1 - ld bc, vBGMapTiles - vTiles1 + ld de, v0Tiles1 + ld bc, v0BGMapTiles1 - v0Tiles1 .loop ld a, [hli] ld [de], a @@ -1885,7 +1886,7 @@ Func_0bcb: ; 0bcb (0:0bcb) ld a, b or c jr nz, .loop - ld hl, vBGMapTiles + ld hl, v0BGMapTiles1 ld de, $000c ld a, $80 ld c, $d @@ -2519,15 +2520,15 @@ Func_0fe9: ; 0fe9 (0:0fe9) Func_100b: ; 100b (0:100b) ld a, $2 - call BankswitchRAM + call BankswitchSRAM call $669d xor a - call BankswitchRAM - call EnableExtRAM + call BankswitchSRAM + call EnableSRAM ld hl, $a008 ld a, [hl] inc [hl] - call DisableExtRAM + call DisableSRAM and $3 add $28 ld l, $0 @@ -2535,7 +2536,7 @@ Func_100b: ; 100b (0:100b) add hl, hl add hl, hl ld a, $3 - call BankswitchRAM + call BankswitchSRAM push hl ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable @@ -2551,7 +2552,7 @@ Func_100b: ; 100b (0:100b) call SwapTurn pop hl push hl - call EnableExtRAM + call EnableSRAM ld a, [wcc06] ld [hli], a ld a, [wTempNonTurnDuelistCardId] @@ -2563,10 +2564,10 @@ Func_100b: ; 100b (0:100b) add hl, de ld e, l ld d, h - call DisableExtRAM + call DisableSRAM bank1call $66a4 xor a - call BankswitchRAM + call BankswitchSRAM ret ; copies the deck pointed to by de to wPlayerDeck or wOpponentDeck @@ -3707,7 +3708,7 @@ SwapTurn: ; 1c72 (0:1c72) ret PrintPlayerName: ; 1c7d (0:1c7d) - call EnableExtRAM + call EnableSRAM ld hl, $a010 .loop ld a, [hli] @@ -3716,7 +3717,7 @@ PrintPlayerName: ; 1c7d (0:1c7d) or a jr nz, .loop dec de - call DisableExtRAM + call DisableSRAM ret PrintOpponentName: ; 1c8e (0:1c8e) @@ -3741,7 +3742,7 @@ PrintOpponentName: ; 1c8e (0:1c8e) Func_1caa: ; 1caa (0:1caa) push de push bc - call EnableExtRAM + call EnableSRAM ld hl, $0000 ld de, sDeck1Cards ld c, $4 @@ -3775,7 +3776,7 @@ Func_1caa: ; 1caa (0:1caa) .asm_1cd8 inc e jr nz, .asm_1ccf - call DisableExtRAM + call DisableSRAM pop bc pop de ret @@ -3784,7 +3785,7 @@ Func_1ce1: ; 1ce1 (0:1ce1) push hl push de push bc - call EnableExtRAM + call EnableSRAM ld c, a ld b, $0 ld hl, sDeck1Cards @@ -3822,7 +3823,7 @@ Func_1ce1: ; 1ce1 (0:1ce1) .asm_1d11 and $7f - call DisableExtRAM + call DisableSRAM pop bc pop de pop hl @@ -3833,11 +3834,11 @@ Func_1ce1: ; 1ce1 (0:1ce1) Func_1d1d: ; 1d1d (0:1d1d) push hl - call EnableExtRAM + call EnableSRAM ld h, $a1 ld l, a ld a, [hl] - call DisableExtRAM + call DisableSRAM pop hl and $7f ret nz @@ -3846,7 +3847,7 @@ Func_1d1d: ; 1d1d (0:1d1d) ; creates a list at $c000 of every card the player owns and how many CreateTempCardCollection: ; 1d2e (0:1d2e) - call EnableExtRAM + call EnableSRAM ld hl, sCardCollection ld de, wTempCardCollection ld bc, CARD_COLLECTION_SIZE @@ -3859,7 +3860,7 @@ CreateTempCardCollection: ; 1d2e (0:1d2e) call AddDeckCardsToTempCardCollection ld de, sDeck4Name call AddDeckCardsToTempCardCollection - call DisableExtRAM + call DisableSRAM ret AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59) @@ -3890,7 +3891,7 @@ AddCardToCollection: ; 1d6e (0:1d6e) push hl call CreateTempCardCollection pop hl - call EnableExtRAM + call EnableSRAM ld h, wTempCardCollection >> 8 ld a, [hl] and $7f @@ -3902,7 +3903,7 @@ AddCardToCollection: ; 1d6e (0:1d6e) inc a ld [hl], a .asm_1d8a - call DisableExtRAM + call DisableSRAM pop bc pop de pop hl @@ -3910,7 +3911,7 @@ AddCardToCollection: ; 1d6e (0:1d6e) Func_1d91: ; 1d91 (0:1d91) push hl - call EnableExtRAM + call EnableSRAM ld h, $a1 ld l, a ld a, [hl] @@ -3920,7 +3921,7 @@ Func_1d91: ; 1d91 (0:1d91) ld [hl], a .asm_1d9f - call DisableExtRAM + call DisableSRAM pop hl ret ; 0x1da4 @@ -3943,7 +3944,7 @@ SafeCopyDataDEtoHL: ; 1dca (0:1dca) .lcd_on jp HblankCopyDataDEtoHL -; returns vBGMapTiles + BG_MAP_WIDTH * e + d in hl. +; returns v0BGMapTiles1 + BG_MAP_WIDTH * e + d in hl. ; used to map coordinates at de to a BGMap0 address. DECoordToBGMap0Address: ; 1ddb (0:1ddb) ld l, e @@ -3957,7 +3958,7 @@ DECoordToBGMap0Address: ; 1ddb (0:1ddb) add d ld l, a ld a, h - adc HIGH(vBGMapTiles) + adc HIGH(v0BGMapTiles1) ld h, a ret @@ -4106,7 +4107,7 @@ ContinueDrawingTextBoxDMGorSGB: lb de, $1a, $1b ; fallthrough -; copies b bytes of data to sp+$1c and to hl, and returns hl += BG_MAP_WIDTH +; copies b bytes of data to sp-$1f and to hl, and returns hl += BG_MAP_WIDTH ; d = value of byte 0 ; e = value of byte b ; a = value of bytes [1, b-1] @@ -4246,13 +4247,18 @@ AttrBlkPacket_1f4f: ; 1f4f (0:1f4f) ds 6 ; data set 2 ds 2 ; data set 3 -Func_1f5f: ; 1f5f (0:1f5f) +; Fill a bxc rectangle at de and at sp-$26, +; using tile a and the subsequent ones in the following pattern: +; | a+0*l+0*h | a+0*l+1*h | a+0*l+2*h | +; | a+1*l+0*h | a+1*l+1*h | a+1*l+2*h | +; | a+2*l+0*h | a+2*l+1*h | a+2*l+2*h | +FillRectangle: ; 1f5f (0:1f5f) push de push af push hl - add sp, $e0 + add sp, -BG_MAP_WIDTH call DECoordToBGMap0Address -.asm_1f67 +.next_row push hl push bc ld hl, sp+$25 @@ -4261,18 +4267,18 @@ Func_1f5f: ; 1f5f (0:1f5f) ld a, [hl] ld hl, sp+$4 push hl -.asm_1f72 +.next_tile ld [hli], a add d dec b - jr nz, .asm_1f72 + jr nz, .next_tile pop de pop bc pop hl push hl push bc ld c, b - ld b, $0 + ld b, 0 call SafeCopyDataDEtoHL ld hl, sp+$24 ld a, [hl] @@ -4281,10 +4287,10 @@ Func_1f5f: ; 1f5f (0:1f5f) ld [hl], a pop bc pop de - ld hl, $0020 + ld hl, BG_MAP_WIDTH add hl, de dec c - jr nz, .asm_1f67 + jr nz, .next_row add sp, $24 pop de ret @@ -4299,7 +4305,7 @@ Func_20b0: ; 20b0 (0:20b0) jr nz, .asm_20bd ld hl, DuelGraphics + $e90 - $4000 .asm_20bd - ld de, vTiles1 + $500 + ld de, v0Tiles1 + $500 ld b, $30 jr CopyFontsOrDuelGraphicsTiles @@ -4310,7 +4316,7 @@ Func_20c4: ; 20c4 (0:20c4) jr nz, .copy ld hl, DuelGraphics + $ed0 - $4000 .copy - ld de, vTiles1 + $540 + ld de, v0Tiles1 + $540 ld b, $c jr CopyFontsOrDuelGraphicsTiles @@ -4327,12 +4333,12 @@ asm_20de jr nz, .copy ld hl, DuelGraphics + $1190 - $4000 .copy - ld de, vTiles1 + $500 + ld de, v0Tiles1 + $500 jr CopyFontsOrDuelGraphicsTiles Func_20f0: ; 20f0 (0:20f0) ld hl, Fonts + $8 - ld de, vTiles1 + $200 + ld de, v0Tiles1 + $200 ld b, $d call CopyFontsOrDuelGraphicsTiles ld hl, DuelGraphics + $bc0 - $4000 @@ -4341,24 +4347,24 @@ Func_20f0: ; 20f0 (0:20f0) jr nz, .copy ld hl, DuelGraphics + $13d0 - $4000 .copy - ld de, vTiles1 + $500 + ld de, v0Tiles1 + $500 ld b, $30 jr CopyFontsOrDuelGraphicsTiles Func_210f: ; 210f (0:210f) ld hl, DuelGraphics + $1770 - $4000 - ld de, vTiles2 + $300 + ld de, v0Tiles2 + $300 ld b, $8 jr CopyFontsOrDuelGraphicsTiles Func_2119: ; 2119 (0:2119) ld hl, DuelGraphics - $4000 - ld de, vTiles2 ; destination + ld de, v0Tiles2 ; destination ld b, $38 ; number of tiles ; fallthrough ; if hl ≤ $3fff -; copy b tiles from Gfx1:hl to de +; copy b tiles from Gfx1:(hl+$4000) to de ; if $4000 ≤ hl ≤ $7fff ; copy b tiles from Gfx2:hl to de CopyFontsOrDuelGraphicsTiles: @@ -4370,7 +4376,34 @@ CopyFontsOrDuelGraphicsTiles: ret ; 0x212f - INCROM $212f, $2167 +; this function appears to copy duel gfx data into sram +Func_212f: ; 212f (0:212f) + ld hl, DuelGraphics - $4000 + ld de, $a400 + ld b, $30 + call CopyFontsOrDuelGraphicsTiles + ld hl, DuelGraphics + $17f0 - $4000 + ld de, $a700 + ld b, $08 + call CopyFontsOrDuelGraphicsTiles + call GetCardSymbolData + sub $d0 + ld l, a + ld h, $00 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld de, DuelGraphics + $680 - $4000 + add hl, de + ld de, $a780 + ld b, $04 + call CopyFontsOrDuelGraphicsTiles + ld hl, DuelGraphics + $680 - $4000 + ld de, $b100 + ld b, $30 + jr CopyFontsOrDuelGraphicsTiles +; 0x2167 DrawDuelBoxMessage: ; 2167 (0:2167) ld l, a @@ -4381,14 +4414,14 @@ DrawDuelBoxMessage: ; 2167 (0:2167) ; hl = a * $280 ld de, DuelBoxMessages add hl, de - ld de, vTiles1 + $200 + ld de, v0Tiles1 + $200 ld b, $28 call CopyFontsOrDuelGraphicsTiles ld a, $a0 - ld hl, $010a - ld bc, $0a04 + lb hl, 1, 10 + lb bc, 10, 4 lb de, 5, 4 - jp Func_1f5f + jp FillRectangle ; 0x2189 INCROM $2189, $21c5 @@ -4604,7 +4637,7 @@ Func_22f2: ; 22f2 (0:22f2) ld l, e ld h, d ld de, $cd05 - ld c, $1 + ld c, 1 call SafeCopyDataDEtoHL ld hl, $ffac inc [hl] @@ -5253,7 +5286,83 @@ Func_271a: ; 271a (0:271a) ret ; 0x278d - INCROM $278d, $29f5 + INCROM $278d, $2988 + +CardTypeToSymbolID: ; 2988 (0:2988) + ld a, [wLoadedCard1Type] + cp TYPE_TRAINER + jr nc, .trainer_card + cp TYPE_ENERGY_FIRE + jr c, .pokemon_card + ; energy card + and 7 ; convert energy constant to type constant + ret +.trainer_card + ld a, 11 + ret +.pokemon_card + ld a, [wLoadedCard1Stage] + add 8 + ret +; 0x299f + +GetCardSymbolData: ; 299f (0:299f) + call CardTypeToSymbolID + add a + ld c, a + ld b, 0 + ld hl, CardSymbolTable + add hl, bc + ld a, [hl] + ret +; 0x29ac + +DrawCardSymbol: ; 29ac (0:29ac) + push hl + push de + push bc + call GetCardSymbolData + dec d + dec d + dec e + ld a, [wConsole] + cp CONSOLE_CGB + jr nz, .tiles + ; CGB-only attrs (palette) + push hl + inc hl + ld a, [hl] + lb bc, 2, 2 + lb hl, 0, 0 + call BankswitchVRAM_1 + call FillRectangle + call BankswitchVRAM_0 + pop hl +.tiles + ld a, [hl] + lb hl, 1, 2 + lb bc, 2, 2 + call FillRectangle + pop bc + pop de + pop hl + ret +; 0x29dd + +CardSymbolTable: +; starting tile, cgb palette (grey, red, blue, pink) + db $e0, $01 ; TYPE_ENERGY_FIRE + db $e4, $02 ; TYPE_ENERGY_GRASS + db $e8, $01 ; TYPE_ENERGY_LIGHTNING + db $ec, $02 ; TYPE_ENERGY_WATER + db $f0, $03 ; TYPE_ENERGY_PSYCHIC + db $f4, $03 ; TYPE_ENERGY_FIGHTING + db $f8, $00 ; TYPE_ENERGY_DOUBLE_COLORLESS + db $fc, $02 ; TYPE_ENERGY_UNUSED + db $d0, $02 ; TYPE_PKMN_*, Stage 0 + db $d4, $02 ; TYPE_PKMN_*, Stage 1 + db $d8, $01 ; TYPE_PKMN_*, Stage 2 + db $dc, $02 ; TYPE_TRAINER Func_29f5: ; 29f5 (0:29f5) farcallx $6, $4000 @@ -7321,12 +7430,12 @@ PlaySFX: ; 3796 (0:3796) farcall _PlaySFX ret -Func_379b: ; 379b (0:379b) - farcall Func_f401b +PauseSong: ; 379b (0:379b) + farcall _PauseSong ret -Func_37a0: ; 37a0 (0:37a0) - farcall Func_f401e +ResumeSong: ; 37a0 (0:37a0) + farcall _ResumeSong ret ; 0x37a5 @@ -7395,7 +7504,7 @@ Func_3874: ; 3874 (0:3874) Func_3876: ; 3876 (0:3876) ldh a, [hBankROM] push af - call Func_379b + call PauseSong ld a, MUSIC_CARDPOP call PlaySong ld a, $3 @@ -7407,7 +7516,7 @@ Func_3876: ; 3876 (0:3876) ld a, [wd10e] and $ef ld [wd10e], a - call Func_37a0 + call ResumeSong pop af call BankswitchHome scf @@ -7433,10 +7542,10 @@ Func_38c0: ; 38c0 (0:38c0) ld [wd0c2], a xor a ld [wd112], a - call EnableExtRAM + call EnableSRAM xor a ld [$ba44], a - call DisableExtRAM + call DisableSRAM call Func_3a3b bank1call StartDuel scf @@ -7446,10 +7555,10 @@ Func_38db: ; 38db (0:38db) ld a, $6 ld [wd111], a call Func_39fc - call EnableExtRAM + call EnableSRAM xor a ld [$ba44], a - call DisableExtRAM + call DisableSRAM asm_38ed farcall Func_131d3 ld a, $9 @@ -7462,9 +7571,9 @@ Func_38fb: ; 38fb (0:38fb) xor a ld [wd112], a bank1call Func_406f - call EnableExtRAM + call EnableSRAM ld a, [$ba44] - call DisableExtRAM + call DisableSRAM cp $ff jr z, asm_38ed scf @@ -7478,9 +7587,9 @@ Credits_3911: ; 3911 (0:3911) Func_3917: ; 3917 (0:3917) ld a, $22 farcall CheckIfEventFlagSet - call EnableExtRAM + call EnableSRAM ld [$a00a], a - call DisableExtRAM + call DisableSRAM ret GetFloorObjectFromPos: ; 3927 (0:3927) diff --git a/src/sram.asm b/src/sram.asm index 40e1f93..1a0bf38 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -1,4 +1,4 @@ -SECTION "Working Cards", SRAM +SECTION "SRAM", SRAM ds $100 diff --git a/src/vram.asm b/src/vram.asm index b4a34b2..7adca0a 100644 --- a/src/vram.asm +++ b/src/vram.asm @@ -1,10 +1,21 @@ -SECTION "VRAM", VRAM +SECTION "VRAM0", VRAM -vTiles0:: ds $800 ; 8000 -vTiles1:: ds $800 ; 8800 -vTiles2:: ds $800 ; 9000 +v0Tiles0:: ds $800 ; 8000 +v0Tiles1:: ds $800 ; 8800 +v0Tiles2:: ds $800 ; 9000 -vBGMapTiles:: ds $400 ; 9800 -vBGMapAttrs:: ds $400 ; 9c00 +v0BGMapTiles1:: ds $400 ; 9800 +v0BGMapTiles2:: ds $400 ; 9c00 -vEnd:: ; a000 +v0End:: ; a000 + +SECTION "VRAM1", VRAM + +v1Tiles0:: ds $800 ; 8000 +v1Tiles1:: ds $800 ; 8800 +v1Tiles2:: ds $800 ; 9000 + +v1BGMapTiles1:: ds $400 ; 9800 +v1BGMapTiles2:: ds $400 ; 9c00 + +v1End:: ; a000 diff --git a/tcg.link b/tcg.link index 99b1866..a86f7e8 100644 --- a/tcg.link +++ b/tcg.link @@ -168,6 +168,8 @@ WRAMX 1 "WRAM Music" "WRAM Sfx" VRAM $00 - "VRAM" + "VRAM0" +VRAM $01 + "VRAM1" SRAM $00 - "Working Cards" + "SRAM" -- cgit v1.2.3 From 29b895f01c2438b8e5cc3bba408cd9dcddce502f Mon Sep 17 00:00:00 2001 From: xCrystal Date: Tue, 20 Feb 2018 18:50:38 +0100 Subject: Lots of bank0 disassembly related to duels and cards --- src/constants/card_data_constants.asm | 4 +- src/constants/duel_constants.asm | 7 +- src/engine/bank1.asm | 20 +- src/engine/bank1c.asm | 2 +- src/engine/bank2.asm | 2 +- src/engine/bank20.asm | 6 +- src/engine/bank3.asm | 6 +- src/engine/bank4.asm | 2 +- src/engine/bank5.asm | 2 +- src/engine/bank8.asm | 4 +- src/engine/home.asm | 538 +++++++++++++++++++++++++++++----- src/wram.asm | 16 +- tcg.link | 4 +- 13 files changed, 504 insertions(+), 109 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index a98a0c7..5a5898e 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -39,7 +39,9 @@ TYPE_PKMN_UNUSED EQUS "UNUSED_TYPE" const TYPE_TRAINER_UNUSED ; $11 NUM_CARD_TYPES EQU const_value + -1 -TYPE_ENERGY_F EQU 3 +TYPE_PKMN EQU %111 +TYPE_ENERGY_F EQU 3 +TYPE_TRAINER_F EQU 4 ;;; rarity CIRCLE EQU $0 diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index 4994c0c..ba4bb3f 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -59,7 +59,12 @@ CARD_LOCATION_BENCH_2 EQU $12 CARD_LOCATION_BENCH_3 EQU $13 CARD_LOCATION_BENCH_4 EQU $14 CARD_LOCATION_BENCH_5 EQU $15 -CARD_LOCATION_JUST_DRAWN EQU $40 + +; card location flags (DUELVARS_CARD_LOCATIONS) +CARD_LOCATION_PLAY_AREA_F EQU 4 ; includes arena and bench +CARD_LOCATION_PLAY_AREA EQU 1 << CARD_LOCATION_PLAY_AREA_F +CARD_LOCATION_JUST_DRAWN_F EQU 6 +CARD_LOCATION_JUST_DRAWN EQU 1 << CARD_LOCATION_JUST_DRAWN_F ; duelist types (DUELVARS_DUELIST_TYPE) DUELIST_TYPE_PLAYER EQU $00 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index fdf35c8..8e54d12 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -22,7 +22,7 @@ Start_Cont: ; 4000 (1:4000) jr Start_Cont .ask_erase_backup_ram call Func_405a - call Func_04a2 + call EmptyScreen ldtx hl, ResetBackUpRamText call YesOrNoMenuWithText jr c, .reset_game @@ -162,12 +162,12 @@ StartDuel: ; 409f (1:409f) .duel_finished call $5990 - call Func_04a2 + call EmptyScreen ld a, BOXMSG_DECISION call DrawDuelBoxMessage ldtx hl, DecisionText call DrawWideTextBox_WaitForInput - call Func_04a2 + call EmptyScreen ldh a, [hWhoseTurn] push af ld a, PLAYER_TURN @@ -272,7 +272,7 @@ Func_420b: ; 420b (1:420b) xor a ld [wTileMapFill], a call $5990 - call Func_04a2 + call EmptyScreen call Func_2119 call Func_5aeb ld de, $389f @@ -564,7 +564,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) .already_played_energy ldtx hl, OnlyOneEnergyCardText call DrawWideTextBox_WaitForInput - call CreateHandCardBuffer + call CreateHandCardList call $55be jp $4447 ; 0x44db @@ -663,7 +663,7 @@ Func_478b: ; 478b (1:478b) ld [wCardPageNumber], a xor a ld [wcbc9], a - call Func_04a2 + call EmptyScreen call Func_3b31 ld de, $8a00 call $59ca @@ -1059,7 +1059,7 @@ Func_4b60: ; 4b60 (1:4b60) call SwapTurn call $7133 call SwapTurn - call Func_04a2 + call EmptyScreen ld a, BOXMSG_COIN_TOSS call DrawDuelBoxMessage ld hl, $0075 @@ -1145,7 +1145,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) jp Func_0f35 .asm_4d15 - call Func_04a2 + call EmptyScreen ld a, BOXMSG_ARENA_POKEMON call DrawDuelBoxMessage ld hl, $0069 @@ -1170,7 +1170,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) jr .asm_4d4c .asm_4d4c - call Func_04a2 + call EmptyScreen ld a, BOXMSG_BENCH_POKEMON call DrawDuelBoxMessage ld hl, $006d @@ -1444,7 +1444,7 @@ _TossCoin: ; 71ad (1:71ad) jr z, .asm_71c1 xor a ld [wcd9f], a - call Func_04a2 + call EmptyScreen call Func_210f .asm_71c1 diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index 1016ae8..005eb3f 100644 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -239,7 +239,7 @@ Func_701c0: ; 701c0 (1c:41c0) push af xor a ld [wTileMapFill], a - call Func_04a2 + call EmptyScreen pop af ld [wTileMapFill], a di diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index f2a796c..8211d07 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -42,7 +42,7 @@ Unknown_8d15: ; 8d15 (2:4d15) Func_8d56: ; 8d56 (2:4d56) xor a ld [wTileMapFill], a - call Func_04a2 + call EmptyScreen call Func_099c ld a, $1 ld [wVBlankOAMCopyToggle], a diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 480823f..b8dffd0 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -83,10 +83,10 @@ Func_801a1: ; 801a1 (20:41a1) push de ld bc, $0400 add hl, bc - call BankswitchVRAM_1 + call BankswitchVRAM1 ld b, $20 call SafeCopyDataHLtoDE - call BankswitchVRAM_0 + call BankswitchVRAM0 .asm_801d6 pop hl @@ -199,7 +199,7 @@ asm_8027c inc hl inc hl call Func_395a - call BankswitchVRAM_0 + call BankswitchVRAM0 pop de pop bc pop hl diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 614e995..b4f7cf1 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -24,7 +24,7 @@ LoadMap: ; c000 (3:4000) farcall Func_10ab4 call Func_c1a4 call Func_c241 - call Func_04a2 + call EmptyScreen call Func_3ca0 ld a, PLAYER_TURN ldh [hWhoseTurn], a @@ -397,7 +397,7 @@ Func_c2db: ; c2db (3:42db) ld a, PLAYER_TURN ldh [hWhoseTurn], a call Func_c241 - call Func_04a2 + call EmptyScreen ld a, [wd111] push af farcall Func_80000 @@ -2648,7 +2648,7 @@ DeckMachine_d336: ; d336 (3:5336) call PauseSong ld a, MUSIC_DECKMACHINE call PlaySong - call Func_04a2 + call EmptyScreen xor a ldh [hSCX], a ldh [hSCY], a diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index c2de9b9..27c4ac0 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -1,7 +1,7 @@ Func_10000: ; 10000 (4:4000) ld a, $0 ld [wTileMapFill], a - call Func_04a2 + call EmptyScreen call Func_2119 ld de, $307f call Func_2275 diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index aeceb86..7a22558 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -57,7 +57,7 @@ PointerTable_14000: ; 14000 (05:4000) INCROM $1406a, $14226 Func_14226: ; 14226 (5:4226) - call CreateHandCardBuffer + call CreateHandCardList ld hl, wDuelCardOrAttackList .check_for_next_pokemon ld a, [hli] diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index aa47756..260ffbf 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -4,7 +4,7 @@ Func_200e5: ; 200e5 (8:40e5) ld [$ce18], a - call CreateHandCardBuffer + call CreateHandCardList ld hl, wDuelCardOrAttackList ld de, wHandCardBuffer call CopyBuffer @@ -85,7 +85,7 @@ Func_200e5: ; 200e5 (8:40e5) pop hl and $8 jp z, $40f7 - call CreateHandCardBuffer + call CreateHandCardList ld hl, wDuelCardOrAttackList ld de, $cf68 call $697b diff --git a/src/engine/home.asm b/src/engine/home.asm index 5a9a7a7..b6ff03a 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -46,7 +46,7 @@ Start: ; 0150 (0:0150) call BankswitchHome xor a call BankswitchSRAM - call BankswitchVRAM_0 + call BankswitchVRAM0 call DisableLCD pop af ld [wInitialA], a @@ -80,7 +80,7 @@ VBlankHandler: ; 019b (0:019b) ld a, [wVBlankOAMCopyToggle] or a jr z, .no_oam_copy - call hDMAFunction ; DMA-copy $ca00-$ca9f to OAM memory + call hDMAFunction ; DMA-copy $ca00-$ca9f to OAM memory xor a ld [wVBlankOAMCopyToggle], a .no_oam_copy @@ -181,15 +181,14 @@ IncrementPlayTimeCounter: ; 021c (0:021c) ; setup timer to 16384/68 ≈ 240.94 Hz SetupTimer: ; 0241 (0:0241) - ld b, $100 - 68 - ; ld b, $bc + ld b, -68 ; Value for Normal Speed call CheckForCGB - jr c, .asm_250 + jr c, .set_timer ld a, [rKEY1] and $80 - jr z, .asm_250 - ld b, $100 - 2*68 -.asm_250 + jr z, .set_timer + ld b, $100 - 2 * 68 ; Value for CGB Double Speed +.set_timer ld a, b ld [rTMA], a ld a, rTAC_16384_HZ @@ -343,9 +342,9 @@ SetupLCD: ; 030b (0:030b) ld [wLCDCFunctiontrampoline], a ld [wVBlankFunctionTrampoline], a ld hl, wVBlankFunctionTrampoline + 1 - ld [hl], NopF & $ff ; + ld [hl], LOW(NopF) ; inc hl ; load `jp NopF` - ld [hl], NopF >> $8 ; + ld [hl], HIGH(NopF) ; ld a, $47 ld [wLCDC], a ld a, $1 @@ -416,9 +415,9 @@ SetupVRAM: ; 03a1 (0:03a1) call FillTileMap call CheckForCGB jr c, .vram0 - call BankswitchVRAM_1 + call BankswitchVRAM1 call .vram0 - call BankswitchVRAM_0 + call BankswitchVRAM0 .vram0 ld hl, v0Tiles0 ld bc, v0BGMapTiles1 - v0Tiles0 @@ -433,7 +432,7 @@ SetupVRAM: ; 03a1 (0:03a1) ; fill VRAM0 BG maps with [wTileMapFill] and VRAM1 BG Maps with 0 FillTileMap: ; 03c0 (0:03c0) - call BankswitchVRAM_0 + call BankswitchVRAM0 ld hl, v0BGMapTiles1 ld bc, v0BGMapTiles2 - v0BGMapTiles1 .vram0_loop @@ -446,7 +445,7 @@ FillTileMap: ; 03c0 (0:03c0) ld a, [wConsole] cp CONSOLE_CGB ret nz - call BankswitchVRAM_1 + call BankswitchVRAM1 ld hl, v1BGMapTiles1 ld bc, v1BGMapTiles2 - v1BGMapTiles1 .vram1_loop @@ -456,7 +455,7 @@ FillTileMap: ; 03c0 (0:03c0) ld a, c or b jr nz, .vram1_loop - call BankswitchVRAM_0 + call BankswitchVRAM0 ret ; zero work RAM, stack area & high RAM ($C000-$DFFF, $FF80-$FFEF) @@ -620,7 +619,7 @@ Func_0492: ; 0492 (0:0492) jr nz, .asm_49b ret -Func_04a2: ; 04a2 (0:04a2) +EmptyScreen: ; 04a2 (0:04a2) call DisableLCD call FillTileMap xor a @@ -642,7 +641,7 @@ AttrBlkPacket_04bf: ; 04bf (0:04bf) ds 6 ; data set 2 ds 2 ; data set 3 -; returns v0BGMapTiles1 + BG_MAP_WIDTH * c + b in de. +; returns v*BGMapTiles1 + BG_MAP_WIDTH * c + b in de. ; used to map coordinates at bc to a BGMap0 address. BCCoordToBGMap0Address: ; 04cf (0:04cf) ld l, c @@ -790,25 +789,25 @@ HandleDPadRepeat: ; 0572 (0:0572) ret CopyDMAFunction: ; 0593 (0:0593) - ld c, $83 + ld c, LOW(hDMAFunction) ld b, JumpToFunctionInTable - DMA ld hl, DMA -.asm_59a +.loop ld a, [hli] ld [$ff00+c], a inc c dec b - jr nz, .asm_59a + jr nz, .loop ret ; CopyDMAFunction copies this function to hDMAFunction ($ff83) DMA: ; 05a1 (0:05a1) - ld a, $ca + ld a, HIGH(wBufOAM) ld [rDMA], a ld a, $28 -.asm_5a7 +.wait dec a - jr nz, .asm_5a7 + jr nz, .wait ret ; jumps to index a in pointer table hl @@ -829,10 +828,10 @@ CallIndirect: ; 05b6 (0:05b6) push af ld a, [hli] or [hl] - jr nz, .asm_5bd + jr nz, .call_hl pop af ret -.asm_5bd +.call_hl ld a, [hld] ld l, [hl] ld h, a @@ -1048,7 +1047,7 @@ Func_06ee: ; 06ee (0:06ee) ret ; 0x6fc -; memcpy(DE, HL, B) +; copy b bytes of data from hl to de ; if LCD on, copy during h-blank only SafeCopyDataHLtoDE: ; 6fc (0:6fc) ld a, [wLCDC] @@ -1070,8 +1069,8 @@ JumpToHblankCopyDataHLtoDE: ; 0709 (0:0709) CopyGfxData: ; 070c (0:070c) ld a, [wLCDC] rla - jr nc, .asm_726 -.asm_712 + jr nc, .next_tile +.hblank_copy push bc push hl push de @@ -1086,19 +1085,19 @@ CopyGfxData: ; 070c (0:070c) add hl, bc pop bc dec b - jr nz, .asm_712 + jr nz, .hblank_copy ret -.asm_726 +.next_tile push bc -.asm_727 +.copy_tile ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_727 + jr nz, .copy_tile pop bc dec b - jr nz, .asm_726 + jr nz, .next_tile ret CopyDataHLtoDE_SaveRegisters: ; 0732 (0:0732) @@ -1245,7 +1244,7 @@ DisableSRAM: ; 07be (0:07be) ret ; set current dest VRAM bank to 0 -BankswitchVRAM_0: ; 07c5 (0:07c5) +BankswitchVRAM0: ; 07c5 (0:07c5) push af xor a ldh [hBankVRAM], a @@ -1254,7 +1253,7 @@ BankswitchVRAM_0: ; 07c5 (0:07c5) ret ; set current dest VRAM bank to 1 -BankswitchVRAM_1: ; 07cd (0:07cd) +BankswitchVRAM1: ; 07cd (0:07cd) push af ld a, $1 ldh [hBankVRAM], a @@ -1925,7 +1924,7 @@ Wait: ; 0c08 (0:0c08) jr nz, Wait ret -; memcpy(DE, HL, B), but only during hblank +; copy b bytes of data from hl to de, but only during hblank HblankCopyDataHLtoDE: ; 0c19 (0:0c19) push bc .loop @@ -1947,7 +1946,7 @@ HblankCopyDataHLtoDE: ; 0c19 (0:0c19) pop bc ret -; memcpy(HL, DE, C), but only during hblank +; copy c bytes of data from de to hl, but only during hblank HblankCopyDataDEtoHL: ; 0c32 (0:0c32) push bc .loop @@ -1970,7 +1969,34 @@ HblankCopyDataDEtoHL: ; 0c32 (0:0c32) ret ; 0xc4b - INCROM $0c4b, $0c91 +; returns a *= 10 +Func_0c4b: ; 0c4b (0:0c4b) + push de + ld e, a + add a + add a + add e + add a + pop de + ret +; 0xc53 + +; returns hl *= 10 +Func_0c53: ; 0c53 (0:0c53) + push de + ld l, a + ld e, a + ld h, $00 + ld d, h + add hl, hl + add hl, hl + add hl, de + add hl, hl + pop de + ret +; 0xc5f + + INCROM $0c5f, $0c91 ; called at roughly 240Hz by TimerHandler SerialTimerHandler: ; 0c91 (0:0c91) @@ -2010,7 +2036,65 @@ SerialTimerHandler: ; 0c91 (0:0c91) ret ; 0xcc5 - INCROM $0cc5, $0d26 +Func_0cc5: ; 0cc5 (0:0cc5) + ld hl, wSerialRecvCounter + or a + jr nz, .asm_cdc + ld a, [hl] + or a + ret z + ld [hl], $00 + ld a, [wSerialRecvBuf] + ld e, $12 + cp $29 + jr z, .asm_cfa + xor a + scf + ret +.asm_cdc + ld a, $29 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a +.asm_ce8 + ld a, [hl] + or a + jr z, .asm_ce8 + ld [hl], $00 + ld a, [wSerialRecvBuf] + ld e, $29 + cp $12 + jr z, .asm_cfa + xor a + scf + ret +.asm_cfa + xor a + ld [wSerialSendBufIndex], a + ld [wcb80], a + ld [wSerialSendBufToggle], a + ld [wSerialSendSave], a + ld [wcba3], a + ld [wSerialRecvIndex], a + ld [wSerialRecvCounter], a + ld [wSerialLastReadCA], a + ld a, e + cp $29 + jr nz, .asm_d21 + ld bc, $800 +.asm_d1b + dec bc + ld a, c + or b + jr nz, .asm_d1b + ld a, e +.asm_d21 + ld [wSerialOp], a + scf + ret +; 0xd26 SerialHandler: ; 0d26 (0:0d26) push af @@ -2618,23 +2702,24 @@ CopyDeckData: ; 1072 (0:1072) ret ; 0x10aa -Func_10aa: ; 10aa (0:10aa) +; return, in register a, the amount of unclaimed prizes that the turn holder has left +CountPrizes: ; 10aa (0:10aa) push hl ld a, DUELVARS_PRIZES call GetTurnDuelistVariable ld l, a xor a -.asm_10b2 +.count_loop rr l adc $00 inc l dec l - jr nz, .asm_10b2 + jr nz, .count_loop pop hl ret ; 0x10bc -; shuffles the deck specified by hWhoseTurn +; shuffles the turn holder's deck ; if less than 60 cards remain in the deck, make sure the rest are ignored ShuffleDeck: ; 10bc (0:10bc) ldh a, [hWhoseTurn] @@ -2651,7 +2736,7 @@ ShuffleDeck: ; 10bc (0:10bc) call ShuffleCards ret -; draw a card from the deck, saving its location as CARD_LOCATION_JUST_DRAWN +; draw a card from the turn holder's deck, saving its location as CARD_LOCATION_JUST_DRAWN ; returns c if deck is empty, nc if a card was succesfully drawn DrawCardFromDeck: ; 10cf (0:10cf) push hl @@ -2676,9 +2761,64 @@ DrawCardFromDeck: ; 10cf (0:10cf) ret ; 0x10e8 - INCROM $10e8, $1123 +; add a card to the top of the turn holder's deck +; the card is identified by register a, which contains the card number within the deck (0-59) +ReturnCardToDeck: ; 10e8 (0:10e8) + push hl + push af + ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK + call GetTurnDuelistVariable + dec a + ld [hl], a ; decrement number of cards not in deck + add DUELVARS_DECK_CARDS + ld l, a ; point to top deck card + pop af + ld [hl], a ; set top deck card + ld l, a + ld [hl], CARD_LOCATION_DECK + ld a, l + pop hl + ret +; 0x10fc -; adds a card to the hand and increments the number of cards in the hand +; search a card in the turn holder's deck, extract it, and add it to the hand +; the card is identified by register a, which contains the card number within the deck (0-59) +SearchCardInDeckAndAddToHand: ; 10fc (0:10fc) + push af + push hl + push de + push bc + ld c, a + ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK + call GetTurnDuelistVariable + ld a, DECK_SIZE + sub [hl] + inc [hl] ; increment number of cards not in deck + ld b, a ; DECK_SIZE - [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK] (number of cards in deck) + ld l, c + set CARD_LOCATION_JUST_DRAWN_F, [hl] + ld l, DUELVARS_DECK_CARDS + DECK_SIZE - 1 + ld e, l + ld d, h ; hl = de = DUELVARS_DECK_CARDS + DECK_SIZE - 1 (last card) + inc b + jr .match +.loop + ld a, [hld] + cp c + jr z, .match + ld [de], a + dec de +.match + dec b + jr nz, .loop + pop bc + pop de + pop hl + pop af + ret +; 0x1123 + +; adds a card to the turn holder's hand and increments the number of cards in the hand ; the card is identified by register a, which contains the card number within the deck (0-59) AddCardToHand: ; 1123 (0:1123) push af @@ -2688,7 +2828,7 @@ AddCardToHand: ; 1123 (0:1123) ld l, a ldh a, [hWhoseTurn] ld h, a - ; write $1 (CARD_LOCATION_HAND) into the location of this card + ; write CARD_LOCATION_HAND into the location of this card ld [hl], CARD_LOCATION_HAND ; increment number of cards in hand ld l, DUELVARS_NUMBER_OF_CARDS_IN_HAND @@ -2704,9 +2844,237 @@ AddCardToHand: ; 1123 (0:1123) ret ; 0x1139 - INCROM $1139, $123b +; removes a card to the turn holder's hand and decrements the number of cards in the hand +; the card is identified by register a, which contains the card number within the deck (0-59) +RemoveCardFromHand: ; 1139 (0:1139) + push af + push hl + push bc + push de + ld c, a + ld a, DUELVARS_NUMBER_OF_CARDS_IN_HAND + call GetTurnDuelistVariable + or a + jr z, .done ; done if no cards in hand + ld b, a ; number of cards in hand + ld l, DUELVARS_HAND + ld e, l + ld d, h +.next_card + ld a, [hli] + cp c + jr nz, .no_match + push hl + ld l, DUELVARS_NUMBER_OF_CARDS_IN_HAND + dec [hl] + pop hl + jr .done_card +.no_match + ld [de], a ; keep card in hand + inc de +.done_card + dec b + jr nz, .next_card +.done + pop de + pop bc + pop hl + pop af + ret +; 0x1160 + +; moves a card to the turn holder's discard pile, as long as it is in the hand +; the card is identified by register a, which contains the card number within the deck (0-59) +MoveHandCardToDiscardPile: ; 1160 (0:1160) + call GetTurnDuelistVariable + ld a, [hl] + and $ff ^ CARD_LOCATION_JUST_DRAWN + cp CARD_LOCATION_HAND + ret nz ; return if card not in hand + ld a, l + call RemoveCardFromHand + push af + push hl + push de + call GetTurnDuelistVariable + ld [hl], CARD_LOCATION_DISCARD_PILE + ld e, l + ld l, DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE + inc [hl] + ld a, DUELVARS_DECK_CARDS - 1 + add [hl] + ld l, a + ld [hl], e ; save card to DUELVARS_DECK_CARDS + [DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE] + pop de + pop hl + pop af + ret +; 0x1182 + +; search a card in the turn holder's discard pile, extract it, and add it to the hand +; the card is identified by register a, which contains the card number within the deck (0-59) +SearchCardInDiscardPileAndAddToHand: ; 1182 (0:1182) + push hl + push de + push bc + call GetTurnDuelistVariable + set CARD_LOCATION_JUST_DRAWN_F, [hl] + ld b, l + ld l, DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE + ld a, [hl] + or a + jr z, .done ; done if no cards in discard pile + ld c, a + dec [hl] ; decrement number of cards in discard pile + ld l, DUELVARS_DECK_CARDS + ld e, l + ld d, h ; de = hl = DUELVARS_DECK_CARDS +.next_card + ld a, [hli] + cp b + jr z, .match + ld [de], a + inc de +.match + dec c + jr nz, .next_card + ld a, b +.done + pop bc + pop de + pop hl + ret +; 0x11a5 + +; return in the z flag whether turn holder's prize a (0-7) has been taken or not +; z: taken, nz: not taken +CheckPrizeTaken: ; 11a5 (0:11a5) + ld e, a + ld d, 0 + ld hl, .prize_bits + add hl, de + ld a, [hl] + ld e, a + cpl + ld d, a + ld a, DUELVARS_PRIZES + call GetTurnDuelistVariable + and e + ret + +.prize_bits + db $01, $02, $04, $08, $10, $20, $40, $80 +; 0x11bf + +; fill wDuelCardOrAttackList with the turn holder's discard pile cards +; return carry if the turn holder has no cards in the discard pile +CreateDiscardPileCardList: ; 11bf (0:11bf) + ldh a, [hWhoseTurn] + ld h, a + ld l, DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE + ld b, [hl] + ld a, DUELVARS_DECK_CARDS - 1 + add [hl] ; point to last card in discard pile + ld l, a + ld de, wDuelCardOrAttackList + inc b + jr .begin_loop +.next_card_loop + ld a, [hld] + ld [de], a + inc de +.begin_loop + dec b + jr nz, .next_card_loop + ld a, $ff ; $ff-terminated + ld [de], a + ld l, DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE + ld a, [hl] + or a + ret nz + scf + ret +; 0x11df -CreateHandCardBuffer: ; 123b (0:123b) +; fill wDuelCardOrAttackList with the turn holder's remaining deck cards +; return carry if the turn holder has no cards left in the deck +CreateDeckCardList: ; 11df (0:11df) + ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK + call GetTurnDuelistVariable + cp DECK_SIZE + jr nc, .no_cards_left_in_deck + ld a, DECK_SIZE + sub [hl] + ld c, a + ld b, a ; c = b = DECK_SIZE - [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK] + ld a, [hl] + add DUELVARS_DECK_CARDS + ld l, a ; l = DUELVARS_DECK_CARDS + [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK] + inc b + ld de, wDuelCardOrAttackList + jr .begin_loop +.next_card + ld a, [hli] + ld [de], a + inc de +.begin_loop + dec b + jr nz, .next_card + ld a, $ff ; $ff-terminated + ld [de], a + ld a, c + or a + ret +.no_cards_left_in_deck + ld a, $ff + ld [wDuelCardOrAttackList], a + scf + ret +; 0x120a + +; fill wDuelCardOrAttackList with the turn holder's energy cards in the arena or in a bench slot +; if a == 0: search in CARD_LOCATION_ARENA +; if a != 0: search in CARD_LOCATION_BENCH_[A] +; return carry if no energy cards were found +CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) + or CARD_LOCATION_PLAY_AREA + ld c, a + ld de, wDuelCardOrAttackList + ld a, DUELVARS_CARD_LOCATIONS + call GetTurnDuelistVariable +.next_card_loop + ld a, [hl] + cp c + jr nz, .skip_card ; jump if not in specified play area location + ld a, l + call LoadDeckCardToBuffer2 + ld a, [wLoadedCard2Type] + and 1 << TYPE_ENERGY_F + jr z, .skip_card ; jump if Pokemon or trainer card + ld a, l + ld [de], a ; add to wDuelCardOrAttackList + inc de +.skip_card + inc l + ld a, l + cp DECK_SIZE + jr c, .next_card_loop + ; all cards checked + ld a, $ff + ld [de], a + ld a, [wDuelCardOrAttackList] + cp $ff + jr z, .no_energies_found + or a + ret +.no_energies_found + scf + ret +; 0x123b + +; fill wDuelCardOrAttackList with the turn holder's hand cards +; return carry if the turn holder has no cards in hand +CreateHandCardList: ; 123b (0:123b) call FindLastCardInHand inc b jr .skip_card @@ -2715,7 +3083,7 @@ CreateHandCardBuffer: ; 123b (0:123b) ld a, [hld] push hl ld l, a - bit 6, [hl] + bit CARD_LOCATION_JUST_DRAWN_F, [hl] pop hl jr nz, .skip_card ld [de], a @@ -2724,9 +3092,9 @@ CreateHandCardBuffer: ; 123b (0:123b) .skip_card dec b jr nz, .check_next_card_loop - ld a, $ff + ld a, $ff ; $ff-terminated ld [de], a - ld l, (wPlayerNumberOfCardsInHand & $ff) + ld l, DUELVARS_NUMBER_OF_CARDS_IN_HAND ld a, [hl] or a ret nz @@ -2734,15 +3102,37 @@ CreateHandCardBuffer: ; 123b (0:123b) ret ; 0x1258 - INCROM $1258, $1271 +Func_1258: ; 1258 (0:1258) + call FindLastCardInHand +.loop + ld a, [hld] + ld [de], a + inc de + dec b + jr nz, .loop + ld a, $ff + ld [de], a + call $12a3 + call FindLastCardInHand +.loop2 + ld a, [de] + inc de + ld [hld], a + dec b + jr nz, .loop2 + ret +; 0x1271 -; puts an index to the last (newest) card in current player's hand into hl. +; returns: +; b = turn holder's number of cards in hand (DUELVARS_NUMBER_OF_CARDS_IN_HAND) +; hl = pointer to turn holder's last (newest) card in DUELVARS_HAND +; de = wDuelCardOrAttackList FindLastCardInHand: ; 1271 (0:1271) ldh a, [hWhoseTurn] ld h, a - ld l, (wPlayerNumberOfCardsInHand & $ff) + ld l, DUELVARS_NUMBER_OF_CARDS_IN_HAND ld b, [hl] - ld a, (wPlayerHand & $ff) - 1 + ld a, DUELVARS_HAND - 1 add [hl] ld l, a ld de, wDuelCardOrAttackList @@ -2790,11 +3180,10 @@ ShuffleCards: ; 127f (0:127f) INCROM $12a3, $1312 - ; given a position in wDuelCardOrAttackList (c510), return: ; the id of the card in that position in register de ; its index within the deck (0 - 59) in hTempCardNumber and in register a -GetCardInC510: ; 1312 (0:1312) +GetCardInList: ; 1312 (0:1312) push hl ld e, a ld d, $0 @@ -2934,10 +3323,9 @@ Func_1485: ; 1485 (0:1485) INCROM $14d2, $159f -; This function iterates through the card locations array to find out which and how many -; energy cards are in arena (i.e. attached to the active pokemon). -; One or more location constants (so long as they don't clash with the arena location constant) -; can be specified in register e; if so, energies found in that location will be counted too. +; Find which and how many energy cards are attached to the Pokemon card in the arena, +; or to a Pokemon card in the bench, depending on the value of register e. +; input: e (location to check) = CARD_LOCATION_* - CARD_LOCATION_PLAY_AREA ; Feedback is returned in wAttachedEnergies and wTotalAttachedEnergies. GetAttachedEnergies: ; 159f (0:159f) push hl @@ -2950,8 +3338,8 @@ GetAttachedEnergies: ; 159f (0:159f) ld [hli], a dec c jr nz, .zero_energies_loop - ld a, CARD_LOCATION_ARENA - or e ; if e is non-0, arena is not the only location that counts + ld a, CARD_LOCATION_PLAY_AREA + or e ; if e is non-0, a bench location is checked instead ld e, a ldh a, [hWhoseTurn] ld h, a @@ -2970,7 +3358,7 @@ GetAttachedEnergies: ; 159f (0:159f) ld a, [wLoadedCard2Type] bit TYPE_ENERGY_F, a jr z, .not_an_energy_card - and $7 ; zero bit 3 to extract the type + and TYPE_PKMN ; zero bit 3 to extract the type ld e, a ld d, $0 ld hl, wAttachedEnergies @@ -3928,7 +4316,7 @@ Func_1d91: ; 1d91 (0:1d91) INCROM $1da4, $1dca -; memcpy(HL, DE, C) +; copy c bytes of data from de to hl ; if LCD on, copy during h-blank only SafeCopyDataDEtoHL: ; 1dca (0:1dca) ld a, [wLCDC] ; @@ -3944,7 +4332,7 @@ SafeCopyDataDEtoHL: ; 1dca (0:1dca) .lcd_on jp HblankCopyDataDEtoHL -; returns v0BGMapTiles1 + BG_MAP_WIDTH * e + d in hl. +; returns v*BGMapTiles1 + BG_MAP_WIDTH * e + d in hl. ; used to map coordinates at de to a BGMap0 address. DECoordToBGMap0Address: ; 1ddb (0:1ddb) ld l, e @@ -4160,13 +4548,13 @@ ContinueDrawingTextBoxCGB: push hl call CopyLine pop hl - call BankswitchVRAM_1 + call BankswitchVRAM1 ld a, [wFrameType] ld e, a ld d, a xor a call CopyLine - call BankswitchVRAM_0 + call BankswitchVRAM0 dec c jr nz, .draw_text_box_body_loop ; bottom line (border) of the text box @@ -4185,12 +4573,12 @@ CopyCurrentLineTilesAndAttrCGB: ; 1efb (0:1efb) pop hl ; fallthrough CopyCurrentLineAttrCGB: - call BankswitchVRAM_1 + call BankswitchVRAM1 ld a, [wFrameType] ; on CGB, wFrameType determines the palette and the other attributes ld e, a ld d, a call CopyLine - call BankswitchVRAM_0 + call BankswitchVRAM0 ret DrawRegularTextBoxSGB: ; 1f0f (0:1f0f) @@ -4948,13 +5336,13 @@ Func_24fa: ; 24fa (0:24fa) ld bc, VWF add hl, bc ld b, $8 -.asm_2508 +.set_timer8 ld a, [hli] ld [de], a inc de inc de dec b - jr nz, .asm_2508 + jr nz, .set_timer8 ret Func_2510: ; 2510 (0:2510) @@ -5334,9 +5722,9 @@ DrawCardSymbol: ; 29ac (0:29ac) ld a, [hl] lb bc, 2, 2 lb hl, 0, 0 - call BankswitchVRAM_1 + call BankswitchVRAM1 call FillRectangle - call BankswitchVRAM_0 + call BankswitchVRAM0 pop hl .tiles ld a, [hl] diff --git a/src/wram.asm b/src/wram.asm index a8f1e10..f081eb5 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -3,7 +3,7 @@ INCLUDE "constants.asm" INCLUDE "vram.asm" -SECTION "WRAM 0", WRAM0 +SECTION "WRAM0", WRAM0 wTempCardCollection:: ; c000 ds $100 @@ -12,11 +12,10 @@ wTempCardCollection:: ; c000 SECTION "WRAM Duels 1", WRAM0 -wPlayerDuelVariables:: ; c200 - ; In order to be identified during a duel, the 60 cards of each duelist are given an index between 0 and 59. ; These indexes are assigned following the internal order of the cards that make up the deck. ; This temporary index identifies the card during the current duel and within the duelist's deck. +wPlayerDuelVariables:: ; c200 ; 60-byte array that indicates where each of the 60 cards is. ; $00 - deck @@ -34,14 +33,15 @@ wPlayerCardLocations:: ; c200 wPlayerHand:: ; c242 ds DECK_SIZE -; 60-byte array that maps each card to its position in the deck. +; 60-byte array that maps each card to its position in the deck or anywhere else ; This array is initialized to 00, 01, 02, ..., 59, until deck is shuffled. +; Cards in the discard pile go first, cards still in the deck go last, and others go in-between. wPlayerDeckCards:: ; c27e ds DECK_SIZE -; Stores x = (60 - deck remaining cards) -; The first x cards in the wPlayerDeckCards array are no longer in the drawable deck this duel -; The top card of the player's deck is at wPlayerDeckCards + [wPlayerNumberOfCardsNotInDeck] +; Stores x = (60 - deck remaining cards). +; The first x cards in the wPlayerDeckCards array are no longer in the drawable deck this duel. +; The top card of the player's deck is at wPlayerDeckCards + [wPlayerNumberOfCardsNotInDeck]. wPlayerNumberOfCardsNotInDeck:: ; c2ba ds $1 @@ -364,7 +364,7 @@ wObjectPalettesCGB:: ; cb30 ds $4 -SECTION "WRAM Serial transfer bytes", WRAM0 +SECTION "WRAM Serial Transfer", WRAM0 wSerialOp:: ; cb74 ds $1 diff --git a/tcg.link b/tcg.link index a86f7e8..9ec553d 100644 --- a/tcg.link +++ b/tcg.link @@ -156,11 +156,11 @@ ROMX $3e ROMX $3f "Audio 3" WRAM0 - "WRAM 0" + "WRAM0" "WRAM Duels 1" "WRAM Text Engine" "WRAM Engine 1" - "WRAM Serial transfer bytes" + "WRAM Serial Transfer" "WRAM Duels 2" "WRAM Engine 2" WRAMX 1 -- cgit v1.2.3 From 377e0af97780092df6baa0bd0183e1d3ee622c39 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Tue, 20 Feb 2018 19:28:43 +0100 Subject: A few corrections and more disasm --- src/constants/card_data_constants.asm | 1 + src/engine/bank1.asm | 2 +- src/engine/booster_packs.asm | 2 +- src/engine/home.asm | 42 ++++++++++++++++++++++++++++------- 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 5a5898e..6a07ce9 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -13,6 +13,7 @@ ENERGY_CARD_DATA_LENGTH EQU $0e const WATER ; $3 const FIGHTING ; $4 const PSYCHIC ; $5 +NUM_COLORED_TYPES EQU const_value const COLORLESS ; $6 const UNUSED_TYPE ; $7 NUM_TYPES EQU const_value diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 8e54d12..f6acaf2 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -893,7 +893,7 @@ _CheckIfEnoughEnergies: ; 48ac (1:48ac) xor a ld [wAttachedEnergiesAccum], a ld hl, wAttachedEnergies - ld c, (COLORLESS - FIRE) / 2 + ld c, (NUM_COLORED_TYPES) / 2 .next_energy_type_pair ld a, [de] swap a diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index 967a0ee..23c3494 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -320,7 +320,7 @@ AddBoosterEnergyToDrawnEnergies: ; 1e380 (7:6380) ; generates a random energy card GenerateEndingEnergy: ; 1e387 (7:6387) - ld a, COLORLESS - FIRE + ld a, NUM_COLORED_TYPES call Random add $01 jr AddBoosterEnergyToDrawnEnergies diff --git a/src/engine/home.asm b/src/engine/home.asm index b6ff03a..23842a0 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2844,7 +2844,7 @@ AddCardToHand: ; 1123 (0:1123) ret ; 0x1139 -; removes a card to the turn holder's hand and decrements the number of cards in the hand +; removes a card from the turn holder's hand and decrements the number of cards in the hand ; the card is identified by register a, which contains the card number within the deck (0-59) RemoveCardFromHand: ; 1139 (0:1139) push af @@ -3178,11 +3178,37 @@ ShuffleCards: ; 127f (0:127f) ret ; 0x12a3 - INCROM $12a3, $1312 + INCROM $12a3, $12fa -; given a position in wDuelCardOrAttackList (c510), return: -; the id of the card in that position in register de -; its index within the deck (0 - 59) in hTempCardNumber and in register a +; returns, in register bc, the id of the card in the deck position specified in register a +; preserves hl +GetCardInDeckPosition_bc: ; 12fa (0:12fa) + push hl + call _GetCardInDeckPosition + ld c, a + ld b, $0 + pop hl + ret +; 0x1303 + +; return [wDuelCardOrAttackList + a] in a and in hTempCardNumber +Func_1303: ; 1303 (0:1303) + push hl + push de + ld e, a + ld d, $0 + ld hl, wDuelCardOrAttackList + add hl, de + ld a, [hl] + ldh [hTempCardNumber], a + pop de + pop hl + ret +; 0x1312 + +; given the deck position (0-59) of a card in [wDuelCardOrAttackList + a], return: +; - the id of the card located in that deck position in register de +; - [wDuelCardOrAttackList + a] in hTempCardNumber and in register a GetCardInList: ; 1312 (0:1312) push hl ld e, a @@ -3197,8 +3223,8 @@ GetCardInList: ; 1312 (0:1312) ret ; 0x1324 -; returns, in register de, the id of the card in the deck position specified in register a, -; preserving af and hl +; returns, in register de, the id of the card in the deck position specified by register a +; preserves af and hl GetCardInDeckPosition: ; 1324 (0:1324) push af push hl @@ -7783,7 +7809,7 @@ HandleEnergyBurn: ; 375d (0:375d) call CheckIfUnderAnyCannotUseStatus2 ret c ld hl, wAttachedEnergies - ld c, COLORLESS - FIRE + ld c, NUM_COLORED_TYPES xor a .zero_next_energy ld [hli], a -- cgit v1.2.3 From 673e6ceb895b7788cce826b9d4e9e05b9d9f9f0b Mon Sep 17 00:00:00 2001 From: xCrystal Date: Tue, 20 Feb 2018 21:23:13 +0100 Subject: A few text labels --- src/constants/music_constants.asm | 62 +- src/data/map_songs.asm | 20 +- src/engine/bank1.asm | 55 +- src/engine/bank2.asm | 6 +- src/engine/bank3.asm | 10 +- src/engine/bank4.asm | 4 +- src/engine/bank7.asm | 2 +- src/engine/home.asm | 8 +- src/text/text1.asm | 20 +- src/text/text2.asm | 2 +- src/text/text_offsets.asm | 5980 ++++++++++++++++++------------------- 11 files changed, 3085 insertions(+), 3084 deletions(-) diff --git a/src/constants/music_constants.asm b/src/constants/music_constants.asm index ebcd75f..996baf2 100644 --- a/src/constants/music_constants.asm +++ b/src/constants/music_constants.asm @@ -1,32 +1,32 @@ const_def - const MUSIC_STOP ; $00 - const MUSIC_TITLESCREEN ; $01 - const MUSIC_DUELTHEME1 ; $02 - const MUSIC_DUELTHEME2 ; $03 - const MUSIC_DUELTHEME3 ; $04 - const MUSIC_PAUSEMENU ; $05 - const MUSIC_PCMAINMENU ; $06 - const MUSIC_DECKMACHINE ; $07 - const MUSIC_CARDPOP ; $08 - const MUSIC_OVERWORLD ; $09 - const MUSIC_POKEMONDOME ; $0A - const MUSIC_CHALLENGEHALL ; $0B - const MUSIC_CLUB1 ; $0C - const MUSIC_CLUB2 ; $0D - const MUSIC_CLUB3 ; $0E - const MUSIC_RONALD ; $0F - const MUSIC_IMAKUNI ; $10 - const MUSIC_HALLOFHONOR ; $11 - const MUSIC_CREDITS ; $12 - const MUSIC_UNUSED_13 ; $13 - const MUSIC_UNUSED_14 ; $14 - const MUSIC_MATCHSTART1 ; $15 - const MUSIC_MATCHSTART2 ; $16 - const MUSIC_MATCHSTART3 ; $17 - const MUSIC_MATCHVICTORY ; $18 - const MUSIC_MATCHLOSS ; $19 - const MUSIC_DARKDIDDLY ; $1A - const MUSIC_UNUSED_1B ; $1B - const MUSIC_BOOSTERPACK ; $1C - const MUSIC_MEDAL ; $1D - const MUSIC_UNUSED_1E ; $1E + const MUSIC_STOP ; $00 + const MUSIC_TITLESCREEN ; $01 + const MUSIC_DUEL_THEME_1 ; $02 + const MUSIC_DUEL_THEME_2 ; $03 + const MUSIC_DUEL_THEME_3 ; $04 + const MUSIC_PAUSE_MENU ; $05 + const MUSIC_PC_MAIN_MENU ; $06 + const MUSIC_DECK_MACHINE ; $07 + const MUSIC_CARD_POP ; $08 + const MUSIC_OVERWORLD ; $09 + const MUSIC_POKEMON_DOME ; $0A + const MUSIC_CHALLENGE_HALL ; $0B + const MUSIC_CLUB_1 ; $0C + const MUSIC_CLUB_2 ; $0D + const MUSIC_CLUB_3 ; $0E + const MUSIC_RONALD ; $0F + const MUSIC_IMAKUNI ; $10 + const MUSIC_HALL_OF_HONOR ; $11 + const MUSIC_CREDITS ; $12 + const MUSIC_UNUSED_13 ; $13 + const MUSIC_UNUSED_14 ; $14 + const MUSIC_MATCH_START_1 ; $15 + const MUSIC_MATCH_START_2 ; $16 + const MUSIC_MATCH_START_3 ; $17 + const MUSIC_MATCH_VICTORY ; $18 + const MUSIC_MATCH_LOSS ; $19 + const MUSIC_DARK_DIDDLY ; $1A + const MUSIC_UNUSED_1B ; $1B + const MUSIC_BOOSTER_PACK ; $1C + const MUSIC_MEDAL ; $1D + const MUSIC_UNUSED_1E ; $1E diff --git a/src/data/map_songs.asm b/src/data/map_songs.asm index afb54a8..4012452 100644 --- a/src/data/map_songs.asm +++ b/src/data/map_songs.asm @@ -7,31 +7,31 @@ MapSongs: ; 1c374 (7:4374) db $0A,$0B,$00,$03,$03,MUSIC_OVERWORLD ; ISHIHARAS_HOUSE db $0C,$0D,$00,$03,$04,MUSIC_OVERWORLD ; FIGHTING_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; FIGHTING_CLUB_LOBBY - db $20,$21,$00,$04,$0D,MUSIC_CLUB3 ; FIGHTING_CLUB + db $20,$21,$00,$04,$0D,MUSIC_CLUB_3 ; FIGHTING_CLUB db $0E,$0F,$00,$03,$05,MUSIC_OVERWORLD ; ROCK_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; ROCK_CLUB_LOBBY - db $22,$23,$00,$04,$0E,MUSIC_CLUB2 ; ROCK_CLUB + db $22,$23,$00,$04,$0E,MUSIC_CLUB_2 ; ROCK_CLUB db $10,$11,$00,$03,$06,MUSIC_OVERWORLD ; WATER_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; WATER_CLUB_LOBBY - db $24,$25,$00,$02,$0F,MUSIC_CLUB2 ; WATER_CLUB + db $24,$25,$00,$02,$0F,MUSIC_CLUB_2 ; WATER_CLUB db $12,$13,$00,$03,$07,MUSIC_OVERWORLD ; LIGHTNING_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; LIGHTNING_CLUB_LOBBY - db $26,$27,$00,$05,$10,MUSIC_CLUB1 ; LIGHTNING_CLUB + db $26,$27,$00,$05,$10,MUSIC_CLUB_1 ; LIGHTNING_CLUB db $14,$15,$00,$03,$08,MUSIC_OVERWORLD ; GRASS_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; GRASS_CLUB_LOBBY - db $28,$29,$00,$06,$11,MUSIC_CLUB1 ; GRASS_CLUB + db $28,$29,$00,$06,$11,MUSIC_CLUB_1 ; GRASS_CLUB db $16,$17,$00,$03,$09,MUSIC_OVERWORLD ; PSYCHIC_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; PSYCHIC_CLUB_LOBBY - db $2A,$2B,$00,$07,$12,MUSIC_CLUB2 ; PSYCHIC_CLUB + db $2A,$2B,$00,$07,$12,MUSIC_CLUB_2 ; PSYCHIC_CLUB db $18,$19,$00,$03,$0A,MUSIC_OVERWORLD ; SCIENCE_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; SCIENCE_CLUB_LOBBY - db $2C,$2D,$00,$06,$13,MUSIC_CLUB3 ; SCIENCE_CLUB + db $2C,$2D,$00,$06,$13,MUSIC_CLUB_3 ; SCIENCE_CLUB db $1A,$1B,$00,$03,$0B,MUSIC_OVERWORLD ; FIRE_CLUB_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; FIRE_CLUB_LOBBY - db $2E,$2F,$00,$08,$14,MUSIC_CLUB3 ; FIRE_CLUB + db $2E,$2F,$00,$08,$14,MUSIC_CLUB_3 ; FIRE_CLUB db $1C,$1D,$00,$03,$04,MUSIC_OVERWORLD ; CHALLENGE_HALL_ENTRANCE db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; CHALLENGE_HALL_LOBBY db $30,$31,$00,$09,$15,MUSIC_OVERWORLD ; CHALLENGE_HALL db $32,$33,$00,$0A,$16,MUSIC_OVERWORLD ; POKEMON_DOME_ENTRANCE - db $36,$37,$00,$0A,$17,MUSIC_POKEMONDOME ; POKEMON_DOME - db $3A,$3B,$00,$0A,$18,MUSIC_HALLOFHONOR ; HALL_OF_HONOR + db $36,$37,$00,$0A,$17,MUSIC_POKEMON_DOME ; POKEMON_DOME + db $3A,$3B,$00,$0A,$18,MUSIC_HALL_OF_HONOR ; HALL_OF_HONOR diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index f6acaf2..3e924be 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -56,7 +56,7 @@ CommentedOut_406e: ; 406e (1:406e) ; 0x406f Func_406f: ; 406f (1:406f) - call $420b + call Func_420b call $66e9 ldtx hl, BackUpIsBrokenText jr c, .asm_4097 @@ -84,7 +84,7 @@ Func_406f: ; 406f (1:406f) StartDuel: ; 409f (1:409f) ld a, PLAYER_TURN ldh [hWhoseTurn], a - ld a, $0 + ld a, DUELIST_TYPE_PLAYER ld [wPlayerDuelistType], a ld a, [wcc19] ld [wOpponentDeckId], a @@ -94,7 +94,7 @@ StartDuel: ; 409f (1:409f) call SwapTurn jr .asm_40ca - ld a, MUSIC_DUELTHEME1 + ld a, MUSIC_DUEL_THEME_1 ld [wDuelTheme], a ld hl, $cc16 xor a @@ -110,7 +110,7 @@ StartDuel: ; 409f (1:409f) ld [wcbe6], a xor a ld [wCurrentDuelMenuItem], a - call $420b + call Func_420b ld a, [wcc18] ld [wcc08], a call $70aa @@ -183,7 +183,7 @@ StartDuel: ; 409f (1:409f) cp DUEL_LOST jr z, .active_duelist_lost_batte ld a, $5f - ld c, MUSIC_DARKDIDDLY + ld c, MUSIC_DARK_DIDDLY ldtx hl, DuelWasDrawText jr .handle_duel_finished @@ -195,7 +195,7 @@ StartDuel: ; 409f (1:409f) xor a ld [wd0c3], a ld a, $5d - ld c, MUSIC_MATCHVICTORY + ld c, MUSIC_MATCH_VICTORY ldtx hl, WonDuelText jr .handle_duel_finished @@ -207,7 +207,7 @@ StartDuel: ; 409f (1:409f) ld a, $1 ld [wd0c3], a ld a, $5e - ld c, MUSIC_MATCHLOSS + ld c, MUSIC_MATCH_LOSS ldtx hl, LostDuelText .handle_duel_finished @@ -461,7 +461,7 @@ DuelMenu_Retreat: ; 43ab (1:43ab) jr c, Func_441f call $4611 jr c, Func_441c - ldtx hl, SelectMonOnBenchToSwitchWithActiveText + ldtx hl, SelectPkmnOnBenchToSwitchWithActiveText call DrawWideTextBox_WaitForInput call $600c jr c, Func_441c @@ -485,7 +485,7 @@ Func_43f1: ; 43f1 (1:43f1) call $4611 jr c, Func_441c call $6558 - ldtx hl, SelectMonOnBenchToSwitchWithActiveText + ldtx hl, SelectPkmnOnBenchToSwitchWithActiveText call DrawWideTextBox_WaitForInput call $600c ld [wBenchSelectedPokemon], a @@ -756,7 +756,7 @@ Func_481b: ; $481b (1:481b) ld [hl], a ret -; copies the following to the c510 buffer: +; copies the following to the wDuelCardOrAttackList buffer: ; if pokemon's second moveslot is empty: , 0 ; else: , 0, , 1 LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) @@ -822,7 +822,7 @@ CheckIfMoveExists: ; 4872 (1:4872) ld hl, wLoadedCard1Move1Category - (wLoadedCard1Move1Name + 1) add hl, de ld a, [hl] - and $ff - RESIDUAL + and $ff ^ RESIDUAL cp POKEMON_POWER jr z, .return_no_move_found or a @@ -894,6 +894,7 @@ _CheckIfEnoughEnergies: ; 48ac (1:48ac) ld [wAttachedEnergiesAccum], a ld hl, wAttachedEnergies ld c, (NUM_COLORED_TYPES) / 2 + .next_energy_type_pair ld a, [de] swap a @@ -916,14 +917,14 @@ _CheckIfEnoughEnergies: ; 48ac (1:48ac) cp b jr c, .not_enough_energies or a -.asm_48fb +.done pop de ret .not_usable .not_enough_energies scf - jr .asm_48fb + jr .done ; 0x4900 ; given the amount of energies of a specific type required for an attack in the @@ -1019,7 +1020,7 @@ Func_4b60: ; 4b60 (1:4b60) jr .asm_4bd0 .asm_4bb2 - ld hl, $006b + ldtx hl, NeitherPlayerHasBasicPkmnText call DrawWideTextBox_WaitForInput call $4e06 call $7107 @@ -1041,14 +1042,14 @@ Func_4b60: ; 4b60 (1:4b60) call SwapTurn jp c, $4c77 call Func_311d - ld hl, $0072 + ldtx hl, PlacingThePrizesText call DrawWideTextBox_WaitForInput call Func_0f58 ld a, [wcc08] ld l, a ld h, $0 call Func_2ec4 - ld hl, $0073 + ldtx hl, PleasePlacePrizesText call DrawWideTextBox_PrintText call EnableLCD call $4c7c @@ -1062,7 +1063,7 @@ Func_4b60: ; 4b60 (1:4b60) call EmptyScreen ld a, BOXMSG_COIN_TOSS call DrawDuelBoxMessage - ld hl, $0075 + ldtx hl, CoinTossToDetermineWhoFirstText call DrawWideTextBox_WaitForInput ld a, [$ff97] cp $c2 @@ -1071,12 +1072,12 @@ Func_4b60: ; 4b60 (1:4b60) call PrintPlayerName ld hl, $0000 call Func_2ebb - ld hl, $0053 - ld de, $0074 + ldtx hl, YouPlayFirstText + ldtx de, IfHeadPlayerPlaysFirstText call TossCoin jr c, .asm_4c4a call SwapTurn - ld hl, $0054 + ldtx hl, YouPlaySecondText .asm_4c4a call DrawWideTextBox_WaitForInput @@ -1089,12 +1090,12 @@ Func_4b60: ; 4b60 (1:4b60) call PrintOpponentName ld hl, $0000 call Func_2ebb - ld hl, $0054 - ld de, $0074 + ldtx hl, YouPlaySecondText + ldtx de, IfHeadPlayerPlaysFirstText call TossCoin jr c, .asm_4c6f call SwapTurn - ld hl, $0053 + ldtx hl, YouPlayFirstText .asm_4c6f call DrawWideTextBox_WaitForInput @@ -1124,7 +1125,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) ret .asm_4cec - ld hl, $0057 + ldtx hl, TransmitingDataText call DrawWideTextBox_PrintText call Func_0f58 ld hl, wPlayerCardLocations @@ -1148,7 +1149,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) call EmptyScreen ld a, BOXMSG_ARENA_POKEMON call DrawDuelBoxMessage - ld hl, $0069 + ldtx hl, ChooseBasicPkmnToPlaceInArenaText call DrawWideTextBox_WaitForInput ld a, $1 call $51e7 @@ -1196,7 +1197,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) jr .asm_4d5f .asm_4d86 - ld hl, $00b2 + ldtx hl, NoSpaceOnTheBenchText call DrawWideTextBox_WaitForInput jr .asm_4d5f @@ -1277,7 +1278,7 @@ AIMakeDecision: ; 67be (1:67be) or a ret nz ld [wVBlankCtr], a - ld hl, $0088 + ldtx hl, DuelistIsThinkingText call DrawWideTextBox_PrintTextNoDelay or a ret diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 8211d07..a9871fd 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -802,9 +802,9 @@ Func_b19d: ; b19d (2:719d) call $5a6d call $7704 call $7545 - ld hl, $0224 + ldtx hl, PleaseSelectDeckText call DrawWideTextBox_PrintText - ld de, $0224 + ld de, $0224 ; PleaseSelectDeckText? call $7285 call $729f jr c, .asm_b1b3 @@ -911,7 +911,7 @@ Func_ba04: ; ba04 (2:7a04) xor a ld hl, $7b6e call InitializeCursorParameters - ld hl, $0224 + ldtx hl, PleaseSelectDeckText call DrawWideTextBox_PrintText ld a, $5 ld [$cea9], a diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index b4f7cf1..d614842 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -978,7 +978,7 @@ Func_c74d: ; c74d (3:474d) MainMenu_c75a: ; c75a (3:475a) call PauseSong - ld a, MUSIC_PAUSEMENU + ld a, MUSIC_PAUSE_MENU call PlaySong call Func_c797 .asm_c765 @@ -1057,7 +1057,7 @@ Func_c7e5: ; c7e5 (3:47e5) ret PC_c7ea: ; c7ea (3:47ea) - ld a, MUSIC_PCMAINMENU + ld a, MUSIC_PC_MAIN_MENU call PlaySong call Func_c241 call $4915 @@ -2646,7 +2646,7 @@ DeckMachine_d336: ; d336 (3:5336) push bc call Func_c2a3 call PauseSong - ld a, MUSIC_DECKMACHINE + ld a, MUSIC_DECK_MACHINE call PlaySong call EmptyScreen xor a @@ -3019,7 +3019,7 @@ OWSequence_Sara: ; e177 (3:6177) run_script OWScript_StartBattle db 2 db WATERFRONT_POKEMON_DECK - 2 ; 6189 - db MUSIC_DUELTHEME1 + db MUSIC_DUEL_THEME_1 run_script OWScript_EndScriptCloseText OWSequence_BeatSara: ; e18c (3:618c) @@ -3057,7 +3057,7 @@ OWSequence_Amanda: ; e19e (03:619e) run_script OWScript_StartBattle db 03 db LONELY_FRIENDS_DECK - 2 - db MUSIC_DUELTHEME1 + db MUSIC_DUEL_THEME_1 run_script OWScript_EndScriptCloseText OWSequence_BeatAmanda: ; e1b3 (03:61b3) diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 27c4ac0..c2a95ac 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -137,7 +137,7 @@ BoosterPack_1031b: ; 1031b (4:431b) ld [wce40], a call $4031 call PauseSong - ld a, MUSIC_BOOSTERPACK + ld a, MUSIC_BOOSTER_PACK call PlaySong pop bc ld a, c @@ -1141,7 +1141,7 @@ Func_12741: ; 12741 (4:6741) ret CardPop_12768: ; 12768 (4:6768) - ld a, MUSIC_CARDPOP + ld a, MUSIC_CARD_POP call PlaySong bank1call Func_7571 farcall Func_c1a4 diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index a049d7c..1423278 100644 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -439,7 +439,7 @@ Func_1d078: ; 1d078 (7:5078) INCROM $1d0fa, $1d11c Func_1d11c: ; 1d11c (7:511c) - ld a, MUSIC_PCMAINMENU + ld a, MUSIC_PC_MAIN_MENU call PlaySong call DisableLCD farcallx $4, $4000 diff --git a/src/engine/home.asm b/src/engine/home.asm index 23842a0..7ccea04 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -3296,7 +3296,7 @@ Func_1485: ; 1485 (0:1485) ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY call GetTurnDuelistVariable cp MAX_POKEMON_IN_PLAY - jr nc, .too_many_pokemon_in_play + jr nc, .already_max_pkmn_in_play inc [hl] ld e, a pop af @@ -3341,7 +3341,7 @@ Func_1485: ; 1485 (0:1485) or a ret -.too_many_pokemon_in_play +.already_max_pkmn_in_play pop af scf ret @@ -7919,7 +7919,7 @@ Func_3876: ; 3876 (0:3876) ldh a, [hBankROM] push af call PauseSong - ld a, MUSIC_CARDPOP + ld a, MUSIC_CARD_POP call PlaySong ld a, $3 ld [wd0c2], a @@ -7945,7 +7945,7 @@ Func_38a3: ; 38a3 (0:38a3) ld [wd0c3], a ld a, $2 ld [wDuelTheme], a - ld a, MUSIC_CARDPOP + ld a, MUSIC_CARD_POP call PlaySong bank1call Func_758f scf diff --git a/src/text/text1.asm b/src/text/text1.asm index 64ef19b..40e92a1 100644 --- a/src/text/text1.asm +++ b/src/text/text1.asm @@ -354,11 +354,11 @@ Text0052: ; 36903 (d:6903) line "When you are ready." done -Text0053: ; 36924 (d:6924) +YouPlayFirstText: ; 36924 (d:6924) text "You play first." done -Text0054: ; 36935 (d:6935) +YouPlaySecondText: ; 36935 (d:6935) text "You play second." done @@ -372,7 +372,7 @@ Text0056: ; 3697c (d:697c) line "you wish to examine." done -Text0057: ; 369a2 (d:69a2) +TransmitingDataText: ; 369a2 (d:69a2) text "Transmitting data..." done @@ -457,7 +457,7 @@ Text0068: ; 36bab (d:6bab) text TX_RAM1, "'s deck has ", TX_RAM3, " cards." done -Text0069: ; 36bc2 (d:6bc2) +ChooseBasicPkmnToPlaceInArenaText: ; 36bc2 (d:6bc2) text "Choose a Basic Pok`mon" line "to place in the Arena." done @@ -467,7 +467,7 @@ Text006a: ; 36bf1 (d:6bf1) line "in ", TX_RAM1, "'s hand." done -Text006b: ; 36c1a (d:6c1a) +NeitherPlayerHasBasicPkmnText: ; 36c1a (d:6c1a) text "Neither player has any Basic" line "Pok`mon in his or her hand." done @@ -500,22 +500,22 @@ Text0071: ; 36d0a (d:6d0a) text "You cannot select this card." done -Text0072: ; 36d28 (d:6d28) +PlacingThePrizesText: ; 36d28 (d:6d28) text "Placing the Prizes..." done -Text0073: ; 36d3f (d:6d3f) +PleasePlacePrizesText: ; 36d3f (d:6d3f) text "Please place" line TX_RAM3, " Prizes." done -Text0074: ; 36d57 (d:6d57) +IfHeadPlayerPlaysFirstText: ; 36d57 (d:6d57) text "If heads," line "" text TX_RAM2, " plays first." done -Text0075: ; 36d72 (d:6d72) +CoinTossToDetermineWhoFirstText: ; 36d72 (d:6d72) text "A coin will be tossed" line "to decide who plays first." done @@ -829,7 +829,7 @@ Text00b1: ; 374d4 (d:74d4) text "There are no cards left in the Deck." done -Text00b2: ; 374fa (d:74fa) +NoSpaceOnTheBenchText: ; 374fa (d:74fa) text "There is no space on the Bench." done diff --git a/src/text/text2.asm b/src/text/text2.asm index f567507..55abfb9 100644 --- a/src/text/text2.asm +++ b/src/text/text2.asm @@ -121,7 +121,7 @@ Text010d: ; 3851f (e:451f) line "metamorphs to ", TX_RAM2, "." done -SelectMonOnBenchToSwitchWithActiveText: ; 38533 (e:4533) +SelectPkmnOnBenchToSwitchWithActiveText: ; 38533 (e:4533) text "Select a Pok`mon on the Bench" line "to switch with the Active Pok`mon." done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index acb7f4c..425fd2e 100644 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -1,2993 +1,2993 @@ const_def 1 TextOffsets:: ; 34000 (d:4000) - dwb $0000, $00 - textpointer HandText - textpointer CheckText - textpointer AttackText - textpointer PKMNPowerText - textpointer DoneText - textpointer TypeText - textpointer RetreatText - textpointer WeaknessText - textpointer ResistanceText - textpointer PKMNPWRText - textpointer Text000b - textpointer LengthText - textpointer WeightText - textpointer PokemonText - textpointer Text000f - textpointer LbsText - textpointer Text0011 - textpointer Text0012 - textpointer Text0013 - textpointer Text0014 - textpointer Text0015 - textpointer Text0016 - textpointer Text0017 - textpointer Text0018 - textpointer Text0019 - textpointer Text001a - textpointer Text001b - textpointer Text001c - textpointer Text001d - textpointer Text001e - textpointer Text001f - textpointer Text0020 - textpointer Text0021 - textpointer Text0022 - textpointer NoPokemonOnTheBenchText - textpointer UnableDueToSleepText - textpointer UnableDueToParalysisText - textpointer Received10DamageDueToPoisonText - textpointer Received20DamageDueToPoisonText - textpointer IsStillAsleepText - textpointer IsCuredOfSleepText - textpointer IsCuredOfParalysisText - textpointer Text002b - textpointer Text002c - textpointer Text002d - textpointer Text002e - textpointer YesOrNoText - textpointer DiscardName - textpointer Text0031 - textpointer Text0032 - textpointer Text0033 - textpointer Text0034 - textpointer PokemonsAttackText - textpointer Text0036 - textpointer Text0037 - textpointer Text0038 - textpointer Text0039 - textpointer Text003a - textpointer Text003b - textpointer NoSelectableAttackText - textpointer UnableToRetreatText - textpointer OnlyOneEnergyCardText - textpointer Text003f - textpointer Text0040 - textpointer DiscardDescription - textpointer Text0042 - textpointer Text0043 - textpointer Text0044 - textpointer Text0045 - textpointer Text0046 - textpointer Text0047 - textpointer Text0048 - textpointer Text0049 - textpointer Text004a - textpointer Text004b - textpointer Text004c - textpointer Text004d - textpointer Text004e - textpointer DamageToSelfDueToConfusionText - textpointer Text0050 - textpointer Text0051 - textpointer Text0052 - textpointer Text0053 - textpointer Text0054 - textpointer TransmissionErrorText - textpointer Text0056 - textpointer Text0057 - textpointer Text0058 - textpointer Text0059 - textpointer Text005a - textpointer Text005b - textpointer Text005c - textpointer Text005d - textpointer Text005e - textpointer Text005f - textpointer Text0060 - textpointer Text0061 - textpointer Text0062 - textpointer Text0063 - textpointer Text0064 - textpointer Text0065 - textpointer Text0066 - textpointer Text0067 - textpointer Text0068 - textpointer Text0069 - textpointer Text006a - textpointer Text006b - textpointer Text006c - textpointer Text006d - textpointer Text006e - textpointer Text006f - textpointer Text0070 - textpointer Text0071 - textpointer Text0072 - textpointer Text0073 - textpointer Text0074 - textpointer Text0075 - textpointer DecisionText - textpointer DuelWasDrawText - textpointer WonDuelText - textpointer LostDuelText - textpointer StartSuddenDeathMatchText - textpointer Text007b - textpointer Text007c - textpointer Text007d - textpointer Text007e - textpointer Text007f - textpointer Text0080 - textpointer WasKnockedOutText - textpointer Text0082 - textpointer Text0083 - textpointer Text0084 - textpointer Text0085 - textpointer Text0086 - textpointer Text0087 - textpointer DuelistIsThinkingText - textpointer Text0089 - textpointer Text008a - textpointer Text008b - textpointer Text008c - textpointer Text008d - textpointer Text008e - textpointer Text008f - textpointer Text0090 - textpointer Text0091 - textpointer Player2Text - textpointer Text0093 - textpointer Text0094 - textpointer Text0095 - textpointer Text0096 - textpointer Text0097 - textpointer Text0098 - textpointer Text0099 - textpointer Text009a - textpointer Text009b - textpointer Text009c - textpointer Text009d - textpointer Text009e - textpointer Text009f - textpointer Text00a0 - textpointer Text00a1 - textpointer ResetBackUpRamText - textpointer Text00a3 - textpointer NoCardsInHandText - textpointer Text00a5 - textpointer Text00a6 - textpointer Text00a7 - textpointer Text00a8 - textpointer Text00a9 - textpointer Text00aa - textpointer Text00ab - textpointer Text00ac - textpointer Text00ad - textpointer Text00ae - textpointer Text00af - textpointer Text00b0 - textpointer Text00b1 - textpointer Text00b2 - textpointer Text00b3 - textpointer Text00b4 - textpointer Text00b5 - textpointer Text00b6 - textpointer Text00b7 - textpointer Text00b8 - textpointer Text00b9 - textpointer Text00ba - textpointer Text00bb - textpointer Text00bc - textpointer Text00bd - textpointer Text00be - textpointer Text00bf - textpointer NotEnoughEnergyCardsText - textpointer Text00c1 - textpointer Text00c2 - textpointer Text00c3 - textpointer Text00c4 - textpointer Text00c5 - textpointer Text00c6 - textpointer Text00c7 - textpointer Text00c8 - textpointer Text00c9 - textpointer Text00ca - textpointer CannotUseDueToStatusText - textpointer Text00cc - textpointer Text00cd - textpointer Text00ce - textpointer Text00cf - textpointer Text00d0 - textpointer Text00d1 - textpointer Text00d2 - textpointer Text00d3 - textpointer UnableDueToToxicGasText - textpointer Text00d5 - textpointer BackUpIsBrokenText - textpointer Text00d7 - textpointer Text00d8 - textpointer Text00d9 - textpointer Text00da - textpointer Text00db - textpointer Text00dc - textpointer Text00dd - textpointer SandAttackCheckText - textpointer SmokescreenCheckText - textpointer ParalysisCheckText - textpointer SleepCheckText - textpointer PoisonCheckText - textpointer ConfusionCheckText - textpointer VenomPowderCheckText - textpointer Text00e5 - textpointer Text00e6 - textpointer Text00e7 - textpointer Text00e8 - textpointer Text00e9 - textpointer Text00ea - textpointer Text00eb - textpointer Text00ec - textpointer Text00ed - textpointer Text00ee - textpointer Text00ef - textpointer Text00f0 - textpointer IfHeadsNoDamageNextTurnText - textpointer Text00f2 - textpointer Text00f3 - textpointer Text00f4 - textpointer AcidCheckText - textpointer TransparencyCheckText - textpointer ConfusionCheckDamageText - textpointer Text00f8 - textpointer Text00f9 - textpointer Text00fa - textpointer Text00fb - textpointer Text00fc - textpointer AttackUnsuccessfulText - textpointer UnableToRetreatDueToAcidText - textpointer UnableToUseTrainerDueToHeadacheText - textpointer UnableToAttackDueToTailWagText - textpointer UnableToAttackDueToLeerText - textpointer UnableToAttackDueToBoneAttackText - textpointer UnableToUseAttackDueToAmnesiaText - textpointer KnockedOutDueToDestinyBondText - textpointer ReceivesDamageDueToStrikesBackText - textpointer UnableToEvolveDueToPrehistoricPowerText - textpointer NoDamageOrEffectDueToFlyText - textpointer NoDamageOrEffectDueToBarrierText - textpointer NoDamageOrEffectDueToAgilityText - textpointer UnableToUseAttackDueToNShieldText - textpointer NoDamageOrEffectDueToNShieldText - textpointer NoDamageOrEffectDueToTransparencyText - textpointer Text010d - textpointer SelectMonOnBenchToSwitchWithActiveText - textpointer Text010f - textpointer Text0110 - textpointer Text0111 - textpointer Text0112 - textpointer Text0113 - textpointer Text0114 - textpointer Text0115 - textpointer Text0116 - textpointer Text0117 - textpointer Text0118 - textpointer Text0119 - textpointer Text011a - textpointer Text011b - textpointer Text011c - textpointer Text011d - textpointer Text011e - textpointer Text011f - textpointer Text0120 - textpointer Text0121 - textpointer Text0122 - textpointer Text0123 - textpointer Text0124 - textpointer Text0125 - textpointer Text0126 - textpointer Text0127 - textpointer Text0128 - textpointer Text0129 - textpointer Text012a - textpointer Text012b - textpointer Text012c - textpointer Text012d - textpointer Text012e - textpointer Text012f - textpointer Text0130 - textpointer Text0131 - textpointer Text0132 - textpointer Text0133 - textpointer Text0134 - textpointer Text0135 - textpointer Text0136 - textpointer Text0137 - textpointer Text0138 - textpointer Text0139 - textpointer Text013a - textpointer Text013b - textpointer Text013c - textpointer Text013d - textpointer Text013e - textpointer Text013f - textpointer Text0140 - textpointer Text0141 - textpointer Text0142 - textpointer Text0143 - textpointer Text0144 - textpointer Text0145 - textpointer Text0146 - textpointer Text0147 - textpointer Text0148 - textpointer Text0149 - textpointer WasUnsuccessfulText - textpointer Text014b - textpointer Text014c - textpointer Text014d - textpointer Text014e - textpointer Text014f - textpointer Text0150 - textpointer Text0151 - textpointer Text0152 - textpointer Text0153 - textpointer Text0154 - textpointer Text0155 - textpointer Text0156 - textpointer Text0157 - textpointer Text0158 - textpointer Text0159 - textpointer Text015a - textpointer Text015b - textpointer Text015c - textpointer Text015d - textpointer Text015e - textpointer Text015f - textpointer Text0160 - textpointer Text0161 - textpointer Text0162 - textpointer Text0163 - textpointer Text0164 - textpointer Text0165 - textpointer Text0166 - textpointer Text0167 - textpointer Text0168 - textpointer Text0169 - textpointer Text016a - textpointer Text016b - textpointer Text016c - textpointer Text016d - textpointer Text016e - textpointer Text016f - textpointer Text0170 - textpointer Text0171 - textpointer Text0172 - textpointer Text0173 - textpointer Text0174 - textpointer Text0175 - textpointer Text0176 - textpointer Text0177 - textpointer Text0178 - textpointer Text0179 - textpointer Text017a - textpointer Text017b - textpointer Text017c - textpointer Text017d - textpointer Text017e - textpointer Text017f - textpointer Text0180 - textpointer Text0181 - textpointer Text0182 - textpointer Text0183 - textpointer Text0184 - textpointer Text0185 - textpointer Text0186 - textpointer Text0187 - textpointer Text0188 - textpointer Text0189 - textpointer Text018a - textpointer Text018b - textpointer Text018c - textpointer Text018d - textpointer Text018e - textpointer ReceivedCardText - textpointer ReceivedPromotionalCardText - textpointer ReceivedLegendaryCardText - textpointer ReceivedPromotionalFlyingPikachuText - textpointer ReceivedPromotionalSurfingPikachuText - textpointer Text0194 - textpointer Text0195 - textpointer Text0196 - textpointer Text0197 - textpointer Text0198 - textpointer Text0199 - textpointer Text019a - textpointer Text019b - textpointer Text019c - textpointer Text019d - textpointer Text019e - textpointer Text019f - textpointer Text01a0 - textpointer Text01a1 - textpointer Text01a2 - textpointer Text01a3 - textpointer Text01a4 - textpointer Text01a5 - textpointer Text01a6 - textpointer Text01a7 - textpointer Text01a8 - textpointer Text01a9 - textpointer Text01aa - textpointer Text01ab - textpointer Text01ac - textpointer Text01ad - textpointer Text01ae - textpointer Text01af - textpointer Text01b0 - textpointer Text01b1 - textpointer Text01b2 - textpointer Text01b3 - textpointer Text01b4 - textpointer Text01b5 - textpointer Text01b6 - textpointer Text01b7 - textpointer Text01b8 - textpointer Text01b9 - textpointer Text01ba - textpointer Text01bb - textpointer Text01bc - textpointer Text01bd - textpointer Text01be - textpointer Text01bf - textpointer Text01c0 - textpointer Text01c1 - textpointer Text01c2 - textpointer Text01c3 - textpointer Text01c4 - textpointer Text01c5 - textpointer Text01c6 - textpointer Text01c7 - textpointer Text01c8 - textpointer Text01c9 - textpointer Text01ca - textpointer Text01cb - textpointer Text01cc - textpointer Text01cd - textpointer Text01ce - textpointer Text01cf - textpointer Text01d0 - textpointer Text01d1 - textpointer Text01d2 - textpointer Text01d3 - textpointer Text01d4 - textpointer Text01d5 - textpointer Text01d6 - textpointer Text01d7 - textpointer Text01d8 - textpointer Text01d9 - textpointer Text01da - textpointer Text01db - textpointer Text01dc - textpointer Text01dd - textpointer PracticePlayerDeckName - textpointer SamsPracticeDeckName - textpointer CharmanderAndFriendsDeckName - textpointer CharmanderExtraDeckName - textpointer SquirtleAndFriendsDeckName - textpointer SquirtleExtraDeckName - textpointer BulbasaurAndFriendsDeckName - textpointer BulbasaurExtraDeckName - textpointer FirstStrikeDeckName - textpointer RockCrusherDeckName - textpointer GoGoRainDanceDeckName - textpointer ZappingSelfdestructDeckName - textpointer FlowerPowerDeckName - textpointer StrangePsyshockDeckName - textpointer WondersofScienceDeckName - textpointer FireChargeDeckName - textpointer LegendaryMoltresDeckName - textpointer LegendaryZapdosDeckName - textpointer LegendaryArticunoDeckName - textpointer LegendaryDragoniteDeckName - textpointer ImRonaldDeckName - textpointer PowerfulRonaldDeckName - textpointer InvincibleRonaldDeckName - textpointer LegendaryRonaldDeckName - textpointer WaterfrontPokemonDeckName - textpointer LonelyFriendsDeckName - textpointer SoundoftheWavesDeckName - textpointer AngerDeckName - textpointer FlamethrowerDeckName - textpointer ReshuffleDeckName - textpointer ExcavationDeckName - textpointer BlisteringPokemonDeckName - textpointer HardPokemonDeckName - textpointer EtceteraDeckName - textpointer FlowerGardenDeckName - textpointer KaleidoscopeDeckName - textpointer MusclesforBrainsDeckName - textpointer HeatedBattleDeckName - textpointer LovetoBattleDeckName - textpointer PikachuDeckName - textpointer BoomBoomSelfdestructDeckName - textpointer PowerGeneratorDeckName - textpointer GhostDeckName - textpointer NapTimeDeckName - textpointer StrangePowerDeckName - textpointer FlyinPokemonDeckName - textpointer LovelyNidoranDeckName - textpointer PoisonDeckName - textpointer ImakuniDeckName - textpointer LightningAndFireDeckName - textpointer WaterAndFightingDeckName - textpointer GrassAndPsychicDeckName - textpointer Text0212 - textpointer Text0213 - textpointer Text0214 - textpointer Text0215 - textpointer Text0216 - textpointer Text0217 - textpointer Text0218 - textpointer Text0219 - textpointer Text021a - textpointer Text021b - textpointer Text021c - textpointer Text021d - textpointer Text021e - textpointer Text021f - textpointer Text0220 - textpointer Text0221 - textpointer Text0222 - textpointer NewDeckText - textpointer PleaseSelectDeckText - textpointer Text0225 - textpointer Text0226 - textpointer Text0227 - textpointer Text0228 - textpointer Text0229 - textpointer ChosenAsDuelingDeckText - textpointer Text022b - textpointer Text022c - textpointer Text022d - textpointer Text022e - textpointer ThereIsNoDeckHereText - textpointer Text0230 - textpointer Text0231 - textpointer Text0232 - textpointer Text0233 - textpointer Text0234 - textpointer Text0235 - textpointer Text0236 - textpointer Text0237 - textpointer Text0238 - textpointer Text0239 - textpointer Text023a - textpointer Text023b - textpointer Text023c - textpointer Text023d - textpointer Text023e - textpointer Text023f - textpointer Text0240 - textpointer Text0241 - textpointer Text0242 - textpointer Text0243 - textpointer Text0244 - textpointer Text0245 - textpointer Text0246 - textpointer Text0247 - textpointer Text0248 - textpointer Text0249 - textpointer Text024a - textpointer Text024b - textpointer Text024c - textpointer Text024d - textpointer Text024e - textpointer Text024f - textpointer Text0250 - textpointer Text0251 - textpointer Text0252 - textpointer Text0253 - textpointer Text0254 - textpointer Text0255 - textpointer Text0256 - textpointer Text0257 - textpointer Text0258 - textpointer Text0259 - textpointer Text025a - textpointer Text025b - textpointer Text025c - textpointer Text025d - textpointer Text025e - textpointer Text025f - textpointer Text0260 - textpointer Text0261 - textpointer Text0262 - textpointer Text0263 - textpointer Text0264 - textpointer Text0265 - textpointer Text0266 - textpointer Text0267 - textpointer Text0268 - textpointer Text0269 - textpointer Text026a - textpointer Text026b - textpointer Text026c - textpointer Text026d - textpointer Text026e - textpointer Text026f - textpointer Text0270 - textpointer Text0271 - textpointer Text0272 - textpointer Text0273 - textpointer Text0274 - textpointer Text0275 - textpointer Text0276 - textpointer Text0277 - textpointer Text0278 - textpointer Text0279 - textpointer Text027a - textpointer Text027b - textpointer Text027c - textpointer Text027d - textpointer Text027e - textpointer Text027f - textpointer Text0280 - textpointer Text0281 - textpointer Text0282 - textpointer Text0283 - textpointer Text0284 - textpointer Text0285 - textpointer Text0286 - textpointer Text0287 - textpointer Text0288 - textpointer Text0289 - textpointer Text028a - textpointer Text028b - textpointer Text028c - textpointer Text028d - textpointer Text028e - textpointer Text028f - textpointer Text0290 - textpointer Text0291 - textpointer Text0292 - textpointer Text0293 - textpointer Text0294 - textpointer Text0295 - textpointer Text0296 - textpointer Text0297 - textpointer Text0298 - textpointer Text0299 - textpointer Text029a - textpointer Text029b - textpointer Text029c - textpointer Text029d - textpointer Text029e - textpointer Text029f - textpointer Text02a0 - textpointer Text02a1 - textpointer Text02a2 - textpointer Text02a3 - textpointer Text02a4 - textpointer Text02a5 - textpointer Text02a6 - textpointer Text02a7 - textpointer Text02a8 - textpointer Text02a9 - textpointer Text02aa - textpointer Text02ab - textpointer Text02ac - textpointer Text02ad - textpointer Text02ae - textpointer Text02af - textpointer Text02b0 - textpointer Text02b1 - textpointer Text02b2 - textpointer Text02b3 - textpointer Text02b4 - textpointer Text02b5 - textpointer Text02b6 - textpointer Text02b7 - textpointer Text02b8 - textpointer Text02b9 - textpointer Text02ba - textpointer Text02bb - textpointer Text02bc - textpointer Text02bd - textpointer Text02be - textpointer Text02bf - textpointer Text02c0 - textpointer Text02c1 - textpointer Text02c2 - textpointer Text02c3 - textpointer Text02c4 - textpointer Text02c5 - textpointer Text02c6 - textpointer Text02c7 - textpointer Text02c8 - textpointer Text02c9 - textpointer Text02ca - textpointer Text02cb - textpointer Text02cc - textpointer Text02cd - textpointer Text02ce - textpointer Text02cf - textpointer Text02d0 - textpointer Text02d1 - textpointer Text02d2 - textpointer Text02d3 - textpointer Text02d4 - textpointer Text02d5 - textpointer Text02d6 - textpointer Text02d7 - textpointer Text02d8 - textpointer Text02d9 - textpointer Text02da - textpointer Text02db - textpointer Text02dc - textpointer Text02dd - textpointer Text02de - textpointer Text02df - textpointer Text02e0 - textpointer Text02e1 - textpointer Text02e2 - textpointer Text02e3 - textpointer Text02e4 - textpointer Text02e5 - textpointer Text02e6 - textpointer Text02e7 - textpointer Text02e8 - textpointer Text02e9 - textpointer Text02ea - textpointer Text02eb - textpointer Text02ec - textpointer Text02ed - textpointer Text02ee - textpointer Text02ef - textpointer Text02f0 - textpointer Text02f1 - textpointer Text02f2 - textpointer Text02f3 - textpointer Text02f4 - textpointer Text02f5 - textpointer Text02f6 - textpointer Text02f7 - textpointer Text02f8 - textpointer Text02f9 - textpointer Text02fa - textpointer Text02fb - textpointer Text02fc - textpointer Text02fd - textpointer Text02fe - textpointer Text02ff - textpointer Text0300 - textpointer Text0301 - textpointer Text0302 - textpointer Text0303 - textpointer Text0304 - textpointer Text0305 - textpointer Text0306 - textpointer Text0307 - textpointer Text0308 - textpointer Text0309 - textpointer Text030a - textpointer Text030b - textpointer Text030c - textpointer Text030d - textpointer Text030e - textpointer Text030f - textpointer Text0310 - textpointer Text0311 - textpointer Text0312 - textpointer Text0313 - textpointer Text0314 - textpointer Text0315 - textpointer Text0316 - textpointer Text0317 - textpointer Text0318 - textpointer Text0319 - textpointer Text031a - textpointer Text031b - textpointer Text031c - textpointer Text031d - textpointer Text031e - textpointer Text031f - textpointer Text0320 - textpointer Text0321 - textpointer Text0322 - textpointer Text0323 - textpointer Text0324 - textpointer Text0325 - textpointer Text0326 - textpointer Text0327 - textpointer Text0328 - textpointer Text0329 - textpointer Text032a - textpointer Text032b - textpointer Text032c - textpointer Text032d - textpointer Text032e - textpointer Text032f - textpointer Text0330 - textpointer Text0331 - textpointer Text0332 - textpointer Text0333 - textpointer Text0334 - textpointer Text0335 - textpointer Text0336 - textpointer Text0337 - textpointer Text0338 - textpointer Text0339 - textpointer Text033a - textpointer Text033b - textpointer Text033c - textpointer Text033d - textpointer Text033e - textpointer Text033f - textpointer Text0340 - textpointer Text0341 - textpointer Text0342 - textpointer Text0343 - textpointer Text0344 - textpointer Text0345 - textpointer Text0346 - textpointer Text0347 - textpointer Text0348 - textpointer Text0349 - textpointer Text034a - textpointer Text034b - textpointer Text034c - textpointer Text034d - textpointer Text034e - textpointer Text034f - textpointer Text0350 - textpointer Text0351 - textpointer TurnedPCOnText - textpointer TurnedPCOffText - textpointer Text0354 - textpointer Text0355 - textpointer Text0356 - textpointer Text0357 - textpointer Text0358 - textpointer Text0359 - textpointer Text035a - textpointer Text035b - textpointer Text035c - textpointer Text035d - textpointer Text035e - textpointer Text035f - textpointer Text0360 - textpointer Text0361 - textpointer Text0362 - textpointer Text0363 - textpointer Text0364 - textpointer Text0365 - textpointer Text0366 - textpointer Text0367 - textpointer Text0368 - textpointer Text0369 - textpointer Text036a - textpointer Text036b - textpointer Text036c - textpointer Text036d - textpointer Text036e - textpointer Text036f - textpointer Text0370 - textpointer Text0371 - textpointer Text0372 - textpointer Text0373 - textpointer Text0374 - textpointer Text0375 - textpointer Text0376 - textpointer Text0377 - textpointer Text0378 - textpointer Text0379 - textpointer Text037a - textpointer Text037b - textpointer Text037c - textpointer Text037d - textpointer Text037e - textpointer Text037f - textpointer Text0380 - textpointer Text0381 - textpointer Text0382 - textpointer Text0383 - textpointer Text0384 - textpointer Text0385 - textpointer Text0386 - textpointer ReceivedBoosterPackText - textpointer AndAnotherBoosterPackText - textpointer CheckedCardsInBoosterPackText - textpointer Text038a - textpointer WonTheMedalText - textpointer Text038c - textpointer Text038d - textpointer Text038e - textpointer Text038f - textpointer Text0390 - textpointer Text0391 - textpointer Text0392 - textpointer Text0393 - textpointer Text0394 - textpointer Text0395 - textpointer Text0396 - textpointer Text0397 - textpointer Text0398 - textpointer Text0399 - textpointer Text039a - textpointer Text039b - textpointer Text039c - textpointer Text039d - textpointer Text039e - textpointer Text039f - textpointer Text03a0 - textpointer Text03a1 - textpointer Text03a2 - textpointer Text03a3 - textpointer Text03a4 - textpointer Text03a5 - textpointer Text03a6 - textpointer Text03a7 - textpointer Text03a8 - textpointer Text03a9 - textpointer Text03aa - textpointer Text03ab - textpointer Text03ac - textpointer Text03ad - textpointer Text03ae - textpointer Text03af - textpointer Text03b0 - textpointer Text03b1 - textpointer Text03b2 - textpointer Text03b3 - textpointer Text03b4 - textpointer Text03b5 - textpointer Text03b6 - textpointer Text03b7 - textpointer Text03b8 - textpointer Text03b9 - textpointer Text03ba - textpointer Text03bb - textpointer Text03bc - textpointer Text03bd - textpointer Text03be - textpointer Text03bf - textpointer Text03c0 - textpointer Text03c1 - textpointer Text03c2 - textpointer Text03c3 - textpointer Text03c4 - textpointer Text03c5 - textpointer Text03c6 - textpointer Text03c7 - textpointer Text03c8 - textpointer Text03c9 - textpointer Text03ca - textpointer Text03cb - textpointer Text03cc - textpointer Text03cd - textpointer Text03ce - textpointer Text03cf - textpointer Text03d0 - textpointer Text03d1 - textpointer Text03d2 - textpointer Text03d3 - textpointer Text03d4 - textpointer Text03d5 - textpointer Text03d6 - textpointer Text03d7 - textpointer Text03d8 - textpointer Text03d9 - textpointer Text03da - textpointer Text03db - textpointer Text03dc - textpointer Text03dd - textpointer Text03de - textpointer Text03df - textpointer Text03e0 - textpointer Text03e1 - textpointer Text03e2 - textpointer Text03e3 - textpointer Text03e4 - textpointer Text03e5 - textpointer Text03e6 - textpointer Text03e7 - textpointer Text03e8 - textpointer Text03e9 - textpointer Text03ea - textpointer Text03eb - textpointer Text03ec - textpointer Text03ed - textpointer Text03ee - textpointer Text03ef - textpointer Text03f0 - textpointer Text03f1 - textpointer Text03f2 - textpointer Text03f3 - textpointer Text03f4 - textpointer Text03f5 - textpointer Text03f6 - textpointer Text03f7 - textpointer Text03f8 - textpointer Text03f9 - textpointer Text03fa - textpointer Text03fb - textpointer Text03fc - textpointer Text03fd - textpointer Text03fe - textpointer Text03ff - textpointer Text0400 - textpointer Text0401 - textpointer Text0402 - textpointer Text0403 - textpointer Text0404 - textpointer Text0405 - textpointer Text0406 - textpointer Text0407 - textpointer Text0408 - textpointer Text0409 - textpointer Text040a - textpointer Text040b - textpointer Text040c - textpointer Text040d - textpointer Text040e - textpointer Text040f - textpointer Text0410 - textpointer Text0411 - textpointer Text0412 - textpointer Text0413 - textpointer Text0414 - textpointer Text0415 - textpointer Text0416 - textpointer Text0417 - textpointer Text0418 - textpointer Text0419 - textpointer Text041a - textpointer Text041b - textpointer Text041c - textpointer Text041d - textpointer Text041e - textpointer Text041f - textpointer Text0420 - textpointer Text0421 - textpointer Text0422 - textpointer Text0423 - textpointer Text0424 - textpointer Text0425 - textpointer Text0426 - textpointer Text0427 - textpointer Text0428 - textpointer Text0429 - textpointer Text042a - textpointer Text042b - textpointer Text042c - textpointer Text042d - textpointer Text042e - textpointer Text042f - textpointer Text0430 - textpointer Text0431 - textpointer Text0432 - textpointer Text0433 - textpointer Text0434 - textpointer Text0435 - textpointer Text0436 - textpointer Text0437 - textpointer Text0438 - textpointer Text0439 - textpointer Text043a - textpointer Text043b - textpointer Text043c - textpointer Text043d - textpointer Text043e - textpointer Text043f - textpointer Text0440 - textpointer Text0441 - textpointer Text0442 - textpointer Text0443 - textpointer Text0444 - textpointer Text0445 - textpointer Text0446 - textpointer Text0447 - textpointer Text0448 - textpointer Text0449 - textpointer Text044a - textpointer Text044b - textpointer Text044c - textpointer Text044d - textpointer Text044e - textpointer Text044f - textpointer Text0450 - textpointer Text0451 - textpointer Text0452 - textpointer Text0453 - textpointer Text0454 - textpointer Text0455 - textpointer Text0456 - textpointer Text0457 - textpointer Text0458 - textpointer Text0459 - textpointer Text045a - textpointer Text045b - textpointer Text045c - textpointer Text045d - textpointer Text045e - textpointer Text045f - textpointer Text0460 - textpointer Text0461 - textpointer Text0462 - textpointer Text0463 - textpointer Text0464 - textpointer Text0465 - textpointer Text0466 - textpointer Text0467 - textpointer Text0468 - textpointer Text0469 - textpointer Text046a - textpointer Text046b - textpointer Text046c - textpointer Text046d - textpointer Text046e - textpointer Text046f - textpointer Text0470 - textpointer Text0471 - textpointer Text0472 - textpointer Text0473 - textpointer Text0474 - textpointer Text0475 - textpointer Text0476 - textpointer Text0477 - textpointer Text0478 - textpointer Text0479 - textpointer Text047a - textpointer Text047b - textpointer Text047c - textpointer Text047d - textpointer Text047e - textpointer Text047f - textpointer Text0480 - textpointer Text0481 - textpointer Text0482 - textpointer Text0483 - textpointer Text0484 - textpointer Text0485 - textpointer Text0486 - textpointer Text0487 - textpointer Text0488 - textpointer Text0489 - textpointer Text048a - textpointer Text048b - textpointer Text048c - textpointer Text048d - textpointer Text048e - textpointer Text048f - textpointer Text0490 - textpointer Text0491 - textpointer Text0492 - textpointer Text0493 - textpointer Text0494 - textpointer Text0495 - textpointer Text0496 - textpointer Text0497 - textpointer Text0498 - textpointer Text0499 - textpointer Text049a - textpointer Text049b - textpointer Text049c - textpointer Text049d - textpointer Text049e - textpointer Text049f - textpointer Text04a0 - textpointer Text04a1 - textpointer Text04a2 - textpointer Text04a3 - textpointer Text04a4 - textpointer Text04a5 - textpointer Text04a6 - textpointer Text04a7 - textpointer Text04a8 - textpointer Text04a9 - textpointer Text04aa - textpointer Text04ab - textpointer Text04ac - textpointer Text04ad - textpointer Text04ae - textpointer Text04af - textpointer Text04b0 - textpointer Text04b1 - textpointer Text04b2 - textpointer Text04b3 - textpointer Text04b4 - textpointer Text04b5 - textpointer Text04b6 - textpointer Text04b7 - textpointer Text04b8 - textpointer Text04b9 - textpointer Text04ba - textpointer Text04bb - textpointer Text04bc - textpointer Text04bd - textpointer Text04be - textpointer Text04bf - textpointer Text04c0 - textpointer Text04c1 - textpointer Text04c2 - textpointer Text04c3 - textpointer Text04c4 - textpointer Text04c5 - textpointer Text04c6 - textpointer Text04c7 - textpointer Text04c8 - textpointer Text04c9 - textpointer Text04ca - textpointer Text04cb - textpointer Text04cc - textpointer Text04cd - textpointer Text04ce - textpointer Text04cf - textpointer Text04d0 - textpointer Text04d1 - textpointer Text04d2 - textpointer Text04d3 - textpointer Text04d4 - textpointer Text04d5 - textpointer Text04d6 - textpointer Text04d7 - textpointer Text04d8 - textpointer Text04d9 - textpointer Text04da - textpointer Text04db - textpointer Text04dc - textpointer Text04dd - textpointer Text04de - textpointer Text04df - textpointer Text04e0 - textpointer Text04e1 - textpointer Text04e2 - textpointer Text04e3 - textpointer Text04e4 - textpointer Text04e5 - textpointer Text04e6 - textpointer Text04e7 - textpointer Text04e8 - textpointer Text04e9 - textpointer Text04ea - textpointer Text04eb - textpointer Text04ec - textpointer Text04ed - textpointer Text04ee - textpointer Text04ef - textpointer Text04f0 - textpointer Text04f1 - textpointer Text04f2 - textpointer Text04f3 - textpointer Text04f4 - textpointer Text04f5 - textpointer Text04f6 - textpointer Text04f7 - textpointer Text04f8 - textpointer Text04f9 - textpointer Text04fa - textpointer Text04fb - textpointer Text04fc - textpointer Text04fd - textpointer Text04fe - textpointer Text04ff - textpointer Text0500 - textpointer Text0501 - textpointer Text0502 - textpointer Text0503 - textpointer Text0504 - textpointer Text0505 - textpointer Text0506 - textpointer Text0507 - textpointer Text0508 - textpointer Text0509 - textpointer Text050a - textpointer Text050b - textpointer Text050c - textpointer Text050d - textpointer Text050e - textpointer Text050f - textpointer Text0510 - textpointer Text0511 - textpointer Text0512 - textpointer Text0513 - textpointer Text0514 - textpointer Text0515 - textpointer Text0516 - textpointer Text0517 - textpointer Text0518 - textpointer Text0519 - textpointer Text051a - textpointer Text051b - textpointer Text051c - textpointer Text051d - textpointer Text051e - textpointer Text051f - textpointer Text0520 - textpointer Text0521 - textpointer Text0522 - textpointer Text0523 - textpointer Text0524 - textpointer Text0525 - textpointer Text0526 - textpointer Text0527 - textpointer Text0528 - textpointer Text0529 - textpointer Text052a - textpointer Text052b - textpointer Text052c - textpointer Text052d - textpointer Text052e - textpointer Text052f - textpointer Text0530 - textpointer Text0531 - textpointer Text0532 - textpointer Text0533 - textpointer Text0534 - textpointer Text0535 - textpointer Text0536 - textpointer Text0537 - textpointer Text0538 - textpointer Text0539 - textpointer Text053a - textpointer Text053b - textpointer Text053c - textpointer Text053d - textpointer Text053e - textpointer Text053f - textpointer Text0540 - textpointer Text0541 - textpointer Text0542 - textpointer Text0543 - textpointer Text0544 - textpointer Text0545 - textpointer Text0546 - textpointer Text0547 - textpointer Text0548 - textpointer Text0549 - textpointer Text054a - textpointer Text054b - textpointer Text054c - textpointer Text054d - textpointer Text054e - textpointer Text054f - textpointer Text0550 - textpointer Text0551 - textpointer Text0552 - textpointer Text0553 - textpointer Text0554 - textpointer Text0555 - textpointer Text0556 - textpointer Text0557 - textpointer Text0558 - textpointer Text0559 - textpointer Text055a - textpointer Text055b - textpointer Text055c - textpointer Text055d - textpointer Text055e - textpointer Text055f - textpointer Text0560 - textpointer Text0561 - textpointer Text0562 - textpointer Text0563 - textpointer Text0564 - textpointer Text0565 - textpointer Text0566 - textpointer Text0567 - textpointer Text0568 - textpointer Text0569 - textpointer Text056a - textpointer Text056b - textpointer Text056c - textpointer Text056d - textpointer Text056e - textpointer Text056f - textpointer Text0570 - textpointer Text0571 - textpointer Text0572 - textpointer Text0573 - textpointer Text0574 - textpointer Text0575 - textpointer Text0576 - textpointer Text0577 - textpointer Text0578 - textpointer Text0579 - textpointer Text057a - textpointer Text057b - textpointer Text057c - textpointer Text057d - textpointer Text057e - textpointer Text057f - textpointer Text0580 - textpointer Text0581 - textpointer Text0582 - textpointer Text0583 - textpointer Text0584 - textpointer Text0585 - textpointer Text0586 - textpointer Text0587 - textpointer Text0588 - textpointer Text0589 - textpointer Text058a - textpointer Text058b - textpointer Text058c - textpointer Text058d - textpointer Text058e - textpointer Text058f - textpointer Text0590 - textpointer Text0591 - textpointer Text0592 - textpointer Text0593 - textpointer Text0594 - textpointer Text0595 - textpointer Text0596 - textpointer Text0597 - textpointer Text0598 - textpointer Text0599 - textpointer Text059a - textpointer Text059b - textpointer Text059c - textpointer Text059d - textpointer Text059e - textpointer Text059f - textpointer Text05a0 - textpointer Text05a1 - textpointer Text05a2 - textpointer Text05a3 - textpointer Text05a4 - textpointer Text05a5 - textpointer Text05a6 - textpointer Text05a7 - textpointer Text05a8 - textpointer Text05a9 - textpointer Text05aa - textpointer Text05ab - textpointer Text05ac - textpointer Text05ad - textpointer Text05ae - textpointer Text05af - textpointer Text05b0 - textpointer Text05b1 - textpointer Text05b2 - textpointer Text05b3 - textpointer Text05b4 - textpointer Text05b5 - textpointer Text05b6 - textpointer Text05b7 - textpointer Text05b8 - textpointer Text05b9 - textpointer Text05ba - textpointer Text05bb - textpointer Text05bc - textpointer Text05bd - textpointer Text05be - textpointer Text05bf - textpointer Text05c0 - textpointer Text05c1 - textpointer Text05c2 - textpointer Text05c3 - textpointer Text05c4 - textpointer Text05c5 - textpointer Text05c6 - textpointer Text05c7 - textpointer Text05c8 - textpointer Text05c9 - textpointer Text05ca - textpointer Text05cb - textpointer Text05cc - textpointer Text05cd - textpointer Text05ce - textpointer Text05cf - textpointer Text05d0 - textpointer Text05d1 - textpointer Text05d2 - textpointer Text05d3 - textpointer Text05d4 - textpointer Text05d5 - textpointer Text05d6 - textpointer Text05d7 - textpointer Text05d8 - textpointer Text05d9 - textpointer Text05da - textpointer Text05db - textpointer Text05dc - textpointer Text05dd - textpointer Text05de - textpointer Text05df - textpointer Text05e0 - textpointer Text05e1 - textpointer Text05e2 - textpointer Text05e3 - textpointer Text05e4 - textpointer Text05e5 - textpointer Text05e6 - textpointer Text05e7 - textpointer Text05e8 - textpointer Text05e9 - textpointer Text05ea - textpointer Text05eb - textpointer Text05ec - textpointer Text05ed - textpointer Text05ee - textpointer Text05ef - textpointer Text05f0 - textpointer Text05f1 - textpointer Text05f2 - textpointer Text05f3 - textpointer Text05f4 - textpointer Text05f5 - textpointer Text05f6 - textpointer Text05f7 - textpointer Text05f8 - textpointer Text05f9 - textpointer Text05fa - textpointer Text05fb - textpointer Text05fc - textpointer Text05fd - textpointer Text05fe - textpointer Text05ff - textpointer Text0600 - textpointer Text0601 - textpointer Text0602 - textpointer Text0603 - textpointer Text0604 - textpointer Text0605 - textpointer Text0606 - textpointer Text0607 - textpointer Text0608 - textpointer Text0609 - textpointer Text060a - textpointer Text060b - textpointer Text060c - textpointer Text060d - textpointer Text060e - textpointer Text060f - textpointer Text0610 - textpointer Text0611 - textpointer Text0612 - textpointer Text0613 - textpointer Text0614 - textpointer Text0615 - textpointer Text0616 - textpointer Text0617 - textpointer Text0618 - textpointer Text0619 - textpointer Text061a - textpointer Text061b - textpointer Text061c - textpointer Text061d - textpointer Text061e - textpointer Text061f - textpointer Text0620 - textpointer Text0621 - textpointer Text0622 - textpointer Text0623 - textpointer Text0624 - textpointer Text0625 - textpointer Text0626 - textpointer Text0627 - textpointer Text0628 - textpointer Text0629 - textpointer Text062a - textpointer Text062b - textpointer Text062c - textpointer Text062d - textpointer Text062e - textpointer Text062f - textpointer Text0630 - textpointer Text0631 - textpointer Text0632 - textpointer Text0633 - textpointer Text0634 - textpointer Text0635 - textpointer Text0636 - textpointer Text0637 - textpointer Text0638 - textpointer Text0639 - textpointer Text063a - textpointer Text063b - textpointer Text063c - textpointer Text063d - textpointer Text063e - textpointer Text063f - textpointer Text0640 - textpointer Text0641 - textpointer Text0642 - textpointer Text0643 - textpointer Text0644 - textpointer Text0645 - textpointer Text0646 - textpointer Text0647 - textpointer Text0648 - textpointer Text0649 - textpointer Text064a - textpointer Text064b - textpointer Text064c - textpointer Text064d - textpointer Text064e - textpointer Text064f - textpointer Text0650 - textpointer Text0651 - textpointer Text0652 - textpointer Text0653 - textpointer Text0654 - textpointer Text0655 - textpointer Text0656 - textpointer Text0657 - textpointer Text0658 - textpointer Text0659 - textpointer Text065a - textpointer Text065b - textpointer Text065c - textpointer Text065d - textpointer Text065e - textpointer Text065f - textpointer Text0660 - textpointer Text0661 - textpointer Text0662 - textpointer Text0663 - textpointer Text0664 - textpointer Text0665 - textpointer Text0666 - textpointer Text0667 - textpointer Text0668 - textpointer Text0669 - textpointer Text066a - textpointer Text066b - textpointer Text066c - textpointer Text066d - textpointer Text066e - textpointer Text066f - textpointer Text0670 - textpointer Text0671 - textpointer Text0672 - textpointer Text0673 - textpointer Text0674 - textpointer Text0675 - textpointer Text0676 - textpointer Text0677 - textpointer Text0678 - textpointer Text0679 - textpointer Text067a - textpointer Text067b - textpointer Text067c - textpointer Text067d - textpointer Text067e - textpointer Text067f - textpointer Text0680 - textpointer Text0681 - textpointer Text0682 - textpointer Text0683 - textpointer Text0684 - textpointer Text0685 - textpointer Text0686 - textpointer Text0687 - textpointer Text0688 - textpointer Text0689 - textpointer Text068a - textpointer Text068b - textpointer Text068c - textpointer Text068d - textpointer Text068e - textpointer Text068f - textpointer Text0690 - textpointer Text0691 - textpointer Text0692 - textpointer Text0693 - textpointer Text0694 - textpointer Text0695 - textpointer Text0696 - textpointer Text0697 - textpointer Text0698 - textpointer Text0699 - textpointer Text069a - textpointer Text069b - textpointer Text069c - textpointer Text069d - textpointer Text069e - textpointer Text069f - textpointer Text06a0 - textpointer Text06a1 - textpointer Text06a2 - textpointer Text06a3 - textpointer Text06a4 - textpointer Text06a5 - textpointer Text06a6 - textpointer Text06a7 - textpointer Text06a8 - textpointer Text06a9 - textpointer Text06aa - textpointer Text06ab - textpointer Text06ac - textpointer Text06ad - textpointer Text06ae - textpointer Text06af - textpointer Text06b0 - textpointer Text06b1 - textpointer Text06b2 - textpointer Text06b3 - textpointer Text06b4 - textpointer Text06b5 - textpointer Text06b6 - textpointer Text06b7 - textpointer Text06b8 - textpointer Text06b9 - textpointer Text06ba - textpointer Text06bb - textpointer Text06bc - textpointer Text06bd - textpointer Text06be - textpointer Text06bf - textpointer Text06c0 - textpointer Text06c1 - textpointer Text06c2 - textpointer Text06c3 - textpointer Text06c4 - textpointer Text06c5 - textpointer Text06c6 - textpointer Text06c7 - textpointer Text06c8 - textpointer Text06c9 - textpointer Text06ca - textpointer Text06cb - textpointer Text06cc - textpointer Text06cd - textpointer Text06ce - textpointer Text06cf - textpointer Text06d0 - textpointer Text06d1 - textpointer Text06d2 - textpointer Text06d3 - textpointer Text06d4 - textpointer Text06d5 - textpointer Text06d6 - textpointer Text06d7 - textpointer Text06d8 - textpointer Text06d9 - textpointer Text06da - textpointer Text06db - textpointer Text06dc - textpointer Text06dd - textpointer Text06de - textpointer Text06df - textpointer Text06e0 - textpointer Text06e1 - textpointer Text06e2 - textpointer Text06e3 - textpointer Text06e4 - textpointer Text06e5 - textpointer Text06e6 - textpointer Text06e7 - textpointer Text06e8 - textpointer Text06e9 - textpointer Text06ea - textpointer Text06eb - textpointer Text06ec - textpointer Text06ed - textpointer Text06ee - textpointer Text06ef - textpointer Text06f0 - textpointer Text06f1 - textpointer Text06f2 - textpointer Text06f3 - textpointer Text06f4 - textpointer Text06f5 - textpointer Text06f6 - textpointer Text06f7 - textpointer Text06f8 - textpointer Text06f9 - textpointer Text06fa - textpointer Text06fb - textpointer Text06fc - textpointer Text06fd - textpointer Text06fe - textpointer Text06ff - textpointer Text0700 - textpointer Text0701 - textpointer Text0702 - textpointer Text0703 - textpointer Text0704 - textpointer Text0705 - textpointer Text0706 - textpointer Text0707 - textpointer Text0708 - textpointer Text0709 - textpointer Text070a - textpointer Text070b - textpointer Text070c - textpointer Text070d - textpointer Text070e - textpointer Text070f - textpointer Text0710 - textpointer Text0711 - textpointer Text0712 - textpointer Text0713 - textpointer Text0714 - textpointer Text0715 - textpointer Text0716 - textpointer Text0717 - textpointer Text0718 - textpointer Text0719 - textpointer Text071a - textpointer Text071b - textpointer Text071c - textpointer Text071d - textpointer Text071e - textpointer Text071f - textpointer Text0720 - textpointer Text0721 - textpointer Text0722 - textpointer Text0723 - textpointer Text0724 - textpointer Text0725 - textpointer Text0726 - textpointer Text0727 - textpointer Text0728 - textpointer Text0729 - textpointer Text072a - textpointer Text072b - textpointer Text072c - textpointer Text072d - textpointer Text072e - textpointer Text072f - textpointer Text0730 - textpointer Text0731 - textpointer Text0732 - textpointer Text0733 - textpointer Text0734 - textpointer Text0735 - textpointer Text0736 - textpointer Text0737 - textpointer Text0738 - textpointer Text0739 - textpointer Text073a - textpointer Text073b - textpointer Text073c - textpointer Text073d - textpointer Text073e - textpointer Text073f - textpointer Text0740 - textpointer Text0741 - textpointer Text0742 - textpointer Text0743 - textpointer Text0744 - textpointer Text0745 - textpointer Text0746 - textpointer Text0747 - textpointer Text0748 - textpointer Text0749 - textpointer Text074a - textpointer Text074b - textpointer Text074c - textpointer Text074d - textpointer Text074e - textpointer Text074f - textpointer Text0750 - textpointer Text0751 - textpointer Text0752 - textpointer Text0753 - textpointer Text0754 - textpointer Text0755 - textpointer Text0756 - textpointer Text0757 - textpointer Text0758 - textpointer Text0759 - textpointer Text075a - textpointer Text075b - textpointer Text075c - textpointer Text075d - textpointer Text075e - textpointer Text075f - textpointer Text0760 - textpointer Text0761 - textpointer Text0762 - textpointer Text0763 - textpointer Text0764 - textpointer Text0765 - textpointer Text0766 - textpointer Text0767 - textpointer Text0768 - textpointer Text0769 - textpointer Text076a - textpointer Text076b - textpointer Text076c - textpointer Text076d - textpointer Text076e - textpointer Text076f - textpointer Text0770 - textpointer Text0771 - textpointer Text0772 - textpointer Text0773 - textpointer Text0774 - textpointer Text0775 - textpointer Text0776 - textpointer Text0777 - textpointer Text0778 - textpointer Text0779 - textpointer Text077a - textpointer Text077b - textpointer Text077c - textpointer Text077d - textpointer Text077e - textpointer Text077f - textpointer Text0780 - textpointer Text0781 - textpointer Text0782 - textpointer Text0783 - textpointer Text0784 - textpointer Text0785 - textpointer Text0786 - textpointer Text0787 - textpointer Text0788 - textpointer Text0789 - textpointer Text078a - textpointer Text078b - textpointer Text078c - textpointer Text078d - textpointer Text078e - textpointer Text078f - textpointer Text0790 - textpointer Text0791 - textpointer Text0792 - textpointer Text0793 - textpointer Text0794 - textpointer Text0795 - textpointer Text0796 - textpointer Text0797 - textpointer Text0798 - textpointer Text0799 - textpointer Text079a - textpointer Text079b - textpointer Text079c - textpointer Text079d - textpointer Text079e - textpointer Text079f - textpointer Text07a0 - textpointer Text07a1 - textpointer Text07a2 - textpointer Text07a3 - textpointer Text07a4 - textpointer Text07a5 - textpointer Text07a6 - textpointer Text07a7 - textpointer Text07a8 - textpointer Text07a9 - textpointer Text07aa - textpointer Text07ab - textpointer Text07ac - textpointer Text07ad - textpointer Text07ae - textpointer Text07af - textpointer Text07b0 - textpointer Text07b1 - textpointer Text07b2 - textpointer Text07b3 - textpointer Text07b4 - textpointer Text07b5 - textpointer Text07b6 - textpointer Text07b7 - textpointer Text07b8 - textpointer Text07b9 - textpointer Text07ba - textpointer Text07bb - textpointer Text07bc - textpointer Text07bd - textpointer Text07be - textpointer Text07bf - textpointer Text07c0 - textpointer Text07c1 - textpointer Text07c2 - textpointer Text07c3 - textpointer Text07c4 - textpointer Text07c5 - textpointer Text07c6 - textpointer Text07c7 - textpointer Text07c8 - textpointer Text07c9 - textpointer Text07ca - textpointer Text07cb - textpointer Text07cc - textpointer Text07cd - textpointer Text07ce - textpointer Text07cf - textpointer Text07d0 - textpointer Text07d1 - textpointer Text07d2 - textpointer Text07d3 - textpointer Text07d4 - textpointer Text07d5 - textpointer Text07d6 - textpointer Text07d7 - textpointer Text07d8 - textpointer Text07d9 - textpointer Text07da - textpointer Text07db - textpointer Text07dc - textpointer Text07dd - textpointer Text07de - textpointer Text07df - textpointer Text07e0 - textpointer Text07e1 - textpointer Text07e2 - textpointer Text07e3 - textpointer Text07e4 - textpointer Text07e5 - textpointer DefeatedFiveOpponentsText - textpointer Text07e7 - textpointer ConsecutiveWinRecordIncreasedText - textpointer Text07e9 - textpointer Text07ea - textpointer Text07eb - textpointer Text07ec - textpointer Text07ed - textpointer Text07ee - textpointer Text07ef - textpointer Text07f0 - textpointer Text07f1 - textpointer Text07f2 - textpointer Text07f3 - textpointer Text07f4 - textpointer Text07f5 - textpointer Text07f6 - textpointer Text07f7 - textpointer Text07f8 - textpointer Text07f9 - textpointer Text07fa - textpointer Text07fb - textpointer GrassEnergyName - textpointer GrassEnergyDescription - textpointer FireEnergyName - textpointer FireEnergyDescription - textpointer WaterEnergyName - textpointer WaterEnergyDescription - textpointer LightningEnergyName - textpointer LightningEnergyDescription - textpointer FightingEnergyName - textpointer FightingEnergyDescription - textpointer PsychicEnergyName - textpointer PsychicEnergyDescription - textpointer DoubleColorlessEnergyName - textpointer DoubleColorlessEnergyDescription - textpointer BulbasaurName - textpointer LeechSeedName - textpointer BulbasaursLeechSeedDescription - textpointer BulbasaurKind - textpointer BulbasaurDescription - textpointer IvysaurName - textpointer VineWhipName - textpointer PoisonPowderName - textpointer InflictPoisonDescription - textpointer IvysaurDescription - textpointer VenusaurName - textpointer SolarPowerName - textpointer SolarPowerDescription - textpointer SolarPowerDescriptionCont - textpointer MegaDrainName - textpointer VenusaursMegaDrainDescription - textpointer VenusaursMegaDrainDescriptionCont - textpointer Venusaur1Description - textpointer EnergyTransName - textpointer EnergyTransDescription - textpointer SolarBeamName - textpointer Venusaur2Description - textpointer CaterpieName - textpointer StringShotName - textpointer MayInflictParalysisDescription - textpointer CaterpieKind - textpointer CaterpieDescription - textpointer MetapodName - textpointer StiffenName - textpointer MetapodsStiffenDescription - textpointer StunSporeName - textpointer MetapodKind - textpointer MetapodDescription - textpointer ButterfreeName - textpointer WhirlwindName - textpointer WhirlwindDescription - textpointer ButterfreesMegaDrainDescription - textpointer ButterfreesMegaDrainDescriptionCont - textpointer ButterfreeKind - textpointer ButterfreeDescription - textpointer WeedleName - textpointer PoisonStingName - textpointer MayInflictPoisonDescription - textpointer WeedleKind - textpointer WeedleDescription - textpointer KakunaName - textpointer KakunasStiffenDescription - textpointer KakunaDescription - textpointer BeedrillName - textpointer TwineedleName - textpointer DoubleAttackX30Description - textpointer BeedrillKind - textpointer BeedrillDescription - textpointer EkansName - textpointer SpitPoisonName - textpointer WrapName - textpointer EkansKind - textpointer EkansDescription - textpointer ArbokName - textpointer TerrorStrikeName - textpointer TerrorStrikeDescription - textpointer PoisonFangName - textpointer ArbokKind - textpointer ArbokDescription - textpointer NidoranFName - textpointer FurySweepesName - textpointer TripleAttackX10Description - textpointer CallForFamilyName - textpointer NidoranFsCallForFamilyDescription - textpointer NidoranFKind - textpointer NidoranFDescription - textpointer NidorinaName - textpointer SupersonicName - textpointer MayInflictConfusionDescription - textpointer DoubleKickName - textpointer NidorinaDescription - textpointer NidoqueenName - textpointer BoyfriendsName - textpointer BoyfriendsDescription - textpointer MegaPunchName - textpointer NidoqueenKind - textpointer NidoqueenDescription - textpointer NidoranMName - textpointer HornHazardName - textpointer MayDoNothingDescription - textpointer NidoranMDescription - textpointer NidorinoName - textpointer HornDrillName - textpointer NidorinoDescription - textpointer NidokingName - textpointer ThrashName - textpointer ThrashDescriptipn - textpointer ToxicName - textpointer ToxicDescription - textpointer NidokingDescription - textpointer ZubatName - textpointer LeechLifeName - textpointer ZubatsLeechLifeDescription - textpointer ZubatKind - textpointer ZubatDescription - textpointer GolbatName - textpointer WingAttackName - textpointer GolbatsLeechLifeDescription - textpointer GolbatDescription - textpointer OddishName - textpointer SproutName - textpointer SproutDescription - textpointer OddishKind - textpointer OddishDescription - textpointer GloomName - textpointer FoulOdorName - textpointer FoulOdorDescription - textpointer GloomDescription - textpointer VileplumeName - textpointer HealName - textpointer HealDescription - textpointer PetalDanceName - textpointer PetalDanceDescription - textpointer VileplumeKind - textpointer VileplumeDescription - textpointer ParasName - textpointer ScratchName - textpointer SporeName - textpointer InflictSleepDescription - textpointer ParasKind - textpointer ParasDescription - textpointer ParasectName - textpointer SlashName - textpointer ParasectDescription - textpointer VenonatName - textpointer VenonatLeechLifeDescription - textpointer VenonatKind - textpointer VenonatDescription - textpointer VenomothName - textpointer ShiftName - textpointer ShiftDescription - textpointer VenomPowderName - textpointer VenomPowderDescription - textpointer VenomothKind - textpointer VenomothDescription - textpointer BellsproutName - textpointer BellsproutsCallForFamilyDescription - textpointer BellsproutDescription - textpointer WeepinbellName - textpointer RazorLeafName - textpointer WeepinbellKind - textpointer WeepinbellDescription - textpointer VictreebelName - textpointer LureName - textpointer VictreebelsLureDescription - textpointer AcidName - textpointer VictreebelsAcidDescription - textpointer VictreebelDescription - textpointer GrimerName - textpointer NastyGooName - textpointer MinimizeName - textpointer GrimersMinimizeDescription - textpointer GrimerKindOrSludgeName - textpointer GrimerDescription - textpointer MukName - textpointer ToxicGasName - textpointer ToxicGasDescription - textpointer MukDescription - textpointer ExeggcuteName - textpointer DrowzeeKindOrHypnosisName - textpointer ExeggcutesLeechSeedDescription - textpointer ExeggcuteKind - textpointer ExeggcuteDescription - textpointer ExeggutorName - textpointer TeleportName - textpointer TeleportDescription - textpointer BigEggsplosionName - textpointer BigEggsplosionDescription - textpointer ExeggutorKind - textpointer ExeggutorDescription - textpointer KoffingName - textpointer FoulGasName - textpointer FoulGasDescription - textpointer KoffingKind - textpointer KoffingDescription - textpointer WeezingName - textpointer SmogName - textpointer SelfdestructName - textpointer WeezingsSelfdestructDescription - textpointer WeezingDescription - textpointer TangelaName - textpointer BindName - textpointer TangelaKind - textpointer Tangela1Description - textpointer PoisonWhipName - textpointer Tangela2Description - textpointer ScytherName - textpointer SwordsDanceName - textpointer SwordsDanceDescription - textpointer ScytherKind - textpointer ScytherDescription - textpointer PinsirName - textpointer IronGripName - textpointer GuillotineName - textpointer PinsirKind - textpointer PinsirDescription - textpointer CharmanderName - textpointer EmberName - textpointer EmberDescription - textpointer CharmanderKind - textpointer CharmanderDescription - textpointer CharmeleonName - textpointer FlamethrowerName - textpointer CharmeleonsFlamethrowerDescription - textpointer CharmeleonKind - textpointer CharmeleonDescription - textpointer CharizardName - textpointer EnergyBurnName - textpointer EnergyBurnDescription - textpointer FireSpinName - textpointer FireSpinDescription - textpointer CharizardDescription - textpointer VulpixName - textpointer ConfuseRayName - textpointer VulpixKind - textpointer VulpixDescription - textpointer NinetailsName - textpointer NinetailsLureDescription - textpointer FireBlastName - textpointer FireBlastDescription - textpointer Ninetails1Description - textpointer MixUpName - textpointer MixUpDescription - textpointer MixUpDescriptionCont - textpointer DancingEmbersName - textpointer DancingEmbersDescription - textpointer Ninetails2Description - textpointer GrowlitheName - textpointer FlareName - textpointer GrowlitheKind - textpointer GrowlitheDescription - textpointer ArcanineName - textpointer QuickAttackName - textpointer QuickAttackDescription - textpointer FlamesOfRageName - textpointer FlamesOfRageDescription - textpointer ArcanineKind - textpointer Arcanine1Description - textpointer ArcaninesFlamethrowerDescription - textpointer TakeDownName - textpointer TakeDownDescription - textpointer Arcanine2Description - textpointer PonytaName - textpointer SmashKickName - textpointer FlameTailName - textpointer PonytaKind - textpointer PonytaDescription - textpointer RapidashName - textpointer StompName - textpointer StompDescription - textpointer AgilityName - textpointer RapidashsAgilityDescription - textpointer RapidashDescription - textpointer MagmarName - textpointer FirePunchName - textpointer FirePunchDescription - textpointer MagmarKind - textpointer Magmar1Description - textpointer SmokescreenName - textpointer MagmarsSmokescreenDescription - textpointer Magmar2Description - textpointer FlareonName - textpointer EeveeName - textpointer BiteName - textpointer RageName - textpointer FlareonsRageDescription - textpointer Flareon1Description - textpointer FlareonsFlamethrowerDescription - textpointer Flareon2Description - textpointer MoltresName - textpointer WildfireName - textpointer WildfireDescription - textpointer DiveBombName - textpointer Moltres1Description - textpointer FiregiverName - textpointer FiregiverDescription - textpointer Moltres2Description - textpointer SquirtleName - textpointer BubbleName - textpointer WithdrawName - textpointer SquirtlesWithdrawDescription - textpointer SquirtleKind - textpointer SquirtleDescription - textpointer WartortleName - textpointer WartortlesWithdrawDescription - textpointer WartortleKind - textpointer WartortleDescription - textpointer BlastoiseName - textpointer RainDanceName - textpointer RainDanceDescription - textpointer RainDanceDescriptionCont - textpointer HydroPumpName - textpointer HydroPumpDescription - textpointer BlastoiseKind - textpointer BlastoiseDescription - textpointer PsyduckName - textpointer HeadacheName - textpointer HeadacheDescription - textpointer PsyduckKind - textpointer PsyduckDescription - textpointer GolduckName - textpointer PsyshockName - textpointer HyperBeamName - textpointer Discard1EnergyFromTargetDescription - textpointer GolduckDescription - textpointer PoliwagName - textpointer WaterGunName - textpointer PoliwagsWaterGunDescription - textpointer PoliwagKind - textpointer PoliwagDescription - textpointer PoliwhirlName - textpointer AmnesiaName - textpointer PoliwhirlsAmnesiaDescription - textpointer DoubleslapName - textpointer PoliwhirlsDescription - textpointer PoliwrathName - textpointer PoliwrathsWaterGunDescription - textpointer WhirlpoolName - textpointer PoliwrathDescription - textpointer TentacoolName - textpointer CowardiceName - textpointer CowardiceDescription - textpointer TentacoolKind - textpointer TentacoolDescription - textpointer TentacruelName - textpointer JellyfishStingName - textpointer TentacruelDescription - textpointer SeelName - textpointer HeadbuttName - textpointer SeelKind - textpointer SeelDescription - textpointer DewgongName - textpointer AuroraBeamName - textpointer IceBeamName - textpointer DewgongDescription - textpointer ShellderName - textpointer HideInShellName - textpointer HideInShellDescription - textpointer ShellderKind - textpointer ShellderDescription - textpointer CloysterName - textpointer ClampName - textpointer ClampDescription - textpointer SpikeCannonName - textpointer CloysterDescription - textpointer KrabbyName - textpointer KrabbysCallForFamilyDescription - textpointer KrabbyKind - textpointer KrabbyDescription - textpointer KinglerName - textpointer FlailName - textpointer KinglersFlailDescription - textpointer CrabhammerName - textpointer KinglerKind - textpointer KinglerDescription - textpointer HorseaName - textpointer OpponentAttackMayDoNothingDescription - textpointer HorseaKind - textpointer HorseaDescription - textpointer SeadraName - textpointer SeadrasWaterGunDescription - textpointer SeadrasAgilityDescription - textpointer SeadraDescription - textpointer GoldeenName - textpointer HornAttackName - textpointer GoldeenKind - textpointer GoldeenDescription - textpointer SeakingName - textpointer WaterfallName - textpointer SeakingDescription - textpointer StaryuName - textpointer SlapName - textpointer StaryuKind - textpointer StaryuDescription - textpointer StarmieName - textpointer RecoverName - textpointer StarmiesRecoverDescription - textpointer StarFreezeName - textpointer StarmieKind - textpointer StarmieDescription - textpointer MagikarpName - textpointer TackleName - textpointer MagikarpsFlailDescription - textpointer MagikarpKind - textpointer MagikarpDescription - textpointer GyaradosName - textpointer DragonRageName - textpointer BubblebeamName - textpointer GyaradosKind - textpointer GyaradosDescription - textpointer LaprasName - textpointer LaprasWaterGunDescription - textpointer LaprasKind - textpointer LaprasDescription - textpointer VaporeonName - textpointer FocusEnergyName - textpointer FocusEnergyDescription - textpointer VaporeonKind - textpointer Vaporeon1Description - textpointer VaporeonsWaterGunDescription - textpointer Vaporeon2Description - textpointer OmanyteName - textpointer MysteriousFossilName - textpointer ClairvoyanceName - textpointer ClairvoyanceDescription - textpointer OmanytesWaterGunDescription - textpointer OmanyteKind - textpointer OmanyteDescription - textpointer OmastarName - textpointer OmastarsWaterGunDescription - textpointer OmastarDescription - textpointer ArticunoName - textpointer FreezeDryName - textpointer BlizzardName - textpointer BlizzardDescription - textpointer ArticunoKind - textpointer Articuno1Description - textpointer QuickfreezeName - textpointer QuickfreezeDescription - textpointer IceBreathName - textpointer IceBreathDescription - textpointer Articuno2Description - textpointer PikachuName - textpointer GnawName - textpointer ThunderJoltName - textpointer ThunderJoltDescription - textpointer PikachuKind - textpointer Pikachu1Description - textpointer SparkName - textpointer SparkDescription - textpointer Pikachu2Description - textpointer GrowlName - textpointer GrowlDescription - textpointer ThundershockName - textpointer Pikachu3Description - textpointer FlyingPikachuName - textpointer FlyName - textpointer FlyDescription - textpointer FlyingPikachuDescription - textpointer SurfingPikachuName - textpointer SurfName - textpointer SurfingPikachuDescription - textpointer RaichuName - textpointer RaichusAgilityDescription - textpointer ThunderName - textpointer RaichusThunderDescription - textpointer Raichu1Description - textpointer GigashockName - textpointer GigashockDescription - textpointer Raichu2Description - textpointer MagnemiteName - textpointer ThunderWaveName - textpointer MagnemitesSelfdestructDescription - textpointer MagnemiteKind - textpointer Magnemite1Description - textpointer MagneticStormName - textpointer MagneticStormDescription - textpointer Magnemite2Description - textpointer MagnetonName - textpointer Magneton1sSelfdestructDescription - textpointer Magneton1Description - textpointer SonicboomName - textpointer SonicboomDescription - textpointer Magneton2sSelfdestructDescription - textpointer Magneton2Description - textpointer VoltorbName - textpointer VoltorbKind - textpointer VoltorbDescription - textpointer ElectrodeName - textpointer EnergySpikeName - textpointer EnergySpikeDescription - textpointer Electrode1Description - textpointer ChainLightningName - textpointer ChainLightningDescription - textpointer Electrode2Description - textpointer ElectabuzzName - textpointer LightScreenName - textpointer LightScreenDescription - textpointer LightScreenDescriptionCont - textpointer ElectabuzzsQuickAttackDescription - textpointer ElectabuzzKind - textpointer Electabuzz1Description - textpointer ThunderpunchName - textpointer ThunderpunchDescription - textpointer Electabuzz2Description - textpointer JolteonName - textpointer DoubleAttackX20Description - textpointer StunNeedleName - textpointer JolteonKind - textpointer Jolteon1Description - textpointer PinMissileName - textpointer QuadrupleAttackX20Description - textpointer Jolteon2Description - textpointer ZapdosName - textpointer ThunderstormName - textpointer ThunderstormDescription - textpointer Zapdos1Description - textpointer ZapdosThunderDescription - textpointer ThunderboltName - textpointer ThunderboltDescription - textpointer Zapdos2Description - textpointer PealOfThunderName - textpointer PealOfThunderDescription - textpointer BigThunderName - textpointer BigThunderDescription - textpointer Zapdos3Description - textpointer SandshrewName - textpointer SandAttackName - textpointer SandshrewDescription - textpointer SandslashName - textpointer TripleAttackX20Description - textpointer SandslashDescription - textpointer DiglettName - textpointer DigName - textpointer MudSlapName - textpointer DiglettKind - textpointer DiglettDescription - textpointer DugtrioName - textpointer EarthquakeName - textpointer EarthquakeDescription - textpointer DugtrioDescription - textpointer MankeyName - textpointer PeekName - textpointer PeekDescription - textpointer PeekDescriptionCont - textpointer MankeyKind - textpointer MankeyDescription - textpointer PrimeapeName - textpointer TantrumName - textpointer TantrumDescription - textpointer PrimeapeDescription - textpointer MachopName - textpointer LowKickName - textpointer MachopKindOrSuperpowerName - textpointer MachopDescription - textpointer MachokeName - textpointer KarateChopName - textpointer KarateChopDescription - textpointer SubmissionName - textpointer SubmissionDescription - textpointer MachokeDescription - textpointer MachampName - textpointer StrikesBackName - textpointer StrikesBackDescription - textpointer StrikesBackDescriptionCont - textpointer SeismicTossName - textpointer MachampDescription - textpointer GeodudeName - textpointer StoneBarrageName - textpointer StoneBarrageDescription - textpointer GeodudeKind - textpointer GeodudeDescription - textpointer GravelerName - textpointer HardenName - textpointer GravelersHardenDescription - textpointer RockThrowName - textpointer GravelerDescription - textpointer GolemName - textpointer AvalancheName - textpointer GolemsSelfdestructDescription - textpointer GolemKind - textpointer GolemDescription - textpointer OnixName - textpointer OnixsHardenDescription - textpointer OnixKind - textpointer OnixDescription - textpointer CuboneName - textpointer SnivelName - textpointer SnivelDescription - textpointer CubonesRageDescription - textpointer CuboneKind - textpointer CuboneDescription - textpointer MarowakName - textpointer BonemerangName - textpointer CallforFriendName - textpointer CallforFriendDescription - textpointer MarowakKind - textpointer Marowak1Description - textpointer BoneAttackName - textpointer BoneAttackDescription - textpointer WailName - textpointer WailDescription - textpointer Marowak2Description - textpointer HitmonleeName - textpointer StretchKickName - textpointer StretchKickDescription - textpointer HighJumpKickName - textpointer HitmonleeKind - textpointer HitmonleeDescription - textpointer HitmonchanName - textpointer JabName - textpointer SpecialPunch - textpointer HitmonchanKind - textpointer HitmonchanDescription - textpointer RhyhornName - textpointer LeerName - textpointer LeerDescription - textpointer RhyhornKind - textpointer RhyhornDescription - textpointer RhydonName - textpointer RamName - textpointer RamDescription - textpointer RamDescriptionCont - textpointer RhydonDescription - textpointer KabutoName - textpointer KabutoArmorName - textpointer KabutoArmorDescription - textpointer KabutoArmorDescriptionCont - textpointer KabutoDescription - textpointer KabutopsName - textpointer SharpSickleName - textpointer AbsorbName - textpointer AbsorbDescription - textpointer AbsorbDescriptionCont - textpointer KabutopsDescription - textpointer AerodactylName - textpointer PrehistoricPowerName - textpointer PrehistoricPowerDescription - textpointer AerodactylKind - textpointer AerodactylDescription - textpointer AbraName - textpointer AbraKind - textpointer AbraDescription - textpointer KadabraName - textpointer KadabrasRecoverDescription - textpointer SuperPsiName - textpointer KadabraDescription - textpointer AlakazamName - textpointer DamageSwapName - textpointer DamageSwapDescription - textpointer AlakazamDescription - textpointer SlowpokeName - textpointer SlowpokesAmnesiaDescription - textpointer SlowpokeKind - textpointer Slowpoke1Description - textpointer SpacingOutName - textpointer SpacingOutDescription - textpointer ScavengeName - textpointer ScavengeDescription - textpointer SlowbroName - textpointer StrangeBehaviorName - textpointer StrangeBehaviorDescription - textpointer SlowbroKind - textpointer SlowbroDescription - textpointer GastlyName - textpointer SleepingGasName - textpointer MayInflictSleepDescription - textpointer DestinyBondName - textpointer DestinyBondDescription - textpointer GastlyKind - textpointer Gastly1Description - textpointer LickName - textpointer EnergyConversionName - textpointer EnergyConversionDescription - textpointer Gastly2Description - textpointer HaunterName - textpointer TransparencyName - textpointer TransparencyDescription - textpointer NightmareName - textpointer HaunterDescription - textpointer DreamEaterName - textpointer DreamEaterDescription - textpointer GengarName - textpointer CurseName - textpointer CurseDescription - textpointer DarkMindName - textpointer DarkMindDescription - textpointer GengarKind - textpointer GengarDescription - textpointer DrowzeeName - textpointer PoundName - textpointer DrowzeeDescription - textpointer HypnoName - textpointer ProphecyName - textpointer ProphecyDescription - textpointer HypnoDescription - textpointer MrMimeName - textpointer InvisibleWallName - textpointer InvisibleWallDescription - textpointer InvisibleWallDescriptionCont - textpointer MeditateName - textpointer MrMimesMeditateDescription - textpointer MrMimeKindOrBarrierName - textpointer MrMimeDescription - textpointer JynxName - textpointer DoubleAttackX10Description - textpointer JynxsMeditateDescription - textpointer JynxKind - textpointer JynxDescription - textpointer MewtwoName - textpointer PsychicName - textpointer PsychicDescription - textpointer BarrierDescription - textpointer MewtwoKind - textpointer Mewtwo1Description - textpointer EnergyAbsorptionName - textpointer EnergyAbsorptionDescription - textpointer PsyburnName - textpointer Mewtwo2Description - textpointer MewName - textpointer NeutralizingShieldName - textpointer NeutralizingShieldDescription - textpointer MewKind - textpointer Mew1Description - textpointer MysteryAttackName - textpointer MysteryAttackDescription - textpointer Mew2Description - textpointer PsywaveName - textpointer PsywaveDescription - textpointer DevolutionBeamName - textpointer DevolutionBeamDescription - textpointer PidgeyName - textpointer PidgeyKind - textpointer PidgeyDescription - textpointer PidgeottoName - textpointer MirrorMoveName - textpointer PidgeottosMirrorMoveDescription - textpointer PidgeottoKind - textpointer PidgeottoDescription - textpointer PidgeotName - textpointer SlicingWindName - textpointer SlicingWildDescription - textpointer GaleName - textpointer GaleDescription - textpointer Pidgeot1Description - textpointer HurricaneName - textpointer HurricaneDescription - textpointer Pidgeot2Description - textpointer RattataName - textpointer RattataKind - textpointer RattataDescription - textpointer RaticateName - textpointer SuperFangName - textpointer SuperFangDescription - textpointer RaticateDescription - textpointer SpearowName - textpointer PeckName - textpointer SpearowsMirrorMoveDescription - textpointer SpearowDescription - textpointer FearowName - textpointer FearowsAgilityDescription - textpointer DrillPeckName - textpointer FearowKind - textpointer FearowDescription - textpointer ClefairyName - textpointer SingName - textpointer MetronomeName - textpointer ClefairysMetronomeDescription - textpointer ClefairyKind - textpointer ClefairyDescription - textpointer ClefableName - textpointer ClefablesMetronomeDescription - textpointer ClefablesMinimizeDescription - textpointer ClefableDescription - textpointer JigglypuffName - textpointer FirstAidName - textpointer FirstAidDescription - textpointer DoubleEdgeName - textpointer JigglypuffsDoubleEdgeDescription - textpointer JigglypuffKind - textpointer Jigglypuff1Description - textpointer FriendshipSongName - textpointer FriendshipSongDescription - textpointer ExpandName - textpointer ExpandDescription - textpointer Jigglypuff2Description - textpointer LullabyName - textpointer Jigglypuff3Description - textpointer WigglytuffName - textpointer DoTheWaveName - textpointer DoTheWaveDescription - textpointer WigglytuffDescription - textpointer MeowthName - textpointer CatPunchName - textpointer CatPunchDescription - textpointer MeowthKind - textpointer Meowth1Description - textpointer PayDayName - textpointer PayDayDescription - textpointer Meowth2Description - textpointer PersianName - textpointer PounceName - textpointer PounceDescription - textpointer PersianKind - textpointer PersianDescription - textpointer FarfetchdName - textpointer LeekSlapName - textpointer LeekSlapDescription - textpointer PotSmashName - textpointer FarfetchdKind - textpointer FarfetchdDescription - textpointer DoduoName - textpointer FuryAttackName - textpointer DoduoKind - textpointer DoduoDescription - textpointer DodrioName - textpointer RetreatAidName - textpointer RetreatAidDescription - textpointer DodriosRageDescription - textpointer DodrioKind - textpointer DodrioDescription - textpointer LickitungName - textpointer TongueWrapName - textpointer LickitungKind - textpointer LickitungDescription - textpointer ChanseyName - textpointer ScrunchName - textpointer ScrunchDescription - textpointer ChanseysDoubleEdgeDescription - textpointer ChanseyDescription - textpointer KangaskhanName - textpointer FetchName - textpointer FetchDescription - textpointer CometPunchName - textpointer KangaskhanKind - textpointer KangaskhanDescription - textpointer TaurosName - textpointer RampageName - textpointer RampageDescription - textpointer TaurosKind - textpointer TaurosDescription - textpointer DittoName - textpointer MorphName - textpointer MorphDescription - textpointer MorphDescriptionCont - textpointer DittoKind - textpointer DittoDescription - textpointer TailWagName - textpointer TailWagDescription - textpointer EeveeKind - textpointer EeveeDescription - textpointer PorygonName - textpointer Conversion1Name - textpointer Conversion1Description - textpointer Conversion2Name - textpointer Conversion2Description - textpointer PorygonKind - textpointer PorygonDescription - textpointer SnorlaxName - textpointer ThickSkinnedName - textpointer ThickSkinnedDescription - textpointer BodySlamName - textpointer SnorlaxKind - textpointer SnorlaxDescription - textpointer DratiniName - textpointer DratiniDescription - textpointer DragonairName - textpointer SlamName - textpointer DragonairDescription - textpointer DragoniteName - textpointer HealingWindName - textpointer HealingWindDescription - textpointer Dragonite1Description - textpointer StepInName - textpointer StepInDescription - textpointer DoubleAttackX40Description - textpointer DragoniteDescription - textpointer ProfessorOakName - textpointer ProfessorOakDescription - textpointer ImposterProfessorOakName - textpointer ImposterProfessorOakDescription - textpointer BillName - textpointer BillDescription - textpointer MrFujiName - textpointer MrFujiDescription - textpointer LassName - textpointer LassDescription - textpointer ImakuniName - textpointer ImakuniDescription - textpointer PokemonTraderName - textpointer PokemonTraderDescription - textpointer PokemonBreederName - textpointer PokemonBreederDescription - textpointer ClefairyDollName - textpointer ClefairyDollDescription - textpointer ClefairyDollDescriptionCont - textpointer MysteriousFossilDescription - textpointer MysteriousFossilDescriptionCont - textpointer EnergyRetrievalName - textpointer EnergyRetrievalDescription - textpointer SuperEnergyRetrievalName - textpointer SuperEnergyRetrievalDescription - textpointer EnergySearchName - textpointer EnergySearchDescription - textpointer EnergyRemovalName - textpointer EnergyRemovalDescription - textpointer SuperEnergyRemovalName - textpointer SuperEnergyRemovalDescription - textpointer SwitchName - textpointer SwitchDescription - textpointer PokemonCenterName - textpointer PokemonCenterDescription - textpointer PokeBallName - textpointer PokeBallDescription - textpointer ScoopUpName - textpointer ScoopUpDescription - textpointer ComputerSearchName - textpointer ComputerSearchDescription - textpointer PokedexName - textpointer PokedexDescription - textpointer PlusPowerName - textpointer PlusPowerDescription - textpointer DefenderName - textpointer DefenderDescription - textpointer ItemFinderName - textpointer ItemFinderDescription - textpointer GustOfWindName - textpointer GustOfWindDescription - textpointer DevolutionSprayName - textpointer DevolutionSprayDescription - textpointer DevolutionSprayDescriptionCont - textpointer PotionName - textpointer PotionDescription - textpointer SuperPotionName - textpointer SuperPotionDescription - textpointer FullHealName - textpointer FullHealDescription - textpointer ReviveName - textpointer ReviveDescription - textpointer MaintenanceName - textpointer MaintenanceDescription - textpointer PokemonFluteName - textpointer PokemonFluteDescription - textpointer GamblerName - textpointer GamblerDescription - textpointer RecycleName - textpointer RecycleDescription + dwb $0000, $00 ; 0x0000 + textpointer HandText ; 0x0001 + textpointer CheckText ; 0x0002 + textpointer AttackText ; 0x0003 + textpointer PKMNPowerText ; 0x0004 + textpointer DoneText ; 0x0005 + textpointer TypeText ; 0x0006 + textpointer RetreatText ; 0x0007 + textpointer WeaknessText ; 0x0008 + textpointer ResistanceText ; 0x0009 + textpointer PKMNPWRText ; 0x000a + textpointer Text000b ; 0x000b + textpointer LengthText ; 0x000c + textpointer WeightText ; 0x000d + textpointer PokemonText ; 0x000e + textpointer Text000f ; 0x000f + textpointer LbsText ; 0x0010 + textpointer Text0011 ; 0x0011 + textpointer Text0012 ; 0x0012 + textpointer Text0013 ; 0x0013 + textpointer Text0014 ; 0x0014 + textpointer Text0015 ; 0x0015 + textpointer Text0016 ; 0x0016 + textpointer Text0017 ; 0x0017 + textpointer Text0018 ; 0x0018 + textpointer Text0019 ; 0x0019 + textpointer Text001a ; 0x001a + textpointer Text001b ; 0x001b + textpointer Text001c ; 0x001c + textpointer Text001d ; 0x001d + textpointer Text001e ; 0x001e + textpointer Text001f ; 0x001f + textpointer Text0020 ; 0x0020 + textpointer Text0021 ; 0x0021 + textpointer Text0022 ; 0x0022 + textpointer NoPokemonOnTheBenchText ; 0x0023 + textpointer UnableDueToSleepText ; 0x0024 + textpointer UnableDueToParalysisText ; 0x0025 + textpointer Received10DamageDueToPoisonText ; 0x0026 + textpointer Received20DamageDueToPoisonText ; 0x0027 + textpointer IsStillAsleepText ; 0x0028 + textpointer IsCuredOfSleepText ; 0x0029 + textpointer IsCuredOfParalysisText ; 0x002a + textpointer Text002b ; 0x002b + textpointer Text002c ; 0x002c + textpointer Text002d ; 0x002d + textpointer Text002e ; 0x002e + textpointer YesOrNoText ; 0x002f + textpointer DiscardName ; 0x0030 + textpointer Text0031 ; 0x0031 + textpointer Text0032 ; 0x0032 + textpointer Text0033 ; 0x0033 + textpointer Text0034 ; 0x0034 + textpointer PokemonsAttackText ; 0x0035 + textpointer Text0036 ; 0x0036 + textpointer Text0037 ; 0x0037 + textpointer Text0038 ; 0x0038 + textpointer Text0039 ; 0x0039 + textpointer Text003a ; 0x003a + textpointer Text003b ; 0x003b + textpointer NoSelectableAttackText ; 0x003c + textpointer UnableToRetreatText ; 0x003d + textpointer OnlyOneEnergyCardText ; 0x003e + textpointer Text003f ; 0x003f + textpointer Text0040 ; 0x0040 + textpointer DiscardDescription ; 0x0041 + textpointer Text0042 ; 0x0042 + textpointer Text0043 ; 0x0043 + textpointer Text0044 ; 0x0044 + textpointer Text0045 ; 0x0045 + textpointer Text0046 ; 0x0046 + textpointer Text0047 ; 0x0047 + textpointer Text0048 ; 0x0048 + textpointer Text0049 ; 0x0049 + textpointer Text004a ; 0x004a + textpointer Text004b ; 0x004b + textpointer Text004c ; 0x004c + textpointer Text004d ; 0x004d + textpointer Text004e ; 0x004e + textpointer DamageToSelfDueToConfusionText ; 0x004f + textpointer Text0050 ; 0x0050 + textpointer Text0051 ; 0x0051 + textpointer Text0052 ; 0x0052 + textpointer YouPlayFirstText ; 0x0053 + textpointer YouPlaySecondText ; 0x0054 + textpointer TransmissionErrorText ; 0x0055 + textpointer Text0056 ; 0x0056 + textpointer TransmitingDataText ; 0x0057 + textpointer Text0058 ; 0x0058 + textpointer Text0059 ; 0x0059 + textpointer Text005a ; 0x005a + textpointer Text005b ; 0x005b + textpointer Text005c ; 0x005c + textpointer Text005d ; 0x005d + textpointer Text005e ; 0x005e + textpointer Text005f ; 0x005f + textpointer Text0060 ; 0x0060 + textpointer Text0061 ; 0x0061 + textpointer Text0062 ; 0x0062 + textpointer Text0063 ; 0x0063 + textpointer Text0064 ; 0x0064 + textpointer Text0065 ; 0x0065 + textpointer Text0066 ; 0x0066 + textpointer Text0067 ; 0x0067 + textpointer Text0068 ; 0x0068 + textpointer ChooseBasicPkmnToPlaceInArenaText ; 0x0069 + textpointer Text006a ; 0x006a + textpointer NeitherPlayerHasBasicPkmnText ; 0x006b + textpointer Text006c ; 0x006c + textpointer Text006d ; 0x006d + textpointer Text006e ; 0x006e + textpointer Text006f ; 0x006f + textpointer Text0070 ; 0x0070 + textpointer Text0071 ; 0x0071 + textpointer PlacingThePrizesText ; 0x0072 + textpointer PleasePlacePrizesText ; 0x0073 + textpointer IfHeadPlayerPlaysFirstText ; 0x0074 + textpointer CoinTossToDetermineWhoFirstText ; 0x0075 + textpointer DecisionText ; 0x0076 + textpointer DuelWasDrawText ; 0x0077 + textpointer WonDuelText ; 0x0078 + textpointer LostDuelText ; 0x0079 + textpointer StartSuddenDeathMatchText ; 0x007a + textpointer Text007b ; 0x007b + textpointer Text007c ; 0x007c + textpointer Text007d ; 0x007d + textpointer Text007e ; 0x007e + textpointer Text007f ; 0x007f + textpointer Text0080 ; 0x0080 + textpointer WasKnockedOutText ; 0x0081 + textpointer Text0082 ; 0x0082 + textpointer Text0083 ; 0x0083 + textpointer Text0084 ; 0x0084 + textpointer Text0085 ; 0x0085 + textpointer Text0086 ; 0x0086 + textpointer Text0087 ; 0x0087 + textpointer DuelistIsThinkingText ; 0x0088 + textpointer Text0089 ; 0x0089 + textpointer Text008a ; 0x008a + textpointer Text008b ; 0x008b + textpointer Text008c ; 0x008c + textpointer Text008d ; 0x008d + textpointer Text008e ; 0x008e + textpointer Text008f ; 0x008f + textpointer Text0090 ; 0x0090 + textpointer Text0091 ; 0x0091 + textpointer Player2Text ; 0x0092 + textpointer Text0093 ; 0x0093 + textpointer Text0094 ; 0x0094 + textpointer Text0095 ; 0x0095 + textpointer Text0096 ; 0x0096 + textpointer Text0097 ; 0x0097 + textpointer Text0098 ; 0x0098 + textpointer Text0099 ; 0x0099 + textpointer Text009a ; 0x009a + textpointer Text009b ; 0x009b + textpointer Text009c ; 0x009c + textpointer Text009d ; 0x009d + textpointer Text009e ; 0x009e + textpointer Text009f ; 0x009f + textpointer Text00a0 ; 0x00a0 + textpointer Text00a1 ; 0x00a1 + textpointer ResetBackUpRamText ; 0x00a2 + textpointer Text00a3 ; 0x00a3 + textpointer NoCardsInHandText ; 0x00a4 + textpointer Text00a5 ; 0x00a5 + textpointer Text00a6 ; 0x00a6 + textpointer Text00a7 ; 0x00a7 + textpointer Text00a8 ; 0x00a8 + textpointer Text00a9 ; 0x00a9 + textpointer Text00aa ; 0x00aa + textpointer Text00ab ; 0x00ab + textpointer Text00ac ; 0x00ac + textpointer Text00ad ; 0x00ad + textpointer Text00ae ; 0x00ae + textpointer Text00af ; 0x00af + textpointer Text00b0 ; 0x00b0 + textpointer Text00b1 ; 0x00b1 + textpointer NoSpaceOnTheBenchText ; 0x00b2 + textpointer Text00b3 ; 0x00b3 + textpointer Text00b4 ; 0x00b4 + textpointer Text00b5 ; 0x00b5 + textpointer Text00b6 ; 0x00b6 + textpointer Text00b7 ; 0x00b7 + textpointer Text00b8 ; 0x00b8 + textpointer Text00b9 ; 0x00b9 + textpointer Text00ba ; 0x00ba + textpointer Text00bb ; 0x00bb + textpointer Text00bc ; 0x00bc + textpointer Text00bd ; 0x00bd + textpointer Text00be ; 0x00be + textpointer Text00bf ; 0x00bf + textpointer NotEnoughEnergyCardsText ; 0x00c0 + textpointer Text00c1 ; 0x00c1 + textpointer Text00c2 ; 0x00c2 + textpointer Text00c3 ; 0x00c3 + textpointer Text00c4 ; 0x00c4 + textpointer Text00c5 ; 0x00c5 + textpointer Text00c6 ; 0x00c6 + textpointer Text00c7 ; 0x00c7 + textpointer Text00c8 ; 0x00c8 + textpointer Text00c9 ; 0x00c9 + textpointer Text00ca ; 0x00ca + textpointer CannotUseDueToStatusText ; 0x00cb + textpointer Text00cc ; 0x00cc + textpointer Text00cd ; 0x00cd + textpointer Text00ce ; 0x00ce + textpointer Text00cf ; 0x00cf + textpointer Text00d0 ; 0x00d0 + textpointer Text00d1 ; 0x00d1 + textpointer Text00d2 ; 0x00d2 + textpointer Text00d3 ; 0x00d3 + textpointer UnableDueToToxicGasText ; 0x00d4 + textpointer Text00d5 ; 0x00d5 + textpointer BackUpIsBrokenText ; 0x00d6 + textpointer Text00d7 ; 0x00d7 + textpointer Text00d8 ; 0x00d8 + textpointer Text00d9 ; 0x00d9 + textpointer Text00da ; 0x00da + textpointer Text00db ; 0x00db + textpointer Text00dc ; 0x00dc + textpointer Text00dd ; 0x00dd + textpointer SandAttackCheckText ; 0x00de + textpointer SmokescreenCheckText ; 0x00df + textpointer ParalysisCheckText ; 0x00e0 + textpointer SleepCheckText ; 0x00e1 + textpointer PoisonCheckText ; 0x00e2 + textpointer ConfusionCheckText ; 0x00e3 + textpointer VenomPowderCheckText ; 0x00e4 + textpointer Text00e5 ; 0x00e5 + textpointer Text00e6 ; 0x00e6 + textpointer Text00e7 ; 0x00e7 + textpointer Text00e8 ; 0x00e8 + textpointer Text00e9 ; 0x00e9 + textpointer Text00ea ; 0x00ea + textpointer Text00eb ; 0x00eb + textpointer Text00ec ; 0x00ec + textpointer Text00ed ; 0x00ed + textpointer Text00ee ; 0x00ee + textpointer Text00ef ; 0x00ef + textpointer Text00f0 ; 0x00f0 + textpointer IfHeadsNoDamageNextTurnText ; 0x00f1 + textpointer Text00f2 ; 0x00f2 + textpointer Text00f3 ; 0x00f3 + textpointer Text00f4 ; 0x00f4 + textpointer AcidCheckText ; 0x00f5 + textpointer TransparencyCheckText ; 0x00f6 + textpointer ConfusionCheckDamageText ; 0x00f7 + textpointer Text00f8 ; 0x00f8 + textpointer Text00f9 ; 0x00f9 + textpointer Text00fa ; 0x00fa + textpointer Text00fb ; 0x00fb + textpointer Text00fc ; 0x00fc + textpointer AttackUnsuccessfulText ; 0x00fd + textpointer UnableToRetreatDueToAcidText ; 0x00fe + textpointer UnableToUseTrainerDueToHeadacheText ; 0x00ff + textpointer UnableToAttackDueToTailWagText ; 0x0100 + textpointer UnableToAttackDueToLeerText ; 0x0101 + textpointer UnableToAttackDueToBoneAttackText ; 0x0102 + textpointer UnableToUseAttackDueToAmnesiaText ; 0x0103 + textpointer KnockedOutDueToDestinyBondText ; 0x0104 + textpointer ReceivesDamageDueToStrikesBackText ; 0x0105 + textpointer UnableToEvolveDueToPrehistoricPowerText ; 0x0106 + textpointer NoDamageOrEffectDueToFlyText ; 0x0107 + textpointer NoDamageOrEffectDueToBarrierText ; 0x0108 + textpointer NoDamageOrEffectDueToAgilityText ; 0x0109 + textpointer UnableToUseAttackDueToNShieldText ; 0x010a + textpointer NoDamageOrEffectDueToNShieldText ; 0x010b + textpointer NoDamageOrEffectDueToTransparencyText ; 0x010c + textpointer Text010d ; 0x010d + textpointer SelectPkmnOnBenchToSwitchWithActiveText ; 0x010e + textpointer Text010f ; 0x010f + textpointer Text0110 ; 0x0110 + textpointer Text0111 ; 0x0111 + textpointer Text0112 ; 0x0112 + textpointer Text0113 ; 0x0113 + textpointer Text0114 ; 0x0114 + textpointer Text0115 ; 0x0115 + textpointer Text0116 ; 0x0116 + textpointer Text0117 ; 0x0117 + textpointer Text0118 ; 0x0118 + textpointer Text0119 ; 0x0119 + textpointer Text011a ; 0x011a + textpointer Text011b ; 0x011b + textpointer Text011c ; 0x011c + textpointer Text011d ; 0x011d + textpointer Text011e ; 0x011e + textpointer Text011f ; 0x011f + textpointer Text0120 ; 0x0120 + textpointer Text0121 ; 0x0121 + textpointer Text0122 ; 0x0122 + textpointer Text0123 ; 0x0123 + textpointer Text0124 ; 0x0124 + textpointer Text0125 ; 0x0125 + textpointer Text0126 ; 0x0126 + textpointer Text0127 ; 0x0127 + textpointer Text0128 ; 0x0128 + textpointer Text0129 ; 0x0129 + textpointer Text012a ; 0x012a + textpointer Text012b ; 0x012b + textpointer Text012c ; 0x012c + textpointer Text012d ; 0x012d + textpointer Text012e ; 0x012e + textpointer Text012f ; 0x012f + textpointer Text0130 ; 0x0130 + textpointer Text0131 ; 0x0131 + textpointer Text0132 ; 0x0132 + textpointer Text0133 ; 0x0133 + textpointer Text0134 ; 0x0134 + textpointer Text0135 ; 0x0135 + textpointer Text0136 ; 0x0136 + textpointer Text0137 ; 0x0137 + textpointer Text0138 ; 0x0138 + textpointer Text0139 ; 0x0139 + textpointer Text013a ; 0x013a + textpointer Text013b ; 0x013b + textpointer Text013c ; 0x013c + textpointer Text013d ; 0x013d + textpointer Text013e ; 0x013e + textpointer Text013f ; 0x013f + textpointer Text0140 ; 0x0140 + textpointer Text0141 ; 0x0141 + textpointer Text0142 ; 0x0142 + textpointer Text0143 ; 0x0143 + textpointer Text0144 ; 0x0144 + textpointer Text0145 ; 0x0145 + textpointer Text0146 ; 0x0146 + textpointer Text0147 ; 0x0147 + textpointer Text0148 ; 0x0148 + textpointer Text0149 ; 0x0149 + textpointer WasUnsuccessfulText ; 0x014a + textpointer Text014b ; 0x014b + textpointer Text014c ; 0x014c + textpointer Text014d ; 0x014d + textpointer Text014e ; 0x014e + textpointer Text014f ; 0x014f + textpointer Text0150 ; 0x0150 + textpointer Text0151 ; 0x0151 + textpointer Text0152 ; 0x0152 + textpointer Text0153 ; 0x0153 + textpointer Text0154 ; 0x0154 + textpointer Text0155 ; 0x0155 + textpointer Text0156 ; 0x0156 + textpointer Text0157 ; 0x0157 + textpointer Text0158 ; 0x0158 + textpointer Text0159 ; 0x0159 + textpointer Text015a ; 0x015a + textpointer Text015b ; 0x015b + textpointer Text015c ; 0x015c + textpointer Text015d ; 0x015d + textpointer Text015e ; 0x015e + textpointer Text015f ; 0x015f + textpointer Text0160 ; 0x0160 + textpointer Text0161 ; 0x0161 + textpointer Text0162 ; 0x0162 + textpointer Text0163 ; 0x0163 + textpointer Text0164 ; 0x0164 + textpointer Text0165 ; 0x0165 + textpointer Text0166 ; 0x0166 + textpointer Text0167 ; 0x0167 + textpointer Text0168 ; 0x0168 + textpointer Text0169 ; 0x0169 + textpointer Text016a ; 0x016a + textpointer Text016b ; 0x016b + textpointer Text016c ; 0x016c + textpointer Text016d ; 0x016d + textpointer Text016e ; 0x016e + textpointer Text016f ; 0x016f + textpointer Text0170 ; 0x0170 + textpointer Text0171 ; 0x0171 + textpointer Text0172 ; 0x0172 + textpointer Text0173 ; 0x0173 + textpointer Text0174 ; 0x0174 + textpointer Text0175 ; 0x0175 + textpointer Text0176 ; 0x0176 + textpointer Text0177 ; 0x0177 + textpointer Text0178 ; 0x0178 + textpointer Text0179 ; 0x0179 + textpointer Text017a ; 0x017a + textpointer Text017b ; 0x017b + textpointer Text017c ; 0x017c + textpointer Text017d ; 0x017d + textpointer Text017e ; 0x017e + textpointer Text017f ; 0x017f + textpointer Text0180 ; 0x0180 + textpointer Text0181 ; 0x0181 + textpointer Text0182 ; 0x0182 + textpointer Text0183 ; 0x0183 + textpointer Text0184 ; 0x0184 + textpointer Text0185 ; 0x0185 + textpointer Text0186 ; 0x0186 + textpointer Text0187 ; 0x0187 + textpointer Text0188 ; 0x0188 + textpointer Text0189 ; 0x0189 + textpointer Text018a ; 0x018a + textpointer Text018b ; 0x018b + textpointer Text018c ; 0x018c + textpointer Text018d ; 0x018d + textpointer Text018e ; 0x018e + textpointer ReceivedCardText ; 0x018f + textpointer ReceivedPromotionalCardText ; 0x0190 + textpointer ReceivedLegendaryCardText ; 0x0191 + textpointer ReceivedPromotionalFlyingPikachuText ; 0x0192 + textpointer ReceivedPromotionalSurfingPikachuText ; 0x0193 + textpointer Text0194 ; 0x0194 + textpointer Text0195 ; 0x0195 + textpointer Text0196 ; 0x0196 + textpointer Text0197 ; 0x0197 + textpointer Text0198 ; 0x0198 + textpointer Text0199 ; 0x0199 + textpointer Text019a ; 0x019a + textpointer Text019b ; 0x019b + textpointer Text019c ; 0x019c + textpointer Text019d ; 0x019d + textpointer Text019e ; 0x019e + textpointer Text019f ; 0x019f + textpointer Text01a0 ; 0x01a0 + textpointer Text01a1 ; 0x01a1 + textpointer Text01a2 ; 0x01a2 + textpointer Text01a3 ; 0x01a3 + textpointer Text01a4 ; 0x01a4 + textpointer Text01a5 ; 0x01a5 + textpointer Text01a6 ; 0x01a6 + textpointer Text01a7 ; 0x01a7 + textpointer Text01a8 ; 0x01a8 + textpointer Text01a9 ; 0x01a9 + textpointer Text01aa ; 0x01aa + textpointer Text01ab ; 0x01ab + textpointer Text01ac ; 0x01ac + textpointer Text01ad ; 0x01ad + textpointer Text01ae ; 0x01ae + textpointer Text01af ; 0x01af + textpointer Text01b0 ; 0x01b0 + textpointer Text01b1 ; 0x01b1 + textpointer Text01b2 ; 0x01b2 + textpointer Text01b3 ; 0x01b3 + textpointer Text01b4 ; 0x01b4 + textpointer Text01b5 ; 0x01b5 + textpointer Text01b6 ; 0x01b6 + textpointer Text01b7 ; 0x01b7 + textpointer Text01b8 ; 0x01b8 + textpointer Text01b9 ; 0x01b9 + textpointer Text01ba ; 0x01ba + textpointer Text01bb ; 0x01bb + textpointer Text01bc ; 0x01bc + textpointer Text01bd ; 0x01bd + textpointer Text01be ; 0x01be + textpointer Text01bf ; 0x01bf + textpointer Text01c0 ; 0x01c0 + textpointer Text01c1 ; 0x01c1 + textpointer Text01c2 ; 0x01c2 + textpointer Text01c3 ; 0x01c3 + textpointer Text01c4 ; 0x01c4 + textpointer Text01c5 ; 0x01c5 + textpointer Text01c6 ; 0x01c6 + textpointer Text01c7 ; 0x01c7 + textpointer Text01c8 ; 0x01c8 + textpointer Text01c9 ; 0x01c9 + textpointer Text01ca ; 0x01ca + textpointer Text01cb ; 0x01cb + textpointer Text01cc ; 0x01cc + textpointer Text01cd ; 0x01cd + textpointer Text01ce ; 0x01ce + textpointer Text01cf ; 0x01cf + textpointer Text01d0 ; 0x01d0 + textpointer Text01d1 ; 0x01d1 + textpointer Text01d2 ; 0x01d2 + textpointer Text01d3 ; 0x01d3 + textpointer Text01d4 ; 0x01d4 + textpointer Text01d5 ; 0x01d5 + textpointer Text01d6 ; 0x01d6 + textpointer Text01d7 ; 0x01d7 + textpointer Text01d8 ; 0x01d8 + textpointer Text01d9 ; 0x01d9 + textpointer Text01da ; 0x01da + textpointer Text01db ; 0x01db + textpointer Text01dc ; 0x01dc + textpointer Text01dd ; 0x01dd + textpointer PracticePlayerDeckName ; 0x01de + textpointer SamsPracticeDeckName ; 0x01df + textpointer CharmanderAndFriendsDeckName ; 0x01e0 + textpointer CharmanderExtraDeckName ; 0x01e1 + textpointer SquirtleAndFriendsDeckName ; 0x01e2 + textpointer SquirtleExtraDeckName ; 0x01e3 + textpointer BulbasaurAndFriendsDeckName ; 0x01e4 + textpointer BulbasaurExtraDeckName ; 0x01e5 + textpointer FirstStrikeDeckName ; 0x01e6 + textpointer RockCrusherDeckName ; 0x01e7 + textpointer GoGoRainDanceDeckName ; 0x01e8 + textpointer ZappingSelfdestructDeckName ; 0x01e9 + textpointer FlowerPowerDeckName ; 0x01ea + textpointer StrangePsyshockDeckName ; 0x01eb + textpointer WondersofScienceDeckName ; 0x01ec + textpointer FireChargeDeckName ; 0x01ed + textpointer LegendaryMoltresDeckName ; 0x01ee + textpointer LegendaryZapdosDeckName ; 0x01ef + textpointer LegendaryArticunoDeckName ; 0x01f0 + textpointer LegendaryDragoniteDeckName ; 0x01f1 + textpointer ImRonaldDeckName ; 0x01f2 + textpointer PowerfulRonaldDeckName ; 0x01f3 + textpointer InvincibleRonaldDeckName ; 0x01f4 + textpointer LegendaryRonaldDeckName ; 0x01f5 + textpointer WaterfrontPokemonDeckName ; 0x01f6 + textpointer LonelyFriendsDeckName ; 0x01f7 + textpointer SoundoftheWavesDeckName ; 0x01f8 + textpointer AngerDeckName ; 0x01f9 + textpointer FlamethrowerDeckName ; 0x01fa + textpointer ReshuffleDeckName ; 0x01fb + textpointer ExcavationDeckName ; 0x01fc + textpointer BlisteringPokemonDeckName ; 0x01fd + textpointer HardPokemonDeckName ; 0x01fe + textpointer EtceteraDeckName ; 0x01ff + textpointer FlowerGardenDeckName ; 0x0200 + textpointer KaleidoscopeDeckName ; 0x0201 + textpointer MusclesforBrainsDeckName ; 0x0202 + textpointer HeatedBattleDeckName ; 0x0203 + textpointer LovetoBattleDeckName ; 0x0204 + textpointer PikachuDeckName ; 0x0205 + textpointer BoomBoomSelfdestructDeckName ; 0x0206 + textpointer PowerGeneratorDeckName ; 0x0207 + textpointer GhostDeckName ; 0x0208 + textpointer NapTimeDeckName ; 0x0209 + textpointer StrangePowerDeckName ; 0x020a + textpointer FlyinPokemonDeckName ; 0x020b + textpointer LovelyNidoranDeckName ; 0x020c + textpointer PoisonDeckName ; 0x020d + textpointer ImakuniDeckName ; 0x020e + textpointer LightningAndFireDeckName ; 0x020f + textpointer WaterAndFightingDeckName ; 0x0210 + textpointer GrassAndPsychicDeckName ; 0x0211 + textpointer Text0212 ; 0x0212 + textpointer Text0213 ; 0x0213 + textpointer Text0214 ; 0x0214 + textpointer Text0215 ; 0x0215 + textpointer Text0216 ; 0x0216 + textpointer Text0217 ; 0x0217 + textpointer Text0218 ; 0x0218 + textpointer Text0219 ; 0x0219 + textpointer Text021a ; 0x021a + textpointer Text021b ; 0x021b + textpointer Text021c ; 0x021c + textpointer Text021d ; 0x021d + textpointer Text021e ; 0x021e + textpointer Text021f ; 0x021f + textpointer Text0220 ; 0x0220 + textpointer Text0221 ; 0x0221 + textpointer Text0222 ; 0x0222 + textpointer NewDeckText ; 0x0223 + textpointer PleaseSelectDeckText ; 0x0224 + textpointer Text0225 ; 0x0225 + textpointer Text0226 ; 0x0226 + textpointer Text0227 ; 0x0227 + textpointer Text0228 ; 0x0228 + textpointer Text0229 ; 0x0229 + textpointer ChosenAsDuelingDeckText ; 0x022a + textpointer Text022b ; 0x022b + textpointer Text022c ; 0x022c + textpointer Text022d ; 0x022d + textpointer Text022e ; 0x022e + textpointer ThereIsNoDeckHereText ; 0x022f + textpointer Text0230 ; 0x0230 + textpointer Text0231 ; 0x0231 + textpointer Text0232 ; 0x0232 + textpointer Text0233 ; 0x0233 + textpointer Text0234 ; 0x0234 + textpointer Text0235 ; 0x0235 + textpointer Text0236 ; 0x0236 + textpointer Text0237 ; 0x0237 + textpointer Text0238 ; 0x0238 + textpointer Text0239 ; 0x0239 + textpointer Text023a ; 0x023a + textpointer Text023b ; 0x023b + textpointer Text023c ; 0x023c + textpointer Text023d ; 0x023d + textpointer Text023e ; 0x023e + textpointer Text023f ; 0x023f + textpointer Text0240 ; 0x0240 + textpointer Text0241 ; 0x0241 + textpointer Text0242 ; 0x0242 + textpointer Text0243 ; 0x0243 + textpointer Text0244 ; 0x0244 + textpointer Text0245 ; 0x0245 + textpointer Text0246 ; 0x0246 + textpointer Text0247 ; 0x0247 + textpointer Text0248 ; 0x0248 + textpointer Text0249 ; 0x0249 + textpointer Text024a ; 0x024a + textpointer Text024b ; 0x024b + textpointer Text024c ; 0x024c + textpointer Text024d ; 0x024d + textpointer Text024e ; 0x024e + textpointer Text024f ; 0x024f + textpointer Text0250 ; 0x0250 + textpointer Text0251 ; 0x0251 + textpointer Text0252 ; 0x0252 + textpointer Text0253 ; 0x0253 + textpointer Text0254 ; 0x0254 + textpointer Text0255 ; 0x0255 + textpointer Text0256 ; 0x0256 + textpointer Text0257 ; 0x0257 + textpointer Text0258 ; 0x0258 + textpointer Text0259 ; 0x0259 + textpointer Text025a ; 0x025a + textpointer Text025b ; 0x025b + textpointer Text025c ; 0x025c + textpointer Text025d ; 0x025d + textpointer Text025e ; 0x025e + textpointer Text025f ; 0x025f + textpointer Text0260 ; 0x0260 + textpointer Text0261 ; 0x0261 + textpointer Text0262 ; 0x0262 + textpointer Text0263 ; 0x0263 + textpointer Text0264 ; 0x0264 + textpointer Text0265 ; 0x0265 + textpointer Text0266 ; 0x0266 + textpointer Text0267 ; 0x0267 + textpointer Text0268 ; 0x0268 + textpointer Text0269 ; 0x0269 + textpointer Text026a ; 0x026a + textpointer Text026b ; 0x026b + textpointer Text026c ; 0x026c + textpointer Text026d ; 0x026d + textpointer Text026e ; 0x026e + textpointer Text026f ; 0x026f + textpointer Text0270 ; 0x0270 + textpointer Text0271 ; 0x0271 + textpointer Text0272 ; 0x0272 + textpointer Text0273 ; 0x0273 + textpointer Text0274 ; 0x0274 + textpointer Text0275 ; 0x0275 + textpointer Text0276 ; 0x0276 + textpointer Text0277 ; 0x0277 + textpointer Text0278 ; 0x0278 + textpointer Text0279 ; 0x0279 + textpointer Text027a ; 0x027a + textpointer Text027b ; 0x027b + textpointer Text027c ; 0x027c + textpointer Text027d ; 0x027d + textpointer Text027e ; 0x027e + textpointer Text027f ; 0x027f + textpointer Text0280 ; 0x0280 + textpointer Text0281 ; 0x0281 + textpointer Text0282 ; 0x0282 + textpointer Text0283 ; 0x0283 + textpointer Text0284 ; 0x0284 + textpointer Text0285 ; 0x0285 + textpointer Text0286 ; 0x0286 + textpointer Text0287 ; 0x0287 + textpointer Text0288 ; 0x0288 + textpointer Text0289 ; 0x0289 + textpointer Text028a ; 0x028a + textpointer Text028b ; 0x028b + textpointer Text028c ; 0x028c + textpointer Text028d ; 0x028d + textpointer Text028e ; 0x028e + textpointer Text028f ; 0x028f + textpointer Text0290 ; 0x0290 + textpointer Text0291 ; 0x0291 + textpointer Text0292 ; 0x0292 + textpointer Text0293 ; 0x0293 + textpointer Text0294 ; 0x0294 + textpointer Text0295 ; 0x0295 + textpointer Text0296 ; 0x0296 + textpointer Text0297 ; 0x0297 + textpointer Text0298 ; 0x0298 + textpointer Text0299 ; 0x0299 + textpointer Text029a ; 0x029a + textpointer Text029b ; 0x029b + textpointer Text029c ; 0x029c + textpointer Text029d ; 0x029d + textpointer Text029e ; 0x029e + textpointer Text029f ; 0x029f + textpointer Text02a0 ; 0x02a0 + textpointer Text02a1 ; 0x02a1 + textpointer Text02a2 ; 0x02a2 + textpointer Text02a3 ; 0x02a3 + textpointer Text02a4 ; 0x02a4 + textpointer Text02a5 ; 0x02a5 + textpointer Text02a6 ; 0x02a6 + textpointer Text02a7 ; 0x02a7 + textpointer Text02a8 ; 0x02a8 + textpointer Text02a9 ; 0x02a9 + textpointer Text02aa ; 0x02aa + textpointer Text02ab ; 0x02ab + textpointer Text02ac ; 0x02ac + textpointer Text02ad ; 0x02ad + textpointer Text02ae ; 0x02ae + textpointer Text02af ; 0x02af + textpointer Text02b0 ; 0x02b0 + textpointer Text02b1 ; 0x02b1 + textpointer Text02b2 ; 0x02b2 + textpointer Text02b3 ; 0x02b3 + textpointer Text02b4 ; 0x02b4 + textpointer Text02b5 ; 0x02b5 + textpointer Text02b6 ; 0x02b6 + textpointer Text02b7 ; 0x02b7 + textpointer Text02b8 ; 0x02b8 + textpointer Text02b9 ; 0x02b9 + textpointer Text02ba ; 0x02ba + textpointer Text02bb ; 0x02bb + textpointer Text02bc ; 0x02bc + textpointer Text02bd ; 0x02bd + textpointer Text02be ; 0x02be + textpointer Text02bf ; 0x02bf + textpointer Text02c0 ; 0x02c0 + textpointer Text02c1 ; 0x02c1 + textpointer Text02c2 ; 0x02c2 + textpointer Text02c3 ; 0x02c3 + textpointer Text02c4 ; 0x02c4 + textpointer Text02c5 ; 0x02c5 + textpointer Text02c6 ; 0x02c6 + textpointer Text02c7 ; 0x02c7 + textpointer Text02c8 ; 0x02c8 + textpointer Text02c9 ; 0x02c9 + textpointer Text02ca ; 0x02ca + textpointer Text02cb ; 0x02cb + textpointer Text02cc ; 0x02cc + textpointer Text02cd ; 0x02cd + textpointer Text02ce ; 0x02ce + textpointer Text02cf ; 0x02cf + textpointer Text02d0 ; 0x02d0 + textpointer Text02d1 ; 0x02d1 + textpointer Text02d2 ; 0x02d2 + textpointer Text02d3 ; 0x02d3 + textpointer Text02d4 ; 0x02d4 + textpointer Text02d5 ; 0x02d5 + textpointer Text02d6 ; 0x02d6 + textpointer Text02d7 ; 0x02d7 + textpointer Text02d8 ; 0x02d8 + textpointer Text02d9 ; 0x02d9 + textpointer Text02da ; 0x02da + textpointer Text02db ; 0x02db + textpointer Text02dc ; 0x02dc + textpointer Text02dd ; 0x02dd + textpointer Text02de ; 0x02de + textpointer Text02df ; 0x02df + textpointer Text02e0 ; 0x02e0 + textpointer Text02e1 ; 0x02e1 + textpointer Text02e2 ; 0x02e2 + textpointer Text02e3 ; 0x02e3 + textpointer Text02e4 ; 0x02e4 + textpointer Text02e5 ; 0x02e5 + textpointer Text02e6 ; 0x02e6 + textpointer Text02e7 ; 0x02e7 + textpointer Text02e8 ; 0x02e8 + textpointer Text02e9 ; 0x02e9 + textpointer Text02ea ; 0x02ea + textpointer Text02eb ; 0x02eb + textpointer Text02ec ; 0x02ec + textpointer Text02ed ; 0x02ed + textpointer Text02ee ; 0x02ee + textpointer Text02ef ; 0x02ef + textpointer Text02f0 ; 0x02f0 + textpointer Text02f1 ; 0x02f1 + textpointer Text02f2 ; 0x02f2 + textpointer Text02f3 ; 0x02f3 + textpointer Text02f4 ; 0x02f4 + textpointer Text02f5 ; 0x02f5 + textpointer Text02f6 ; 0x02f6 + textpointer Text02f7 ; 0x02f7 + textpointer Text02f8 ; 0x02f8 + textpointer Text02f9 ; 0x02f9 + textpointer Text02fa ; 0x02fa + textpointer Text02fb ; 0x02fb + textpointer Text02fc ; 0x02fc + textpointer Text02fd ; 0x02fd + textpointer Text02fe ; 0x02fe + textpointer Text02ff ; 0x02ff + textpointer Text0300 ; 0x0300 + textpointer Text0301 ; 0x0301 + textpointer Text0302 ; 0x0302 + textpointer Text0303 ; 0x0303 + textpointer Text0304 ; 0x0304 + textpointer Text0305 ; 0x0305 + textpointer Text0306 ; 0x0306 + textpointer Text0307 ; 0x0307 + textpointer Text0308 ; 0x0308 + textpointer Text0309 ; 0x0309 + textpointer Text030a ; 0x030a + textpointer Text030b ; 0x030b + textpointer Text030c ; 0x030c + textpointer Text030d ; 0x030d + textpointer Text030e ; 0x030e + textpointer Text030f ; 0x030f + textpointer Text0310 ; 0x0310 + textpointer Text0311 ; 0x0311 + textpointer Text0312 ; 0x0312 + textpointer Text0313 ; 0x0313 + textpointer Text0314 ; 0x0314 + textpointer Text0315 ; 0x0315 + textpointer Text0316 ; 0x0316 + textpointer Text0317 ; 0x0317 + textpointer Text0318 ; 0x0318 + textpointer Text0319 ; 0x0319 + textpointer Text031a ; 0x031a + textpointer Text031b ; 0x031b + textpointer Text031c ; 0x031c + textpointer Text031d ; 0x031d + textpointer Text031e ; 0x031e + textpointer Text031f ; 0x031f + textpointer Text0320 ; 0x0320 + textpointer Text0321 ; 0x0321 + textpointer Text0322 ; 0x0322 + textpointer Text0323 ; 0x0323 + textpointer Text0324 ; 0x0324 + textpointer Text0325 ; 0x0325 + textpointer Text0326 ; 0x0326 + textpointer Text0327 ; 0x0327 + textpointer Text0328 ; 0x0328 + textpointer Text0329 ; 0x0329 + textpointer Text032a ; 0x032a + textpointer Text032b ; 0x032b + textpointer Text032c ; 0x032c + textpointer Text032d ; 0x032d + textpointer Text032e ; 0x032e + textpointer Text032f ; 0x032f + textpointer Text0330 ; 0x0330 + textpointer Text0331 ; 0x0331 + textpointer Text0332 ; 0x0332 + textpointer Text0333 ; 0x0333 + textpointer Text0334 ; 0x0334 + textpointer Text0335 ; 0x0335 + textpointer Text0336 ; 0x0336 + textpointer Text0337 ; 0x0337 + textpointer Text0338 ; 0x0338 + textpointer Text0339 ; 0x0339 + textpointer Text033a ; 0x033a + textpointer Text033b ; 0x033b + textpointer Text033c ; 0x033c + textpointer Text033d ; 0x033d + textpointer Text033e ; 0x033e + textpointer Text033f ; 0x033f + textpointer Text0340 ; 0x0340 + textpointer Text0341 ; 0x0341 + textpointer Text0342 ; 0x0342 + textpointer Text0343 ; 0x0343 + textpointer Text0344 ; 0x0344 + textpointer Text0345 ; 0x0345 + textpointer Text0346 ; 0x0346 + textpointer Text0347 ; 0x0347 + textpointer Text0348 ; 0x0348 + textpointer Text0349 ; 0x0349 + textpointer Text034a ; 0x034a + textpointer Text034b ; 0x034b + textpointer Text034c ; 0x034c + textpointer Text034d ; 0x034d + textpointer Text034e ; 0x034e + textpointer Text034f ; 0x034f + textpointer Text0350 ; 0x0350 + textpointer Text0351 ; 0x0351 + textpointer TurnedPCOnText ; 0x0352 + textpointer TurnedPCOffText ; 0x0353 + textpointer Text0354 ; 0x0354 + textpointer Text0355 ; 0x0355 + textpointer Text0356 ; 0x0356 + textpointer Text0357 ; 0x0357 + textpointer Text0358 ; 0x0358 + textpointer Text0359 ; 0x0359 + textpointer Text035a ; 0x035a + textpointer Text035b ; 0x035b + textpointer Text035c ; 0x035c + textpointer Text035d ; 0x035d + textpointer Text035e ; 0x035e + textpointer Text035f ; 0x035f + textpointer Text0360 ; 0x0360 + textpointer Text0361 ; 0x0361 + textpointer Text0362 ; 0x0362 + textpointer Text0363 ; 0x0363 + textpointer Text0364 ; 0x0364 + textpointer Text0365 ; 0x0365 + textpointer Text0366 ; 0x0366 + textpointer Text0367 ; 0x0367 + textpointer Text0368 ; 0x0368 + textpointer Text0369 ; 0x0369 + textpointer Text036a ; 0x036a + textpointer Text036b ; 0x036b + textpointer Text036c ; 0x036c + textpointer Text036d ; 0x036d + textpointer Text036e ; 0x036e + textpointer Text036f ; 0x036f + textpointer Text0370 ; 0x0370 + textpointer Text0371 ; 0x0371 + textpointer Text0372 ; 0x0372 + textpointer Text0373 ; 0x0373 + textpointer Text0374 ; 0x0374 + textpointer Text0375 ; 0x0375 + textpointer Text0376 ; 0x0376 + textpointer Text0377 ; 0x0377 + textpointer Text0378 ; 0x0378 + textpointer Text0379 ; 0x0379 + textpointer Text037a ; 0x037a + textpointer Text037b ; 0x037b + textpointer Text037c ; 0x037c + textpointer Text037d ; 0x037d + textpointer Text037e ; 0x037e + textpointer Text037f ; 0x037f + textpointer Text0380 ; 0x0380 + textpointer Text0381 ; 0x0381 + textpointer Text0382 ; 0x0382 + textpointer Text0383 ; 0x0383 + textpointer Text0384 ; 0x0384 + textpointer Text0385 ; 0x0385 + textpointer Text0386 ; 0x0386 + textpointer ReceivedBoosterPackText ; 0x0387 + textpointer AndAnotherBoosterPackText ; 0x0388 + textpointer CheckedCardsInBoosterPackText ; 0x0389 + textpointer Text038a ; 0x038a + textpointer WonTheMedalText ; 0x038b + textpointer Text038c ; 0x038c + textpointer Text038d ; 0x038d + textpointer Text038e ; 0x038e + textpointer Text038f ; 0x038f + textpointer Text0390 ; 0x0390 + textpointer Text0391 ; 0x0391 + textpointer Text0392 ; 0x0392 + textpointer Text0393 ; 0x0393 + textpointer Text0394 ; 0x0394 + textpointer Text0395 ; 0x0395 + textpointer Text0396 ; 0x0396 + textpointer Text0397 ; 0x0397 + textpointer Text0398 ; 0x0398 + textpointer Text0399 ; 0x0399 + textpointer Text039a ; 0x039a + textpointer Text039b ; 0x039b + textpointer Text039c ; 0x039c + textpointer Text039d ; 0x039d + textpointer Text039e ; 0x039e + textpointer Text039f ; 0x039f + textpointer Text03a0 ; 0x03a0 + textpointer Text03a1 ; 0x03a1 + textpointer Text03a2 ; 0x03a2 + textpointer Text03a3 ; 0x03a3 + textpointer Text03a4 ; 0x03a4 + textpointer Text03a5 ; 0x03a5 + textpointer Text03a6 ; 0x03a6 + textpointer Text03a7 ; 0x03a7 + textpointer Text03a8 ; 0x03a8 + textpointer Text03a9 ; 0x03a9 + textpointer Text03aa ; 0x03aa + textpointer Text03ab ; 0x03ab + textpointer Text03ac ; 0x03ac + textpointer Text03ad ; 0x03ad + textpointer Text03ae ; 0x03ae + textpointer Text03af ; 0x03af + textpointer Text03b0 ; 0x03b0 + textpointer Text03b1 ; 0x03b1 + textpointer Text03b2 ; 0x03b2 + textpointer Text03b3 ; 0x03b3 + textpointer Text03b4 ; 0x03b4 + textpointer Text03b5 ; 0x03b5 + textpointer Text03b6 ; 0x03b6 + textpointer Text03b7 ; 0x03b7 + textpointer Text03b8 ; 0x03b8 + textpointer Text03b9 ; 0x03b9 + textpointer Text03ba ; 0x03ba + textpointer Text03bb ; 0x03bb + textpointer Text03bc ; 0x03bc + textpointer Text03bd ; 0x03bd + textpointer Text03be ; 0x03be + textpointer Text03bf ; 0x03bf + textpointer Text03c0 ; 0x03c0 + textpointer Text03c1 ; 0x03c1 + textpointer Text03c2 ; 0x03c2 + textpointer Text03c3 ; 0x03c3 + textpointer Text03c4 ; 0x03c4 + textpointer Text03c5 ; 0x03c5 + textpointer Text03c6 ; 0x03c6 + textpointer Text03c7 ; 0x03c7 + textpointer Text03c8 ; 0x03c8 + textpointer Text03c9 ; 0x03c9 + textpointer Text03ca ; 0x03ca + textpointer Text03cb ; 0x03cb + textpointer Text03cc ; 0x03cc + textpointer Text03cd ; 0x03cd + textpointer Text03ce ; 0x03ce + textpointer Text03cf ; 0x03cf + textpointer Text03d0 ; 0x03d0 + textpointer Text03d1 ; 0x03d1 + textpointer Text03d2 ; 0x03d2 + textpointer Text03d3 ; 0x03d3 + textpointer Text03d4 ; 0x03d4 + textpointer Text03d5 ; 0x03d5 + textpointer Text03d6 ; 0x03d6 + textpointer Text03d7 ; 0x03d7 + textpointer Text03d8 ; 0x03d8 + textpointer Text03d9 ; 0x03d9 + textpointer Text03da ; 0x03da + textpointer Text03db ; 0x03db + textpointer Text03dc ; 0x03dc + textpointer Text03dd ; 0x03dd + textpointer Text03de ; 0x03de + textpointer Text03df ; 0x03df + textpointer Text03e0 ; 0x03e0 + textpointer Text03e1 ; 0x03e1 + textpointer Text03e2 ; 0x03e2 + textpointer Text03e3 ; 0x03e3 + textpointer Text03e4 ; 0x03e4 + textpointer Text03e5 ; 0x03e5 + textpointer Text03e6 ; 0x03e6 + textpointer Text03e7 ; 0x03e7 + textpointer Text03e8 ; 0x03e8 + textpointer Text03e9 ; 0x03e9 + textpointer Text03ea ; 0x03ea + textpointer Text03eb ; 0x03eb + textpointer Text03ec ; 0x03ec + textpointer Text03ed ; 0x03ed + textpointer Text03ee ; 0x03ee + textpointer Text03ef ; 0x03ef + textpointer Text03f0 ; 0x03f0 + textpointer Text03f1 ; 0x03f1 + textpointer Text03f2 ; 0x03f2 + textpointer Text03f3 ; 0x03f3 + textpointer Text03f4 ; 0x03f4 + textpointer Text03f5 ; 0x03f5 + textpointer Text03f6 ; 0x03f6 + textpointer Text03f7 ; 0x03f7 + textpointer Text03f8 ; 0x03f8 + textpointer Text03f9 ; 0x03f9 + textpointer Text03fa ; 0x03fa + textpointer Text03fb ; 0x03fb + textpointer Text03fc ; 0x03fc + textpointer Text03fd ; 0x03fd + textpointer Text03fe ; 0x03fe + textpointer Text03ff ; 0x03ff + textpointer Text0400 ; 0x0400 + textpointer Text0401 ; 0x0401 + textpointer Text0402 ; 0x0402 + textpointer Text0403 ; 0x0403 + textpointer Text0404 ; 0x0404 + textpointer Text0405 ; 0x0405 + textpointer Text0406 ; 0x0406 + textpointer Text0407 ; 0x0407 + textpointer Text0408 ; 0x0408 + textpointer Text0409 ; 0x0409 + textpointer Text040a ; 0x040a + textpointer Text040b ; 0x040b + textpointer Text040c ; 0x040c + textpointer Text040d ; 0x040d + textpointer Text040e ; 0x040e + textpointer Text040f ; 0x040f + textpointer Text0410 ; 0x0410 + textpointer Text0411 ; 0x0411 + textpointer Text0412 ; 0x0412 + textpointer Text0413 ; 0x0413 + textpointer Text0414 ; 0x0414 + textpointer Text0415 ; 0x0415 + textpointer Text0416 ; 0x0416 + textpointer Text0417 ; 0x0417 + textpointer Text0418 ; 0x0418 + textpointer Text0419 ; 0x0419 + textpointer Text041a ; 0x041a + textpointer Text041b ; 0x041b + textpointer Text041c ; 0x041c + textpointer Text041d ; 0x041d + textpointer Text041e ; 0x041e + textpointer Text041f ; 0x041f + textpointer Text0420 ; 0x0420 + textpointer Text0421 ; 0x0421 + textpointer Text0422 ; 0x0422 + textpointer Text0423 ; 0x0423 + textpointer Text0424 ; 0x0424 + textpointer Text0425 ; 0x0425 + textpointer Text0426 ; 0x0426 + textpointer Text0427 ; 0x0427 + textpointer Text0428 ; 0x0428 + textpointer Text0429 ; 0x0429 + textpointer Text042a ; 0x042a + textpointer Text042b ; 0x042b + textpointer Text042c ; 0x042c + textpointer Text042d ; 0x042d + textpointer Text042e ; 0x042e + textpointer Text042f ; 0x042f + textpointer Text0430 ; 0x0430 + textpointer Text0431 ; 0x0431 + textpointer Text0432 ; 0x0432 + textpointer Text0433 ; 0x0433 + textpointer Text0434 ; 0x0434 + textpointer Text0435 ; 0x0435 + textpointer Text0436 ; 0x0436 + textpointer Text0437 ; 0x0437 + textpointer Text0438 ; 0x0438 + textpointer Text0439 ; 0x0439 + textpointer Text043a ; 0x043a + textpointer Text043b ; 0x043b + textpointer Text043c ; 0x043c + textpointer Text043d ; 0x043d + textpointer Text043e ; 0x043e + textpointer Text043f ; 0x043f + textpointer Text0440 ; 0x0440 + textpointer Text0441 ; 0x0441 + textpointer Text0442 ; 0x0442 + textpointer Text0443 ; 0x0443 + textpointer Text0444 ; 0x0444 + textpointer Text0445 ; 0x0445 + textpointer Text0446 ; 0x0446 + textpointer Text0447 ; 0x0447 + textpointer Text0448 ; 0x0448 + textpointer Text0449 ; 0x0449 + textpointer Text044a ; 0x044a + textpointer Text044b ; 0x044b + textpointer Text044c ; 0x044c + textpointer Text044d ; 0x044d + textpointer Text044e ; 0x044e + textpointer Text044f ; 0x044f + textpointer Text0450 ; 0x0450 + textpointer Text0451 ; 0x0451 + textpointer Text0452 ; 0x0452 + textpointer Text0453 ; 0x0453 + textpointer Text0454 ; 0x0454 + textpointer Text0455 ; 0x0455 + textpointer Text0456 ; 0x0456 + textpointer Text0457 ; 0x0457 + textpointer Text0458 ; 0x0458 + textpointer Text0459 ; 0x0459 + textpointer Text045a ; 0x045a + textpointer Text045b ; 0x045b + textpointer Text045c ; 0x045c + textpointer Text045d ; 0x045d + textpointer Text045e ; 0x045e + textpointer Text045f ; 0x045f + textpointer Text0460 ; 0x0460 + textpointer Text0461 ; 0x0461 + textpointer Text0462 ; 0x0462 + textpointer Text0463 ; 0x0463 + textpointer Text0464 ; 0x0464 + textpointer Text0465 ; 0x0465 + textpointer Text0466 ; 0x0466 + textpointer Text0467 ; 0x0467 + textpointer Text0468 ; 0x0468 + textpointer Text0469 ; 0x0469 + textpointer Text046a ; 0x046a + textpointer Text046b ; 0x046b + textpointer Text046c ; 0x046c + textpointer Text046d ; 0x046d + textpointer Text046e ; 0x046e + textpointer Text046f ; 0x046f + textpointer Text0470 ; 0x0470 + textpointer Text0471 ; 0x0471 + textpointer Text0472 ; 0x0472 + textpointer Text0473 ; 0x0473 + textpointer Text0474 ; 0x0474 + textpointer Text0475 ; 0x0475 + textpointer Text0476 ; 0x0476 + textpointer Text0477 ; 0x0477 + textpointer Text0478 ; 0x0478 + textpointer Text0479 ; 0x0479 + textpointer Text047a ; 0x047a + textpointer Text047b ; 0x047b + textpointer Text047c ; 0x047c + textpointer Text047d ; 0x047d + textpointer Text047e ; 0x047e + textpointer Text047f ; 0x047f + textpointer Text0480 ; 0x0480 + textpointer Text0481 ; 0x0481 + textpointer Text0482 ; 0x0482 + textpointer Text0483 ; 0x0483 + textpointer Text0484 ; 0x0484 + textpointer Text0485 ; 0x0485 + textpointer Text0486 ; 0x0486 + textpointer Text0487 ; 0x0487 + textpointer Text0488 ; 0x0488 + textpointer Text0489 ; 0x0489 + textpointer Text048a ; 0x048a + textpointer Text048b ; 0x048b + textpointer Text048c ; 0x048c + textpointer Text048d ; 0x048d + textpointer Text048e ; 0x048e + textpointer Text048f ; 0x048f + textpointer Text0490 ; 0x0490 + textpointer Text0491 ; 0x0491 + textpointer Text0492 ; 0x0492 + textpointer Text0493 ; 0x0493 + textpointer Text0494 ; 0x0494 + textpointer Text0495 ; 0x0495 + textpointer Text0496 ; 0x0496 + textpointer Text0497 ; 0x0497 + textpointer Text0498 ; 0x0498 + textpointer Text0499 ; 0x0499 + textpointer Text049a ; 0x049a + textpointer Text049b ; 0x049b + textpointer Text049c ; 0x049c + textpointer Text049d ; 0x049d + textpointer Text049e ; 0x049e + textpointer Text049f ; 0x049f + textpointer Text04a0 ; 0x04a0 + textpointer Text04a1 ; 0x04a1 + textpointer Text04a2 ; 0x04a2 + textpointer Text04a3 ; 0x04a3 + textpointer Text04a4 ; 0x04a4 + textpointer Text04a5 ; 0x04a5 + textpointer Text04a6 ; 0x04a6 + textpointer Text04a7 ; 0x04a7 + textpointer Text04a8 ; 0x04a8 + textpointer Text04a9 ; 0x04a9 + textpointer Text04aa ; 0x04aa + textpointer Text04ab ; 0x04ab + textpointer Text04ac ; 0x04ac + textpointer Text04ad ; 0x04ad + textpointer Text04ae ; 0x04ae + textpointer Text04af ; 0x04af + textpointer Text04b0 ; 0x04b0 + textpointer Text04b1 ; 0x04b1 + textpointer Text04b2 ; 0x04b2 + textpointer Text04b3 ; 0x04b3 + textpointer Text04b4 ; 0x04b4 + textpointer Text04b5 ; 0x04b5 + textpointer Text04b6 ; 0x04b6 + textpointer Text04b7 ; 0x04b7 + textpointer Text04b8 ; 0x04b8 + textpointer Text04b9 ; 0x04b9 + textpointer Text04ba ; 0x04ba + textpointer Text04bb ; 0x04bb + textpointer Text04bc ; 0x04bc + textpointer Text04bd ; 0x04bd + textpointer Text04be ; 0x04be + textpointer Text04bf ; 0x04bf + textpointer Text04c0 ; 0x04c0 + textpointer Text04c1 ; 0x04c1 + textpointer Text04c2 ; 0x04c2 + textpointer Text04c3 ; 0x04c3 + textpointer Text04c4 ; 0x04c4 + textpointer Text04c5 ; 0x04c5 + textpointer Text04c6 ; 0x04c6 + textpointer Text04c7 ; 0x04c7 + textpointer Text04c8 ; 0x04c8 + textpointer Text04c9 ; 0x04c9 + textpointer Text04ca ; 0x04ca + textpointer Text04cb ; 0x04cb + textpointer Text04cc ; 0x04cc + textpointer Text04cd ; 0x04cd + textpointer Text04ce ; 0x04ce + textpointer Text04cf ; 0x04cf + textpointer Text04d0 ; 0x04d0 + textpointer Text04d1 ; 0x04d1 + textpointer Text04d2 ; 0x04d2 + textpointer Text04d3 ; 0x04d3 + textpointer Text04d4 ; 0x04d4 + textpointer Text04d5 ; 0x04d5 + textpointer Text04d6 ; 0x04d6 + textpointer Text04d7 ; 0x04d7 + textpointer Text04d8 ; 0x04d8 + textpointer Text04d9 ; 0x04d9 + textpointer Text04da ; 0x04da + textpointer Text04db ; 0x04db + textpointer Text04dc ; 0x04dc + textpointer Text04dd ; 0x04dd + textpointer Text04de ; 0x04de + textpointer Text04df ; 0x04df + textpointer Text04e0 ; 0x04e0 + textpointer Text04e1 ; 0x04e1 + textpointer Text04e2 ; 0x04e2 + textpointer Text04e3 ; 0x04e3 + textpointer Text04e4 ; 0x04e4 + textpointer Text04e5 ; 0x04e5 + textpointer Text04e6 ; 0x04e6 + textpointer Text04e7 ; 0x04e7 + textpointer Text04e8 ; 0x04e8 + textpointer Text04e9 ; 0x04e9 + textpointer Text04ea ; 0x04ea + textpointer Text04eb ; 0x04eb + textpointer Text04ec ; 0x04ec + textpointer Text04ed ; 0x04ed + textpointer Text04ee ; 0x04ee + textpointer Text04ef ; 0x04ef + textpointer Text04f0 ; 0x04f0 + textpointer Text04f1 ; 0x04f1 + textpointer Text04f2 ; 0x04f2 + textpointer Text04f3 ; 0x04f3 + textpointer Text04f4 ; 0x04f4 + textpointer Text04f5 ; 0x04f5 + textpointer Text04f6 ; 0x04f6 + textpointer Text04f7 ; 0x04f7 + textpointer Text04f8 ; 0x04f8 + textpointer Text04f9 ; 0x04f9 + textpointer Text04fa ; 0x04fa + textpointer Text04fb ; 0x04fb + textpointer Text04fc ; 0x04fc + textpointer Text04fd ; 0x04fd + textpointer Text04fe ; 0x04fe + textpointer Text04ff ; 0x04ff + textpointer Text0500 ; 0x0500 + textpointer Text0501 ; 0x0501 + textpointer Text0502 ; 0x0502 + textpointer Text0503 ; 0x0503 + textpointer Text0504 ; 0x0504 + textpointer Text0505 ; 0x0505 + textpointer Text0506 ; 0x0506 + textpointer Text0507 ; 0x0507 + textpointer Text0508 ; 0x0508 + textpointer Text0509 ; 0x0509 + textpointer Text050a ; 0x050a + textpointer Text050b ; 0x050b + textpointer Text050c ; 0x050c + textpointer Text050d ; 0x050d + textpointer Text050e ; 0x050e + textpointer Text050f ; 0x050f + textpointer Text0510 ; 0x0510 + textpointer Text0511 ; 0x0511 + textpointer Text0512 ; 0x0512 + textpointer Text0513 ; 0x0513 + textpointer Text0514 ; 0x0514 + textpointer Text0515 ; 0x0515 + textpointer Text0516 ; 0x0516 + textpointer Text0517 ; 0x0517 + textpointer Text0518 ; 0x0518 + textpointer Text0519 ; 0x0519 + textpointer Text051a ; 0x051a + textpointer Text051b ; 0x051b + textpointer Text051c ; 0x051c + textpointer Text051d ; 0x051d + textpointer Text051e ; 0x051e + textpointer Text051f ; 0x051f + textpointer Text0520 ; 0x0520 + textpointer Text0521 ; 0x0521 + textpointer Text0522 ; 0x0522 + textpointer Text0523 ; 0x0523 + textpointer Text0524 ; 0x0524 + textpointer Text0525 ; 0x0525 + textpointer Text0526 ; 0x0526 + textpointer Text0527 ; 0x0527 + textpointer Text0528 ; 0x0528 + textpointer Text0529 ; 0x0529 + textpointer Text052a ; 0x052a + textpointer Text052b ; 0x052b + textpointer Text052c ; 0x052c + textpointer Text052d ; 0x052d + textpointer Text052e ; 0x052e + textpointer Text052f ; 0x052f + textpointer Text0530 ; 0x0530 + textpointer Text0531 ; 0x0531 + textpointer Text0532 ; 0x0532 + textpointer Text0533 ; 0x0533 + textpointer Text0534 ; 0x0534 + textpointer Text0535 ; 0x0535 + textpointer Text0536 ; 0x0536 + textpointer Text0537 ; 0x0537 + textpointer Text0538 ; 0x0538 + textpointer Text0539 ; 0x0539 + textpointer Text053a ; 0x053a + textpointer Text053b ; 0x053b + textpointer Text053c ; 0x053c + textpointer Text053d ; 0x053d + textpointer Text053e ; 0x053e + textpointer Text053f ; 0x053f + textpointer Text0540 ; 0x0540 + textpointer Text0541 ; 0x0541 + textpointer Text0542 ; 0x0542 + textpointer Text0543 ; 0x0543 + textpointer Text0544 ; 0x0544 + textpointer Text0545 ; 0x0545 + textpointer Text0546 ; 0x0546 + textpointer Text0547 ; 0x0547 + textpointer Text0548 ; 0x0548 + textpointer Text0549 ; 0x0549 + textpointer Text054a ; 0x054a + textpointer Text054b ; 0x054b + textpointer Text054c ; 0x054c + textpointer Text054d ; 0x054d + textpointer Text054e ; 0x054e + textpointer Text054f ; 0x054f + textpointer Text0550 ; 0x0550 + textpointer Text0551 ; 0x0551 + textpointer Text0552 ; 0x0552 + textpointer Text0553 ; 0x0553 + textpointer Text0554 ; 0x0554 + textpointer Text0555 ; 0x0555 + textpointer Text0556 ; 0x0556 + textpointer Text0557 ; 0x0557 + textpointer Text0558 ; 0x0558 + textpointer Text0559 ; 0x0559 + textpointer Text055a ; 0x055a + textpointer Text055b ; 0x055b + textpointer Text055c ; 0x055c + textpointer Text055d ; 0x055d + textpointer Text055e ; 0x055e + textpointer Text055f ; 0x055f + textpointer Text0560 ; 0x0560 + textpointer Text0561 ; 0x0561 + textpointer Text0562 ; 0x0562 + textpointer Text0563 ; 0x0563 + textpointer Text0564 ; 0x0564 + textpointer Text0565 ; 0x0565 + textpointer Text0566 ; 0x0566 + textpointer Text0567 ; 0x0567 + textpointer Text0568 ; 0x0568 + textpointer Text0569 ; 0x0569 + textpointer Text056a ; 0x056a + textpointer Text056b ; 0x056b + textpointer Text056c ; 0x056c + textpointer Text056d ; 0x056d + textpointer Text056e ; 0x056e + textpointer Text056f ; 0x056f + textpointer Text0570 ; 0x0570 + textpointer Text0571 ; 0x0571 + textpointer Text0572 ; 0x0572 + textpointer Text0573 ; 0x0573 + textpointer Text0574 ; 0x0574 + textpointer Text0575 ; 0x0575 + textpointer Text0576 ; 0x0576 + textpointer Text0577 ; 0x0577 + textpointer Text0578 ; 0x0578 + textpointer Text0579 ; 0x0579 + textpointer Text057a ; 0x057a + textpointer Text057b ; 0x057b + textpointer Text057c ; 0x057c + textpointer Text057d ; 0x057d + textpointer Text057e ; 0x057e + textpointer Text057f ; 0x057f + textpointer Text0580 ; 0x0580 + textpointer Text0581 ; 0x0581 + textpointer Text0582 ; 0x0582 + textpointer Text0583 ; 0x0583 + textpointer Text0584 ; 0x0584 + textpointer Text0585 ; 0x0585 + textpointer Text0586 ; 0x0586 + textpointer Text0587 ; 0x0587 + textpointer Text0588 ; 0x0588 + textpointer Text0589 ; 0x0589 + textpointer Text058a ; 0x058a + textpointer Text058b ; 0x058b + textpointer Text058c ; 0x058c + textpointer Text058d ; 0x058d + textpointer Text058e ; 0x058e + textpointer Text058f ; 0x058f + textpointer Text0590 ; 0x0590 + textpointer Text0591 ; 0x0591 + textpointer Text0592 ; 0x0592 + textpointer Text0593 ; 0x0593 + textpointer Text0594 ; 0x0594 + textpointer Text0595 ; 0x0595 + textpointer Text0596 ; 0x0596 + textpointer Text0597 ; 0x0597 + textpointer Text0598 ; 0x0598 + textpointer Text0599 ; 0x0599 + textpointer Text059a ; 0x059a + textpointer Text059b ; 0x059b + textpointer Text059c ; 0x059c + textpointer Text059d ; 0x059d + textpointer Text059e ; 0x059e + textpointer Text059f ; 0x059f + textpointer Text05a0 ; 0x05a0 + textpointer Text05a1 ; 0x05a1 + textpointer Text05a2 ; 0x05a2 + textpointer Text05a3 ; 0x05a3 + textpointer Text05a4 ; 0x05a4 + textpointer Text05a5 ; 0x05a5 + textpointer Text05a6 ; 0x05a6 + textpointer Text05a7 ; 0x05a7 + textpointer Text05a8 ; 0x05a8 + textpointer Text05a9 ; 0x05a9 + textpointer Text05aa ; 0x05aa + textpointer Text05ab ; 0x05ab + textpointer Text05ac ; 0x05ac + textpointer Text05ad ; 0x05ad + textpointer Text05ae ; 0x05ae + textpointer Text05af ; 0x05af + textpointer Text05b0 ; 0x05b0 + textpointer Text05b1 ; 0x05b1 + textpointer Text05b2 ; 0x05b2 + textpointer Text05b3 ; 0x05b3 + textpointer Text05b4 ; 0x05b4 + textpointer Text05b5 ; 0x05b5 + textpointer Text05b6 ; 0x05b6 + textpointer Text05b7 ; 0x05b7 + textpointer Text05b8 ; 0x05b8 + textpointer Text05b9 ; 0x05b9 + textpointer Text05ba ; 0x05ba + textpointer Text05bb ; 0x05bb + textpointer Text05bc ; 0x05bc + textpointer Text05bd ; 0x05bd + textpointer Text05be ; 0x05be + textpointer Text05bf ; 0x05bf + textpointer Text05c0 ; 0x05c0 + textpointer Text05c1 ; 0x05c1 + textpointer Text05c2 ; 0x05c2 + textpointer Text05c3 ; 0x05c3 + textpointer Text05c4 ; 0x05c4 + textpointer Text05c5 ; 0x05c5 + textpointer Text05c6 ; 0x05c6 + textpointer Text05c7 ; 0x05c7 + textpointer Text05c8 ; 0x05c8 + textpointer Text05c9 ; 0x05c9 + textpointer Text05ca ; 0x05ca + textpointer Text05cb ; 0x05cb + textpointer Text05cc ; 0x05cc + textpointer Text05cd ; 0x05cd + textpointer Text05ce ; 0x05ce + textpointer Text05cf ; 0x05cf + textpointer Text05d0 ; 0x05d0 + textpointer Text05d1 ; 0x05d1 + textpointer Text05d2 ; 0x05d2 + textpointer Text05d3 ; 0x05d3 + textpointer Text05d4 ; 0x05d4 + textpointer Text05d5 ; 0x05d5 + textpointer Text05d6 ; 0x05d6 + textpointer Text05d7 ; 0x05d7 + textpointer Text05d8 ; 0x05d8 + textpointer Text05d9 ; 0x05d9 + textpointer Text05da ; 0x05da + textpointer Text05db ; 0x05db + textpointer Text05dc ; 0x05dc + textpointer Text05dd ; 0x05dd + textpointer Text05de ; 0x05de + textpointer Text05df ; 0x05df + textpointer Text05e0 ; 0x05e0 + textpointer Text05e1 ; 0x05e1 + textpointer Text05e2 ; 0x05e2 + textpointer Text05e3 ; 0x05e3 + textpointer Text05e4 ; 0x05e4 + textpointer Text05e5 ; 0x05e5 + textpointer Text05e6 ; 0x05e6 + textpointer Text05e7 ; 0x05e7 + textpointer Text05e8 ; 0x05e8 + textpointer Text05e9 ; 0x05e9 + textpointer Text05ea ; 0x05ea + textpointer Text05eb ; 0x05eb + textpointer Text05ec ; 0x05ec + textpointer Text05ed ; 0x05ed + textpointer Text05ee ; 0x05ee + textpointer Text05ef ; 0x05ef + textpointer Text05f0 ; 0x05f0 + textpointer Text05f1 ; 0x05f1 + textpointer Text05f2 ; 0x05f2 + textpointer Text05f3 ; 0x05f3 + textpointer Text05f4 ; 0x05f4 + textpointer Text05f5 ; 0x05f5 + textpointer Text05f6 ; 0x05f6 + textpointer Text05f7 ; 0x05f7 + textpointer Text05f8 ; 0x05f8 + textpointer Text05f9 ; 0x05f9 + textpointer Text05fa ; 0x05fa + textpointer Text05fb ; 0x05fb + textpointer Text05fc ; 0x05fc + textpointer Text05fd ; 0x05fd + textpointer Text05fe ; 0x05fe + textpointer Text05ff ; 0x05ff + textpointer Text0600 ; 0x0600 + textpointer Text0601 ; 0x0601 + textpointer Text0602 ; 0x0602 + textpointer Text0603 ; 0x0603 + textpointer Text0604 ; 0x0604 + textpointer Text0605 ; 0x0605 + textpointer Text0606 ; 0x0606 + textpointer Text0607 ; 0x0607 + textpointer Text0608 ; 0x0608 + textpointer Text0609 ; 0x0609 + textpointer Text060a ; 0x060a + textpointer Text060b ; 0x060b + textpointer Text060c ; 0x060c + textpointer Text060d ; 0x060d + textpointer Text060e ; 0x060e + textpointer Text060f ; 0x060f + textpointer Text0610 ; 0x0610 + textpointer Text0611 ; 0x0611 + textpointer Text0612 ; 0x0612 + textpointer Text0613 ; 0x0613 + textpointer Text0614 ; 0x0614 + textpointer Text0615 ; 0x0615 + textpointer Text0616 ; 0x0616 + textpointer Text0617 ; 0x0617 + textpointer Text0618 ; 0x0618 + textpointer Text0619 ; 0x0619 + textpointer Text061a ; 0x061a + textpointer Text061b ; 0x061b + textpointer Text061c ; 0x061c + textpointer Text061d ; 0x061d + textpointer Text061e ; 0x061e + textpointer Text061f ; 0x061f + textpointer Text0620 ; 0x0620 + textpointer Text0621 ; 0x0621 + textpointer Text0622 ; 0x0622 + textpointer Text0623 ; 0x0623 + textpointer Text0624 ; 0x0624 + textpointer Text0625 ; 0x0625 + textpointer Text0626 ; 0x0626 + textpointer Text0627 ; 0x0627 + textpointer Text0628 ; 0x0628 + textpointer Text0629 ; 0x0629 + textpointer Text062a ; 0x062a + textpointer Text062b ; 0x062b + textpointer Text062c ; 0x062c + textpointer Text062d ; 0x062d + textpointer Text062e ; 0x062e + textpointer Text062f ; 0x062f + textpointer Text0630 ; 0x0630 + textpointer Text0631 ; 0x0631 + textpointer Text0632 ; 0x0632 + textpointer Text0633 ; 0x0633 + textpointer Text0634 ; 0x0634 + textpointer Text0635 ; 0x0635 + textpointer Text0636 ; 0x0636 + textpointer Text0637 ; 0x0637 + textpointer Text0638 ; 0x0638 + textpointer Text0639 ; 0x0639 + textpointer Text063a ; 0x063a + textpointer Text063b ; 0x063b + textpointer Text063c ; 0x063c + textpointer Text063d ; 0x063d + textpointer Text063e ; 0x063e + textpointer Text063f ; 0x063f + textpointer Text0640 ; 0x0640 + textpointer Text0641 ; 0x0641 + textpointer Text0642 ; 0x0642 + textpointer Text0643 ; 0x0643 + textpointer Text0644 ; 0x0644 + textpointer Text0645 ; 0x0645 + textpointer Text0646 ; 0x0646 + textpointer Text0647 ; 0x0647 + textpointer Text0648 ; 0x0648 + textpointer Text0649 ; 0x0649 + textpointer Text064a ; 0x064a + textpointer Text064b ; 0x064b + textpointer Text064c ; 0x064c + textpointer Text064d ; 0x064d + textpointer Text064e ; 0x064e + textpointer Text064f ; 0x064f + textpointer Text0650 ; 0x0650 + textpointer Text0651 ; 0x0651 + textpointer Text0652 ; 0x0652 + textpointer Text0653 ; 0x0653 + textpointer Text0654 ; 0x0654 + textpointer Text0655 ; 0x0655 + textpointer Text0656 ; 0x0656 + textpointer Text0657 ; 0x0657 + textpointer Text0658 ; 0x0658 + textpointer Text0659 ; 0x0659 + textpointer Text065a ; 0x065a + textpointer Text065b ; 0x065b + textpointer Text065c ; 0x065c + textpointer Text065d ; 0x065d + textpointer Text065e ; 0x065e + textpointer Text065f ; 0x065f + textpointer Text0660 ; 0x0660 + textpointer Text0661 ; 0x0661 + textpointer Text0662 ; 0x0662 + textpointer Text0663 ; 0x0663 + textpointer Text0664 ; 0x0664 + textpointer Text0665 ; 0x0665 + textpointer Text0666 ; 0x0666 + textpointer Text0667 ; 0x0667 + textpointer Text0668 ; 0x0668 + textpointer Text0669 ; 0x0669 + textpointer Text066a ; 0x066a + textpointer Text066b ; 0x066b + textpointer Text066c ; 0x066c + textpointer Text066d ; 0x066d + textpointer Text066e ; 0x066e + textpointer Text066f ; 0x066f + textpointer Text0670 ; 0x0670 + textpointer Text0671 ; 0x0671 + textpointer Text0672 ; 0x0672 + textpointer Text0673 ; 0x0673 + textpointer Text0674 ; 0x0674 + textpointer Text0675 ; 0x0675 + textpointer Text0676 ; 0x0676 + textpointer Text0677 ; 0x0677 + textpointer Text0678 ; 0x0678 + textpointer Text0679 ; 0x0679 + textpointer Text067a ; 0x067a + textpointer Text067b ; 0x067b + textpointer Text067c ; 0x067c + textpointer Text067d ; 0x067d + textpointer Text067e ; 0x067e + textpointer Text067f ; 0x067f + textpointer Text0680 ; 0x0680 + textpointer Text0681 ; 0x0681 + textpointer Text0682 ; 0x0682 + textpointer Text0683 ; 0x0683 + textpointer Text0684 ; 0x0684 + textpointer Text0685 ; 0x0685 + textpointer Text0686 ; 0x0686 + textpointer Text0687 ; 0x0687 + textpointer Text0688 ; 0x0688 + textpointer Text0689 ; 0x0689 + textpointer Text068a ; 0x068a + textpointer Text068b ; 0x068b + textpointer Text068c ; 0x068c + textpointer Text068d ; 0x068d + textpointer Text068e ; 0x068e + textpointer Text068f ; 0x068f + textpointer Text0690 ; 0x0690 + textpointer Text0691 ; 0x0691 + textpointer Text0692 ; 0x0692 + textpointer Text0693 ; 0x0693 + textpointer Text0694 ; 0x0694 + textpointer Text0695 ; 0x0695 + textpointer Text0696 ; 0x0696 + textpointer Text0697 ; 0x0697 + textpointer Text0698 ; 0x0698 + textpointer Text0699 ; 0x0699 + textpointer Text069a ; 0x069a + textpointer Text069b ; 0x069b + textpointer Text069c ; 0x069c + textpointer Text069d ; 0x069d + textpointer Text069e ; 0x069e + textpointer Text069f ; 0x069f + textpointer Text06a0 ; 0x06a0 + textpointer Text06a1 ; 0x06a1 + textpointer Text06a2 ; 0x06a2 + textpointer Text06a3 ; 0x06a3 + textpointer Text06a4 ; 0x06a4 + textpointer Text06a5 ; 0x06a5 + textpointer Text06a6 ; 0x06a6 + textpointer Text06a7 ; 0x06a7 + textpointer Text06a8 ; 0x06a8 + textpointer Text06a9 ; 0x06a9 + textpointer Text06aa ; 0x06aa + textpointer Text06ab ; 0x06ab + textpointer Text06ac ; 0x06ac + textpointer Text06ad ; 0x06ad + textpointer Text06ae ; 0x06ae + textpointer Text06af ; 0x06af + textpointer Text06b0 ; 0x06b0 + textpointer Text06b1 ; 0x06b1 + textpointer Text06b2 ; 0x06b2 + textpointer Text06b3 ; 0x06b3 + textpointer Text06b4 ; 0x06b4 + textpointer Text06b5 ; 0x06b5 + textpointer Text06b6 ; 0x06b6 + textpointer Text06b7 ; 0x06b7 + textpointer Text06b8 ; 0x06b8 + textpointer Text06b9 ; 0x06b9 + textpointer Text06ba ; 0x06ba + textpointer Text06bb ; 0x06bb + textpointer Text06bc ; 0x06bc + textpointer Text06bd ; 0x06bd + textpointer Text06be ; 0x06be + textpointer Text06bf ; 0x06bf + textpointer Text06c0 ; 0x06c0 + textpointer Text06c1 ; 0x06c1 + textpointer Text06c2 ; 0x06c2 + textpointer Text06c3 ; 0x06c3 + textpointer Text06c4 ; 0x06c4 + textpointer Text06c5 ; 0x06c5 + textpointer Text06c6 ; 0x06c6 + textpointer Text06c7 ; 0x06c7 + textpointer Text06c8 ; 0x06c8 + textpointer Text06c9 ; 0x06c9 + textpointer Text06ca ; 0x06ca + textpointer Text06cb ; 0x06cb + textpointer Text06cc ; 0x06cc + textpointer Text06cd ; 0x06cd + textpointer Text06ce ; 0x06ce + textpointer Text06cf ; 0x06cf + textpointer Text06d0 ; 0x06d0 + textpointer Text06d1 ; 0x06d1 + textpointer Text06d2 ; 0x06d2 + textpointer Text06d3 ; 0x06d3 + textpointer Text06d4 ; 0x06d4 + textpointer Text06d5 ; 0x06d5 + textpointer Text06d6 ; 0x06d6 + textpointer Text06d7 ; 0x06d7 + textpointer Text06d8 ; 0x06d8 + textpointer Text06d9 ; 0x06d9 + textpointer Text06da ; 0x06da + textpointer Text06db ; 0x06db + textpointer Text06dc ; 0x06dc + textpointer Text06dd ; 0x06dd + textpointer Text06de ; 0x06de + textpointer Text06df ; 0x06df + textpointer Text06e0 ; 0x06e0 + textpointer Text06e1 ; 0x06e1 + textpointer Text06e2 ; 0x06e2 + textpointer Text06e3 ; 0x06e3 + textpointer Text06e4 ; 0x06e4 + textpointer Text06e5 ; 0x06e5 + textpointer Text06e6 ; 0x06e6 + textpointer Text06e7 ; 0x06e7 + textpointer Text06e8 ; 0x06e8 + textpointer Text06e9 ; 0x06e9 + textpointer Text06ea ; 0x06ea + textpointer Text06eb ; 0x06eb + textpointer Text06ec ; 0x06ec + textpointer Text06ed ; 0x06ed + textpointer Text06ee ; 0x06ee + textpointer Text06ef ; 0x06ef + textpointer Text06f0 ; 0x06f0 + textpointer Text06f1 ; 0x06f1 + textpointer Text06f2 ; 0x06f2 + textpointer Text06f3 ; 0x06f3 + textpointer Text06f4 ; 0x06f4 + textpointer Text06f5 ; 0x06f5 + textpointer Text06f6 ; 0x06f6 + textpointer Text06f7 ; 0x06f7 + textpointer Text06f8 ; 0x06f8 + textpointer Text06f9 ; 0x06f9 + textpointer Text06fa ; 0x06fa + textpointer Text06fb ; 0x06fb + textpointer Text06fc ; 0x06fc + textpointer Text06fd ; 0x06fd + textpointer Text06fe ; 0x06fe + textpointer Text06ff ; 0x06ff + textpointer Text0700 ; 0x0700 + textpointer Text0701 ; 0x0701 + textpointer Text0702 ; 0x0702 + textpointer Text0703 ; 0x0703 + textpointer Text0704 ; 0x0704 + textpointer Text0705 ; 0x0705 + textpointer Text0706 ; 0x0706 + textpointer Text0707 ; 0x0707 + textpointer Text0708 ; 0x0708 + textpointer Text0709 ; 0x0709 + textpointer Text070a ; 0x070a + textpointer Text070b ; 0x070b + textpointer Text070c ; 0x070c + textpointer Text070d ; 0x070d + textpointer Text070e ; 0x070e + textpointer Text070f ; 0x070f + textpointer Text0710 ; 0x0710 + textpointer Text0711 ; 0x0711 + textpointer Text0712 ; 0x0712 + textpointer Text0713 ; 0x0713 + textpointer Text0714 ; 0x0714 + textpointer Text0715 ; 0x0715 + textpointer Text0716 ; 0x0716 + textpointer Text0717 ; 0x0717 + textpointer Text0718 ; 0x0718 + textpointer Text0719 ; 0x0719 + textpointer Text071a ; 0x071a + textpointer Text071b ; 0x071b + textpointer Text071c ; 0x071c + textpointer Text071d ; 0x071d + textpointer Text071e ; 0x071e + textpointer Text071f ; 0x071f + textpointer Text0720 ; 0x0720 + textpointer Text0721 ; 0x0721 + textpointer Text0722 ; 0x0722 + textpointer Text0723 ; 0x0723 + textpointer Text0724 ; 0x0724 + textpointer Text0725 ; 0x0725 + textpointer Text0726 ; 0x0726 + textpointer Text0727 ; 0x0727 + textpointer Text0728 ; 0x0728 + textpointer Text0729 ; 0x0729 + textpointer Text072a ; 0x072a + textpointer Text072b ; 0x072b + textpointer Text072c ; 0x072c + textpointer Text072d ; 0x072d + textpointer Text072e ; 0x072e + textpointer Text072f ; 0x072f + textpointer Text0730 ; 0x0730 + textpointer Text0731 ; 0x0731 + textpointer Text0732 ; 0x0732 + textpointer Text0733 ; 0x0733 + textpointer Text0734 ; 0x0734 + textpointer Text0735 ; 0x0735 + textpointer Text0736 ; 0x0736 + textpointer Text0737 ; 0x0737 + textpointer Text0738 ; 0x0738 + textpointer Text0739 ; 0x0739 + textpointer Text073a ; 0x073a + textpointer Text073b ; 0x073b + textpointer Text073c ; 0x073c + textpointer Text073d ; 0x073d + textpointer Text073e ; 0x073e + textpointer Text073f ; 0x073f + textpointer Text0740 ; 0x0740 + textpointer Text0741 ; 0x0741 + textpointer Text0742 ; 0x0742 + textpointer Text0743 ; 0x0743 + textpointer Text0744 ; 0x0744 + textpointer Text0745 ; 0x0745 + textpointer Text0746 ; 0x0746 + textpointer Text0747 ; 0x0747 + textpointer Text0748 ; 0x0748 + textpointer Text0749 ; 0x0749 + textpointer Text074a ; 0x074a + textpointer Text074b ; 0x074b + textpointer Text074c ; 0x074c + textpointer Text074d ; 0x074d + textpointer Text074e ; 0x074e + textpointer Text074f ; 0x074f + textpointer Text0750 ; 0x0750 + textpointer Text0751 ; 0x0751 + textpointer Text0752 ; 0x0752 + textpointer Text0753 ; 0x0753 + textpointer Text0754 ; 0x0754 + textpointer Text0755 ; 0x0755 + textpointer Text0756 ; 0x0756 + textpointer Text0757 ; 0x0757 + textpointer Text0758 ; 0x0758 + textpointer Text0759 ; 0x0759 + textpointer Text075a ; 0x075a + textpointer Text075b ; 0x075b + textpointer Text075c ; 0x075c + textpointer Text075d ; 0x075d + textpointer Text075e ; 0x075e + textpointer Text075f ; 0x075f + textpointer Text0760 ; 0x0760 + textpointer Text0761 ; 0x0761 + textpointer Text0762 ; 0x0762 + textpointer Text0763 ; 0x0763 + textpointer Text0764 ; 0x0764 + textpointer Text0765 ; 0x0765 + textpointer Text0766 ; 0x0766 + textpointer Text0767 ; 0x0767 + textpointer Text0768 ; 0x0768 + textpointer Text0769 ; 0x0769 + textpointer Text076a ; 0x076a + textpointer Text076b ; 0x076b + textpointer Text076c ; 0x076c + textpointer Text076d ; 0x076d + textpointer Text076e ; 0x076e + textpointer Text076f ; 0x076f + textpointer Text0770 ; 0x0770 + textpointer Text0771 ; 0x0771 + textpointer Text0772 ; 0x0772 + textpointer Text0773 ; 0x0773 + textpointer Text0774 ; 0x0774 + textpointer Text0775 ; 0x0775 + textpointer Text0776 ; 0x0776 + textpointer Text0777 ; 0x0777 + textpointer Text0778 ; 0x0778 + textpointer Text0779 ; 0x0779 + textpointer Text077a ; 0x077a + textpointer Text077b ; 0x077b + textpointer Text077c ; 0x077c + textpointer Text077d ; 0x077d + textpointer Text077e ; 0x077e + textpointer Text077f ; 0x077f + textpointer Text0780 ; 0x0780 + textpointer Text0781 ; 0x0781 + textpointer Text0782 ; 0x0782 + textpointer Text0783 ; 0x0783 + textpointer Text0784 ; 0x0784 + textpointer Text0785 ; 0x0785 + textpointer Text0786 ; 0x0786 + textpointer Text0787 ; 0x0787 + textpointer Text0788 ; 0x0788 + textpointer Text0789 ; 0x0789 + textpointer Text078a ; 0x078a + textpointer Text078b ; 0x078b + textpointer Text078c ; 0x078c + textpointer Text078d ; 0x078d + textpointer Text078e ; 0x078e + textpointer Text078f ; 0x078f + textpointer Text0790 ; 0x0790 + textpointer Text0791 ; 0x0791 + textpointer Text0792 ; 0x0792 + textpointer Text0793 ; 0x0793 + textpointer Text0794 ; 0x0794 + textpointer Text0795 ; 0x0795 + textpointer Text0796 ; 0x0796 + textpointer Text0797 ; 0x0797 + textpointer Text0798 ; 0x0798 + textpointer Text0799 ; 0x0799 + textpointer Text079a ; 0x079a + textpointer Text079b ; 0x079b + textpointer Text079c ; 0x079c + textpointer Text079d ; 0x079d + textpointer Text079e ; 0x079e + textpointer Text079f ; 0x079f + textpointer Text07a0 ; 0x07a0 + textpointer Text07a1 ; 0x07a1 + textpointer Text07a2 ; 0x07a2 + textpointer Text07a3 ; 0x07a3 + textpointer Text07a4 ; 0x07a4 + textpointer Text07a5 ; 0x07a5 + textpointer Text07a6 ; 0x07a6 + textpointer Text07a7 ; 0x07a7 + textpointer Text07a8 ; 0x07a8 + textpointer Text07a9 ; 0x07a9 + textpointer Text07aa ; 0x07aa + textpointer Text07ab ; 0x07ab + textpointer Text07ac ; 0x07ac + textpointer Text07ad ; 0x07ad + textpointer Text07ae ; 0x07ae + textpointer Text07af ; 0x07af + textpointer Text07b0 ; 0x07b0 + textpointer Text07b1 ; 0x07b1 + textpointer Text07b2 ; 0x07b2 + textpointer Text07b3 ; 0x07b3 + textpointer Text07b4 ; 0x07b4 + textpointer Text07b5 ; 0x07b5 + textpointer Text07b6 ; 0x07b6 + textpointer Text07b7 ; 0x07b7 + textpointer Text07b8 ; 0x07b8 + textpointer Text07b9 ; 0x07b9 + textpointer Text07ba ; 0x07ba + textpointer Text07bb ; 0x07bb + textpointer Text07bc ; 0x07bc + textpointer Text07bd ; 0x07bd + textpointer Text07be ; 0x07be + textpointer Text07bf ; 0x07bf + textpointer Text07c0 ; 0x07c0 + textpointer Text07c1 ; 0x07c1 + textpointer Text07c2 ; 0x07c2 + textpointer Text07c3 ; 0x07c3 + textpointer Text07c4 ; 0x07c4 + textpointer Text07c5 ; 0x07c5 + textpointer Text07c6 ; 0x07c6 + textpointer Text07c7 ; 0x07c7 + textpointer Text07c8 ; 0x07c8 + textpointer Text07c9 ; 0x07c9 + textpointer Text07ca ; 0x07ca + textpointer Text07cb ; 0x07cb + textpointer Text07cc ; 0x07cc + textpointer Text07cd ; 0x07cd + textpointer Text07ce ; 0x07ce + textpointer Text07cf ; 0x07cf + textpointer Text07d0 ; 0x07d0 + textpointer Text07d1 ; 0x07d1 + textpointer Text07d2 ; 0x07d2 + textpointer Text07d3 ; 0x07d3 + textpointer Text07d4 ; 0x07d4 + textpointer Text07d5 ; 0x07d5 + textpointer Text07d6 ; 0x07d6 + textpointer Text07d7 ; 0x07d7 + textpointer Text07d8 ; 0x07d8 + textpointer Text07d9 ; 0x07d9 + textpointer Text07da ; 0x07da + textpointer Text07db ; 0x07db + textpointer Text07dc ; 0x07dc + textpointer Text07dd ; 0x07dd + textpointer Text07de ; 0x07de + textpointer Text07df ; 0x07df + textpointer Text07e0 ; 0x07e0 + textpointer Text07e1 ; 0x07e1 + textpointer Text07e2 ; 0x07e2 + textpointer Text07e3 ; 0x07e3 + textpointer Text07e4 ; 0x07e4 + textpointer Text07e5 ; 0x07e5 + textpointer DefeatedFiveOpponentsText ; 0x07e6 + textpointer Text07e7 ; 0x07e7 + textpointer ConsecutiveWinRecordIncreasedText ; 0x07e8 + textpointer Text07e9 ; 0x07e9 + textpointer Text07ea ; 0x07ea + textpointer Text07eb ; 0x07eb + textpointer Text07ec ; 0x07ec + textpointer Text07ed ; 0x07ed + textpointer Text07ee ; 0x07ee + textpointer Text07ef ; 0x07ef + textpointer Text07f0 ; 0x07f0 + textpointer Text07f1 ; 0x07f1 + textpointer Text07f2 ; 0x07f2 + textpointer Text07f3 ; 0x07f3 + textpointer Text07f4 ; 0x07f4 + textpointer Text07f5 ; 0x07f5 + textpointer Text07f6 ; 0x07f6 + textpointer Text07f7 ; 0x07f7 + textpointer Text07f8 ; 0x07f8 + textpointer Text07f9 ; 0x07f9 + textpointer Text07fa ; 0x07fa + textpointer Text07fb ; 0x07fb + textpointer GrassEnergyName ; 0x07fc + textpointer GrassEnergyDescription ; 0x07fd + textpointer FireEnergyName ; 0x07fe + textpointer FireEnergyDescription ; 0x07ff + textpointer WaterEnergyName ; 0x0800 + textpointer WaterEnergyDescription ; 0x0801 + textpointer LightningEnergyName ; 0x0802 + textpointer LightningEnergyDescription ; 0x0803 + textpointer FightingEnergyName ; 0x0804 + textpointer FightingEnergyDescription ; 0x0805 + textpointer PsychicEnergyName ; 0x0806 + textpointer PsychicEnergyDescription ; 0x0807 + textpointer DoubleColorlessEnergyName ; 0x0808 + textpointer DoubleColorlessEnergyDescription ; 0x0809 + textpointer BulbasaurName ; 0x080a + textpointer LeechSeedName ; 0x080b + textpointer BulbasaursLeechSeedDescription ; 0x080c + textpointer BulbasaurKind ; 0x080d + textpointer BulbasaurDescription ; 0x080e + textpointer IvysaurName ; 0x080f + textpointer VineWhipName ; 0x0810 + textpointer PoisonPowderName ; 0x0811 + textpointer InflictPoisonDescription ; 0x0812 + textpointer IvysaurDescription ; 0x0813 + textpointer VenusaurName ; 0x0814 + textpointer SolarPowerName ; 0x0815 + textpointer SolarPowerDescription ; 0x0816 + textpointer SolarPowerDescriptionCont ; 0x0817 + textpointer MegaDrainName ; 0x0818 + textpointer VenusaursMegaDrainDescription ; 0x0819 + textpointer VenusaursMegaDrainDescriptionCont ; 0x081a + textpointer Venusaur1Description ; 0x081b + textpointer EnergyTransName ; 0x081c + textpointer EnergyTransDescription ; 0x081d + textpointer SolarBeamName ; 0x081e + textpointer Venusaur2Description ; 0x081f + textpointer CaterpieName ; 0x0820 + textpointer StringShotName ; 0x0821 + textpointer MayInflictParalysisDescription ; 0x0822 + textpointer CaterpieKind ; 0x0823 + textpointer CaterpieDescription ; 0x0824 + textpointer MetapodName ; 0x0825 + textpointer StiffenName ; 0x0826 + textpointer MetapodsStiffenDescription ; 0x0827 + textpointer StunSporeName ; 0x0828 + textpointer MetapodKind ; 0x0829 + textpointer MetapodDescription ; 0x082a + textpointer ButterfreeName ; 0x082b + textpointer WhirlwindName ; 0x082c + textpointer WhirlwindDescription ; 0x082d + textpointer ButterfreesMegaDrainDescription ; 0x082e + textpointer ButterfreesMegaDrainDescriptionCont ; 0x082f + textpointer ButterfreeKind ; 0x0830 + textpointer ButterfreeDescription ; 0x0831 + textpointer WeedleName ; 0x0832 + textpointer PoisonStingName ; 0x0833 + textpointer MayInflictPoisonDescription ; 0x0834 + textpointer WeedleKind ; 0x0835 + textpointer WeedleDescription ; 0x0836 + textpointer KakunaName ; 0x0837 + textpointer KakunasStiffenDescription ; 0x0838 + textpointer KakunaDescription ; 0x0839 + textpointer BeedrillName ; 0x083a + textpointer TwineedleName ; 0x083b + textpointer DoubleAttackX30Description ; 0x083c + textpointer BeedrillKind ; 0x083d + textpointer BeedrillDescription ; 0x083e + textpointer EkansName ; 0x083f + textpointer SpitPoisonName ; 0x0840 + textpointer WrapName ; 0x0841 + textpointer EkansKind ; 0x0842 + textpointer EkansDescription ; 0x0843 + textpointer ArbokName ; 0x0844 + textpointer TerrorStrikeName ; 0x0845 + textpointer TerrorStrikeDescription ; 0x0846 + textpointer PoisonFangName ; 0x0847 + textpointer ArbokKind ; 0x0848 + textpointer ArbokDescription ; 0x0849 + textpointer NidoranFName ; 0x084a + textpointer FurySweepesName ; 0x084b + textpointer TripleAttackX10Description ; 0x084c + textpointer CallForFamilyName ; 0x084d + textpointer NidoranFsCallForFamilyDescription ; 0x084e + textpointer NidoranFKind ; 0x084f + textpointer NidoranFDescription ; 0x0850 + textpointer NidorinaName ; 0x0851 + textpointer SupersonicName ; 0x0852 + textpointer MayInflictConfusionDescription ; 0x0853 + textpointer DoubleKickName ; 0x0854 + textpointer NidorinaDescription ; 0x0855 + textpointer NidoqueenName ; 0x0856 + textpointer BoyfriendsName ; 0x0857 + textpointer BoyfriendsDescription ; 0x0858 + textpointer MegaPunchName ; 0x0859 + textpointer NidoqueenKind ; 0x085a + textpointer NidoqueenDescription ; 0x085b + textpointer NidoranMName ; 0x085c + textpointer HornHazardName ; 0x085d + textpointer MayDoNothingDescription ; 0x085e + textpointer NidoranMDescription ; 0x085f + textpointer NidorinoName ; 0x0860 + textpointer HornDrillName ; 0x0861 + textpointer NidorinoDescription ; 0x0862 + textpointer NidokingName ; 0x0863 + textpointer ThrashName ; 0x0864 + textpointer ThrashDescriptipn ; 0x0865 + textpointer ToxicName ; 0x0866 + textpointer ToxicDescription ; 0x0867 + textpointer NidokingDescription ; 0x0868 + textpointer ZubatName ; 0x0869 + textpointer LeechLifeName ; 0x086a + textpointer ZubatsLeechLifeDescription ; 0x086b + textpointer ZubatKind ; 0x086c + textpointer ZubatDescription ; 0x086d + textpointer GolbatName ; 0x086e + textpointer WingAttackName ; 0x086f + textpointer GolbatsLeechLifeDescription ; 0x0870 + textpointer GolbatDescription ; 0x0871 + textpointer OddishName ; 0x0872 + textpointer SproutName ; 0x0873 + textpointer SproutDescription ; 0x0874 + textpointer OddishKind ; 0x0875 + textpointer OddishDescription ; 0x0876 + textpointer GloomName ; 0x0877 + textpointer FoulOdorName ; 0x0878 + textpointer FoulOdorDescription ; 0x0879 + textpointer GloomDescription ; 0x087a + textpointer VileplumeName ; 0x087b + textpointer HealName ; 0x087c + textpointer HealDescription ; 0x087d + textpointer PetalDanceName ; 0x087e + textpointer PetalDanceDescription ; 0x087f + textpointer VileplumeKind ; 0x0880 + textpointer VileplumeDescription ; 0x0881 + textpointer ParasName ; 0x0882 + textpointer ScratchName ; 0x0883 + textpointer SporeName ; 0x0884 + textpointer InflictSleepDescription ; 0x0885 + textpointer ParasKind ; 0x0886 + textpointer ParasDescription ; 0x0887 + textpointer ParasectName ; 0x0888 + textpointer SlashName ; 0x0889 + textpointer ParasectDescription ; 0x088a + textpointer VenonatName ; 0x088b + textpointer VenonatLeechLifeDescription ; 0x088c + textpointer VenonatKind ; 0x088d + textpointer VenonatDescription ; 0x088e + textpointer VenomothName ; 0x088f + textpointer ShiftName ; 0x0890 + textpointer ShiftDescription ; 0x0891 + textpointer VenomPowderName ; 0x0892 + textpointer VenomPowderDescription ; 0x0893 + textpointer VenomothKind ; 0x0894 + textpointer VenomothDescription ; 0x0895 + textpointer BellsproutName ; 0x0896 + textpointer BellsproutsCallForFamilyDescription ; 0x0897 + textpointer BellsproutDescription ; 0x0898 + textpointer WeepinbellName ; 0x0899 + textpointer RazorLeafName ; 0x089a + textpointer WeepinbellKind ; 0x089b + textpointer WeepinbellDescription ; 0x089c + textpointer VictreebelName ; 0x089d + textpointer LureName ; 0x089e + textpointer VictreebelsLureDescription ; 0x089f + textpointer AcidName ; 0x08a0 + textpointer VictreebelsAcidDescription ; 0x08a1 + textpointer VictreebelDescription ; 0x08a2 + textpointer GrimerName ; 0x08a3 + textpointer NastyGooName ; 0x08a4 + textpointer MinimizeName ; 0x08a5 + textpointer GrimersMinimizeDescription ; 0x08a6 + textpointer GrimerKindOrSludgeName ; 0x08a7 + textpointer GrimerDescription ; 0x08a8 + textpointer MukName ; 0x08a9 + textpointer ToxicGasName ; 0x08aa + textpointer ToxicGasDescription ; 0x08ab + textpointer MukDescription ; 0x08ac + textpointer ExeggcuteName ; 0x08ad + textpointer DrowzeeKindOrHypnosisName ; 0x08ae + textpointer ExeggcutesLeechSeedDescription ; 0x08af + textpointer ExeggcuteKind ; 0x08b0 + textpointer ExeggcuteDescription ; 0x08b1 + textpointer ExeggutorName ; 0x08b2 + textpointer TeleportName ; 0x08b3 + textpointer TeleportDescription ; 0x08b4 + textpointer BigEggsplosionName ; 0x08b5 + textpointer BigEggsplosionDescription ; 0x08b6 + textpointer ExeggutorKind ; 0x08b7 + textpointer ExeggutorDescription ; 0x08b8 + textpointer KoffingName ; 0x08b9 + textpointer FoulGasName ; 0x08ba + textpointer FoulGasDescription ; 0x08bb + textpointer KoffingKind ; 0x08bc + textpointer KoffingDescription ; 0x08bd + textpointer WeezingName ; 0x08be + textpointer SmogName ; 0x08bf + textpointer SelfdestructName ; 0x08c0 + textpointer WeezingsSelfdestructDescription ; 0x08c1 + textpointer WeezingDescription ; 0x08c2 + textpointer TangelaName ; 0x08c3 + textpointer BindName ; 0x08c4 + textpointer TangelaKind ; 0x08c5 + textpointer Tangela1Description ; 0x08c6 + textpointer PoisonWhipName ; 0x08c7 + textpointer Tangela2Description ; 0x08c8 + textpointer ScytherName ; 0x08c9 + textpointer SwordsDanceName ; 0x08ca + textpointer SwordsDanceDescription ; 0x08cb + textpointer ScytherKind ; 0x08cc + textpointer ScytherDescription ; 0x08cd + textpointer PinsirName ; 0x08ce + textpointer IronGripName ; 0x08cf + textpointer GuillotineName ; 0x08d0 + textpointer PinsirKind ; 0x08d1 + textpointer PinsirDescription ; 0x08d2 + textpointer CharmanderName ; 0x08d3 + textpointer EmberName ; 0x08d4 + textpointer EmberDescription ; 0x08d5 + textpointer CharmanderKind ; 0x08d6 + textpointer CharmanderDescription ; 0x08d7 + textpointer CharmeleonName ; 0x08d8 + textpointer FlamethrowerName ; 0x08d9 + textpointer CharmeleonsFlamethrowerDescription ; 0x08da + textpointer CharmeleonKind ; 0x08db + textpointer CharmeleonDescription ; 0x08dc + textpointer CharizardName ; 0x08dd + textpointer EnergyBurnName ; 0x08de + textpointer EnergyBurnDescription ; 0x08df + textpointer FireSpinName ; 0x08e0 + textpointer FireSpinDescription ; 0x08e1 + textpointer CharizardDescription ; 0x08e2 + textpointer VulpixName ; 0x08e3 + textpointer ConfuseRayName ; 0x08e4 + textpointer VulpixKind ; 0x08e5 + textpointer VulpixDescription ; 0x08e6 + textpointer NinetailsName ; 0x08e7 + textpointer NinetailsLureDescription ; 0x08e8 + textpointer FireBlastName ; 0x08e9 + textpointer FireBlastDescription ; 0x08ea + textpointer Ninetails1Description ; 0x08eb + textpointer MixUpName ; 0x08ec + textpointer MixUpDescription ; 0x08ed + textpointer MixUpDescriptionCont ; 0x08ee + textpointer DancingEmbersName ; 0x08ef + textpointer DancingEmbersDescription ; 0x08f0 + textpointer Ninetails2Description ; 0x08f1 + textpointer GrowlitheName ; 0x08f2 + textpointer FlareName ; 0x08f3 + textpointer GrowlitheKind ; 0x08f4 + textpointer GrowlitheDescription ; 0x08f5 + textpointer ArcanineName ; 0x08f6 + textpointer QuickAttackName ; 0x08f7 + textpointer QuickAttackDescription ; 0x08f8 + textpointer FlamesOfRageName ; 0x08f9 + textpointer FlamesOfRageDescription ; 0x08fa + textpointer ArcanineKind ; 0x08fb + textpointer Arcanine1Description ; 0x08fc + textpointer ArcaninesFlamethrowerDescription ; 0x08fd + textpointer TakeDownName ; 0x08fe + textpointer TakeDownDescription ; 0x08ff + textpointer Arcanine2Description ; 0x0900 + textpointer PonytaName ; 0x0901 + textpointer SmashKickName ; 0x0902 + textpointer FlameTailName ; 0x0903 + textpointer PonytaKind ; 0x0904 + textpointer PonytaDescription ; 0x0905 + textpointer RapidashName ; 0x0906 + textpointer StompName ; 0x0907 + textpointer StompDescription ; 0x0908 + textpointer AgilityName ; 0x0909 + textpointer RapidashsAgilityDescription ; 0x090a + textpointer RapidashDescription ; 0x090b + textpointer MagmarName ; 0x090c + textpointer FirePunchName ; 0x090d + textpointer FirePunchDescription ; 0x090e + textpointer MagmarKind ; 0x090f + textpointer Magmar1Description ; 0x0910 + textpointer SmokescreenName ; 0x0911 + textpointer MagmarsSmokescreenDescription ; 0x0912 + textpointer Magmar2Description ; 0x0913 + textpointer FlareonName ; 0x0914 + textpointer EeveeName ; 0x0915 + textpointer BiteName ; 0x0916 + textpointer RageName ; 0x0917 + textpointer FlareonsRageDescription ; 0x0918 + textpointer Flareon1Description ; 0x0919 + textpointer FlareonsFlamethrowerDescription ; 0x091a + textpointer Flareon2Description ; 0x091b + textpointer MoltresName ; 0x091c + textpointer WildfireName ; 0x091d + textpointer WildfireDescription ; 0x091e + textpointer DiveBombName ; 0x091f + textpointer Moltres1Description ; 0x0920 + textpointer FiregiverName ; 0x0921 + textpointer FiregiverDescription ; 0x0922 + textpointer Moltres2Description ; 0x0923 + textpointer SquirtleName ; 0x0924 + textpointer BubbleName ; 0x0925 + textpointer WithdrawName ; 0x0926 + textpointer SquirtlesWithdrawDescription ; 0x0927 + textpointer SquirtleKind ; 0x0928 + textpointer SquirtleDescription ; 0x0929 + textpointer WartortleName ; 0x092a + textpointer WartortlesWithdrawDescription ; 0x092b + textpointer WartortleKind ; 0x092c + textpointer WartortleDescription ; 0x092d + textpointer BlastoiseName ; 0x092e + textpointer RainDanceName ; 0x092f + textpointer RainDanceDescription ; 0x0930 + textpointer RainDanceDescriptionCont ; 0x0931 + textpointer HydroPumpName ; 0x0932 + textpointer HydroPumpDescription ; 0x0933 + textpointer BlastoiseKind ; 0x0934 + textpointer BlastoiseDescription ; 0x0935 + textpointer PsyduckName ; 0x0936 + textpointer HeadacheName ; 0x0937 + textpointer HeadacheDescription ; 0x0938 + textpointer PsyduckKind ; 0x0939 + textpointer PsyduckDescription ; 0x093a + textpointer GolduckName ; 0x093b + textpointer PsyshockName ; 0x093c + textpointer HyperBeamName ; 0x093d + textpointer Discard1EnergyFromTargetDescription ; 0x093e + textpointer GolduckDescription ; 0x093f + textpointer PoliwagName ; 0x0940 + textpointer WaterGunName ; 0x0941 + textpointer PoliwagsWaterGunDescription ; 0x0942 + textpointer PoliwagKind ; 0x0943 + textpointer PoliwagDescription ; 0x0944 + textpointer PoliwhirlName ; 0x0945 + textpointer AmnesiaName ; 0x0946 + textpointer PoliwhirlsAmnesiaDescription ; 0x0947 + textpointer DoubleslapName ; 0x0948 + textpointer PoliwhirlsDescription ; 0x0949 + textpointer PoliwrathName ; 0x094a + textpointer PoliwrathsWaterGunDescription ; 0x094b + textpointer WhirlpoolName ; 0x094c + textpointer PoliwrathDescription ; 0x094d + textpointer TentacoolName ; 0x094e + textpointer CowardiceName ; 0x094f + textpointer CowardiceDescription ; 0x0950 + textpointer TentacoolKind ; 0x0951 + textpointer TentacoolDescription ; 0x0952 + textpointer TentacruelName ; 0x0953 + textpointer JellyfishStingName ; 0x0954 + textpointer TentacruelDescription ; 0x0955 + textpointer SeelName ; 0x0956 + textpointer HeadbuttName ; 0x0957 + textpointer SeelKind ; 0x0958 + textpointer SeelDescription ; 0x0959 + textpointer DewgongName ; 0x095a + textpointer AuroraBeamName ; 0x095b + textpointer IceBeamName ; 0x095c + textpointer DewgongDescription ; 0x095d + textpointer ShellderName ; 0x095e + textpointer HideInShellName ; 0x095f + textpointer HideInShellDescription ; 0x0960 + textpointer ShellderKind ; 0x0961 + textpointer ShellderDescription ; 0x0962 + textpointer CloysterName ; 0x0963 + textpointer ClampName ; 0x0964 + textpointer ClampDescription ; 0x0965 + textpointer SpikeCannonName ; 0x0966 + textpointer CloysterDescription ; 0x0967 + textpointer KrabbyName ; 0x0968 + textpointer KrabbysCallForFamilyDescription ; 0x0969 + textpointer KrabbyKind ; 0x096a + textpointer KrabbyDescription ; 0x096b + textpointer KinglerName ; 0x096c + textpointer FlailName ; 0x096d + textpointer KinglersFlailDescription ; 0x096e + textpointer CrabhammerName ; 0x096f + textpointer KinglerKind ; 0x0970 + textpointer KinglerDescription ; 0x0971 + textpointer HorseaName ; 0x0972 + textpointer OpponentAttackMayDoNothingDescription ; 0x0973 + textpointer HorseaKind ; 0x0974 + textpointer HorseaDescription ; 0x0975 + textpointer SeadraName ; 0x0976 + textpointer SeadrasWaterGunDescription ; 0x0977 + textpointer SeadrasAgilityDescription ; 0x0978 + textpointer SeadraDescription ; 0x0979 + textpointer GoldeenName ; 0x097a + textpointer HornAttackName ; 0x097b + textpointer GoldeenKind ; 0x097c + textpointer GoldeenDescription ; 0x097d + textpointer SeakingName ; 0x097e + textpointer WaterfallName ; 0x097f + textpointer SeakingDescription ; 0x0980 + textpointer StaryuName ; 0x0981 + textpointer SlapName ; 0x0982 + textpointer StaryuKind ; 0x0983 + textpointer StaryuDescription ; 0x0984 + textpointer StarmieName ; 0x0985 + textpointer RecoverName ; 0x0986 + textpointer StarmiesRecoverDescription ; 0x0987 + textpointer StarFreezeName ; 0x0988 + textpointer StarmieKind ; 0x0989 + textpointer StarmieDescription ; 0x098a + textpointer MagikarpName ; 0x098b + textpointer TackleName ; 0x098c + textpointer MagikarpsFlailDescription ; 0x098d + textpointer MagikarpKind ; 0x098e + textpointer MagikarpDescription ; 0x098f + textpointer GyaradosName ; 0x0990 + textpointer DragonRageName ; 0x0991 + textpointer BubblebeamName ; 0x0992 + textpointer GyaradosKind ; 0x0993 + textpointer GyaradosDescription ; 0x0994 + textpointer LaprasName ; 0x0995 + textpointer LaprasWaterGunDescription ; 0x0996 + textpointer LaprasKind ; 0x0997 + textpointer LaprasDescription ; 0x0998 + textpointer VaporeonName ; 0x0999 + textpointer FocusEnergyName ; 0x099a + textpointer FocusEnergyDescription ; 0x099b + textpointer VaporeonKind ; 0x099c + textpointer Vaporeon1Description ; 0x099d + textpointer VaporeonsWaterGunDescription ; 0x099e + textpointer Vaporeon2Description ; 0x099f + textpointer OmanyteName ; 0x09a0 + textpointer MysteriousFossilName ; 0x09a1 + textpointer ClairvoyanceName ; 0x09a2 + textpointer ClairvoyanceDescription ; 0x09a3 + textpointer OmanytesWaterGunDescription ; 0x09a4 + textpointer OmanyteKind ; 0x09a5 + textpointer OmanyteDescription ; 0x09a6 + textpointer OmastarName ; 0x09a7 + textpointer OmastarsWaterGunDescription ; 0x09a8 + textpointer OmastarDescription ; 0x09a9 + textpointer ArticunoName ; 0x09aa + textpointer FreezeDryName ; 0x09ab + textpointer BlizzardName ; 0x09ac + textpointer BlizzardDescription ; 0x09ad + textpointer ArticunoKind ; 0x09ae + textpointer Articuno1Description ; 0x09af + textpointer QuickfreezeName ; 0x09b0 + textpointer QuickfreezeDescription ; 0x09b1 + textpointer IceBreathName ; 0x09b2 + textpointer IceBreathDescription ; 0x09b3 + textpointer Articuno2Description ; 0x09b4 + textpointer PikachuName ; 0x09b5 + textpointer GnawName ; 0x09b6 + textpointer ThunderJoltName ; 0x09b7 + textpointer ThunderJoltDescription ; 0x09b8 + textpointer PikachuKind ; 0x09b9 + textpointer Pikachu1Description ; 0x09ba + textpointer SparkName ; 0x09bb + textpointer SparkDescription ; 0x09bc + textpointer Pikachu2Description ; 0x09bd + textpointer GrowlName ; 0x09be + textpointer GrowlDescription ; 0x09bf + textpointer ThundershockName ; 0x09c0 + textpointer Pikachu3Description ; 0x09c1 + textpointer FlyingPikachuName ; 0x09c2 + textpointer FlyName ; 0x09c3 + textpointer FlyDescription ; 0x09c4 + textpointer FlyingPikachuDescription ; 0x09c5 + textpointer SurfingPikachuName ; 0x09c6 + textpointer SurfName ; 0x09c7 + textpointer SurfingPikachuDescription ; 0x09c8 + textpointer RaichuName ; 0x09c9 + textpointer RaichusAgilityDescription ; 0x09ca + textpointer ThunderName ; 0x09cb + textpointer RaichusThunderDescription ; 0x09cc + textpointer Raichu1Description ; 0x09cd + textpointer GigashockName ; 0x09ce + textpointer GigashockDescription ; 0x09cf + textpointer Raichu2Description ; 0x09d0 + textpointer MagnemiteName ; 0x09d1 + textpointer ThunderWaveName ; 0x09d2 + textpointer MagnemitesSelfdestructDescription ; 0x09d3 + textpointer MagnemiteKind ; 0x09d4 + textpointer Magnemite1Description ; 0x09d5 + textpointer MagneticStormName ; 0x09d6 + textpointer MagneticStormDescription ; 0x09d7 + textpointer Magnemite2Description ; 0x09d8 + textpointer MagnetonName ; 0x09d9 + textpointer Magneton1sSelfdestructDescription ; 0x09da + textpointer Magneton1Description ; 0x09db + textpointer SonicboomName ; 0x09dc + textpointer SonicboomDescription ; 0x09dd + textpointer Magneton2sSelfdestructDescription ; 0x09de + textpointer Magneton2Description ; 0x09df + textpointer VoltorbName ; 0x09e0 + textpointer VoltorbKind ; 0x09e1 + textpointer VoltorbDescription ; 0x09e2 + textpointer ElectrodeName ; 0x09e3 + textpointer EnergySpikeName ; 0x09e4 + textpointer EnergySpikeDescription ; 0x09e5 + textpointer Electrode1Description ; 0x09e6 + textpointer ChainLightningName ; 0x09e7 + textpointer ChainLightningDescription ; 0x09e8 + textpointer Electrode2Description ; 0x09e9 + textpointer ElectabuzzName ; 0x09ea + textpointer LightScreenName ; 0x09eb + textpointer LightScreenDescription ; 0x09ec + textpointer LightScreenDescriptionCont ; 0x09ed + textpointer ElectabuzzsQuickAttackDescription ; 0x09ee + textpointer ElectabuzzKind ; 0x09ef + textpointer Electabuzz1Description ; 0x09f0 + textpointer ThunderpunchName ; 0x09f1 + textpointer ThunderpunchDescription ; 0x09f2 + textpointer Electabuzz2Description ; 0x09f3 + textpointer JolteonName ; 0x09f4 + textpointer DoubleAttackX20Description ; 0x09f5 + textpointer StunNeedleName ; 0x09f6 + textpointer JolteonKind ; 0x09f7 + textpointer Jolteon1Description ; 0x09f8 + textpointer PinMissileName ; 0x09f9 + textpointer QuadrupleAttackX20Description ; 0x09fa + textpointer Jolteon2Description ; 0x09fb + textpointer ZapdosName ; 0x09fc + textpointer ThunderstormName ; 0x09fd + textpointer ThunderstormDescription ; 0x09fe + textpointer Zapdos1Description ; 0x09ff + textpointer ZapdosThunderDescription ; 0x0a00 + textpointer ThunderboltName ; 0x0a01 + textpointer ThunderboltDescription ; 0x0a02 + textpointer Zapdos2Description ; 0x0a03 + textpointer PealOfThunderName ; 0x0a04 + textpointer PealOfThunderDescription ; 0x0a05 + textpointer BigThunderName ; 0x0a06 + textpointer BigThunderDescription ; 0x0a07 + textpointer Zapdos3Description ; 0x0a08 + textpointer SandshrewName ; 0x0a09 + textpointer SandAttackName ; 0x0a0a + textpointer SandshrewDescription ; 0x0a0b + textpointer SandslashName ; 0x0a0c + textpointer TripleAttackX20Description ; 0x0a0d + textpointer SandslashDescription ; 0x0a0e + textpointer DiglettName ; 0x0a0f + textpointer DigName ; 0x0a10 + textpointer MudSlapName ; 0x0a11 + textpointer DiglettKind ; 0x0a12 + textpointer DiglettDescription ; 0x0a13 + textpointer DugtrioName ; 0x0a14 + textpointer EarthquakeName ; 0x0a15 + textpointer EarthquakeDescription ; 0x0a16 + textpointer DugtrioDescription ; 0x0a17 + textpointer MankeyName ; 0x0a18 + textpointer PeekName ; 0x0a19 + textpointer PeekDescription ; 0x0a1a + textpointer PeekDescriptionCont ; 0x0a1b + textpointer MankeyKind ; 0x0a1c + textpointer MankeyDescription ; 0x0a1d + textpointer PrimeapeName ; 0x0a1e + textpointer TantrumName ; 0x0a1f + textpointer TantrumDescription ; 0x0a20 + textpointer PrimeapeDescription ; 0x0a21 + textpointer MachopName ; 0x0a22 + textpointer LowKickName ; 0x0a23 + textpointer MachopKindOrSuperpowerName ; 0x0a24 + textpointer MachopDescription ; 0x0a25 + textpointer MachokeName ; 0x0a26 + textpointer KarateChopName ; 0x0a27 + textpointer KarateChopDescription ; 0x0a28 + textpointer SubmissionName ; 0x0a29 + textpointer SubmissionDescription ; 0x0a2a + textpointer MachokeDescription ; 0x0a2b + textpointer MachampName ; 0x0a2c + textpointer StrikesBackName ; 0x0a2d + textpointer StrikesBackDescription ; 0x0a2e + textpointer StrikesBackDescriptionCont ; 0x0a2f + textpointer SeismicTossName ; 0x0a30 + textpointer MachampDescription ; 0x0a31 + textpointer GeodudeName ; 0x0a32 + textpointer StoneBarrageName ; 0x0a33 + textpointer StoneBarrageDescription ; 0x0a34 + textpointer GeodudeKind ; 0x0a35 + textpointer GeodudeDescription ; 0x0a36 + textpointer GravelerName ; 0x0a37 + textpointer HardenName ; 0x0a38 + textpointer GravelersHardenDescription ; 0x0a39 + textpointer RockThrowName ; 0x0a3a + textpointer GravelerDescription ; 0x0a3b + textpointer GolemName ; 0x0a3c + textpointer AvalancheName ; 0x0a3d + textpointer GolemsSelfdestructDescription ; 0x0a3e + textpointer GolemKind ; 0x0a3f + textpointer GolemDescription ; 0x0a40 + textpointer OnixName ; 0x0a41 + textpointer OnixsHardenDescription ; 0x0a42 + textpointer OnixKind ; 0x0a43 + textpointer OnixDescription ; 0x0a44 + textpointer CuboneName ; 0x0a45 + textpointer SnivelName ; 0x0a46 + textpointer SnivelDescription ; 0x0a47 + textpointer CubonesRageDescription ; 0x0a48 + textpointer CuboneKind ; 0x0a49 + textpointer CuboneDescription ; 0x0a4a + textpointer MarowakName ; 0x0a4b + textpointer BonemerangName ; 0x0a4c + textpointer CallforFriendName ; 0x0a4d + textpointer CallforFriendDescription ; 0x0a4e + textpointer MarowakKind ; 0x0a4f + textpointer Marowak1Description ; 0x0a50 + textpointer BoneAttackName ; 0x0a51 + textpointer BoneAttackDescription ; 0x0a52 + textpointer WailName ; 0x0a53 + textpointer WailDescription ; 0x0a54 + textpointer Marowak2Description ; 0x0a55 + textpointer HitmonleeName ; 0x0a56 + textpointer StretchKickName ; 0x0a57 + textpointer StretchKickDescription ; 0x0a58 + textpointer HighJumpKickName ; 0x0a59 + textpointer HitmonleeKind ; 0x0a5a + textpointer HitmonleeDescription ; 0x0a5b + textpointer HitmonchanName ; 0x0a5c + textpointer JabName ; 0x0a5d + textpointer SpecialPunch ; 0x0a5e + textpointer HitmonchanKind ; 0x0a5f + textpointer HitmonchanDescription ; 0x0a60 + textpointer RhyhornName ; 0x0a61 + textpointer LeerName ; 0x0a62 + textpointer LeerDescription ; 0x0a63 + textpointer RhyhornKind ; 0x0a64 + textpointer RhyhornDescription ; 0x0a65 + textpointer RhydonName ; 0x0a66 + textpointer RamName ; 0x0a67 + textpointer RamDescription ; 0x0a68 + textpointer RamDescriptionCont ; 0x0a69 + textpointer RhydonDescription ; 0x0a6a + textpointer KabutoName ; 0x0a6b + textpointer KabutoArmorName ; 0x0a6c + textpointer KabutoArmorDescription ; 0x0a6d + textpointer KabutoArmorDescriptionCont ; 0x0a6e + textpointer KabutoDescription ; 0x0a6f + textpointer KabutopsName ; 0x0a70 + textpointer SharpSickleName ; 0x0a71 + textpointer AbsorbName ; 0x0a72 + textpointer AbsorbDescription ; 0x0a73 + textpointer AbsorbDescriptionCont ; 0x0a74 + textpointer KabutopsDescription ; 0x0a75 + textpointer AerodactylName ; 0x0a76 + textpointer PrehistoricPowerName ; 0x0a77 + textpointer PrehistoricPowerDescription ; 0x0a78 + textpointer AerodactylKind ; 0x0a79 + textpointer AerodactylDescription ; 0x0a7a + textpointer AbraName ; 0x0a7b + textpointer AbraKind ; 0x0a7c + textpointer AbraDescription ; 0x0a7d + textpointer KadabraName ; 0x0a7e + textpointer KadabrasRecoverDescription ; 0x0a7f + textpointer SuperPsiName ; 0x0a80 + textpointer KadabraDescription ; 0x0a81 + textpointer AlakazamName ; 0x0a82 + textpointer DamageSwapName ; 0x0a83 + textpointer DamageSwapDescription ; 0x0a84 + textpointer AlakazamDescription ; 0x0a85 + textpointer SlowpokeName ; 0x0a86 + textpointer SlowpokesAmnesiaDescription ; 0x0a87 + textpointer SlowpokeKind ; 0x0a88 + textpointer Slowpoke1Description ; 0x0a89 + textpointer SpacingOutName ; 0x0a8a + textpointer SpacingOutDescription ; 0x0a8b + textpointer ScavengeName ; 0x0a8c + textpointer ScavengeDescription ; 0x0a8d + textpointer SlowbroName ; 0x0a8e + textpointer StrangeBehaviorName ; 0x0a8f + textpointer StrangeBehaviorDescription ; 0x0a90 + textpointer SlowbroKind ; 0x0a91 + textpointer SlowbroDescription ; 0x0a92 + textpointer GastlyName ; 0x0a93 + textpointer SleepingGasName ; 0x0a94 + textpointer MayInflictSleepDescription ; 0x0a95 + textpointer DestinyBondName ; 0x0a96 + textpointer DestinyBondDescription ; 0x0a97 + textpointer GastlyKind ; 0x0a98 + textpointer Gastly1Description ; 0x0a99 + textpointer LickName ; 0x0a9a + textpointer EnergyConversionName ; 0x0a9b + textpointer EnergyConversionDescription ; 0x0a9c + textpointer Gastly2Description ; 0x0a9d + textpointer HaunterName ; 0x0a9e + textpointer TransparencyName ; 0x0a9f + textpointer TransparencyDescription ; 0x0aa0 + textpointer NightmareName ; 0x0aa1 + textpointer HaunterDescription ; 0x0aa2 + textpointer DreamEaterName ; 0x0aa3 + textpointer DreamEaterDescription ; 0x0aa4 + textpointer GengarName ; 0x0aa5 + textpointer CurseName ; 0x0aa6 + textpointer CurseDescription ; 0x0aa7 + textpointer DarkMindName ; 0x0aa8 + textpointer DarkMindDescription ; 0x0aa9 + textpointer GengarKind ; 0x0aaa + textpointer GengarDescription ; 0x0aab + textpointer DrowzeeName ; 0x0aac + textpointer PoundName ; 0x0aad + textpointer DrowzeeDescription ; 0x0aae + textpointer HypnoName ; 0x0aaf + textpointer ProphecyName ; 0x0ab0 + textpointer ProphecyDescription ; 0x0ab1 + textpointer HypnoDescription ; 0x0ab2 + textpointer MrMimeName ; 0x0ab3 + textpointer InvisibleWallName ; 0x0ab4 + textpointer InvisibleWallDescription ; 0x0ab5 + textpointer InvisibleWallDescriptionCont ; 0x0ab6 + textpointer MeditateName ; 0x0ab7 + textpointer MrMimesMeditateDescription ; 0x0ab8 + textpointer MrMimeKindOrBarrierName ; 0x0ab9 + textpointer MrMimeDescription ; 0x0aba + textpointer JynxName ; 0x0abb + textpointer DoubleAttackX10Description ; 0x0abc + textpointer JynxsMeditateDescription ; 0x0abd + textpointer JynxKind ; 0x0abe + textpointer JynxDescription ; 0x0abf + textpointer MewtwoName ; 0x0ac0 + textpointer PsychicName ; 0x0ac1 + textpointer PsychicDescription ; 0x0ac2 + textpointer BarrierDescription ; 0x0ac3 + textpointer MewtwoKind ; 0x0ac4 + textpointer Mewtwo1Description ; 0x0ac5 + textpointer EnergyAbsorptionName ; 0x0ac6 + textpointer EnergyAbsorptionDescription ; 0x0ac7 + textpointer PsyburnName ; 0x0ac8 + textpointer Mewtwo2Description ; 0x0ac9 + textpointer MewName ; 0x0aca + textpointer NeutralizingShieldName ; 0x0acb + textpointer NeutralizingShieldDescription ; 0x0acc + textpointer MewKind ; 0x0acd + textpointer Mew1Description ; 0x0ace + textpointer MysteryAttackName ; 0x0acf + textpointer MysteryAttackDescription ; 0x0ad0 + textpointer Mew2Description ; 0x0ad1 + textpointer PsywaveName ; 0x0ad2 + textpointer PsywaveDescription ; 0x0ad3 + textpointer DevolutionBeamName ; 0x0ad4 + textpointer DevolutionBeamDescription ; 0x0ad5 + textpointer PidgeyName ; 0x0ad6 + textpointer PidgeyKind ; 0x0ad7 + textpointer PidgeyDescription ; 0x0ad8 + textpointer PidgeottoName ; 0x0ad9 + textpointer MirrorMoveName ; 0x0ada + textpointer PidgeottosMirrorMoveDescription ; 0x0adb + textpointer PidgeottoKind ; 0x0adc + textpointer PidgeottoDescription ; 0x0add + textpointer PidgeotName ; 0x0ade + textpointer SlicingWindName ; 0x0adf + textpointer SlicingWildDescription ; 0x0ae0 + textpointer GaleName ; 0x0ae1 + textpointer GaleDescription ; 0x0ae2 + textpointer Pidgeot1Description ; 0x0ae3 + textpointer HurricaneName ; 0x0ae4 + textpointer HurricaneDescription ; 0x0ae5 + textpointer Pidgeot2Description ; 0x0ae6 + textpointer RattataName ; 0x0ae7 + textpointer RattataKind ; 0x0ae8 + textpointer RattataDescription ; 0x0ae9 + textpointer RaticateName ; 0x0aea + textpointer SuperFangName ; 0x0aeb + textpointer SuperFangDescription ; 0x0aec + textpointer RaticateDescription ; 0x0aed + textpointer SpearowName ; 0x0aee + textpointer PeckName ; 0x0aef + textpointer SpearowsMirrorMoveDescription ; 0x0af0 + textpointer SpearowDescription ; 0x0af1 + textpointer FearowName ; 0x0af2 + textpointer FearowsAgilityDescription ; 0x0af3 + textpointer DrillPeckName ; 0x0af4 + textpointer FearowKind ; 0x0af5 + textpointer FearowDescription ; 0x0af6 + textpointer ClefairyName ; 0x0af7 + textpointer SingName ; 0x0af8 + textpointer MetronomeName ; 0x0af9 + textpointer ClefairysMetronomeDescription ; 0x0afa + textpointer ClefairyKind ; 0x0afb + textpointer ClefairyDescription ; 0x0afc + textpointer ClefableName ; 0x0afd + textpointer ClefablesMetronomeDescription ; 0x0afe + textpointer ClefablesMinimizeDescription ; 0x0aff + textpointer ClefableDescription ; 0x0b00 + textpointer JigglypuffName ; 0x0b01 + textpointer FirstAidName ; 0x0b02 + textpointer FirstAidDescription ; 0x0b03 + textpointer DoubleEdgeName ; 0x0b04 + textpointer JigglypuffsDoubleEdgeDescription ; 0x0b05 + textpointer JigglypuffKind ; 0x0b06 + textpointer Jigglypuff1Description ; 0x0b07 + textpointer FriendshipSongName ; 0x0b08 + textpointer FriendshipSongDescription ; 0x0b09 + textpointer ExpandName ; 0x0b0a + textpointer ExpandDescription ; 0x0b0b + textpointer Jigglypuff2Description ; 0x0b0c + textpointer LullabyName ; 0x0b0d + textpointer Jigglypuff3Description ; 0x0b0e + textpointer WigglytuffName ; 0x0b0f + textpointer DoTheWaveName ; 0x0b10 + textpointer DoTheWaveDescription ; 0x0b11 + textpointer WigglytuffDescription ; 0x0b12 + textpointer MeowthName ; 0x0b13 + textpointer CatPunchName ; 0x0b14 + textpointer CatPunchDescription ; 0x0b15 + textpointer MeowthKind ; 0x0b16 + textpointer Meowth1Description ; 0x0b17 + textpointer PayDayName ; 0x0b18 + textpointer PayDayDescription ; 0x0b19 + textpointer Meowth2Description ; 0x0b1a + textpointer PersianName ; 0x0b1b + textpointer PounceName ; 0x0b1c + textpointer PounceDescription ; 0x0b1d + textpointer PersianKind ; 0x0b1e + textpointer PersianDescription ; 0x0b1f + textpointer FarfetchdName ; 0x0b20 + textpointer LeekSlapName ; 0x0b21 + textpointer LeekSlapDescription ; 0x0b22 + textpointer PotSmashName ; 0x0b23 + textpointer FarfetchdKind ; 0x0b24 + textpointer FarfetchdDescription ; 0x0b25 + textpointer DoduoName ; 0x0b26 + textpointer FuryAttackName ; 0x0b27 + textpointer DoduoKind ; 0x0b28 + textpointer DoduoDescription ; 0x0b29 + textpointer DodrioName ; 0x0b2a + textpointer RetreatAidName ; 0x0b2b + textpointer RetreatAidDescription ; 0x0b2c + textpointer DodriosRageDescription ; 0x0b2d + textpointer DodrioKind ; 0x0b2e + textpointer DodrioDescription ; 0x0b2f + textpointer LickitungName ; 0x0b30 + textpointer TongueWrapName ; 0x0b31 + textpointer LickitungKind ; 0x0b32 + textpointer LickitungDescription ; 0x0b33 + textpointer ChanseyName ; 0x0b34 + textpointer ScrunchName ; 0x0b35 + textpointer ScrunchDescription ; 0x0b36 + textpointer ChanseysDoubleEdgeDescription ; 0x0b37 + textpointer ChanseyDescription ; 0x0b38 + textpointer KangaskhanName ; 0x0b39 + textpointer FetchName ; 0x0b3a + textpointer FetchDescription ; 0x0b3b + textpointer CometPunchName ; 0x0b3c + textpointer KangaskhanKind ; 0x0b3d + textpointer KangaskhanDescription ; 0x0b3e + textpointer TaurosName ; 0x0b3f + textpointer RampageName ; 0x0b40 + textpointer RampageDescription ; 0x0b41 + textpointer TaurosKind ; 0x0b42 + textpointer TaurosDescription ; 0x0b43 + textpointer DittoName ; 0x0b44 + textpointer MorphName ; 0x0b45 + textpointer MorphDescription ; 0x0b46 + textpointer MorphDescriptionCont ; 0x0b47 + textpointer DittoKind ; 0x0b48 + textpointer DittoDescription ; 0x0b49 + textpointer TailWagName ; 0x0b4a + textpointer TailWagDescription ; 0x0b4b + textpointer EeveeKind ; 0x0b4c + textpointer EeveeDescription ; 0x0b4d + textpointer PorygonName ; 0x0b4e + textpointer Conversion1Name ; 0x0b4f + textpointer Conversion1Description ; 0x0b50 + textpointer Conversion2Name ; 0x0b51 + textpointer Conversion2Description ; 0x0b52 + textpointer PorygonKind ; 0x0b53 + textpointer PorygonDescription ; 0x0b54 + textpointer SnorlaxName ; 0x0b55 + textpointer ThickSkinnedName ; 0x0b56 + textpointer ThickSkinnedDescription ; 0x0b57 + textpointer BodySlamName ; 0x0b58 + textpointer SnorlaxKind ; 0x0b59 + textpointer SnorlaxDescription ; 0x0b5a + textpointer DratiniName ; 0x0b5b + textpointer DratiniDescription ; 0x0b5c + textpointer DragonairName ; 0x0b5d + textpointer SlamName ; 0x0b5e + textpointer DragonairDescription ; 0x0b5f + textpointer DragoniteName ; 0x0b60 + textpointer HealingWindName ; 0x0b61 + textpointer HealingWindDescription ; 0x0b62 + textpointer Dragonite1Description ; 0x0b63 + textpointer StepInName ; 0x0b64 + textpointer StepInDescription ; 0x0b65 + textpointer DoubleAttackX40Description ; 0x0b66 + textpointer DragoniteDescription ; 0x0b67 + textpointer ProfessorOakName ; 0x0b68 + textpointer ProfessorOakDescription ; 0x0b69 + textpointer ImposterProfessorOakName ; 0x0b6a + textpointer ImposterProfessorOakDescription ; 0x0b6b + textpointer BillName ; 0x0b6c + textpointer BillDescription ; 0x0b6d + textpointer MrFujiName ; 0x0b6e + textpointer MrFujiDescription ; 0x0b6f + textpointer LassName ; 0x0b70 + textpointer LassDescription ; 0x0b71 + textpointer ImakuniName ; 0x0b72 + textpointer ImakuniDescription ; 0x0b73 + textpointer PokemonTraderName ; 0x0b74 + textpointer PokemonTraderDescription ; 0x0b75 + textpointer PokemonBreederName ; 0x0b76 + textpointer PokemonBreederDescription ; 0x0b77 + textpointer ClefairyDollName ; 0x0b78 + textpointer ClefairyDollDescription ; 0x0b79 + textpointer ClefairyDollDescriptionCont ; 0x0b7a + textpointer MysteriousFossilDescription ; 0x0b7b + textpointer MysteriousFossilDescriptionCont ; 0x0b7c + textpointer EnergyRetrievalName ; 0x0b7d + textpointer EnergyRetrievalDescription ; 0x0b7e + textpointer SuperEnergyRetrievalName ; 0x0b7f + textpointer SuperEnergyRetrievalDescription ; 0x0b80 + textpointer EnergySearchName ; 0x0b81 + textpointer EnergySearchDescription ; 0x0b82 + textpointer EnergyRemovalName ; 0x0b83 + textpointer EnergyRemovalDescription ; 0x0b84 + textpointer SuperEnergyRemovalName ; 0x0b85 + textpointer SuperEnergyRemovalDescription ; 0x0b86 + textpointer SwitchName ; 0x0b87 + textpointer SwitchDescription ; 0x0b88 + textpointer PokemonCenterName ; 0x0b89 + textpointer PokemonCenterDescription ; 0x0b8a + textpointer PokeBallName ; 0x0b8b + textpointer PokeBallDescription ; 0x0b8c + textpointer ScoopUpName ; 0x0b8d + textpointer ScoopUpDescription ; 0x0b8e + textpointer ComputerSearchName ; 0x0b8f + textpointer ComputerSearchDescription ; 0x0b90 + textpointer PokedexName ; 0x0b91 + textpointer PokedexDescription ; 0x0b92 + textpointer PlusPowerName ; 0x0b93 + textpointer PlusPowerDescription ; 0x0b94 + textpointer DefenderName ; 0x0b95 + textpointer DefenderDescription ; 0x0b96 + textpointer ItemFinderName ; 0x0b97 + textpointer ItemFinderDescription ; 0x0b98 + textpointer GustOfWindName ; 0x0b99 + textpointer GustOfWindDescription ; 0x0b9a + textpointer DevolutionSprayName ; 0x0b9b + textpointer DevolutionSprayDescription ; 0x0b9c + textpointer DevolutionSprayDescriptionCont ; 0x0b9d + textpointer PotionName ; 0x0b9e + textpointer PotionDescription ; 0x0b9f + textpointer SuperPotionName ; 0x0ba0 + textpointer SuperPotionDescription ; 0x0ba1 + textpointer FullHealName ; 0x0ba2 + textpointer FullHealDescription ; 0x0ba3 + textpointer ReviveName ; 0x0ba4 + textpointer ReviveDescription ; 0x0ba5 + textpointer MaintenanceName ; 0x0ba6 + textpointer MaintenanceDescription ; 0x0ba7 + textpointer PokemonFluteName ; 0x0ba8 + textpointer PokemonFluteDescription ; 0x0ba9 + textpointer GamblerName ; 0x0baa + textpointer GamblerDescription ; 0x0bab + textpointer RecycleName ; 0x0bac + textpointer RecycleDescription ; 0x0bad -- cgit v1.2.3 From c60dd37d93cf681b40052e7c970d88feab037c86 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Wed, 21 Feb 2018 13:58:32 +0100 Subject: Some hram labels --- src/engine/bank1.asm | 70 ++++++++++++++++++------------------ src/engine/bank2.asm | 8 ++--- src/engine/bank20.asm | 4 +-- src/engine/bank4.asm | 12 +++---- src/engine/bank5.asm | 4 +-- src/engine/bank8.asm | 4 +-- src/engine/effect_functions.asm | 2 +- src/engine/home.asm | 80 ++++++++++++++++++++++------------------- src/hram.asm | 24 +++++++++++-- src/text/text1.asm | 2 +- src/text/text_offsets.asm | 8 ++--- src/wram.asm | 3 +- 12 files changed, 123 insertions(+), 98 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 3e924be..1c4fd43 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -300,7 +300,7 @@ HandleTurn: ; 4225 (1:4225) ret .deck_not_empty - ldh [hTempCardNumber], a + ldh [hTempCardNumber_ff98], a call AddCardToHand ld a, [wcc0d] cp DUELIST_TYPE_PLAYER @@ -443,7 +443,7 @@ DuelMenu_Done: ; 439a (1:439a) call $51e7 jp c, Func_4268 ld a, $05 - call Func_0f7f + call SetDuelAIAction call $717a ret @@ -467,9 +467,9 @@ DuelMenu_Retreat: ; 43ab (1:43ab) jr c, Func_441c ld [wBenchSelectedPokemon], a ld a, [wBenchSelectedPokemon] - ldh [$ffa1], a + ldh [hTempPlayAreaLocationOffset_ffa1], a ld a, $04 - call Func_0f7f + call SetDuelAIAction call $657a jr nc, Func_441c call $4f9d @@ -489,13 +489,13 @@ Func_43f1: ; 43f1 (1:43f1) call DrawWideTextBox_WaitForInput call $600c ld [wBenchSelectedPokemon], a - ldh [$ffa1], a + ldh [hTempPlayAreaLocationOffset_ffa1], a push af call $6564 pop af jp c, Func_426d ld a, $04 - call Func_0f7f + call SetDuelAIAction call $657a Func_441c: ; 441c (1:441c) @@ -536,15 +536,15 @@ PlayerUseEnergyCard: ; 4477 (1:4477) ld a, $1 ld [wAlreadyPlayedEnergy], a .asm_4495 - ld a, [$ff9d] - ld [$ffa1], a + ldh a, [hTempPlayAreaLocationOffset_ff9d] + ldh [hTempPlayAreaLocationOffset_ffa1], a ld e, a - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] ld [$ffa0], a call $14d2 call $61b8 ld a, $3 - call Func_0f7f + call SetDuelAIAction call $68e4 jp Func_426d @@ -639,7 +639,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) ld d, [hl] ; card number within the deck (0 to 59) inc hl ld e, [hl] ; attack index (0 or 1) - call CopyMoveDataAndDamageToBuffer + call CopyMoveDataAndDamage call HandleAmnesiaSubstatus jr c, .cannot_use_due_to_amnesia ld a, $07 @@ -763,7 +763,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) call DrawWideTextBox ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - ldh [hTempCardNumber], a + ldh [hTempCardNumber_ff98], a call LoadDeckCardToBuffer1 ld c, $00 ld b, $0d @@ -773,7 +773,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) ld de, wLoadedCard1Move1Name call CheckIfMoveExists jr c, .check_for_second_attack_slot - ldh a, [hTempCardNumber] + ldh a, [hTempCardNumber_ff98] ld [hli], a xor a ld [hli], a @@ -792,7 +792,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) ld de, wLoadedCard1Move2Name call CheckIfMoveExists jr c, .finish_loading_attacks - ldh a, [hTempCardNumber] + ldh a, [hTempCardNumber_ff98] ld [hli], a ld a, $01 ld [hli], a @@ -1032,10 +1032,10 @@ Func_4b60: ; 4b60 (1:4b60) jp Func_4b60 .asm_4bd0 - ld a, [$ff97] + ldh a, [hWhoseTurn] push af - ld a, $c2 - ld [$ff97], a + ld a, PLAYER_TURN + ldh [hWhoseTurn], a call Func_4cd5 call SwapTurn call Func_4cd5 @@ -1055,7 +1055,7 @@ Func_4b60: ; 4b60 (1:4b60) call $4c7c call WaitForWideTextBoxInput pop af - ld [$ff97], a + ldh [hWhoseTurn], a call $7133 call SwapTurn call $7133 @@ -1065,8 +1065,8 @@ Func_4b60: ; 4b60 (1:4b60) call DrawDuelBoxMessage ldtx hl, CoinTossToDetermineWhoFirstText call DrawWideTextBox_WaitForInput - ld a, [$ff97] - cp $c2 + ldh a, [hWhoseTurn] + cp PLAYER_TURN jr nz, .asm_4c52 ld de, wc590 call PrintPlayerName @@ -1158,14 +1158,14 @@ Func_4cd5: ; 4cd5 (1:4cd5) ld hl, $006e call $5502 jr c, .asm_4d28 - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] call LoadDeckCardToBuffer1 ld a, $2 call $51e7 jr c, .asm_4d28 - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] call Func_1485 - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] ld hl, $0062 call $4b31 jr .asm_4d4c @@ -1174,7 +1174,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) call EmptyScreen ld a, BOXMSG_BENCH_POKEMON call DrawDuelBoxMessage - ld hl, $006d + ldtx hl, ChooseUpTo5BasicPkmnToPlaceOnBenchText call Func_2c73 ld a, $3 call $51e7 @@ -1183,13 +1183,13 @@ Func_4cd5: ; 4cd5 (1:4cd5) ld hl, $006f call $5502 jr c, .asm_4d8e - ld a, $ef + ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY call GetTurnDuelistVariable - cp $6 + cp MAX_POKEMON_IN_PLAY jr nc, .asm_4d86 - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] call Func_1485 - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] ld hl, $0061 call $4b31 ld a, $5 @@ -1252,7 +1252,7 @@ LoadPlayerDeck: ; 6793 (1:6793) ; related to ai taking their turn in a duel ; called multiple times during one ai turn AIMakeDecision: ; 67be (1:67be) - ld [$ff9e], a + ldh [hAIActionTableIndex], a ld hl, $cbf9 ld a, [hl] ld [hl], $0 @@ -1265,10 +1265,10 @@ AIMakeDecision: ; 67be (1:67be) jr c, .delay_loop .skip_delay - ld a, [$ff9e] + ldh a, [hAIActionTableIndex] ld hl, $cbe1 ld [hl], $0 - ld hl, AIMoveTable + ld hl, AIActionTable call JumpToFunctionInTable ld a, [wDuelFinished] ld hl, $cbe1 @@ -1290,7 +1290,7 @@ AIMakeDecision: ; 67be (1:67be) INCROM $67fb, $695e -AIMoveTable: ; 695e (1:695e) +AIActionTable: ; 695e (1:695e) dw Func_0f35 dw $69e0 dw $69c5 @@ -1318,11 +1318,11 @@ AIMoveTable: ; 695e (1:695e) INCROM $698c, $69a5 AIUseEnergyCard: ; 69a5 (1:69a5) - ld a, [$ffa1] - ld [$ff9d], a + ldh a, [hTempPlayAreaLocationOffset_ffa1] + ldh [hTempPlayAreaLocationOffset_ff9d], a ld e, a ld a, [$ffa0] - ld [$ff98], a + ldh [hTempCardNumber_ff98], a call $14d2 ld a, [$ffa0] call LoadDeckCardToBuffer1 diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index a9871fd..2f66195 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -925,13 +925,13 @@ Func_ba04: ; ba04 (2:7a04) call DoFrame call HandleMenuInput jr c, .asm_baa3 - ld a, [$ff8f] - and $c0 + ldh a, [hButtonsPressed2] + and D_UP | D_DOWN jr z, .asm_ba4e .asm_ba4e - ld a, [$ff8f] - and $8 + ldh a, [hButtonsPressed2] + and START jr z, .asm_ba40 ld a, [$cea1] ld [$d087], a diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index b8dffd0..e0ed703 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -61,7 +61,7 @@ Func_801a1: ; 801a1 (20:41a1) push hl push bc push de - ld a, [$ff81] + ldh a, [hBankSRAM] push af ld a, $1 call BankswitchSRAM @@ -111,7 +111,7 @@ Func_801a1: ; 801a1 (20:41a1) Func_801f1: ; 801f1 (20:41f1) push hl push bc - ld a, [$ff81] + ldh a, [hBankSRAM] push af ld a, $1 call BankswitchSRAM diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index c2a95ac..0e9b4c8 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -7,8 +7,8 @@ Func_10000: ; 10000 (4:4000) call Func_2275 call Set_OBJ_8x8 xor a - ld [$ff92], a - ld [$ff93], a + ldh [hSCX], a + ldh [hSCY], a ld a, [wLCDC] bit 7, a jr nz, .asm_10025 @@ -24,7 +24,7 @@ Func_10000: ; 10000 (4:4000) ret Func_10031: ; 10031 (4:4031) - ld a, [$ff81] + ldh a, [hBankSRAM] push af ld a, $1 call BankswitchSRAM @@ -286,7 +286,7 @@ Func_10af9: ; 10af9 (4:4af9) INCROM $10af9, $10c96 Func_10c96: ; 10c96 (4:4c96) - ld a, [$ff81] + ldh a, [hBankSRAM] push af push bc ld a, $1 @@ -839,9 +839,9 @@ INCLUDE "data/map_scripts.asm" Func_1184a: ; 1184a (4:584a) ; this may have been a macro rlca - add (PointerTable_118f5 & $ff) + add LOW(PointerTable_118f5) ld l, a - ld a, PointerTable_118f5 >> 8 + ld a, HIGH(PointerTable_118f5) adc $00 ld h, a ld a, [hli] diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 7a22558..4e21b6b 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -61,7 +61,7 @@ Func_14226: ; 14226 (5:4226) ld hl, wDuelCardOrAttackList .check_for_next_pokemon ld a, [hli] - ld [$ff98], a + ldh [hTempCardNumber_ff98], a cp $ff ret z call LoadDeckCardToBuffer1 @@ -72,7 +72,7 @@ Func_14226: ; 14226 (5:4226) or a jr nz, .check_for_next_pokemon push hl - ld a, [$ff98] + ldh a, [hTempCardNumber_ff98] call Func_1485 pop hl jr .check_for_next_pokemon diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index 260ffbf..0dbe211 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -45,7 +45,7 @@ Func_200e5: ; 200e5 (8:40e5) push hl push de ld a, [$ce16] - ld [$ff9f], a + ldh [hTempCardNumber_ff9f], a bank1call $35a9 jp c, $41a8 call Func_1944 @@ -66,7 +66,7 @@ Func_200e5: ; 200e5 (8:40e5) push de push hl ld a, [$ce16] - ld [$ff9f], a + ldh [hTempCardNumber_ff9f], a ld a, $6 bank1call $67be pop hl diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index 88a8361..1d49838 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -108,7 +108,7 @@ asm_2c08c push de push af ld a, $11 - call Func_0f7f + call SetDuelAIAction pop af pop de call Func_0fac diff --git a/src/engine/home.asm b/src/engine/home.asm index 7ccea04..7257af3 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1220,7 +1220,7 @@ BankswitchHome: ; 07a3 (0:07a3) ; switch SRAM bank BankswitchSRAM: ; 07a9 (0:07a9) push af - ldh [hBankRAM], a + ldh [hBankSRAM], a ld [MBC3SRamBank], a ld a, SRAM_ENABLE ld [MBC3SRamEnable], a @@ -2492,15 +2492,17 @@ Func_0f58: ; 0f58 (0:0f58) jp c, Func_0f35 ret -Func_0f7f: ; 0f7f (0:0f7f) +; sets hAIActionTableIndex to an AI action specified in register a +; also appears to handle sending data in a link duel +SetDuelAIAction: ; 0f7f (0:0f7f) push hl push bc - ld [$ff9e], a + ldh [hAIActionTableIndex], a ld a, DUELVARS_DUELIST_TYPE call GetNonTurnDuelistVariable cp DUELIST_TYPE_LINK_OPP jr nz, .not_link - ld hl, $ff9e + ld hl, hAIActionTableIndex ld bc, $000a call Func_0ebf call Func_0f58 @@ -2513,7 +2515,7 @@ Func_0f7f: ; 0f7f (0:0f7f) Func_0f9b: ; 0f9b (0:0f9b) push hl push bc - ld hl, $ff9e + ld hl, hAIActionTableIndex ld bc, $000a call Func_0ed5 call Func_0f58 @@ -3191,7 +3193,7 @@ GetCardInDeckPosition_bc: ; 12fa (0:12fa) ret ; 0x1303 -; return [wDuelCardOrAttackList + a] in a and in hTempCardNumber +; return [wDuelCardOrAttackList + a] in a and in hTempCardNumber_ff98 Func_1303: ; 1303 (0:1303) push hl push de @@ -3200,7 +3202,7 @@ Func_1303: ; 1303 (0:1303) ld hl, wDuelCardOrAttackList add hl, de ld a, [hl] - ldh [hTempCardNumber], a + ldh [hTempCardNumber_ff98], a pop de pop hl ret @@ -3208,7 +3210,7 @@ Func_1303: ; 1303 (0:1303) ; given the deck position (0-59) of a card in [wDuelCardOrAttackList + a], return: ; - the id of the card located in that deck position in register de -; - [wDuelCardOrAttackList + a] in hTempCardNumber and in register a +; - [wDuelCardOrAttackList + a] in hTempCardNumber_ff98 and in register a GetCardInList: ; 1312 (0:1312) push hl ld e, a @@ -3216,14 +3218,14 @@ GetCardInList: ; 1312 (0:1312) ld hl, wDuelCardOrAttackList add hl, de ld a, [hl] - ldh [hTempCardNumber], a + ldh [hTempCardNumber_ff98], a call GetCardInDeckPosition pop hl - ldh a, [hTempCardNumber] + ldh a, [hTempCardNumber_ff98] ret ; 0x1324 -; returns, in register de, the id of the card in the deck position specified by register a +; returns, in register de, the id of the card in the deck position (0-59) specified by register a ; preserves af and hl GetCardInDeckPosition: ; 1324 (0:1324) push af @@ -3238,7 +3240,7 @@ GetCardInDeckPosition: ; 1324 (0:1324) INCROM $132f, $1362 -; returns, in register a, the id of the card in the deck position specified in register a +; returns, in register a, the id of the card in the deck position (0-59) specified in register a _GetCardInDeckPosition: ; 1362 (0:1362) push de ld e, a @@ -3254,7 +3256,7 @@ _GetCardInDeckPosition: ; 1362 (0:1362) pop de ret -; load data of card in position a to wLoadedCard1 +; load data of card in deck position a (0-59) to wLoadedCard1 LoadDeckCardToBuffer1: ; 1376 (0:1376) push hl push de @@ -3271,7 +3273,7 @@ LoadDeckCardToBuffer1: ; 1376 (0:1376) pop hl ret -; load data of card in position a to wLoadedCard2 +; load data of card in deck position a (0-59) to wLoadedCard2 LoadDeckCardToBuffer2: ; 138c (0:138c) push hl push de @@ -3472,11 +3474,14 @@ GetNonTurnDuelistVariable: ; 1611 (0:1611) INCROM $161e, $16c0 -CopyMoveDataAndDamageToBuffer: ; 16c0 (0:16c0) +; copies from card identified by register d (0-59): +; - Move1 (if e == 0) or Move2 (if e == 1) data into wLoadedMove +; - Also from that move, its Damage field into wDamage +CopyMoveDataAndDamage: ; 16c0 (0:16c0) ld a, e ld [wSelectedMoveIndex], a ld a, d - ld [$ff9f], a + ldh [hTempCardNumber_ff9f], a call LoadDeckCardToBuffer1 ld a, [wLoadedCard1ID] ld [wTempCardId], a @@ -3507,7 +3512,7 @@ CopyMoveDataAndDamageToBuffer: ; 16c0 (0:16c0) Func_16f6: ; 16f6 (0:16f6) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - ld [$ff9f], a + ldh [hTempCardNumber_ff9f], a call GetCardInDeckPosition ld a, e ld [wTempTurnDuelistCardId], a @@ -3532,7 +3537,7 @@ Func_16f6: ; 16f6 (0:16f6) Func_1730: ; 1730 (0:1730) ld a, [wSelectedMoveIndex] ld [wcc10], a - ld a, [$ff9f] + ldh a, [hTempCardNumber_ff9f] ld [wcc11], a ld a, [wTempCardId] ld [wcc12], a @@ -3559,7 +3564,7 @@ Func_1730: ; 1730 (0:1730) jp c, Func_1821 .asm_1777 ld a, $9 - call Func_0f7f + call SetDuelAIAction ld a, $6 call TryExecuteEffectCommandFunction call CheckSelfConfusionDamage @@ -3570,7 +3575,7 @@ Func_1730: ; 1730 (0:1730) ld a, $5 call TryExecuteEffectCommandFunction ld a, $a - call Func_0f7f + call SetDuelAIAction call $7415 ld a, [wLoadedMoveCategory] and RESIDUAL @@ -3580,7 +3585,7 @@ Func_1730: ; 1730 (0:1730) call SwapTurn .asm_17ad xor a - ld [$ff9d], a + ldh [hTempPlayAreaLocationOffset_ff9d], a ld a, $3 call TryExecuteEffectCommandFunction call Func_1994 @@ -3677,14 +3682,14 @@ Func_184b: ; 184b (0:184b) call TryExecuteEffectCommandFunction jr c, Func_1821 ld a, $c - call Func_0f7f + call SetDuelAIAction call Func_0f58 ld a, $d - call Func_0f7f + call SetDuelAIAction ld a, $3 call TryExecuteEffectCommandFunction ld a, $16 - call Func_0f7f + call SetDuelAIAction ret Func_1874: ; 1874 (0:1874) @@ -3693,19 +3698,19 @@ Func_1874: ; 1874 (0:1874) ret nz ld a, [$ffa0] push af - ld a, [$ff9f] + ldh a, [hTempCardNumber_ff9f] push af ld a, $1 ld [wccec], a ld a, [wcc11] - ld [$ff9f], a + ldh [hTempCardNumber_ff9f], a ld a, [wcc10] ld [$ffa0], a ld a, $8 - call Func_0f7f + call SetDuelAIAction call Func_0f58 pop af - ld [$ff9f], a + ldh [hTempCardNumber_ff9f], a pop af ld [$ffa0], a ret @@ -3769,9 +3774,10 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7) INCROM $18f9, $1944 -; this loads HP and Stage (1 byte each) of card with id at $ff9f into wLoadedMoveEffectCommands +; this loads HP and Stage (1 byte each) of the card with deck index (0-59) at hTempCardNumber_ff9f +; into wLoadedMoveEffectCommands Func_1944: ; 1944 (0:1944) - ld a, [$ff9f] + ldh a, [hTempCardNumber_ff9f] call LoadDeckCardToBuffer1 ld hl, wLoadedCard1HP ld de, wLoadedMoveEffectCommands @@ -3827,7 +3833,7 @@ Func_1994: ; 1994 (0:1994) ret .non_zero_damage xor a - ld [$ff9d], a + ldh [hTempPlayAreaLocationOffset_ff9d], a ld d, [hl] dec hl ld e, [hl] @@ -3843,7 +3849,7 @@ Func_1994: ; 1994 (0:1994) ld a, e or d ret z - ld a, [$ff9d] + ldh a, [hTempPlayAreaLocationOffset_ff9d] call Func_36f7 call Func_1a0e ld b, a @@ -4066,7 +4072,7 @@ Func_1bb4: ; 1bb4 (0:1bb4) bank1call $4f9d call $503a xor a - ld [$ff9d], a + ldh [hTempPlayAreaLocationOffset_ff9d], a call Func_1bca call WaitForWideTextBoxInput call Func_0f58 @@ -4078,7 +4084,7 @@ Func_1bca: ; 1bca (0:1bca) ret z cp $1 jr z, .asm_1bfd - ld a, [$ff9d] + ldh a, [hTempPlayAreaLocationOffset_ff9d] add DUELVARS_ARENA_CARD call GetTurnDuelistVariable call LoadDeckCardToBuffer1 @@ -5469,7 +5475,7 @@ Func_256d: ; 256d (0:256d) ; initializes cursor parameters given the 8 bytes starting at hl, ; which represent the following: -; x position, y position, y displacement between items, number of items, +; x coord, y coord, y displacement between items, number of items, ; cursor tile number, tile behind cursor, ???? (unknown function pointer if non-0) ; also sets the current menu item to the one specified in register a InitializeCursorParameters: ; 2636 (0:2636) @@ -6082,7 +6088,7 @@ Func_2bc3: ; 2bc3 (0:2bc3) Func_2bc7: ; 2bc7 (0:2bc7) ld a, $3 call Func_2bdb - ld [$ff9d], a + ldh [hTempPlayAreaLocationOffset_ff9d], a ret Func_2bcf: ; 2bcf (0:2bcf) @@ -6242,7 +6248,7 @@ Func_2cd7: ; 2cd7 (0:2cd7) Func_2ceb: ; 2ceb (0:2ceb) call Func_2cd7 - ld hl, $ce48 + ld hl, wce48 inc [hl] ret diff --git a/src/hram.asm b/src/hram.asm index 1951d99..56837e7 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -3,7 +3,7 @@ SECTION "HRAM", HRAM hBankROM:: ; ff80 ds 1 -hBankRAM:: ; ff81 +hBankSRAM:: ; ff81 ds 1 hBankVRAM:: ; ff82 @@ -45,10 +45,28 @@ hWY:: ; ff95 hWhoseTurn:: ; ff97 ds 1 -hTempCardNumber:: ; ff98 +; deck position (index) of a card (0-59) +hTempCardNumber_ff98:: ; ff98 ds 1 - ds 22 + ds 4 + +; 0: arena card ; 1-5: bench card +hTempPlayAreaLocationOffset_ff9d:: ; ff9d + ds 1 + +hAIActionTableIndex:: ; ff9e + ds 1 + +hTempCardNumber_ff9f:: ; ff9f + ds 1 + + ds 1 + +hTempPlayAreaLocationOffset_ffa1:: ; ffa1 + ds 1 + + ds 13 hffaf:: ; ffaf ds 1 diff --git a/src/text/text1.asm b/src/text/text1.asm index 40e92a1..f21f081 100644 --- a/src/text/text1.asm +++ b/src/text/text1.asm @@ -477,7 +477,7 @@ Text006c: ; 36c54 (d:6c54) line "and draw again." done -Text006d: ; 36c82 (d:6c82) +ChooseUpTo5BasicPkmnToPlaceOnBenchText: ; 36c82 (d:6c82) text "You may choose up to 5 Basic Pok`mon" line "to place on the Bench." done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index 425fd2e..8afb421 100644 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -88,7 +88,7 @@ TextOffsets:: ; 34000 (d:4000) textpointer YouPlaySecondText ; 0x0054 textpointer TransmissionErrorText ; 0x0055 textpointer Text0056 ; 0x0056 - textpointer TransmitingDataText ; 0x0057 + textpointer TransmitingDataText ; 0x0057 textpointer Text0058 ; 0x0058 textpointer Text0059 ; 0x0059 textpointer Text005a ; 0x005a @@ -106,11 +106,11 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text0066 ; 0x0066 textpointer Text0067 ; 0x0067 textpointer Text0068 ; 0x0068 - textpointer ChooseBasicPkmnToPlaceInArenaText ; 0x0069 + textpointer ChooseBasicPkmnToPlaceInArenaText ; 0x0069 textpointer Text006a ; 0x006a textpointer NeitherPlayerHasBasicPkmnText ; 0x006b textpointer Text006c ; 0x006c - textpointer Text006d ; 0x006d + textpointer ChooseUpTo5BasicPkmnToPlaceOnBenchText ; 0x006d textpointer Text006e ; 0x006e textpointer Text006f ; 0x006f textpointer Text0070 ; 0x0070 @@ -179,7 +179,7 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text00af ; 0x00af textpointer Text00b0 ; 0x00b0 textpointer Text00b1 ; 0x00b1 - textpointer NoSpaceOnTheBenchText ; 0x00b2 + textpointer NoSpaceOnTheBenchText ; 0x00b2 textpointer Text00b3 ; 0x00b3 textpointer Text00b4 ; 0x00b4 textpointer Text00b5 ; 0x00b5 diff --git a/src/wram.asm b/src/wram.asm index f081eb5..82f4ab8 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -13,7 +13,7 @@ wTempCardCollection:: ; c000 SECTION "WRAM Duels 1", WRAM0 ; In order to be identified during a duel, the 60 cards of each duelist are given an index between 0 and 59. -; These indexes are assigned following the internal order of the cards that make up the deck. +; These indexes are assigned following the internal order (id) of the cards that make up the deck. ; This temporary index identifies the card during the current duel and within the duelist's deck. wPlayerDuelVariables:: ; c200 @@ -434,6 +434,7 @@ wCardPageNumber:: ; cbc7 wcbc9:: ; cbc9 ds $2 +; selected bench slot (1-5) wBenchSelectedPokemon:: ; cbcb ds $1 -- cgit v1.2.3 From daa8e5da6abdc48354d1a707c10dd1383bbc65f5 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Wed, 21 Feb 2018 16:13:19 +0100 Subject: Consolidate card deck index (0-59 position) / card id (card_constants.asm) references --- src/engine/bank1.asm | 22 +++++++-------- src/engine/bank5.asm | 8 +++--- src/engine/bank8.asm | 4 +-- src/engine/home.asm | 78 ++++++++++++++++++++++++++-------------------------- src/hram.asm | 6 ++-- src/wram.asm | 11 ++++++-- 6 files changed, 68 insertions(+), 61 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 1c4fd43..91629a6 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -300,7 +300,7 @@ HandleTurn: ; 4225 (1:4225) ret .deck_not_empty - ldh [hTempCardNumber_ff98], a + ldh [hTempCardIndex_ff98], a call AddCardToHand ld a, [wcc0d] cp DUELIST_TYPE_PLAYER @@ -539,7 +539,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) ldh a, [hTempPlayAreaLocationOffset_ff9d] ldh [hTempPlayAreaLocationOffset_ffa1], a ld e, a - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] ld [$ffa0], a call $14d2 call $61b8 @@ -763,7 +763,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) call DrawWideTextBox ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - ldh [hTempCardNumber_ff98], a + ldh [hTempCardIndex_ff98], a call LoadDeckCardToBuffer1 ld c, $00 ld b, $0d @@ -773,7 +773,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) ld de, wLoadedCard1Move1Name call CheckIfMoveExists jr c, .check_for_second_attack_slot - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] ld [hli], a xor a ld [hli], a @@ -792,7 +792,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) ld de, wLoadedCard1Move2Name call CheckIfMoveExists jr c, .finish_loading_attacks - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] ld [hli], a ld a, $01 ld [hli], a @@ -1158,14 +1158,14 @@ Func_4cd5: ; 4cd5 (1:4cd5) ld hl, $006e call $5502 jr c, .asm_4d28 - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] call LoadDeckCardToBuffer1 ld a, $2 call $51e7 jr c, .asm_4d28 - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] call Func_1485 - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] ld hl, $0062 call $4b31 jr .asm_4d4c @@ -1187,9 +1187,9 @@ Func_4cd5: ; 4cd5 (1:4cd5) call GetTurnDuelistVariable cp MAX_POKEMON_IN_PLAY jr nc, .asm_4d86 - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] call Func_1485 - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] ld hl, $0061 call $4b31 ld a, $5 @@ -1322,7 +1322,7 @@ AIUseEnergyCard: ; 69a5 (1:69a5) ldh [hTempPlayAreaLocationOffset_ff9d], a ld e, a ld a, [$ffa0] - ldh [hTempCardNumber_ff98], a + ldh [hTempCardIndex_ff98], a call $14d2 ld a, [$ffa0] call LoadDeckCardToBuffer1 diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 4e21b6b..6892ec2 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -61,7 +61,7 @@ Func_14226: ; 14226 (5:4226) ld hl, wDuelCardOrAttackList .check_for_next_pokemon ld a, [hli] - ldh [hTempCardNumber_ff98], a + ldh [hTempCardIndex_ff98], a cp $ff ret z call LoadDeckCardToBuffer1 @@ -72,7 +72,7 @@ Func_14226: ; 14226 (5:4226) or a jr nz, .check_for_next_pokemon push hl - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] call Func_1485 pop hl jr .check_for_next_pokemon @@ -252,7 +252,7 @@ Func_15649: ; 15649 (5:5649) cp $ff jr z, .asm_156b1 call SwapTurn - call GetCardInDeckPosition + call GetCardIDFromDeckIndex call SwapTurn ld a, e cp MEWTWO1 ; I believe this is a check for Mewtwo1's Barrier move @@ -267,7 +267,7 @@ Func_15649: ; 15649 (5:5649) ld a, (wPlayerArenaCard & $FF) call GetNonTurnDuelistVariable call SwapTurn - call GetCardInDeckPosition + call GetCardIDFromDeckIndex call SwapTurn ld a, e cp MEWTWO1 diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index 0dbe211..dd3026f 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -45,7 +45,7 @@ Func_200e5: ; 200e5 (8:40e5) push hl push de ld a, [$ce16] - ldh [hTempCardNumber_ff9f], a + ldh [hTempCardIndex_ff9f], a bank1call $35a9 jp c, $41a8 call Func_1944 @@ -66,7 +66,7 @@ Func_200e5: ; 200e5 (8:40e5) push de push hl ld a, [$ce16] - ldh [hTempCardNumber_ff9f], a + ldh [hTempCardIndex_ff9f], a ld a, $6 bank1call $67be pop hl diff --git a/src/engine/home.asm b/src/engine/home.asm index 7257af3..bc1349c 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2626,13 +2626,13 @@ Func_100b: ; 100b (0:100b) push hl ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call GetCardInDeckPosition + call GetCardIDFromDeckIndex ld a, e ld [wTempTurnDuelistCardId], a call SwapTurn ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call GetCardInDeckPosition + call GetCardIDFromDeckIndex ld a, e ld [wTempNonTurnDuelistCardId], a call SwapTurn @@ -2733,7 +2733,7 @@ ShuffleDeck: ; 10bc (0:10bc) ld b, a ld a, DUELVARS_DECK_CARDS add [hl] - ld l, a ; hl = position of the first (top) deck card in the wPlayerDeckCards or wOpponentDeckCards array + ld l, a ; hl = DUELVARS_DECK_CARDS + [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK] ld a, b ; a = number of cards in the deck call ShuffleCards ret @@ -3143,7 +3143,7 @@ FindLastCardInHand: ; 1271 (0:1271) ; shuffles the deck by swapping the position of each card with the position of another random card ; input: ; - a = how many cards to shuffle -; - hl = position of the first card within the wPlayerDeckCards or wOpponentDeckCards array +; - hl = DUELVARS_DECK_CARDS + [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK] ShuffleCards: ; 127f (0:127f) or a ret z ; return if deck is empty @@ -3182,18 +3182,18 @@ ShuffleCards: ; 127f (0:127f) INCROM $12a3, $12fa -; returns, in register bc, the id of the card in the deck position specified in register a +; returns, in register bc, the id of the card with the deck index specified in register a ; preserves hl -GetCardInDeckPosition_bc: ; 12fa (0:12fa) +GetCardIDFromDeckIndex_bc: ; 12fa (0:12fa) push hl - call _GetCardInDeckPosition + call _GetCardIDFromDeckIndex ld c, a ld b, $0 pop hl ret ; 0x1303 -; return [wDuelCardOrAttackList + a] in a and in hTempCardNumber_ff98 +; return [wDuelCardOrAttackList + a] in a and in hTempCardIndex_ff98 Func_1303: ; 1303 (0:1303) push hl push de @@ -3202,15 +3202,15 @@ Func_1303: ; 1303 (0:1303) ld hl, wDuelCardOrAttackList add hl, de ld a, [hl] - ldh [hTempCardNumber_ff98], a + ldh [hTempCardIndex_ff98], a pop de pop hl ret ; 0x1312 -; given the deck position (0-59) of a card in [wDuelCardOrAttackList + a], return: -; - the id of the card located in that deck position in register de -; - [wDuelCardOrAttackList + a] in hTempCardNumber_ff98 and in register a +; given the deck index (0-59) of a card in [wDuelCardOrAttackList + a], return: +; - the id of the card with that deck index in register de +; - [wDuelCardOrAttackList + a] in hTempCardIndex_ff98 and in register a GetCardInList: ; 1312 (0:1312) push hl ld e, a @@ -3218,19 +3218,19 @@ GetCardInList: ; 1312 (0:1312) ld hl, wDuelCardOrAttackList add hl, de ld a, [hl] - ldh [hTempCardNumber_ff98], a - call GetCardInDeckPosition + ldh [hTempCardIndex_ff98], a + call GetCardIDFromDeckIndex pop hl - ldh a, [hTempCardNumber_ff98] + ldh a, [hTempCardIndex_ff98] ret ; 0x1324 -; returns, in register de, the id of the card in the deck position (0-59) specified by register a +; returns, in register de, the id of the card with the deck index (0-59) specified by register a ; preserves af and hl -GetCardInDeckPosition: ; 1324 (0:1324) +GetCardIDFromDeckIndex: ; 1324 (0:1324) push af push hl - call _GetCardInDeckPosition + call _GetCardIDFromDeckIndex ld e, a ld d, $0 pop hl @@ -3240,8 +3240,8 @@ GetCardInDeckPosition: ; 1324 (0:1324) INCROM $132f, $1362 -; returns, in register a, the id of the card in the deck position (0-59) specified in register a -_GetCardInDeckPosition: ; 1362 (0:1362) +; returns, in register a, the id of the card with the deck index (0-59) specified in register a +_GetCardIDFromDeckIndex: ; 1362 (0:1362) push de ld e, a ld d, $0 @@ -3256,13 +3256,13 @@ _GetCardInDeckPosition: ; 1362 (0:1362) pop de ret -; load data of card in deck position a (0-59) to wLoadedCard1 +; load data of card with deck index a (0-59) to wLoadedCard1 LoadDeckCardToBuffer1: ; 1376 (0:1376) push hl push de push bc push af - call GetCardInDeckPosition + call GetCardIDFromDeckIndex call LoadCardDataToBuffer1 pop af ld hl, wLoadedCard1 @@ -3273,13 +3273,13 @@ LoadDeckCardToBuffer1: ; 1376 (0:1376) pop hl ret -; load data of card in deck position a (0-59) to wLoadedCard2 +; load data of card with deck index a (0-59) to wLoadedCard2 LoadDeckCardToBuffer2: ; 138c (0:138c) push hl push de push bc push af - call GetCardInDeckPosition + call GetCardIDFromDeckIndex call LoadCardDataToBuffer2 pop af ld hl, wLoadedCard2 @@ -3435,7 +3435,7 @@ CountCardIDInLocation: ; 15ef (0:15ef) jr nz, .unmatching_card_location_orID ld a, l push hl - call _GetCardInDeckPosition + call _GetCardIDFromDeckIndex cp e pop hl jr nz, .unmatching_card_location_orID @@ -3481,7 +3481,7 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0) ld a, e ld [wSelectedMoveIndex], a ld a, d - ldh [hTempCardNumber_ff9f], a + ldh [hTempCardIndex_ff9f], a call LoadDeckCardToBuffer1 ld a, [wLoadedCard1ID] ld [wTempCardId], a @@ -3512,14 +3512,14 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0) Func_16f6: ; 16f6 (0:16f6) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - ldh [hTempCardNumber_ff9f], a - call GetCardInDeckPosition + ldh [hTempCardIndex_ff9f], a + call GetCardIDFromDeckIndex ld a, e ld [wTempTurnDuelistCardId], a call SwapTurn ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call GetCardInDeckPosition + call GetCardIDFromDeckIndex ld a, e ld [wTempNonTurnDuelistCardId], a call SwapTurn @@ -3537,7 +3537,7 @@ Func_16f6: ; 16f6 (0:16f6) Func_1730: ; 1730 (0:1730) ld a, [wSelectedMoveIndex] ld [wcc10], a - ldh a, [hTempCardNumber_ff9f] + ldh a, [hTempCardIndex_ff9f] ld [wcc11], a ld a, [wTempCardId] ld [wcc12], a @@ -3698,19 +3698,19 @@ Func_1874: ; 1874 (0:1874) ret nz ld a, [$ffa0] push af - ldh a, [hTempCardNumber_ff9f] + ldh a, [hTempCardIndex_ff9f] push af ld a, $1 ld [wccec], a ld a, [wcc11] - ldh [hTempCardNumber_ff9f], a + ldh [hTempCardIndex_ff9f], a ld a, [wcc10] ld [$ffa0], a ld a, $8 call SetDuelAIAction call Func_0f58 pop af - ldh [hTempCardNumber_ff9f], a + ldh [hTempCardIndex_ff9f], a pop af ld [$ffa0], a ret @@ -3774,10 +3774,10 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7) INCROM $18f9, $1944 -; this loads HP and Stage (1 byte each) of the card with deck index (0-59) at hTempCardNumber_ff9f +; this loads HP and Stage (1 byte each) of the card with deck index (0-59) at hTempCardIndex_ff9f ; into wLoadedMoveEffectCommands Func_1944: ; 1944 (0:1944) - ldh a, [hTempCardNumber_ff9f] + ldh a, [hTempCardIndex_ff9f] call LoadDeckCardToBuffer1 ld hl, wLoadedCard1HP ld de, wLoadedMoveEffectCommands @@ -7565,7 +7565,7 @@ Func_3525: ; 3525 (0:3525) call GetTurnDuelistVariable cp $ff jr z, .asm_3549 - call GetCardInDeckPosition + call GetCardIDFromDeckIndex ld a, [wce7c] cp e jr nz, .asm_3549 @@ -7581,7 +7581,7 @@ Func_3525: ; 3525 (0:3525) ld a, [hli] cp $ff jr z, .asm_3560 - call GetCardInDeckPosition + call GetCardIDFromDeckIndex ld a, [wce7c] cp e jr nz, .asm_355d @@ -7752,7 +7752,7 @@ Func_36f7: ; 36f7 (0:36f7) ld a, e add DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call GetCardInDeckPosition + call GetCardIDFromDeckIndex call Func_2f32 cp $10 jr nz, .asm_3715 @@ -7807,7 +7807,7 @@ Func_374a: ; 374a (0:374a) HandleEnergyBurn: ; 375d (0:375d) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call GetCardInDeckPosition + call GetCardIDFromDeckIndex ld a, e cp CHARIZARD ret nz diff --git a/src/hram.asm b/src/hram.asm index 56837e7..e4ac7bc 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -45,8 +45,8 @@ hWY:: ; ff95 hWhoseTurn:: ; ff97 ds 1 -; deck position (index) of a card (0-59) -hTempCardNumber_ff98:: ; ff98 +; deck index of a card (0-59) +hTempCardIndex_ff98:: ; ff98 ds 1 ds 4 @@ -58,7 +58,7 @@ hTempPlayAreaLocationOffset_ff9d:: ; ff9d hAIActionTableIndex:: ; ff9e ds 1 -hTempCardNumber_ff9f:: ; ff9f +hTempCardIndex_ff9f:: ; ff9f ds 1 ds 1 diff --git a/src/wram.asm b/src/wram.asm index 82f4ab8..c97e1a8 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -13,8 +13,15 @@ wTempCardCollection:: ; c000 SECTION "WRAM Duels 1", WRAM0 ; In order to be identified during a duel, the 60 cards of each duelist are given an index between 0 and 59. -; These indexes are assigned following the internal order (id) of the cards that make up the deck. -; This temporary index identifies the card during the current duel and within the duelist's deck. +; These indexes are assigned following the order of the card list in wPlayerDeck or wOpponentDeck, +; which, in turn, follows the internal order of the cards. +; This temporary index of a card identifies the card within the duelist's deck during an ongoing duel. + +; Terminology used in labels and comments: +; - The deck index, or the index within the deck of a card refers to the identifier mentioned just above, +; that is, its temporary position in the wPlayerDeck or wOpponentDeck during the current duel. +; - The card ID is its actual internal identifier, that is, its number from card_constants.asm. + wPlayerDuelVariables:: ; c200 ; 60-byte array that indicates where each of the 60 cards is. -- cgit v1.2.3 From 5adbc86885177a3f8a67506ae216e57bc5f321dc Mon Sep 17 00:00:00 2001 From: xCrystal Date: Wed, 21 Feb 2018 17:31:08 +0100 Subject: Label all used hram addresses with generic names --- src/engine/bank1.asm | 18 ++++++------- src/engine/bank2.asm | 2 +- src/engine/bank3.asm | 8 +++--- src/engine/bank4.asm | 2 +- src/engine/home.asm | 74 ++++++++++++++++++++++++++-------------------------- src/hram.asm | 31 +++++++++++++++++++++- src/wram.asm | 2 +- 7 files changed, 83 insertions(+), 54 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 91629a6..539f8cf 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -452,7 +452,7 @@ DuelMenu_Retreat: ; 43ab (1:43ab) call GetTurnDuelistVariable and PASSIVE_STATUS_MASK cp $01 - ldh [$ffa0], a + ldh [hffa0], a jr nz, Func_43f1 ld a, [wcc0c] or a @@ -540,7 +540,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) ldh [hTempPlayAreaLocationOffset_ffa1], a ld e, a ldh a, [hTempCardIndex_ff98] - ld [$ffa0], a + ldh [hffa0], a call $14d2 call $61b8 ld a, $3 @@ -985,12 +985,12 @@ Func_4b60: ; 4b60 (1:4b60) call SwapTurn call $4e84 call $4d97 - ld [$ffa0], a + ldh [hffa0], a call SwapTurn call $4d97 call SwapTurn ld c, a - ld a, [$ffa0] + ldh a, [hffa0] ld b, a and c jr nz, .asm_4bd0 @@ -1109,7 +1109,7 @@ Func_4b60: ; 4b60 (1:4b60) ; Select Basic Pokemon From Hand Func_4cd5: ; 4cd5 (1:4cd5) - ld a, $f1 + ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable cp $0 jr z, .asm_4d15 @@ -1136,7 +1136,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) ld c, $80 call Func_0e63 jr c, .asm_4d12 - ld a, $f1 + ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable ld [hl], $1 or a @@ -1321,10 +1321,10 @@ AIUseEnergyCard: ; 69a5 (1:69a5) ldh a, [hTempPlayAreaLocationOffset_ffa1] ldh [hTempPlayAreaLocationOffset_ff9d], a ld e, a - ld a, [$ffa0] + ldh a, [hffa0] ldh [hTempCardIndex_ff98], a call $14d2 - ld a, [$ffa0] + ldh a, [hffa0] call LoadDeckCardToBuffer1 call $5e75 call $68e4 @@ -1474,7 +1474,7 @@ _TossCoin: ; 71ad (1:71ad) ld [hli], a ld [hl], a call EnableLCD - ld a, $f1 + ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable ld [wcd9e], a call Func_0f58 diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 2f66195..479eb77 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -978,7 +978,7 @@ Func_ba04: ; ba04 (2:7a04) ld [$d087], a ld a, [wCurMenuItem] ld [$d086], a - ld a, [$ffb1] + ldh a, [hCurrentMenuItem] cp $ff jp z, $7b0d ld [$d088], a diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index d614842..383fe04 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -299,22 +299,22 @@ Func_c241: ; c241 (3:4241) ret Func_c251: ; c251 (3:4251) - ldh a, [$ffb0] + ldh a, [hffb0] push af ld a, $1 jr asm_c25d Func_c258: ; c258 (3:4258) - ldh a, [$ffb0] + ldh a, [hffb0] push af ld a, $2 asm_c25d - ldh [$ffb0], a + ldh [hffb0], a push hl call Func_c268 pop hl pop af - ldh [$ffb0], a + ldh [hffb0], a ret Func_c268: ; c268 (3:4268) diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 0e9b4c8..a1e8b80 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -322,7 +322,7 @@ Func_10dba: ; 10dba (4:4dba) jr nc, .asm_10dca ld a, e ld [wd0ba], a - ld a, [$ffb1] + ldh a, [hCurrentMenuItem] cp e jr z, .asm_10ddd ld a, $4 diff --git a/src/engine/home.asm b/src/engine/home.asm index bc1349c..c5e68ca 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -3696,7 +3696,7 @@ Func_1874: ; 1874 (0:1874) ld a, [wccec] or a ret nz - ld a, [$ffa0] + ldh a, [hffa0] push af ldh a, [hTempCardIndex_ff9f] push af @@ -3705,14 +3705,14 @@ Func_1874: ; 1874 (0:1874) ld a, [wcc11] ldh [hTempCardIndex_ff9f], a ld a, [wcc10] - ld [$ffa0], a + ldh [hffa0], a ld a, $8 call SetDuelAIAction call Func_0f58 pop af ldh [hTempCardIndex_ff9f], a pop af - ld [$ffa0], a + ldh [hffa0], a ret Func_189d: ; 189d (0:189d) @@ -4917,7 +4917,7 @@ Func_21f2: ; 21f2 (0:21f2) call Func_230f pop af ld [wcd0a], a - ldh a, [$ffb0] + ldh a, [hffb0] or a jr nz, .asm_2240 ld a, [hl] @@ -4927,11 +4927,11 @@ Func_21f2: ; 21f2 (0:21f2) .asm_2240 inc hl .asm_2241 - ldh a, [$ffae] + ldh a, [hffae] or a ret z ld b, a - ldh a, [$ffac] + ldh a, [hffac] cp b jr z, .asm_224d xor a @@ -4943,17 +4943,17 @@ Func_21f2: ; 21f2 (0:21f2) call z, .asm_2257 .asm_2257 xor a - ldh [$ffac], a - ldh a, [$ffad] + ldh [hffac], a + ldh a, [hffad] add $20 ld b, a - ldh a, [$ffaa] + ldh a, [hffaa] and $e0 add b - ldh [$ffaa], a - ldh a, [$ffab] + ldh [hffaa], a + ldh a, [hffab] adc $0 - ldh [$ffab], a + ldh [hffab], a ld a, [wcd09] inc a ld [wcd09], a @@ -4965,11 +4965,11 @@ Func_2275: ; 2275 (0:2275) dec a ld [wcd04], a ld a, e - ldh [$ffa8], a + ldh [hffa8], a call Func_2298 xor a - ldh [$ffb0], a - ldh [$ffa9], a + ldh [hffb0], a + ldh [hffa9], a ld a, $88 ld [wcd06], a ld a, $80 @@ -4985,7 +4985,7 @@ Func_2275: ; 2275 (0:2275) Func_2298: ; 2298 (0:2298) xor a ld [wcd0a], a - ldh [$ffac], a + ldh [hffac], a ld [wcd0b], a ld a, $f ldh [hffaf], a @@ -4995,21 +4995,21 @@ Func_22a6: ; 22a6 (0:22a6) push af call Func_22ae pop af - ldh [$ffae], a + ldh [hffae], a ret Func_22ae: ; 22ae (0:22ae) push hl ld a, d - ldh [$ffad], a + ldh [hffad], a xor a - ldh [$ffae], a + ldh [hffae], a ld [wcd09], a call DECoordToBGMap0Address ld a, l - ldh [$ffaa], a + ldh [hffaa], a ld a, h - ldh [$ffab], a + ldh [hffab], a call Func_2298 xor a ld [wcd0b], a @@ -5020,7 +5020,7 @@ Func_22ca: ; 22ca (0:22ca) push hl push de push bc - ldh a, [$ffb0] + ldh a, [hffb0] and $1 jr nz, .asm_22ed call Func_2325 @@ -5029,10 +5029,10 @@ Func_22ca: ; 22ca (0:22ca) jr nz, .asm_22e9 call Func_24ac .asm_22de - ldh a, [$ffb0] + ldh a, [hffb0] and $2 jr nz, .asm_22e9 - ldh a, [$ffa9] + ldh a, [hffa9] call Func_22f2 .asm_22e9 pop bc @@ -5045,7 +5045,7 @@ Func_22ca: ; 22ca (0:22ca) Func_22f2: ; 22f2 (0:22f2) ld [wcd05], a - ld hl, $ffaa + ld hl, hffaa ld e, [hl] inc hl ld d, [hl] @@ -5059,7 +5059,7 @@ Func_22f2: ; 22f2 (0:22f2) ld de, $cd05 ld c, 1 call SafeCopyDataDEtoHL - ld hl, $ffac + ld hl, hffac inc [hl] ret @@ -5085,11 +5085,11 @@ Func_2325: ; 2325 (0:2325) ret c or a ret nz - ldh a, [$ffa8] + ldh a, [hffa8] ld hl, $cd04 cp [hl] jr nz, .asm_2345 - ldh a, [$ffa9] + ldh a, [hffa9] ld h, $c8 .asm_2337 ld l, a @@ -5109,11 +5109,11 @@ Func_2325: ; 2325 (0:2325) .asm_2349 ld l, [hl] .asm_234a - ldh a, [$ffa9] + ldh a, [hffa9] ld c, a ld b, $c9 ld a, l - ldh [$ffa9], a + ldh [hffa9], a ld [bc], a ld h, $c8 ld [hl], c @@ -5144,8 +5144,8 @@ Func_235e: ; 235e (0:235e) .asm_2376 xor a ld [wcd0b], a ; [wcd0b] ← 0 - ldh a, [$ffa9] - ld l, a ; l ← [$ffa9]; index to to linked-list head + ldh a, [hffa9] + ld l, a ; l ← [hffa9]; index to to linked-list head .asm_237d ld h, $c6 ; ld a, [hl] ; a ← key1[l] ; @@ -5162,14 +5162,14 @@ Func_235e: ; 235e (0:235e) ld l, [hl] ; l ← next[l] ; jr .asm_237d .asm_238f - ldh a, [$ffa9] + ldh a, [hffa9] cp l jr z, .asm_23af ; assert at least one iteration ld c, a ld b, $c9 ld a, l ld [bc], a ; prev[i0] ← i - ldh [$ffa9], a ; [$ffa9] ← i (update linked-list head) + ldh [hffa9], a ; [hffa9] ← i (update linked-list head) ld h, $c9 ld b, [hl] ld [hl], $0 ; prev[i] ← 0 @@ -6094,7 +6094,7 @@ Func_2bc7: ; 2bc7 (0:2bc7) Func_2bcf: ; 2bcf (0:2bcf) ld a, $4 call Func_2bdb - ld [$ffa0], a + ldh [hffa0], a ret Func_2bd7: ; 2bd7 (0:2bd7) @@ -8455,7 +8455,7 @@ DivideBCbyDE: ; 3c5a (0:3c5a) rl b ld a, $10 .asm_3c63 - ldh [$ffb6], a + ldh [hffb6], a rl l rl h push hl @@ -8475,7 +8475,7 @@ DivideBCbyDE: ; 3c5a (0:3c5a) .asm_3c79 rl c rl b - ldh a, [$ffb6] + ldh a, [hffb6] dec a jr nz, .asm_3c63 ret diff --git a/src/hram.asm b/src/hram.asm index e4ac7bc..2bb688f 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -39,6 +39,7 @@ hWX:: ; ff94 hWY:: ; ff95 ds 1 +hff96:: ; ff96 ds 1 ; $c2 = player ; $c3 = opponent @@ -61,16 +62,40 @@ hAIActionTableIndex:: ; ff9e hTempCardIndex_ff9f:: ; ff9f ds 1 +; multipurpose temp storage +hffa0:: ; ffa0 ds 1 hTempPlayAreaLocationOffset_ffa1:: ; ffa1 ds 1 - ds 13 + ds 6 + +hffa8:: ; ffa8 + ds 1 + +hffa9:: ; ffa9 + ds 1 + +hffaa:: ; ffaa + ds 1 + +hffab:: ; ffab + ds 1 + +hffac:: ; ffac + ds 1 + +hffad:: ; ffad + ds 1 + +hffae:: ; ffae + ds 1 hffaf:: ; ffaf ds 1 +hffb0:: ; ffb0 ds 1 hCurrentMenuItem:: ; ffb1 @@ -80,3 +105,7 @@ hCurrentMenuItem:: ; ffb1 hffb5:: ; ffb5 ds 1 + +; used in DivideBCbyDE +hffb6:: ; ffb6 + ds 1 \ No newline at end of file diff --git a/src/wram.asm b/src/wram.asm index c97e1a8..a708599 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -19,7 +19,7 @@ SECTION "WRAM Duels 1", WRAM0 ; Terminology used in labels and comments: ; - The deck index, or the index within the deck of a card refers to the identifier mentioned just above, -; that is, its temporary position in the wPlayerDeck or wOpponentDeck during the current duel. +; that is, its temporary position in the wPlayerDeck or wOpponentDeck card list during the current duel. ; - The card ID is its actual internal identifier, that is, its number from card_constants.asm. wPlayerDuelVariables:: ; c200 -- cgit v1.2.3 From 2e1d018a7a95880a36f3935307aeb76875797ae4 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Wed, 21 Feb 2018 23:33:44 +0100 Subject: Some bank1 labeling and disasm --- src/engine/bank1.asm | 156 ++++++++++++++++++++++++++++++++++----------------- src/engine/bank4.asm | 16 +++--- src/engine/bank5.asm | 2 +- src/engine/home.asm | 4 +- src/hram.asm | 1 + src/wram.asm | 15 +++-- 6 files changed, 122 insertions(+), 72 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 539f8cf..d40d866 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -70,7 +70,7 @@ Func_406f: ; 406f (1:406f) call PlaySong xor a ld [wDuelFinished], a - call Func_426d + call DuelMainScene jp StartDuel.asm_40fb .asm_4097 call DrawWideTextBox_WaitForInput @@ -96,7 +96,7 @@ StartDuel: ; 409f (1:409f) ld a, MUSIC_DUEL_THEME_1 ld [wDuelTheme], a - ld hl, $cc16 + ld hl, wOpponentName xor a ld [hli], a ld [hl], a @@ -139,7 +139,7 @@ StartDuel: ; 409f (1:409f) ld a, [wDuelFinished] or a jr nz, .duel_finished - ld hl, $cc06 + ld hl, wDuelTurns inc [hl] ld a, [wcc09] cp $80 @@ -250,7 +250,7 @@ StartDuel: ; 409f (1:409f) ld a, PLAYER_TURN ldh [hWhoseTurn], a call Func_4b60 - jp $40ee + jp .main_duel_loop .asm_41f3 call Func_0f58 @@ -264,7 +264,7 @@ StartDuel: ; 409f (1:409f) ld a, h ldh [hWhoseTurn], a call Func_4b60 - jp nc, $40ee + jp nc, .main_duel_loop ret ; 0x420b @@ -284,10 +284,10 @@ Func_420b: ; 420b (1:420b) HandleTurn: ; 4225 (1:4225) ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable - ld [wcc0d], a - ld a, [wcc06] - cp $02 - jr c, .asm_4237 + ld [wDuelistType], a + ld a, [wDuelTurns] + cp 2 + jr c, .asm_4237 ; jump if it's the turn holder's first turn call $70f6 .asm_4237 @@ -302,14 +302,14 @@ HandleTurn: ; 4225 (1:4225) .deck_not_empty ldh [hTempCardIndex_ff98], a call AddCardToHand - ld a, [wcc0d] + ld a, [wDuelistType] cp DUELIST_TYPE_PLAYER jr z, Func_4262 call SwapTurn call Func_34e2 call SwapTurn call c, $4b2c - jr Func_426d + jr DuelMainScene Func_4262: call $4b2c @@ -319,9 +319,9 @@ Func_4268: ld a, $06 call $51e7 -Func_426d: +DuelMainScene: call $4f9d - ld a, [wcc0d] + ld a, [wDuelistType] cp DUELIST_TYPE_PLAYER jr z, PrintDuelMenu cp DUELIST_TYPE_LINK_OPP @@ -342,6 +342,7 @@ PrintDuelMenu: call DrawWideTextBox ld hl, $54e9 call Func_2c08 +.asm_429e call $669d ld a, [wDuelFinished] or a @@ -349,37 +350,37 @@ PrintDuelMenu: ld a, [wCurrentDuelMenuItem] call SetMenuItem -Func_42ac: +HandleDuelMenuInput: call DoFrame ldh a, [hButtonsHeld] - and $02 - jr z, .asm_42cc + and B_BUTTON + jr z, .b_not_held ldh a, [hButtonsPressed] bit D_UP_F, a - jr nz, Func_430b + jr nz, OpponentPlayAreaScreen bit D_DOWN_F, a - jr nz, Func_4311 + jr nz, PlayerPlayAreaScreen bit D_LEFT_F, a - jr nz, Func_4320 + jr nz, PlayerDiscardPileScreen bit D_RIGHT_F, a - jr nz, Func_4317 + jr nz, OpponentDiscardPileScreen bit START_F, a - jp nz, $4364 + jp nz, OpponentActivePokemonScreen -.asm_42cc +.b_not_held ldh a, [hButtonsPressed] and START - jp nz, $4370 + jp nz, PlayerActivePokemonScreen ldh a, [hButtonsPressed] bit SELECT_F, a jp nz, $458e ld a, [wcbe7] or a - jr nz, Func_42ac + jr nz, HandleDuelMenuInput call Func_271a ld a, e ld [wCurrentDuelMenuItem], a - jr nc, Func_42ac + jr nc, HandleDuelMenuInput ldh a, [hCurrentMenuItem] ld hl, DuelMenuFunctionTable jp JumpToFunctionInTable @@ -392,51 +393,100 @@ DuelMenuFunctionTable: ; 42f1 (1:42f1) dw DuelMenu_Retreat dw DuelMenu_Done - INCROM $42fd, $430b +Func_42fd: ; 42fd (1:42fd) + call DrawCardFromDeck + call nc, AddCardToHand + ld a, $0b + call SetDuelAIAction + jp PrintDuelMenu.asm_429e +; 0x430b -Func_430b: ; 430b (1:430b) - call Func_4329 - jp Func_426d +OpponentPlayAreaScreen: ; 430b (1:430b) + call DrawOpponentPlayAreaScreen + jp DuelMainScene -Func_4311: ; 4311 (1:4311) - call Func_4333 - jp Func_426d +PlayerPlayAreaScreen: ; 4311 (1:4311) + call DrawPlayerPlayAreaScreen + jp DuelMainScene -Func_4317: ; 4317 (1:4317) - call Func_4339 +OpponentDiscardPileScreen: ; 4317 (1:4317) + call DrawOpponentDiscardPileScreen jp c, PrintDuelMenu - jp Func_426d + jp DuelMainScene -Func_4320: ; 4320 (1:4320) - call Func_4342 +PlayerDiscardPileScreen: ; 4320 (1:4320) + call DrawPlayerDiscardPileScreen jp c, PrintDuelMenu - jp Func_426d + jp DuelMainScene -Func_4329: ; 4329 (1:4329) +DrawOpponentPlayAreaScreen: ; 4329 (1:4329) call SwapTurn - call Func_4333 + call DrawPlayerPlayAreaScreen call SwapTurn ret -Func_4333: ; 4333 (1:4333) +DrawPlayerPlayAreaScreen: ; 4333 (1:4333) call $5fdd jp $6008 -Func_4339: ; 4339 (1:4339) +DrawOpponentDiscardPileScreen: ; 4339 (1:4339) call SwapTurn call $5550 jp SwapTurn -Func_4342: ; 4342 (1:4342) +DrawPlayerDiscardPileScreen: ; 4342 (1:4342) jp $5550 - INCROM $4345, $438e +Func_4345: ; 4345 (1:4345) + call SwapTurn + call Func_434e + jp SwapTurn +; 0x434e + +Func_434e: ; 434e (1:434e) + call CreateHandCardList + jr c, .no_cards_in_hand + call $559a + ld a, $09 + ld [$cbd6], a + jp $55f0 +.no_cards_in_hand + ldtx hl, NoCardsInHandText + jp DrawWideTextBox_WaitForInput +; 0x4364 + +OpponentActivePokemonScreen: ; 4364 (1:4364) + call SwapTurn + call Func_4376 + call SwapTurn + jp DuelMainScene +; 0x4370 + +PlayerActivePokemonScreen: ; 4370 (1:4370) + call Func_4376 + jp DuelMainScene +; 0x4376 + +Func_4376: ; 4376 (1:4376) + ld a, DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + cp $ff + ret z + call GetCardIDFromDeckIndex + call LoadCardDataToBuffer1 + ld hl, wcbc9 + xor a + ld [hli], a + ld [hl], a + call $576a + ret +; 0x438e DuelMenu_PkmnPower: ; 438e (1:438e) call $6431 - jp c, Func_426d + jp c, DuelMainScene call Func_1730 - jp Func_426d + jp DuelMainScene DuelMenu_Done: ; 439a (1:439a) ld a, $08 @@ -493,13 +543,13 @@ Func_43f1: ; 43f1 (1:43f1) push af call $6564 pop af - jp c, Func_426d + jp c, DuelMainScene ld a, $04 call SetDuelAIAction call $657a Func_441c: ; 441c (1:441c) - jp Func_426d + jp DuelMainScene Func_441f: ; 441f (1:441f) call DrawWideTextBox_WaitForInput @@ -531,7 +581,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) jr nz, .already_played_energy call $5fdd call $600c ; choose card to play energy card on - jp c, Func_426d ; exit if no card was chosen + jp c, DuelMainScene ; exit if no card was chosen .asm_4490 ld a, $1 ld [wAlreadyPlayedEnergy], a @@ -546,12 +596,12 @@ PlayerUseEnergyCard: ; 4477 (1:4477) ld a, $3 call SetDuelAIAction call $68e4 - jp Func_426d + jp DuelMainScene .water_energy call $5fdd call $600c ; choose card to play energy card on - jp c, Func_426d ; exit if no card was chosen + jp c, DuelMainScene ; exit if no card was chosen call $3622 jr c, .asm_4495 ld a, [wAlreadyPlayedEnergy] @@ -574,7 +624,7 @@ PlayerUseEnergyCard: ; 4477 (1:4477) DuelMenu_Check: ; 4585 (1:4585) call Func_3b31 call Func_3096 - jp Func_426d + jp DuelMainScene INCROM $458e, $46fc @@ -646,7 +696,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) call $51e7 jp c, Func_4268 call Func_1730 - jp c, Func_426d + jp c, DuelMainScene ret .cannot_use_due_to_amnesia ; 477d (1:477d) diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index a1e8b80..dca50a9 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -180,8 +180,8 @@ Duel_Init: ; 103d3 (4:43d3) call $4000 ld a, $4 ld [wFrameType], a - ld de, $000c - ld bc, $1406 + lb de, 0, 12 + lb bc, 20, 6 call DrawRegularTextBox ld a, [wcc19] add a @@ -195,9 +195,9 @@ Duel_Init: ; 103d3 (4:43d3) ld a, [hli] ld [wce40], a push hl - ld a, [wcc16] + ld a, [wOpponentName] ld [wce41], a - ld a, [wcc17] + ld a, [wOpponentName + 1] ld [wce42], a ld hl, $4451 call $51b3 ; LoadDuelistName @@ -214,7 +214,7 @@ Duel_Init: ; 103d3 (4:43d3) .asm_10425 ld bc, $0703 - ld a, [wcc15] + ld a, [wOpponentPortrait] call Func_3e2a ; LoadDuelistPortrait ld a, [wMatchStartTheme] call PlaySong @@ -912,11 +912,11 @@ Func_118a7: ; 118a7 (4:58a7) ld bc, $0007 add hl, bc ld a, [hli] - ld [wcc16], a + ld [wOpponentName], a ld a, [hli] - ld [wcc17], a + ld [wOpponentName + 1], a ld a, [hli] - ld [wcc15], a + ld [wOpponentPortrait], a pop bc pop hl ret diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 6892ec2..631fdb4 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -264,7 +264,7 @@ Func_15649: ; 15649 (5:5649) ld [$cda7], a cp $3 jr c, .asm_156c2 - ld a, (wPlayerArenaCard & $FF) + ld a, DUELVARS_ARENA_CARD call GetNonTurnDuelistVariable call SwapTurn call GetCardIDFromDeckIndex diff --git a/src/engine/home.asm b/src/engine/home.asm index c5e68ca..96f63c4 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2639,7 +2639,7 @@ Func_100b: ; 100b (0:100b) pop hl push hl call EnableSRAM - ld a, [wcc06] + ld a, [wDuelTurns] ld [hli], a ld a, [wTempNonTurnDuelistCardId] ld [hli], a @@ -4141,7 +4141,7 @@ PrintPlayerName: ; 1c7d (0:1c7d) ret PrintOpponentName: ; 1c8e (0:1c8e) - ld hl, $cc16 + ld hl, wOpponentName ld a, [hli] or [hl] jr z, .special_name diff --git a/src/hram.asm b/src/hram.asm index 2bb688f..8f4adbb 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -71,6 +71,7 @@ hTempPlayAreaLocationOffset_ffa1:: ; ffa1 ds 6 +; hffa8 through hffb0 appear to be related to text processing hffa8:: ; ffa8 ds 1 diff --git a/src/wram.asm b/src/wram.asm index a708599..4a57b98 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -481,7 +481,8 @@ wcc04:: ; cc04 wcc05:: ; cc05 ds $1 -wcc06:: ; cc06 +; number of turns taken by both players +wDuelTurns:: ; cc06 ds $1 ; 0 = no one has won duel yet @@ -506,7 +507,8 @@ wAlreadyPlayedEnergy:: ; cc0b wcc0c:: ; cc0c ds $1 -wcc0d:: ; cc0d +; DUELIST_TYPE_* of the turn holder +wDuelistType:: ; cc0d ds $1 ; this seems to hold the current opponent's deck id - 2, @@ -531,14 +533,11 @@ wIsPracticeDuel:: ; cc13 ds $1 -wcc15:: ; cc15 +wOpponentPortrait:: ; cc15 ds $1 -wcc16:: ; cc16 - ds $1 - -wcc17:: ; cc17 - ds $1 +wOpponentName:: ; cc16 + ds $2 wcc18:: ; cc18 ds $1 -- cgit v1.2.3 From d543a896fd381046dee795f3020237d6da623a9e Mon Sep 17 00:00:00 2001 From: xCrystal Date: Thu, 22 Feb 2018 13:49:27 +0100 Subject: CARD_DATA_* constants and more labeling and disasm --- src/constants/card_data_constants.asm | 89 +++++++++++++++++++++++------ src/constants/duel_constants.asm | 48 ++++++++-------- src/engine/bank1.asm | 36 ++++++------ src/engine/bank3.asm | 2 +- src/engine/booster_packs.asm | 12 ++-- src/engine/effect_functions.asm | 4 +- src/engine/home.asm | 103 +++++++++++++++++++++------------- 7 files changed, 189 insertions(+), 105 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 6a07ce9..d5a44bf 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -1,11 +1,70 @@ NONE EQU $0 -PKMN_CARD_DATA_LENGTH EQU $41 +; wTempCardCollection size +CARD_COLLECTION_SIZE EQU $100 + +; card data offsets (data/cards.asm and card_data_struct) + +; all card types +CARD_DATA_TYPE EQU $00 +CARD_DATA_GFX EQU $01 +CARD_DATA_NAME EQU $03 +CARD_DATA_RARITY EQU $05 +CARD_DATA_SET EQU $06 +CARD_DATA_ID EQU $07 +CARD_DATA_EFFECT_COMMANDS EQU $08 ; !TYPE_PKMN +CARD_DATA_HP EQU $08 ; TYPE_PKMN +CARD_DATA_STAGE EQU $09 ; TYPE_PKMN +CARD_DATA_NONPKMN_DESCRIPTION EQU $0a ; !TYPE_PKMN +CARD_DATA_PREEVO_NAME EQU $0a ; TYPE_PKMN + TRN_CARD_DATA_LENGTH EQU $0e ENERGY_CARD_DATA_LENGTH EQU $0e -;;; generic type constants -; double up as Pokemon card types +; TYPE_PKMN card only +CARD_DATA_MOVE1 EQU $0c +CARD_DATA_MOVE1_ENERGY EQU $0c +CARD_DATA_MOVE1_NAME EQU $10 +CARD_DATA_MOVE1_DESCRIPTION EQU $12 +CARD_DATA_MOVE1_DAMAGE EQU $16 +CARD_DATA_MOVE1_CATEGORY EQU $17 +CARD_DATA_MOVE1_EFFECT_COMMANDS EQU $18 +CARD_DATA_MOVE1_FLAG1 EQU $1a +CARD_DATA_MOVE1_FLAG2 EQU $1b +CARD_DATA_MOVE1_FLAG3 EQU $1c +CARD_DATA_MOVE1_UNKNOWN1 EQU $1d +CARD_DATA_MOVE1_ANIMATION EQU $1e + +; TYPE_PKMN card only +CARD_DATA_MOVE2 EQU $1f +CARD_DATA_MOVE2_ENERGY EQU $1f +CARD_DATA_MOVE2_NAME EQU $23 +CARD_DATA_MOVE2_DESCRIPTION EQU $25 +CARD_DATA_MOVE2_DAMAGE EQU $29 +CARD_DATA_MOVE2_CATEGORY EQU $2a +CARD_DATA_MOVE2_EFFECT_COMMANDS EQU $2b +CARD_DATA_MOVE2_FLAG1 EQU $2d +CARD_DATA_MOVE2_FLAG2 EQU $2e +CARD_DATA_MOVE2_FLAG3 EQU $2f +;CARD_DATA_MOVE2_UNKNOWN1 EQU $30 +CARD_DATA_MOVE2_ANIMATION EQU $31 + +; TYPE_PKMN card only +CARD_DATA_RETREAT_COST EQU $32 +CARD_DATA_WEAKNESS EQU $33 +CARD_DATA_RESISTANCE EQU $34 +CARD_DATA_KIND EQU $35 +CARD_DATA_POKEDEX_NUMBER EQU $37 +CARD_DATA_UNKNOWN1 EQU $38 +CARD_DATA_LEVEL EQU $39 +CARD_DATA_LENGTH EQU $3a +CARD_DATA_WEIGHT EQU $3c +CARD_DATA_PKMN_DESCRIPTION EQU $3e +CARD_DATA_UNKNOWN2 EQU $40 + +PKMN_CARD_DATA_LENGTH EQU $41 + +; generic type constants const_def const FIRE ; $0 const GRASS ; $1 @@ -18,7 +77,7 @@ NUM_COLORED_TYPES EQU const_value const UNUSED_TYPE ; $7 NUM_TYPES EQU const_value -;;; card types +; CARD_DATA_TYPE constants TYPE_PKMN_FIRE EQUS "FIRE" TYPE_PKMN_GRASS EQUS "GRASS" TYPE_PKMN_LIGHTNING EQUS "LIGHTNING" @@ -44,13 +103,13 @@ TYPE_PKMN EQU %111 TYPE_ENERGY_F EQU 3 TYPE_TRAINER_F EQU 4 -;;; rarity +; CARD_DATA_RARITY constants CIRCLE EQU $0 DIAMOND EQU $1 STAR EQU $2 PROMOSTAR EQU $FF -;;; set 1 +; CARD_DATA_SET constants (set 1) COLOSSEUM EQU $00 EVOLUTION EQU $10 MYSTERY EQU $20 @@ -58,18 +117,18 @@ LABORATORY EQU $30 PROMOTIONAL EQU $40 ENERGY EQU $50 -;;; set 2 +; CARD_DATA_SET constants (set 2) JUNGLE EQU $1 FOSSIL EQU $2 GB EQU $7 PRO EQU $8 -;;; evolution stage +; CARD_DATA_STAGE constants BASIC EQU $0 STAGE1 EQU $1 STAGE2 EQU $2 -;;; weakness/resistance +; CARD_DATA_WEAKNESS and CARD_DATA_RESISTANCE constants WR_FIRE EQU $80 WR_GRASS EQU $40 WR_LIGHTNING EQU $20 @@ -77,7 +136,7 @@ WR_WATER EQU $10 WR_FIGHTING EQU $08 WR_PSYCHIC EQU $04 -;;; move category (6th param of Pokemon cards move data) +; CARD_DATA_MOVE*_CATEGORY constants DAMAGE_NORMAL EQU $0 DAMAGE_PLUS EQU $1 DAMAGE_MINUS EQU $2 @@ -86,7 +145,7 @@ POKEMON_POWER EQU $4 RESIDUAL_F EQU 7 RESIDUAL EQU 1 << RESIDUAL_F -;;; flags 1 (8th param of Pokemon cards move data) +; CARD_DATA_MOVE*_FLAG1 constants INFLICT_POISON EQU %00000001 INFLICT_SLEEP EQU %00000010 INFLICT_PARALYSIS EQU %00000100 @@ -96,7 +155,7 @@ DAMAGE_TO_OPPONENT_BENCH EQU %00100000 HIGH_RECOIL EQU %01000000 DRAW_CARD EQU %10000000 -;;; flags 2 (9th param of Pokemon cards move data) +; CARD_DATA_MOVE*_FLAG2 constants ; bits 5, 6 and 7 cover a wide variety of effects SWITCH_OPPONENT_POKEMON EQU %00000001 HEAL_USER EQU %00000010 @@ -107,13 +166,11 @@ FLAG_2_BIT_5 EQU %00100000 FLAG_2_BIT_6 EQU %01000000 FLAG_2_BIT_7 EQU %10000000 -;;; flags 3 (10th param of Pokemon cards move data) +; CARD_DATA_MOVE*_FLAG3 constants ; bit 1 covers a wide variety of effects ; bits 2-7 are unused BOOST_IF_TAKEN_DAMAGE EQU %00000001 FLAG_3_BIT_1 EQU %00000010 -;;; special retreat values +; special CARD_DATA_RETREAT_COST values UNABLE_RETREAT EQU $64 - -CARD_COLLECTION_SIZE EQU $100 diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index ba4bb3f..956f84d 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -23,30 +23,30 @@ DUEL_DRAW EQU $3 const BOXMSG_COIN_TOSS ; wPlayerDuelVariables or wOpponentDuelVariables constants -DUELVARS_CARD_LOCATIONS EQUS "wPlayerCardLocations & $ff" ; 00 -DUELVARS_HAND EQUS "wPlayerHand & $ff" ; 42 -DUELVARS_DECK_CARDS EQUS "wPlayerDeckCards & $ff" ; 7e -DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK EQUS "wPlayerNumberOfCardsNotInDeck & $ff" ; ba -DUELVARS_ARENA_CARD EQUS "wPlayerArenaCard & $ff" ; bb -DUELVARS_BENCH EQUS "wPlayerBench & $ff" ; bc -DUELVARS_ARENA_CARD_HP EQUS "wPlayerArenaCardHP & $ff" ; c8 -DUELVARS_BENCH1_CARD_HP EQUS "wPlayerBench1CardHP & $ff" ; c9 -DUELVARS_BENCH2_CARD_HP EQUS "wPlayerBench2CardHP & $ff" ; ca -DUELVARS_BENCH3_CARD_HP EQUS "wPlayerBench3CardHP & $ff" ; cb -DUELVARS_BENCH4_CARD_HP EQUS "wPlayerBench4CardHP & $ff" ; cc -DUELVARS_BENCH5_CARD_HP EQUS "wPlayerBench5CardHP & $ff" ; cd -DUELVARS_ARENA_CARD_SUBSTATUS1 EQUS "wPlayerArenaCardSubstatus1 & $ff" ; e7 -DUELVARS_ARENA_CARD_SUBSTATUS2 EQUS "wPlayerArenaCardSubstatus2 & $ff" ; e8 -DUELVARS_ARENA_CARD_SUBSTATUS3 EQUS "wPlayerArenaCardSubstatus3 & $ff" ; e9 -DUELVARS_ARENA_CARD_SUBSTATUS4 EQUS "wPlayerArenaCardSubstatus4 & $ff" ; ea -DUELVARS_ARENA_CARD_SUBSTATUS5 EQUS "wPlayerArenaCardSubstatus5 & $ff" ; eb -DUELVARS_PRIZES EQUS "wPlayerPrizes & $ff" ; ec -DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE EQUS "wPlayerNumberOfCardsInDiscardPile & $ff" ; ed -DUELVARS_NUMBER_OF_CARDS_IN_HAND EQUS "wPlayerNumberOfCardsInHand & $ff" ; ee -DUELVARS_NUMBER_OF_POKEMON_IN_PLAY EQUS "wPlayerNumberOfPokemonInPlay & $ff" ; ef -DUELVARS_ARENA_CARD_STATUS EQUS "wPlayerArenaCardStatus & $ff" ; f0 -DUELVARS_DUELIST_TYPE EQUS "wPlayerDuelistType & $ff" ; f1 -DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX EQUS "wPlayerArenaCardDisabledMoveIndex & $ff" ; 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_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_SUBSTATUS1 EQUS "LOW(wPlayerArenaCardSubstatus1)" ; e7 +DUELVARS_ARENA_CARD_SUBSTATUS2 EQUS "LOW(wPlayerArenaCardSubstatus2)" ; e8 +DUELVARS_ARENA_CARD_SUBSTATUS3 EQUS "LOW(wPlayerArenaCardSubstatus3)" ; e9 +DUELVARS_ARENA_CARD_SUBSTATUS4 EQUS "LOW(wPlayerArenaCardSubstatus4)" ; ea +DUELVARS_ARENA_CARD_SUBSTATUS5 EQUS "LOW(wPlayerArenaCardSubstatus5)" ; 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 ; card location constants (DUELVARS_CARD_LOCATIONS) CARD_LOCATION_DECK EQU $00 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index d40d866..47873bc 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -869,7 +869,7 @@ CheckIfMoveExists: ; 4872 (1:4872) ld a, [de] or c jr z, .return_no_move_found - ld hl, wLoadedCard1Move1Category - (wLoadedCard1Move1Name + 1) + ld hl, CARD_DATA_MOVE1_CATEGORY - (CARD_DATA_MOVE1_NAME + 1) add hl, de ld a, [hl] and $ff ^ RESIDUAL @@ -930,12 +930,12 @@ _CheckIfEnoughEnergies: ; 48ac (1:48ac) ld de, wLoadedCard1Move2Energy .got_move - ld hl, wLoadedCard1Move1Name - wLoadedCard1Move1Energy + ld hl, CARD_DATA_MOVE1_NAME - CARD_DATA_MOVE1_ENERGY add hl, de ld a, [hli] or [hl] jr z, .not_usable - ld hl, wLoadedCard1Move1Category - wLoadedCard1Move1Energy + ld hl, CARD_DATA_MOVE1_CATEGORY - CARD_DATA_MOVE1_ENERGY add hl, de ld a, [hl] cp POKEMON_POWER @@ -1161,9 +1161,9 @@ Func_4b60: ; 4b60 (1:4b60) Func_4cd5: ; 4cd5 (1:4cd5) ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable - cp $0 + cp DUELIST_TYPE_PLAYER jr z, .asm_4d15 - cp $1 + cp DUELIST_TYPE_LINK_OPP jr z, .asm_4cec push af push hl @@ -1188,7 +1188,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) jr c, .asm_4d12 ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable - ld [hl], $1 + ld [hl], DUELIST_TYPE_LINK_OPP or a ret @@ -1416,10 +1416,10 @@ ConvertTrainerCardToPokemon: .start_ram_data_overwrite push de ld [hl], COLORLESS - ld bc, wLoadedCard1HP - wLoadedCard1 + ld bc, CARD_DATA_HP add hl, bc ld de, .data_to_overwrite - ld c, wLoadedCard1Unknown2 - wLoadedCard1HP + ld c, CARD_DATA_UNKNOWN2 - CARD_DATA_HP .loop ld a, [de] inc de @@ -1430,16 +1430,16 @@ ConvertTrainerCardToPokemon: ret .data_to_overwrite - db 10 ; hp - ds $07 ; wLoadedCard1Move1Name - (wLoadedCard1HP + 1) - tx DiscardName ; move1 name - tx DiscardDescription ; move1 description - ds $03 ; wLoadedCard1Move1Category - (wLoadedCard1Move1Description + 2) - db POKEMON_POWER ; move1 category - dw TrainerCardAsPokemonEffectCommands ; move1 effect commands - ds $18 ; wLoadedCard1RetreatCost - (wLoadedCard1Move1EffectCommands + 2) - db UNABLE_RETREAT ; retreat cost - ds $0d ; PKMN_CARD_DATA_LENGTH - (wLoadedCard1RetreatCost + 1 - wLoadedCard1) + db 10 ; CARD_DATA_HP + ds $07 ; CARD_DATA_MOVE1_NAME - (CARD_DATA_HP + 1) + tx DiscardName ; CARD_DATA_MOVE1_NAME + tx DiscardDescription ; CARD_DATA_MOVE1_DESCRIPTION + ds $03 ; CARD_DATA_MOVE1_CATEGORY - (CARD_DATA_MOVE1_DESCRIPTION + 2) + db POKEMON_POWER ; CARD_DATA_MOVE1_CATEGORY + dw TrainerCardAsPokemonEffectCommands ; CARD_DATA_MOVE1_EFFECT_COMMANDS + ds $18 ; CARD_DATA_RETREAT_COST - (CARD_DATA_MOVE1_EFFECT_COMMANDS + 2) + db UNABLE_RETREAT ; CARD_DATA_RETREAT_COST + ds $0d ; PKMN_CARD_DATA_LENGTH - (CARD_DATA_RETREAT_COST + 1) INCROM $6df1, $7107 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 383fe04..df4a1d5 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -2219,7 +2219,7 @@ Func_d00b: ; d00b (3:500b) dec hl ld e, a ld d, $0 - call Func_2f45 + call GetCardName pop hl ld [hl], e inc hl diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index 23c3494..c24f80a 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -81,7 +81,7 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) call CheckCardViable jr c, .finished_with_current_card ld a, [wBoosterCurrentCardType] - call GetCardType + call GetBoosterCardType push af push hl ld c, a @@ -107,7 +107,7 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) CheckCardViable: ; 1e268 (7:6268) push bc ld a, e - call GetCardHeader + call GetCardTypeRarityAndSet ld [wBoosterCurrentCardType], a ld a, b ld [wBoosterCurrentCardRarity], a @@ -119,7 +119,7 @@ CheckCardViable: ; 1e268 (7:6268) cp c jr nz, .invalid_card ld a, [wBoosterCurrentCardType] - call GetCardType + call GetBoosterCardType cp BOOSTER_CARD_TYPE_ENERGY jr z, .return_valid_card ld a, [wBoosterCurrentCardSet] @@ -139,7 +139,7 @@ CheckCardViable: ; 1e268 (7:6268) ret ; Map a card's TYPE_* constant given in a to its BOOSTER_CARD_TYPE_* constant -GetCardType: ; 1e2a0 (7:62a0) +GetBoosterCardType: ; 1e2a0 (7:62a0) push hl push bc ld hl, CardTypeTable @@ -439,7 +439,7 @@ AddBoosterCardsToCollection:; 1e40a (7:640a) AddBoosterCardToTempCardCollection: ; 1e419 (7:6419) push hl - ld h, wTempCardCollection >> 8 + ld h, HIGH(wTempCardCollection) ld a, [wBoosterTempCard] ld l, a inc [hl] @@ -448,7 +448,7 @@ AddBoosterCardToTempCardCollection: ; 1e419 (7:6419) IsByteInTempCardCollectionZero: ; 1e423 (7:6423) push hl - ld h, wTempCardCollection >> 8 + ld h, HIGH(wTempCardCollection) ld a, [wBoosterTempCard] ld l, a ld a, [hl] diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index 1d49838..22d7cec 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -99,12 +99,12 @@ CommentedOut_2c086: ; 2c086 (b:4086) Func_2c087: ; 2c087 (b:4087) xor a - jr asm_2c08c + jr Func_2c08c Func_2c08a: ; 2c08a (b:408a) ld a, $1 -asm_2c08c +Func_2c08c: push de push af ld a, $11 diff --git a/src/engine/home.asm b/src/engine/home.asm index 96f63c4..a889228 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1284,6 +1284,7 @@ SwitchToCGBDoubleSpeed: ; 07e7 (0:07e7) bit 7, [hl] ret nz ; fallthrough + CGBSpeedSwitch: ; 07f1 (0:07f1) ld a, [rIE] push af @@ -3491,7 +3492,7 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0) ld hl, wLoadedCard1Move2 .got_move ld de, wLoadedMove - ld c, wLoadedCard1Move2 - wLoadedCard1Move1 + ld c, CARD_DATA_MOVE2 - CARD_DATA_MOVE1 .copy_loop ld a, [hli] ld [de], a @@ -3854,7 +3855,7 @@ Func_1994: ; 1994 (0:1994) call Func_1a0e ld b, a call SwapTurn - call Func_3730 + call GetArenaPokemonWeakness call SwapTurn and b jr z, .asm_19dc @@ -3864,7 +3865,7 @@ Func_1994: ; 1994 (0:1994) set 1, [hl] .asm_19dc call SwapTurn - call Func_374a + call GetArenaPokemonResistance call SwapTurn and b jr z, .check_pluspower_and_defender @@ -3916,7 +3917,7 @@ Func_1a22: ; 1a22 (0:1a22) call Func_36f6 call Func_1a0e ld b, a - call Func_3730 + call GetArenaPokemonWeakness and b jr z, .asm_1a47 sla e @@ -3924,7 +3925,7 @@ Func_1a22: ; 1a22 (0:1a22) ld hl, $ccc1 set 1, [hl] .asm_1a47 - call Func_374a + call GetArenaPokemonResistance and b jr z, .asm_1a58 ld hl, $ffe2 @@ -4505,6 +4506,7 @@ DrawRegularTextBox: ; 1e7c (0:1e7c) cp CONSOLE_SGB jp z, DrawRegularTextBoxSGB ; fallthrough + DrawRegularTextBoxDMG: ; 1e88 (0:1e88) call DECoordToBGMap0Address ; top line (border) of the text box @@ -4622,7 +4624,7 @@ DrawRegularTextBoxSGB: ; 1f0f (0:1f0f) ld a, [wFrameType] or a ret z -ColorizeTextBoxSGB +ColorizeTextBoxSGB: push bc push de ld hl, $cae0 @@ -4742,11 +4744,11 @@ Func_20c4: ; 20c4 (0:20c4) Func_20d8: ; 20d8 (0:20d8) ld b, $10 - jr asm_20de + jr Func_20dc.asm_20de Func_20dc: ; 20dc (0:20dc) ld b, $24 -asm_20de +.asm_20de ld hl, DuelGraphics + $980 - $4000 ld a, [wConsole] cp CONSOLE_CGB @@ -6558,15 +6560,17 @@ Func_2ec4: ; 2ec4 (0:2ec4) INCROM $2ecd, $2f0a -; load data of card with id at e to wLoadedCard1 or wLoadedCard2 +; load data of card with id at e to wLoadedCard2 LoadCardDataToBuffer2: ; 2f0a (0:2f0a) push hl ld hl, wLoadedCard2 jr LoadCardDataToRAM +; load data of card with id at e to wLoadedCard1 LoadCardDataToBuffer1: ; 2f10 (0:2f10) push hl ld hl, wLoadedCard1 +; fallthrough LoadCardDataToRAM: ; 2f14 (0:2f14) push de @@ -6586,65 +6590,65 @@ LoadCardDataToRAM: ; 2f14 (0:2f14) jr nz, .copy_card_data_loop call BankpopHome or a - .done pop bc pop de pop hl ret -Func_2f32: ; 2f32 (0:2f32) +; return in a the type (TYPE_* constant) of the card with id at e +GetCardType: ; 2f32 (0:2f32) push hl call GetCardPointer - jr c, .asm_2f43 + jr c, .done ld a, BANK(CardPointers) call BankpushHome2 ld l, [hl] call BankpopHome ld a, l or a -.asm_2f43 +.done pop hl ret -Func_2f45: ; 2f45 (0:2f45) +; return in a the 2-byte text id of the name of the card with id at e +GetCardName: ; 2f45 (0:2f45) push hl call GetCardPointer - jr c, .asm_2f5b + jr c, .done ld a, BANK(CardPointers) call BankpushHome2 - ld de, $0003 + ld de, CARD_DATA_NAME add hl, de ld e, [hl] inc hl ld d, [hl] call BankpopHome or a - -.asm_2f5b +.done pop hl ret -; from the card id in a, loads type into a, rarity into b, and set into c -GetCardHeader: ; 2f5d (0:2f5d) +; from the card id in a, returns type into a, rarity into b, and set into c +GetCardTypeRarityAndSet: ; 2f5d (0:2f5d) push hl push de - ld d, $00 + ld d, 0 ld e, a call GetCardPointer - jr c, .card_not_found + jr c, .done ld a, BANK(CardPointers) call BankpushHome2 - ld e, [hl] - ld bc, $5 + ld e, [hl] ; CARD_DATA_TYPE + ld bc, CARD_DATA_RARITY add hl, bc - ld b, [hl] + ld b, [hl] ; CARD_DATA_RARITY inc hl - ld c, [hl] + ld c, [hl] ; CARD_DATA_SET call BankpopHome ld a, e or a -.card_not_found +.done pop de pop hl ret @@ -7157,6 +7161,7 @@ Func_31fc: ; 31fc (0:31fc) ld [hl], a ld a, e ; fallthrough + Func_3212: ; 3212 (0:3212) ld [rSB], a ld a, $1 @@ -7748,13 +7753,13 @@ Func_36f7: ; 36f7 (0:36f7) call GetTurnDuelistVariable bit 7, a jr nz, .asm_3718 -.asm_3703 +.has_status ld a, e add DUELVARS_ARENA_CARD call GetTurnDuelistVariable call GetCardIDFromDeckIndex - call Func_2f32 - cp $10 + call GetCardType + cp TYPE_TRAINER jr nz, .asm_3715 ld a, $6 .asm_3715 @@ -7764,7 +7769,7 @@ Func_36f7: ; 36f7 (0:36f7) .asm_3718 ld a, e call CheckIfUnderAnyCannotUseStatus2 - jr c, .asm_3703 + jr c, .has_status ld a, e add $d4 call GetTurnDuelistVariable @@ -7774,28 +7779,50 @@ Func_36f7: ; 36f7 (0:36f7) ret ; 0x3729 - INCROM $3729, $3730 +; return in a the weakness of the arena Pokemon (a == 0) or of a bench Pokemon (a > 0) +; if a == 0 and [DUELVARS_ARENA_CARD_SUBSTATUS3] != 0, return [DUELVARS_ARENA_CARD_SUBSTATUS3] instead +GetPlayAreaPokemonWeakness: ; 3729 (0:3729) + or a + jr z, GetArenaPokemonWeakness + add DUELVARS_ARENA_CARD + jr GetPokemonWeakness -Func_3730: ; 3730 (0:3730) +; return [DUELVARS_ARENA_CARD_SUBSTATUS3] in a +; if [DUELVARS_ARENA_CARD_SUBSTATUS3] == 0, return the Pokemon's weakness value instead +GetArenaPokemonWeakness: ; 3730 (0:3730) ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 call GetTurnDuelistVariable or a ret nz ld a, DUELVARS_ARENA_CARD +; fallthrough + +GetPokemonWeakness: call GetTurnDuelistVariable call LoadDeckCardToBuffer2 ld a, [wLoadedCard2Weakness] ret ; 0x3743 - INCROM $3743, $374a +; return in a the resistance of the arena Pokemon (a == 0) or of a bench Pokemon (a > 0) +; if a == 0 and [DUELVARS_ARENA_CARD_SUBSTATUS4] != 0, return [DUELVARS_ARENA_CARD_SUBSTATUS4] instead +GetPlayAreaPokemonResistance: ; 3743 (0:3743) + or a + jr z, GetArenaPokemonResistance + add DUELVARS_ARENA_CARD + jr GetPokemonResistance -Func_374a: ; 374a (0:374a) +; return [DUELVARS_ARENA_CARD_SUBSTATUS4] in a +; if [DUELVARS_ARENA_CARD_SUBSTATUS4] == 0, return the Pokemon's resistance value instead +GetArenaPokemonResistance: ; 374a (0:374a) ld a, DUELVARS_ARENA_CARD_SUBSTATUS4 call GetTurnDuelistVariable or a ret nz ld a, DUELVARS_ARENA_CARD +; fallthrough + +GetPokemonResistance: call GetTurnDuelistVariable call LoadDeckCardToBuffer2 ld a, [wLoadedCard2Resistance] @@ -7979,7 +8006,7 @@ Func_38db: ; 38db (0:38db) xor a ld [$ba44], a call DisableSRAM -asm_38ed +.asm_38ed farcall Func_131d3 ld a, $9 ld [wd111], a @@ -7995,7 +8022,7 @@ Func_38fb: ; 38fb (0:38fb) ld a, [$ba44] call DisableSRAM cp $ff - jr z, asm_38ed + jr z, Func_38db.asm_38ed scf ret @@ -8022,7 +8049,7 @@ GetFloorObjectFromPos: ; 3927 (0:3927) INCROM $392e, $3946 -; puts a floor tile in hc given coords in bc (x,y. measured in tiles) +; puts a floor tile in hl given coords in bc (x,y. measured in tiles) FindFloorTileFromPos: ; 3946 (0:3946) push bc srl b -- cgit v1.2.3 From 46416da9fa3e33738fce25bbd79d9b61476b5164 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Thu, 22 Feb 2018 19:41:55 +0100 Subject: More duel related disassembly and more DUELVAR constants --- src/constants/card_data_constants.asm | 40 ++--- src/constants/duel_constants.asm | 23 ++- src/engine/bank1.asm | 18 +- src/engine/bank8.asm | 2 +- src/engine/effect_functions.asm | 4 +- src/engine/home.asm | 321 +++++++++++++++++++++++++--------- src/macros/wram.asm | 6 +- src/wram.asm | 70 ++++++-- 8 files changed, 342 insertions(+), 142 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index d5a44bf..fb17a53 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -64,7 +64,7 @@ CARD_DATA_UNKNOWN2 EQU $40 PKMN_CARD_DATA_LENGTH EQU $41 -; generic type constants +; generic type (color) constants const_def const FIRE ; $0 const GRASS ; $1 @@ -78,25 +78,25 @@ NUM_COLORED_TYPES EQU const_value NUM_TYPES EQU const_value ; CARD_DATA_TYPE constants -TYPE_PKMN_FIRE EQUS "FIRE" -TYPE_PKMN_GRASS EQUS "GRASS" -TYPE_PKMN_LIGHTNING EQUS "LIGHTNING" -TYPE_PKMN_WATER EQUS "WATER" -TYPE_PKMN_FIGHTING EQUS "FIGHTING" -TYPE_PKMN_PSYCHIC EQUS "PSYCHIC" -TYPE_PKMN_COLORLESS EQUS "COLORLESS" -TYPE_PKMN_UNUSED EQUS "UNUSED_TYPE" +TYPE_PKMN_FIRE EQU FIRE +TYPE_PKMN_GRASS EQU GRASS +TYPE_PKMN_LIGHTNING EQU LIGHTNING +TYPE_PKMN_WATER EQU WATER +TYPE_PKMN_FIGHTING EQU FIGHTING +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 - const TYPE_ENERGY_FIRE ; $8 - const TYPE_ENERGY_GRASS ; $9 - const TYPE_ENERGY_LIGHTNING ; $A - const TYPE_ENERGY_WATER ; $B - const TYPE_ENERGY_FIGHTING ; $C - const TYPE_ENERGY_PSYCHIC ; $D - const TYPE_ENERGY_DOUBLE_COLORLESS ; $E - const TYPE_ENERGY_UNUSED ; $F - const TYPE_TRAINER ; $10 - const TYPE_TRAINER_UNUSED ; $11 + const TYPE_ENERGY_FIRE ; $08 + const TYPE_ENERGY_GRASS ; $09 + const TYPE_ENERGY_LIGHTNING ; $0a + const TYPE_ENERGY_WATER ; $0b + const TYPE_ENERGY_FIGHTING ; $0c + const TYPE_ENERGY_PSYCHIC ; $0d + const TYPE_ENERGY_DOUBLE_COLORLESS ; $0e + const TYPE_ENERGY_UNUSED ; $0f + const TYPE_TRAINER ; $10 + const TYPE_TRAINER_UNUSED ; $11 NUM_CARD_TYPES EQU const_value + -1 TYPE_PKMN EQU %111 @@ -107,7 +107,7 @@ TYPE_TRAINER_F EQU 4 CIRCLE EQU $0 DIAMOND EQU $1 STAR EQU $2 -PROMOSTAR EQU $FF +PROMOSTAR EQU $ff ; CARD_DATA_SET constants (set 1) COLOSSEUM EQU $00 diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index 956f84d..ebbb4c9 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -1,7 +1,7 @@ -DECK_NAME_SIZE EQU 24 -DECK_SIZE EQU 60 -BENCH_SIZE EQU 5 -MAX_POKEMON_IN_PLAY EQU 6 ; arena + bench +DECK_NAME_SIZE EQU 24 +DECK_SIZE EQU 60 +MAX_BENCH_POKEMON EQU 5 +MAX_PLAY_AREA_POKEMON EQU 6 ; arena + bench ; hWhoseTurn constants PLAYER_TURN EQUS "HIGH(wPlayerDuelVariables)" @@ -35,11 +35,17 @@ DUELVARS_BENCH2_CARD_HP EQUS "LOW(wPlayerBench2CardHP)" 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_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_SUBSTATUS3 EQUS "LOW(wPlayerArenaCardSubstatus3)" ; e9 -DUELVARS_ARENA_CARD_SUBSTATUS4 EQUS "LOW(wPlayerArenaCardSubstatus4)" ; ea -DUELVARS_ARENA_CARD_SUBSTATUS5 EQUS "LOW(wPlayerArenaCardSubstatus5)" ; eb +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 @@ -108,7 +114,8 @@ SUBSTATUS2_UNABLE_RETREAT EQU $09 SUBSTATUS2_BONE_ATTACK EQU $0b SUBSTATUS2_GROWL EQU $12 -SUBSTATUS5_THIS_TURN_DOUBLE_DAMAGE EQU 0 +SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE EQU 0 +SUBSTATUS3_HEADACHE EQU 1 ; wNoDamageOrEffect constants NO_DAMAGE_OR_EFFECT_AGILITY EQU $01 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 47873bc..73c1a8a 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -123,7 +123,7 @@ StartDuel: ; 409f (1:409f) .main_duel_loop ; 40ee (1:40ee) xor a ld [wCurrentDuelMenuItem], a - call HandleSwordsDanceOrFocusEnergySubstatus + call UpdateSubstatusConditions_StartOfTurn call $54c8 call HandleTurn @@ -132,7 +132,7 @@ StartDuel: ; 409f (1:409f) ld a, [wDuelFinished] or a jr nz, .duel_finished - call UpdateSubstatusConditions + call UpdateSubstatusConditions_EndOfTurn call $6baf call Func_3b31 call Func_0f58 @@ -306,7 +306,7 @@ HandleTurn: ; 4225 (1:4225) cp DUELIST_TYPE_PLAYER jr z, Func_4262 call SwapTurn - call Func_34e2 + call IsClairvoyanceActive call SwapTurn call c, $4b2c jr DuelMainScene @@ -470,7 +470,7 @@ PlayerActivePokemonScreen: ; 4370 (1:4370) Func_4376: ; 4376 (1:4376) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - cp $ff + cp -1 ret z call GetCardIDFromDeckIndex call LoadCardDataToBuffer1 @@ -1193,7 +1193,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) ret .asm_4d12 - jp Func_0f35 + jp DuelTransmissionError .asm_4d15 call EmptyScreen @@ -1235,7 +1235,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) jr c, .asm_4d8e ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY call GetTurnDuelistVariable - cp MAX_POKEMON_IN_PLAY + cp MAX_PLAY_AREA_POKEMON jr nc, .asm_4d86 ldh a, [hTempCardIndex_ff98] call Func_1485 @@ -1341,7 +1341,7 @@ AIMakeDecision: ; 67be (1:67be) INCROM $67fb, $695e AIActionTable: ; 695e (1:695e) - dw Func_0f35 + dw DuelTransmissionError dw $69e0 dw $69c5 dw AIUseEnergyCard @@ -1476,9 +1476,9 @@ InitializeDuelVariables: ; 7107 (1:7107) dec c jr nz, .init_duel_variables_loop ld l, DUELVARS_ARENA_CARD - ld c, 1 + BENCH_SIZE + 1 + ld c, 1 + MAX_BENCH_POKEMON + 1 .init_play_area -; initialize to $ff card in arena as well as cards in bench (plus a terminator?) +; initialize to $ff card in arena as well as cards in bench (plus a terminator) ld [hl], $ff inc l dec c diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index dd3026f..8923a9e 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -48,7 +48,7 @@ Func_200e5: ; 200e5 (8:40e5) ldh [hTempCardIndex_ff9f], a bank1call $35a9 jp c, $41a8 - call Func_1944 + call LoadNonPokemonCardEffectCommands ld a, $1 call TryExecuteEffectCommandFunction jp c, $41a8 diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index 22d7cec..45aad3b 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -44,12 +44,12 @@ ApplyStatusEffect: jr z, .cant_induce_status cp MYSTERIOUS_FOSSIL jr z, .cant_induce_status - ; snorlax's thick skinned prevents it from being statused... + ; Snorlax's Thick Skinned prevents it from being statused... cp SNORLAX jr nz, .can_induce_status call SwapTurn xor a - ; ...unless already so, or if affected by muk's toxic gas + ; ...unless already so, or if affected by Muk's Toxic Gas call CheckIfUnderAnyCannotUseStatus2 call SwapTurn jr c, .can_induce_status diff --git a/src/engine/home.asm b/src/engine/home.asm index a889228..0903aec 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2452,7 +2452,7 @@ Func_0ed5: ; 0ed5 (0:0ed5) INCROM $0ef1, $0f35 -Func_0f35: ; 0f35 (0:0f35) +DuelTransmissionError: ; 0f35 (0:0f35) ld a, [wSerialFlags] ld l, a ld h, $0 @@ -2490,7 +2490,7 @@ Func_0f58: ; 0f58 (0:0f58) .asm_f76 ld c, $3 call Func_0e63 - jp c, Func_0f35 + jp c, DuelTransmissionError ret ; sets hAIActionTableIndex to an AI action specified in register a @@ -2568,7 +2568,7 @@ Func_0fac: ; 0fac (0:0fac) ld hl, wcbed ld bc, $0008 call Func_0ebf - jp c, Func_0f35 + jp c, DuelTransmissionError pop bc pop de pop hl @@ -2581,7 +2581,7 @@ Func_0fe9: ; 0fe9 (0:0fe9) ld bc, $0008 push hl call Func_0ed5 - jp c, Func_0f35 + jp c, DuelTransmissionError pop hl ld e, [hl] inc hl @@ -3298,7 +3298,7 @@ Func_1485: ; 1485 (0:1485) push af ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY call GetTurnDuelistVariable - cp MAX_POKEMON_IN_PLAY + cp MAX_PLAY_AREA_POKEMON jr nc, .already_max_pkmn_in_play inc [hl] ld e, a @@ -3424,7 +3424,7 @@ GetAttachedEnergies: ; 159f (0:159f) ; returns in a how many times card e can be found in location b ; e = card id to search -; b = location to consider (deck, hand, arena...) +; b = location to consider (CARD_LOCATION_*) ; h = PLAYER_TURN or OPPONENT_TURN CountCardIDInLocation: ; 15ef (0:15ef) push bc @@ -3433,15 +3433,15 @@ CountCardIDInLocation: ; 15ef (0:15ef) .next_card ld a, [hl] cp b - jr nz, .unmatching_card_location_orID + jr nz, .unmatching_card_location_or_ID ld a, l push hl call _GetCardIDFromDeckIndex cp e pop hl - jr nz, .unmatching_card_location_orID + jr nz, .unmatching_card_location_or_ID inc c -.unmatching_card_location_orID +.unmatching_card_location_or_ID inc l ld a, l cp DECK_SIZE @@ -3475,7 +3475,7 @@ GetNonTurnDuelistVariable: ; 1611 (0:1611) INCROM $161e, $16c0 -; copies from card identified by register d (0-59): +; copies from card identified by register d (0-59 deck index): ; - Move1 (if e == 0) or Move2 (if e == 1) data into wLoadedMove ; - Also from that move, its Damage field into wDamage CopyMoveDataAndDamage: ; 16c0 (0:16c0) @@ -3775,12 +3775,12 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7) INCROM $18f9, $1944 -; this loads HP and Stage (1 byte each) of the card with deck index (0-59) at hTempCardIndex_ff9f +; loads the effect commands of a (trainer or energy) card with deck index (0-59) at hTempCardIndex_ff9f ; into wLoadedMoveEffectCommands -Func_1944: ; 1944 (0:1944) +LoadNonPokemonCardEffectCommands: ; 1944 (0:1944) ldh a, [hTempCardIndex_ff9f] call LoadDeckCardToBuffer1 - ld hl, wLoadedCard1HP + ld hl, wLoadedCard1EffectCommands ld de, wLoadedMoveEffectCommands ld a, [hli] ld [de], a @@ -3851,7 +3851,7 @@ Func_1994: ; 1994 (0:1994) or d ret z ldh a, [hTempPlayAreaLocationOffset_ff9d] - call Func_36f7 + call GetPlayAreaCardColor call Func_1a0e ld b, a call SwapTurn @@ -3914,7 +3914,7 @@ Func_1a22: ; 1a22 (0:1a22) ld d, [hl] dec hl ld e, [hl] - call Func_36f6 + call GetArenaCardColor call Func_1a0e ld b, a call GetArenaPokemonWeakness @@ -5723,7 +5723,7 @@ CardTypeToSymbolID: ; 2988 (0:2988) ld a, 11 ret .pokemon_card - ld a, [wLoadedCard1Stage] + ld a, [wLoadedCard1Stage] ; different symbol for each evolution stage add 8 ret ; 0x299f @@ -7172,9 +7172,9 @@ Func_3212: ; 3212 (0:3212) ; doubles the damage at de if swords dance or focus energy was used in the last turn HandleDoubleDamageSubstatus: ; 321d (0:321d) - ld a, DUELVARS_ARENA_CARD_SUBSTATUS5 + ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 call GetTurnDuelistVariable - bit SUBSTATUS5_THIS_TURN_DOUBLE_DAMAGE, [hl] + bit SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE, [hl] call nz, DoubleDamageAtDE ld a, DUELVARS_ARENA_CARD_SUBSTATUS1 call GetTurnDuelistVariable @@ -7511,13 +7511,14 @@ NoDamageOrEffectTextPointerTable: ; 34d8 (0:34d8) tx NoDamageOrEffectDueToNShieldText ; NO_DAMAGE_OR_EFFECT_NSHIELD ; 0x34e2 -Func_34e2: ; 34e2 (0:34e2) - ld a, $27 - call Func_3509 +; return carry if turn holder has Omanyte and its Clairvoyance Pkmn Power is active +IsClairvoyanceActive: ; 34e2 (0:34e2) + ld a, MUK + call CountPokemonIDInBothPlayAreas ccf ret nc - ld a, $5c - call Func_3525 + ld a, OMANYTE + call CountPokemonIDInPlayArea ret ; returns carry if paralyzed, asleep, confused, and/or toxic gas in play, @@ -7537,81 +7538,183 @@ CheckIfUnderAnyCannotUseStatus2: ; 34f0 (0:34f0) jr nz, .done ; return carry .check_toxic_gas ld a, MUK - call Func_3509 + call CountPokemonIDInBothPlayAreas ldtx hl, UnableDueToToxicGasText .done ret -Func_3509: ; 3509 (0:3509) +; return, in a, the amount of times that the Pokemon card with a given ID is found in the +; play area of both duelists. Also return carry if the Pokemon card is at least found once. +; if the arena Pokemon is asleep, confused, or paralyzed (Pkmn Power-incapable), it doesn't count. +; input: a = Pokemon card ID to search +CountPokemonIDInBothPlayAreas: ; 3509 (0:3509) push bc - ld [wce7c], a - call Func_3525 + ld [wTempPokemonID], a + call CountPokemonIDInPlayArea ld c, a call SwapTurn - ld a, [wce7c] - call Func_3525 + ld a, [wTempPokemonID] + call CountPokemonIDInPlayArea call SwapTurn add c or a scf - jr nz, .asm_3523 + jr nz, .found or a -.asm_3523 +.found pop bc ret -Func_3525: ; 3525 (0:3525) +; return, in a, the amount of times that the Pokemon card with a given ID is found in the +; turn holder's play area. Also return carry if the Pokemon card is at least found once. +; if the arena Pokemon is asleep, confused, or paralyzed (Pkmn Power-incapable), it doesn't count. +; input: a = Pokemon card ID to search +CountPokemonIDInPlayArea: ; 3525 (0:3525) push hl push de push bc - ld [wce7c], a + ld [wTempPokemonID], a ld c, $0 ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - cp $ff - jr z, .asm_3549 + cp -1 + jr z, .check_bench call GetCardIDFromDeckIndex - ld a, [wce7c] + ld a, [wTempPokemonID] cp e - jr nz, .asm_3549 + jr nz, .check_bench ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable and PASSIVE_STATUS_MASK - jr nz, .asm_3549 + jr nz, .check_bench inc c -.asm_3549 +.check_bench ld a, DUELVARS_BENCH call GetTurnDuelistVariable -.asm_354e +.next_bench_slot ld a, [hli] - cp $ff - jr z, .asm_3560 + cp -1 + jr z, .done call GetCardIDFromDeckIndex - ld a, [wce7c] + ld a, [wTempPokemonID] cp e - jr nz, .asm_355d + jr nz, .skip inc c -.asm_355d +.skip inc b - jr .asm_354e -.asm_3560 + jr .next_bench_slot +.done ld a, c or a scf - jr nz, .asm_3566 + jr nz, .found or a -.asm_3566 +.found pop bc pop de pop hl ret ; 0x356a - INCROM $356a, $35e6 +; return, in a, the retreat cost of the card in wLoadedCard1, +; adjusting for any Dodrio's Retreat Aid Pkmn Power that is active. +GetLoadedCard1RetreatCost: ; 356a (0:356a) + ld c, 0 + ld a, DUELVARS_BENCH + call GetTurnDuelistVariable +.check_bench_loop + ld a, [hli] + cp -1 + jr z, .no_more_bench + call GetCardIDFromDeckIndex + ld a, e + cp DODRIO + jr nz, .not_dodrio + inc c +.not_dodrio + jr .check_bench_loop +.no_more_bench + ld a, c + or a + jr nz, .dodrio_found +.muk_found + ld a, [wLoadedCard1RetreatCost] ; return regular retreat cost + ret +.dodrio_found + ld a, MUK + call CountPokemonIDInBothPlayAreas + jr c, .muk_found + ld a, [wLoadedCard1RetreatCost] + sub c ; apply Retreat Aid for each Pkmn Power-capable Dodrio + ret nc + xor a + ret +; 0x3597 + +; return carry if the turn holder's active Pokemon is affected by Acid and can't retreat +CheckCantRetreatDueToAcid: ; 3597 (0:3597) + ld a, DUELVARS_ARENA_CARD_SUBSTATUS2 + call GetTurnDuelistVariable + or a + ret z + cp SUBSTATUS2_UNABLE_RETREAT + jr z, .cant_retreat + or a + ret +.cant_retreat + ldtx hl, UnableToRetreatDueToAcidText + scf + ret +; 0x35a9 + +; return carry if the turn holder's active Pokemon is affected by Headache and trainer cards can't be used +CheckCantUseTrainerDueToHeadache: ; 35a9 (0:35a9) + ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 + call GetTurnDuelistVariable + or a + bit SUBSTATUS3_HEADACHE, [hl] + ret z + ldtx hl, UnableToUseTrainerDueToHeadacheText + scf + ret +; 0x35b7 + +; return carry if turn holder has Aerodactyl and its Prehistoric Power Pkmn Power is active +IsPrehistoricPowerActive: ; 35b7 (0:35b7) + ld a, AERODACTYL + call CountPokemonIDInBothPlayAreas + ret nc + ld a, MUK + call CountPokemonIDInBothPlayAreas + ldtx hl, UnableToEvolveDueToPrehistoricPowerText + ccf + ret +; 0x35c7 + +; clears some substatus 2 conditions from the turn holder's active Pokemon +Func_35c7: ; 35c7 (0:35c7) + ld a, DUELVARS_ARENA_CARD_SUBSTATUS2 + call GetTurnDuelistVariable + or a + ret z + cp SUBSTATUS2_REDUCE_BY_20 + jr z, .zero + cp SUBSTATUS2_POUNCE + jr z, .zero + cp SUBSTATUS2_GROWL + jr z, .zero + cp SUBSTATUS2_TAIL_WAG + jr z, .zero + cp SUBSTATUS2_LEER + jr z, .zero + ret +.zero + ld [hl], 0 + ret +; 0x35e6 -; if swords dance or focus energy was used this turn, -; mark that the base power of the next turn's attack has to be doubled -HandleSwordsDanceOrFocusEnergySubstatus: ; 35e6 (0:35e6) +; clears the substatus 1 and updates the double damage condition of the player about to start his turn +UpdateSubstatusConditions_StartOfTurn: ; 35e6 (0:35e6) ld a, DUELVARS_ARENA_CARD_SUBSTATUS1 call GetTurnDuelistVariable ld [hl], $0 @@ -7619,16 +7722,16 @@ HandleSwordsDanceOrFocusEnergySubstatus: ; 35e6 (0:35e6) ret z cp SUBSTATUS1_NEXT_TURN_DOUBLE_DAMAGE ret nz - ld a, DUELVARS_ARENA_CARD_SUBSTATUS5 + ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 call GetTurnDuelistVariable - set SUBSTATUS5_THIS_TURN_DOUBLE_DAMAGE, [hl] + set SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE, [hl] ret -; clears the substatus 2 and updates the double damage condition of the turn holder -UpdateSubstatusConditions: ; 35fa (0:35fa) - ld a, DUELVARS_ARENA_CARD_SUBSTATUS5 +; clears the substatus 2, Headache, and updates the double damage condition of the player ending his turn +UpdateSubstatusConditions_EndOfTurn: ; 35fa (0:35fa) + ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 call GetTurnDuelistVariable - res 1, [hl] + res SUBSTATUS3_HEADACHE, [hl] push hl ld a, DUELVARS_ARENA_CARD_SUBSTATUS2 call GetTurnDuelistVariable @@ -7639,11 +7742,39 @@ UpdateSubstatusConditions: ; 35fa (0:35fa) pop hl cp SUBSTATUS1_NEXT_TURN_DOUBLE_DAMAGE ret z - res SUBSTATUS5_THIS_TURN_DOUBLE_DAMAGE, [hl] + res SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE, [hl] ret ; 0x3615 - INCROM $3615, $363b +; return carry if turn holder has Blastoise and its Rain Dance Pkmn Power is active +IsRainDanceActive: ; 3615 (0:3615) + ld a, BLASTOISE + call CountPokemonIDInPlayArea + ret nc ; return if no Pkmn Power-capable Blastoise found in turn holder's play area + ld a, MUK + call CountPokemonIDInBothPlayAreas + ccf + ret +; 0x3622 + +; return carry if card at [hTempCardIndex_ff98] is a water energy card AND +; if card at [hTempPlayAreaLocationOffset_ff9d] is a water Pokemon card. +Func_3622: ; 3622 (0:3622) + ldh a, [hTempCardIndex_ff98] + call GetCardIDFromDeckIndex + call GetCardType + cp TYPE_ENERGY_WATER + jr nz, .done + ldh a, [hTempPlayAreaLocationOffset_ff9d] + call GetPlayAreaCardColor + cp TYPE_PKMN_WATER + jr nz, .done + scf + ret +.done + or a + ret +; 0x363b ; if the target card's HP is 0 and the attacking card's HP is not, ; the attacking card faints if it was affected by destiny bond @@ -7657,7 +7788,7 @@ HandleDestinyBondSubstatus: ; 363b (0:363b) .check_hp ld a, DUELVARS_ARENA_CARD call GetNonTurnDuelistVariable - cp $ff + cp -1 ret z ld a, DUELVARS_ARENA_CARD_HP call GetNonTurnDuelistVariable @@ -7740,38 +7871,62 @@ ApplyStrikesBack: ; 36a2 (0:36a2) ret ; 0x36d9 - INCROM $36d9, $36f6 +; if the id of the card provided in register a as a deck index is Muk, +; clear the changed type of all arena and bench Pokemon +ClearChangedTypesIfMuk: ; 36d9 (0:36d9) + call GetCardIDFromDeckIndex + ld a, e + cp MUK + ret nz + call SwapTurn + call .zero_changed_types + call SwapTurn +.zero_changed_types + ld a, DUELVARS_ARENA_CARD_CHANGED_TYPE + call GetTurnDuelistVariable + ld c, MAX_PLAY_AREA_POKEMON +.zero_changed_types_loop + xor a + ld [hli], a + dec c + jr nz, .zero_changed_types_loop + ret +; 0x36f6 -Func_36f6: ; 36f6 (0:36f6) +; return the arena card's color in a, accounting for Venomoth's Shift Pokemon Power if active +GetArenaCardColor: ; 36f6 (0:36f6) xor a +; fallthrough -Func_36f7: ; 36f7 (0:36f7) +; input: a = play area location offset of the desired card +; return the card's color in a, accounting for Venomoth's Shift Pokemon Power if active +GetPlayAreaCardColor: ; 36f7 (0:36f7) push hl push de ld e, a - add $d4 + add DUELVARS_ARENA_CARD_CHANGED_TYPE call GetTurnDuelistVariable bit 7, a - jr nz, .asm_3718 -.has_status + jr nz, .has_changed_color +.regular_color ld a, e add DUELVARS_ARENA_CARD call GetTurnDuelistVariable call GetCardIDFromDeckIndex call GetCardType cp TYPE_TRAINER - jr nz, .asm_3715 - ld a, $6 -.asm_3715 + jr nz, .got_type + ld a, COLORLESS +.got_type pop de pop hl ret -.asm_3718 +.has_changed_color ld a, e call CheckIfUnderAnyCannotUseStatus2 - jr c, .has_status + jr c, .regular_color ; jump if can't use Shift ld a, e - add $d4 + add DUELVARS_ARENA_CARD_CHANGED_TYPE call GetTurnDuelistVariable pop de pop hl @@ -7780,17 +7935,18 @@ Func_36f7: ; 36f7 (0:36f7) ; 0x3729 ; return in a the weakness of the arena Pokemon (a == 0) or of a bench Pokemon (a > 0) -; if a == 0 and [DUELVARS_ARENA_CARD_SUBSTATUS3] != 0, return [DUELVARS_ARENA_CARD_SUBSTATUS3] instead +; if a == 0 and [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] != 0, +; return [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] instead GetPlayAreaPokemonWeakness: ; 3729 (0:3729) or a jr z, GetArenaPokemonWeakness add DUELVARS_ARENA_CARD jr GetPokemonWeakness -; return [DUELVARS_ARENA_CARD_SUBSTATUS3] in a -; if [DUELVARS_ARENA_CARD_SUBSTATUS3] == 0, return the Pokemon's weakness value instead +; return in a the weakness of the arena Pokemon +; if [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] != 0, return it instead GetArenaPokemonWeakness: ; 3730 (0:3730) - ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 + ld a, DUELVARS_ARENA_CARD_CHANGED_WEAKNESS call GetTurnDuelistVariable or a ret nz @@ -7805,17 +7961,18 @@ GetPokemonWeakness: ; 0x3743 ; return in a the resistance of the arena Pokemon (a == 0) or of a bench Pokemon (a > 0) -; if a == 0 and [DUELVARS_ARENA_CARD_SUBSTATUS4] != 0, return [DUELVARS_ARENA_CARD_SUBSTATUS4] instead +; if a == 0 and [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] != 0, +; return [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] instead GetPlayAreaPokemonResistance: ; 3743 (0:3743) or a jr z, GetArenaPokemonResistance add DUELVARS_ARENA_CARD jr GetPokemonResistance -; return [DUELVARS_ARENA_CARD_SUBSTATUS4] in a -; if [DUELVARS_ARENA_CARD_SUBSTATUS4] == 0, return the Pokemon's resistance value instead +; return in a the resistance of the arena Pokemon +; if [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] != 0, return it instead GetArenaPokemonResistance: ; 374a (0:374a) - ld a, DUELVARS_ARENA_CARD_SUBSTATUS4 + ld a, DUELVARS_ARENA_CARD_CHANGED_RESISTANCE call GetTurnDuelistVariable or a ret nz diff --git a/src/macros/wram.asm b/src/macros/wram.asm index 9a7ffc2..9825a36 100644 --- a/src/macros/wram.asm +++ b/src/macros/wram.asm @@ -5,12 +5,10 @@ card_data_struct: MACRO \1Rarity:: db \1Set:: db \1ID:: db -\1EnergyCardEffectCommands:: ; dw -\1TrainerCardEffectCommands:: ; dw +\1EffectCommands:: ; dw \1HP:: db \1Stage:: db -\1EnergyCardDescription:: ; dw -\1TrainerCardDescription:: ; dw +\1NonPokemonDescription:: ; dw \1PreEvoName:: dw \1Move1:: move_data_struct \1Move1 \1Move2:: move_data_struct \1Move2 diff --git a/src/wram.asm b/src/wram.asm index 4a57b98..cd7b1a0 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -53,14 +53,16 @@ wPlayerNumberOfCardsNotInDeck:: ; c2ba ds $1 ; Which card is in player's side of the field, as number 0 to 59 +; -1 indicates no pokemon wPlayerArenaCard:: ; c2bb ds $1 -; Which cards are in player's bench, as numbers 0 to 59 +; Which cards are in player's bench, as numbers 0 to 59, plus an $ff (-1) terminator +; -1 indicates no pokemon wPlayerBench:: ; c2bc - ds BENCH_SIZE + ds MAX_BENCH_POKEMON + 1 - ds $7 + ds $6 wPlayerArenaCardHP:: ; c2c8 ds $1 @@ -75,7 +77,24 @@ wPlayerBench4CardHP:: ; c2cc wPlayerBench5CardHP:: ; c2cd ds $1 - ds $19 + ds $6 + +; changed type from Venomoth's Shift Pokemon Power +; if bit 7 == 1, then bits 0-3 override the Pokemon's actual type +wPlayerArenaCardChangedType:: ; c2d4 + ds $1 +wPlayerBench1CardChangedType:: ; c2d5 + ds $1 +wPlayerBench2CardChangedType:: ; c2d6 + ds $1 +wPlayerBench3CardChangedType:: ; c2d7 + ds $1 +wPlayerBench4CardChangedType:: ; c2d8 + ds $1 +wPlayerBench5CardChangedType:: ; c2d9 + ds $1 + + ds $d wPlayerArenaCardSubstatus1:: ; c2e7 ds $1 @@ -83,13 +102,15 @@ wPlayerArenaCardSubstatus1:: ; c2e7 wPlayerArenaCardSubstatus2:: ; c2e8 ds $1 -wPlayerArenaCardSubstatus3:: ; c2e9 +; changed weakness from Conversion 1 +wPlayerArenaCardChangedWeakness:: ; c2e9 ds $1 -wPlayerArenaCardSubstatus4:: ; c2ea +; changed resistance from Conversion 2 +wPlayerArenaCardChangedResistance:: ; c2ea ds $1 -wPlayerArenaCardSubstatus5:: ; c2eb +wPlayerArenaCardSubstatus3:: ; c2eb ds $1 ; Each bit represents a prize (1 = not taken ; 0 = taken) @@ -141,9 +162,9 @@ wOpponentArenaCard:: ; c3bb ds $1 wOpponentBench:: ; c3bc - ds BENCH_SIZE + ds MAX_BENCH_POKEMON + 1 - ds $7 + ds $6 wOpponentArenaCardHP:: ; c3c8 ds $1 @@ -158,7 +179,22 @@ wOpponentBench4CardHP:: ; c3cc wOpponentBench5CardHP:: ; c3cd ds $1 - ds $19 + ds $6 + +wOpponentArenaCardChangedType:: ; c2d4 + ds $1 +wOpponentBench1CardChangedType:: ; c2d5 + ds $1 +wOpponentBench2CardChangedType:: ; c2d6 + ds $1 +wOpponentBench3CardChangedType:: ; c2d7 + ds $1 +wOpponentBench4CardChangedType:: ; c2d8 + ds $1 +wOpponentBench5CardChangedType:: ; c2d9 + ds $1 + + ds $d wOpponentArenaCardSubstatus1:: ; c3e7 ds $1 @@ -166,13 +202,13 @@ wOpponentArenaCardSubstatus1:: ; c3e7 wOpponentArenaCardSubstatus2:: ; c3e8 ds $1 -wOpponentArenaCardSubstatus3:: ; c3e9 +wOpponentArenaCardChangedWeakness:: ; c3e9 ds $1 -wOpponentArenaCardSubstatus4:: ; c3ea +wOpponentArenaCardChangedResistance:: ; c3ea ds $1 -wOpponentArenaCardSubstatus5:: ; c3eb +wOpponentArenaCardSubstatus3:: ; c3eb ds $1 wOpponentPrizes:: ; c3ec @@ -703,7 +739,7 @@ wTileBehindCursor:: ; cd16 ds $1 wcd17:: ; cd17 - ds 2 + ds $2 ds $7f @@ -798,8 +834,10 @@ wce6e:: ; ce6e wce6f:: ; ce6f ds $d -wce7c:: ; ce7c - ds $27 +wTempPokemonID:: ; ce7c + ds $1 + + ds $26 wcea3:: ; cea3 ds $c -- cgit v1.2.3 From 51c2bbf24927ed87310fd8b96729104c175e3953 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Thu, 22 Feb 2018 22:51:33 +0100 Subject: Disassemble more duel functions --- src/engine/home.asm | 148 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 138 insertions(+), 10 deletions(-) diff --git a/src/engine/home.asm b/src/engine/home.asm index 0903aec..96eef97 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -3830,7 +3830,7 @@ Func_1994: ; 1994 (0:1994) ld a, [hli] or [hl] jr nz, .non_zero_damage - ld de, $0000 + ld de, 0 ret .non_zero_damage xor a @@ -3869,7 +3869,7 @@ Func_1994: ; 1994 (0:1994) call SwapTurn and b jr z, .check_pluspower_and_defender - ld hl, $ffe2 + ld hl, -30 add hl, de ld e, l ld d, h @@ -3884,7 +3884,7 @@ Func_1994: ; 1994 (0:1994) call HandleDamageReduction bit 7, d jr z, .no_underflow - ld de, $0000 + ld de, 0 .no_underflow call SwapTurn ret @@ -3928,7 +3928,7 @@ Func_1a22: ; 1a22 (0:1a22) call GetArenaPokemonResistance and b jr z, .asm_1a58 - ld hl, $ffe2 + ld hl, -30 add hl, de ld e, l ld d, h @@ -3942,7 +3942,7 @@ Func_1a22: ; 1a22 (0:1a22) bit 7, d ; test for underflow ret z .no_damage - ld de, $0000 + ld de, 0 ret ; increases de by 10 points for each Pluspower found in location b @@ -4266,7 +4266,7 @@ Func_1d1d: ; 1d1d (0:1d1d) scf ret -; creates a list at $c000 of every card the player owns and how many +; creates a list at wTempCardCollection of every card the player owns and how many CreateTempCardCollection: ; 1d2e (0:1d2e) call EnableSRAM ld hl, sCardCollection @@ -7201,6 +7201,7 @@ CommentedOut_3243: ; 3243 (0:3243) ret ; check if the attacked card has any substatus that reduces the damage this turn +; damage is given in de as input and the possibly updated damage is also returned in de HandleDamageReduction: ; 3244 (0:3244) call HandleDamageReductionExceptSubstatus2 ld a, DUELVARS_ARENA_CARD_SUBSTATUS2 @@ -7227,6 +7228,9 @@ HandleDamageReduction: ; 3244 (0:3244) ld d, h ret +; check if the attacked card has any substatus that reduces the damage this turn +; substatus 2 is not checked +; damage is given in de as input and the possibly updated damage is also returned in de HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269) ld a, [wNoDamageOrEffect] or a @@ -7254,6 +7258,7 @@ HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269) .not_affected_by_substatus1 call CheckIfUnderAnyCannotUseStatus ret c +.pkmn_power ld a, [wLoadedMoveCategory] cp POKEMON_POWER ret z @@ -7315,7 +7320,127 @@ HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269) ret ; 0x32f7 - INCROM $32f7, $33c1 +; check for Invisible Wall, Kabuto Armor, NShield, or Transparency, in order to +; possibly reduce or make zero the damage at de. +HandleDamageReductionOrNoDamageFromPkmnPowerEffects: ; 32f7 (0:32f7) + ld a, [wLoadedMoveCategory] + cp POKEMON_POWER + ret z + ld a, MUK + call CountPokemonIDInBothPlayAreas + ret c + ld a, [wcceb] + or a + call nz, HandleDamageReductionExceptSubstatus2.pkmn_power + push de ; push damage from call above, which handles Invisible Wall and Kabuto Armor + call HandleNoDamageOrEffectSubstatus.pkmn_power + call nc, HandleTransparency + pop de ; restore damage + ret nc + ; if carry was set due to NShield or Transparency, damage is 0 + ld de, 0 + ret +; 0x3317 + +; very similar to HandleStrikesBack +Func_3317: ; 3317 (0:3317) + ld a, e + or d + ret z + ld a, [wcce6] + or a + ret nz + ld a, [wTempNonTurnDuelistCardId] + cp MACHAMP + ret nz + ld a, MUK + call CountPokemonIDInBothPlayAreas + ret c + ld a, [wLoadedMoveCategory] + cp POKEMON_POWER + ret z + ld a, [wcceb] + or a + jr nz, .asm_333b + call CheckIfUnderAnyCannotUseStatus + ret c +.asm_333b + push hl + push de + call SwapTurn + ld a, DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + call LoadDeckCardToBuffer2 + ld a, DUELVARS_ARENA_CARD_HP + call GetTurnDuelistVariable + push af + push hl + ld de, 10 + call SubstractHP + ld a, [wLoadedCard2ID] + ld [wTempNonTurnDuelistCardId], a + ld hl, $a + call Func_2ec4 + ld hl, wLoadedCard2Name + ld a, [hli] + ld h, [hl] + ld l, a + call Func_2ebb + ldtx hl, ReceivesDamageDueToStrikesBackText + call DrawWideTextBox_WaitForInput + pop hl + pop af + or a + jr z, .asm_3379 + xor a + call Func_1aac +.asm_3379 + call SwapTurn + pop de + pop hl + ret +; 0x337f + +; return carry if NShield or Transparency activate, and print their corresponding text if so +HandleNShieldAndTransparency: ; 337f (0:337f) + push de + ld a, DUELVARS_ARENA_CARD + add e + call GetTurnDuelistVariable + call GetCardIDFromDeckIndex + ld a, e + cp MEW1 + jr z, .nshield + cp HAUNTER1 + jr z, .transparency +.done + pop de + or a + ret +.nshield + ld a, $ce + call GetNonTurnDuelistVariable + or a + jr z, .done + ld a, NO_DAMAGE_OR_EFFECT_NSHIELD + ld [wNoDamageOrEffect], a + ldtx hl, NoDamageOrEffectDueToNShieldText +.print_text + call DrawWideTextBox_WaitForInput + pop de + scf + ret +.transparency + xor a + ld [wcac2], a + ldtx de, TransparencyCheckText + call TossCoin + jr nc, .done + ld a, NO_DAMAGE_OR_EFFECT_TRANSPARENCY + ld [wNoDamageOrEffect], a + ldtx hl, NoDamageOrEffectDueToTransparencyText + jr .print_text +; 0x33c1 ; return carry if card is under a condition that makes it unable to attack ; also return in hl the text id to be displayed @@ -7422,6 +7547,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) call CheckIfUnderAnyCannotUseStatus ccf ret nc +.pkmn_power ld a, [wTempNonTurnDuelistCardId] cp MEW1 jr z, .neutralizing_shield @@ -7436,6 +7562,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) ld a, [wcce6] or a ret nz + ; prevent damage if attacked by a non-basic Pokemon ld a, [wTempTurnDuelistCardId] ld e, a ld d, $0 @@ -7449,20 +7576,21 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) ; if the Pokemon being attacked is Haunter1, and its Transparency is active, ; there is a 50% chance that any damage or effect is prevented +; return carry if damage is prevented HandleTransparency: ; 348a (0:348a) ld a, [wTempNonTurnDuelistCardId] cp HAUNTER1 jr z, .transparency -.asm_3491 +.done or a ret .transparency ld a, [wLoadedMoveCategory] cp POKEMON_POWER - jr z, .asm_3491 + jr z, .done ; Transparency has no effect against Pkmn Powers ld a, [wcceb] call CheckIfUnderAnyCannotUseStatus2 - jr c, .asm_3491 + jr c, .done xor a ld [wcac2], a ldtx de, TransparencyCheckText -- cgit v1.2.3 From 0e0e574c821606bee1014329852b2f4eea150103 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 23 Feb 2018 11:42:25 +0100 Subject: More bank0 duel related disassembly --- src/engine/bank1.asm | 26 +++++++-------- src/engine/bank5.asm | 2 +- src/engine/bank8.asm | 2 +- src/engine/home.asm | 94 +++++++++++++++++++++++++++++++++++++++++----------- src/wram.asm | 3 +- 5 files changed, 91 insertions(+), 36 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 73c1a8a..76113d8 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -570,10 +570,10 @@ Func_4436: ; 4436 (1:4436) ; c contains the type of energy card being played PlayerUseEnergyCard: ; 4477 (1:4477) ld a, c - cp TYPE_ENERGY_WATER ; XXX why treat water energy card differently? + cp TYPE_ENERGY_WATER jr nz, .not_water_energy - call $3615 - jr c, .water_energy + call IsRainDanceActive + jr c, .rain_dance_active .not_water_energy ld a, [wAlreadyPlayedEnergy] @@ -582,31 +582,31 @@ PlayerUseEnergyCard: ; 4477 (1:4477) call $5fdd call $600c ; choose card to play energy card on jp c, DuelMainScene ; exit if no card was chosen -.asm_4490 +.play_energy_set_played ld a, $1 ld [wAlreadyPlayedEnergy], a -.asm_4495 +.play_energy ldh a, [hTempPlayAreaLocationOffset_ff9d] ldh [hTempPlayAreaLocationOffset_ffa1], a ld e, a ldh a, [hTempCardIndex_ff98] ldh [hffa0], a - call $14d2 + call PutHandCardInPlayArea call $61b8 ld a, $3 call SetDuelAIAction call $68e4 jp DuelMainScene -.water_energy +.rain_dance_active call $5fdd call $600c ; choose card to play energy card on jp c, DuelMainScene ; exit if no card was chosen - call $3622 - jr c, .asm_4495 + call CheckRainDanceScenario + jr c, .play_energy ld a, [wAlreadyPlayedEnergy] or a - jr z, .asm_4490 + jr z, .play_energy_set_played ldtx hl, OnlyOneEnergyCardText call DrawWideTextBox_WaitForInput jp Func_4436 @@ -1214,7 +1214,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) call $51e7 jr c, .asm_4d28 ldh a, [hTempCardIndex_ff98] - call Func_1485 + call PutHandPokemonCardInPlayArea ldh a, [hTempCardIndex_ff98] ld hl, $0062 call $4b31 @@ -1238,7 +1238,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) cp MAX_PLAY_AREA_POKEMON jr nc, .asm_4d86 ldh a, [hTempCardIndex_ff98] - call Func_1485 + call PutHandPokemonCardInPlayArea ldh a, [hTempCardIndex_ff98] ld hl, $0061 call $4b31 @@ -1373,7 +1373,7 @@ AIUseEnergyCard: ; 69a5 (1:69a5) ld e, a ldh a, [hffa0] ldh [hTempCardIndex_ff98], a - call $14d2 + call PutHandCardInPlayArea ldh a, [hffa0] call LoadDeckCardToBuffer1 call $5e75 diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 631fdb4..79a5dd2 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -73,7 +73,7 @@ Func_14226: ; 14226 (5:4226) jr nz, .check_for_next_pokemon push hl ldh a, [hTempCardIndex_ff98] - call Func_1485 + call PutHandPokemonCardInPlayArea pop hl jr .check_for_next_pokemon ; 0x1424b diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index 8923a9e..413061c 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -46,7 +46,7 @@ Func_200e5: ; 200e5 (8:40e5) push de ld a, [$ce16] ldh [hTempCardIndex_ff9f], a - bank1call $35a9 + bank1call CheckCantUseTrainerDueToHeadache jp c, $41a8 call LoadNonPokemonCardEffectCommands ld a, $1 diff --git a/src/engine/home.asm b/src/engine/home.asm index 96eef97..efacd4c 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -3292,35 +3292,73 @@ LoadDeckCardToBuffer2: ; 138c (0:138c) ret ; 0x13a2 - INCROM $13a2, $1485 + INCROM $13a2, $1461 -Func_1485: ; 1485 (0:1485) +; init the status and all substatuses of the turn holder's arena Pokemon. +; called when sending a new Pokemon into the arena. +; does not reset Headache, since it targets a player rather than a Pokemon. +ResetStatusConditions: ; 1461 (0:1461) + push hl + ldh a, [hWhoseTurn] + ld h, a + xor a + ld l, DUELVARS_ARENA_CARD_STATUS + ld [hl], a + ld l, DUELVARS_ARENA_CARD_SUBSTATUS1 + ld [hl], a + ld l, DUELVARS_ARENA_CARD_SUBSTATUS2 + ld [hl], a + ld l, DUELVARS_ARENA_CARD_CHANGED_WEAKNESS + ld [hl], a + ld l, DUELVARS_ARENA_CARD_CHANGED_RESISTANCE + ld [hl], a + ld l, DUELVARS_ARENA_CARD_SUBSTATUS3 + res SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE, [hl] + ld l, DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + pop hl + ret +; 0x1485 + +; Removes a Pokemon card from the hand and places it in the arena or first available bench slot. +; If the Pokemon is placed in the arena, the status conditions of the player's arena card are zeroed. +; input: +; - a = deck index of the card +; return carry if there is no room for more Pokemon +PutHandPokemonCardInPlayArea: ; 1485 (0:1485) push af ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY call GetTurnDuelistVariable cp MAX_PLAY_AREA_POKEMON jr nc, .already_max_pkmn_in_play inc [hl] - ld e, a + ld e, a ; play area offset to place card pop af push af - call $14d2 + call PutHandCardInPlayArea ld a, e - add $bb + add DUELVARS_ARENA_CARD ld l, a pop af - ld [hl], a + ld [hl], a ; set card in arena or benchx call LoadDeckCardToBuffer2 - ld a, $c8 + ld a, DUELVARS_ARENA_CARD_HP add e ld l, a ld a, [wLoadedCard2HP] - ld [hl], a + ld [hl], a ; set card's HP ld a, $c2 add e ld l, a ld [hl], $0 - ld a, $d4 + ld a, DUELVARS_ARENA_CARD_CHANGED_TYPE add e ld l, a ld [hl], $0 @@ -3339,7 +3377,7 @@ Func_1485: ; 1485 (0:1485) ld [hl], a ld a, e or a - call z, $1461 + call z, ResetStatusConditions ; only call if Pokemon is being place in the arena ld a, e or a ret @@ -3350,7 +3388,23 @@ Func_1485: ; 1485 (0:1485) ret ; 0x14d2 - INCROM $14d2, $159f +; Removes a card from the hand and changes its location to arena or bench. Given that +; DUELVARS_ARENA_CARD or DUELVARS_BENCH aren't affected, this function is meant for energy and trainer cards. +; input: +; - a = deck index of the card +; - e = play area location offset +; returns +; - a = CARD_LOCATION_PLAY_AREA + e +PutHandCardInPlayArea: ; 14d2 (0:14d2) + call RemoveCardFromHand + call GetTurnDuelistVariable + ld a, e + or CARD_LOCATION_PLAY_AREA + ld [hl], a + ret +; 0x14dd + + INCROM $14dd, $159f ; Find which and how many energy cards are attached to the Pokemon card in the arena, ; or to a Pokemon card in the bench, depending on the value of register e. @@ -4037,11 +4091,11 @@ Func_1ad3: ; 1ad3 (0:1ad3) call Func_2ebb ldtx hl, WasKnockedOutText call DrawWideTextBox_PrintText - ld a, $28 -.asm_1aeb + ld a, 40 +.wait_frames call DoFrame dec a - jr nz, .asm_1aeb + jr nz, .wait_frames scf ret ; 0x1af3 @@ -7677,11 +7731,11 @@ CheckIfUnderAnyCannotUseStatus2: ; 34f0 (0:34f0) ; input: a = Pokemon card ID to search CountPokemonIDInBothPlayAreas: ; 3509 (0:3509) push bc - ld [wTempPokemonID], a + ld [wTempPokemonID_ce7e], a call CountPokemonIDInPlayArea ld c, a call SwapTurn - ld a, [wTempPokemonID] + ld a, [wTempPokemonID_ce7e] call CountPokemonIDInPlayArea call SwapTurn add c @@ -7701,14 +7755,14 @@ CountPokemonIDInPlayArea: ; 3525 (0:3525) push hl push de push bc - ld [wTempPokemonID], a + ld [wTempPokemonID_ce7e], a ld c, $0 ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable cp -1 jr z, .check_bench call GetCardIDFromDeckIndex - ld a, [wTempPokemonID] + ld a, [wTempPokemonID_ce7e] cp e jr nz, .check_bench ld a, DUELVARS_ARENA_CARD_STATUS @@ -7724,7 +7778,7 @@ CountPokemonIDInPlayArea: ; 3525 (0:3525) cp -1 jr z, .done call GetCardIDFromDeckIndex - ld a, [wTempPokemonID] + ld a, [wTempPokemonID_ce7e] cp e jr nz, .skip inc c @@ -7887,7 +7941,7 @@ IsRainDanceActive: ; 3615 (0:3615) ; return carry if card at [hTempCardIndex_ff98] is a water energy card AND ; if card at [hTempPlayAreaLocationOffset_ff9d] is a water Pokemon card. -Func_3622: ; 3622 (0:3622) +CheckRainDanceScenario: ; 3622 (0:3622) ldh a, [hTempCardIndex_ff98] call GetCardIDFromDeckIndex call GetCardType diff --git a/src/wram.asm b/src/wram.asm index cd7b1a0..c55fab3 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -834,7 +834,8 @@ wce6e:: ; ce6e wce6f:: ; ce6f ds $d -wTempPokemonID:: ; ce7c +; used in CountPokemonIDInPlayArea +wTempPokemonID_ce7e:: ; ce7c ds $1 ds $26 -- cgit v1.2.3 From 4ab687caf426041e6e5b79093eff9f1b805bf4d5 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 23 Feb 2018 18:23:30 +0100 Subject: more duel home disassembly --- src/constants/duel_constants.asm | 14 ++ src/engine/bank1.asm | 6 +- src/engine/effect_functions.asm | 4 +- src/engine/home.asm | 327 ++++++++++++++++++++++++++++++++++----- src/hram.asm | 2 +- src/macros/wram.asm | 68 ++++---- src/text/text1.asm | 6 +- src/text/text_offsets.asm | 6 +- src/wram.asm | 39 ++++- 9 files changed, 376 insertions(+), 96 deletions(-) diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index ebbb4c9..3b4b4e7 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -35,6 +35,12 @@ DUELVARS_BENCH2_CARD_HP EQUS "LOW(wPlayerBench2CardHP)" 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 @@ -72,6 +78,14 @@ CARD_LOCATION_PLAY_AREA EQU 1 << CARD_LOCATION_PLAY_AREA_F CARD_LOCATION_JUST_DRAWN_F EQU 6 CARD_LOCATION_JUST_DRAWN EQU 1 << CARD_LOCATION_JUST_DRAWN_F +; play area location offsets (CARD_LOCATION_* - CARD_LOCATION_PLAY_AREA) +PLAY_AREA_ARENA EQU $0 +PLAY_AREA_BENCH_1 EQU $1 +PLAY_AREA_BENCH_2 EQU $2 +PLAY_AREA_BENCH_3 EQU $3 +PLAY_AREA_BENCH_4 EQU $4 +PLAY_AREA_BENCH_5 EQU $5 + ; duelist types (DUELVARS_DUELIST_TYPE) DUELIST_TYPE_PLAYER EQU $00 DUELIST_TYPE_LINK_OPP EQU $01 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 76113d8..79a242d 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -87,7 +87,7 @@ StartDuel: ; 409f (1:409f) ld a, DUELIST_TYPE_PLAYER ld [wPlayerDuelistType], a ld a, [wcc19] - ld [wOpponentDeckId], a + ld [wOpponentDeckID], a call LoadPlayerDeck call SwapTurn call LoadOpponentDeck @@ -1512,14 +1512,14 @@ _TossCoin: ; 71ad (1:71ad) ld de, $010e ld a, $13 call Func_22a6 - ld hl, wCoinTossScreenTextId + ld hl, wCoinTossScreenTextID ld a, [hli] ld h, [hl] ld l, a call PrintText .asm_71ec - ld hl, wCoinTossScreenTextId + ld hl, wCoinTossScreenTextID xor a ld [hli], a ld [hl], a diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index 45aad3b..aeb35a8 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -39,7 +39,7 @@ ApplyStatusEffect: ld hl, wcc05 cp [hl] jr nz, .can_induce_status - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] cp CLEFAIRY_DOLL jr z, .cant_induce_status cp MYSTERIOUS_FOSSIL @@ -296,7 +296,7 @@ KakunaPoisonPowder_AIEffect: ; 2c7b4 (b:47b4) INCROM $2c7bc, $2c7d0 SwordsDanceEffect: ; 2c7d0 (b:47d0) - ld a, [wTempTurnDuelistCardId] + ld a, [wTempTurnDuelistCardID] cp SCYTHER ret nz ld a, SUBSTATUS1_NEXT_TURN_DOUBLE_DAMAGE diff --git a/src/engine/home.asm b/src/engine/home.asm index efacd4c..2365c52 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2629,22 +2629,22 @@ Func_100b: ; 100b (0:100b) call GetTurnDuelistVariable call GetCardIDFromDeckIndex ld a, e - ld [wTempTurnDuelistCardId], a + ld [wTempTurnDuelistCardID], a call SwapTurn ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable call GetCardIDFromDeckIndex ld a, e - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a call SwapTurn pop hl push hl call EnableSRAM ld a, [wDuelTurns] ld [hli], a - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] ld [hli], a - ld a, [wTempTurnDuelistCardId] + ld a, [wTempTurnDuelistCardID] ld [hli], a pop hl ld de, $0010 @@ -2896,6 +2896,10 @@ MoveHandCardToDiscardPile: ; 1160 (0:1160) ret nz ; return if card not in hand ld a, l call RemoveCardFromHand +; fallthrough + +; puts the card with the deck index (0-59) given in a into the discard pile +PutCardInDiscardPile: ; 116a (0:116a) push af push hl push de @@ -3370,11 +3374,11 @@ PutHandPokemonCardInPlayArea: ; 1485 (0:1485) add e ld l, a ld [hl], $0 - ld a, $ce + ld a, DUELVARS_ARENA_CARD_STAGE add e ld l, a ld a, [wLoadedCard2Stage] - ld [hl], a + ld [hl], a ; set card's evolution stage ld a, e or a call z, ResetStatusConditions ; only call if Pokemon is being place in the arena @@ -3392,7 +3396,7 @@ PutHandPokemonCardInPlayArea: ; 1485 (0:1485) ; DUELVARS_ARENA_CARD or DUELVARS_BENCH aren't affected, this function is meant for energy and trainer cards. ; input: ; - a = deck index of the card -; - e = play area location offset +; - e = play area location offset (PLAY_AREA_*) ; returns ; - a = CARD_LOCATION_PLAY_AREA + e PutHandCardInPlayArea: ; 14d2 (0:14d2) @@ -3404,7 +3408,161 @@ PutHandCardInPlayArea: ; 14d2 (0:14d2) ret ; 0x14dd - INCROM $14dd, $159f +; move the play area Pokemon card of the turn holder at CARD_LOCATION_PLAY_AREA + a +; to the discard pile +MovePlayAreaCardToDiscardPile: ; 14dd (0:14dd) + call EmptyPlayAreaSlot + ld l, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY + dec [hl] + ld l, LOW(DUELVARS_CARD_LOCATIONS) +.next_card + ld a, e + or CARD_LOCATION_PLAY_AREA + cp [hl] + jr nz, .not_in_location + push de + ld a, l + call PutCardInDiscardPile + pop de +.not_in_location + inc l + ld a, l + cp DECK_SIZE + jr c, .next_card + ret +; 0x14f8 + +; init a turn holder's play area slot to empty +; which slot (arena or benchx) is determined by the play area location offset (PLAY_AREA_*) in e +EmptyPlayAreaSlot: ; 14f8 (0:14f8) + ldh a, [hWhoseTurn] + ld h, a + ld d, -1 + ld a, DUELVARS_ARENA_CARD + call .init_duelvar + ld d, 0 + ld a, DUELVARS_ARENA_CARD_HP + call .init_duelvar + ld a, DUELVARS_ARENA_CARD_STAGE + call .init_duelvar + ld a, DUELVARS_ARENA_CARD_CHANGED_TYPE + call .init_duelvar + ld a, $da + call .init_duelvar + ld a, $e0 +.init_duelvar + add e + ld l, a + ld [hl], d + ret +; 0x151e + +; shift play area Pokemon of both players to the first available play area (arena + benchx) slots +ShiftAllPokemonToFirstPlayAreaSlots: ; 151e (0:151e) + call ShiftTurnPokemonToFirstPlayAreaSlots + call SwapTurn + call ShiftTurnPokemonToFirstPlayAreaSlots + call SwapTurn + ret +; 0x152b + +; shift play area Pokemon of the turn holder to the first available play area (arena + benchx) slots +ShiftTurnPokemonToFirstPlayAreaSlots: ; 152b (0:152b) + ld a, DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + lb de, PLAY_AREA_ARENA, PLAY_AREA_ARENA +.next_play_area_slot + bit 7, [hl] + jr nz, .empty_slot + call SwapPlayAreaPokemon + inc e +.empty_slot + inc hl + inc d + ld a, d + cp MAX_PLAY_AREA_POKEMON + jr nz, .next_play_area_slot + ret +; 0x1543 + +; swap the data of the turn holder's arena Pokemon card with the +; data of the turn holder's Pokemon card in play area e. +; reset the status and all substatuses of the arena Pokemon before swapping. +; e is the play area location offset of the bench Pokemon (PLAY_AREA_*). +SwapArenaWithBenchPokemon: ; 1543 (0:1543) + call ResetStatusConditions + ld d, PLAY_AREA_ARENA +; fallthrough + +; swap the data of the turn holder's Pokemon card in play area d with the +; data of the turn holder's Pokemon card in play area e. +; d and e are play area location offsets (PLAY_AREA_*). +SwapPlayAreaPokemon: ; 1548 (0:1548) + push bc + push de + push hl + ld a, e + cp d + jr z, .done + ldh a, [hWhoseTurn] + ld h, a + ld b, a + ld a, DUELVARS_ARENA_CARD + call .swap_duelvar + ld a, DUELVARS_ARENA_CARD_HP + call .swap_duelvar + ld a, $c2 + call .swap_duelvar + ld a, DUELVARS_ARENA_CARD_STAGE + call .swap_duelvar + ld a, DUELVARS_ARENA_CARD_CHANGED_TYPE + call .swap_duelvar + ld a, $e0 + call .swap_duelvar + ld a, $da + call .swap_duelvar + set CARD_LOCATION_PLAY_AREA_F, d + set CARD_LOCATION_PLAY_AREA_F, e + ld l, DUELVARS_CARD_LOCATIONS +.update_card_locations_loop + ; update card locations of the two swapped cards + ld a, [hl] + cp e + jr nz, .next1 + ld a, d + jr .update_location +.next1 + cp d + jr nz, .next2 + ld a, e +.update_location + ld [hl], a +.next2 + inc l + ld a, l + cp DECK_SIZE + jr c, .update_card_locations_loop +.done + pop hl + pop de + pop bc + ret + +.swap_duelvar + ld c, a + add e ; play area location offset of card 1 + ld l, a + ld a, c + add d ; play area location offset of card 2 + ld c, a + ld a, [bc] + push af + ld a, [hl] + ld [bc], a + pop af + ld [hl], a + ret +; 0x159f ; Find which and how many energy cards are attached to the Pokemon card in the arena, ; or to a Pokemon card in the bench, depending on the value of register e. @@ -3482,7 +3640,7 @@ GetAttachedEnergies: ; 159f (0:159f) ; h = PLAYER_TURN or OPPONENT_TURN CountCardIDInLocation: ; 15ef (0:15ef) push bc - ld l, $0 + ld l, LOW(DUELVARS_CARD_LOCATIONS) ld c, $0 .next_card ld a, [hl] @@ -3527,7 +3685,91 @@ GetNonTurnDuelistVariable: ; 1611 (0:1611) ret ; 0x161e - INCROM $161e, $16c0 +Func_161e: ; 161e (0:161e) + ldh a, [hTempCardIndex_ff98] + call ClearChangedTypesIfMuk + ldh a, [hTempCardIndex_ff98] + ld d, a + ld e, $00 + call CopyMoveDataAndDamage + call Func_16f6 + ldh a, [hTempCardIndex_ff98] + ldh [hTempCardIndex_ff9f], a + call GetCardIDFromDeckIndex + ld a, e + ld [wTempTurnDuelistCardID], a + ld a, [wLoadedMoveCategory] + cp POKEMON_POWER + ret nz + call $6510 + ldh a, [hTempCardIndex_ff98] + call LoadDeckCardToBuffer1 + ld hl, wLoadedCard1Name + ld a, [hli] + ld h, [hl] + ld l, a + call Func_2ebb + ldtx hl, HavePokemonPowerText + call DrawWideTextBox_WaitForInput + call Func_0f58 + ld a, [wLoadedCard1ID] + cp MUK + jr z, .use_pokemon_power + ld a, $01 ; check only Muk + call CheckIfUnderAnyCannotUseStatus2 + jr nc, .use_pokemon_power + call $6510 + ldtx hl, UnableToUsePkmnPowerDueToToxicGasText + call DrawWideTextBox_WaitForInput + call Func_0f58 + ret + +.use_pokemon_power + ld hl, wLoadedMoveEffectCommands + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $07 + call CheckMatchingCommand + ret c ; return if command not found + bank1call $4f9d + ldh a, [hTempCardIndex_ff9f] + call LoadDeckCardToBuffer1 + ld de, wLoadedCard1Name + ld hl, wce3f + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hli], a + ld de, wLoadedMoveName + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + ldtx hl, WillUseThePokemonPowerText + call DrawWideTextBox_WaitForInput + call Func_0f58 + call $7415 + ld a, $07 + call TryExecuteEffectCommandFunction + ret +; 0x16ad + +Func_16ad: ; 16ad (0:16ad) + push de + push af + ld a, e + ld [wSelectedMoveIndex], a + ld a, d + ldh [hTempCardIndex_ff9f], a + pop af + ld e, a + ld d, $00 + call LoadCardDataToBuffer1 + pop de + jr CopyMoveDataAndDamage.card_loaded ; copies from card identified by register d (0-59 deck index): ; - Move1 (if e == 0) or Move2 (if e == 1) data into wLoadedMove @@ -3538,8 +3780,9 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0) ld a, d ldh [hTempCardIndex_ff9f], a call LoadDeckCardToBuffer1 +.card_loaded ld a, [wLoadedCard1ID] - ld [wTempCardId], a + ld [wTempCardID_ccc2], a ld hl, wLoadedCard1Move1 dec e jr nz, .got_move @@ -3570,13 +3813,13 @@ Func_16f6: ; 16f6 (0:16f6) ldh [hTempCardIndex_ff9f], a call GetCardIDFromDeckIndex ld a, e - ld [wTempTurnDuelistCardId], a + ld [wTempTurnDuelistCardID], a call SwapTurn ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable call GetCardIDFromDeckIndex ld a, e - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a call SwapTurn xor a ld [wccec], a @@ -3594,7 +3837,7 @@ Func_1730: ; 1730 (0:1730) ld [wcc10], a ldh a, [hTempCardIndex_ff9f] ld [wcc11], a - ld a, [wTempCardId] + ld a, [wTempCardID_ccc2] ld [wcc12], a ld a, [wLoadedMoveCategory] cp POKEMON_POWER @@ -3681,12 +3924,12 @@ Func_17ed: ; 17ed (0:17ed) ld a, NO_DAMAGE_OR_EFFECT_AGILITY ld [wNoDamageOrEffect], a Func_17fb: ; 17fb (0:17fb) - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] push af ld a, $4 call TryExecuteEffectCommandFunction pop af - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a call HandleStrikesBack bank1call $6df1 call Func_1bb4 @@ -3859,10 +4102,10 @@ Func_195c: ; 195c (0:195c) xor a ld [wNoDamageOrEffect], a bank1call $7415 - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] push af - ld a, [wTempTurnDuelistCardId] - ld [wTempNonTurnDuelistCardId], a + ld a, [wTempTurnDuelistCardID] + ld [wTempNonTurnDuelistCardID], a bank1call Func_1a22 ; switch to bank 1, but call a home func ld a, [wccc1] ld c, a @@ -3872,7 +4115,7 @@ Func_195c: ; 195c (0:195c) bank1call $7469 call Func_1ad0 pop af - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a pop af ld [wNoDamageOrEffect], a ret @@ -4062,17 +4305,17 @@ Func_1aac: ; 1aac (0:1aac) call GetTurnDuelistVariable or a ret nz - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] push af ld a, e add DUELVARS_ARENA_CARD call GetTurnDuelistVariable call LoadDeckCardToBuffer1 ld a, [wLoadedCard1ID] - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a call Func_1ad3 pop af - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a scf ret @@ -4081,7 +4324,7 @@ Func_1ad0: ; 1ad0 (0:1ad0) or a ret nz Func_1ad3: ; 1ad3 (0:1ad3) - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] ld e, a call LoadCardDataToBuffer1 ld hl, $cc27 @@ -4346,7 +4589,7 @@ AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59) add hl, de ld e, l ld d, h - ld h, wTempCardCollection >> 8 + ld h, HIGH(wTempCardCollection) ld c, DECK_SIZE .asm_1d66 ld a, [de] @@ -6088,7 +6331,7 @@ PrintYesOrNoItems: ; 2b66 (0:2b66) LoadOpponentDeck: ; 2b78 (0:2b78) xor a ld [wIsPracticeDuel], a - ld a, [wOpponentDeckId] + ld a, [wOpponentDeckID] cp SAMS_NORMAL_DECK - 2 jr z, .normal_sam_duel or a ; cp SAMS_PRACTICE_DECK - 2 @@ -6102,7 +6345,7 @@ LoadOpponentDeck: ; 2b78 (0:2b78) .normal_sam_duel xor a - ld [wOpponentDeckId], a + ld [wOpponentDeckID], a call SwapTurn ld a, PRACTICE_PLAYER_DECK call LoadDeck @@ -6118,17 +6361,17 @@ LoadOpponentDeck: ; 2b78 (0:2b78) inc a inc a call LoadDeck - ld a, [wOpponentDeckId] + ld a, [wOpponentDeckID] cp DECKS_END jr c, .valid_deck ld a, PRACTICE_PLAYER_DECK - 2 - ld [wOpponentDeckId], a + ld [wOpponentDeckID], a .valid_deck ; set opponent as controlled by AI ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable - ld a, [wOpponentDeckId] + ld a, [wOpponentDeckID] or DUELIST_TYPE_AI_OPP ld [hl], a ret @@ -6163,7 +6406,7 @@ Func_2bdb: ; 2bdb (0:2bdb) push af ld a, $5 call BankswitchHome - ld a, [wOpponentDeckId] + ld a, [wOpponentDeckID] ld l, a ld h, $0 add hl, hl @@ -6928,7 +7171,7 @@ Func_3061: ; 3061 (0:3061) ; returns: the number of heads in a and in $cd9d, and carry if at least one heads TossCoinATimes: ; 3071 (0:3071) push hl - ld hl, wCoinTossScreenTextId + ld hl, wCoinTossScreenTextID ld [hl], e inc hl ld [hl], d @@ -6942,7 +7185,7 @@ TossCoinATimes: ; 3071 (0:3071) ; - nc, and 0 in a and in $cd9d if tails TossCoin: ; 307d (0:307d) push hl - ld hl, wCoinTossScreenTextId + ld hl, wCoinTossScreenTextID ld [hl], e inc hl ld [hl], d @@ -7316,7 +7559,7 @@ HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269) ld a, [wLoadedMoveCategory] cp POKEMON_POWER ret z - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] cp MR_MIME jr z, .prevent_less_than_30_damage ; invisible wall cp KABUTO @@ -7404,7 +7647,7 @@ Func_3317: ; 3317 (0:3317) ld a, [wcce6] or a ret nz - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] cp MACHAMP ret nz ld a, MUK @@ -7432,7 +7675,7 @@ Func_3317: ; 3317 (0:3317) ld de, 10 call SubstractHP ld a, [wLoadedCard2ID] - ld [wTempNonTurnDuelistCardId], a + ld [wTempNonTurnDuelistCardID], a ld hl, $a call Func_2ec4 ld hl, wLoadedCard2Name @@ -7602,7 +7845,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) ccf ret nc .pkmn_power - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] cp MEW1 jr z, .neutralizing_shield or a @@ -7617,7 +7860,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) or a ret nz ; prevent damage if attacked by a non-basic Pokemon - ld a, [wTempTurnDuelistCardId] + ld a, [wTempTurnDuelistCardID] ld e, a ld d, $0 call LoadCardDataToBuffer2 @@ -7632,7 +7875,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) ; there is a 50% chance that any damage or effect is prevented ; return carry if damage is prevented HandleTransparency: ; 348a (0:348a) - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] cp HAUNTER1 jr z, .transparency .done @@ -8001,7 +8244,7 @@ HandleDestinyBondSubstatus: ; 363b (0:363b) ; when Machamp is damaged, if its Strikes Back is active, ; the attacking Pokemon takes 10 damage HandleStrikesBack: ; 367b (0:367b) - ld a, [wTempNonTurnDuelistCardId] + ld a, [wTempNonTurnDuelistCardID] cp MACHAMP jr z, .strikes_back ret @@ -8024,7 +8267,7 @@ HandleStrikesBack: ; 367b (0:367b) ApplyStrikesBack: ; 36a2 (0:36a2) push hl call Func_2ec4 - ld a, [wTempTurnDuelistCardId] + ld a, [wTempTurnDuelistCardID] ld e, a ld d, $0 call LoadCardDataToBuffer2 @@ -8080,7 +8323,7 @@ GetArenaCardColor: ; 36f6 (0:36f6) xor a ; fallthrough -; input: a = play area location offset of the desired card +; input: a = play area location offset (PLAY_AREA_*) of the desired card ; return the card's color in a, accounting for Venomoth's Shift Pokemon Power if active GetPlayAreaCardColor: ; 36f7 (0:36f7) push hl diff --git a/src/hram.asm b/src/hram.asm index 8f4adbb..dc90bd1 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -52,7 +52,7 @@ hTempCardIndex_ff98:: ; ff98 ds 4 -; 0: arena card ; 1-5: bench card +; a PLAY_AREA_ARENA constant (0: arena card, 1-5: bench card) hTempPlayAreaLocationOffset_ff9d:: ; ff9d ds 1 diff --git a/src/macros/wram.asm b/src/macros/wram.asm index 9825a36..a984255 100644 --- a/src/macros/wram.asm +++ b/src/macros/wram.asm @@ -1,51 +1,51 @@ card_data_struct: MACRO -\1Type:: db -\1Gfx:: dw -\1Name:: dw -\1Rarity:: db -\1Set:: db -\1ID:: db -\1EffectCommands:: ; dw -\1HP:: db -\1Stage:: db -\1NonPokemonDescription:: ; dw -\1PreEvoName:: dw +\1Type:: ds 1 +\1Gfx:: ds 2 +\1Name:: ds 2 +\1Rarity:: ds 1 +\1Set:: ds 1 +\1ID:: ds 1 +\1EffectCommands:: ; ds 2 +\1HP:: ds 1 +\1Stage:: ds 1 +\1NonPokemonDescription:: ; ds 2 +\1PreEvoName:: ds 2 \1Move1:: move_data_struct \1Move1 \1Move2:: move_data_struct \1Move2 -\1RetreatCost:: db -\1Weakness:: db -\1Resistance:: db -\1Kind:: dw -\1PokedexNumber:: db -\1Unknown1:: db -\1Level:: db -\1Length:: dw -\1Weight:: dw -\1Description:: dw -\1Unknown2:: db +\1RetreatCost:: ds 1 +\1Weakness:: ds 1 +\1Resistance:: ds 1 +\1Kind:: ds 2 +\1PokedexNumber:: ds 1 +\1Unknown1:: ds 1 +\1Level:: ds 1 +\1Length:: ds 2 +\1Weight:: ds 2 +\1Description:: ds 2 +\1Unknown2:: ds 1 ENDM move_data_struct: MACRO \1Energy:: ds NUM_TYPES / 2 -\1Name:: dw +\1Name:: ds 2 \1Description:: ds 4 -\1Damage:: db -\1Category:: db -\1EffectCommands:: dw -\1Flag1:: db -\1Flag2:: db -\1Flag3:: db -\1Unknown1:: db -\1Animation:: db +\1Damage:: ds 1 +\1Category:: ds 1 +\1EffectCommands:: ds 2 +\1Flag1:: ds 1 +\1Flag2:: ds 1 +\1Flag3:: ds 1 +\1Unknown1:: ds 1 +\1Animation:: ds 1 ENDM ; TODO: Figure out what the rest are for sprite_anim_struct: MACRO \1Field0x00:: ds 1 \1Field0x01:: ds 1 ; movement handling / palette -\1CoordX:: db -\1CoordY:: db -\1TileID:: db +\1CoordX:: ds 1 +\1CoordY:: ds 1 +\1TileID:: ds 1 \1Field0x05:: ds 1 \1Field0x06:: ds 1 \1Field0x07:: ds 1 diff --git a/src/text/text1.asm b/src/text/text1.asm index f21f081..3de6280 100644 --- a/src/text/text1.asm +++ b/src/text/text1.asm @@ -396,7 +396,7 @@ Text005b: ; 36a34 (d:6a34) line "Retreat was unsuccessful." done -Text005c: ; 36a53 (d:6a53) +WillUseThePokemonPowerText: ; 36a53 (d:6a53) text TX_RAM2, " will use the" line "Pok`mon Power ", TX_RAM2, "." done @@ -576,12 +576,12 @@ WasKnockedOutText: ; 36eaa (d:6eaa) line "Knocked Out!" done -Text0082: ; 36ebe (d:6ebe) +HavePokemonPowerText: ; 36ebe (d:6ebe) text TX_RAM2, " have" line "Pok`mon Power." done -Text0083: ; 36ed5 (d:6ed5) +UnableToUsePkmnPowerDueToToxicGasText: ; 36ed5 (d:6ed5) text "Unable to us Pok`mon Power due to" line "the effect of Toxic Gas." done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index 8afb421..66c7a64 100644 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -93,7 +93,7 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text0059 ; 0x0059 textpointer Text005a ; 0x005a textpointer Text005b ; 0x005b - textpointer Text005c ; 0x005c + textpointer WillUseThePokemonPowerText ; 0x005c textpointer Text005d ; 0x005d textpointer Text005e ; 0x005e textpointer Text005f ; 0x005f @@ -131,8 +131,8 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text007f ; 0x007f textpointer Text0080 ; 0x0080 textpointer WasKnockedOutText ; 0x0081 - textpointer Text0082 ; 0x0082 - textpointer Text0083 ; 0x0083 + textpointer HavePokemonPowerText ; 0x0082 + textpointer UnableToUsePkmnPowerDueToToxicGasText ; 0x0083 textpointer Text0084 ; 0x0084 textpointer Text0085 ; 0x0085 textpointer Text0086 ; 0x0086 diff --git a/src/wram.asm b/src/wram.asm index c55fab3..99dbd6d 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -77,7 +77,18 @@ wPlayerBench4CardHP:: ; c2cc wPlayerBench5CardHP:: ; c2cd ds $1 - ds $6 +wPlayerArenaCardStage:: ; c2ce + ds $1 +wPlayerBench1CardStage:: ; c2cf + ds $1 +wPlayerBench2CardStage:: ; c2d0 + ds $1 +wPlayerBench3CardStage:: ; c2d1 + ds $1 +wPlayerBench4CardStage:: ; c2d2 + ds $1 +wPlayerBench5CardStage:: ; c2d3 + ds $1 ; changed type from Venomoth's Shift Pokemon Power ; if bit 7 == 1, then bits 0-3 override the Pokemon's actual type @@ -179,7 +190,18 @@ wOpponentBench4CardHP:: ; c3cc wOpponentBench5CardHP:: ; c3cd ds $1 - ds $6 +wOpponentArenaCardStage:: ; c3ce + ds $1 +wOpponentBench1CardStage:: ; c3cf + ds $1 +wOpponentBench2CardStage:: ; c3d0 + ds $1 +wOpponentBench3CardStage:: ; c3d1 + ds $1 +wOpponentBench4CardStage:: ; c3d2 + ds $1 +wOpponentBench5CardStage:: ; c3d3 + ds $1 wOpponentArenaCardChangedType:: ; c2d4 ds $1 @@ -477,7 +499,7 @@ wCardPageNumber:: ; cbc7 wcbc9:: ; cbc9 ds $2 -; selected bench slot (1-5) +; selected bench slot (1-5, that is, a PLAY_AREA_BENCH_* constant) wBenchSelectedPokemon:: ; cbcb ds $1 @@ -550,7 +572,7 @@ wDuelistType:: ; cc0d ; this seems to hold the current opponent's deck id - 2, ; perhaps to account for the two unused pointers at the ; beginning of DeckPointers -wOpponentDeckId:: ; cc0e +wOpponentDeckID:: ; cc0e ds $1 ds $1 @@ -622,13 +644,14 @@ wccbf:: ; ccbf wccc1:: ; ccc1 ds $1 -wTempCardId:: ; ccc2 +; used in damage related functions +wTempCardID_ccc2:: ; ccc2 ds $1 -wTempTurnDuelistCardId:: ; ccc3 +wTempTurnDuelistCardID:: ; ccc3 ds $1 -wTempNonTurnDuelistCardId:: ; ccc4 +wTempNonTurnDuelistCardID:: ; ccc4 ds $1 ds $1 @@ -804,7 +827,7 @@ wce4a:: ; ce4a wce4b:: ; ce4b ds $3 -wCoinTossScreenTextId:: ; ce4e +wCoinTossScreenTextID:: ; ce4e ds $2 wce50:: ; ce50 -- cgit v1.2.3 From 107d5b24c157f5d061a1374d930106878dc3cb4c Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 23 Feb 2018 21:19:31 +0100 Subject: More labeling and disasm --- src/engine/bank1.asm | 47 ++++---- src/engine/bank2.asm | 20 ++-- src/engine/bank20.asm | 8 +- src/engine/bank3.asm | 20 ++-- src/engine/bank4.asm | 46 ++++---- src/engine/bank5.asm | 32 +++--- src/engine/bank6.asm | 10 +- src/engine/bank7.asm | 10 +- src/engine/bank8.asm | 4 +- src/engine/home.asm | 291 ++++++++++++++++++++++++++++++++++---------------- src/macros/code.asm | 9 +- src/wram.asm | 32 +++--- 12 files changed, 323 insertions(+), 206 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 79a242d..181597b 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -59,7 +59,10 @@ Func_406f: ; 406f (1:406f) call Func_420b call $66e9 ldtx hl, BackUpIsBrokenText - jr c, .asm_4097 + jr c, Func_4097 +; fallthrough + +Func_407a: ; 407a (1:407a) ld hl, sp+$00 ld a, l ld [wcbe5], a @@ -72,7 +75,9 @@ Func_406f: ; 406f (1:406f) ld [wDuelFinished], a call DuelMainScene jp StartDuel.asm_40fb -.asm_4097 +; 0x4097 + +Func_4097: ; 4097 (1:4097) call DrawWideTextBox_WaitForInput call ResetSerial scf @@ -473,7 +478,7 @@ Func_4376: ; 4376 (1:4376) cp -1 ret z call GetCardIDFromDeckIndex - call LoadCardDataToBuffer1 + call LoadCardDataToBuffer1_FromCardID ld hl, wcbc9 xor a ld [hli], a @@ -661,7 +666,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) ld h, a ld l, DUELVARS_ARENA_CARD ld a, [hl] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex .wait_for_input call DoFrame @@ -781,7 +786,7 @@ Func_47fd: ; $47fd (1:47fd) jr Func_481b Func_4802: ; $4802 (1:4802) - ld hl, $cc38 + ld hl, wLoadedCard1Move1Description + 2 ld a, [hli] or [hl] ret z @@ -793,14 +798,14 @@ Func_480d: ; $480d (1:480d) jr Func_481b Func_4812: ; $4812 (1:4812) - ld hl, $cc4b + ld hl, wLoadedCard1Move2Description + 2 ld a, [hli] or [hl] ret z call $5d37 Func_481b: ; $481b (1:481b) - ld hl, $cc04 + ld hl, wcc04 ld a, $01 xor [hl] ld [hl], a @@ -814,7 +819,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable ldh [hTempCardIndex_ff98], a - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld c, $00 ld b, $0d ld hl, wDuelCardOrAttackList @@ -920,7 +925,7 @@ CheckIfEnoughEnergies: ; 488f (1:488f) _CheckIfEnoughEnergies: ; 48ac (1:48ac) push de ld a, d - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex pop bc push bc ld de, wLoadedCard1Move1Energy @@ -1097,8 +1102,8 @@ Func_4b60: ; 4b60 (1:4b60) call Func_0f58 ld a, [wcc08] ld l, a - ld h, $0 - call Func_2ec4 + ld h, 0 + call LoadTxRam3 ldtx hl, PleasePlacePrizesText call DrawWideTextBox_PrintText call EnableLCD @@ -1118,10 +1123,10 @@ Func_4b60: ; 4b60 (1:4b60) ldh a, [hWhoseTurn] cp PLAYER_TURN jr nz, .asm_4c52 - ld de, wc590 - call PrintPlayerName + ld de, wDefaultText + call LoadPlayerName ld hl, $0000 - call Func_2ebb + call LoadTxRam2 ldtx hl, YouPlayFirstText ldtx de, IfHeadPlayerPlaysFirstText call TossCoin @@ -1136,10 +1141,10 @@ Func_4b60: ; 4b60 (1:4b60) ret .asm_4c52 - ld de, wc590 - call PrintOpponentName + ld de, wDefaultText + call LoadOpponentName ld hl, $0000 - call Func_2ebb + call LoadTxRam2 ldtx hl, YouPlaySecondText ldtx de, IfHeadPlayerPlaysFirstText call TossCoin @@ -1209,7 +1214,7 @@ Func_4cd5: ; 4cd5 (1:4cd5) call $5502 jr c, .asm_4d28 ldh a, [hTempCardIndex_ff98] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld a, $2 call $51e7 jr c, .asm_4d28 @@ -1375,7 +1380,7 @@ AIUseEnergyCard: ; 69a5 (1:69a5) ldh [hTempCardIndex_ff98], a call PutHandCardInPlayArea ldh a, [hffa0] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex call $5e75 call $68e4 ld a, $1 @@ -1693,7 +1698,7 @@ Func_7571: ; 7571 (1:7571) INCROM $7571, $7576 Func_7576: ; 7576 (1:7576) - farcallx $6, $591f + farcall $6, $591f ret ; 0x757b @@ -1703,7 +1708,7 @@ Func_758f: ; 758f (1:758f) INCROM $758f, $7594 Func_7594: ; 7594 (1:7594) - farcallx $6, $661f + farcall $6, $661f ret ; 0x7599 diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 479eb77..36c76f5 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -267,7 +267,7 @@ Func_8f38: ; 8f38 (2:4f38) ld h, [hl] call DisableSRAM ld l, a - ld de, wc590 + ld de, wDefaultText call Func_0663 ld hl, $cfb9 ld [hl], $6 @@ -346,8 +346,8 @@ Func_8f9d: ; 8f9d (2:4f9d) call Func_9253 call DisableSRAM xor a - ld [wce3f], a - ld [wce40], a + ld [wTxRam2], a + ld [wTxRam2 + 1], a ldtx hl, ChosenAsDuelingDeckText call DrawWideTextBox_WaitForInput ld a, [wceb1] @@ -665,12 +665,12 @@ Unknown_9242: ; 9242 (2:5242) INCROM $9242, $9253 Func_9253: ; 9253 (2:5253) - ld de, wc590 + ld de, wDefaultText call Func_92ad - ld hl, wc590 + ld hl, wDefaultText call Func_23c1 ld b, $0 - ld hl, wc590 + ld hl, wDefaultText add hl, bc ld d, h ld e, l @@ -684,19 +684,19 @@ Func_926e: ; 926e (2:526e) pop hl jr c, .asm_929c push de - ld de, wc590 + ld de, wDefaultText call Func_92b4 - ld hl, wc590 + ld hl, wDefaultText call Func_23c1 ld b, $0 - ld hl, wc590 + ld hl, wDefaultText add hl, bc ld d, h ld e, l ld hl, Unknown_92a7 call Func_92ad pop de - ld hl, wc590 + ld hl, wDefaultText call Func_22ae call Func_21c5 or a diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index e0ed703..c21deca 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -5,9 +5,9 @@ Func_80028: ; 80028 (20:4028) call Func_801f1 ld bc, $0000 call Func_80077 - farcallx $3, $49c7 + farcall $3, $49c7 call $41a1 - farcallx $3, $43ee + farcall $3, $43ee ret ; 0x8003d @@ -296,7 +296,7 @@ Func_80ba4: ; 80ba4 (20:4ba4) ld a, [hl] ld [wd131], a push bc - farcallx $20, $4082 + farcall $20, $4082 pop bc srl b ld a, c @@ -308,7 +308,7 @@ Func_80ba4: ; 80ba4 (20:4ba4) ld b, $0 ld hl, wBoosterViableCardList add hl, bc - farcallx $3, $438f + farcall $3, $438f pop af ld [$d23b], a pop af diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index df4a1d5..5400212 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -1524,15 +1524,15 @@ Func_cad8: ; cad8 (3:4ad8) .asm_caff ld a, $c - farcallx $4, $4a70 + farcall $4, $4a70 .asm_cb05 ld a, $b - farcallx $4, $4a70 + farcall $4, $4a70 .asm_cb0b ld a, $a - farcallx $4, $4a70 + farcall $4, $4a70 .asm_cb11 pop af @@ -2212,7 +2212,7 @@ Func_cfd4: ; cfd4 (3:4fd4) Func_d00b: ; d00b (3:500b) sla c ld b, $0 - ld hl, wce3f + ld hl, wTxRam2 add hl, bc push hl call Func_ca69 @@ -2387,7 +2387,7 @@ Func_d125: ; d125 (3:5125) Func_d135: ; d135 (3:5135) sla c ld b, $0 - ld hl, wce3f + ld hl, wTxRam2 add hl, bc push hl ld a, [wd32e] @@ -2415,7 +2415,7 @@ Func_d16b: ; d16b (3:516b) push de sla c ld b, $0 - ld hl, wce3f + ld hl, wTxRam2 add hl, bc push hl ld a, [$d696] @@ -2472,9 +2472,9 @@ asm_d1c6 ld a, [hli] ld [$d697], a ld a, [hli] - ld [wce3f], a + ld [wTxRam2], a ld a, [hl] - ld [wce40], a + ld [wTxRam2 + 1], a jp IncreaseOWScriptPointerBy1 INCROM $d1dc, $d209 @@ -2607,9 +2607,9 @@ Func_d28c: ; d28c (3:528c) jr z, .asm_d2f5 add hl, bc ld a, [hli] - ld [wce3f], a + ld [wTxRam2], a ld a, [hl] - ld [wce40], a + ld [wTxRam2 + 1], a .asm_d2f5 ret diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index dca50a9..f6452c5 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -71,9 +71,9 @@ Medal_1029e: ; 1029e (4:429e) ld hl, Unknown_1030b add hl, bc ld a, [hli] - ld [wce3f], a + ld [wTxRam2], a ld a, [hl] - ld [wce40], a + ld [wTxRam2 + 1], a call $4031 ld a, MUSIC_MEDAL call PlaySong @@ -128,13 +128,13 @@ BoosterPack_1031b: ; 1031b (4:431b) call $70ca pop hl ld a, [hli] - ld [wce43], a + ld [wTxRam3], a xor a - ld [wce44], a + ld [wTxRam3 + 1], a ld a, [hli] - ld [wce3f], a + ld [wTxRam2], a ld a, [hl] - ld [wce40], a + ld [wTxRam2 + 1], a call $4031 call PauseSong ld a, MUSIC_BOOSTER_PACK @@ -160,7 +160,7 @@ BoosterPack_1031b: ; 1031b (4:431b) ld [wVBlankOAMCopyToggle], a ld a, $4 ld [wFrameType], a - farcallx $1, $7599 + farcall $1, $7599 farcall Func_c1a4 call DoFrameIfLCDEnabled pop af @@ -191,22 +191,22 @@ Duel_Init: ; 103d3 (4:43d3) ld hl, $445b add hl, bc ld a, [hli] - ld [wce3f], a + ld [wTxRam2], a ld a, [hli] - ld [wce40], a + ld [wTxRam2 + 1], a push hl ld a, [wOpponentName] - ld [wce41], a + ld [wTxRam2_b], a ld a, [wOpponentName + 1] - ld [wce42], a + ld [wTxRam2_b + 1], a ld hl, $4451 call $51b3 ; LoadDuelistName pop hl ld a, [hli] - ld [wce3f], a + ld [wTxRam2], a ld c, a ld a, [hli] - ld [wce40], a + ld [wTxRam2 + 1], a or c jr z, .asm_10425 ld hl, $4456 @@ -798,7 +798,10 @@ Func_1124d: ; 1124d (4:524d) INCROM $1124d, $11320 Func_11320: ; 11320 (4:5320) - INCROM $11320, $11416 + INCROM $11320, $11343 + +Func_11343: ; 11343 (4:5343) + INCROM $11343, $11416 Func_11416: ; 11416 (4:5416) INCROM $11416, $11430 @@ -830,7 +833,7 @@ Func_1157c: ; 1157c (4:557c) ret ; 0x115a3 - +Func_115a3: ; 115a3 (4:55a3) INCROM $115a3, $1162a INCLUDE "data/map_scripts.asm" @@ -960,6 +963,7 @@ Func_118d3: ; 118d3 (4:58d3) INCLUDE "data/npcs.asm" +Func_11f4e: ; 11f4e (4:5f4e) INCROM $11f4e, $1217b OverworldScriptTable: ; 1217b (4:617b) @@ -1119,7 +1123,7 @@ Func_12704: ; 12704 (4:6704) farcall Func_1d306 ld a, $0 ld [wd0b5], a - farcallx $03, Func_383d + farcall $03, Func_383d or a ret @@ -1136,7 +1140,7 @@ Func_12741: ; 12741 (4:6741) call DisableSRAM ld a, $0 ld [wd0b5], a - farcallx $03, Func_383d + farcall $03, Func_383d or a ret @@ -1155,11 +1159,11 @@ Func_1277e: ; 1277e (4:677e) ld a, MUSIC_STOP call PlaySong farcall Func_c9cb - farcallx $04, Func_3a40 + farcall $04, Func_3a40 farcall Func_70000 ld a, $5 ld [wd0b5], a - farcallx $03, Func_383d + farcall $03, Func_383d or a ret ; 0x1279a @@ -1517,9 +1521,9 @@ Func_13485: ; 13485 (4:7485) or a ret z ld a, [$ba56] - ld [wce43], a + ld [wTxRam3], a ld a, [$ba57] - ld [wce44], a + ld [wTxRam3 + 1], a call DisableSRAM call PauseSong ld a, MUSIC_MEDAL diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 79a5dd2..a35081d 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -64,7 +64,7 @@ Func_14226: ; 14226 (5:4226) ldh [hTempCardIndex_ff98], a cp $ff ret z - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld a, [wLoadedCard1Type] cp TYPE_ENERGY_FIRE jr nc, .check_for_next_pokemon @@ -121,13 +121,13 @@ Func_1468b: ; 1468b (5:468b) call Func_15649 ld a, $1 call Func_14663 - farcallx $8, $67d3 + farcall $8, $67d3 jp nc, $4776 - farcallx $8, $6790 - farcallx $8, $66a3 - farcallx $8, $637f + farcall $8, $6790 + farcall $8, $66a3 + farcall $8, $637f ret c - farcallx $8, $662d + farcall $8, $662d ld a, $2 call Func_14663 ld a, $3 @@ -158,12 +158,12 @@ Func_1468b: ; 1468b (5:468b) .asm_146ed call $5eae - farcallx $8, $66a3 - farcallx $8, $637f + farcall $8, $66a3 + farcall $8, $637f ret c - farcallx $8, $6790 + farcall $8, $6790 ld a, $d - farcallx $8, $619b + farcall $8, $619b ld a, $d call Func_14663 ld a, $f @@ -203,18 +203,18 @@ Func_1468b: ; 1468b (5:468b) .asm_1475b call $5eae - farcallx $8, $66a3 - farcallx $8, $637f + farcall $8, $66a3 + farcall $8, $637f ret c - farcallx $8, $6790 + farcall $8, $6790 ld a, $d - farcallx $8, $619b + farcall $8, $619b ld a, $d call Func_14663 .asm_14776 ld a, $e - farcallx $8, $619b + farcall $8, $619b call $69f8 ret c ld a, $5 @@ -272,7 +272,7 @@ Func_15649: ; 15649 (5:5649) ld a, e cp MEWTWO1 jr nz, .asm_156a4 - farcallx $8, $67a9 + farcall $8, $67a9 jr nc, .asm_156aa .asm_156a4 diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm index fa1c529..f8e8e65 100644 --- a/src/engine/bank6.asm +++ b/src/engine/bank6.asm @@ -71,7 +71,7 @@ Func_199e0: ; 199e0 (6:59e0) pop hl call EnableSRAM push hl - ld de, wc590 + ld de, wDefaultText .asm_199f3 ld a, [de] inc de @@ -103,7 +103,7 @@ Func_19a12: ; 19a12 (6:5a12) ld a, [hli] ld h, [hl] ld l, a - ld de, wc590 + ld de, wDefaultText call PrintTextBoxBorderLabel ret ; 0x19a1f @@ -145,15 +145,15 @@ Func_1a61f: ; 1a61f (6:661f) push hl ld e, a ld d, $0 - call LoadCardDataToBuffer1 + call LoadCardDataToBuffer1_FromCardID call PauseSong ld a, MUSIC_MEDAL call PlaySong - ld hl, $cc27 + ld hl, wLoadedCard1Name ld a, [hli] ld h, [hl] ld l, a - bank1call Func_2ebb ; switch to bank 1, but call a home func + bank1call LoadTxRam2 ; switch to bank 1, but call a home func ld a, PLAYER_TURN ldh [hWhoseTurn], a pop hl diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index 1423278..3ca0d2d 100644 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -148,7 +148,7 @@ Func_1c50a: ; 1c50a (7:450a) xor a ld [hli], a ld a, [hl] - farcallx $4, $69fd + farcall $4, $69fd ld hl, $d349 dec [hl] @@ -442,7 +442,7 @@ Func_1d11c: ; 1d11c (7:511c) ld a, MUSIC_PC_MAIN_MENU call PlaySong call DisableLCD - farcallx $4, $4000 + farcall $4, $4000 ld de, $308f call Func_2275 call Func_3ca0 @@ -462,7 +462,7 @@ Func_1d11c: ; 1d11c (7:511c) .asm_1d14f ld hl, $d636 farcall Func_111e9 - farcallx $4, $4031 + farcall $4, $4031 .asm_1d15a call DoFrameIfLCDEnabled call UpdateRNGSources @@ -536,7 +536,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad) ld [wd324], a ld a, MUSIC_CREDITS call PlaySong - farcallx $4, $4031 + farcall $4, $4031 call $57fc .asm_1d6c8 call DoFrameIfLCDEnabled @@ -547,7 +547,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad) jr nz, .asm_1d6c8 call Func_3c96 ld a, $8 - farcallx $4, $6863 + farcall $4, $6863 ld a, MUSIC_STOP call PlaySong farcall Func_10ab4 diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index 413061c..487814f 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -28,7 +28,7 @@ Func_200e5: ; 200e5 (8:40e5) ld a, [hli] ld [$ce17], a ld a, [$ce16] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex cp $d2 jr nz, .asm_2012b ld b, a @@ -52,7 +52,7 @@ Func_200e5: ; 200e5 (8:40e5) ld a, $1 call TryExecuteEffectCommandFunction jp c, $41a8 - farcallx $5, $743b + farcall $5, $743b jr c, .asm_201a8 pop de pop hl diff --git a/src/engine/home.asm b/src/engine/home.asm index 2365c52..6c134eb 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2455,8 +2455,8 @@ Func_0ed5: ; 0ed5 (0:0ed5) DuelTransmissionError: ; 0f35 (0:0f35) ld a, [wSerialFlags] ld l, a - ld h, $0 - call Func_2ec4 + ld h, 0 + call LoadTxRam3 ldtx hl, TransmissionErrorText call DrawWideTextBox_WaitForInput ld a, $ff @@ -3054,7 +3054,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) cp c jr nz, .skip_card ; jump if not in specified play area location ld a, l - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld a, [wLoadedCard2Type] and 1 << TYPE_ENERGY_F jr z, .skip_card ; jump if Pokemon or trainer card @@ -3262,13 +3262,13 @@ _GetCardIDFromDeckIndex: ; 1362 (0:1362) ret ; load data of card with deck index a (0-59) to wLoadedCard1 -LoadDeckCardToBuffer1: ; 1376 (0:1376) +LoadCardDataToBuffer1_FromDeckIndex: ; 1376 (0:1376) push hl push de push bc push af call GetCardIDFromDeckIndex - call LoadCardDataToBuffer1 + call LoadCardDataToBuffer1_FromCardID pop af ld hl, wLoadedCard1 bank1call ConvertTrainerCardToPokemon @@ -3279,13 +3279,13 @@ LoadDeckCardToBuffer1: ; 1376 (0:1376) ret ; load data of card with deck index a (0-59) to wLoadedCard2 -LoadDeckCardToBuffer2: ; 138c (0:138c) +LoadCardDataToBuffer2_FromDeckIndex: ; 138c (0:138c) push hl push de push bc push af call GetCardIDFromDeckIndex - call LoadCardDataToBuffer2 + call LoadCardDataToBuffer2_FromCardID pop af ld hl, wLoadedCard2 bank1call ConvertTrainerCardToPokemon @@ -3352,7 +3352,7 @@ PutHandPokemonCardInPlayArea: ; 1485 (0:1485) ld l, a pop af ld [hl], a ; set card in arena or benchx - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld a, DUELVARS_ARENA_CARD_HP add e ld l, a @@ -3595,7 +3595,7 @@ GetAttachedEnergies: ; 159f (0:159f) push de push bc ld a, l - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld a, [wLoadedCard2Type] bit TYPE_ENERGY_F, a jr z, .not_an_energy_card @@ -3703,12 +3703,12 @@ Func_161e: ; 161e (0:161e) ret nz call $6510 ldh a, [hTempCardIndex_ff98] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld hl, wLoadedCard1Name ld a, [hli] ld h, [hl] ld l, a - call Func_2ebb + call LoadTxRam2 ldtx hl, HavePokemonPowerText call DrawWideTextBox_WaitForInput call Func_0f58 @@ -3734,9 +3734,9 @@ Func_161e: ; 161e (0:161e) ret c ; return if command not found bank1call $4f9d ldh a, [hTempCardIndex_ff9f] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld de, wLoadedCard1Name - ld hl, wce3f + ld hl, wTxRam2 ld a, [de] inc de ld [hli], a @@ -3767,7 +3767,7 @@ Func_16ad: ; 16ad (0:16ad) pop af ld e, a ld d, $00 - call LoadCardDataToBuffer1 + call LoadCardDataToBuffer1_FromCardID pop de jr CopyMoveDataAndDamage.card_loaded @@ -3779,7 +3779,7 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0) ld [wSelectedMoveIndex], a ld a, d ldh [hTempCardIndex_ff9f], a - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex .card_loaded ld a, [wLoadedCard1ID] ld [wTempCardID_ccc2], a @@ -3912,7 +3912,7 @@ Func_1730: ; 1730 (0:1730) bank1call $503a pop hl .asm_17e8 - call Func_1ad0 + call PrintKnockedOutIfHLZero jr Func_17fb Func_17ed: ; 17ed (0:17ed) @@ -4070,13 +4070,52 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7) ret ; 0x18f9 - INCROM $18f9, $1944 +; use the trainer card with deck index at hTempCardIndex_ff98 +; a trainer card is like a move effect, with its own effect commands +UseTrainerCard: ; 18f9 (0:18f9) + call CheckCantUseTrainerDueToHeadache + jr c, .cant_use + ldh a, [hWhoseTurn] + ld h, a + ldh a, [hTempCardIndex_ff98] + ldh [hTempCardIndex_ff9f], a + call LoadNonPokemonCardEffectCommands + ld a, $01 + call TryExecuteEffectCommandFunction + jr nc, .can_use +.cant_use + call DrawWideTextBox_WaitForInput + scf + ret +.can_use + ld a, $02 + call TryExecuteEffectCommandFunction + jr c, .done + ld a, $06 + call SetDuelAIAction + call $666a + call Func_0f58 + ld a, $06 + call TryExecuteEffectCommandFunction + ld a, $05 + call TryExecuteEffectCommandFunction + ld a, $07 + call SetDuelAIAction + ld a, $03 + call TryExecuteEffectCommandFunction + ldh a, [hTempCardIndex_ff9f] + call MoveHandCardToDiscardPile + call Func_0f58 +.done + or a + ret +; 0x1944 ; loads the effect commands of a (trainer or energy) card with deck index (0-59) at hTempCardIndex_ff9f ; into wLoadedMoveEffectCommands LoadNonPokemonCardEffectCommands: ; 1944 (0:1944) ldh a, [hTempCardIndex_ff9f] - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld hl, wLoadedCard1EffectCommands ld de, wLoadedMoveEffectCommands ld a, [hli] @@ -4113,7 +4152,7 @@ Func_195c: ; 195c (0:195c) ld a, DUELVARS_ARENA_CARD_HP call GetTurnDuelistVariable bank1call $7469 - call Func_1ad0 + call PrintKnockedOutIfHLZero pop af ld [wTempNonTurnDuelistCardID], a pop af @@ -4188,17 +4227,17 @@ Func_1994: ; 1994 (0:1994) Func_1a0e: ; 1a0e (0:1a0e) push hl - add $1a + add LOW(.asm_1a1a) ld l, a - ld a, $1a + ld a, HIGH(.asm_1a1a) adc $0 ld h, a ld a, [hl] pop hl ret -; 0x1a1a - INCROM $1a1a, $1a22 +.asm_1a1a + db $80, $40, $20, $10, $08, $04, $02, $01 Func_1a22: ; 1a22 (0:1a22) xor a @@ -4299,39 +4338,44 @@ SubstractHP: ; 1a96 (0:1a96) pop hl ret -Func_1aac: ; 1aac (0:1aac) +; given a play area location offset in a, check if the turn holder's Pokemon card in +; that location has no HP left, and, if so, print that it was knocked out. +PrintPlayAreaCardKnockedOutIfNoHP: ; 1aac (0:1aac) ld e, a add DUELVARS_ARENA_CARD_HP call GetTurnDuelistVariable or a - ret nz + ret nz ; return if arena card has non-0 HP ld a, [wTempNonTurnDuelistCardID] push af ld a, e add DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld a, [wLoadedCard1ID] ld [wTempNonTurnDuelistCardID], a - call Func_1ad3 + call PrintKnockedOut pop af ld [wTempNonTurnDuelistCardID], a scf ret -Func_1ad0: ; 1ad0 (0:1ad0) - ld a, [hl] +PrintKnockedOutIfHLZero: ; 1ad0 (0:1ad0) + ld a, [hl] ; this is supposed to point to a remaining HP value after some form of damage calculation or a ret nz -Func_1ad3: ; 1ad3 (0:1ad3) +; fallthrough + +; print in a text box that the Pokemon card at wTempNonTurnDuelistCardID was knocked out and wait 40 frames +PrintKnockedOut: ; 1ad3 (0:1ad3) ld a, [wTempNonTurnDuelistCardID] ld e, a - call LoadCardDataToBuffer1 - ld hl, $cc27 + call LoadCardDataToBuffer1_FromCardID + ld hl, wLoadedCard1Name ld a, [hli] ld h, [hl] ld l, a - call Func_2ebb + call LoadTxRam2 ldtx hl, WasKnockedOutText call DrawWideTextBox_PrintText ld a, 40 @@ -4349,16 +4393,16 @@ Func_1b8d: ; 1b8d (0:1b8d) bank1call $4f9d ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld a, $12 call Func_29f5 ld [hl], $0 - ld hl, $ce3f + ld hl, wTxRam2 xor a ld [hli], a ld [hli], a ld a, [wLoadedMoveName] - ld [hli], a + ld [hli], a ; wTxRam2_b ld a, [wLoadedMoveName + 1] ld [hli], a ldtx hl, PokemonsAttackText ; text when using an attack @@ -4385,14 +4429,14 @@ Func_1bca: ; 1bca (0:1bca) ldh a, [hTempPlayAreaLocationOffset_ff9d] add DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call LoadDeckCardToBuffer1 + call LoadCardDataToBuffer1_FromDeckIndex ld a, $12 call Func_29f5 ld [hl], $0 ld hl, $0000 - call Func_2ebb + call LoadTxRam2 ld hl, $ccaa - ld de, $ce41 + ld de, wTxRam2_b ld a, [hli] ld [de], a inc de @@ -4425,7 +4469,7 @@ SwapTurn: ; 1c72 (0:1c72) pop af ret -PrintPlayerName: ; 1c7d (0:1c7d) +LoadPlayerName: ; 1c7d (0:1c7d) call EnableSRAM ld hl, $a010 .loop @@ -4438,7 +4482,7 @@ PrintPlayerName: ; 1c7d (0:1c7d) call DisableSRAM ret -PrintOpponentName: ; 1c8e (0:1c8e) +LoadOpponentName: ; 1c8e (0:1c8e) ld hl, wOpponentName ld a, [hli] or [hl] @@ -4452,7 +4496,7 @@ PrintOpponentName: ; 1c8e (0:1c8e) ld a, [hl] or a jr z, .print_player2 - jr PrintPlayerName.loop + jr LoadPlayerName.loop .print_player2 ldtx hl, Player2Text jp PrintTextBoxBorderLabel @@ -6084,7 +6128,7 @@ CardSymbolTable: db $dc, $02 ; TYPE_TRAINER Func_29f5: ; 29f5 (0:29f5) - farcallx $6, $4000 + farcall $6, $4000 ret ; 0x29fa @@ -6151,7 +6195,7 @@ Func_2a44: ; 2a44 (0:2a44) ld a, l or h jp nz, PrintTextNoDelay - ld hl, wc590 + ld hl, wDefaultText jp Func_21c5 DrawWideTextBox_PrintText: ; 2a59 (0:2a59) @@ -6325,7 +6369,11 @@ PrintYesOrNoItems: ; 2b66 (0:2b66) ret ; 0x2b70 - INCROM $2b70, $2b78 +Func_2b70: ; 2b70 (0:2b70) + ld a, BANK(Func_407a) + call BankswitchHome + jp Func_407a +; 0x2b78 ; loads opponent deck to wOpponentDeck LoadOpponentDeck: ; 2b78 (0:2b78) @@ -6572,7 +6620,7 @@ Func_2d06: ; 2d06 (0:2d06) add e ld e, a ld d, $0 - ld hl, $ce2b + ld hl, wce2b add hl, de ret @@ -6613,11 +6661,11 @@ Func_2d43: ; 2d43 (0:2d43) call Func_21f2 jr nc, .asm_2d74 cp TX_RAM1 - jr z, .asm_2dc8 + jr z, .tx_ram1 cp TX_RAM2 - jr z, .asm_2d8a + jr z, .tx_ram2 cp TX_RAM3 - jr z, .asm_2db3 + jr z, .tx_ram3 jr .asm_2d74 .asm_2d65 ld e, a @@ -6644,13 +6692,13 @@ Func_2d43: ; 2d43 (0:2d43) call Func_230f scf ret -.asm_2d8a +.tx_ram2 call Func_2ceb ld a, $f ld [hffaf], a xor a ld [wcd0a], a - ld de, $ce3f + ld de, wTxRam2 ld hl, $ce49 call Func_2de0 ld a, l @@ -6660,20 +6708,20 @@ Func_2d43: ; 2d43 (0:2d43) call Func_2cd7 jr Func_2d43 .asm_2dab - ld hl, wc590 + ld hl, wDefaultText call Func_2cd7 jr Func_2d43 -.asm_2db3 +.tx_ram3 call Func_2ceb - ld de, $ce43 + ld de, wTxRam3 ld hl, $ce4a call Func_2de0 call Func_2e12 call Func_2cd7 jp Func_2d43 -.asm_2dc8 +.tx_ram1 call Func_2ceb - call Func_2e2c + call LoadTurnDuelistName ld a, [wcaa0] cp $6 jr z, .asm_2dda @@ -6683,6 +6731,8 @@ Func_2d43: ; 2d43 (0:2d43) call Func_2cd7 jp Func_2d43 +; inc [hl] +; hl = [de + 2*[hl]] Func_2de0: ; 2de0 (0:2de0) push de ld a, [hl] @@ -6745,17 +6795,17 @@ Func_2e12: ; 2e12 (0:2e12) jr nz, .asm_2e23 ret -Func_2e2c: ; 2e2c (0:2e2c) +LoadTurnDuelistName: ; 2e2c (0:2e2c) ld de, wcaa0 push de ldh a, [hWhoseTurn] cp OPPONENT_TURN jp z, .opponent_turn - call PrintPlayerName + call LoadPlayerName pop hl ret .opponent_turn - call PrintOpponentName + call LoadOpponentName pop hl ret @@ -6772,7 +6822,7 @@ PrintText: ; 2e41 (0:2e41) call BankswitchHome ret .from_ram - ld hl, wc590 + ld hl, wDefaultText .print_text call Func_2cc8 .next_tile_loop @@ -6780,14 +6830,14 @@ PrintText: ; 2e41 (0:2e41) ld b, a ld a, [wTextSpeed] inc a - cp $3 + cp 3 jr nc, .apply_delay ; if text speed is 1, pressing b ignores it bit B_BUTTON_F, b jr nz, .skip_delay jr .apply_delay .text_delay_loop - ; wait a number of frames equal to wTextSpeed between printing each text tile + ; wait a number of frames equal to [wTextSpeed] between printing each text tile call DoFrame .apply_delay dec a @@ -6834,37 +6884,49 @@ PrintTextBoxBorderLabel: ; 2e89 (0:2e89) .special ldh a, [hWhoseTurn] cp OPPONENT_TURN - jp z, PrintOpponentName - jp PrintPlayerName + jp z, LoadOpponentName + jp LoadPlayerName ; 0x2ea9 - INCROM $2ea9, $2ebb +Func_2ea9: ; 2ea9 (0:2ea9) + ldh [hff96], a + ldh a, [hBankROM] + push af + call ReadTextOffset + ldh a, [hff96] + call $23fd + pop af + call BankswitchHome + ret +; 0x2ebb -Func_2ebb: ; 2ebb (0:2ebb) +; text pointer (usually of a card name) for TX_RAM2 +LoadTxRam2: ; 2ebb (0:2ebb) ld a, l - ld [wce3f], a + ld [wTxRam2], a ld a, h - ld [wce40], a + ld [wTxRam2 + 1], a ret -Func_2ec4: ; 2ec4 (0:2ec4) +; a number between 0 and 65535 for TX_RAM3 +LoadTxRam3: ; 2ec4 (0:2ec4) ld a, l - ld [wce43], a + ld [wTxRam3], a ld a, h - ld [wce44], a + ld [wTxRam3 + 1], a ret ; 0x2ecd INCROM $2ecd, $2f0a ; load data of card with id at e to wLoadedCard2 -LoadCardDataToBuffer2: ; 2f0a (0:2f0a) +LoadCardDataToBuffer2_FromCardID: ; 2f0a (0:2f0a) push hl ld hl, wLoadedCard2 jr LoadCardDataToRAM ; load data of card with id at e to wLoadedCard1 -LoadCardDataToBuffer1: ; 2f10 (0:2f10) +LoadCardDataToBuffer1_FromCardID: ; 2f10 (0:2f10) push hl ld hl, wLoadedCard1 ; fallthrough @@ -7667,7 +7729,7 @@ Func_3317: ; 3317 (0:3317) call SwapTurn ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld a, DUELVARS_ARENA_CARD_HP call GetTurnDuelistVariable push af @@ -7676,13 +7738,13 @@ Func_3317: ; 3317 (0:3317) call SubstractHP ld a, [wLoadedCard2ID] ld [wTempNonTurnDuelistCardID], a - ld hl, $a - call Func_2ec4 + ld hl, 10 + call LoadTxRam3 ld hl, wLoadedCard2Name ld a, [hli] ld h, [hl] ld l, a - call Func_2ebb + call LoadTxRam2 ldtx hl, ReceivesDamageDueToStrikesBackText call DrawWideTextBox_WaitForInput pop hl @@ -7690,7 +7752,7 @@ Func_3317: ; 3317 (0:3317) or a jr z, .asm_3379 xor a - call Func_1aac + call PrintPlayAreaCardKnockedOutIfNoHP .asm_3379 call SwapTurn pop de @@ -7863,7 +7925,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) ld a, [wTempTurnDuelistCardID] ld e, a ld d, $0 - call LoadCardDataToBuffer2 + call LoadCardDataToBuffer2_FromCardID ld a, [wLoadedCard2Stage] or a ret z @@ -8230,12 +8292,12 @@ HandleDestinyBondSubstatus: ; 363b (0:363b) pop hl ld l, DUELVARS_ARENA_CARD ld a, [hl] - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld hl, wLoadedCard2Name ld a, [hli] ld h, [hl] ld l, a - call Func_2ebb + call LoadTxRam2 ldtx hl, KnockedOutDueToDestinyBondText call DrawWideTextBox_WaitForInput ret @@ -8266,16 +8328,16 @@ HandleStrikesBack: ; 367b (0:367b) ApplyStrikesBack: ; 36a2 (0:36a2) push hl - call Func_2ec4 + call LoadTxRam3 ld a, [wTempTurnDuelistCardID] ld e, a ld d, $0 - call LoadCardDataToBuffer2 + call LoadCardDataToBuffer2_FromCardID ld hl, wLoadedCard2Name ld a, [hli] ld h, [hl] ld l, a - call Func_2ebb + call LoadTxRam2 ld a, DUELVARS_ARENA_CARD_HP call GetTurnDuelistVariable pop de @@ -8290,7 +8352,7 @@ ApplyStrikesBack: ; 36a2 (0:36a2) ret z call WaitForWideTextBoxInput xor a - call Func_1aac + call PrintPlayAreaCardKnockedOutIfNoHP call $503a scf ret @@ -8380,7 +8442,7 @@ GetArenaPokemonWeakness: ; 3730 (0:3730) GetPokemonWeakness: call GetTurnDuelistVariable - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld a, [wLoadedCard2Weakness] ret ; 0x3743 @@ -8406,7 +8468,7 @@ GetArenaPokemonResistance: ; 374a (0:374a) GetPokemonResistance: call GetTurnDuelistVariable - call LoadDeckCardToBuffer2 + call LoadCardDataToBuffer2_FromDeckIndex ld a, [wLoadedCard2Resistance] ret ; 0x375d @@ -8789,7 +8851,29 @@ Func_3a40: ; 3a40 (0:3a40) ret ; 0x3a45 - INCROM $3a45, $3a5e +Func_3a45: ; 3a45 (0:3a45) + farcall Func_11343 + ret +; 0x3a4a + +Func_3a4a: ; 3a4a (0:3a4a) + farcall Func_115a3 + ret +; 0x3a4f + +Func_3a4f: ; 3a4f (0:3a4f) + push af + push bc + push de + push hl + ld c, $00 + farcall Func_1157c + pop hl + pop de + pop bc + pop af + ret +; 0x3a5e Func_3a5e: ; 3a5e (0:3a5e) ldh a, [hBankROM] @@ -8883,7 +8967,10 @@ Func_3abd: ; 3abd (0:3abd) ret ; 0x3ae8 - INCROM $3ae8, $3aed +Func_3ae8: ; 3ae8 (0:3ae8) + farcall Func_11f4e + ret +; 0x3aed ; finds an OWScript from the first byte and puts the next two bytes (usually arguments?) into cb RunOverworldScript: ; 3aed (0:3aed) @@ -8914,7 +9001,16 @@ RunOverworldScript: ; 3aed (0:3aed) jp hl ; 0x3b11 - INCROM $3b11, $3b21 +Func_3b11: ; 3b11 (0:3b11) + ldh a, [hBankROM] + push af + ld a, $04 + call BankswitchHome + call $66d1 + pop af + call BankswitchHome + ret +; 0x3b21 Func_3b21: ; 3b21 (0:3b21) ldh a, [hBankROM] @@ -9039,7 +9135,10 @@ Func_3c45: ; 3c45 (0:3c45) jp hl ; 0x3c46 - INCROM $3c46, $3c48 +Func_3c46: ; 3c46 (0:3c46) + push bc + ret +; 0x3c48 DoFrameIfLCDEnabled: ; 3c48 (0:3c48) push af @@ -9094,7 +9193,15 @@ Func_3c83: ; 3c83 (0:3c83) ret ; 0x3c87 - INCROM $3c87, $3c96 +Func_3c87: ; 3c87 (0:3c87) + push af + call PauseSong + pop af + call PlaySong + call Func_3c96 + call ResumeSong + ret +; 0x3c96 Func_3c96: ; 3c96 (0:3c96) call DoFrameIfLCDEnabled diff --git a/src/macros/code.asm b/src/macros/code.asm index 24c3bf1..276bd6a 100644 --- a/src/macros/code.asm +++ b/src/macros/code.asm @@ -30,16 +30,13 @@ ENDM farcall: MACRO rst $28 +if _NARG == 1 db BANK(\1) dw \1 -ENDM - -; used when the specified bank does not match the bank of the specified function -; otherwise, farcall is preferred -farcallx: MACRO - rst $28 +else db \1 dw \2 +endc ENDM ; the rst $38 handler is a single ret diff --git a/src/wram.asm b/src/wram.asm index 99dbd6d..2696c3c 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -285,9 +285,9 @@ wOpponentDeck:: ; c480 wDuelCardOrAttackList:: ; c510 ds $80 -; this appears to be kept updated with some default text that is used +; this is kept updated with some default text that is used ; when the text printing functions are called with text id $0000 -wc590:: ; c590 +wDefaultText:: ; c590 ds $70 SECTION "WRAM Text Engine", WRAM0 @@ -791,25 +791,29 @@ wcd9f:: ; cd9f ; $b is the bank where the functions associated to card or effect commands are. ; Its only purpose seems to be store this value to be read by TryExecuteEffectCommandFunction. wce22:: ; ce22 - ds $1d - -wce3f:: ; cd3f ds $1 -wce40:: ; ce40 - ds $1 + ds $8 -wce41:: ; ce41 +wce2b:: ; ce2b ds $1 -wce42:: ; ce42 - ds $1 + ds $13 -wce43:: ; ce43 - ds $1 +; text pointer for the first TX_RAM2 of a text +; prints from wDefaultText if $0000 +wTxRam2:: ; cd3f + ds $2 -wce44:: ; ce44 - ds $3 +; text pointer for the second TX_RAM2 on a text +wTxRam2_b:: ; ce41 + ds $2 + +; a number between 0 and 65535 for TX_RAM3 +wTxRam3:: ; ce43 + ds $2 + + ds $2 ; when printing text, number of frames to wait between each text tile wTextSpeed:: ; ce47 -- cgit v1.2.3 From 098c6df150a83ec3f10051a65c42bd0bf64a86dc Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 24 Feb 2018 17:10:28 +0100 Subject: More bank0 disasm, labeling, and sram-related constants --- src/constants/card_data_constants.asm | 13 +- src/constants/duel_constants.asm | 4 +- src/engine/bank1.asm | 12 +- src/engine/bank2.asm | 54 +++--- src/engine/bank3.asm | 22 +-- src/engine/bank6.asm | 6 +- src/engine/effect_functions.asm | 2 +- src/engine/home.asm | 349 +++++++++++++++++++++++----------- src/macros/audio.asm | 8 +- src/sram.asm | 8 +- src/wram.asm | 2 + 11 files changed, 317 insertions(+), 163 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index fb17a53..77a175f 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -1,7 +1,16 @@ NONE EQU $0 -; wTempCardCollection size -CARD_COLLECTION_SIZE EQU $100 +; sCardCollection constants +CARD_COLLECTION_SIZE EQU $100 ; cards +MAX_AMOUNT_OF_CARD EQU 99 +CARD_NOT_OWNED_F EQU 7 +CARD_NOT_OWNED EQU 1 << CARD_NOT_OWNED_F +CARD_COUNT_MASK EQU $7f + +; sDeck* and generic deck constants +NUM_DECKS EQU 4 +DECK_NAME_SIZE EQU 24 +DECK_SIZE EQU 60 ; card data offsets (data/cards.asm and card_data_struct) diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index 3b4b4e7..76a9f43 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -1,5 +1,3 @@ -DECK_NAME_SIZE EQU 24 -DECK_SIZE EQU 60 MAX_BENCH_POKEMON EQU 5 MAX_PLAY_AREA_POKEMON EQU 6 ; arena + bench @@ -100,7 +98,7 @@ PARALYZED EQU $03 POISONED EQU $80 DOUBLE_POISONED EQU $c0 -PASSIVE_STATUS_MASK EQU $f ; confused, asleep or paralyzed +CNF_SLP_PRZ EQU $0f ; confused, asleep or paralyzed ; substatus conditions (DUELVARS_ARENA_CARD_SUBSTATUS*) SUBSTATUS1_AGILITY EQU $0c diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 181597b..94844dc 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -505,8 +505,8 @@ DuelMenu_Done: ; 439a (1:439a) DuelMenu_Retreat: ; 43ab (1:43ab) ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable - and PASSIVE_STATUS_MASK - cp $01 + and CNF_SLP_PRZ + cp CONFUSED ldh [hffa0], a jr nz, Func_43f1 ld a, [wcc0c] @@ -1012,7 +1012,7 @@ _CheckIfEnoughEnergiesOfType: ; 4900 (1:4900) CheckIfActiveCardParalyzedOrAsleep: ; 4918 (1:4918) ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable - and PASSIVE_STATUS_MASK + and CNF_SLP_PRZ cp PARALYZED jr z, .paralyzed cp ASLEEP @@ -1124,7 +1124,7 @@ Func_4b60: ; 4b60 (1:4b60) cp PLAYER_TURN jr nz, .asm_4c52 ld de, wDefaultText - call LoadPlayerName + call CopyPlayerName ld hl, $0000 call LoadTxRam2 ldtx hl, YouPlayFirstText @@ -1142,7 +1142,7 @@ Func_4b60: ; 4b60 (1:4b60) .asm_4c52 ld de, wDefaultText - call LoadOpponentName + call CopyOpponentName ld hl, $0000 call LoadTxRam2 ldtx hl, YouPlaySecondText @@ -1288,7 +1288,7 @@ LoadPlayerDeck: ; 6793 (1:6793) ld l, a ld h, $54 call HtimesL - ld de, $a218 + ld de, sDeck1Cards add hl, de ld de, wPlayerDeck ld c, DECK_SIZE diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 36c76f5..9bac4c3 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -116,9 +116,9 @@ Func_8dea: ; 8dea (2:4dea) Func_8e05: ; 8e05 (2:4e05) ld a, $1 call Func_90fb - call Func_9048 + call GetPointerToDeckCards push hl - call Func_9038 + call GetPointerToDeckName pop de call Func_8e1f ld a, $ff @@ -165,7 +165,7 @@ Func_8e42: ; 8e42 (2:4e42) ld a, [wceb0] or a jp nz, .asm_8ecf - call Func_9048 + call GetPointerToDeckCards ld e, l ld d, h ld hl, $cf17 @@ -174,14 +174,14 @@ Func_8e42: ; 8e42 (2:4e42) ld hl, $cfb9 call Func_9843 ld de, $cfb9 - call Func_9038 + call GetPointerToDeckName call Func_92b4 call Func_9345 jr nc, .asm_8ec4 call EnableSRAM ld hl, $cf17 call Func_910a - call Func_9048 + call GetPointerToDeckCards call Func_9152 ld e, l ld d, h @@ -193,12 +193,12 @@ Func_8e42: ; 8e42 (2:4e42) inc de dec b jr nz, .asm_8ea9 - call Func_9038 + call GetPointerToDeckName ld d, h ld e, l ld hl, $cfb9 call Func_92ad - call Func_9038 + call GetPointerToDeckName ld a, [hl] call DisableSRAM or a @@ -218,10 +218,10 @@ Func_8e42: ; 8e42 (2:4e42) ld hl, $cfb9 call Func_9843 ld de, $cfb9 - call Func_9038 + call GetPointerToDeckName call Func_92b4 call Func_8f05 - call Func_9038 + call GetPointerToDeckName ld d, h ld e, l ld hl, $cfb9 @@ -341,7 +341,7 @@ Func_8f9d: ; 8f9d (2:4f9d) ld [$b700], a call DisableSRAM call Func_9326 - call Func_9038 + call GetPointerToDeckName call EnableSRAM call Func_9253 call DisableSRAM @@ -380,25 +380,27 @@ Func_9026: ; 9026 (2:5026) Unknown_9027: ; 9027 (2:5027) INCROM $9027, $9038 -Func_9038: ; 9038 (2:5038) +; return, in hl, the pointer to sDeckXName where X is [wceb1] + 1 +GetPointerToDeckName: ; 9038 (2:5038) ld a, [wceb1] ld h, a - ld l, $54 + ld l, sDeck2Name - sDeck1Name call HtimesL push de - ld de, $a200 + ld de, sDeck1Name add hl, de pop de ret -Func_9048: ; 9048 (2:5048) +; return, in hl, the pointer to sDeckXCards where X is [wceb1] + 1 +GetPointerToDeckCards: ; 9048 (2:5048) push af ld a, [wceb1] ld h, a - ld l, $54 + ld l, sDeck2Cards - sDeck1Cards call HtimesL push de - ld de, $a218 + ld de, sDeck1Cards add hl, de pop de pop af @@ -529,7 +531,7 @@ Func_910a: ; 910a (2:510a) jr z, .asm_911e ld c, a push hl - ld hl, $a100 + ld hl, sCardCollection add hl, bc dec [hl] pop hl @@ -552,7 +554,7 @@ Func_9152: ; 9152 (2:5152) jr z, .asm_9166 ld c, a push hl - ld hl, $a100 + ld hl, sCardCollection add hl, bc inc [hl] pop hl @@ -585,11 +587,11 @@ Func_9168: ; 9168 (2:5168) ld a, [hffb5] bit 0, a jr z, .asm_91b0 - ld hl, $a200 + ld hl, sDeck1Name ld de, $0602 call Func_926e .asm_91b0 - ld hl, $a218 + ld hl, sDeck1Cards call Func_9314 jr c, .asm_91bd ld a, $1 @@ -598,11 +600,11 @@ Func_9168: ; 9168 (2:5168) ld a, [hffb5] bit 1, a jr z, .asm_91cd - ld hl, $a254 + ld hl, sDeck2Name ld de, $0605 call Func_926e .asm_91cd - ld hl, $a26c + ld hl, sDeck2Cards call Func_9314 jr c, .asm_91da ld a, $1 @@ -611,11 +613,11 @@ Func_9168: ; 9168 (2:5168) ld a, [hffb5] bit 2, a jr z, .asm_91ea - ld hl, $a2a8 + ld hl, sDeck3Name ld de, $0608 call Func_926e .asm_91ea - ld hl, $a2c0 + ld hl, sDeck3Cards call Func_9314 jr c, .asm_91f7 ld a, $1 @@ -624,11 +626,11 @@ Func_9168: ; 9168 (2:5168) ld a, [hffb5] bit 3, a jr z, .asm_9207 - ld hl, $a2fc + ld hl, sDeck4Name ld de, $060b call Func_926e .asm_9207 - ld hl, $a314 + ld hl, sDeck4Cards call Func_9314 jr c, .asm_9214 ld a, $1 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 5400212..b3a055d 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -1952,7 +1952,7 @@ Func_ce84: ; ce84 (3:4e84) call Func_c135 jp IncreaseOWScriptPointerBy1 -; args: booster pack index, booster pack index, boosterpack index +; args: booster pack index, booster pack index, booster pack index OWScript_GiveBoosterPacks: ; ce8a (3:4e8a) xor a ld [wd117], a @@ -2027,12 +2027,12 @@ Func_cee2: ; cee2 (3:4ee2) Func_cf0c: ; cf0c (3:4f0c) ld a, c - call Func_1ce1 + call GetCardCountInCollectionAndDecks jr asm_cf16 Func_cf12: ; cf12 (3:4f12) ld a, c - call Func_1d1d + call GetCardCountInCollection asm_cf16 or a @@ -2055,7 +2055,7 @@ Func_cf2d: ; cf2d (3:4f2d) push bc call IncreaseOWScriptPointerBy1 pop bc - call Func_1caa + call GetRawAmountOfCardsOwned ld a, h cp b jr nz, .asm_cf3b @@ -2078,7 +2078,7 @@ Func_cf3f: ; cf3f (3:4f3f) Func_cf4c: ; cf4c (3:4f4c) ld a, c - call Func_1d91 + call RemoveCardFromCollection jp IncreaseOWScriptPointerBy2 Func_cf53: ; cf53 (3:4f53) @@ -2086,7 +2086,7 @@ Func_cf53: ; cf53 (3:4f53) ld b, $0 .asm_cf57 ld a, c - call Func_1d1d + call GetCardCountInCollection add b ld b, a inc c @@ -2114,12 +2114,12 @@ Func_cf7b: ; cf7b (3:4f7b) .asm_cf7d push bc ld a, c - call Func_1d1d + call GetCardCountInCollection jr c, .asm_cf8c ld b, a .asm_cf85 ld a, c - call Func_1d91 + call RemoveCardFromCollection dec b jr nz, .asm_cf85 @@ -2229,21 +2229,21 @@ Func_d00b: ; d00b (3:500b) Func_d025: ; d025 (3:5025) call Func_ca69 dec hl - call Func_1ce1 + call GetCardCountInCollectionAndDecks jp c, Func_cf67 jp Func_cf6d Func_d032: ; d032 (3:5032) call Func_ca69 dec hl - call Func_1d1d + call GetCardCountInCollection jp c, Func_cf67 jp Func_cf6d Func_d03f: ; d03f (3:503f) call Func_ca69 dec hl - call Func_1d91 + call RemoveCardFromCollection jp IncreaseOWScriptPointerBy1 OWScript_ScriptJump: ; d049 (3:5049) diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm index f8e8e65..9174b84 100644 --- a/src/engine/bank6.asm +++ b/src/engine/bank6.asm @@ -8,7 +8,7 @@ Func_1996e: ; 1996e (6:596e) call EnableSRAM ld a, PLAYER_TURN ldh [hWhoseTurn], a - ld hl, $a100 + ld hl, sCardCollection ld bc, $1607 .asm_1997b xor a @@ -27,8 +27,8 @@ Func_1996e: ; 1996e (6:596e) ld hl, $a3f8 call Func_199e0 call EnableSRAM - ld hl, $a100 - ld a, $80 + ld hl, sCardCollection + ld a, CARD_NOT_OWNED .asm_199a2 ld [hl], a inc l diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index aeb35a8..0d7a910 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -50,7 +50,7 @@ ApplyStatusEffect: call SwapTurn xor a ; ...unless already so, or if affected by Muk's Toxic Gas - call CheckIfUnderAnyCannotUseStatus2 + call CheckCannotUseDueToStatus_OnlyToxicGasIfANon0 call SwapTurn jr c, .can_induce_status diff --git a/src/engine/home.asm b/src/engine/home.asm index 6c134eb..4e7e977 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2958,7 +2958,7 @@ SearchCardInDiscardPileAndAddToHand: ; 1182 (0:1182) CheckPrizeTaken: ; 11a5 (0:11a5) ld e, a ld d, 0 - ld hl, .prize_bits + ld hl, PowersOf2 add hl, de ld a, [hl] ld e, a @@ -2969,7 +2969,7 @@ CheckPrizeTaken: ; 11a5 (0:11a5) and e ret -.prize_bits +PowersOf2: db $01, $02, $04, $08, $10, $20, $40, $80 ; 0x11bf @@ -3414,7 +3414,7 @@ MovePlayAreaCardToDiscardPile: ; 14dd (0:14dd) call EmptyPlayAreaSlot ld l, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY dec [hl] - ld l, LOW(DUELVARS_CARD_LOCATIONS) + ld l, DUELVARS_CARD_LOCATIONS .next_card ld a, e or CARD_LOCATION_PLAY_AREA @@ -3640,7 +3640,7 @@ GetAttachedEnergies: ; 159f (0:159f) ; h = PLAYER_TURN or OPPONENT_TURN CountCardIDInLocation: ; 15ef (0:15ef) push bc - ld l, LOW(DUELVARS_CARD_LOCATIONS) + ld l, DUELVARS_CARD_LOCATIONS ld c, $0 .next_card ld a, [hl] @@ -3716,7 +3716,7 @@ Func_161e: ; 161e (0:161e) cp MUK jr z, .use_pokemon_power ld a, $01 ; check only Muk - call CheckIfUnderAnyCannotUseStatus2 + call CheckCannotUseDueToStatus_OnlyToxicGasIfANon0 jr nc, .use_pokemon_power call $6510 ldtx hl, UnableToUsePkmnPowerDueToToxicGasText @@ -4052,7 +4052,7 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7) ld [wccc9], a ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable - and PASSIVE_STATUS_MASK + and CNF_SLP_PRZ cp CONFUSED jr z, .confused or a @@ -4191,7 +4191,7 @@ Func_1994: ; 1994 (0:1994) call Func_1a0e ld b, a call SwapTurn - call GetArenaPokemonWeakness + call GetArenaCardWeakness call SwapTurn and b jr z, .asm_19dc @@ -4201,7 +4201,7 @@ Func_1994: ; 1994 (0:1994) set 1, [hl] .asm_19dc call SwapTurn - call GetArenaPokemonResistance + call GetArenaCardResistance call SwapTurn and b jr z, .check_pluspower_and_defender @@ -4253,7 +4253,7 @@ Func_1a22: ; 1a22 (0:1a22) call GetArenaCardColor call Func_1a0e ld b, a - call GetArenaPokemonWeakness + call GetArenaCardWeakness and b jr z, .asm_1a47 sla e @@ -4261,7 +4261,7 @@ Func_1a22: ; 1a22 (0:1a22) ld hl, $ccc1 set 1, [hl] .asm_1a47 - call GetArenaPokemonResistance + call GetArenaCardResistance and b jr z, .asm_1a58 ld hl, -30 @@ -4453,7 +4453,101 @@ Func_1bca: ; 1bca (0:1bca) ret ; 0x1c05 - INCROM $1c05, $1c72 +; return in a the retreat cost of the turn holder's arena or benchx Pokemon +; given the PLAY_AREA_* value in hTempPlayAreaLocationOffset_ff9d +GetPlayAreaCardRetreatCost: ; 1c05 (0:1c05) + ldh a, [hTempPlayAreaLocationOffset_ff9d] + add DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + call LoadCardDataToBuffer1_FromDeckIndex + call GetLoadedCard1RetreatCost + ret +; 0x1c13 + +; move the turn holder's card with ID at de to the discard pile +; if it's currently in the arena. +MoveCardToDiscardPileIfInArena: ; 1c13 (0:1c13) + ld c, e + ld b, d + ld l, DUELVARS_CARD_LOCATIONS +.next_card + ld a, [hl] + and CARD_LOCATION_ARENA + jr z, .skip ; jump if card not in arena + ld a, l + call GetCardIDFromDeckIndex + ld a, c + cp e + jr nz, .skip ; jump if not the card id provided in c + ld a, b + cp d ; card IDs are 8-bit so d is always 0 + jr nz, .skip + ld a, l + push bc + call PutCardInDiscardPile + pop bc +.skip + inc l + ld a, l + cp DECK_SIZE + jr c, .next_card + ret +; 0x1c35 + +; substract [hl] HP from the turn holder's card at CARD_LOCATION_PLAY_AREA + e +; return the result in a +SubstractHPFromCard: ; 1c35 (0:1c35) + push hl + push de + ld a, DUELVARS_ARENA_CARD + add e + call GetTurnDuelistVariable + call LoadCardDataToBuffer2_FromDeckIndex + pop de + push de + ld a, DUELVARS_ARENA_CARD_HP + add e + call GetTurnDuelistVariable + ld a, [wLoadedCard2HP] + ld c, a + sub [hl] + pop de + pop hl + ret +; 0x1c50 + +; check if a flag of wLoadedMove is set +; input: a = %fffffbbb, where f = flag address counting from wLoadedMoveFlag1, and b = flag bit +; return carry if the flag is set +CheckLoadedMoveFlag: ; 1c50 (0:1c50) + push hl + push de + push bc + ld c, a ; %fffffbbb + and $07 + ld e, a + ld d, $00 + ld hl, PowersOf2 + add hl, de + ld b, [hl] + ld a, c + rra + rra + rra + and $1f + ld e, a ; %000fffff + ld hl, wLoadedMoveFlag1 + add hl, de + ld a, [hl] + and b + jr z, .done + scf ; set carry if the move has this flag set +.done + pop bc + pop de + pop hl + ret +; 0x1c72 ; returns [hWhoseTurn] <-- ([hWhoseTurn] ^ $1) ; As a side effect, this also returns a duelist variable in a similar manner to @@ -4469,9 +4563,10 @@ SwapTurn: ; 1c72 (0:1c72) pop af ret -LoadPlayerName: ; 1c7d (0:1c7d) +; copy the $00-terminated player's name from sPlayerName to de +CopyPlayerName: ; 1c7d (0:1c7d) call EnableSRAM - ld hl, $a010 + ld hl, sPlayerName .loop ld a, [hli] ld [de], a @@ -4482,7 +4577,8 @@ LoadPlayerName: ; 1c7d (0:1c7d) call DisableSRAM ret -LoadOpponentName: ; 1c8e (0:1c8e) +; copy the opponent's name to de (usually via PrintTextBoxBorderLabel) +CopyOpponentName: ; 1c8e (0:1c8e) ld hl, wOpponentName ld a, [hli] or [hl] @@ -4492,58 +4588,64 @@ LoadOpponentName: ; 1c8e (0:1c8e) ld h, a jp PrintTextBoxBorderLabel .special_name - ld hl, $c500 + ld hl, wc500 ld a, [hl] or a jr z, .print_player2 - jr LoadPlayerName.loop + jr CopyPlayerName.loop .print_player2 ldtx hl, Player2Text jp PrintTextBoxBorderLabel -Func_1caa: ; 1caa (0:1caa) +; return, in hl, the total amount of cards owned anywhere, including duplicates +GetRawAmountOfCardsOwned: ; 1caa (0:1caa) push de push bc call EnableSRAM ld hl, $0000 ld de, sDeck1Cards - ld c, $4 -.asm_1cb7 + ld c, NUM_DECKS +.next_deck ld a, [de] or a - jr z, .asm_1cc1 + jr z, .skip_deck ; jump if deck empty ld a, c - ld bc, $003c + ld bc, DECK_SIZE add hl, bc ld c, a -.asm_1cc1 - ld a, $54 +.skip_deck + ld a, sDeck2Cards - sDeck1Cards add e ld e, a ld a, $0 adc d - ld d, a + ld d, a ; de = sDeck*Cards[x] dec c - jr nz, .asm_1cb7 + jr nz, .next_deck + + ; hl = DECK_SIZE * (no. of non-empty decks) ld de, sCardCollection -.asm_1ccf +.next_card ld a, [de] - bit 7, a - jr nz, .asm_1cd8 - ld c, a + bit CARD_NOT_OWNED_F, a + jr nz, .skip_card + ld c, a ; card count in sCardCollection ld b, $0 add hl, bc -.asm_1cd8 +.skip_card inc e - jr nz, .asm_1ccf + jr nz, .next_card ; assumes sCardCollection is $100 bytes long (CARD_COLLECTION_SIZE) call DisableSRAM pop bc pop de ret -Func_1ce1: ; 1ce1 (0:1ce1) +; return carry if the count in sCardCollection plus the count in each deck (sDeck*) +; of the card with id given in a is 0 (if card not owned). +; also return the count (total owned amount) in a. +GetCardCountInCollectionAndDecks: ; 1ce1 (0:1ce1) push hl push de push bc @@ -4551,40 +4653,42 @@ Func_1ce1: ; 1ce1 (0:1ce1) ld c, a ld b, $0 ld hl, sDeck1Cards - ld d, $4 -.asm_1cef + ld d, NUM_DECKS +.next_deck ld a, [hl] or a - jr z, .asm_1cff + jr z, .deck_done ; jump if deck empty push hl - ld e, $3c -.asm_1cf6 + ld e, DECK_SIZE +.next_card ld a, [hli] cp c - jr nz, .asm_1cfb - inc b + jr nz, .no_match + inc b ; this deck card matches card c -.asm_1cfb +.no_match dec e - jr nz, .asm_1cf6 + jr nz, .next_card pop hl -.asm_1cff +.deck_done push de - ld de, $0054 + ld de, sDeck2Cards - sDeck1Cards add hl, de pop de dec d - jr nz, .asm_1cef - ld h, $a1 + jr nz, .next_deck + + ; all decks done + ld h, HIGH(sCardCollection) ld l, c ld a, [hl] - bit 7, a - jr nz, .asm_1d11 - add b + bit CARD_NOT_OWNED_F, a + jr nz, .done + add b ; if card seen, add b to count -.asm_1d11 - and $7f +.done + and CARD_COUNT_MASK call DisableSRAM pop bc pop de @@ -4594,15 +4698,17 @@ Func_1ce1: ; 1ce1 (0:1ce1) scf ret -Func_1d1d: ; 1d1d (0:1d1d) +; return carry if the count in sCardCollection of the card with id given in a is 0. +; also return the count (amount owned outside of decks) in a. +GetCardCountInCollection: ; 1d1d (0:1d1d) push hl call EnableSRAM - ld h, $a1 + ld h, HIGH(sCardCollection) ld l, a ld a, [hl] call DisableSRAM pop hl - and $7f + and CARD_COUNT_MASK ret nz scf ret @@ -4628,23 +4734,24 @@ CreateTempCardCollection: ; 1d2e (0:1d2e) AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59) ld a, [de] or a - ret z + ret z ; return if empty name (empty deck) ld hl, sDeck1Cards - sDeck1Name add hl, de ld e, l ld d, h ld h, HIGH(wTempCardCollection) ld c, DECK_SIZE -.asm_1d66 - ld a, [de] - inc de +.next_card + ld a, [de] ; count of current card being added + inc de ; move to next card for next iteration ld l, a - inc [hl] + inc [hl] ; increment count dec c - jr nz, .asm_1d66 + jr nz, .next_card ret -; adds card a to collection, provided the player has less than 99 of them +; add card with id given in a to sCardCollection, provided that +; the player has less than MAX_AMOUNT_OF_CARD (99) of them AddCardToCollection: ; 1d6e (0:1d6e) push hl push de @@ -4654,41 +4761,70 @@ AddCardToCollection: ; 1d6e (0:1d6e) call CreateTempCardCollection pop hl call EnableSRAM - ld h, wTempCardCollection >> 8 + ld h, HIGH(wTempCardCollection) ld a, [hl] - and $7f - cp 99 - jr nc, .asm_1d8a - ld h, sCardCollection >> 8 + and CARD_COUNT_MASK + cp MAX_AMOUNT_OF_CARD + jr nc, .already_max + ld h, HIGH(sCardCollection) ld a, [hl] - and $7f + and CARD_COUNT_MASK inc a ld [hl], a -.asm_1d8a +.already_max call DisableSRAM pop bc pop de pop hl ret -Func_1d91: ; 1d91 (0:1d91) +; remove a card with id given in a from sCardCollection (decrement its count if non-0) +RemoveCardFromCollection: ; 1d91 (0:1d91) push hl call EnableSRAM - ld h, $a1 + ld h, HIGH(sCardCollection) ld l, a ld a, [hl] - and $7f - jr z, .asm_1d9f + and CARD_COUNT_MASK + jr z, .zero dec a ld [hl], a - -.asm_1d9f +.zero call DisableSRAM pop hl ret ; 0x1da4 - INCROM $1da4, $1dca +; return the amount of different cards that the player has collected in d +; return NUM_CARDS in e, minus 1 if VENUSAUR1 or MEW2 has not been collected (minus 2 if neither) +GetCardAlbumProgress: ; 1da4 (0:1da4) + push hl + call EnableSRAM + ld e, NUM_CARDS + ld h, HIGH(sCardCollection) + ld l, VENUSAUR1 + bit CARD_NOT_OWNED_F, [hl] + jr z, .next1 + dec e ; if VENUSAUR1 not owned +.next1 + ld l, MEW2 + bit CARD_NOT_OWNED_F, [hl] + jr z, .next2 + dec e ; if MEW2 not owned +.next2 + ld d, LOW(sCardCollection) + ld l, d +.next_card + bit CARD_NOT_OWNED_F, [hl] + jr nz, .skip + inc d ; if this card owned +.skip + inc l + jr nz, .next_card ; assumes sCardCollection is $100 bytes long (CARD_COLLECTION_SIZE) + call DisableSRAM + pop hl + ret +; 0x1dca ; copy c bytes of data from de to hl ; if LCD on, copy during h-blank only @@ -6721,7 +6857,7 @@ Func_2d43: ; 2d43 (0:2d43) jp Func_2d43 .tx_ram1 call Func_2ceb - call LoadTurnDuelistName + call CopyTurnDuelistName ld a, [wcaa0] cp $6 jr z, .asm_2dda @@ -6795,17 +6931,18 @@ Func_2e12: ; 2e12 (0:2e12) jr nz, .asm_2e23 ret -LoadTurnDuelistName: ; 2e2c (0:2e2c) +; copy the name of the duelist whose turn it is to de +CopyTurnDuelistName: ; 2e2c (0:2e2c) ld de, wcaa0 push de ldh a, [hWhoseTurn] cp OPPONENT_TURN jp z, .opponent_turn - call LoadPlayerName + call CopyPlayerName pop hl ret .opponent_turn - call LoadOpponentName + call CopyOpponentName pop hl ret @@ -6884,8 +7021,8 @@ PrintTextBoxBorderLabel: ; 2e89 (0:2e89) .special ldh a, [hWhoseTurn] cp OPPONENT_TURN - jp z, LoadOpponentName - jp LoadPlayerName + jp z, CopyOpponentName + jp CopyPlayerName ; 0x2ea9 Func_2ea9: ; 2ea9 (0:2ea9) @@ -6923,7 +7060,7 @@ LoadTxRam3: ; 2ec4 (0:2ec4) LoadCardDataToBuffer2_FromCardID: ; 2f0a (0:2f0a) push hl ld hl, wLoadedCard2 - jr LoadCardDataToRAM + jr LoadCardDataToHL_FromCardID ; load data of card with id at e to wLoadedCard1 LoadCardDataToBuffer1_FromCardID: ; 2f10 (0:2f10) @@ -6931,7 +7068,7 @@ LoadCardDataToBuffer1_FromCardID: ; 2f10 (0:2f10) ld hl, wLoadedCard1 ; fallthrough -LoadCardDataToRAM: ; 2f14 (0:2f14) +LoadCardDataToHL_FromCardID: ; 2f14 (0:2f14) push de push bc push hl @@ -7615,7 +7752,7 @@ HandleDamageReductionExceptSubstatus2: ; 3269 (0:3269) cp SUBSTATUS1_HALVE_DAMAGE jr z, .halve_damage .not_affected_by_substatus1 - call CheckIfUnderAnyCannotUseStatus + call CheckCannotUseDueToStatus ret c .pkmn_power ld a, [wLoadedMoveCategory] @@ -7721,7 +7858,7 @@ Func_3317: ; 3317 (0:3317) ld a, [wcceb] or a jr nz, .asm_333b - call CheckIfUnderAnyCannotUseStatus + call CheckCannotUseDueToStatus ret c .asm_333b push hl @@ -7903,7 +8040,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) ldtx hl, NoDamageOrEffectDueToAgilityText cp SUBSTATUS1_AGILITY jr z, .no_damage_or_effect - call CheckIfUnderAnyCannotUseStatus + call CheckCannotUseDueToStatus ccf ret nc .pkmn_power @@ -7948,7 +8085,7 @@ HandleTransparency: ; 348a (0:348a) cp POKEMON_POWER jr z, .done ; Transparency has no effect against Pkmn Powers ld a, [wcceb] - call CheckIfUnderAnyCannotUseStatus2 + call CheckCannotUseDueToStatus_OnlyToxicGasIfANon0 jr c, .done xor a ld [wcac2], a @@ -8010,16 +8147,16 @@ IsClairvoyanceActive: ; 34e2 (0:34e2) ; returns carry if paralyzed, asleep, confused, and/or toxic gas in play, ; meaning that move and/or pkmn power cannot be used -CheckIfUnderAnyCannotUseStatus: ; 34ef (0:34ef) +CheckCannotUseDueToStatus: ; 34ef (0:34ef) xor a ; same as above, but if a is non-0, only toxic gas is checked -CheckIfUnderAnyCannotUseStatus2: ; 34f0 (0:34f0) +CheckCannotUseDueToStatus_OnlyToxicGasIfANon0: ; 34f0 (0:34f0) or a jr nz, .check_toxic_gas ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable - and PASSIVE_STATUS_MASK + and CNF_SLP_PRZ ldtx hl, CannotUseDueToStatusText scf jr nz, .done ; return carry @@ -8072,7 +8209,7 @@ CountPokemonIDInPlayArea: ; 3525 (0:3525) jr nz, .check_bench ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable - and PASSIVE_STATUS_MASK + and CNF_SLP_PRZ jr nz, .check_bench inc c .check_bench @@ -8318,7 +8455,7 @@ HandleStrikesBack: ; 367b (0:367b) or a ret z call SwapTurn - call CheckIfUnderAnyCannotUseStatus + call CheckCannotUseDueToStatus call SwapTurn ret c ld hl, 10 ; damage to be dealt to attacker @@ -8410,7 +8547,7 @@ GetPlayAreaCardColor: ; 36f7 (0:36f7) ret .has_changed_color ld a, e - call CheckIfUnderAnyCannotUseStatus2 + call CheckCannotUseDueToStatus_OnlyToxicGasIfANon0 jr c, .regular_color ; jump if can't use Shift ld a, e add DUELVARS_ARENA_CARD_CHANGED_TYPE @@ -8421,18 +8558,18 @@ GetPlayAreaCardColor: ; 36f7 (0:36f7) ret ; 0x3729 -; return in a the weakness of the arena Pokemon (a == 0) or of a bench Pokemon (a > 0) +; return in a the weakness of the turn holder's arena or benchx Pokemon given the PLAY_AREA_* value in a ; if a == 0 and [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] != 0, ; return [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] instead -GetPlayAreaPokemonWeakness: ; 3729 (0:3729) +GetPlayAreaCardWeakness: ; 3729 (0:3729) or a - jr z, GetArenaPokemonWeakness + jr z, GetArenaCardWeakness add DUELVARS_ARENA_CARD - jr GetPokemonWeakness + jr GetCardWeakness -; return in a the weakness of the arena Pokemon +; return in a the weakness of the turn holder's arena Pokemon ; if [DUELVARS_ARENA_CARD_CHANGED_WEAKNESS] != 0, return it instead -GetArenaPokemonWeakness: ; 3730 (0:3730) +GetArenaCardWeakness: ; 3730 (0:3730) ld a, DUELVARS_ARENA_CARD_CHANGED_WEAKNESS call GetTurnDuelistVariable or a @@ -8440,25 +8577,25 @@ GetArenaPokemonWeakness: ; 3730 (0:3730) ld a, DUELVARS_ARENA_CARD ; fallthrough -GetPokemonWeakness: +GetCardWeakness: call GetTurnDuelistVariable call LoadCardDataToBuffer2_FromDeckIndex ld a, [wLoadedCard2Weakness] ret ; 0x3743 -; return in a the resistance of the arena Pokemon (a == 0) or of a bench Pokemon (a > 0) +; return in a the resistance of the turn holder's arena or benchx Pokemon given the PLAY_AREA_* value in a ; if a == 0 and [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] != 0, ; return [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] instead -GetPlayAreaPokemonResistance: ; 3743 (0:3743) +GetPlayAreaCardResistance: ; 3743 (0:3743) or a - jr z, GetArenaPokemonResistance + jr z, GetArenaCardResistance add DUELVARS_ARENA_CARD - jr GetPokemonResistance + jr GetCardResistance ; return in a the resistance of the arena Pokemon ; if [DUELVARS_ARENA_CARD_CHANGED_RESISTANCE] != 0, return it instead -GetArenaPokemonResistance: ; 374a (0:374a) +GetArenaCardResistance: ; 374a (0:374a) ld a, DUELVARS_ARENA_CARD_CHANGED_RESISTANCE call GetTurnDuelistVariable or a @@ -8466,7 +8603,7 @@ GetArenaPokemonResistance: ; 374a (0:374a) ld a, DUELVARS_ARENA_CARD ; fallthrough -GetPokemonResistance: +GetCardResistance: call GetTurnDuelistVariable call LoadCardDataToBuffer2_FromDeckIndex ld a, [wLoadedCard2Resistance] @@ -8483,7 +8620,7 @@ HandleEnergyBurn: ; 375d (0:375d) cp CHARIZARD ret nz xor a - call CheckIfUnderAnyCannotUseStatus2 + call CheckCannotUseDueToStatus_OnlyToxicGasIfANon0 ret c ld hl, wAttachedEnergies ld c, NUM_COLORED_TYPES diff --git a/src/macros/audio.asm b/src/macros/audio.asm index f79ee8f..0c13596 100644 --- a/src/macros/audio.asm +++ b/src/macros/audio.asm @@ -35,15 +35,15 @@ G#: MACRO ENDM A_: MACRO - db $A0 | (\1 - 1) + db $a0 | (\1 - 1) ENDM A#: MACRO - db $B0 | (\1 - 1) + db $b0 | (\1 - 1) ENDM B_: MACRO - db $C0 | (\1 - 1) + db $c0 | (\1 - 1) ENDM bass: MACRO @@ -67,7 +67,7 @@ snare4: MACRO ; long ENDM snare5: MACRO ; long - db $C0 | (\1 - 1) + db $c0 | (\1 - 1) ENDM rest: MACRO diff --git a/src/sram.asm b/src/sram.asm index 1a0bf38..89f8255 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -1,7 +1,13 @@ SECTION "SRAM", SRAM - ds $100 + ds $10 +sPlayerName:: ds $10 + + ds $e0 + +; for each card, how many (0-127) the player owns +; CARD_NOT_OWNED ($80) indicates that the player has not yet seen the card sCardCollection:: ds $100 ; a100 sDeck1Name:: ds DECK_NAME_SIZE ; a200 diff --git a/src/wram.asm b/src/wram.asm index 2696c3c..5d01d58 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -279,6 +279,7 @@ ENDU wOpponentDeck:: ; c480 ds $80 +wc500:: ; c500 ds $10 ; this holds a list of cards (e.g. in hand or in bench) or the attack list of a pokemon card @@ -594,6 +595,7 @@ wIsPracticeDuel:: ; cc13 wOpponentPortrait:: ; cc15 ds $1 +; text id of the opponent's name wOpponentName:: ; cc16 ds $2 -- cgit v1.2.3 From d2ea5ec78518456ae8a45d2cb144074551a7bf43 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 24 Feb 2018 19:08:43 +0100 Subject: More bank0 disassembly --- src/engine/bank1.asm | 2 +- src/engine/home.asm | 188 ++++++++++++++++++++++++++++++++++++++++----------- src/hram.asm | 9 ++- 3 files changed, 157 insertions(+), 42 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 94844dc..756bcfe 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -694,7 +694,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) ld d, [hl] ; card number within the deck (0 to 59) inc hl ld e, [hl] ; attack index (0 or 1) - call CopyMoveDataAndDamage + call CopyMoveDataAndDamage_FromDeckIndex call HandleAmnesiaSubstatus jr c, .cannot_use_due_to_amnesia ld a, $07 diff --git a/src/engine/home.asm b/src/engine/home.asm index 4e7e977..cadfb50 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2757,7 +2757,6 @@ DrawCardFromDeck: ; 10cf (0:10cf) pop hl or a ret - .empty_deck pop hl scf @@ -2973,7 +2972,7 @@ PowersOf2: db $01, $02, $04, $08, $10, $20, $40, $80 ; 0x11bf -; fill wDuelCardOrAttackList with the turn holder's discard pile cards +; fill wDuelCardOrAttackList with the turn holder's discard pile cards (their 0-59 deck index) ; return carry if the turn holder has no cards in the discard pile CreateDiscardPileCardList: ; 11bf (0:11bf) ldh a, [hWhoseTurn] @@ -3003,7 +3002,7 @@ CreateDiscardPileCardList: ; 11bf (0:11bf) ret ; 0x11df -; fill wDuelCardOrAttackList with the turn holder's remaining deck cards +; fill wDuelCardOrAttackList with the turn holder's remaining deck cards (their 0-59 deck index) ; return carry if the turn holder has no cards left in the deck CreateDeckCardList: ; 11df (0:11df) ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK @@ -3039,7 +3038,8 @@ CreateDeckCardList: ; 11df (0:11df) ret ; 0x120a -; fill wDuelCardOrAttackList with the turn holder's energy cards in the arena or in a bench slot +; fill wDuelCardOrAttackList with the turn holder's energy cards +; in the arena or in a bench slot (their 0-59 deck index). ; if a == 0: search in CARD_LOCATION_ARENA ; if a != 0: search in CARD_LOCATION_BENCH_[A] ; return carry if no energy cards were found @@ -3079,7 +3079,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) ret ; 0x123b -; fill wDuelCardOrAttackList with the turn holder's hand cards +; fill wDuelCardOrAttackList with the turn holder's hand cards (their 0-59 deck index) ; return carry if the turn holder has no cards in hand CreateHandCardList: ; 123b (0:123b) call FindLastCardInHand @@ -3109,7 +3109,9 @@ CreateHandCardList: ; 123b (0:123b) ret ; 0x1258 -Func_1258: ; 1258 (0:1258) +; sort the turn holder's hand cards by ID (highest to lowest ID) +; makes use of wDuelCardOrAttackList +SortHandCardsByID: ; 1258 (0:1258) call FindLastCardInHand .loop ld a, [hld] @@ -3119,7 +3121,7 @@ Func_1258: ; 1258 (0:1258) jr nz, .loop ld a, $ff ld [de], a - call $12a3 + call SortCardsInDuelCardOrAttackListByID call FindLastCardInHand .loop2 ld a, [de] @@ -3185,7 +3187,96 @@ ShuffleCards: ; 127f (0:127f) ret ; 0x12a3 - INCROM $12a3, $12fa +; sort a $ff-terminated list of deck index cards by ID (lowest to highest ID). +; the list is wDuelCardOrAttackList. +SortCardsInDuelCardOrAttackListByID: ; 12a3 (0:12a3) + ld hl, hTempListPtr_ff99 + ld [hl], LOW(wDuelCardOrAttackList) + inc hl + ld [hl], HIGH(wDuelCardOrAttackList) + jr SortCardsInListByID_CheckForListTerminator + +; sort a $ff-terminated list of deck index cards by ID (lowest to highest ID). +; the pointer to the list is given in hTempListPtr_ff99. +; sorting by ID rather than deck index means that the order of equal (same ID) cards does not matter, +; even if they have a different deck index. +SortCardsInListByID: ; 12ad (0:12ad) + ; load [hTempListPtr_ff99] into hl and de + ld hl, hTempListPtr_ff99 + ld a, [hli] + ld h, [hl] + ld l, a + ld e, l + ld d, h + + ; get ID of card with deck index at [de] + ld a, [de] + call GetCardIDFromDeckIndex_bc + ld a, c + ldh [hTempCardID_ff9b], a + ld a, b + ldh [hTempCardID_ff9b + 1], a ; 0 + + ; hl = [hTempListPtr_ff99] + 1 + inc hl + jr .check_list_end + +.next_card_in_list + ld a, [hl] + call GetCardIDFromDeckIndex_bc + ldh a, [hTempCardID_ff9b + 1] + cp b + jr nz, .go + ldh a, [hTempCardID_ff9b] + cp c + +.go + jr c, .not_lower_id + + ; this card has the lowest ID of those checked so far + ld e, l + ld d, h + ld a, c + ldh [hTempCardID_ff9b], a + ld a, b + ldh [hTempCardID_ff9b + 1], a + +.not_lower_id + inc hl + +.check_list_end + bit 7, [hl] ; $ff is the list terminator + jr z, .next_card_in_list + + ; reached list terminator + ld hl, hTempListPtr_ff99 + push hl + ld a, [hli] + ld h, [hl] + ld l, a + ; swap the lowest ID card found with the card in the current list position + ld c, [hl] + ld a, [de] + ld [hl], a + ld a, c + ld [de], a + pop hl + ; [hTempListPtr_ff99] += 1 (point hl to next card in list) + inc [hl] + jr nz, SortCardsInListByID_CheckForListTerminator + inc hl + inc [hl] +; fallthrough + +SortCardsInListByID_CheckForListTerminator: ; 12ef (0:12ef) + ld hl, hTempListPtr_ff99 + ld a, [hli] + ld h, [hl] + ld l, a + bit 7, [hl] ; $ff is the list terminator + jr z, SortCardsInListByID + ret +; 0x12fa ; returns, in register bc, the id of the card with the deck index specified in register a ; preserves hl @@ -3691,7 +3782,7 @@ Func_161e: ; 161e (0:161e) ldh a, [hTempCardIndex_ff98] ld d, a ld e, $00 - call CopyMoveDataAndDamage + call CopyMoveDataAndDamage_FromDeckIndex call Func_16f6 ldh a, [hTempCardIndex_ff98] ldh [hTempCardIndex_ff9f], a @@ -3757,7 +3848,11 @@ Func_161e: ; 161e (0:161e) ret ; 0x16ad -Func_16ad: ; 16ad (0:16ad) +; copies, given a card identified by register a (card ID): +; - e into wSelectedMoveIndex and d into hTempCardIndex_ff9f +; - Move1 (if e == 0) or Move2 (if e == 1) data into wLoadedMove +; - Also from that move, its Damage field into wDamage +CopyMoveDataAndDamage_FromCardID: ; 16ad (0:16ad) push de push af ld a, e @@ -3769,12 +3864,13 @@ Func_16ad: ; 16ad (0:16ad) ld d, $00 call LoadCardDataToBuffer1_FromCardID pop de - jr CopyMoveDataAndDamage.card_loaded + jr CopyMoveDataAndDamage_FromDeckIndex.card_loaded -; copies from card identified by register d (0-59 deck index): +; copies, given a card identified by register d (0-59 deck index): +; - e into wSelectedMoveIndex and d into hTempCardIndex_ff9f ; - Move1 (if e == 0) or Move2 (if e == 1) data into wLoadedMove ; - Also from that move, its Damage field into wDamage -CopyMoveDataAndDamage: ; 16c0 (0:16c0) +CopyMoveDataAndDamage_FromDeckIndex: ; 16c0 (0:16c0) ld a, e ld [wSelectedMoveIndex], a ld a, d @@ -3807,6 +3903,7 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0) ld [hl], a ret +; inits hTempCardIndex_ff9f, wTempTurnDuelistCardID, wTempNonTurnDuelistCardID, and other temp variables Func_16f6: ; 16f6 (0:16f6) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable @@ -3886,7 +3983,7 @@ Func_1730: ; 1730 (0:1730) ldh [hTempPlayAreaLocationOffset_ff9d], a ld a, $3 call TryExecuteEffectCommandFunction - call Func_1994 + call ApplyDamageModifiers_DamageToTarget call Func_189d ld hl, wccbf ld [hl], e @@ -4043,7 +4140,7 @@ Func_189d: ; 189d (0:189d) ld a, DUELVARS_ARENA_CARD_SUBSTATUS2 call GetNonTurnDuelistVariable ld [hl], $0 - ld de, $0000 + ld de, 0 ret ; return carry and 1 into wccc9 if damage is dealt to oneself due to confusion @@ -4131,7 +4228,7 @@ Func_1955: ; 1955 (0:1955) ld a, $7a ld [wLoadedMoveAnimation], a pop af -; this function appears to apply several damage modifiers +; this function appears to handle dealing damage to self due to confusion Func_195c: ; 195c (0:195c) ld hl, wDamage ld [hli], a @@ -4145,7 +4242,7 @@ Func_195c: ; 195c (0:195c) push af ld a, [wTempTurnDuelistCardID] ld [wTempNonTurnDuelistCardID], a - bank1call Func_1a22 ; switch to bank 1, but call a home func + bank1call ApplyDamageModifiers_DamageToSelf ; switch to bank 1, but call a home func ld a, [wccc1] ld c, a ld b, $0 @@ -4159,7 +4256,12 @@ Func_195c: ; 195c (0:195c) ld [wNoDamageOrEffect], a ret -Func_1994: ; 1994 (0:1994) +; given a damage value at wDamage: +; - if the non-turn holder's arena card is weak to the turn holder's arena card color: double damage +; - if the non-turn holder's arena card resists the turn holder's arena card color: reduce damage by 30 +; - also apply Pluspower, Defender, and other kinds of damage reduction accordingly +; return resulting damage in de +ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994) xor a ld [wccc1], a ld hl, wDamage @@ -4169,7 +4271,7 @@ Func_1994: ; 1994 (0:1994) ld de, 0 ret .non_zero_damage - xor a + xor a ; PLAY_AREA_ARENA ldh [hTempPlayAreaLocationOffset_ff9d], a ld d, [hl] dec hl @@ -4188,28 +4290,28 @@ Func_1994: ; 1994 (0:1994) ret z ldh a, [hTempPlayAreaLocationOffset_ff9d] call GetPlayAreaCardColor - call Func_1a0e + call TranslateColorToWR ld b, a call SwapTurn call GetArenaCardWeakness call SwapTurn and b - jr z, .asm_19dc + jr z, .not_weak sla e rl d - ld hl, $ccc1 + ld hl, wccc1 set 1, [hl] -.asm_19dc +.not_weak call SwapTurn call GetArenaCardResistance call SwapTurn and b - jr z, .check_pluspower_and_defender + jr z, .check_pluspower_and_defender ; jump if not resistant ld hl, -30 add hl, de ld e, l ld d, h - ld hl, $ccc1 + ld hl, wccc1 set 2, [hl] .check_pluspower_and_defender ld b, CARD_LOCATION_ARENA @@ -4225,21 +4327,26 @@ Func_1994: ; 1994 (0:1994) call SwapTurn ret -Func_1a0e: ; 1a0e (0:1a0e) +; convert a color to its equivalent WR_* (weakness/resistance) value +TranslateColorToWR: ; 1a0e (0:1a0e) push hl - add LOW(.asm_1a1a) + add LOW(InvertedPowersOf2) ld l, a - ld a, HIGH(.asm_1a1a) + ld a, HIGH(InvertedPowersOf2) adc $0 ld h, a ld a, [hl] pop hl ret -.asm_1a1a +InvertedPowersOf2: ; 1a1a (0:1a1a) db $80, $40, $20, $10, $08, $04, $02, $01 -Func_1a22: ; 1a22 (0:1a22) +; given a damage value at wDamage: +; - if the turn holder's arena card is weak to its own color: double damage +; - if the turn holder's arena card resists its own color: reduce damage by 30 +; return resulting damage in de +ApplyDamageModifiers_DamageToSelf: ; 1a22 (0:1a22) xor a ld [wccc1], a ld hl, wDamage @@ -4251,26 +4358,26 @@ Func_1a22: ; 1a22 (0:1a22) dec hl ld e, [hl] call GetArenaCardColor - call Func_1a0e + call TranslateColorToWR ld b, a call GetArenaCardWeakness and b - jr z, .asm_1a47 + jr z, .not_weak sla e rl d - ld hl, $ccc1 + ld hl, wccc1 set 1, [hl] -.asm_1a47 +.not_weak call GetArenaCardResistance and b - jr z, .asm_1a58 + jr z, .not_resistant ld hl, -30 add hl, de ld e, l ld d, h - ld hl, $ccc1 + ld hl, wccc1 set 2, [hl] -.asm_1a58 +.not_resistant ld b, CARD_LOCATION_ARENA call ApplyAttachedPluspower ld b, CARD_LOCATION_ARENA @@ -4731,6 +4838,7 @@ CreateTempCardCollection: ; 1d2e (0:1d2e) call DisableSRAM ret +; adds the cards from a deck to wTempCardCollection given de = sDeck*Name AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59) ld a, [de] or a @@ -7914,7 +8022,7 @@ HandleNShieldAndTransparency: ; 337f (0:337f) or a ret .nshield - ld a, $ce + ld a, DUELVARS_ARENA_CARD_STAGE call GetNonTurnDuelistVariable or a jr z, .done @@ -8517,13 +8625,13 @@ ClearChangedTypesIfMuk: ; 36d9 (0:36d9) ret ; 0x36f6 -; return the arena card's color in a, accounting for Venomoth's Shift Pokemon Power if active +; return the turn holder's arena card's color in a, accounting for Venomoth's Shift Pokemon Power if active GetArenaCardColor: ; 36f6 (0:36f6) xor a ; fallthrough ; input: a = play area location offset (PLAY_AREA_*) of the desired card -; return the card's color in a, accounting for Venomoth's Shift Pokemon Power if active +; return the turn holder's card's color in a, accounting for Venomoth's Shift Pokemon Power if active GetPlayAreaCardColor: ; 36f7 (0:36f7) push hl push de diff --git a/src/hram.asm b/src/hram.asm index dc90bd1..58c455b 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -50,7 +50,14 @@ hWhoseTurn:: ; ff97 hTempCardIndex_ff98:: ; ff98 ds 1 - ds 4 +; used in SortCardsInListByID +hTempListPtr_ff99:: ; ff99 + ds 2 + +; used in SortCardsInListByID +; this function supports 16-bit card IDs +hTempCardID_ff9b:: ; ff9b + ds 2 ; a PLAY_AREA_ARENA constant (0: arena card, 1-5: bench card) hTempPlayAreaLocationOffset_ff9d:: ; ff9d -- cgit v1.2.3 From f3b132b877428d08cea1a16dfc97bed7f169f58a Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 24 Feb 2018 23:06:17 +0100 Subject: More bank0 disasm and labeling --- src/constants/duel_constants.asm | 4 + src/engine/bank1.asm | 12 +-- src/engine/bank5.asm | 2 +- src/engine/bank8.asm | 4 +- src/engine/home.asm | 202 ++++++++++++++++++++++++++++++--------- src/wram.asm | 18 +++- 6 files changed, 182 insertions(+), 60 deletions(-) diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index 76a9f43..d033722 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -135,3 +135,7 @@ NO_DAMAGE_OR_EFFECT_BARRIER EQU $02 NO_DAMAGE_OR_EFFECT_FLY EQU $03 NO_DAMAGE_OR_EFFECT_TRANSPARENCY EQU $04 NO_DAMAGE_OR_EFFECT_NSHIELD EQU $05 + +; wDamageEffectiveness constants +WEAKNESS EQU 1 +RESISTANCE EQU 2 diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 756bcfe..597cf69 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -648,7 +648,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) ld [wSelectedDuelSubMenuItem], a .try_open_attack_menu - call LoadPokemonMovesToDuelCardOrAttackList + call LoadPokemonMovesToDuelTempList or a jr nz, .open_attack_menu ldtx hl, NoSelectableAttackText @@ -689,7 +689,7 @@ DuelMenu_Attack: ; 46fc (1:46fc) add a ld e, a ld d, $00 - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList add hl, de ld d, [hl] ; card number within the deck (0 to 59) inc hl @@ -811,10 +811,10 @@ Func_481b: ; $481b (1:481b) ld [hl], a ret -; copies the following to the wDuelCardOrAttackList buffer: +; copies the following to the wDuelTempList buffer: ; if pokemon's second moveslot is empty: , 0 ; else: , 0, , 1 -LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) +LoadPokemonMovesToDuelTempList: ; 4823 (1:4823) call DrawWideTextBox ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable @@ -822,7 +822,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823) call LoadCardDataToBuffer1_FromDeckIndex ld c, $00 ld b, $0d - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList xor a ld [wCardPageNumber], a ld de, wLoadedCard1Move1Name @@ -905,7 +905,7 @@ CheckIfEnoughEnergies: ; 488f (1:488f) add a ld e, a ld d, $0 - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList add hl, de ld d, [hl] ; card number within the deck (0 to 59) inc hl diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index a35081d..840307f 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -58,7 +58,7 @@ PointerTable_14000: ; 14000 (05:4000) Func_14226: ; 14226 (5:4226) call CreateHandCardList - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList .check_for_next_pokemon ld a, [hli] ldh [hTempCardIndex_ff98], a diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index 487814f..a30e33c 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -5,7 +5,7 @@ Func_200e5: ; 200e5 (8:40e5) ld [$ce18], a call CreateHandCardList - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList ld de, wHandCardBuffer call CopyBuffer ld hl, wHandCardBuffer @@ -86,7 +86,7 @@ Func_200e5: ; 200e5 (8:40e5) and $8 jp z, $40f7 call CreateHandCardList - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList ld de, $cf68 call $697b ld hl, $cf68 diff --git a/src/engine/home.asm b/src/engine/home.asm index cadfb50..d502bac 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2972,7 +2972,7 @@ PowersOf2: db $01, $02, $04, $08, $10, $20, $40, $80 ; 0x11bf -; fill wDuelCardOrAttackList with the turn holder's discard pile cards (their 0-59 deck index) +; fill wDuelTempList with the turn holder's discard pile cards (their 0-59 deck index) ; return carry if the turn holder has no cards in the discard pile CreateDiscardPileCardList: ; 11bf (0:11bf) ldh a, [hWhoseTurn] @@ -2982,7 +2982,7 @@ CreateDiscardPileCardList: ; 11bf (0:11bf) ld a, DUELVARS_DECK_CARDS - 1 add [hl] ; point to last card in discard pile ld l, a - ld de, wDuelCardOrAttackList + ld de, wDuelTempList inc b jr .begin_loop .next_card_loop @@ -3002,7 +3002,7 @@ CreateDiscardPileCardList: ; 11bf (0:11bf) ret ; 0x11df -; fill wDuelCardOrAttackList with the turn holder's remaining deck cards (their 0-59 deck index) +; fill wDuelTempList with the turn holder's remaining deck cards (their 0-59 deck index) ; return carry if the turn holder has no cards left in the deck CreateDeckCardList: ; 11df (0:11df) ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK @@ -3017,7 +3017,7 @@ CreateDeckCardList: ; 11df (0:11df) add DUELVARS_DECK_CARDS ld l, a ; l = DUELVARS_DECK_CARDS + [DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK] inc b - ld de, wDuelCardOrAttackList + ld de, wDuelTempList jr .begin_loop .next_card ld a, [hli] @@ -3033,12 +3033,12 @@ CreateDeckCardList: ; 11df (0:11df) ret .no_cards_left_in_deck ld a, $ff - ld [wDuelCardOrAttackList], a + ld [wDuelTempList], a scf ret ; 0x120a -; fill wDuelCardOrAttackList with the turn holder's energy cards +; fill wDuelTempList with the turn holder's energy cards ; in the arena or in a bench slot (their 0-59 deck index). ; if a == 0: search in CARD_LOCATION_ARENA ; if a != 0: search in CARD_LOCATION_BENCH_[A] @@ -3046,7 +3046,7 @@ CreateDeckCardList: ; 11df (0:11df) CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) or CARD_LOCATION_PLAY_AREA ld c, a - ld de, wDuelCardOrAttackList + ld de, wDuelTempList ld a, DUELVARS_CARD_LOCATIONS call GetTurnDuelistVariable .next_card_loop @@ -3059,7 +3059,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) and 1 << TYPE_ENERGY_F jr z, .skip_card ; jump if Pokemon or trainer card ld a, l - ld [de], a ; add to wDuelCardOrAttackList + ld [de], a ; add to wDuelTempList inc de .skip_card inc l @@ -3069,7 +3069,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) ; all cards checked ld a, $ff ld [de], a - ld a, [wDuelCardOrAttackList] + ld a, [wDuelTempList] cp $ff jr z, .no_energies_found or a @@ -3079,7 +3079,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a) ret ; 0x123b -; fill wDuelCardOrAttackList with the turn holder's hand cards (their 0-59 deck index) +; fill wDuelTempList with the turn holder's hand cards (their 0-59 deck index) ; return carry if the turn holder has no cards in hand CreateHandCardList: ; 123b (0:123b) call FindLastCardInHand @@ -3110,7 +3110,7 @@ CreateHandCardList: ; 123b (0:123b) ; 0x1258 ; sort the turn holder's hand cards by ID (highest to lowest ID) -; makes use of wDuelCardOrAttackList +; makes use of wDuelTempList SortHandCardsByID: ; 1258 (0:1258) call FindLastCardInHand .loop @@ -3121,7 +3121,7 @@ SortHandCardsByID: ; 1258 (0:1258) jr nz, .loop ld a, $ff ld [de], a - call SortCardsInDuelCardOrAttackListByID + call SortCardsInDuelTempListByID call FindLastCardInHand .loop2 ld a, [de] @@ -3135,7 +3135,7 @@ SortHandCardsByID: ; 1258 (0:1258) ; returns: ; b = turn holder's number of cards in hand (DUELVARS_NUMBER_OF_CARDS_IN_HAND) ; hl = pointer to turn holder's last (newest) card in DUELVARS_HAND -; de = wDuelCardOrAttackList +; de = wDuelTempList FindLastCardInHand: ; 1271 (0:1271) ldh a, [hWhoseTurn] ld h, a @@ -3144,7 +3144,7 @@ FindLastCardInHand: ; 1271 (0:1271) ld a, DUELVARS_HAND - 1 add [hl] ld l, a - ld de, wDuelCardOrAttackList + ld de, wDuelTempList ret ; shuffles the deck by swapping the position of each card with the position of another random card @@ -3188,12 +3188,12 @@ ShuffleCards: ; 127f (0:127f) ; 0x12a3 ; sort a $ff-terminated list of deck index cards by ID (lowest to highest ID). -; the list is wDuelCardOrAttackList. -SortCardsInDuelCardOrAttackListByID: ; 12a3 (0:12a3) +; the list is wDuelTempList. +SortCardsInDuelTempListByID: ; 12a3 (0:12a3) ld hl, hTempListPtr_ff99 - ld [hl], LOW(wDuelCardOrAttackList) + ld [hl], LOW(wDuelTempList) inc hl - ld [hl], HIGH(wDuelCardOrAttackList) + ld [hl], HIGH(wDuelTempList) jr SortCardsInListByID_CheckForListTerminator ; sort a $ff-terminated list of deck index cards by ID (lowest to highest ID). @@ -3289,13 +3289,13 @@ GetCardIDFromDeckIndex_bc: ; 12fa (0:12fa) ret ; 0x1303 -; return [wDuelCardOrAttackList + a] in a and in hTempCardIndex_ff98 +; return [wDuelTempList + a] in a and in hTempCardIndex_ff98 Func_1303: ; 1303 (0:1303) push hl push de ld e, a ld d, $0 - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList add hl, de ld a, [hl] ldh [hTempCardIndex_ff98], a @@ -3304,14 +3304,14 @@ Func_1303: ; 1303 (0:1303) ret ; 0x1312 -; given the deck index (0-59) of a card in [wDuelCardOrAttackList + a], return: +; given the deck index (0-59) of a card in [wDuelTempList + a], return: ; - the id of the card with that deck index in register de -; - [wDuelCardOrAttackList + a] in hTempCardIndex_ff98 and in register a -GetCardInList: ; 1312 (0:1312) +; - [wDuelTempList + a] in hTempCardIndex_ff98 and in register a +GetCardInDuelTempList: ; 1312 (0:1312) push hl ld e, a ld d, $0 - ld hl, wDuelCardOrAttackList + ld hl, wDuelTempList add hl, de ld a, [hl] ldh [hTempCardIndex_ff98], a @@ -3334,7 +3334,56 @@ GetCardIDFromDeckIndex: ; 1324 (0:1324) ret ; 0x132f - INCROM $132f, $1362 +; remove card c from wDuelTempList (it contains a $ff-terminated list of deck indexes) +RemoveCardFromDuelTempList: ; 132f (0:132f) + push hl + push de + push bc + ld hl, wDuelTempList + ld e, l + ld d, h + ld c, a + ld b, $00 +.next + ld a, [hli] + cp $ff + jr z, .end_of_list + cp c + jr z, .match + ld [de], a + inc de + inc b +.match + jr .next +.end_of_list + ld [de], a + ld a, b + or a + jr nz, .done + scf +.done + pop bc + pop de + pop hl + ret +; 0x1351 + +; return the number of cards in wDuelTempList in a +CountCardsInDuelTempList: ; 1351 (0:1351) + push hl + push bc + ld hl, wDuelTempList + ld b, -1 +.loop + inc b + ld a, [hli] + cp $ff + jr nz, .loop + ld a, b + pop bc + pop hl + ret +; 0x1362 ; returns, in register a, the id of the card with the deck index (0-59) specified in register a _GetCardIDFromDeckIndex: ; 1362 (0:1362) @@ -3990,7 +4039,7 @@ Func_1730: ; 1730 (0:1730) inc hl ld [hl], d ld b, $0 - ld a, [wccc1] + ld a, [wDamageEffectiveness] ld c, a ld a, DUELVARS_ARENA_CARD_HP call GetNonTurnDuelistVariable @@ -4243,7 +4292,7 @@ Func_195c: ; 195c (0:195c) ld a, [wTempTurnDuelistCardID] ld [wTempNonTurnDuelistCardID], a bank1call ApplyDamageModifiers_DamageToSelf ; switch to bank 1, but call a home func - ld a, [wccc1] + ld a, [wDamageEffectiveness] ld c, a ld b, $0 ld a, DUELVARS_ARENA_CARD_HP @@ -4263,7 +4312,7 @@ Func_195c: ; 195c (0:195c) ; return resulting damage in de ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994) xor a - ld [wccc1], a + ld [wDamageEffectiveness], a ld hl, wDamage ld a, [hli] or [hl] @@ -4280,7 +4329,7 @@ ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994) jr z, .safe res 7, d ; cap at 2^15 xor a - ld [wccc1], a + ld [wDamageEffectiveness], a call HandleDoubleDamageSubstatus jr .check_pluspower_and_defender .safe @@ -4299,8 +4348,8 @@ ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994) jr z, .not_weak sla e rl d - ld hl, wccc1 - set 1, [hl] + ld hl, wDamageEffectiveness + set WEAKNESS, [hl] .not_weak call SwapTurn call GetArenaCardResistance @@ -4311,8 +4360,8 @@ ApplyDamageModifiers_DamageToTarget: ; 1994 (0:1994) add hl, de ld e, l ld d, h - ld hl, wccc1 - set 2, [hl] + ld hl, wDamageEffectiveness + set RESISTANCE, [hl] .check_pluspower_and_defender ld b, CARD_LOCATION_ARENA call ApplyAttachedPluspower @@ -4348,7 +4397,7 @@ InvertedPowersOf2: ; 1a1a (0:1a1a) ; return resulting damage in de ApplyDamageModifiers_DamageToSelf: ; 1a22 (0:1a22) xor a - ld [wccc1], a + ld [wDamageEffectiveness], a ld hl, wDamage ld a, [hli] or [hl] @@ -4365,8 +4414,8 @@ ApplyDamageModifiers_DamageToSelf: ; 1a22 (0:1a22) jr z, .not_weak sla e rl d - ld hl, wccc1 - set 1, [hl] + ld hl, wDamageEffectiveness + set WEAKNESS, [hl] .not_weak call GetArenaCardResistance and b @@ -4375,8 +4424,8 @@ ApplyDamageModifiers_DamageToSelf: ; 1a22 (0:1a22) add hl, de ld e, l ld d, h - ld hl, wccc1 - set 2, [hl] + ld hl, wDamageEffectiveness + set RESISTANCE, [hl] .not_resistant ld b, CARD_LOCATION_ARENA call ApplyAttachedPluspower @@ -8936,7 +8985,31 @@ GetFloorObjectFromPos: ; 3927 (0:3927) ret ; 0x392e - INCROM $392e, $3946 +SetFloorObjectFromPos: ; 392e (0:392e) + push hl + push af + call FindFloorTileFromPos + pop af + ld [hl], a + pop hl + ret +; 0x3937 + +UpdateFloorObjectFromPos: ; 3937 (0:3937) + push hl + push bc + push de + cpl + ld e, a + call FindFloorTileFromPos + ld a, [hl] + and e + ld [hl], a + pop de + pop bc + pop hl + ret +; 0x3946 ; puts a floor tile in hl given coords in bc (x,y. measured in tiles) FindFloorTileFromPos: ; 3946 (0:3946) @@ -8965,17 +9038,30 @@ Func_395a: ; 395a (0:395a) ret Unknown_396b: ; 396b (0:396b) - INCROM $396b, $3973 + db $00, -$01, $01, $00, $00, $01, -$01, $00 ; Movement offsets for scripted movements ScriptedMovementOffsetTable: ; 3973 (0:3973) - db $00, -$02 ; move 2 tiles up - db $02, $00 ; move 2 tiles right - db $00, $02 ; move 2 tiles down - db -$02, $00 ; move 2 tiles left + db 0, -2 ; move 2 tiles up + db 2, 0 ; move 2 tiles right + db 0, 2 ; move 2 tiles down + db -2, 0 ; move 2 tiles left Unknown_397b: ; 397b (0:397b) - INCROM $397b, $3997 + dw $0323 + dw $0323 + dw $0324 + dw $0325 + dw $0326 + dw $0327 + dw $0328 + dw $0329 + dw $032a + dw $032b + dw $032c + dw $032d + dw $032e + dw $032f Func_3997: ; 3997 (0:3997) ldh a, [hBankROM] @@ -9043,7 +9129,20 @@ Func_39c3: ; 39c3 (0:39c3) ret ; 0x39ea - INCROM $39ea, $39fc +Func_39ea: ; 39ea (0:39ea) + push bc + ldh a, [hBankROM] + push af + ld a, $03 + call BankswitchHome + ld a, [bc] + ld c, a + pop af + call BankswitchHome + ld a, c + pop bc + ret +; 0x39fc Func_39fc: ; 39fc (0:39fc) push hl @@ -9355,7 +9454,16 @@ ResetDoFrameFunction: ; 3bdb (0:3bdb) ret ; 0x3be4 - INCROM $3be4, $3bf5 +Func_3be4: ; 3be4 (0:3be4) + ldh a, [hBankROM] + push af + ld a, [wd4c6] + call BankswitchHome + call Func_08de + pop af + call BankswitchHome + ret +; 0x3bf5 Func_3bf5: ; 3bf5 (0:3bf5) ldh a, [hBankROM] diff --git a/src/wram.asm b/src/wram.asm index 5d01d58..4dafdf9 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -282,8 +282,9 @@ wOpponentDeck:: ; c480 wc500:: ; c500 ds $10 -; this holds a list of cards (e.g. in hand or in bench) or the attack list of a pokemon card -wDuelCardOrAttackList:: ; c510 +; this holds an $ff-terminated list of card deck indexes (e.g. cards in hand or in bench) +; or (less often) the attack list of a Pokemon card +wDuelTempList:: ; c510 ds $80 ; this is kept updated with some default text that is used @@ -643,7 +644,7 @@ wccbc:: wccbf:: ; ccbf ds $2 -wccc1:: ; ccc1 +wDamageEffectiveness:: ; ccc1 ds $1 ; used in damage related functions @@ -1041,10 +1042,19 @@ wd131:: ; d131 wd132:: ; d132 ds $1 +UNION + wBoosterViableCardList:: ; d133 -wFloorObjectMap:: ; map of the current room with unpassable objects (walls, NPCs, etc). Might be a permission map ds $100 +NEXTU + +; map of the current room with unpassable objects (walls, NPCs, etc). Might be a permission map +wFloorObjectMap:: + ds $100 + +ENDU + wd233:: ; d233 ds $1 -- cgit v1.2.3 From 51b46f5e4ebbfb2d99cca76ff610b3824e98da13 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sun, 25 Feb 2018 18:25:57 +0100 Subject: Give generic labels to all used wram addresses and use correct space allocation (default to ds when size of address unknown) --- src/audio/music1.asm | 2 +- src/audio/music2.asm | 2 +- src/engine/bank1.asm | 24 +-- src/engine/bank2.asm | 134 ++++++------- src/engine/bank20.asm | 44 ++--- src/engine/bank3.asm | 122 ++++++------ src/engine/bank4.asm | 26 +-- src/engine/bank5.asm | 34 ++-- src/engine/bank6.asm | 2 +- src/engine/bank7.asm | 12 +- src/engine/bank8.asm | 40 ++-- src/engine/home.asm | 378 +++++++++++++++++++++++++++-------- src/wram.asm | 534 +++++++++++++++++++++++++++++++++++++++++++------- 13 files changed, 981 insertions(+), 373 deletions(-) diff --git a/src/audio/music1.asm b/src/audio/music1.asm index 9db9632..86d76f4 100644 --- a/src/audio/music1.asm +++ b/src/audio/music1.asm @@ -690,7 +690,7 @@ Music1_note: ; f448c (3d:448c) add e jr .asm_f44c1 .asm_f44c7 - ld hl, $ddbb + ld hl, wddbb add hl, bc ld [hl], a pop de diff --git a/src/audio/music2.asm b/src/audio/music2.asm index d329326..41d58f8 100644 --- a/src/audio/music2.asm +++ b/src/audio/music2.asm @@ -690,7 +690,7 @@ Music2_note: ; f448c (3d:448c) add e jr .asm_f84c1 .asm_f84c7 - ld hl, $ddbb + ld hl, wddbb add hl, bc ld [hl], a pop de diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index 597cf69..a07ed92 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -67,7 +67,7 @@ Func_407a: ; 407a (1:407a) ld a, l ld [wcbe5], a ld a, h - ld [wcbe6], a + ld [wcbe5 + 1], a call ClearJoypad ld a, [wDuelTheme] call PlaySong @@ -112,7 +112,7 @@ StartDuel: ; 409f (1:409f) ld a, l ld [wcbe5], a ld a, h - ld [wcbe6], a + ld [wcbe5 + 1], a xor a ld [wCurrentDuelMenuItem], a call Func_420b @@ -453,7 +453,7 @@ Func_434e: ; 434e (1:434e) jr c, .no_cards_in_hand call $559a ld a, $09 - ld [$cbd6], a + ld [wcbd6], a jp $55f0 .no_cards_in_hand ldtx hl, NoCardsInHandText @@ -734,7 +734,7 @@ Func_478b: ; 478b (1:478b) add a ld e, a ld d, $00 - ld hl, $c511 + ld hl, wDuelTempList + 1 add hl, de ld a, [hl] or a @@ -1308,7 +1308,7 @@ LoadPlayerDeck: ; 6793 (1:6793) ; called multiple times during one ai turn AIMakeDecision: ; 67be (1:67be) ldh [hAIActionTableIndex], a - ld hl, $cbf9 + ld hl, wcbf9 ld a, [hl] ld [hl], $0 or a @@ -1321,12 +1321,12 @@ AIMakeDecision: ; 67be (1:67be) .skip_delay ldh a, [hAIActionTableIndex] - ld hl, $cbe1 + ld hl, wcbe1 ld [hl], $0 ld hl, AIActionTable call JumpToFunctionInTable ld a, [wDuelFinished] - ld hl, $cbe1 + ld hl, wcbe1 or [hl] jr nz, .turn_ended ld a, [wcbf9] @@ -1603,7 +1603,7 @@ _TossCoin: ; 71ad (1:71ad) jr z, .asm_727c ld b, $5b ld c, $30 - ld hl, $cd9d + ld hl, wcd9d inc [hl] .asm_727c @@ -1650,18 +1650,18 @@ _TossCoin: ; 71ad (1:71ad) call FillRectangle .asm_72b9 - ld hl, $cd9f + ld hl, wcd9f inc [hl] ld a, [wcd9e] or a jr z, .asm_72dc ld a, [hl] - ld hl, $cd9c + ld hl, wcd9c cp [hl] call z, WaitForWideTextBoxInput call $7324 ld a, [wcd9c] - ld hl, $cd9d + ld hl, wcd9d or [hl] jr nz, .asm_72e2 call z, WaitForWideTextBoxInput @@ -1674,7 +1674,7 @@ _TossCoin: ; 71ad (1:71ad) .asm_72e2 call Func_3b31 ld a, [wcd9f] - ld hl, $cd9c + ld hl, wcd9c cp [hl] jp c, .asm_7204 call Func_0f58 diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 9bac4c3..8159f40 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -58,7 +58,7 @@ Func_8d56: ; 8d56 (2:4d56) INCROM $8d78, $8d9d Func_8d9d: ; 8d9d (2:4d9d) - ld de, $cfd1 + ld de, wcfd1 ld b, $7 .asm_8da2 ld a, [hli] @@ -129,17 +129,17 @@ Func_8e05: ; 8e05 (2:4e05) Func_8e1f: ; 8e1f (2:4e1f) push de - ld de, $cfb9 + ld de, wcfb9 call Func_92b4 pop de - ld hl, $cf17 + ld hl, wcf17 call Func_8cd4 ld a, $9 - ld hl, $cebb + ld hl, wcebb call Func_9843 ld a, $3c ld [wcecc], a - ld hl, $cebb + ld hl, wcebb ld [hl], a call Func_9e41 ret @@ -168,24 +168,24 @@ Func_8e42: ; 8e42 (2:4e42) call GetPointerToDeckCards ld e, l ld d, h - ld hl, $cf17 + ld hl, wcf17 call Func_8cd4 ld a, $14 - ld hl, $cfb9 + ld hl, wcfb9 call Func_9843 - ld de, $cfb9 + ld de, wcfb9 call GetPointerToDeckName call Func_92b4 call Func_9345 jr nc, .asm_8ec4 call EnableSRAM - ld hl, $cf17 + ld hl, wcf17 call Func_910a call GetPointerToDeckCards call Func_9152 ld e, l ld d, h - ld hl, $cf17 + ld hl, wcf17 ld b, $3c .asm_8ea9 ld a, [hli] @@ -196,7 +196,7 @@ Func_8e42: ; 8e42 (2:4e42) call GetPointerToDeckName ld d, h ld e, l - ld hl, $cfb9 + ld hl, wcfb9 call Func_92ad call GetPointerToDeckName ld a, [hl] @@ -215,16 +215,16 @@ Func_8e42: ; 8e42 (2:4e42) jp Func_8dbc .asm_8edb ld a, $14 - ld hl, $cfb9 + ld hl, wcfb9 call Func_9843 - ld de, $cfb9 + ld de, wcfb9 call GetPointerToDeckName call Func_92b4 call Func_8f05 call GetPointerToDeckName ld d, h ld e, l - ld hl, $cfb9 + ld hl, wcfb9 call Func_92b4 ld a, $ff call Func_9168 @@ -252,7 +252,7 @@ Func_8f05: ; 8f05 (2:4f05) .asm_8f23 ld a, $14 ld bc, $0401 - ld de, $cfb9 + ld de, wcfb9 farcall Func_1ad89 ld a, [wcfb9] or a @@ -269,7 +269,7 @@ Func_8f38: ; 8f38 (2:4f38) ld l, a ld de, wDefaultText call Func_0663 - ld hl, $cfb9 + ld hl, wcfb9 ld [hl], $6 inc hl ld [hl], $44 @@ -361,7 +361,7 @@ Func_8fe8: ; 8fe8 (2:4fe8) Func_8ff2: ; 8ff2 (2:4ff2) ld a, [wceb1] - ld hl, $ceb2 + ld hl, wceb2 ld b, $0 ld c, a add hl, bc @@ -475,7 +475,7 @@ Func_9065: ; 9065 (2:5065) jr z, .asm_90ca call PlaySFX .asm_90ca - ld hl, $cea3 + ld hl, wcea3 ld a, [hl] inc [hl] and $f @@ -582,7 +582,7 @@ Func_9168: ; 9168 (2:5168) ld hl, Unknown_9242 call Func_2c08 ld a, $4 - ld hl, $ceb2 + ld hl, wceb2 call Func_9843 ld a, [hffb5] bit 0, a @@ -642,7 +642,7 @@ Func_9168: ; 9168 (2:5168) ld b, $0 ld d, $2 .asm_921f - ld hl, $ceb2 + ld hl, wceb2 add hl, bc ld a, [hl] or a @@ -789,15 +789,15 @@ Func_b177: ; b177 (2:7177) Func_b19d: ; b19d (2:719d) xor a - ld [$cea1], a + ld [wcea1], a ld de, CheckForCGB - ld hl, $d0a2 + ld hl, wd0a2 ld [hl], e inc hl ld [hl], d call $7379 ld a, $3c - ld [$d0a5], a + ld [wd0a5], a xor a .asm_b1b3 ld hl, $76fb @@ -813,9 +813,9 @@ Func_b19d: ; b19d (2:719d) cp $ff ret z ld b, a - ld a, [$cea1] + ld a, [wcea1] add b - ld [$d088], a + ld [wd088], a call Func_905a call DrawWideTextBox ld hl, $7274 @@ -825,7 +825,7 @@ Func_b19d: ; b19d (2:719d) jp nc, $71e7 cp $ff jr nz, .asm_b1fa - ld a, [$d086] + ld a, [wd086] jp $71b3 .asm_b1fa @@ -838,17 +838,17 @@ Func_b19d: ; b19d (2:719d) call $735b jr nc, .asm_b216 call $7592 - ld a, [$d086] + ld a, [wd086] jp c, $71b3 jr .asm_b25e .asm_b216 ld hl, $0272 call YesOrNoMenuWithText - ld a, [$d086] + ld a, [wd086] jr c, .asm_b1b3 call $7592 - ld a, [$d086] + ld a, [wd086] jp c, $71b3 jr .asm_b25e @@ -858,14 +858,14 @@ Func_b19d: ; b19d (2:719d) call $735b jr c, .asm_b240 call $76ca - ld a, [$d086] + ld a, [wd086] jp c, $71b3 jr .asm_b25e .asm_b240 ld hl, WaitForVBlank call DrawWideTextBox_WaitForInput - ld a, [$d086] + ld a, [wd086] jp $71b3 .asm_b24c @@ -874,16 +874,16 @@ Func_b19d: ; b19d (2:719d) call $735b jr c, .asm_b240 call $77c6 - ld a, [$d086] + ld a, [wd086] jp nc, $71b3 .asm_b25e - ld a, [$d087] - ld [$cea1], a + ld a, [wd087] + ld [wcea1], a call $7379 call $7704 call $7545 - ld a, [$d086] + ld a, [wd086] jp $71b3 .asm_b273 @@ -899,28 +899,28 @@ Func_ba04: ; ba04 (2:7a04) ld c, a ld b, $0 add hl, bc - ld de, $d0a2 + ld de, wd0a2 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a xor a - ld [$cea1], a + ld [wcea1], a call $7b97 ld a, $5 - ld [$d0a5], a + ld [wd0a5], a xor a ld hl, $7b6e call InitializeCursorParameters ldtx hl, PleaseSelectDeckText call DrawWideTextBox_PrintText ld a, $5 - ld [$cea9], a + ld [wcea9], a ld hl, $73fe ld d, h ld a, l - ld hl, $cece + ld hl, wcece ld [hli], a ld [hl], d .asm_ba40 @@ -935,11 +935,11 @@ Func_ba04: ; ba04 (2:7a04) ldh a, [hButtonsPressed2] and START jr z, .asm_ba40 - ld a, [$cea1] - ld [$d087], a + ld a, [wcea1] + ld [wd087], a ld b, a ld a, [wCurMenuItem] - ld [$d086], a + ld [wd086], a add b ld c, a inc a @@ -947,7 +947,7 @@ Func_ba04: ; ba04 (2:7a04) ld [wceb1], a sla c ld b, $0 - ld hl, $d00d + ld hl, wd00d add hl, bc call $7653 ld a, [hli] @@ -968,25 +968,25 @@ Func_ba04: ; ba04 (2:7a04) call $7653 call Func_8e1f call $7644 - ld a, [$d087] - ld [$cea1], a + ld a, [wd087] + ld [wcea1], a call $7b97 - ld a, [$d086] + ld a, [wd086] jp $7a25 .asm_baa3 call DrawCursor2 - ld a, [$cea1] - ld [$d087], a + ld a, [wcea1] + ld [wd087], a ld a, [wCurMenuItem] - ld [$d086], a + ld [wd086], a ldh a, [hCurrentMenuItem] cp $ff jp z, $7b0d - ld [$d088], a + ld [wd088], a call Func_905a xor a - ld [$ce5e], a + ld [wce5e], a call DrawWideTextBox ld hl, $7b76 call Func_2c08 @@ -995,7 +995,7 @@ Func_ba04: ; ba04 (2:7a04) jp nc, $7acc cp $ff jr nz, .asm_badf - ld a, [$d086] + ld a, [wd086] jp $7a25 .asm_badf @@ -1008,38 +1008,38 @@ Func_ba04: ; ba04 (2:7a04) call $7653 call $77c6 call $7644 - ld a, [$d086] + ld a, [wd086] jp nc, $7a25 - ld a, [$d087] - ld [$cea1], a + ld a, [wd087] + ld [wcea1], a call $7b97 - ld a, [$d086] + ld a, [wd086] jp $7a25 .asm_bb09 cp $1 jr nz, .asm_bb12 xor a - ld [$d0a4], a + ld [wd0a4], a ret .asm_bb12 - ld a, [$cea1] - ld [$d087], a + ld a, [wcea1] + ld [wd087], a ld b, a ld a, [wCurMenuItem] - ld [$d086], a + ld [wd086], a add b ld c, a ld [wceb1], a sla c ld b, $0 - ld hl, $d00d + ld hl, wd00d add hl, bc push hl - ld hl, $d0aa + ld hl, wd0aa add hl, bc - ld bc, $cfda + ld bc, wcfda ld a, [hli] ld [bc], a inc bc @@ -1066,10 +1066,10 @@ Func_ba04: ; ba04 (2:7a04) xor a call $6dfe call $7644 - ld a, [$d087] - ld [$cea1], a + ld a, [wd087] + ld [wcea1], a call $7b97 - ld a, [$d086] + ld a, [wd086] jp $7a25 ; 0xbb6e diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index c21deca..5a0367c 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -15,11 +15,11 @@ Func_80028: ; 80028 (20:4028) Func_80077: ; 80077 (20:4077) ld a, $1 - ld [$d292], a + ld [wd292], a jr .asm_80082 xor a - ld [$d292], a + ld [wd292], a .asm_80082 push hl @@ -32,22 +32,22 @@ Func_80077: ; 80077 (20:4077) ld [hl], d call $43b9 ld a, [wd4c6] - ld [$d23d], a - ld de, $d23e + ld [wd23d], a + ld de, wd23e ld bc, $0006 call Func_3bf5 ld l, e ld h, d ld a, [hli] - ld [$d12f], a + ld [wd12f], a ld a, [hli] - ld [$d130], a + ld [wd130], a ld a, [hli] - ld [$d23a], a + ld [wd23a], a ld a, [hli] - ld [$d23b], a + ld [wd23b], a ld a, [hli] - ld [$d23c], a + ld [wd23c], a call $40bd pop de pop bc @@ -188,11 +188,11 @@ asm_8027c ld b, a ld a, [wd4c7] ld c, a - ld hl, $d4c2 + ld hl, wd4c2 ld e, [hl] inc hl ld d, [hl] - ld hl, $d4c4 + ld hl, wd4c4 ld a, [hli] ld h, [hl] ld l, a @@ -251,7 +251,7 @@ Func_80b7a: ; 80b7a (20:4b7a) Func_80ba4: ; 80ba4 (20:4ba4) push af xor a - ld [$d292], a + ld [wd292], a pop af push hl push bc @@ -259,15 +259,15 @@ Func_80ba4: ; 80ba4 (20:4ba4) ld c, a ld a, [wd131] push af - ld a, [$d23d] + ld a, [wd23d] push af - ld a, [$d12f] + ld a, [wd12f] push af - ld a, [$d130] + ld a, [wd130] push af - ld a, [$d23a] + ld a, [wd23a] push af - ld a, [$d23b] + ld a, [wd23b] push af ld b, $0 ld hl, wd323 @@ -310,15 +310,15 @@ Func_80ba4: ; 80ba4 (20:4ba4) add hl, bc farcall $3, $438f pop af - ld [$d23b], a + ld [wd23b], a pop af - ld [$d23a], a + ld [wd23a], a pop af - ld [$d130], a + ld [wd130], a pop af - ld [$d12f], a + ld [wd12f], a pop af - ld [$d23d], a + ld [wd23d], a pop af ld [wd131], a pop de diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index b3a055d..6577a69 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -55,12 +55,12 @@ LoadMap: ; c000 (3:4000) call DoFrameIfLCDEnabled call SetScreenScroll call Func_c0ce - ld hl, $d0b4 + ld hl, wd0b4 ld a, [hl] and $d0 jr z, .asm_c092 call DoFrameIfLCDEnabled - ld hl, $d0b4 + ld hl, wd0b4 ld a, [hl] bit 4, [hl] jr z, .asm_c0b6 @@ -120,7 +120,7 @@ Func_c0f1: ; c0f1 (3:40f1) jr Func_c10a Func_c10a: ; c10a (3:410a) - ld hl, $d0c6 + ld hl, wd0c6 ld a, [hli] ld h, [hl] ld l, a @@ -147,13 +147,13 @@ CloseDialogueBox: ; c111 (3:4111) Func_c135: ; c135 (3:4135) push hl farcall Func_80028 - ld hl, $d0c1 + ld hl, wd0c1 res 0, [hl] pop hl ret Func_c141: ; c141 (3:4141) - ld hl, $d0c2 + ld hl, wd0c2 ld a, [hl] or a ret z @@ -352,7 +352,7 @@ Func_c280: ; c280 (3:4280) Func_c29b: ; c29b (3:429b) push hl - ld hl, $d0c1 + ld hl, wd0c1 or [hl] ld [hl], a pop hl @@ -403,14 +403,14 @@ Func_c2db: ; c2db (3:42db) farcall Func_80000 pop af ld [wd111], a - ld hl, $d0c1 + ld hl, wd0c1 res 0, [hl] call Func_c34e farcall Func_12c5e farcall Func_1c6f8 - ld hl, $d0c1 + ld hl, wd0c1 res 7, [hl] - ld hl, $d10f + ld hl, wd10f ld a, [hli] or [hl] jr z, .asm_c323 @@ -437,9 +437,9 @@ Func_c335: ; c335 (3:4335) ld [wd10c], a ld a, [wOBP1] ld [wd10d], a - ld hl, $cb30 - ld de, $d0cc - ld bc, $0040 + ld hl, wObjectPalettesCGB + ld de, wd0cc + ld bc, 8 * CGB_PAL_SIZE call CopyDataHLtoDE_SaveRegisters ret @@ -448,9 +448,9 @@ Func_c34e: ; c34e (3:434e) ld [wOBP0], a ld a, [wd10d] ld [wOBP1], a - ld hl, $d0cc - ld de, $cb30 - ld bc, $0040 + ld hl, wd0cc + ld de, wObjectPalettesCGB + ld bc, 8 * CGB_PAL_SIZE call CopyDataHLtoDE_SaveRegisters call SetFlushAllPalettes ret @@ -760,7 +760,7 @@ StartScriptedMovement: ; c607 (3:4607) push bc ld a, [wd336] ld [wWhichSprite], a - ld a, [$d339] + ld a, [wd339] call FindScriptedMovementWithOffset call AttemptScriptedMovement pop bc @@ -840,9 +840,9 @@ Func_c66c: ; c66c (3:466c) Func_c687: ; c687 (3:4687) push bc - ld a, [$d33a] + ld a, [wd33a] ld c, a - ld a, [$d339] + ld a, [wd339] call Func_c694 pop bc ret @@ -887,7 +887,7 @@ Func_c694: ; c694 (3:4694) Func_c6cc: ; c6cc (3:46cc) push hl - ld hl, $d332 + ld hl, wd332 add [hl] ld [hl], a pop hl @@ -895,7 +895,7 @@ Func_c6cc: ; c6cc (3:46cc) Func_c6d4: ; c6d4 (3:46d4) push hl - ld hl, $d333 + ld hl, wd333 add [hl] ld [hl], a pop hl @@ -929,11 +929,11 @@ Func_c6f7: ; c6f7 (3:46f7) Func_c70d: ; c70d (3:470d) push hl - ld hl, $d0bb + ld hl, wd0bb ld a, [wCurMap] cp [hl] jr z, .asm_c71c - ld hl, $d0b4 + ld hl, wd0b4 set 4, [hl] .asm_c71c pop hl @@ -1105,14 +1105,14 @@ Func_c891: ; c891 (3:4891) ld a, [wd0c1] bit 0, a jr z, .asm_c8a1 - ld hl, $d3b9 + ld hl, wd3b9 ld a, [hli] or [hl] call nz, Func_c135 .asm_c8a1 xor a - ld hl, $d3b9 + ld hl, wd3b9 ld [hli], a ld [hl], a pop hl @@ -1132,7 +1132,7 @@ Func_c8ba: ; c8ba (3:48ba) ld a, [wd0c1] bit 0, a jr z, .asm_c8d4 - ld hl, $d3b9 + ld hl, wd3b9 ld a, [hli] cp e jr nz, .asm_c8d1 @@ -1144,7 +1144,7 @@ Func_c8ba: ; c8ba (3:48ba) call Func_c135 .asm_c8d4 - ld hl, $d3b9 + ld hl, wd3b9 ld [hl], e inc hl ld [hl], d @@ -1173,7 +1173,7 @@ Func_c8ed: ; c8ed (3:c8ed) jr z, .asm_c90e push hl xor a - ld hl, $d3b9 + ld hl, wd3b9 ld [hli], a ld [hl], a pop hl @@ -1210,7 +1210,7 @@ Func_c926: ; c926 (3:4926) Func_c935: ; c935 (3:4935) push hl - ld hl, $d0c6 + ld hl, wd0c6 ld [hl], c inc hl ld [hl], b @@ -1233,7 +1233,7 @@ Func_c943: ; c943 (3:4943) ld [wd4c5], a ld a, $4 ld [wd4c6], a - ld de, $d3ab + ld de, wd3ab ld bc, $0006 call Func_3bf5 ld a, [wd3ab] @@ -1669,12 +1669,12 @@ GetOWSArgsAfterPointer: ; cca0 (3:4ca0) Func_ccb3: ; ccb3 (3:4cb3) ld a, $ff - ld [$d415], a + ld [wd415], a ret Func_ccb9: ; ccb9 (3:4cb9) xor a - ld [$d415], a + ld [wd415], a ret OWScript_EndScriptLoop1: ; ccbe (3:4cbe) @@ -1724,7 +1724,7 @@ OWScript_AskQuestionJump: ; cce9 (3:4ce9) ld h, b call Func_c8ed ld a, [hCurrentMenuItem] - ld [$d415], a + ld [wd415], a jr c, .asm_ccfe call GetOWSArgs3AfterPointer jr z, .asm_ccfe @@ -1745,7 +1745,7 @@ OWScript_StartBattle: ; cd01 (3:4d01) ld a, [wcc19] cp $ff jr nz, .asm_cd26 - ld a, [$d695] + ld a, [wd695] ld c, a ld b, $0 ld hl, $4d63 @@ -1759,7 +1759,7 @@ OWScript_StartBattle: ; cd01 (3:4d01) ld a, [hl] asm_cd2f ld [wd0c4], a - ld [$cc14], a + ld [wcc14], a push af farcall Func_1c557 ld [wd0c5], a @@ -1773,11 +1773,11 @@ asm_cd2f Func_cd4f: ; cd4f (3:4d4f) call Func_cd66 - ld a, [$d696] + ld a, [wd696] farcall Func_118bf ld a, $16 ld [wMatchStartTheme], a - ld a, [$d696] + ld a, [wd696] jr asm_cd2f Unknown_dd63: ; cd4f (3:4d4f) @@ -1801,7 +1801,7 @@ Func_cd76: ; cd76 (3:4d76) jp IncreaseOWScriptPointerBy1 Func_cd83: ; cd83 (3:4d83) - ld a, [$d415] + ld a, [wd415] or a jr nz, .asm_cd8c call GetOWSArgs3AfterPointer @@ -1826,7 +1826,7 @@ Unknown_cd98: jp IncreaseOWScriptPointerBy7 Func_cda8: ; cda8 (3:4da8) - ld a, [$d415] + ld a, [wd415] or a jr nz, .asm_cdb1 call GetOWSArgs3AfterPointer @@ -1859,7 +1859,7 @@ Func_cdd8: ; cdd8 (3:4dd8) push af ld a, [wd3ab] push af - ld a, [$d696] + ld a, [wd696] ld [wd3ab], a call Func_39c3 call Func_4dd1 @@ -1874,14 +1874,14 @@ Func_cdf5: ; cdf5 (3:4df5) push af ld a, [wd3ab] push af - ld a, [$d696] + ld a, [wd696] ld [wd3ab], a ld a, c - ld [$d3ac], a + ld [wd3ac], a ld a, b - ld [$d3ad], a + ld [wd3ad], a ld a, $2 - ld [$d3ae], a + ld [wd3ae], a ld a, [wd3ab] farcall Func_11857 farcall Func_1c485 @@ -1923,7 +1923,7 @@ Func_ce52: ; ce52 (3:4e52) push af ld a, [wd3ab] push af - ld a, [$d696] + ld a, [wd696] asm_ce5d ld [wd3ab], a call Func_39c3 @@ -2008,7 +2008,7 @@ Func_cee2: ; cee2 (3:4ee2) jr z, .asm_cf09 or a jr nz, .asm_cef0 - ld a, [$d697] + ld a, [wd697] .asm_cef0 push af @@ -2070,7 +2070,7 @@ Func_cf3f: ; cf3f (3:4f3f) ld a, c or a jr nz, .asm_cf46 - ld a, [$d697] + ld a, [wd697] .asm_cf46 call AddCardToCollection @@ -2262,9 +2262,9 @@ Func_d055: ; d055 (3:5055) OWScript_MovePlayer: ; 505c (3:505c) ld a, c - ld [$d339], a + ld [wd339], a ld a, b - ld [$d33a], a + ld [wd33a], a call StartScriptedMovement .asm_d067 call DoFrameIfLCDEnabled @@ -2418,7 +2418,7 @@ Func_d16b: ; d16b (3:516b) ld hl, wTxRam2 add hl, bc push hl - ld a, [$d696] + ld a, [wd696] farcall Func_11893 pop hl ld a, [wd0c8] @@ -2470,7 +2470,7 @@ asm_d1c6 ld d, $0 add hl, de ld a, [hli] - ld [$d697], a + ld [wd697], a ld a, [hli] ld [wTxRam2], a ld a, [hl] @@ -2521,7 +2521,7 @@ Func_d24c: ; d24c (3:524c) ld hl, $525e xor a call Func_d28c - ld a, [$d695] + ld a, [wd695] ld c, a call Func_ca8f halt @@ -2539,7 +2539,7 @@ Func_d271: ; d271 (3:5271) INCROM $d27b, $d28c Func_d28c: ; d28c (3:528c) - ld [$d416], a + ld [wd416], a push hl call Func_c241 call Func_c915 @@ -2566,12 +2566,12 @@ Func_d28c: ; d28c (3:528c) push hl ld h, [hl] ld l, a - ld a, [$d416] + ld a, [wd416] farcall Func_111e9 pop hl inc hl ld a, [hli] - ld [$d417], a + ld [wd417], a push hl .asm_d2c1 @@ -2581,7 +2581,7 @@ Func_d28c: ; d28c (3:528c) ld a, [hCurrentMenuItem] cp e jr z, .asm_d2d9 - ld a, [$d417] + ld a, [wd417] or a jr z, .asm_d2c1 ld e, a @@ -2618,12 +2618,12 @@ Func_d2f6: ; d2f6 (3:52f6) ld hl, $530c xor a call Func_d28c - ld a, [$d694] + ld a, [wd694] ld c, a call Func_ca8f ld [hl], l xor a - ld [$d694], a + ld [wd694], a jp IncreaseOWScriptPointerBy1 ; 0xd30c @@ -2631,9 +2631,9 @@ Func_d2f6: ; d2f6 (3:52f6) Func_d317: ; d317 (3:5317) ld hl, $532b - ld a, [$d694] + ld a, [wd694] call Func_d28c - ld a, [$d694] + ld a, [wd694] ld c, a call Func_ca8f ld [hl], l @@ -2732,7 +2732,7 @@ Func_d3d1: ; d3d1 (3:53d1) jp IncreaseOWScriptPointerBy1 Func_d3d4: ; d3d4 (3:53d4) - ld a, [$d693] + ld a, [wd693] bank1call Func_7576 jp IncreaseOWScriptPointerBy1 @@ -3179,7 +3179,7 @@ Func_f580: ; f580 (3:7580) .asm_f5ac ld [wd3ab], a - ld [$d696], a + ld [wd696], a ret ; 0xf5b3 diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index f6452c5..19d5396 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -109,7 +109,7 @@ BoosterPack_1031b: ; 1031b (4:431b) call DisableLCD call $4000 xor a - ld [wFrameType], a + ld [wTextBoxFrameType], a pop bc push bc ld b, $0 @@ -159,7 +159,7 @@ BoosterPack_1031b: ; 1031b (4:431b) ld a, $1 ld [wVBlankOAMCopyToggle], a ld a, $4 - ld [wFrameType], a + ld [wTextBoxFrameType], a farcall $1, $7599 farcall Func_c1a4 call DoFrameIfLCDEnabled @@ -179,7 +179,7 @@ Duel_Init: ; 103d3 (4:43d3) call DisableLCD call $4000 ld a, $4 - ld [wFrameType], a + ld [wTextBoxFrameType], a lb de, 0, 12 lb bc, 20, 6 call DrawRegularTextBox @@ -484,7 +484,7 @@ LoadOverworldMapSelection: ; 10f61 (4:4f61) ld [wd0bd], a ld a, $0 ld [wd0be], a - ld hl, $d0b4 + ld hl, wd0b4 set 4, [hl] pop bc pop hl @@ -681,7 +681,7 @@ Func_11102: ; 11102 (4:5102) ld [wd341], a ld e, a ld d, $0 - ld hl, $d343 + ld hl, wd343 xor a ld [hli], a bit 7, [hl] @@ -704,7 +704,7 @@ Func_11102: ; 11102 (4:5102) ld [wd345], a ld a, b ld [wd346], a - ld hl, $d344 + ld hl, wd344 ld a, $1 bit 7, [hl] jr z, .asm_1113a @@ -718,7 +718,7 @@ Func_1113e: ; 1113e (4:513e) ld [wd341], a ld e, a ld d, $0 - ld hl, $d345 + ld hl, wd345 xor a ld [hli], a bit 7, [hl] @@ -740,7 +740,7 @@ Func_1113e: ; 1113e (4:513e) ld [wd343], a ld a, b ld [wd344], a - ld hl, $d346 + ld hl, wd346 ld a, $2 bit 7, [hl] jr z, .asm_11175 @@ -784,7 +784,7 @@ Func_11184: ; 11184 (4:5184) ld [wd347], a ld a, e ld [wd348], a - ld hl, $d341 + ld hl, wd341 dec [hl] ret ; 0x111b3 @@ -859,7 +859,7 @@ Func_11857: ; 11857 (4:5857) ld a, [hli] ld [wd3ab], a ld a, [hli] - ld [$d3b3], a + ld [wd3b3], a ld a, [hli] ld [wd3b1], a ld a, [hli] @@ -1324,11 +1324,11 @@ Func_12b13: ; 12b13 (4:6b13) ld [wd4c5], a adc $0 ld [hl], a - ld de, $d23e + ld de, wd23e ld bc, $0004 call Func_3bf5 pop hl - ld de, $d23e + ld de, wd23e ld a, [de] call Func_12b6a inc de @@ -1426,7 +1426,7 @@ Func_12c05: ; 12c05 (4:6c05) ld d, $0 ld a, [wd618] ld c, a - ld hl, $d5d8 + ld hl, wd5d8 or a jr z, .asm_12c22 .asm_12c15 diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm index 840307f..5820a24 100644 --- a/src/engine/bank5.asm +++ b/src/engine/bank5.asm @@ -168,7 +168,7 @@ Func_1468b: ; 1468b (5:468b) call Func_14663 ld a, $f call Func_14663 - ld a, [$ce20] + ld a, [wce20] and $4 jr z, .asm_14776 ld a, $1 @@ -226,23 +226,23 @@ Func_1468b: ; 1468b (5:468b) INCROM $14786, $15636 Func_15636: ; 15636 (5:5636) ld a, $10 - ld hl, $cda5 + ld hl, wcda5 call ZeroData ld a, $5 - ld [$cda6], a + ld [wcda6], a ld a, $ff - ld [$cda5], a + ld [wcda5], a ret Func_15649: ; 15649 (5:5649) - ld a, [$cda6] + ld a, [wcda6] inc a - ld [$cda6], a + ld [wcda6], a xor a - ld [$ce20], a - ld [$cddb], a - ld [$cddc], a - ld [$ce03], a + ld [wce20], a + ld [wcddb], a + ld [wcddc], a + ld [wce03], a ld a, [wcc10] cp $ff jr z, .asm_156b1 @@ -257,11 +257,11 @@ Func_15649: ; 15649 (5:5649) ld a, e cp MEWTWO1 ; I believe this is a check for Mewtwo1's Barrier move jr nz, .asm_156b1 - ld a, [$cda7] + ld a, [wcda7] bit 7, a jr nz, .asm_156aa inc a - ld [$cda7], a + ld [wcda7], a cp $3 jr c, .asm_156c2 ld a, DUELVARS_ARENA_CARD @@ -277,25 +277,25 @@ Func_15649: ; 15649 (5:5649) .asm_156a4 xor a - ld [$cda7], a + ld [wcda7], a jr .asm_156c2 .asm_156aa ld a, $80 - ld [$cda7], a + ld [wcda7], a jr .asm_156c2 .asm_156b1 - ld a, [$cda7] + ld a, [wcda7] bit 7, a jr z, .asm_156be inc a - ld [$cda7], a + ld [wcda7], a jr .asm_156c2 .asm_156be xor a - ld [$cda7], a + ld [wcda7], a .asm_156c2 ret diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm index 9174b84..8f58133 100644 --- a/src/engine/bank6.asm +++ b/src/engine/bank6.asm @@ -99,7 +99,7 @@ Func_199e0: ; 199e0 (6:59e0) ret Func_19a12: ; 19a12 (6:5a12) - ld hl, $cce9 + ld hl, wcce9 ld a, [hli] ld h, [hl] ld l, a diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index 3ca0d2d..156d421 100644 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -149,7 +149,7 @@ Func_1c50a: ; 1c50a (7:450a) ld [hli], a ld a, [hl] farcall $4, $69fd - ld hl, $d349 + ld hl, wd349 dec [hl] .asm_1c52c @@ -329,7 +329,7 @@ Func_1c78d: ; 1c78d (7:478d) ret Func_1c7de: ; 1c7de (7:47de) - ld a, [$d3b7] + ld a, [wc3b7] and $20 ret ; 0x1c7e4 @@ -344,7 +344,7 @@ Func_1c83d: ; 1c83d (7:483d) push bc ld b, a ld c, $a - ld hl, $d3bb + ld hl, wd3bb .asm_1c845 ld a, [hl] or a @@ -387,7 +387,7 @@ Func_1d078: ; 1d078 (7:5078) call DoFrameIfLCDEnabled call UpdateRNGSources call $5614 - ld hl, $d635 + ld hl, wd635 inc [hl] call Func_378a or a @@ -395,7 +395,7 @@ Func_1d078: ; 1d078 (7:5078) farcall Func_10ab4 jr .asm_1d07e .asm_1d0ae - ld hl, $d626 + ld hl, wd626 ld a, [hl] or a jr z, .asm_1d0b8 @@ -460,7 +460,7 @@ Func_1d11c: ; 1d11c (7:511c) jr z, .asm_1d14f ld a, $1 .asm_1d14f - ld hl, $d636 + ld hl, wd636 farcall Func_111e9 farcall $4, $4031 .asm_1d15a diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm index a30e33c..ca52ca5 100644 --- a/src/engine/bank8.asm +++ b/src/engine/bank8.asm @@ -3,48 +3,48 @@ ; 0 - e4 is a big set of data, seems to be one entry for each card Func_200e5: ; 200e5 (8:40e5) - ld [$ce18], a + ld [wce18], a call CreateHandCardList ld hl, wDuelTempList - ld de, wHandCardBuffer + ld de, wTempHandCardList call CopyBuffer - ld hl, wHandCardBuffer + ld hl, wTempHandCardList ld a, [hli] - ld [$ce16], a + ld [wce16], a cp $ff ret z push hl - ld a, [$ce18] + ld a, [wce18] ld d, a ld hl, $4000 .asm_4106 xor a - ld [$ce21], a + ld [wce21], a ld a, [hli] cp $ff jp z, $41b1 cp d jp nz, .incHL5 ld a, [hli] - ld [$ce17], a - ld a, [$ce16] + ld [wce17], a + ld a, [wce16] call LoadCardDataToBuffer1_FromDeckIndex cp $d2 jr nz, .asm_2012b ld b, a - ld a, [$ce20] + ld a, [wce20] and $2 jr nz, .incHL4 ld a, b .asm_2012b ld b, a - ld a, [$ce17] + ld a, [wce17] cp b jr nz, .incHL4 push hl push de - ld a, [$ce16] + ld a, [wce16] ldh [hTempCardIndex_ff9f], a bank1call CheckCantUseTrainerDueToHeadache jp c, $41a8 @@ -62,10 +62,10 @@ Func_200e5: ; 200e5 (8:40e5) jr nc, .incHL4 inc hl inc hl - ld [$ce19], a + ld [wce19], a push de push hl - ld a, [$ce16] + ld a, [wce16] ldh [hTempCardIndex_ff9f], a ld a, $6 bank1call $67be @@ -77,22 +77,22 @@ Func_200e5: ; 200e5 (8:40e5) pop hl inc hl inc hl - ld a, [$ce20] + ld a, [wce20] ld b, a - ld a, [$ce21] + ld a, [wce21] or b - ld [$ce20], a + ld [wce20], a pop hl and $8 jp z, $40f7 call CreateHandCardList ld hl, wDuelTempList - ld de, $cf68 + ld de, wTempHandCardList call $697b - ld hl, $cf68 - ld a, [$ce20] + ld hl, wTempHandCardList + ld a, [wce20] and $f7 - ld [$ce20], a + ld [wce20], a jp $40f7 .incHL5 diff --git a/src/engine/home.asm b/src/engine/home.asm index d502bac..6d596f9 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1442,11 +1442,11 @@ UpdateRNGSources: ; 089b (0:089b) ret Func_08bf: ; 08bf (0:08bf) - ld hl, $cad6 + ld hl, wcad6 ld [hl], e inc hl ld [hl], d - ld hl, $cad8 + ld hl, wcad8 ld [hl], $1 inc hl xor a @@ -1485,7 +1485,7 @@ Func_08de: ; 08de (0:08de) ret Func_08ef: ; 08ef (0:08ef) - ld hl, $cadc + ld hl, wcadc ld a, [hl] or a jr z, .asm_902 @@ -1503,7 +1503,7 @@ Func_08ef: ; 08ef (0:08ef) ld [bc], a ret .asm_902 - ld hl, $cad6 + ld hl, wcad6 ld c, [hl] inc hl ld b, [hl] @@ -1522,11 +1522,11 @@ Func_08ef: ; 08ef (0:08ef) ld a, [bc] inc bc jr nc, .asm_92a - ld hl, $cad6 + ld hl, wcad6 ld [hl], c inc hl ld [hl], b - ld hl, $cadd + ld hl, wcadd ld b, [hl] inc hl inc hl @@ -1536,7 +1536,7 @@ Func_08ef: ; 08ef (0:08ef) ret .asm_92a ld [wcade], a - ld hl, $cada + ld hl, wcada bit 0, [hl] jr nz, .asm_94a set 0, [hl] @@ -1550,7 +1550,7 @@ Func_08ef: ; 08ef (0:08ef) inc a ld [hli], a push hl - ld hl, $cad6 + ld hl, wcad6 ld [hl], c inc hl ld [hl], b @@ -1568,7 +1568,7 @@ Func_08ef: ; 08ef (0:08ef) Func_099c: ; 099c (0:099c) xor a ld [wcab5], a - ld hl, $ca00 + ld hl, wBufOAM ld c, $28 xor a .asm_9a6 @@ -2461,7 +2461,7 @@ DuelTransmissionError: ; 0f35 (0:0f35) call DrawWideTextBox_WaitForInput ld a, $ff ld [wd0c3], a - ld hl, $cbe5 + ld hl, wcbe5 ld a, [hli] ld h, [hl] ld l, a @@ -2481,12 +2481,12 @@ Func_0f58: ; 0f58 (0:0f58) call GetTurnDuelistVariable or a ; cp DUELIST_TYPE_PLAYER jr z, .asm_f70 - ld hl, $cbe2 + ld hl, wcbe2 ld de, wRNG1 jr .asm_f76 .asm_f70 ld hl, wRNG1 - ld de, $cbe2 + ld de, wcbe2 .asm_f76 ld c, $3 call Func_0e63 @@ -2688,7 +2688,7 @@ CopyDeckData: ; 1072 (0:1072) jr nz, .card_quantity_loop jr .next_card .done - ld hl, $cce9 + ld hl, wcce9 ld a, [de] inc de ld [hli], a @@ -3436,7 +3436,131 @@ LoadCardDataToBuffer2_FromDeckIndex: ; 138c (0:138c) ret ; 0x13a2 - INCROM $13a2, $1461 +Func_13a2: ; 13a2 (0:13a2) + ldh a, [hTempCardIndex_ff98] + ld d, a + ldh a, [hTempPlayAreaLocationOffset_ff9d] + ld e, a + call Func_13f7 + ret c + ldh a, [hTempPlayAreaLocationOffset_ff9d] + ld e, a + add DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + ld [wccee], a + call LoadCardDataToBuffer2_FromDeckIndex + ldh a, [hTempCardIndex_ff98] + ld [hl], a + call LoadCardDataToBuffer1_FromDeckIndex + ldh a, [hTempCardIndex_ff98] + call PutHandCardInPlayArea + ldh a, [hTempPlayAreaLocationOffset_ff9d] + ld a, e + add DUELVARS_ARENA_CARD_HP + call GetTurnDuelistVariable + ld a, [wLoadedCard2HP] + ld c, a + ld a, [wLoadedCard1HP] + sub c + add [hl] + ld [hl], a + ld a, e + add $c2 + ld l, a + ld [hl], $00 + ld a, e + add DUELVARS_ARENA_CARD_CHANGED_TYPE + ld l, a + ld [hl], $00 + ld a, e + or a + call z, ResetStatusConditions + ldh a, [hTempPlayAreaLocationOffset_ff9d] + add DUELVARS_ARENA_CARD_STAGE + call GetTurnDuelistVariable + ld a, [wLoadedCard1Stage] + ld [hl], a + or a + ret ; ! + scf + ret +; 0x13f7 + +Func_13f7: ; 13f7 (0:13f7) + push de + ld a, e + add DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + call LoadCardDataToBuffer2_FromDeckIndex + ld a, d + call LoadCardDataToBuffer1_FromDeckIndex + ld hl, wLoadedCard2Name + ld de, wLoadedCard1NonPokemonDescription + ld a, [de] + cp [hl] + jr nz, .asm_1427 + inc de + inc hl + ld a, [de] + cp [hl] + jr nz, .asm_1427 + pop de + ld a, e + add $c2 + call GetTurnDuelistVariable + and $80 + jr nz, .asm_1425 + ld a, $01 + or a + scf + ret +.asm_1425 + or a + ret +.asm_1427 + pop de + xor a + scf + ret +; 0x142b + +Func_142b: ; 142b (0:142b) + ld a, e + add $c2 + call GetTurnDuelistVariable + and $80 + jr nz, .asm_1437 + jr .asm_145e +.asm_1437 + ld a, e + add DUELVARS_ARENA_CARD + ld l, a + ld a, [hl] + call LoadCardDataToBuffer2_FromDeckIndex + ld a, d + call LoadCardDataToBuffer1_FromDeckIndex + ld hl, wLoadedCard1NonPokemonDescription + ld e, [hl] + inc hl + ld d, [hl] + call $2ecd + ld hl, wLoadedCard2Name + ld de, wLoadedCard1NonPokemonDescription + ld a, [de] + cp [hl] + jr nz, .asm_145e + inc de + inc hl + ld a, [de] + cp [hl] + jr nz, .asm_145e + or a + ret +.asm_145e + xor a + scf + ret +; 0x1461 ; init the status and all substatuses of the turn holder's arena Pokemon. ; called when sending a new Pokemon into the arena. @@ -3947,7 +4071,7 @@ CopyMoveDataAndDamage_FromDeckIndex: ; 16c0 (0:16c0) xor a ld [hl], a ld [wNoDamageOrEffect], a - ld hl, wccbf + ld hl, wTempDamage_ccbf ld [hli], a ld [hl], a ret @@ -3971,7 +4095,7 @@ Func_16f6: ; 16f6 (0:16f6) ld [wccec], a ld [wcccd], a ld [wcced], a - ld [wcce6], a + ld [wDamageToSelfMode], a ld [wccef], a ld [wccf0], a ld [wccf1], a @@ -4034,7 +4158,7 @@ Func_1730: ; 1730 (0:1730) call TryExecuteEffectCommandFunction call ApplyDamageModifiers_DamageToTarget call Func_189d - ld hl, wccbf + ld hl, wTempDamage_ccbf ld [hl], e inc hl ld [hl], d @@ -4076,7 +4200,7 @@ Func_17fb: ; 17fb (0:17fb) call TryExecuteEffectCommandFunction pop af ld [wTempNonTurnDuelistCardID], a - call HandleStrikesBack + call HandleStrikesBack_AgainstResidualMove bank1call $6df1 call Func_1bb4 bank1call $7195 @@ -4104,7 +4228,7 @@ Func_1823: ; 1823 (0:1823) DealConfusionDamageToSelf: ; 1828 (0:1828) bank1call $4f9d ld a, $1 - ld [wcce6], a + ld [wDamageToSelfMode], a ldtx hl, DamageToSelfDueToConfusionText call DrawWideTextBox_PrintText ld a, $75 @@ -4180,7 +4304,7 @@ Func_189d: ; 189d (0:189d) push de call SwapTurn xor a - ld [wcceb], a + ld [wTempPlayAreaLocationOffset_cceb], a call HandleTransparency call SwapTurn pop de @@ -4483,7 +4607,7 @@ SubstractHP: ; 1a96 (0:1a96) sbc d and $80 jr z, .no_underflow - ld [hl], $0 + ld [hl], 0 .no_underflow ld a, [hl] or a @@ -4543,7 +4667,98 @@ PrintKnockedOut: ; 1ad3 (0:1ad3) ret ; 0x1af3 - INCROM $1af3, $1b8d +; seems to be a function to deal damage to a card +Func_1af3: ; 1af3 (0:1af3) + ld a, $78 + ld [wLoadedMoveAnimation], a + ld a, b + ld [wTempPlayAreaLocationOffset_cceb], a + or a ; cp PLAY_AREA_ARENA + jr nz, .skip_no_damage_or_effect_check + ld a, [wNoDamageOrEffect] + or a + ret nz +.skip_no_damage_or_effect_check + push hl + push de + push bc + xor a + ld [wNoDamageOrEffect], a + push de + ld a, [wTempPlayAreaLocationOffset_cceb] + add DUELVARS_ARENA_CARD + call GetTurnDuelistVariable + call GetCardIDFromDeckIndex + ld a, e + ld [wTempNonTurnDuelistCardID], a + pop de + ld a, [wTempPlayAreaLocationOffset_cceb] + or a ; cp PLAY_AREA_ARENA + jr nz, .next + ld a, [wDamageToSelfMode] + or a + jr z, .turn_swapped + ld b, CARD_LOCATION_ARENA + call ApplyAttachedPluspower + jr .next +.turn_swapped + call SwapTurn + ld b, CARD_LOCATION_ARENA + call ApplyAttachedPluspower + call SwapTurn +.next + ld a, [wLoadedMoveCategory] + cp POKEMON_POWER + jr z, .skip_defender + ld a, [wTempPlayAreaLocationOffset_cceb] + or CARD_LOCATION_PLAY_AREA + ld b, a + call ApplyAttachedDefender +.skip_defender + ld a, [wTempPlayAreaLocationOffset_cceb] + or a ; cp PLAY_AREA_ARENA + jr nz, .in_bench + push de + call HandleNoDamageOrEffectSubstatus + pop de + call HandleDamageReduction +.in_bench + bit 7, d + jr z, .no_underflow + ld de, 0 +.no_underflow + call HandleDamageReductionOrNoDamageFromPkmnPowerEffects + ld a, [wTempPlayAreaLocationOffset_cceb] + ld b, a + or a ; cp PLAY_AREA_ARENA + jr nz, .benched + ; add damage at de to [wTempDamage_ccbf] + ld hl, wTempDamage_ccbf + ld a, e + add [hl] + ld [hli], a + ld a, d + adc [hl] + ld [hl], a +.benched + ld c, $00 + add DUELVARS_ARENA_CARD_HP + call GetTurnDuelistVariable + push af + bank1call $7469 + pop af + or a + jr z, .skip_knocked_out + push de + call PrintKnockedOutIfHLZero + pop de +.skip_knocked_out + call HandleStrikesBack_AgainstDamagingMove + pop bc + pop de + pop hl + ret +; 0x1b8d Func_1b8d: ; 1b8d (0:1b8d) bank1call $4f9d @@ -4591,7 +4806,7 @@ Func_1bca: ; 1bca (0:1bca) ld [hl], $0 ld hl, $0000 call LoadTxRam2 - ld hl, $ccaa + ld hl, wLoadedMoveName ld de, wTxRam2_b ld a, [hli] ld [de], a @@ -5044,7 +5259,7 @@ DrawLabeledTextBox: ; 1e00 (0:1e00) ld a, [wConsole] cp CONSOLE_SGB jr nz, .draw_top_border - ld a, [wFrameType] + ld a, [wTextBoxFrameType] or a jr z, .draw_top_border ; Console is SGB and frame type is != 0. @@ -5217,7 +5432,7 @@ ContinueDrawingTextBoxCGB: call CopyLine pop hl call BankswitchVRAM1 - ld a, [wFrameType] + ld a, [wTextBoxFrameType] ld e, a ld d, a xor a @@ -5242,7 +5457,7 @@ CopyCurrentLineTilesAndAttrCGB: ; 1efb (0:1efb) ; fallthrough CopyCurrentLineAttrCGB: call BankswitchVRAM1 - ld a, [wFrameType] ; on CGB, wFrameType determines the palette and the other attributes + ld a, [wTextBoxFrameType] ; on CGB, wTextBoxFrameType determines the palette and the other attributes ld e, a ld d, a call CopyLine @@ -5255,13 +5470,13 @@ DrawRegularTextBoxSGB: ; 1f0f (0:1f0f) call DrawRegularTextBoxDMG pop de pop bc - ld a, [wFrameType] + ld a, [wTextBoxFrameType] or a ret z ColorizeTextBoxSGB: push bc push de - ld hl, $cae0 + ld hl, wTempSGBPacket ld de, AttrBlkPacket_1f4f ld c, $10 .copy_sgb_command_loop @@ -5272,7 +5487,7 @@ ColorizeTextBoxSGB: jr nz, .copy_sgb_command_loop pop de pop bc - ld hl, $cae4 + ld hl, wTempSGBPacket + 4 ld [hl], d inc hl ld [hl], e @@ -5285,13 +5500,13 @@ ColorizeTextBoxSGB: add c dec a ld [hli], a - ld a, [wFrameType] + ld a, [wTextBoxFrameType] and $80 jr z, .asm_1f48 ld a, $2 - ld [wcae2], a + ld [wTempSGBPacket + 2], a .asm_1f48 - ld hl, $cae0 + ld hl, wTempSGBPacket call SendSGB ret @@ -5692,7 +5907,7 @@ Func_22f2: ; 22f2 (0:22f2) dec de ld l, e ld h, d - ld de, $cd05 + ld de, wcd05 ld c, 1 call SafeCopyDataDEtoHL ld hl, hffac @@ -5722,7 +5937,7 @@ Func_2325: ; 2325 (0:2325) or a ret nz ldh a, [hffa8] - ld hl, $cd04 + ld hl, wcd04 cp [hl] jr nz, .asm_2345 ldh a, [hffa9] @@ -5972,13 +6187,13 @@ Func_24ca: ; 24ca (0:24ca) call BankswitchHome push de ld a, e - ld de, $ccf4 + ld de, wccf4 call Func_24fa pop de ld a, d - ld de, $ccf5 + ld de, wccf5 call Func_24fa - ld hl, $ccf4 + ld hl, wccf4 ld b, $8 .asm_24e8 ld a, [hli] @@ -5991,7 +6206,7 @@ Func_24ca: ; 24ca (0:24ca) jr nz, .asm_24e8 call BankpopHome pop bc - ld de, $ccf4 + ld de, wccf4 ret Func_24fa: ; 24fa (0:24fa) @@ -6019,7 +6234,7 @@ Func_2510: ; 2510 (0:2510) call Func_252e pop bc Func_2518: ; 2518 (0:2518) - ld hl, $cd07 + ld hl, wcd07 ld a, b xor [hl] ld h, $0 @@ -6038,7 +6253,7 @@ Func_2518: ; 2518 (0:2518) Func_252e: ; 252e (0:252e) ld a, BANK(Fonts); BANK(DuelGraphics); BANK(VWF) call BankpushHome - ld de, $ccf4 + ld de, wccf4 push de ld c, $8 .asm_2539 @@ -6929,7 +7144,7 @@ Func_2d15: ; 2d15 (0:2d15) call EnableLCD jr .asm_2d36 .asm_2d2d - ld hl, $ce4c + ld hl, wce4c ld a, [hli] ld h, [hl] ld l, a @@ -6992,7 +7207,7 @@ Func_2d43: ; 2d43 (0:2d43) xor a ld [wcd0a], a ld de, wTxRam2 - ld hl, $ce49 + ld hl, wce49 call Func_2de0 ld a, l or h @@ -7007,7 +7222,7 @@ Func_2d43: ; 2d43 (0:2d43) .tx_ram3 call Func_2ceb ld de, wTxRam3 - ld hl, $ce4a + ld hl, wce4a call Func_2de0 call Func_2e12 call Func_2cd7 @@ -7358,7 +7573,7 @@ LoadCardGfx: ; 2fa0 (0:2fa0) set 6, h ; $4000 ≤ de ≤ $7fff call CopyGfxData ld b, CGB_PAL_SIZE - ld de, $ce23 + ld de, wce23 .copy_card_palette ld a, [hli] ld [de], a @@ -7524,7 +7739,7 @@ Func_3061: ; 3061 (0:3061) ; function that executes one or more consecutive coin tosses during a duel (a = number of coin tosses), ; displaying each result ([O] or [X]) starting from the top left corner of the screen. ; text at de is printed in a text box during the coin toss. -; returns: the number of heads in a and in $cd9d, and carry if at least one heads +; returns: the number of heads in a and in wcd9d, and carry if at least one heads TossCoinATimes: ; 3071 (0:3071) push hl ld hl, wCoinTossScreenTextID @@ -7537,8 +7752,8 @@ TossCoinATimes: ; 3071 (0:3071) ; function that executes a single coin toss during a duel. ; text at de is printed in a text box during the coin toss. -; returns: - carry, and 1 in a and in $cd9d if heads -; - nc, and 0 in a and in $cd9d if tails +; returns: - carry, and 1 in a and in wcd9d if heads +; - nc, and 0 in a and in wcd9d if tails TossCoin: ; 307d (0:307d) push hl ld hl, wCoinTossScreenTextID @@ -7547,7 +7762,7 @@ TossCoin: ; 307d (0:307d) ld [hl], d ld a, $1 bank1call _TossCoin - ld hl, $cac2 + ld hl, wcac2 ld [hl], $0 pop hl ret @@ -7654,7 +7869,7 @@ Func_311d: ; 311d (0:311d) Func_312d: ; 312d (0:312d) ; serial transfer-related push hl - ld hl, $ce64 + ld hl, wce64 ld a, $88 ld [hli], a ; [wce64] ← $88 ld a, $33 @@ -7676,7 +7891,7 @@ Func_312d: ; 312d (0:312d) ; serial transfer-related ld [hl], e ; [wce6c] ← $45 inc hl ld [hl], d ; [wce6d] ← $ff - ld hl, $ce70 + ld hl, wce70 ld [hl], $64 ; [wce70] ← $64 inc hl ld [hl], $ce ; [wce71] ← $ce @@ -7734,21 +7949,21 @@ PointerTable_3190: ; 3190 (0:3190) Func_31a8: ; 31a8 (0:31a8) call Func_31fc Func_31ab: ; 31ab (0:31ab) - ld hl, $ce63 + ld hl, wce63 inc [hl] ret Func_31b0: ; 31b0 (0:31b0) call Func_31ab - ld hl, $ce68 + ld hl, wce68 ld a, [hli] or [hl] jr nz, .asm_31bf call Func_31ab jr Func_31dd .asm_31bf - ld hl, $ce6a - ld de, $ce70 + ld hl, wce6a + ld de, wce70 ld a, [hli] ld [de], a inc de @@ -7757,7 +7972,7 @@ Func_31b0: ; 31b0 (0:31b0) Func_31ca: ; 31ca (0:31ca) call Func_31fc - ld hl, $ce68 + ld hl, wce68 ld a, [hl] dec [hl] or a @@ -7796,7 +8011,7 @@ Func_31f2: ; 31f2 (0:31f2) ret Func_31fc: ; 31fc (0:31fc) - ld hl, $ce70 + ld hl, wce70 ld e, [hl] inc hl ld d, [hl] @@ -7806,7 +8021,7 @@ Func_31fc: ; 31fc (0:31fc) dec hl ld [hl], e ld e, a - ld hl, $ce6c + ld hl, wce6c add [hl] ld [hli], a ld a, $0 @@ -7982,7 +8197,7 @@ HandleDamageReductionOrNoDamageFromPkmnPowerEffects: ; 32f7 (0:32f7) ld a, MUK call CountPokemonIDInBothPlayAreas ret c - ld a, [wcceb] + ld a, [wTempPlayAreaLocationOffset_cceb] or a call nz, HandleDamageReductionExceptSubstatus2.pkmn_power push de ; push damage from call above, which handles Invisible Wall and Kabuto Armor @@ -7995,12 +8210,14 @@ HandleDamageReductionOrNoDamageFromPkmnPowerEffects: ; 32f7 (0:32f7) ret ; 0x3317 -; very similar to HandleStrikesBack -Func_3317: ; 3317 (0:3317) +; when Machamp is damaged, if its Strikes Back is active, +; the attacking Pokemon takes 10 damage. +; used to bounce back a damaging move. +HandleStrikesBack_AgainstDamagingMove: ; 3317 (0:3317) ld a, e or d ret z - ld a, [wcce6] + ld a, [wDamageToSelfMode] or a ret nz ld a, [wTempNonTurnDuelistCardID] @@ -8012,12 +8229,12 @@ Func_3317: ; 3317 (0:3317) ld a, [wLoadedMoveCategory] cp POKEMON_POWER ret z - ld a, [wcceb] - or a - jr nz, .asm_333b + ld a, [wTempPlayAreaLocationOffset_cceb] + or a ; cp PLAY_AREA_ARENA + jr nz, .in_bench call CheckCannotUseDueToStatus ret c -.asm_333b +.in_bench push hl push de call SwapTurn @@ -8044,10 +8261,10 @@ Func_3317: ; 3317 (0:3317) pop hl pop af or a - jr z, .asm_3379 + jr z, .not_knocked_out xor a call PrintPlayAreaCardKnockedOutIfNoHP -.asm_3379 +.not_knocked_out call SwapTurn pop de pop hl @@ -8212,7 +8429,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432) scf ret .neutralizing_shield - ld a, [wcce6] + ld a, [wDamageToSelfMode] or a ret nz ; prevent damage if attacked by a non-basic Pokemon @@ -8241,7 +8458,7 @@ HandleTransparency: ; 348a (0:348a) ld a, [wLoadedMoveCategory] cp POKEMON_POWER jr z, .done ; Transparency has no effect against Pkmn Powers - ld a, [wcceb] + ld a, [wTempPlayAreaLocationOffset_cceb] call CheckCannotUseDueToStatus_OnlyToxicGasIfANon0 jr c, .done xor a @@ -8598,8 +8815,9 @@ HandleDestinyBondSubstatus: ; 363b (0:363b) ; 0x367b ; when Machamp is damaged, if its Strikes Back is active, -; the attacking Pokemon takes 10 damage -HandleStrikesBack: ; 367b (0:367b) +; the attacking Pokemon takes 10 damage. +; used to bounce back a move of the RESIDUAL category +HandleStrikesBack_AgainstResidualMove: ; 367b (0:367b) ld a, [wTempNonTurnDuelistCardID] cp MACHAMP jr z, .strikes_back @@ -8608,7 +8826,7 @@ HandleStrikesBack: ; 367b (0:367b) ld a, [wLoadedMoveCategory] and RESIDUAL ret nz - ld a, [wccbf] + ld a, [wTempDamage_ccbf] or a ret z call SwapTurn @@ -8616,11 +8834,11 @@ HandleStrikesBack: ; 367b (0:367b) call SwapTurn ret c ld hl, 10 ; damage to be dealt to attacker - call ApplyStrikesBack + call ApplyStrikesBack_AgainstResidualMove call nc, WaitForWideTextBoxInput ret -ApplyStrikesBack: ; 36a2 (0:36a2) +ApplyStrikesBack_AgainstResidualMove: ; 36a2 (0:36a2) push hl call LoadTxRam3 ld a, [wTempTurnDuelistCardID] @@ -9093,7 +9311,7 @@ Func_39ad: ; 39ad (0:39ad) add l ld l, a ld h, $0 - ld bc, $d34a + ld bc, wd34a add hl, bc pop bc ret @@ -9107,7 +9325,7 @@ Func_39c3: ; 39c3 (0:39c3) ld b, a ld c, $8 ld de, $000c - ld hl, $d34a + ld hl, wd34a ld a, [wd3ab] .asm_39d6 cp [hl] @@ -9155,7 +9373,7 @@ Func_39fc: ; 39fc (0:39fc) pop af jr z, .asm_3a11 ld a, c - ld hl, $d112 + ld hl, wd112 cp [hl] jr z, .asm_3a1c .asm_3a11 @@ -9388,9 +9606,9 @@ Func_3b52: ; 3b52 (0:3b52) push hl push bc ld a, [wd42a] - ld hl, $d4c0 + ld hl, wd4c0 and [hl] - ld hl, $d423 + ld hl, wd423 ld c, $7 .asm_3b60 and [hl] @@ -9415,7 +9633,7 @@ Func_3b6a: ; 3b6a (0:3b6a) ld a, [wd422] cp $61 jr nc, .asm_3b90 - ld hl, $d4ad + ld hl, wd4ad ld a, [wd4ac] cp [hl] jr nz, .asm_3b90 diff --git a/src/wram.asm b/src/wram.asm index 4dafdf9..49c6e99 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -414,13 +414,34 @@ wcad4:: ; cad4 wcad5:: ; cad5 ds $1 - ds $8 +wcad6:: ; cad6 + ds $2 + +wcad8:: ; cad8 + ds $1 + +wcad9:: ; cad9 + ds $1 + +wcada:: ; cada + ds $1 + +wcadb:: ; cadb + ds $1 + +wcadc:: ; cadc + ds $1 + +wcadd:: ; cadd + ds $1 wcade:: ; cade - ds $4 + ds $1 -wcae2:: ; cae2 - ds $e + ds $1 + +wTempSGBPacket:: ; cae0 + ds $10 ; temporal CGB palette data buffer to eventually save into BGPD or OBPD registers. wBackgroundPalettesCGB:: ; caf0 @@ -477,7 +498,7 @@ wcba3:: ; cba3 wSerialRecvIndex:: ; cba4 ds $1 -wSerialRecvBuf:: ; cba5 - cbc4 +wSerialRecvBuf:: ; cba5 ds $20 ds $1 @@ -498,6 +519,7 @@ wCardPageNumber:: ; cbc7 ds $1 +; 2-byte something wcbc9:: ; cbc9 ds $2 @@ -507,6 +529,7 @@ wBenchSelectedPokemon:: ; cbcb ds $2 +; used in CheckIfEnoughEnergies for the calculation wAttachedEnergiesAccum:: ; cbce ds $1 @@ -518,22 +541,36 @@ wSelectedDuelSubMenuItem:: ; cbcf wSelectedDuelSubMenuScrollOffset:: ; cbd0 ds $1 - ds $14 + ds $5 -wcbe5:: ; cbe5 +wcbd6:: ; cbd6 ds $1 -wcbe6:: ; cbe6 + ds $a + +wcbe1:: ; cbe1 ds $1 +wcbe2:: ; cbe2 + ds $3 + +wcbe5:: ; cbe5 + ds $2 + wcbe7:: ; cbe7 - ds $6 + ds $1 + + ds $5 wcbed:: ; cbed - ds $c + ds $8 + + ds $4 wcbf9:: ; cbf9 - ds $b + ds $1 + + ds $a wcc04:: ; cc04 ds $1 @@ -591,6 +628,7 @@ wcc12:: ; cc12 wIsPracticeDuel:: ; cc13 ds $1 +wcc14:: ; cc14 ds $1 wOpponentPortrait:: ; cc15 @@ -633,15 +671,15 @@ wDamage:: ; ccb9 ds $2 ; wccbb and wccbc appear to be used for AI scoring -wccbb:: +wccbb:: ; ccbb ds $1 -wccbc:: +wccbc:: ; ccbc ds $1 ds $2 -wccbf:: ; ccbf +wTempDamage_ccbf:: ; ccbf ds $2 wDamageEffectiveness:: ; ccc1 @@ -667,26 +705,40 @@ wSelectedMoveIndex:: ; ccc6 wNoDamageOrEffect:: ; ccc7 ds $2 +; set to 1 if the coin toss in the confusion check is heads (CheckSelfConfusionDamage) wccc9:: ; ccc9 - ds $4 + ds $1 + + ds $3 wcccd:: ; cccd ds $1 +; some array used in effect functions with wcccd as the index. unknown length wccce:: ; ccce ds $18 -wcce6:: ; cce6 - ds $5 +; this is 1 (non-0) if dealing damage to self due to confusion +wDamageToSelfMode:: ; cce6 + ds $1 -wcceb:: ; cceb + ds $2 + +; used in CopyDeckData +wcce9:: ; cce9 + ds $2 + +wTempPlayAreaLocationOffset_cceb:: ; cceb ds $1 wccec:: ; ccec ds $1 wcced:: ; cced - ds $2 + ds $1 + +wccee:: ; ccee + ds $1 wccef:: ; ccef ds $1 @@ -705,10 +757,16 @@ SECTION "WRAM Engine 2", WRAM0 ; color/pattern of the text box border. Values between 0-7?. Interpreted differently depending on console type ; Note that this doesn't appear to be a selectable option, just changes with the situation. ; For example the value 4 seems to be used a lot during duels. -wFrameType:: ; ccf3 +wTextBoxFrameType:: ; ccf3 ds $1 - ds $10 +wccf4:: ; ccf4 + ds $1 + +wccf5:: ; ccf5 + ds $1 + + ds $e wcd04:: ; cd04 ds $1 @@ -769,18 +827,23 @@ wcd17:: ; cd17 ds $7f +; x coord of the leftmost item in a horizontal menu wLeftmostItemCursorX:: ; cd98 ds $1 +; used in RefreshMenuCursor_CheckPlaySFX to play a sound during any frame when this address is non-0 wRefreshMenuCursorSFX:: ; cd99 ds $1 wcd9a:: ; cd9a - ds $2 + ds $1 + + ds $1 wcd9c:: ; cd9c ds $1 +; this stores the result from a coin toss (number of heads) wcd9d:: ; cd9d ds $1 @@ -788,7 +851,53 @@ wcd9e:: ; cd9e ds $1 wcd9f:: ; cd9f - ds $83 + ds $1 + + ds $5 + +wcda5:: ; cda5 + ds $1 + +wcda6:: ; cda6 + ds $1 + +wcda7:: ; cda7 + ds $1 + + ds $33 + +wcddb:: ; cddb + ds $1 + +wcddc:: ; cddc + ds $1 + + ds $26 + +wce03:: ; ce03 + ds $1 + + ds $12 + +wce16:: ; ce16 + ds $1 + +wce17:: ; ce17 + ds $1 + +wce18:: ; ce18 + ds $1 + +wce19:: ; ce19 + ds $1 + + ds $6 + +wce20:: ; ce20 + ds $1 + +wce21:: ; ce21 + ds $1 ; During a duel, this is always $b after the first attack. ; $b is the bank where the functions associated to card or effect commands are. @@ -796,7 +905,9 @@ wcd9f:: ; cd9f wce22:: ; ce22 ds $1 - ds $8 +; LoadCardGfx loads the card's palette here +wce23:: ; ce23 + ds CGB_PAL_SIZE wce2b:: ; ce2b ds $1 @@ -832,7 +943,10 @@ wce4a:: ; ce4a ds $1 wce4b:: ; ce4b - ds $3 + ds $1 + +wce4c:: ; ce4c + ds $2 wCoinTossScreenTextID:: ; ce4e ds $2 @@ -841,16 +955,51 @@ wce50:: ; ce50 ds $1 wce51:: ; ce51 - ds $8 + ds $1 -wce59:: ; ce59 ds $7 +wce59:: ; ce59 + ds $1 + + ds $4 + +wce5e:: ; ce5e + ds $1 + + ds $1 + wce60:: ; ce60 - ds $3 + ds $1 + + ds $2 wce63:: ; ce63 - ds $9 + ds $1 + +wce64:: ; ce64 + ds $1 + +wce65:: ; ce65 + ds $1 + +wce66:: ; ce66 + ds $1 + +wce67:: ; ce67 + ds $1 + +wce68:: ; ce68 + ds $1 + +wce69:: ; ce69 + ds $1 + +wce6a:: ; ce6a + ds $1 + +wce6b:: ; ce6b + ds $1 wce6c:: ; ce6c ds $1 @@ -862,16 +1011,36 @@ wce6e:: ; ce6e ds $1 wce6f:: ; ce6f - ds $d + ds $1 + +wce70:: ; ce70 + ds $1 + +wce71:: ; ce71 + ds $1 + + ds $a ; used in CountPokemonIDInPlayArea wTempPokemonID_ce7e:: ; ce7c ds $1 - ds $26 + ds $24 + +wcea1:: ; cea1 + ds $1 + + ds $1 wcea3:: ; cea3 - ds $c + ds $1 + + ds $5 + +wcea9:: ; cea9 + ds $1 + + ds $5 wceaf:: ; ceaf ds $1 @@ -892,24 +1061,95 @@ wceb4:: ; ceb4 ds $1 wceb5:: ; ceb5 - ds $17 + ds $1 + + ds $5 + +wcebb:: ; cebb + ds $1 + + ds $10 wcecc:: ; cecc - ds $9c + ds $1 -wHandCardBuffer:: ; cf68 - ds $51 + ds $1 + +wcece:: ; cece + ds $2 + + ds $47 + +; used in bank2, probably related to wTempHandCardList (another temp list?) +wcf17:: ; cf17 + ds DECK_SIZE + + ds $15 + +; used by Func_200e5, AI related +wTempHandCardList:: ; cf68 + ds DECK_SIZE + + ds $15 wcfb9:: ; cfb9 - ds $2a + ds $1 + + ds $17 + +wcfd1:: ; cfd1 + ds $1 + + ds $8 + +wcfda:: ; cfda + ds $2 + + ds $7 wcfe3:: ; cfe3 + ds $1 + + ds $1c SECTION "WRAM1", WRAMX - ds $a9 + + ds $d + +wd00d:: ; d00d + ds $1 + + ds $78 + +wd086:: ; d086 + ds $1 + +wd087:: ; d087 + ds $1 + +wd088:: ; d088 + ds $1 + + ds $19 + +wd0a2:: ; d0a2 + ds $2 + +wd0a4:: ; d0a4 + ds $1 + +wd0a5:: ; d0a5 + ds $1 + + ds $3 wd0a9:: ; d0a9 - ds $b + ds $1 + +wd0aa:: ; d0aa + ds $1 + + ds $9 wd0b4:: ; d0b4 ds $1 @@ -981,7 +1221,10 @@ wd0ca:: ; d0ca ds $1 wd0cb:: ; d0cb - ds $41 + ds $1 + +wd0cc:: ; d0cc + ds 8 * CGB_PAL_SIZE wd10c:: ; d10c ds $1 @@ -1017,10 +1260,14 @@ wd116:: ; d116 ds $1 wd117:: ; d117 - ds $4 + ds $1 + + ds $3 wd11b:: ; d11b - ds $2 + ds $1 + + ds $1 wPCPackSelection:: ; d11d ds $1 @@ -1034,7 +1281,13 @@ wPCPacks:: ; d11e wPCLastDirectionPressed:: ; d12d ds $1 - ds $3 + ds $1 + +wd12f:: ; d12f + ds $1 + +wd130:: ; d130 + ds $1 wd131:: ; d131 ds $1 @@ -1071,7 +1324,26 @@ wd237:: ; d237 ds $1 wd238:: ; d238 - ds $57 + ds $1 + + ds $1 + +wd23a:: ; d23a + ds $1 + +wd23b:: ; d23b + ds $1 + +wd23c:: ; d23c + ds $1 + +wd23d:: ; d23d + ds $1 + +wd23e:: ; d23e + ds $1 + + ds $50 wd28f:: ; d28f ds $1 @@ -1080,13 +1352,20 @@ wd290:: ; d290 ds $1 wd291:: ; d291 - ds $92 + ds $1 + +wd292:: ; d292 + ds $1 + + ds $90 wd323:: ; d323 ds $1 wd324:: ; d324 - ds $a + ds $1 + + ds $9 wd32e:: ; d32e ds $1 @@ -1119,7 +1398,13 @@ wd337:: ; d337 ds $1 wd338:: ; d338 - ds $3 + ds $1 + +wd339:: ; d339 + ds $1 + +wd33a:: ; d33a + ds $1 wd33b:: ; d33b ds $1 @@ -1140,7 +1425,9 @@ wd340:: ; d340 ds $1 wd341:: ; d341 - ds $2 + ds $1 + + ds $1 wd343:: ; d343 ds $1 @@ -1158,13 +1445,28 @@ wd347:: ; d347 ds $1 wd348:: ; d348 - ds $62 + ds $1 + +wd349:: ; d349 + ds $1 + +wd34a:: ; d34a + ds $60 wd3aa:: ; d3aa ds $1 wd3ab:: ; d3ab - ds $4 + ds $1 + +wd3ac:: ; d3ac + ds $1 + +wd3ad:: ; d3ad + ds $1 + +wd3ae:: ; d3ae + ds $1 wd3af:: ; d3af ds $1 @@ -1176,13 +1478,29 @@ wd3b1:: ; d3b1 ds $1 wd3b2:: ; d3b2 - ds $4 + ds $1 + +wd3b3:: ; d3b3 + ds $1 -wd3b6:: ; d3b6 ds $2 +wd3b6:: ; d3b6 + ds $1 + +wc3b7:: ; d3b7 + ds $1 + wd3b8:: ; d3b8 - ds $18 + ds $1 + +wd3b9:: ; d3b9 + ds $2 + +wd3bb:: ; d3bb + ds $1 + + ds $14 wd3d0:: ; d3d0 ds $1 @@ -1203,7 +1521,16 @@ wBreakOWScriptLoop:: ; d412 wOWScriptPointer:: ; d413 ds $2 - ds $8 +wd415:: ; d415 + ds $1 + +wd416:: ; d416 + ds $1 + +wd417:: ; d417 + ds $1 + + ds $5 wd41d:: ; d41d ds $1 @@ -1221,16 +1548,33 @@ wd421:: ; d421 ds $1 wd422:: ; d422 - ds $8 + ds $1 + +wd423:: ; d423 + ds $7 wd42a:: ; d42a - ds $82 + ds $1 + + ds $81 wd4ac:: ; d4ac - ds $12 + ds $1 + +wd4ad:: ; d4ad + ds $1 + + ds $10 wd4be:: ; d4be - ds $4 + ds $1 + + ds $1 + +wd4c0:: ; d4c0 + ds $1 + + ds $1 wd4c2:: ; d4c2 ds $1 @@ -1251,14 +1595,17 @@ wd4c7:: ; d4c7 ds $1 wd4c8:: ; d4c8 - ds $2 + ds $1 + + ds $1 wd4ca:: ; d4ca ds $1 wd4cb:: ; d4cb - ds $4 + ds $1 + ds $3 ; used as an index to manipulate a sprite from wSpriteAnimBuffer wWhichSprite:: ; d4cf @@ -1286,22 +1633,35 @@ wSpriteAnimBuffer:: ; d4d0 ds $3 wd5d3:: ; d5d3 - ds $4 + ds $1 + + ds $3 wd5d7:: ; d5d7 - ds $41 + ds $1 + +wd5d8:: ; d5d8 + ds $40 wd618:: ; d618 - ds $3 + ds $1 + + ds $2 wd61b:: ; d61b - ds $3 + ds $1 + + ds $2 wd61e:: ; d61e - ds $6 + ds $1 + + ds $5 wd624:: ; d624 - ds $2 + ds $1 + + ds $1 wd626:: ; d626 ds $1 @@ -1310,13 +1670,22 @@ wd627:: ; d627 ds $1 wd628:: ; d628 - ds $b + ds $1 + + ds $a wd633:: ; d633 - ds $2 + ds $1 + + ds $1 wd635:: ; d635 - ds $34 + ds $1 + +wd636:: ; d635 + ds $1 + + ds $32 wBoosterIndex:: ; d669 ds $1 @@ -1366,7 +1735,24 @@ wBoosterDataEnergyFunctionPointer:: ; d687 wBoosterDataTypeChances:: ; d689 ds NUM_BOOSTER_CARD_TYPES - ds $6ee + ds $1 + +wd693:: ; d693 + ds $1 + +wd694:: ; d694 + ds $1 + +wd695:: ; d695 + ds $1 + +wd696:: ; d696 + ds $1 + +wd697:: ; d697 + ds $1 + + ds $6e8 SECTION "WRAM Music", WRAMX @@ -1394,7 +1780,9 @@ wMusicDuty1:: ; dd86 ds $1 wMusicDuty2:: ; dd87 - ds $3 + ds $1 + + ds $2 wMusicWave:: ; dd8a ds $1 @@ -1441,7 +1829,9 @@ wddab:: ; ddab ds $1 wddac:: ; ddac - ds $3 + ds $1 + + ds $2 wMusicOctave:: ; ddaf ds $4 -- cgit v1.2.3 From a6dac1e014aae1f2a45f3549253fda0d3ea46e60 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sun, 25 Feb 2018 18:47:38 +0100 Subject: some generic sram labels --- src/engine/bank1.asm | 6 +++--- src/engine/bank3.asm | 4 ++-- src/engine/bank4.asm | 4 ++-- src/engine/bank6.asm | 20 ++++++++++---------- src/engine/home.asm | 18 +++++++++--------- src/sram.asm | 19 +++++++++++++++++-- 6 files changed, 43 insertions(+), 28 deletions(-) diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index a07ed92..f1dd18f 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -6,9 +6,9 @@ Start_Cont: ; 4000 (1:4000) call EnableInt_VBlank call EnableInt_Timer call EnableSRAM - ld a, [$a006] + ld a, [sa006] ld [wTextSpeed], a - ld a, [$a009] + ld a, [sa009] ld [wccf2], a call DisableSRAM ld a, $1 @@ -29,7 +29,7 @@ Start_Cont: ; 4000 (1:4000) ; erase sram call EnableSRAM xor a - ld [$a000], a + ld [sa000], a call DisableSRAM .reset_game jp Reset diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 6577a69..8bdf8ad 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -267,9 +267,9 @@ Func_c1f8: ; c1f8 (3:41f8) ld [wd112], a ld [wd3b8], a call EnableSRAM - ld a, [$a007] + ld a, [sa007] ld [wd421], a - ld a, [$a006] + ld a, [sa006] ld [wTextSpeed], a call DisableSRAM farcall Func_10756 diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 19d5396..aa5fdd4 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -1109,9 +1109,9 @@ Func_12704: ; 12704 (4:6704) call Func_128a9 farcall Func_1996e call EnableSRAM - ld a, [$a007] + ld a, [sa007] ld [wd421], a - ld a, [$a006] + ld a, [sa006] ld [wTextSpeed], a call DisableSRAM ld a, MUSIC_STOP diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm index 8f58133..18e8b98 100644 --- a/src/engine/bank6.asm +++ b/src/engine/bank6.asm @@ -18,13 +18,13 @@ Func_1996e: ; 1996e (6:596e) or b jr nz, .asm_1997b ld a, $5 - ld hl, $a350 + ld hl, sa350 call Func_199e0 ld a, $7 - ld hl, $a3a4 + ld hl, sa3a4 call Func_199e0 ld a, $9 - ld hl, $a3f8 + ld hl, sa3f8 call Func_199e0 call EnableSRAM ld hl, sCardCollection @@ -47,16 +47,16 @@ Func_1996e: ; 1996e (6:596e) dec c jr nz, .asm_199b2 ld a, $2 - ld [$a003], a + ld [sa003], a ld a, $2 - ld [$a006], a + ld [sa006], a ld [wTextSpeed], a xor a - ld [$a007], a - ld [$a009], a - ld [$a004], a - ld [$a005], a - ld [$a00a], a + ld [sa007], a + ld [sa009], a + ld [sa004], a + ld [sa005], a + ld [sa00a], a farcall Func_8cf9 call DisableSRAM ret diff --git a/src/engine/home.asm b/src/engine/home.asm index 6d596f9..0de3823 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1305,7 +1305,7 @@ CGBSpeedSwitch: ; 07f1 (0:07f1) SetupExtRAM: ; 080b (0:080b) xor a call BankswitchSRAM - ld hl, $a000 + ld hl, sa000 ld bc, $1000 .asm_815 ld a, [hli] @@ -1324,7 +1324,7 @@ SetupExtRAM: ; 080b (0:080b) call DisableSRAM ret .asm_82f - ld hl, $a000 + ld hl, sa000 ld a, [hli] cp $4 jr nz, .asm_842 @@ -1343,13 +1343,13 @@ SetupExtRAM: ; 080b (0:080b) ret Func_084d: ; 084d (0:084d) - ld a, $3 -.asm_84f + ld a, 3 +.clear_loop call ClearExtRAMBank dec a - cp $ff - jr nz, .asm_84f - ld hl, $a000 + cp -1 + jr nz, .clear_loop + ld hl, sa000 ld [hl], $4 inc hl ld [hl], $21 @@ -2612,7 +2612,7 @@ Func_100b: ; 100b (0:100b) xor a call BankswitchSRAM call EnableSRAM - ld hl, $a008 + ld hl, sa008 ld a, [hl] inc [hl] call DisableSRAM @@ -9191,7 +9191,7 @@ Func_3917: ; 3917 (0:3917) ld a, $22 farcall CheckIfEventFlagSet call EnableSRAM - ld [$a00a], a + ld [sa00a], a call DisableSRAM ret diff --git a/src/sram.asm b/src/sram.asm index 89f8255..e5bd99d 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -1,8 +1,19 @@ SECTION "SRAM", SRAM - ds $10 +sa000:: ds $3 ; a000 -sPlayerName:: ds $10 +sa003:: ds $1 ; a003 +sa004:: ds $1 ; a004 +sa005:: ds $1 ; a005 +sa006:: ds $1 ; a006 +sa007:: ds $1 ; a007 +sa008:: ds $1 ; a008 +sa009:: ds $1 ; a009 +sa00a:: ds $1 ; a00a + + ds $5 + +sPlayerName:: ds $10 ; a010 ds $e0 @@ -21,3 +32,7 @@ sDeck3Cards:: ds DECK_SIZE ; a2c0 sDeck4Name:: ds DECK_NAME_SIZE ; a2fc sDeck4Cards:: ds DECK_SIZE ; a314 + +sa350:: ds DECK_NAME_SIZE + DECK_SIZE ; a350 +sa3a4:: ds DECK_NAME_SIZE + DECK_SIZE ; a3a4 +sa3f8:: ds DECK_NAME_SIZE + DECK_SIZE ; a3f8 -- cgit v1.2.3 From 0ebbfca877fa165bc276cb6bac4c459f1738e554 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sun, 25 Feb 2018 19:32:52 +0100 Subject: Some function name improvements --- src/constants/card_data_constants.asm | 2 +- src/engine/bank1.asm | 2 +- src/engine/bank2.asm | 2 +- src/engine/bank3.asm | 6 +++--- src/engine/bank4.asm | 6 +++--- src/engine/home.asm | 25 +++++++++++++------------ src/wram.asm | 2 +- 7 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 77a175f..6b6d299 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -55,7 +55,7 @@ CARD_DATA_MOVE2_EFFECT_COMMANDS EQU $2b CARD_DATA_MOVE2_FLAG1 EQU $2d CARD_DATA_MOVE2_FLAG2 EQU $2e CARD_DATA_MOVE2_FLAG3 EQU $2f -;CARD_DATA_MOVE2_UNKNOWN1 EQU $30 +CARD_DATA_MOVE2_UNKNOWN1 EQU $30 CARD_DATA_MOVE2_ANIMATION EQU $31 ; TYPE_PKMN card only diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index f1dd18f..ab84ad8 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -899,7 +899,7 @@ CheckIfEnoughEnergies: ; 488f (1:488f) push hl push bc ld e, $0 - call GetAttachedEnergies + call GetPlayAreaCardAttachedEnergies call HandleEnergyBurn ldh a, [hCurrentMenuItem] add a diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 8159f40..22435ee 100644 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -43,7 +43,7 @@ Func_8d56: ; 8d56 (2:4d56) xor a ld [wTileMapFill], a call EmptyScreen - call Func_099c + call InitSpritePositions ld a, $1 ld [wVBlankOAMCopyToggle], a call Func_2119 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 8bdf8ad..717ff69 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -11,7 +11,7 @@ LoadMap: ; c000 (3:4000) ld [wMatchStartTheme], a farcall Func_10a9b call Func_c1a4 - call Func_099c + call InitSpritePositions xor a ld [wTileMapFill], a call Func_2119 @@ -341,7 +341,7 @@ Unknown_c27c: ; c27c (3:427c) Func_c280: ; c280 (3:4280) call Func_c228 call Func_3ca0 - call Func_099c + call InitSpritePositions ld hl, wVBlankOAMCopyToggle inc [hl] call EnableLCD @@ -370,7 +370,7 @@ Func_c2a3: ; c2a3 (3:42a3) call Func_2275 farcall Func_12ba7 call Func_3ca0 - call Func_099c + call InitSpritePositions ld a, $1 ld [wVBlankOAMCopyToggle], a call EnableLCD diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index aa5fdd4..1b16106 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -18,7 +18,7 @@ Func_10000: ; 10000 (4:4000) .asm_10025 call Func_1288c - call Func_099c + call InitSpritePositions ld a, $1 ld [wVBlankOAMCopyToggle], a ret @@ -155,7 +155,7 @@ BoosterPack_1031b: ; 1031b (4:431b) call Func_2c73 call DisableLCD call Func_1288c - call Func_099c + call InitSpritePositions ld a, $1 ld [wVBlankOAMCopyToggle], a ld a, $4 @@ -1078,7 +1078,7 @@ Unknown_1229f: ; 1229f (4:629f) INCROM $1229f, $126d1 Func_126d1: ; 126d1 (4:66d1) - call Func_099c + call InitSpritePositions ld hl, wVBlankOAMCopyToggle inc [hl] farcall Func_70018 diff --git a/src/engine/home.asm b/src/engine/home.asm index 0de3823..86bf865 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -802,7 +802,7 @@ CopyDMAFunction: ; 0593 (0:0593) ; CopyDMAFunction copies this function to hDMAFunction ($ff83) DMA: ; 05a1 (0:05a1) - ld a, HIGH(wBufOAM) + ld a, HIGH(wOAM) ld [rDMA], a ld a, $28 .wait @@ -1565,19 +1565,20 @@ Func_08ef: ; 08ef (0:08ef) INCROM $0950, $099c -Func_099c: ; 099c (0:099c) +; set the Y Position and X Position of all sprites in wOAM to $00 +InitSpritePositions: ; 099c (0:099c) xor a ld [wcab5], a - ld hl, wBufOAM - ld c, $28 + ld hl, wOAM + ld c, 40 xor a -.asm_9a6 +.loop ld [hli], a ld [hli], a inc hl inc hl dec c - jr nz, .asm_9a6 + jr nz, .loop ret ; this function affects the stack so that it returns @@ -2919,7 +2920,7 @@ PutCardInDiscardPile: ; 116a (0:116a) ; search a card in the turn holder's discard pile, extract it, and add it to the hand ; the card is identified by register a, which contains the card number within the deck (0-59) -SearchCardInDiscardPileAndAddToHand: ; 1182 (0:1182) +MoveDiscardPileCardToHand: ; 1182 (0:1182) push hl push de push bc @@ -3290,7 +3291,7 @@ GetCardIDFromDeckIndex_bc: ; 12fa (0:12fa) ; 0x1303 ; return [wDuelTempList + a] in a and in hTempCardIndex_ff98 -Func_1303: ; 1303 (0:1303) +GetCardInDuelTempList_OnlyDeckIndex: ; 1303 (0:1303) push hl push de ld e, a @@ -3828,11 +3829,11 @@ SwapPlayAreaPokemon: ; 1548 (0:1548) ret ; 0x159f -; Find which and how many energy cards are attached to the Pokemon card in the arena, -; or to a Pokemon card in the bench, depending on the value of register e. +; Find which and how many energy cards are attached to the turn holder's Pokemon card in the arena, +; or a Pokemon card in the bench, depending on the value of register e. ; input: e (location to check) = CARD_LOCATION_* - CARD_LOCATION_PLAY_AREA ; Feedback is returned in wAttachedEnergies and wTotalAttachedEnergies. -GetAttachedEnergies: ; 159f (0:159f) +GetPlayAreaCardAttachedEnergies: ; 159f (0:159f) push hl push de push bc @@ -9595,7 +9596,7 @@ Func_3b31: ; 3b31 (0:3b31) ld [wDoFrameFunction], a ld [wcad4], a .asm_3b45 - call Func_099c + call InitSpritePositions ld a, $1 ld [wVBlankOAMCopyToggle], a pop af diff --git a/src/wram.asm b/src/wram.asm index 49c6e99..56ade23 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -308,7 +308,7 @@ wc900:: ; c900 SECTION "WRAM Engine 1", WRAM0 -wBufOAM:: ; ca00 +wOAM:: ; ca00 ds $a0 wcaa0:: ; caa0 -- cgit v1.2.3 From 4485b77a5f5041e17ea6f349fd8fe677316afac9 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Mon, 26 Feb 2018 18:31:43 +0100 Subject: Finish documenting booster packs and wFlushPaletteFlags constants --- src/constants/gfx_constants.asm | 5 + src/data/booster_packs.asm | 720 ++++++++++++++++++++-------------------- src/engine/booster_packs.asm | 183 +++++----- src/engine/home.asm | 12 +- src/wram.asm | 21 +- 5 files changed, 497 insertions(+), 444 deletions(-) diff --git a/src/constants/gfx_constants.asm b/src/constants/gfx_constants.asm index 2ddb8ae..2f5ca4a 100644 --- a/src/constants/gfx_constants.asm +++ b/src/constants/gfx_constants.asm @@ -12,6 +12,11 @@ CGB_PAL_SIZE EQU 8 ; bytes ; tile size TILE_SIZE EQU 16 ; bytes +; wFlushPaletteFlags constants +FLUSH_ONE EQU %10000000 +FLUSH_ALL EQU %11000000 +FLUSH_ALL_F EQU 6 + ; wSpriteAnimBuffer SPRITE_ANIM_BUFFER_CAPACITY EQU 16 ; sprites diff --git a/src/data/booster_packs.asm b/src/data/booster_packs.asm index 8f8d8c2..03b64ee 100644 --- a/src/data/booster_packs.asm +++ b/src/data/booster_packs.asm @@ -1,448 +1,456 @@ -BoosterSetRarityAmountTable: ; 1e4d4 (7::64d4) +BoosterSetRarityAmountsTable: ; 1e4d4 (7::64d4) ; energies, commons, uncommons, rares ; commons + uncommons + rares needs to be equal to 10 minus the number of energy cards ; defined in the pack's data below; otherwise, the number of cards in the pack won't be 10. - db $01, $05, $03, $01 ; COLOSSEUM >> 4 - db $01, $05, $03, $01 ; EVOLUTION >> 4 - db $00, $06, $03, $01 ; MYSTERY >> 4 - db $00, $06, $03, $01 ; LABORATORY >> 4 + db 1, 5, 3, 1 ; COLOSSEUM + db 1, 5, 3, 1 ; EVOLUTION + db 0, 6, 3, 1 ; MYSTERY + db 0, 6, 3, 1 ; LABORATORY + +booster_set: MACRO + db \1 >> 4 +ENDM ; For the energy or energy generation function, there are three options: ; - Ponter to a function that generates energies (some generate one, some generate a full pack) ; - A single energy of a specific type ; - $0000 if no card in the pack is an energy -PackColosseumNeutral:: ; 1e4e4 (7:64e4) - db COLOSSEUM >> 4 ; booster pack set - dw GenerateEndingEnergy ; energy or energy generation function +; As for Card Type Chances, note that whenever one card of the 10 is drawn, the chances of +; the type of that card are reduced by the original average of all 8 types (capping the result at 1). +; This average always outputs 17 (except for the energy-only packs). + +BoosterPack_ColosseumNeutral:: ; 1e4e4 (7:64e4) + booster_set COLOSSEUM ; booster pack set + dw GenerateRandomEnergy ; energy or energy generation function ; Card Type Chances - db $14 ; Grass Type Chance - db $14 ; Fire Type Chance - db $14 ; Water Type Chance - db $14 ; Lightning Type Chance - db $14 ; Fighting Type Chance - db $14 ; Psychic Type Chance - db $14 ; Colorless Type Chance - db $14 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackColosseumGrass:: ; 1e4f0 (7:64f0) - db COLOSSEUM >> 4 ; booster pack set + db 20 ; Grass Type Chance + db 20 ; Fire Type Chance + db 20 ; Water Type Chance + db 20 ; Lightning Type Chance + db 20 ; Fighting Type Chance + db 20 ; Psychic Type Chance + db 20 ; Colorless Type Chance + db 20 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_ColosseumGrass:: ; 1e4f0 (7:64f0) + booster_set COLOSSEUM ; booster pack set dw GRASS_ENERGY ; energy or energy generation function ; Card Type Chances - db $30 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackColosseumFire:: ; 1e4fc (7:64fc) - db COLOSSEUM >> 4 ; booster pack set + db 48 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_ColosseumFire:: ; 1e4fc (7:64fc) + booster_set COLOSSEUM ; booster pack set dw FIRE_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $30 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackColosseumWater:: ; 1e508 (7:6508) - db COLOSSEUM >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 48 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_ColosseumWater:: ; 1e508 (7:6508) + booster_set COLOSSEUM ; booster pack set dw WATER_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $30 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackColosseumLightning:: ; 1e514 (7:6514) - db COLOSSEUM >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 48 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_ColosseumLightning:: ; 1e514 (7:6514) + booster_set COLOSSEUM ; booster pack set dw LIGHTNING_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $30 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackColosseumFighting:: ; 1e520 (7:6520) - db COLOSSEUM >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 48 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_ColosseumFighting:: ; 1e520 (7:6520) + booster_set COLOSSEUM ; booster pack set dw FIGHTING_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $30 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackColosseumTrainer:: ; 1e52c (7:652c) - db COLOSSEUM >> 4 ; booster pack set - dw GenerateEndingEnergy ; energy or energy generation function + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 48 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_ColosseumTrainer:: ; 1e52c (7:652c) + booster_set COLOSSEUM ; booster pack set + dw GenerateRandomEnergy ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $30 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionNeutral:: ; 1e538 (7:6538) - db EVOLUTION >> 4 ; booster pack set - dw GenerateEndingEnergy ; energy or energy generation function + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 48 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionNeutral:: ; 1e538 (7:6538) + booster_set EVOLUTION ; booster pack set + dw GenerateRandomEnergy ; energy or energy generation function ; Card Type Chances - db $14 ; Grass Type Chance - db $14 ; Fire Type Chance - db $14 ; Water Type Chance - db $14 ; Lightning Type Chance - db $14 ; Fighting Type Chance - db $14 ; Psychic Type Chance - db $14 ; Colorless Type Chance - db $14 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionGrass:: ; 1e544 (7:6544) - db EVOLUTION >> 4 ; booster pack set + db 20 ; Grass Type Chance + db 20 ; Fire Type Chance + db 20 ; Water Type Chance + db 20 ; Lightning Type Chance + db 20 ; Fighting Type Chance + db 20 ; Psychic Type Chance + db 20 ; Colorless Type Chance + db 20 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionGrass:: ; 1e544 (7:6544) + booster_set EVOLUTION ; booster pack set dw GRASS_ENERGY ; energy or energy generation function ; Card Type Chances - db $30 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionNeutralFireEnergy:: ; 1e550 (7:6550) - db EVOLUTION >> 4 ; booster pack set + db 48 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionNeutralFireEnergy:: ; 1e550 (7:6550) + booster_set EVOLUTION ; booster pack set dw FIRE_ENERGY ; energy or energy generation function ; Card Type Chances - db $14 ; Grass Type Chance - db $14 ; Fire Type Chance - db $14 ; Water Type Chance - db $14 ; Lightning Type Chance - db $14 ; Fighting Type Chance - db $14 ; Psychic Type Chance - db $14 ; Colorless Type Chance - db $14 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionWater:: ; 1e55c (7:655c) - db EVOLUTION >> 4 ; booster pack set + db 20 ; Grass Type Chance + db 20 ; Fire Type Chance + db 20 ; Water Type Chance + db 20 ; Lightning Type Chance + db 20 ; Fighting Type Chance + db 20 ; Psychic Type Chance + db 20 ; Colorless Type Chance + db 20 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionWater:: ; 1e55c (7:655c) + booster_set EVOLUTION ; booster pack set dw WATER_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $30 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionFighting:: ; 1e568 (7:6568) - db EVOLUTION >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 48 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionFighting:: ; 1e568 (7:6568) + booster_set EVOLUTION ; booster pack set dw FIGHTING_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $30 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionPsychic:: ; 1e574 (7:6574) - db EVOLUTION >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 48 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionPsychic:: ; 1e574 (7:6574) + booster_set EVOLUTION ; booster pack set dw PSYCHIC_ENERGY ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $30 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEvolutionTrainer:: ; 1e580 (7:6580) - db EVOLUTION >> 4 ; booster pack set - dw GenerateEndingEnergy ; energy or energy generation function + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 48 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EvolutionTrainer:: ; 1e580 (7:6580) + booster_set EVOLUTION ; booster pack set + dw GenerateRandomEnergy ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $30 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackMysteryNeutral:: ; 1e58c (7:658c) - db MYSTERY >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 48 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_MysteryNeutral:: ; 1e58c (7:658c) + booster_set MYSTERY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $11 ; Grass Type Chance - db $11 ; Fire Type Chance - db $11 ; Water Type Chance - db $11 ; Lightning Type Chance - db $11 ; Fighting Type Chance - db $11 ; Psychic Type Chance - db $11 ; Colorless Type Chance - db $11 ; Trainer Card Chance - db $11 ; Energy Card Chance - -PackMysteryGrassColorless:: ; 1e598 (7:6598) - db MYSTERY >> 4 ; booster pack set + db 17 ; Grass Type Chance + db 17 ; Fire Type Chance + db 17 ; Water Type Chance + db 17 ; Lightning Type Chance + db 17 ; Fighting Type Chance + db 17 ; Psychic Type Chance + db 17 ; Colorless Type Chance + db 17 ; Trainer Card Chance + db 17 ; Energy Card Chance + +BoosterPack_MysteryGrassColorless:: ; 1e598 (7:6598) + booster_set MYSTERY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $30 ; Grass Type Chance - db $0C ; Fire Type Chance - db $0C ; Water Type Chance - db $0C ; Lightning Type Chance - db $0C ; Fighting Type Chance - db $0C ; Psychic Type Chance - db $16 ; Colorless Type Chance - db $0C ; Trainer Card Chance - db $0C ; Energy Card Chance - -PackMysteryWaterColorless:: ; 1e5a4 (7:65a4) - db MYSTERY >> 4 ; booster pack set + db 48 ; Grass Type Chance + db 12 ; Fire Type Chance + db 12 ; Water Type Chance + db 12 ; Lightning Type Chance + db 12 ; Fighting Type Chance + db 12 ; Psychic Type Chance + db 22 ; Colorless Type Chance + db 12 ; Trainer Card Chance + db 12 ; Energy Card Chance + +BoosterPack_MysteryWaterColorless:: ; 1e5a4 (7:65a4) + booster_set MYSTERY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $0C ; Grass Type Chance - db $0C ; Fire Type Chance - db $30 ; Water Type Chance - db $0C ; Lightning Type Chance - db $0C ; Fighting Type Chance - db $0C ; Psychic Type Chance - db $16 ; Colorless Type Chance - db $0C ; Trainer Card Chance - db $0C ; Energy Card Chance - -PackMysteryLightningColorless:: ; 1e5b0 (7:65b0) - db MYSTERY >> 4 ; booster pack set + db 12 ; Grass Type Chance + db 12 ; Fire Type Chance + db 48 ; Water Type Chance + db 12 ; Lightning Type Chance + db 12 ; Fighting Type Chance + db 12 ; Psychic Type Chance + db 22 ; Colorless Type Chance + db 12 ; Trainer Card Chance + db 12 ; Energy Card Chance + +BoosterPack_MysteryLightningColorless:: ; 1e5b0 (7:65b0) + booster_set MYSTERY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $0C ; Grass Type Chance - db $0C ; Fire Type Chance - db $0C ; Water Type Chance - db $30 ; Lightning Type Chance - db $0C ; Fighting Type Chance - db $0C ; Psychic Type Chance - db $16 ; Colorless Type Chance - db $0C ; Trainer Card Chance - db $0C ; Energy Card Chance - -PackMysteryFightingColorless:: ; 1e5bc (7:65bc) - db MYSTERY >> 4 ; booster pack set + db 12 ; Grass Type Chance + db 12 ; Fire Type Chance + db 12 ; Water Type Chance + db 48 ; Lightning Type Chance + db 12 ; Fighting Type Chance + db 12 ; Psychic Type Chance + db 22 ; Colorless Type Chance + db 12 ; Trainer Card Chance + db 12 ; Energy Card Chance + +BoosterPack_MysteryFightingColorless:: ; 1e5bc (7:65bc) + booster_set MYSTERY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $0C ; Grass Type Chance - db $0C ; Fire Type Chance - db $0C ; Water Type Chance - db $0C ; Lightning Type Chance - db $30 ; Fighting Type Chance - db $0C ; Psychic Type Chance - db $16 ; Colorless Type Chance - db $0C ; Trainer Card Chance - db $0C ; Energy Card Chance - -PackMysteryTrainerColorless:: ; 1e5c8 (7:65c8) - db MYSTERY >> 4 ; booster pack set + db 12 ; Grass Type Chance + db 12 ; Fire Type Chance + db 12 ; Water Type Chance + db 12 ; Lightning Type Chance + db 48 ; Fighting Type Chance + db 12 ; Psychic Type Chance + db 22 ; Colorless Type Chance + db 12 ; Trainer Card Chance + db 12 ; Energy Card Chance + +BoosterPack_MysteryTrainerColorless:: ; 1e5c8 (7:65c8) + booster_set MYSTERY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $0C ; Grass Type Chance - db $0C ; Fire Type Chance - db $0C ; Water Type Chance - db $0C ; Lightning Type Chance - db $0C ; Fighting Type Chance - db $0C ; Psychic Type Chance - db $16 ; Colorless Type Chance - db $30 ; Trainer Card Chance - db $0C ; Energy Card Chance - -PackLaboratoryMostlyNeutral:: ; 1e5d4 (7:65d4) - db LABORATORY >> 4 ; booster pack set + db 12 ; Grass Type Chance + db 12 ; Fire Type Chance + db 12 ; Water Type Chance + db 12 ; Lightning Type Chance + db 12 ; Fighting Type Chance + db 12 ; Psychic Type Chance + db 22 ; Colorless Type Chance + db 48 ; Trainer Card Chance + db 12 ; Energy Card Chance + +BoosterPack_LaboratoryMostlyNeutral:: ; 1e5d4 (7:65d4) + booster_set LABORATORY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $14 ; Grass Type Chance - db $14 ; Fire Type Chance - db $14 ; Water Type Chance - db $14 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $14 ; Psychic Type Chance - db $14 ; Colorless Type Chance - db $18 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackLaboratoryGrass:: ; 1e5e0 (7:65e0) - db LABORATORY >> 4 ; booster pack set + db 20 ; Grass Type Chance + db 20 ; Fire Type Chance + db 20 ; Water Type Chance + db 20 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 20 ; Psychic Type Chance + db 20 ; Colorless Type Chance + db 24 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_LaboratoryGrass:: ; 1e5e0 (7:65e0) + booster_set LABORATORY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $30 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackLaboratoryWater:: ; 1e5ec (7:65ec) - db LABORATORY >> 4 ; booster pack set + db 48 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_LaboratoryWater:: ; 1e5ec (7:65ec) + booster_set LABORATORY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $30 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackLaboratoryPsychic:: ; 1e5f8 (7:65f8) - db LABORATORY >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 48 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_LaboratoryPsychic:: ; 1e5f8 (7:65f8) + booster_set LABORATORY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $30 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $10 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackLaboratoryTrainer:: ; 1e604 (7:6604) - db LABORATORY >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 48 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 16 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_LaboratoryTrainer:: ; 1e604 (7:6604) + booster_set LABORATORY ; booster pack set dw $0000 ; energy or energy generation function ; Card Type Chances - db $10 ; Grass Type Chance - db $10 ; Fire Type Chance - db $10 ; Water Type Chance - db $10 ; Lightning Type Chance - db $10 ; Fighting Type Chance - db $10 ; Psychic Type Chance - db $10 ; Colorless Type Chance - db $30 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEnergyLightningFire:: ; 1e610 (7:6610) - db COLOSSEUM >> 4 ; booster pack set + db 16 ; Grass Type Chance + db 16 ; Fire Type Chance + db 16 ; Water Type Chance + db 16 ; Lightning Type Chance + db 16 ; Fighting Type Chance + db 16 ; Psychic Type Chance + db 16 ; Colorless Type Chance + db 48 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EnergyLightningFire:: ; 1e610 (7:6610) + booster_set COLOSSEUM ; booster pack set dw GenerateEnergyBoosterLightningFire ; energy or energy generation function ; Card Type Chances - db $00 ; Grass Type Chance - db $00 ; Fire Type Chance - db $00 ; Water Type Chance - db $00 ; Lightning Type Chance - db $00 ; Fighting Type Chance - db $00 ; Psychic Type Chance - db $00 ; Colorless Type Chance - db $00 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEnergyWaterFighting:: ; 1e61c (7:661c) - db COLOSSEUM >> 4 ; booster pack set + db 0 ; Grass Type Chance + db 0 ; Fire Type Chance + db 0 ; Water Type Chance + db 0 ; Lightning Type Chance + db 0 ; Fighting Type Chance + db 0 ; Psychic Type Chance + db 0 ; Colorless Type Chance + db 0 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EnergyWaterFighting:: ; 1e61c (7:661c) + booster_set COLOSSEUM ; booster pack set dw GenerateEnergyBoosterWaterFighting ; energy or energy generation function ; Card Type Chances - db $00 ; Grass Type Chance - db $00 ; Fire Type Chance - db $00 ; Water Type Chance - db $00 ; Lightning Type Chance - db $00 ; Fighting Type Chance - db $00 ; Psychic Type Chance - db $00 ; Colorless Type Chance - db $00 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackEnergyGrassPsychic:: ; 1e628 (7:6628) - db COLOSSEUM >> 4 ; booster pack set + db 0 ; Grass Type Chance + db 0 ; Fire Type Chance + db 0 ; Water Type Chance + db 0 ; Lightning Type Chance + db 0 ; Fighting Type Chance + db 0 ; Psychic Type Chance + db 0 ; Colorless Type Chance + db 0 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_EnergyGrassPsychic:: ; 1e628 (7:6628) + booster_set COLOSSEUM ; booster pack set dw GenerateEnergyBoosterGrassPsychic ; energy or energy generation function ; Card Type Chances - db $00 ; Grass Type Chance - db $00 ; Fire Type Chance - db $00 ; Water Type Chance - db $00 ; Lightning Type Chance - db $00 ; Fighting Type Chance - db $00 ; Psychic Type Chance - db $00 ; Colorless Type Chance - db $00 ; Trainer Card Chance - db $00 ; Energy Card Chance - -PackRandomEnergies:: ; 1e634 (7:6634) - db COLOSSEUM >> 4 ; booster pack set + db 0 ; Grass Type Chance + db 0 ; Fire Type Chance + db 0 ; Water Type Chance + db 0 ; Lightning Type Chance + db 0 ; Fighting Type Chance + db 0 ; Psychic Type Chance + db 0 ; Colorless Type Chance + db 0 ; Trainer Card Chance + db 0 ; Energy Card Chance + +BoosterPack_RandomEnergies:: ; 1e634 (7:6634) + booster_set COLOSSEUM ; booster pack set dw GenerateRandomEnergyBooster ; energy or energy generation function ; Card Type Chances - db $00 ; Grass Type Chance - db $00 ; Fire Type Chance - db $00 ; Water Type Chance - db $00 ; Lightning Type Chance - db $00 ; Fighting Type Chance - db $00 ; Psychic Type Chance - db $00 ; Colorless Type Chance - db $00 ; Trainer Card Chance - db $00 ; Energy Card Chance + db 0 ; Grass Type Chance + db 0 ; Fire Type Chance + db 0 ; Water Type Chance + db 0 ; Lightning Type Chance + db 0 ; Fighting Type Chance + db 0 ; Psychic Type Chance + db 0 ; Colorless Type Chance + db 0 ; Trainer Card Chance + db 0 ; Energy Card Chance diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index c24f80a..99dde3f 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -1,3 +1,5 @@ +; generate a booster pack identified by a, +; and add the drawn cards to the player's collection (sCardCollection). GenerateBoosterPack: ; 1e1c4 (7:61c4) push hl push bc @@ -18,28 +20,28 @@ GenerateBoosterPack: ; 1e1c4 (7:61c4) ; generate all Pokemon or Trainer cards (if any) for the current booster pack GenerateBoosterNonEnergies: ; 1e1df (7:61df) ld a, STAR - ld [wBoosterCurRarity], a + ld [wBoosterCurrentRarity], a .generate_card_loop - call FindCurRarityChance + call FindCurrentRarityChance ld a, [hl] or a jr z, .no_more_of_current_rarity call FindCardsInSetAndRarity - call FindTotalTypeChances + call CalculateTypeChances or a jr z, .no_valid_cards call Random call DetermineBoosterCardType - call FindBoosterCard + call DetermineBoosterCard call UpdateBoosterCardTypesChanceByte call AddBoosterCardToDrawnNonEnergies - call FindCurRarityChance + call FindCurrentRarityChance dec [hl] jr .generate_card_loop .no_more_of_current_rarity - ld a, [wBoosterCurRarity] + ld a, [wBoosterCurrentRarity] dec a - ld [wBoosterCurRarity], a + ld [wBoosterCurrentRarity], a bit 7, a ; any rarity left to check? jr z, .generate_card_loop or a @@ -49,17 +51,21 @@ GenerateBoosterNonEnergies: ; 1e1df (7:61df) scf ret -; return hl pointing to wBoosterDataAmount[wBoosterCurRarity] -FindCurRarityChance: ; 1e219 (7:6219) +; return hl pointing to wBoosterDataAmount[wBoosterCurrentRarity] +FindCurrentRarityChance: ; 1e219 (7:6219) push bc ld hl, wBoosterDataCommonAmount - ld a, [wBoosterCurRarity] + ld a, [wBoosterCurrentRarity] ld c, a ld b, $0 add hl, bc pop bc ret +; loop through all existing cards to see which ones belong to the current set and rarity, +; and add them wBoosterViableCardList. Also fill wBoosterAmountOfCardTypeTable with the amount of +; available cards of each type, for the current set and rarity. +; Skip any card already drawn in the current pack. FindCardsInSetAndRarity: ; 1e226 (7:6226) ld c, NUM_BOOSTER_CARD_TYPES ld hl, wBoosterAmountOfCardTypeTable @@ -71,14 +77,14 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) xor a ld hl, wBoosterViableCardList ld [hl], a - ld de, $1 + ld de, 1 ; GRASS_ENERGY .check_card_viable_loop push de ld a, e - ld [wBoosterTempCard], a - call IsByteInTempCardCollectionZero + ld [wBoosterCurrentCard], a + call CheckCardAlreadyDrawn jr c, .finished_with_current_card - call CheckCardViable + call CheckCardInSetAndRarity jr c, .finished_with_current_card ld a, [wBoosterCurrentCardType] call GetBoosterCardType @@ -90,7 +96,7 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) add hl, bc inc [hl] pop hl - ld a, [wBoosterTempCard] + ld a, [wBoosterCurrentCard] ld [hli], a pop af ld [hli], a @@ -104,7 +110,8 @@ FindCardsInSetAndRarity: ; 1e226 (7:6226) jr c, .check_card_viable_loop ret -CheckCardViable: ; 1e268 (7:6268) +; return nc if card e belongs to the current set and rarity +CheckCardInSetAndRarity: ; 1e268 (7:6268) push bc ld a, e call GetCardTypeRarityAndSet @@ -115,7 +122,7 @@ CheckCardViable: ; 1e268 (7:6268) ld [wBoosterCurrentCardSet], a ld a, [wBoosterCurrentCardRarity] ld c, a - ld a, [wBoosterCurRarity] + ld a, [wBoosterCurrentRarity] cp c jr nz, .invalid_card ld a, [wBoosterCurrentCardType] @@ -138,7 +145,7 @@ CheckCardViable: ; 1e268 (7:6268) pop bc ret -; Map a card's TYPE_* constant given in a to its BOOSTER_CARD_TYPE_* constant +; Return a card's TYPE_* constant given in a to its BOOSTER_CARD_TYPE_* constant GetBoosterCardType: ; 1e2a0 (7:62a0) push hl push bc @@ -173,10 +180,12 @@ CardTypeTable: ; 1e2b1 (7:62b1) db BOOSTER_CARD_TYPE_TRAINER ; TYPE_ENERGY_UNUSED db BOOSTER_CARD_TYPE_TRAINER ; TYPE_TRAINER -FindTotalTypeChances: ; 1e2c2 (7:62c2) +; calculate the chance of each type for the next card +; return [wd4ca] = sum of all chances +CalculateTypeChances: ; 1e2c2 (7:62c2) ld c, NUM_BOOSTER_CARD_TYPES xor a - ld hl, wBoosterTempTypeChanceTable + ld hl, wBoosterTempTypeChancesTable .delete_temp_type_chance_table_loop ld [hli], a dec c @@ -195,7 +204,7 @@ FindTotalTypeChances: ; 1e2c2 (7:62c2) ld a, [hl] or a jr z, .amount_of_type_or_chance_zero - ld hl, wBoosterTempTypeChanceTable + ld hl, wBoosterTempTypeChancesTable add hl, bc ld [hl], a ld a, [wd4ca] @@ -210,10 +219,12 @@ FindTotalTypeChances: ; 1e2c2 (7:62c2) ld a, [wd4ca] ret +; input: a = random number (between 0 and the sum of all chances) +; store the randomly generated booster card type in [wBoosterJustDrawnCardType] DetermineBoosterCardType: ; 1e2fa (7:62fa) ld [wd4ca], a ld c, $00 - ld hl, wBoosterTempTypeChanceTable + ld hl, wBoosterTempTypeChancesTable .loop_through_card_types ld a, [hl] or a @@ -231,11 +242,12 @@ DetermineBoosterCardType: ; 1e2fa (7:62fa) ld a, BOOSTER_CARD_TYPE_ENERGY .found_card_type ld a, c - ld [wBoosterSelectedCardType], a + ld [wBoosterJustDrawnCardType], a ret -FindBoosterCard: ; 1e31d (7:631d) - ld a, [wBoosterSelectedCardType] +; generate a random available card of the booster card type at [wBoosterJustDrawnCardType] +DetermineBoosterCard: ; 1e31d (7:631d) + ld a, [wBoosterJustDrawnCardType] ld c, a ld b, $00 ld hl, wBoosterAmountOfCardTypeTable @@ -248,8 +260,8 @@ FindBoosterCard: ; 1e31d (7:631d) ld a, [hli] or a jr z, .no_valid_card_found - ld [wBoosterTempCard], a - ld a, [wBoosterSelectedCardType] + ld [wBoosterCurrentCard], a + ld a, [wBoosterJustDrawnCardType] cp [hl] jr nz, .card_incorrect_type ld a, [wd4ca] @@ -268,13 +280,13 @@ FindBoosterCard: ; 1e31d (7:631d) scf ret -; lowers the chance of getting the same type multiple times. +; lowers the chance of getting the same type of card multiple times. ; more specifically, when a card of type T is drawn, T's new chances become -; min (1, wBoosterDataTypeChances[T] - wBoosterAveragedTypeChances). +; min (1, [wBoosterDataTypeChances[T]] - [wBoosterAveragedTypeChances]). UpdateBoosterCardTypesChanceByte: ; 1e350 (7:6350) push hl push bc - ld a, [wBoosterSelectedCardType] + ld a, [wBoosterJustDrawnCardType] ld c, a ld b, $00 ld hl, wBoosterDataTypeChances @@ -287,7 +299,7 @@ UpdateBoosterCardTypesChanceByte: ; 1e350 (7:6350) jr z, .chance_less_than_one jr nc, .still_some_chance_left .chance_less_than_one - ld a, $01 + ld a, 1 ld [hl], a .still_some_chance_left pop bc @@ -313,13 +325,14 @@ GenerateBoosterEnergies: ; 1e3db (7:63db) pop af ret +; add the (energy) card at a to wBoosterTempNonEnergiesDrawn and wTempCardCollection AddBoosterEnergyToDrawnEnergies: ; 1e380 (7:6380) - ld [wBoosterTempCard], a + ld [wBoosterCurrentCard], a call AddBoosterCardToDrawnEnergies ret ; generates a random energy card -GenerateEndingEnergy: ; 1e387 (7:6387) +GenerateRandomEnergy: ; 1e387 (7:6387) ld a, NUM_COLORED_TYPES call Random add $01 @@ -330,20 +343,23 @@ GenerateRandomEnergyBooster: ; 1e390 (7:6390) ld a, NUM_CARDS_IN_BOOSTER .generate_energy_loop push af - call GenerateEndingEnergy + call GenerateRandomEnergy pop af dec a jr nz, .generate_energy_loop jr ZeroBoosterRarityData +; generates a booster with 5 Lightning energies and 5 Fire energies GenerateEnergyBoosterLightningFire: ; 1e39c (7:639c) ld hl, EnergyBoosterLightningFireData jr GenerateTwoTypesEnergyBooster +; generates a booster with 5 Water energies and 5 Fighting energies GenerateEnergyBoosterWaterFighting: ; 1e3a1 (7:63a1) ld hl, EnergyBoosterWaterFightingData jr GenerateTwoTypesEnergyBooster +; generates a booster with 5 Grass energies and 5 Psychic energies GenerateEnergyBoosterGrassPsychic: ; 1e3a6 (7:63a6) ld hl, EnergyBoosterGrassPsychicData jr GenerateTwoTypesEnergyBooster @@ -365,6 +381,8 @@ GenerateTwoTypesEnergyBooster: ; 1e3ab (7:63ab) inc hl dec b jr nz, .add_two_energies_to_booster_loop +; fallthrough + ZeroBoosterRarityData: xor a ld [wBoosterDataCommonAmount], a @@ -374,33 +392,37 @@ ZeroBoosterRarityData: EnergyBoosterLightningFireData: db LIGHTNING_ENERGY, FIRE_ENERGY + EnergyBoosterWaterFightingData: db WATER_ENERGY, FIGHTING_ENERGY + EnergyBoosterGrassPsychicData: db GRASS_ENERGY, PSYCHIC_ENERGY +; add the (energy) card at [wBoosterCurrentCard] to wBoosterTempNonEnergiesDrawn and wTempCardCollection AddBoosterCardToDrawnEnergies: ; 1e3cf (7:63cf) push hl ld hl, wBoosterTempEnergiesDrawn - call CopyToFirstEmptyByte + call AppendCardToHL call AddBoosterCardToTempCardCollection pop hl ret +; add the (non-energy) card at [wBoosterCurrentCard] to wBoosterTempNonEnergiesDrawn and wTempCardCollection AddBoosterCardToDrawnNonEnergies: ; 1e3db (7:63db) push hl ld hl, wBoosterTempNonEnergiesDrawn - call CopyToFirstEmptyByte + call AppendCardToHL call AddBoosterCardToTempCardCollection pop hl ret -CopyToFirstEmptyByte: ; 1e3e7 (7:63e7) +AppendCardToHL: ; 1e3e7 (7:63e7) ld a, [hli] or a - jr nz, CopyToFirstEmptyByte + jr nz, AppendCardToHL dec hl - ld a, [wBoosterTempCard] + ld a, [wBoosterCurrentCard] ld [hli], a xor a ld [hl], a @@ -414,16 +436,17 @@ PutEnergiesAndNonEnergiesTogether: ; 1e3f3 (7:63f3) ld a, [hli] or a jr z, .end_of_cards - ld [wBoosterTempCard], a + ld [wBoosterCurrentCard], a push hl ld hl, wBoosterTempNonEnergiesDrawn - call CopyToFirstEmptyByte + call AppendCardToHL pop hl jr .loop_through_extra_cards .end_of_cards pop hl ret +; add the final cards drawn from the booster pack to the player's colection (sCardCollection) AddBoosterCardsToCollection:; 1e40a (7:640a) push hl ld hl, wBoosterCardsDrawn @@ -437,19 +460,21 @@ AddBoosterCardsToCollection:; 1e40a (7:640a) pop hl ret +; add the card at [wBoosterCurrentCard] to wTempCardCollection AddBoosterCardToTempCardCollection: ; 1e419 (7:6419) push hl ld h, HIGH(wTempCardCollection) - ld a, [wBoosterTempCard] + ld a, [wBoosterCurrentCard] ld l, a inc [hl] pop hl ret -IsByteInTempCardCollectionZero: ; 1e423 (7:6423) +; check if the card at [wBoosterCurrentCard] has already been added to wTempCardCollection +CheckCardAlreadyDrawn: ; 1e423 (7:6423) push hl ld h, HIGH(wTempCardCollection) - ld a, [wBoosterTempCard] + ld a, [wBoosterCurrentCard] ld l, a ld a, [hl] pop hl @@ -457,9 +482,9 @@ IsByteInTempCardCollectionZero: ; 1e423 (7:6423) ccf ret -; clears wBoosterCardsDrawn and wTempCardCollection -; copies booster data to wBoosterData* *CurSet, *EnergyFunctionPointer, and *TypeChances -; copies rarity amounts to wBoosterData*Amount and averages them into wBoosterAveragedTypeChances +; clears wBoosterCardsDrawn and wTempCardCollection. +; copies booster data to wBoosterDataCurSet, wBoosterDataEnergyFunctionPointer, and wBoosterDataTypeChances. +; copies rarity amounts to wBoosterData*Amount and averages them into wBoosterAveragedTypeChances. InitBoosterData: ; 1e430 (7:6430) ld c, wBoosterCardsDrawnEnd - wBoosterCardsDrawn ld hl, wBoosterCardsDrawn @@ -499,6 +524,7 @@ InitBoosterData: ; 1e430 (7:6430) ld [wBoosterAveragedTypeChances], a ret +; get the pointer to the data of the booster pack at [wBoosterIndex] FindBoosterDataPointer: ; 1e46f (7:646f) push bc ld a, [wBoosterIndex] @@ -514,43 +540,44 @@ FindBoosterDataPointer: ; 1e46f (7:646f) ret BoosterDataJumptable: ; 1e480 (7:6480) - dw PackColosseumNeutral - dw PackColosseumGrass - dw PackColosseumFire - dw PackColosseumWater - dw PackColosseumLightning - dw PackColosseumFighting - dw PackColosseumTrainer - dw PackEvolutionNeutral - dw PackEvolutionGrass - dw PackEvolutionNeutralFireEnergy - dw PackEvolutionWater - dw PackEvolutionFighting - dw PackEvolutionPsychic - dw PackEvolutionTrainer - dw PackMysteryNeutral - dw PackMysteryGrassColorless - dw PackMysteryWaterColorless - dw PackMysteryLightningColorless - dw PackMysteryFightingColorless - dw PackMysteryTrainerColorless - dw PackLaboratoryMostlyNeutral - dw PackLaboratoryGrass - dw PackLaboratoryWater - dw PackLaboratoryPsychic - dw PackLaboratoryTrainer - dw PackEnergyLightningFire - dw PackEnergyWaterFighting - dw PackEnergyGrassPsychic - dw PackRandomEnergies - + dw BoosterPack_ColosseumNeutral + dw BoosterPack_ColosseumGrass + dw BoosterPack_ColosseumFire + dw BoosterPack_ColosseumWater + dw BoosterPack_ColosseumLightning + dw BoosterPack_ColosseumFighting + dw BoosterPack_ColosseumTrainer + dw BoosterPack_EvolutionNeutral + dw BoosterPack_EvolutionGrass + dw BoosterPack_EvolutionNeutralFireEnergy + dw BoosterPack_EvolutionWater + dw BoosterPack_EvolutionFighting + dw BoosterPack_EvolutionPsychic + dw BoosterPack_EvolutionTrainer + dw BoosterPack_MysteryNeutral + dw BoosterPack_MysteryGrassColorless + dw BoosterPack_MysteryWaterColorless + dw BoosterPack_MysteryLightningColorless + dw BoosterPack_MysteryFightingColorless + dw BoosterPack_MysteryTrainerColorless + dw BoosterPack_LaboratoryMostlyNeutral + dw BoosterPack_LaboratoryGrass + dw BoosterPack_LaboratoryWater + dw BoosterPack_LaboratoryPsychic + dw BoosterPack_LaboratoryTrainer + dw BoosterPack_EnergyLightningFire + dw BoosterPack_EnergyWaterFighting + dw BoosterPack_EnergyGrassPsychic + dw BoosterPack_RandomEnergies + +; load rarity amounts of the booster pack set at [wBoosterDataSet] to wBoosterData*Amount LoadRarityAmountsToWram: ; 1e4ba (7:64ba) ld a, [wBoosterDataSet] add a add a ld c, a ld b, $00 - ld hl, BoosterSetRarityAmountTable + ld hl, BoosterSetRarityAmountsTable add hl, bc inc hl ld a, [hli] diff --git a/src/engine/home.asm b/src/engine/home.asm index 86bf865..05da41c 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -230,7 +230,7 @@ EnableLCD: ; 0277 (0:0277) or rLCDC_ENABLE_MASK ; ld [wLCDC], a ; ld [rLCDC], a ; turn LCD on - ld a, %11000000 + ld a, FLUSH_ALL ld [wFlushPaletteFlags], a ret @@ -481,13 +481,13 @@ ZeroRAM: ; 03ec (0:03ec) ; Flush all non-CGB and CGB palettes SetFlushAllPalettes: ; 0404 (0:0404) - ld a, $c0 + ld a, FLUSH_ALL jr SetFlushPalettes ; Flush non-CGB palettes and a single CGB palette, ; provided in a as an index between 0-7 (BGP) or 8-15 (OBP) SetFlushPalette: ; 0408 (0:0408) - or $80 + or FLUSH_ONE jr SetFlushPalettes ; Set wBGP to the specified value, flush non-CGB palettes, and the first CGB palette. @@ -495,7 +495,7 @@ SetBGP: ; 040c (0:040c) ld [wBGP], a SetFlushPalette0: - ld a, $80 + ld a, FLUSH_ONE SetFlushPalettes: ld [wFlushPaletteFlags], a @@ -547,9 +547,9 @@ FlushPalettes: ; 042d (0:042d) ret .CGB ; flush a single CGB BG or OB palette - ; if bit6 of [wFlushPaletteFlags] is set, flush all 16 of them + ; if bit6 (FLUSH_ALL_F) of [wFlushPaletteFlags] is set, flush all 16 of them ld a, [wFlushPaletteFlags] - bit 6, a + bit FLUSH_ALL_F, a jr nz, FlushAllCGBPalettes ld b, CGB_PAL_SIZE call CopyCGBPalettes diff --git a/src/wram.asm b/src/wram.asm index 56ade23..3802967 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1687,21 +1687,28 @@ wd636:: ; d635 ds $32 +; which BoosterPack_* corresponds to the booster pack that the player is opening wBoosterIndex:: ; d669 ds $1 -wBoosterTempCard:: ; d66a +; card being currently processed by the booster pack engine functions +wBoosterCurrentCard:: ; d66a ds $1 -wBoosterSelectedCardType:: ; d66b +; booster card type of the card that has just been drawn from the pack +wBoosterJustDrawnCardType:: ; d66b ds $1 -wBoosterCurRarity:: ; d66c +; rarity of the cards being currently generated (non-energy cards are generated ordered by rarity) +wBoosterCurrentRarity:: ; d66c ds $1 +; the averaged value of all values in wBoosterDataTypeChances +; used to recalculate the chances of a booster card type when a card of said type is drawn from the pack wBoosterAveragedTypeChances:: ; d66d ds $1 +; data of the booster pack copied from the corresponding BoosterSetRarityAmountsTable entry wBoosterDataCommonAmount:: ; d66e ds $1 @@ -1711,12 +1718,16 @@ wBoosterDataUncommonAmount:: ; d66f wBoosterDataRareAmount:: ; d670 ds $1 +; how many cards of each type are available of a certain rarity in the booster pack's set wBoosterAmountOfCardTypeTable:: ; d671 ds NUM_BOOSTER_CARD_TYPES -wBoosterTempTypeChanceTable:: ; d67a +; holds information similar to wBoosterDataTypeChances, except that it contains 00 on any type +; of which there are no cards remaining in the set for the current rarity +wBoosterTempTypeChancesTable:: ; d67a ds NUM_BOOSTER_CARD_TYPES +; properties of the card being currently processed by the booster pack engine functions wBoosterCurrentCardType:: ; d683 ds $1 @@ -1726,6 +1737,8 @@ wBoosterCurrentCardRarity:: ; d684 wBoosterCurrentCardSet:: ; d685 ds $1 +; data of the booster pack copied from the corresponding BoosterPack_* structure. +; wBoosterDataTypeChances is updated after each card is drawn, to re-balance the type chances. wBoosterDataSet:: ; d686 ds $1 -- cgit v1.2.3 From f608fd9e506f37b55fbb10f09476d148d53c9c64 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Tue, 27 Feb 2018 14:26:41 +0100 Subject: Document main menu and game event functions --- src/constants/misc_constants.asm | 11 ++++++ src/engine/bank1.asm | 16 +++++---- src/engine/bank3.asm | 24 ++++++------- src/engine/bank4.asm | 52 +++++++++++++++------------- src/engine/booster_packs.asm | 6 ++-- src/engine/home.asm | 75 +++++++++++++++++++++------------------- src/wram.asm | 4 +-- 7 files changed, 104 insertions(+), 84 deletions(-) diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index 1cfffb4..c1e3bf1 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -24,3 +24,14 @@ D_DOWN EQU 1 << D_DOWN_F ; $80 BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START ; $0f D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN ; $f0 + +; Game event constants (wGameEventIndex) + const_def + const GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME ; $0 + const GAME_EVENT_DUEL ; $1 + const GAME_EVENT_BATTLE_CENTER ; $2 + const GAME_EVENT_GIFT_CENTER ; $3 + const GAME_EVENT_CREDITS ; $4 + const GAME_EVENT_CONTINUE_DUEL ; $5 + const GAME_EVENT_CHALLENGE_MACHINE ; $6 +NUM_GAME_EVENTS EQU const_value diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index ab84ad8..8852914 100644 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -1,5 +1,6 @@ ; continuation of Bank0 Start -Start_Cont: ; 4000 (1:4000) +; supposed to be the main loop, but the game never returns from _GameLoop anyway +GameLoop: ; 4000 (1:4000) di ld sp, $e000 call ResetSerial @@ -18,8 +19,8 @@ Start_Cont: ; 4000 (1:4000) ldh a, [hButtonsHeld] cp A_BUTTON | B_BUTTON jr z, .ask_erase_backup_ram - farcall Func_126d1 - jr Start_Cont + farcall _GameLoop + jr GameLoop .ask_erase_backup_ram call Func_405a call EmptyScreen @@ -55,14 +56,15 @@ CommentedOut_406e: ; 406e (1:406e) ret ; 0x406f -Func_406f: ; 406f (1:406f) +; try to resume a saved duel from the main menu +TryContinueDuel: ; 406f (1:406f) call Func_420b call $66e9 ldtx hl, BackUpIsBrokenText - jr c, Func_4097 + jr c, FailedToContinueDuel ; fallthrough -Func_407a: ; 407a (1:407a) +ContinueDuel: ; 407a (1:407a) ld hl, sp+$00 ld a, l ld [wcbe5], a @@ -77,7 +79,7 @@ Func_407a: ; 407a (1:407a) jp StartDuel.asm_40fb ; 0x4097 -Func_4097: ; 4097 (1:4097) +FailedToContinueDuel: ; 4097 (1:4097) call DrawWideTextBox_WaitForInput call ResetSerial scf diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 717ff69..3612854 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -3,8 +3,8 @@ LoadMap: ; c000 (3:4000) call EnableSRAM bank1call Func_6785 call DisableSRAM - ld a, $0 - ld [wd0b5], a + ld a, GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME + ld [wGameEventIndex], a xor a ld [wd10f], a ld [wd110], a @@ -1765,8 +1765,8 @@ asm_cd2f ld [wd0c5], a pop af farcall Func_118a7 - ld a, $1 - ld [wd0b5], a + ld a, GAME_EVENT_DUEL + ld [wGameEventIndex], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy4 @@ -1794,8 +1794,8 @@ Func_cd66: ; cd66 (3:4d66) ret Func_cd76: ; cd76 (3:4d76) - ld a, $2 - ld [wd0b5], a + ld a, GAME_EVENT_BATTLE_CENTER + ld [wGameEventIndex], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy1 @@ -2707,8 +2707,8 @@ Func_d39d: ; d39d (3:539d) jr .asm_d3b6 .asm_d3ac - ld a, $3 - ld [wd0b5], a + ld a, GAME_EVENT_GIFT_CENTER + ld [wGameEventIndex], a ld hl, wd0b4 set 6, [hl] @@ -2717,8 +2717,8 @@ Func_d39d: ; d39d (3:539d) Func_d3b9: ; d3b9 (3:53b9) call Func_3917 - ld a, $4 - ld [wd0b5], a + ld a, GAME_EVENT_CREDITS + ld [wGameEventIndex], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy1 @@ -2794,8 +2794,8 @@ Func_d435: ; d435 (3:5435) jp IncreaseOWScriptPointerBy2 Func_d43d: ; d43d (3:543d) - ld a, $6 - ld [wd0b5], a + ld a, GAME_EVENT_CHALLENGE_MACHINE + ld [wGameEventIndex], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy1 diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 1b16106..35dee45 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -1077,34 +1077,38 @@ OverworldScriptTable: ; 1217b (4:617b) Unknown_1229f: ; 1229f (4:629f) INCROM $1229f, $126d1 -Func_126d1: ; 126d1 (4:66d1) +; usually, the game doesn't loop here at all, since as soon as a main menu option +; is selected, there is no need to come back to the menu. +; the only exception is after returning from Card Pop! +_GameLoop: ; 126d1 (4:66d1) call InitSpritePositions ld hl, wVBlankOAMCopyToggle inc [hl] farcall Func_70018 ld a, $ff ld [wd627], a -.asm_126e1 +.main_menu_loop ld a, PLAYER_TURN ldh [hWhoseTurn], a farcall Func_c1f8 farcall Func_1d078 ld a, [wd628] - ld hl, PointerTable_126fc + ld hl, MainMenuFunctionTable call JumpToFunctionInTable - jr c, .asm_126e1 - jr Func_126d1 + jr c, .main_menu_loop ; return to main menu + jr _GameLoop ; virtually restart game +; this is never reached scf ret -PointerTable_126fc: - dw CardPop_12768 - dw Func_12741 - dw Func_12704 - dw Func_1277e +MainMenuFunctionTable: + dw MainMenu_CardPop + dw MainMenu_ContinueFromDiary + dw MainMenu_NewGame + dw MainMenu_ContinueDuel -Func_12704: ; 12704 (4:6704) +MainMenu_NewGame: ; 12704 (4:6704) farcall Func_c1b1 call Func_128a9 farcall Func_1996e @@ -1121,30 +1125,30 @@ Func_12704: ; 12704 (4:6704) ld [wd111], a call Func_39fc farcall Func_1d306 - ld a, $0 - ld [wd0b5], a - farcall $03, Func_383d + ld a, GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME + ld [wGameEventIndex], a + farcall $03, ExecuteGameEvent or a ret -Func_12741: ; 12741 (4:6741) +MainMenu_ContinueFromDiary: ; 12741 (4:6741) ld a, MUSIC_STOP call PlaySong call Func_11320 - jr nc, Func_12704 + jr nc, MainMenu_NewGame farcall Func_c1ed farcall Func_70000 call EnableSRAM xor a ld [$ba44], a call DisableSRAM - ld a, $0 - ld [wd0b5], a - farcall $03, Func_383d + ld a, GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME + ld [wGameEventIndex], a + farcall $03, ExecuteGameEvent or a ret -CardPop_12768: ; 12768 (4:6768) +MainMenu_CardPop: ; 12768 (4:6768) ld a, MUSIC_CARD_POP call PlaySong bank1call Func_7571 @@ -1155,15 +1159,15 @@ CardPop_12768: ; 12768 (4:6768) scf ret -Func_1277e: ; 1277e (4:677e) +MainMenu_ContinueDuel: ; 1277e (4:677e) ld a, MUSIC_STOP call PlaySong farcall Func_c9cb farcall $04, Func_3a40 farcall Func_70000 - ld a, $5 - ld [wd0b5], a - farcall $03, Func_383d + ld a, GAME_EVENT_CONTINUE_DUEL + ld [wGameEventIndex], a + farcall $03, ExecuteGameEvent or a ret ; 0x1279a diff --git a/src/engine/booster_packs.asm b/src/engine/booster_packs.asm index 99dde3f..98692d8 100644 --- a/src/engine/booster_packs.asm +++ b/src/engine/booster_packs.asm @@ -4,7 +4,7 @@ GenerateBoosterPack: ; 1e1c4 (7:61c4) push hl push bc push de - ld [wBoosterIndex], a + ld [wBoosterPackID], a .no_cards_found_loop call InitBoosterData call GenerateBoosterEnergies @@ -524,10 +524,10 @@ InitBoosterData: ; 1e430 (7:6430) ld [wBoosterAveragedTypeChances], a ret -; get the pointer to the data of the booster pack at [wBoosterIndex] +; get the pointer to the data of the booster pack at [wBoosterPackID] FindBoosterDataPointer: ; 1e46f (7:646f) push bc - ld a, [wBoosterIndex] + ld a, [wBoosterPackID] add a ld c, a ld b, $0 diff --git a/src/engine/home.asm b/src/engine/home.asm index 05da41c..cbe87bb 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -61,10 +61,10 @@ Start: ; 0150 (0:0150) call ResetSerial call CopyDMAFunction call SetupExtRAM - ld a, BANK(Start_Cont) + ld a, BANK(GameLoop) call BankswitchHome ld sp, $e000 - jp Start_Cont + jp GameLoop VBlankHandler: ; 019b (0:019b) push af @@ -6879,9 +6879,9 @@ PrintYesOrNoItems: ; 2b66 (0:2b66) ; 0x2b70 Func_2b70: ; 2b70 (0:2b70) - ld a, BANK(Func_407a) + ld a, BANK(ContinueDuel) call BankswitchHome - jp Func_407a + jp ContinueDuel ; 0x2b78 ; loads opponent deck to wOpponentDeck @@ -9067,45 +9067,48 @@ Func_380e: ; 380e (0:380e) call BankswitchHome ret -Func_383d: ; 383d (0:383d) +; enable the play time counter and execute the game event at [wGameEventIndex], +; then return to the overworld or restart the game. +ExecuteGameEvent: ; 383d (0:383d) ld a, $1 ld [wPlayTimeCounterEnable], a ldh a, [hBankROM] push af -.asm_3845 - call Func_3855 - jr nc, .asm_3850 +.loop + call _ExecuteGameEvent + jr nc, .restart farcall LoadMap - jr .asm_3845 -.asm_3850 + jr .loop +.restart pop af call BankswitchHome ret -Func_3855: ; 3855 (0:3855) - ld a, [wd0b5] - cp $7 - jr c, .asm_385e - ld a, $6 -.asm_385e - ld hl, PointerTable_3864 +; execute a game event at [wGameEventIndex] from GameEventPointerTable +_ExecuteGameEvent: ; 3855 (0:3855) + ld a, [wGameEventIndex] + cp NUM_GAME_EVENTS + jr c, .got_game_event + ld a, GAME_EVENT_CHALLENGE_MACHINE +.got_game_event + ld hl, GameEventPointerTable jp JumpToFunctionInTable -PointerTable_3864: ; 3864 (0:3864) - dw Func_3874 - dw Func_38c0 - dw Func_38a3 - dw Func_3876 - dw Credits_3911 - dw Func_38fb - dw Func_38db - dw Func_3874 - -Func_3874: ; 3874 (0:3874) +GameEventPointerTable: ; 3864 (0:3864) + dw GameEvent_ContinueFromDiaryOrNewGame + dw GameEvent_PracticeDuel + dw GameEvent_BattleCenter + dw GameEvent_GiftCenter + dw GameEvent_Credits + dw GameEvent_ContinueDuel + dw GameEvent_ChallengeMachine + dw GameEvent_ContinueFromDiaryOrNewGame + +GameEvent_ContinueFromDiaryOrNewGame: ; 3874 (0:3874) scf ret -Func_3876: ; 3876 (0:3876) +GameEvent_GiftCenter: ; 3876 (0:3876) ldh a, [hBankROM] push af call PauseSong @@ -9126,7 +9129,7 @@ Func_3876: ; 3876 (0:3876) scf ret -Func_38a3: ; 38a3 (0:38a3) +GameEvent_BattleCenter: ; 38a3 (0:38a3) ld a, $2 ld [wd0c2], a xor a @@ -9141,7 +9144,7 @@ Func_38a3: ; 38a3 (0:38a3) scf ret -Func_38c0: ; 38c0 (0:38c0) +GameEvent_PracticeDuel: ; 38c0 (0:38c0) ld a, $1 ld [wd0c2], a xor a @@ -9155,7 +9158,7 @@ Func_38c0: ; 38c0 (0:38c0) scf ret -Func_38db: ; 38db (0:38db) +GameEvent_ChallengeMachine: ; 38db (0:38db) ld a, $6 ld [wd111], a call Func_39fc @@ -9171,19 +9174,19 @@ Func_38db: ; 38db (0:38db) scf ret -Func_38fb: ; 38fb (0:38fb) +GameEvent_ContinueDuel: ; 38fb (0:38fb) xor a ld [wd112], a - bank1call Func_406f + bank1call TryContinueDuel call EnableSRAM ld a, [$ba44] call DisableSRAM cp $ff - jr z, Func_38db.asm_38ed + jr z, GameEvent_ChallengeMachine.asm_38ed scf ret -Credits_3911: ; 3911 (0:3911) +GameEvent_Credits: ; 3911 (0:3911) farcall Credits_1d6ad or a ret diff --git a/src/wram.asm b/src/wram.asm index 3802967..6af5cb8 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1154,7 +1154,7 @@ wd0aa:: ; d0aa wd0b4:: ; d0b4 ds $1 -wd0b5:: ; d0b5 +wGameEventIndex:: ; d0b5 ds $1 wSCX:: ; d0b6 @@ -1688,7 +1688,7 @@ wd636:: ; d635 ds $32 ; which BoosterPack_* corresponds to the booster pack that the player is opening -wBoosterIndex:: ; d669 +wBoosterPackID:: ; d669 ds $1 ; card being currently processed by the booster pack engine functions -- cgit v1.2.3 From 43d4b8644de2ffb3b1fc13638081cd228c4b2c74 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Tue, 27 Feb 2018 16:11:31 +0100 Subject: GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME -> GAME_EVENT_OVERWORLD --- src/constants/misc_constants.asm | 16 ++++++++-------- src/engine/bank3.asm | 14 +++++++------- src/engine/bank4.asm | 10 +++++----- src/engine/home.asm | 18 +++++++++--------- src/wram.asm | 2 +- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index c1e3bf1..a6511df 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -25,13 +25,13 @@ D_DOWN EQU 1 << D_DOWN_F ; $80 BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START ; $0f D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN ; $f0 -; Game event constants (wGameEventIndex) +; Game event constants (wGameEvent) const_def - const GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME ; $0 - const GAME_EVENT_DUEL ; $1 - const GAME_EVENT_BATTLE_CENTER ; $2 - const GAME_EVENT_GIFT_CENTER ; $3 - const GAME_EVENT_CREDITS ; $4 - const GAME_EVENT_CONTINUE_DUEL ; $5 - const GAME_EVENT_CHALLENGE_MACHINE ; $6 + const GAME_EVENT_OVERWORLD ; $0 + const GAME_EVENT_DUEL ; $1 + const GAME_EVENT_BATTLE_CENTER ; $2 + const GAME_EVENT_GIFT_CENTER ; $3 + const GAME_EVENT_CREDITS ; $4 + const GAME_EVENT_CONTINUE_DUEL ; $5 + const GAME_EVENT_CHALLENGE_MACHINE ; $6 NUM_GAME_EVENTS EQU const_value diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 3612854..1fc8f11 100644 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -3,8 +3,8 @@ LoadMap: ; c000 (3:4000) call EnableSRAM bank1call Func_6785 call DisableSRAM - ld a, GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME - ld [wGameEventIndex], a + ld a, GAME_EVENT_OVERWORLD + ld [wGameEvent], a xor a ld [wd10f], a ld [wd110], a @@ -1766,7 +1766,7 @@ asm_cd2f pop af farcall Func_118a7 ld a, GAME_EVENT_DUEL - ld [wGameEventIndex], a + ld [wGameEvent], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy4 @@ -1795,7 +1795,7 @@ Func_cd66: ; cd66 (3:4d66) Func_cd76: ; cd76 (3:4d76) ld a, GAME_EVENT_BATTLE_CENTER - ld [wGameEventIndex], a + ld [wGameEvent], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy1 @@ -2708,7 +2708,7 @@ Func_d39d: ; d39d (3:539d) .asm_d3ac ld a, GAME_EVENT_GIFT_CENTER - ld [wGameEventIndex], a + ld [wGameEvent], a ld hl, wd0b4 set 6, [hl] @@ -2718,7 +2718,7 @@ Func_d39d: ; d39d (3:539d) Func_d3b9: ; d3b9 (3:53b9) call Func_3917 ld a, GAME_EVENT_CREDITS - ld [wGameEventIndex], a + ld [wGameEvent], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy1 @@ -2795,7 +2795,7 @@ Func_d435: ; d435 (3:5435) Func_d43d: ; d43d (3:543d) ld a, GAME_EVENT_CHALLENGE_MACHINE - ld [wGameEventIndex], a + ld [wGameEvent], a ld hl, wd0b4 set 6, [hl] jp IncreaseOWScriptPointerBy1 diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 35dee45..883065a 100644 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -1125,8 +1125,8 @@ MainMenu_NewGame: ; 12704 (4:6704) ld [wd111], a call Func_39fc farcall Func_1d306 - ld a, GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME - ld [wGameEventIndex], a + ld a, GAME_EVENT_OVERWORLD + ld [wGameEvent], a farcall $03, ExecuteGameEvent or a ret @@ -1142,8 +1142,8 @@ MainMenu_ContinueFromDiary: ; 12741 (4:6741) xor a ld [$ba44], a call DisableSRAM - ld a, GAME_EVENT_CONTINUE_FROM_DIARY_OR_NEW_GAME - ld [wGameEventIndex], a + ld a, GAME_EVENT_OVERWORLD + ld [wGameEvent], a farcall $03, ExecuteGameEvent or a ret @@ -1166,7 +1166,7 @@ MainMenu_ContinueDuel: ; 1277e (4:677e) farcall $04, Func_3a40 farcall Func_70000 ld a, GAME_EVENT_CONTINUE_DUEL - ld [wGameEventIndex], a + ld [wGameEvent], a farcall $03, ExecuteGameEvent or a ret diff --git a/src/engine/home.asm b/src/engine/home.asm index cbe87bb..4c5ecfa 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -9067,8 +9067,8 @@ Func_380e: ; 380e (0:380e) call BankswitchHome ret -; enable the play time counter and execute the game event at [wGameEventIndex], -; then return to the overworld or restart the game. +; enable the play time counter and execute the game event at [wGameEvent]. +; then return to the overworld, or restart the game (only after Credits). ExecuteGameEvent: ; 383d (0:383d) ld a, $1 ld [wPlayTimeCounterEnable], a @@ -9084,9 +9084,9 @@ ExecuteGameEvent: ; 383d (0:383d) call BankswitchHome ret -; execute a game event at [wGameEventIndex] from GameEventPointerTable +; execute a game event at [wGameEvent] from GameEventPointerTable _ExecuteGameEvent: ; 3855 (0:3855) - ld a, [wGameEventIndex] + ld a, [wGameEvent] cp NUM_GAME_EVENTS jr c, .got_game_event ld a, GAME_EVENT_CHALLENGE_MACHINE @@ -9095,16 +9095,16 @@ _ExecuteGameEvent: ; 3855 (0:3855) jp JumpToFunctionInTable GameEventPointerTable: ; 3864 (0:3864) - dw GameEvent_ContinueFromDiaryOrNewGame - dw GameEvent_PracticeDuel + dw GameEvent_Overworld + dw GameEvent_Duel dw GameEvent_BattleCenter dw GameEvent_GiftCenter dw GameEvent_Credits dw GameEvent_ContinueDuel dw GameEvent_ChallengeMachine - dw GameEvent_ContinueFromDiaryOrNewGame + dw GameEvent_Overworld -GameEvent_ContinueFromDiaryOrNewGame: ; 3874 (0:3874) +GameEvent_Overworld: ; 3874 (0:3874) scf ret @@ -9144,7 +9144,7 @@ GameEvent_BattleCenter: ; 38a3 (0:38a3) scf ret -GameEvent_PracticeDuel: ; 38c0 (0:38c0) +GameEvent_Duel: ; 38c0 (0:38c0) ld a, $1 ld [wd0c2], a xor a diff --git a/src/wram.asm b/src/wram.asm index 6af5cb8..b100a57 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1154,7 +1154,7 @@ wd0aa:: ; d0aa wd0b4:: ; d0b4 ds $1 -wGameEventIndex:: ; d0b5 +wGameEvent:: ; d0b5 ds $1 wSCX:: ; d0b6 -- cgit v1.2.3