Refactor GFX offsets

This commit is contained in:
earthoul
2026-07-02 01:52:09 +09:00
parent 61bdbb560b
commit 7c228fb2bf
10 changed files with 195 additions and 101 deletions

View File

@@ -400,7 +400,7 @@ DEF GRASS_F EQU $1 << GRASS ; $02
Bit mask constants are also useful if they are used multiple times. Palette colors are an example to illustrate this:
```asm
DEF PALRGB_WHITE EQU (31 << B_COLOR_BLUE) | (31 << B_COLOR_GREEN) | (31 << B_COLOR_RED)
DEF PALRGB_WHITE EQU (COLOR_CH_MAX << B_COLOR_BLUE) | (COLOR_CH_MAX << B_COLOR_GREEN) | (COLOR_CH_MAX << B_COLOR_RED)
```
Finally, note that constants that are exclusive to a specific feature or function should generally be local, and thus placed above the code that uses them. This is usually not the case, however, so you should usually be looking to declare them inside the constants/ directory as mentioned before. This kind of refactoring is also more appropriate when the disassembly is in a more advanced state as well.

View File

@@ -146,6 +146,9 @@ DEF TYPE_PKMN EQU %111
DEF TYPE_ENERGY_F EQU 3
DEF TYPE_TRAINER_F EQU 4
; TYPE_ENERGY_* -> generic type
DEF ENERGY_TYPE_MASK EQU %111
; CARD_DATA_RARITY constants
DEF CIRCLE EQU $0
DEF DIAMOND EQU $1
@@ -169,11 +172,11 @@ DEF CARDPOP_ENERGY EQU $ff
const SKY_FLYING_POKEMON ; $04
const WE_ARE_TEAM_ROCKET ; $05
const TEAM_ROCKETS_AMBITION ; $06
DEF PRESENT_PACK EQU const_value ; $07
const PROMOTIONAL ; $07
DEF NUM_CARD_SETS EQU const_value
const ENERGY ; $08
DEF PRESENT_PACK EQU 7
; booster pack constants
const_def
@@ -185,17 +188,17 @@ DEF PRESENT_PACK EQU 7
const BOOSTER_WE_ARE_TEAM_ROCKET ; $5
const BOOSTER_TEAM_ROCKETS_AMBITION ; $6
const BOOSTER_DEBUG_10_STAR ; $7
DEF BOOSTERS_PRESENT_START EQU const_value
DEF BOOSTERS_PRESENT_START EQU const_value ; $8
const BOOSTER_PRESENT_10_ENERGY ; $8
DEF BOOSTERS_PRESENT_REGULAR_START EQU const_value
DEF BOOSTERS_PRESENT_REGULAR_START EQU const_value ; $9
const BOOSTER_PRESENT_FROM_ALL_SETS ; $9
const BOOSTER_PRESENT_FROM_NON_ROCKET_SETS ; $a
const BOOSTER_PRESENT_FROM_LATTER_4_SETS ; $b
const BOOSTER_PRESENT_FROM_ROCKET_SETS ; $c
DEF BOOSTERS_PRESENT_END EQU const_value
const BOOSTER_DEBUG_2_STAR ; $d
DEF NUM_BOOSTERS_PRESENT_REGULAR EQU const_value - BOOSTERS_PRESENT_REGULAR_START ; 4
DEF NUM_BOOSTERS_PRESENT_REGULAR EQU BOOSTERS_PRESENT_END - BOOSTERS_PRESENT_REGULAR_START ; 4
const BOOSTER_DEBUG_2_STAR ; $d
; real card set constants
const_def

View File

@@ -27,13 +27,13 @@ DEF HEADER_POKEMON EQU $02
; 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
const BOXMSG_PLAYERS_TURN ; $0
const BOXMSG_OPPONENTS_TURN ; $1
const BOXMSG_BETWEEN_TURNS ; $2
const BOXMSG_DECISION ; $3
const BOXMSG_BENCH_POKEMON ; $4
const BOXMSG_ARENA_POKEMON ; $5
const BOXMSG_COIN_TOSS ; $6
; wDuelDisplayedScreen constants
DEF DUEL_MAIN_SCENE EQU $01

View File

@@ -4,7 +4,7 @@ DEF palettes EQUS "* PAL_SIZE"
DEF NUM_BACKGROUND_PALETTES EQU 8
DEF NUM_OBJECT_PALETTES EQU 8
DEF PALRGB_WHITE EQU (31 << B_COLOR_BLUE) | (31 << B_COLOR_GREEN) | (31 << B_COLOR_RED)
DEF PALRGB_WHITE EQU (COLOR_CH_MAX << B_COLOR_BLUE) | (COLOR_CH_MAX << B_COLOR_GREEN) | (COLOR_CH_MAX << B_COLOR_RED)
; tile size
DEF tiles EQUS "* TILE_SIZE"
@@ -12,25 +12,114 @@ DEF tiles EQUS "* TILE_SIZE"
DEF TILE_SIZE_1BPP EQU 8 ; bytes
DEF tiles_1bpp EQUS "* TILE_SIZE_1BPP"
; icon tile offsets
DEF ICON_TILE_BASIC_POKEMON EQU $d0
DEF ICON_TILE_STAGE_1_POKEMON EQU $d4
DEF ICON_TILE_STAGE_2_POKEMON EQU $d8
DEF ICON_TILE_TRAINER EQU $dc
DEF CARD_HEADER_TILE_SIZE EQU 8 * 2 ; tiles
DEF REGULAR_ICON_TILE_SIZE EQU 4 ; tiles
DEF ICON_TILE_FIRE EQU $e0
DEF ICON_TILE_GRASS EQU $e4
DEF ICON_TILE_LIGHTNING EQU $e8
DEF ICON_TILE_WATER EQU $ec
DEF ICON_TILE_FIGHTING EQU $f0
DEF ICON_TILE_PSYCHIC EQU $f4
DEF ICON_TILE_COLORLESS EQU $f8
DEF ICON_TILE_ENERGY EQU $fc
DEF NUM_CARD_OR_DUEL_BORDER_TILES EQU 8 ; tiles
; icon tile offsets
DEF CARD_TYPE_ICON_TILE_START EQU $d0
RSSET CARD_TYPE_ICON_TILE_START
DEF ICON_TILE_BASIC_POKEMON RL ; $d0
DEF ICON_TILE_EVO_OR_TRAINER_OFFSET EQU _RS - ICON_TILE_BASIC_POKEMON ; $04
DEF ICON_TILE_STAGE_1_POKEMON RL ; $d4
DEF ICON_TILE_STAGE_2_POKEMON RL ; $d8
DEF ICON_TILE_TRAINER RL ; $dc
DEF NUM_EVO_OR_TRAINER_ICON_TILES EQU _RS - ICON_TILE_STAGE_1_POKEMON ; $0c
DEF ICON_TILE_POKEMON_TYPES EQU _RS ; $e0
DEF ICON_TILE_FIRE RL ; $e0
DEF ICON_TILE_GRASS RL ; $e4
DEF ICON_TILE_LIGHTNING RL ; $e8
DEF ICON_TILE_WATER RL ; $ec
DEF ICON_TILE_FIGHTING RL ; $f0
DEF ICON_TILE_PSYCHIC RL ; $f4
DEF ICON_TILE_COLORLESS RL ; $f8
DEF ICON_TILE_ENERGY RL ; $fc
DEF NUM_CARD_TYPE_ICON_TILES EQU _RS - CARD_TYPE_ICON_TILE_START ; $30
; CardSymbolTable uses different order
const_def
const CARD_SYMBOL_FIRE ; $0
const CARD_SYMBOL_GRASS ; $1
const CARD_SYMBOL_LIGHTNING ; $2
const CARD_SYMBOL_WATER ; $3
const CARD_SYMBOL_FIGHTING ; $4
const CARD_SYMBOL_PSYCHIC ; $5
const CARD_SYMBOL_COLORLESS ; $6
const CARD_SYMBOL_ENERGY ; $7
const CARD_SYMBOL_BASIC_POKEMON ; $8
const CARD_SYMBOL_STAGE_1_POKEMON ; $9
const CARD_SYMBOL_STAGE_2_POKEMON ; $a
const CARD_SYMBOL_TRAINER ; $b
; real-set icon tile offsets
RSRESET
DEF ICON_TILE_JUNGLE RL ; $00
DEF ICON_TILE_FOSSIL RL ; $04
DEF ICON_TILE_GB RL ; $08
DEF ICON_TILE_TEAM_ROCKET RL ; $0c
DEF ICON_TILE_EXPANSION_SHEET RL ; $10
DEF ICON_TILE_GYM_HEROES RL ; $14
DEF ICON_TILE_BULBASAUR_DECK RL ; $18
DEF ICON_TILE_SQUIRTLE_DECK RL ; $1c
; check pokemon screen icon tile offsets
RSRESET
DEF ICON_TILE_CHECK_POKEMON_SCREEN_BASIC RL ; $00
DEF ICON_TILE_CHECK_POKEMON_SCREEN_STAGE1 RL ; $04
DEF ICON_TILE_CHECK_POKEMON_SCREEN_STAGE2 RL ; $08
DEF ICON_TILE_CHECK_POKEMON_SCREEN_STAGE2_WITHOUT_STAGE1 RL ; $0c
DEF NUM_CHECK_POKEMON_SCREEN_STAGE_ICON_TILES EQU _RS ; $10
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_ACT RB 3 ; $10
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_BPX RW ; $13
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_BP1 RB ; $15
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_BP2 RB ; $16
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_BP3 RB ; $17
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_BP4 RB ; $18
DEF ICON_TILE_CHECK_POKEMON_SCREEN_PLAYER_BP5 RB ; $19
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_ACT RB 3 ; $1a
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_BPX RW ; $1d
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_BP1 RB ; $1f
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_BP2 RB ; $20
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_BP3 RB ; $21
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_BP4 RB ; $22
DEF ICON_TILE_CHECK_POKEMON_SCREEN_OPPONENT_BP5 RB ; $23
DEF NUM_CHECK_POKEMON_SCREEN_ICON_TILES EQU _RS ; $24
; setup icon tile offsets
RSRESET
DEF ICON_TILE_SETUP_FACEDOWN_ARENA RB 12 ; $00
DEF ICON_TILE_SETUP_FACEDOWN_PRIZE RB ; $0c
DEF NUM_SETUP_ICON_TILES EQU _RS ; $0d
; play area screen icon tile offsets
RSRESET
DEF ICON_TILE_PLAY_AREA_SCREEN_HAND RL ; $00
DEF ICON_TILE_PLAY_AREA_SCREEN_DECK RL ; $04
DEF ICON_TILE_PLAY_AREA_SCREEN_DISCARD_PILE RL ; $08
DEF ICON_TILE_PLAY_AREA_SCREEN_PRIZE RL ; $0c
DEF ICON_TILE_PLAY_AREA_SCREEN_PRIZE_EMPTY RL ; $10
DEF ICON_TILE_PLAY_AREA_SCREEN_BENCH_BASIC RL ; $14
DEF ICON_TILE_PLAY_AREA_SCREEN_BENCH_STAGE1 RL ; $18
DEF ICON_TILE_PLAY_AREA_SCREEN_BENCH_STAGE2 RL ; $1c
DEF ICON_TILE_PLAY_AREA_SCREEN_BENCH_STAGE2_WITHOUT_STAGE1 RL ; $20
DEF ICON_TILE_PLAY_AREA_SCREEN_BENCH_EMPTY RL ; $24
DEF ICON_TILE_PLAY_AREA_SCREEN_TARGET_ARROW RB ; $28
DEF ICON_TILE_PLAY_AREA_SCREEN_29 RL ; $29
DEF NUM_PLAY_AREA_SCREEN_ICON_TILES EQU _RS ; $2d
; card gfx
; see LoadCardGfx, CardGraphics
DEF CARD_GFX_WIDTH EQU 8 ; in tiles
DEF CARD_GFX_HEIGHT EQU 6 ; in tiles
DEF CARD_GFX_WIDTH EQU 8 ; tiles
DEF CARD_GFX_HEIGHT EQU 6 ; tiles
DEF NUM_CARD_GFX_TILES EQU CARD_GFX_WIDTH * CARD_GFX_HEIGHT ; 48
RSRESET

View File

@@ -2205,7 +2205,7 @@ _DrawPlayAreaToPlacePrizeCards::
call ZeroObjectPositions
call EmptyScreen
call LoadSymbolsFont
call LoadDeckAndDiscardPileIcons
call LoadDuelPlayAreaScreenTiles_Setup
bank1call SetDefaultPalettes
ldh a, [hWhoseTurn]
@@ -6243,10 +6243,10 @@ PrintConfirmationCardList:
; pokemon card
ld a, [wLoadedCard1Stage]
ld b, a
REPT 3 ; *= 4
add b
add b
add b ; *4
add ICON_TILE_BASIC_POKEMON
ENDR
add CARD_TYPE_ICON_TILE_START
jr .got_tile
.not_pkmn_card
@@ -6256,10 +6256,10 @@ PrintConfirmationCardList:
; energy card
sub TYPE_ENERGY
ld b, a
REPT 3 ; *= 4
add b
add b
add b ; *4
add ICON_TILE_FIRE
ENDR
add ICON_TILE_POKEMON_TYPES
jr .got_tile
.trainer_card

View File

@@ -77,49 +77,51 @@ Pals_6f0f0::
rgb 28, 12, 0
rgb 13, 9, 0
Pals_6f108::
DuelCoinTossResultPalette::
rgb 31, 31, 31
rgb 0, 0, 0
rgb 0, 0, 0
rgb 0, 10, 28
rgb 0, 10, 28 ; [X]
Pals_6f110::
DuelBoxMessagePalettes::
; BOXMSG_PLAYERS_TURN
rgb 31, 31, 31
rgb 31, 22, 9
rgb 27, 9, 4
rgb 18, 0, 0
; BOXMSG_OPPONENTS_TURN
rgb 31, 31, 31
rgb 16, 24, 29
rgb 6, 11, 24
rgb 0, 0, 16
; BOXMSG_BETWEEN_TURNS
rgb 31, 31, 31
rgb 21, 27, 13
rgb 7, 16, 0
rgb 0, 7, 0
; BOXMSG_DECISION
rgb 31, 31, 31
rgb 26, 22, 7
rgb 19, 13, 0
rgb 6, 2, 0
; BOXMSG_BENCH_POKEMON
rgb 31, 31, 31
rgb 31, 16, 20
rgb 21, 6, 14
rgb 10, 0, 4
; BOXMSG_ARENA_POKEMON
rgb 31, 31, 31
rgb 20, 29, 0
rgb 11, 18, 0
rgb 7, 6, 0
; BOXMSG_COIN_TOSS
rgb 31, 31, 31
rgb 18, 30, 31
rgb 8, 20, 27
rgb 0, 7, 14
Pals_6f148::
; back of the card
DuelSetupPalette::
rgb 31, 31, 31
rgb 0, 0, 31
rgb 31, 0, 0
@@ -155,8 +157,8 @@ DuelPlayAreaScreenGfx::
DuelPlayAreaScreenGfxDMG::
INCBIN "gfx/duel/play_area_screen_dmg.2bpp"
DuelDeckAndDiscardPileIcons::
INCBIN "gfx/duel/deck_discard_icons.2bpp"
DuelSetupGraphics::
INCBIN "gfx/duel/setup_icons.2bpp"
DuelCoinTossResultTiles::
INCBIN "gfx/duel/coin_toss_result_symbols.2bpp"

View File

Before

Width:  |  Height:  |  Size: 242 B

After

Width:  |  Height:  |  Size: 242 B

View File

@@ -627,14 +627,14 @@ CardTypeToSymbolID::
cp TYPE_ENERGY
jr c, .pokemon_card
; energy card
and 7 ; convert energy constant to type constant
and ENERGY_TYPE_MASK
ret
.trainer_card
ld a, 11
ld a, CARD_SYMBOL_TRAINER
ret
.pokemon_card
ld a, [wLoadedCard1Stage] ; different symbol for each evolution stage
add 8
add CARD_SYMBOL_BASIC_POKEMON
ret
; return the entry in CardSymbolTable of the TYPE_* constant in wLoadedCard1Type
@@ -683,18 +683,18 @@ DrawCardSymbol::
CardSymbolTable::
; starting tile number, cgb palette (grey, yellow/red, green/blue, pink/orange)
db $e0, $02 ; TYPE_ENERGY_FIRE
db $e4, $03 ; TYPE_ENERGY_GRASS
db $e8, $02 ; TYPE_ENERGY_LIGHTNING
db $ec, $03 ; TYPE_ENERGY_WATER
db $f0, $04 ; TYPE_ENERGY_PSYCHIC
db $f4, $04 ; TYPE_ENERGY_FIGHTING
db $f8, $00 ; TYPE_ENERGY_DOUBLE_COLORLESS
db $fc, $03 ; TYPE_ENERGY_UNUSED
db $d0, $03 ; TYPE_PKMN_*, Basic
db $d4, $03 ; TYPE_PKMN_*, Stage 1
db $d8, $02 ; TYPE_PKMN_*, Stage 2
db $dc, $03 ; TYPE_TRAINER
db ICON_TILE_FIRE, 2 ; CARD_SYMBOL_FIRE
db ICON_TILE_GRASS, 3 ; CARD_SYMBOL_GRASS
db ICON_TILE_LIGHTNING, 2 ; CARD_SYMBOL_LIGHTNING
db ICON_TILE_WATER, 3 ; CARD_SYMBOL_WATER
db ICON_TILE_FIGHTING, 4 ; CARD_SYMBOL_FIGHTING
db ICON_TILE_PSYCHIC, 4 ; CARD_SYMBOL_PSYCHIC
db ICON_TILE_COLORLESS, 0 ; CARD_SYMBOL_COLORLESS
db ICON_TILE_ENERGY, 3 ; CARD_SYMBOL_ENERGY
db ICON_TILE_BASIC_POKEMON, 3 ; CARD_SYMBOL_BASIC_POKEMON
db ICON_TILE_STAGE_1_POKEMON, 3 ; CARD_SYMBOL_STAGE_1_POKEMON
db ICON_TILE_STAGE_2_POKEMON, 2 ; CARD_SYMBOL_STAGE_2_POKEMON
db ICON_TILE_TRAINER, 3 ; CARD_SYMBOL_TRAINER
; copy the name and level of the card at wLoadedCard1 to wDefaultText
; a = length in number of tiles (the resulting string will be padded with spaces to match it)

View File

@@ -66,38 +66,38 @@ ENDR
ld de, RealCardSetSymbolGraphics - $4000
add hl, de
ld de, v0Tiles1 + $7c tiles
ld b, $04
ld b, REGULAR_ICON_TILE_SIZE
call CopyFontsOrDuelGraphicsTiles
or a
ret
.tile_offsets
db 8 ; GB
db -1 ; PRO
db -1 ; BASE_SET
db 0 ; JUNGLE
db 4 ; FOSSIL
db 12 ; TEAM_ROCKET
db 16 ; EXPANSION_SHEET
db 20 ; GYM_HEROES
db 24 ; BULBASAUR_DECK
db 28 ; SQUIRTLE_DECK
db ICON_TILE_GB ; GB
db -1 ; PRO
db -1 ; BASE_SET
db ICON_TILE_JUNGLE ; JUNGLE
db ICON_TILE_FOSSIL ; FOSSIL
db ICON_TILE_TEAM_ROCKET ; TEAM_ROCKET
db ICON_TILE_EXPANSION_SHEET ; EXPANSION_SHEET
db ICON_TILE_GYM_HEROES ; GYM_HEROES
db ICON_TILE_BULBASAUR_DECK ; BULBASAUR_DECK
db ICON_TILE_SQUIRTLE_DECK ; SQUIRTLE_DECK
; loads the Deck and Hand icons for the "Draw X card(s) from the deck." screen
LoadDuelDrawCardsScreenTiles::
ld hl, DuelDrawCardsScreenIcons
ld de, v0Tiles1 + $74 tiles
ld b, $08
ld b, 2 * REGULAR_ICON_TILE_SIZE
jp CopyFontsOrDuelGraphicsTiles
; load the face down basic / stage1 / stage2 card images shown in the check Pokemon screens
LoadDuelFaceDownCardTiles::
ld b, $10
ld b, NUM_CHECK_POKEMON_SCREEN_STAGE_ICON_TILES
jr LoadDuelCheckPokemonScreenTiles.got_num_tiles
; same as LoadDuelFaceDownCardTiles, plus also load the ACT / BPx tiles
LoadDuelCheckPokemonScreenTiles::
ld b, $24
ld b, NUM_CHECK_POKEMON_SCREEN_ICON_TILES
; fallthrough
.got_num_tiles
@@ -112,7 +112,7 @@ LoadDuelCheckPokemonScreenTiles::
LoadCardOrDuelMenuBorderTiles::
ld hl, DuelMenuAndCardPicBorderTiles
ld de, v0Tiles1 + $50 tiles
ld b, $08
ld b, NUM_CARD_OR_DUEL_BORDER_TILES
jr CopyFontsOrDuelGraphicsTiles
; loads the graphics of a card type header, used to display a picture of a card after drawing it
@@ -123,7 +123,7 @@ LoadCardTypeHeaderTiles::
ld hl, DuelCardHeaderGraphics - $4000
add hl, de
ld de, v0Tiles1 + $60 tiles
ld b, $10
ld b, CARD_HEADER_TILE_SIZE
call CopyFontsOrDuelGraphicsTiles
bank1call LoadCardPictureBGPalettes
ret
@@ -132,26 +132,26 @@ LoadCardTypeHeaderTiles::
LoadDuelCardSymbolTiles::
ld hl, DuelCgbSymbolGraphics - $4000
ld de, v0Tiles1 + $50 tiles
ld b, $30
ld b, NUM_CARD_TYPE_ICON_TILES
jr CopyFontsOrDuelGraphicsTiles
; loads the symbols for Stage 1 Pkmn card, Stage 2 Pkmn card, and Trainer card.
; unlike LoadDuelCardSymbolTiles excludes the symbols for Basic Pkmn and all energies.
LoadDuelCardSymbolTiles2::
ld hl, DuelCgbSymbolGraphics + $4 tiles - $4000
ld hl, DuelCgbSymbolGraphics + ICON_TILE_EVO_OR_TRAINER_OFFSET tiles - $4000
ld de, v0Tiles1 + $54 tiles
ld b, $c
ld b, NUM_EVO_OR_TRAINER_ICON_TILES
jr CopyFontsOrDuelGraphicsTiles
; load the Deck and the Discard Pile icons
LoadDeckAndDiscardPileIcons::
ld hl, Pals_6f148 - $4000
; LoadDuelPlayAreaScreenTiles plus face-down arena cards and prize cards
LoadDuelPlayAreaScreenTiles_Setup::
ld hl, DuelSetupPalette - $4000
ld de, wBackgroundPalettesCGB + 5 palettes
ld c, PAL_SIZE
call CopyFontsOrDuelGraphicsBytes
ld hl, DuelDeckAndDiscardPileIcons
ld hl, DuelSetupGraphics
ld de, v0Tiles1 + $20 tiles
ld b, $0d
ld b, NUM_SETUP_ICON_TILES
call CopyFontsOrDuelGraphicsTiles
; fallthrough
@@ -165,25 +165,25 @@ LoadDuelPlayAreaScreenTiles::
ld hl, DuelPlayAreaScreenGfxDMG
.copy
ld de, v0Tiles1 + $50 tiles
ld b, $30
ld b, NUM_PLAY_AREA_SCREEN_ICON_TILES + 3
jr CopyFontsOrDuelGraphicsTiles
; load the tiles for the [O] and [X] symbols used to display the results of a coin toss
LoadDuelCoinTossResultTiles::
ld hl, Pals_6f108 - $4000
ld hl, DuelCoinTossResultPalette - $4000
ld de, wBackgroundPalettesCGB + 2 palettes
ld c, PAL_SIZE
call CopyFontsOrDuelGraphicsBytes
ld hl, DuelCoinTossResultTiles
ld de, v0Tiles2 + $30 tiles
ld b, $08
ld b, 2 * REGULAR_ICON_TILE_SIZE
jr CopyFontsOrDuelGraphicsTiles
; load the tiles of the text characters used with TX_SYMBOL
LoadSymbolsFont::
ld hl, SymbolsFont - $4000
ld de, v0Tiles2 ; destination
ld b, $38 ; (DuelCardHeaderGraphics - SymbolsFont) / TILE_SIZE ; number of tiles
ld b, (DuelCardHeaderGraphics - SymbolsFont) / TILE_SIZE ; number of tiles
; fallthrough
; if hl ≤ $3fff
@@ -210,34 +210,34 @@ LoadCardSymbolFontTilesToSRAM::
; text box frame tiles
ld hl, DuelMenuAndCardPicBorderTiles
ld de, sGfxBuffer1 + $30 tiles
ld b, $8
ld b, NUM_CARD_OR_DUEL_BORDER_TILES
call CopyFontsOrDuelGraphicsTiles
call GetCardSymbolData
sub $d0
sub CARD_TYPE_ICON_TILE_START
ld l, a
ld h, $00
REPT 4 ; *TILE_SIZE
REPT 4 ; *= TILE_SIZE
add hl, hl
ENDR
ld de, DuelDmgSgbSymbolGraphics - $4000
add hl, de
ld de, sGfxBuffer1 + $38 tiles
ld b, $4
ld b, REGULAR_ICON_TILE_SIZE
call CopyFontsOrDuelGraphicsTiles
ld hl, DuelDmgSgbSymbolGraphics - $4000
ld de, sGfxBuffer4 + $10 tiles
ld b, $30
ld b, NUM_CARD_TYPE_ICON_TILES
jr CopyFontsOrDuelGraphicsTiles
; load the graphics and draw the duel box message given a BOXMSG_* constant in a
DrawDuelBoxMessage::
push af
REPT 3 ; *= PAL_SIZE
add a
add a
add a
ENDR
ld e, a
ld d, 0
ld hl, Pals_6f110 - $4000
ld hl, DuelBoxMessagePalettes - $4000
add hl, de
ld de, wBackgroundPalettesCGB + 2 palettes
ld c, PAL_SIZE

View File

@@ -57,7 +57,7 @@ KNOWN_PRE = [
(0x70000, 36*16, 'DuelCheckPokemonScreenGfx', 'gfx/duel/check_pokemon_screen', 6), # face-down cards + ACT/BPx (LoadDuelCheckPokemonScreenTiles)
(0x70240, 45*16, 'DuelPlayAreaScreenGfx', 'gfx/duel/play_area_screen', 9), # CGB play-area screen (Func_1dff)
(0x70510, 45*16, 'DuelPlayAreaScreenGfxDMG', 'gfx/duel/play_area_screen_dmg', 9), # DMG/SGB variant
(0x707e0, 13*16, 'DuelDeckAndDiscardPileIcons', 'gfx/duel/deck_discard_icons', 13), # LoadDeckAndDiscardPileIcons
(0x707e0, 13*16, 'DuelSetupGraphics', 'gfx/duel/setup_icons', 13), # LoadDuelPlayAreaScreenTiles_Setup
(0x708b0, 8*16, 'DuelCoinTossResultTiles', 'gfx/duel/coin_toss_result_symbols', 4), # [O]/[X] (LoadDuelCoinTossResultTiles); distinct from CoinTossResultGfx
(0x70930, 8*16, 'DuelMenuAndCardPicBorderTiles', 'gfx/duel/menu_card_pic_border', 8), # LoadCardOrDuelMenuBorderTiles
(0x709b0, 8*16, 'DuelDrawCardsScreenIcons', 'gfx/duel/draw_cards_icons', 4), # Deck/Hand (LoadDuelDrawCardsScreenTiles)