diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/gfx.asm | 52 | ||||
-rw-r--r-- | engine/palettes.asm | 113 |
2 files changed, 139 insertions, 26 deletions
diff --git a/engine/gfx.asm b/engine/gfx.asm index 2c19fe6..66b3f90 100644 --- a/engine/gfx.asm +++ b/engine/gfx.asm @@ -6,22 +6,22 @@ LoadFontGraphics:: ; f8000 (3e:4000) ld de, FontGFX ld hl, $8800 lb bc, BANK(FontGFX), ((FontGFXEnd - FontGFX) / LEN_1BPP_TILE) - jp CopyVideoDataDoubleOptimized + jp Get1bpp LoadFontExtraGraphicsWithCursor:: ; f800c (3e:400c) ld de, FontExtraCDEFGHIVSLM_GFX ld hl, $9620 lb bc, BANK(FontExtraCDEFGHIVSLM_GFX), ((FontSmallKanaPunctuationGFXEnd - FontExtraCDEFGHIVSLM_GFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ld de, BlackTileAndCursor1bppGFX ld hl, $9600 lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFXEnd - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp jr LoadActiveFrameGraphics LoadPokemonMenuGraphics:: ; f8026 (3e:4026) ld de, BattleHPBarGFX ld hl, $9600 lb bc, BANK(BattleHPBarGFX), ((LevelUpGFXEnd - BattleHPBarGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp jr LoadActiveFrameGraphics LoadHexadecimalFontOrHUDGraphics:: ; f8034 (3e:4034) call LoadActiveFrameGraphics @@ -31,25 +31,25 @@ LoadHexadecimalFontOrHUDGraphics:: ; f8034 (3e:4034) ld hl, $9660 ld de, FontGFX + (("0" - "ア") * $08) lb bc, BANK(FontGFX), ("9" - "0" + 1) - call CopyVideoDataDoubleOptimized + call Get1bpp ld hl, $9700 ld de, FontExtraAB_GFX lb bc, BANK(FontExtraAB_GFX), ("F" - "A" + 1) - call CopyVideoDataOptimized + call Get2bpp ret LoadHudGraphics:: ; f8057 (3e:4057) ld hl, $9660 ld de, FontGFX + (("0" - "ア") * $08) lb bc, BANK(FontGFX), ("9" - "0" + 1) - call CopyVideoDataDoubleOptimized + call Get1bpp ld hl, $9700 ld de, $7381 ld bc, $0401 - call CopyVideoDataOptimized + call Get2bpp ld hl, $9710 ld de, HUD_GFX lb bc, BANK(HUD_GFX), ((HUD_GFXEnd - HUD_GFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ret LoadActiveFrameGraphics:: ; f807c (3e:407c) ld a, [wActiveFrame] @@ -60,80 +60,80 @@ LoadActiveFrameGraphics:: ; f807c (3e:407c) ld e, l ld hl, $9790 lb bc, BANK(FrameGFX), ((FrameGFXFirstFrameEnd - FrameGFXFirstFrame) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ld hl, $97f0 ld de, EmptyTile1bppGFX lb bc, BANK(EmptyTile1bppGFX), ((EmptyTile1bppGFXEnd - EmptyTile1bppGFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ret LoadPokeDexGraphics:: ; f80a0 (3e:40a0) call LoadPokemonMenuGraphics ld de, PokedexGFX ld hl, $9600 lb bc, BANK(PokedexGFX), ((PokedexLocationGFXEnd - PokedexGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ld de, PokeBallsGFX ld hl, $9720 lb bc, BANK(PokeBallsGFX), 1 ; 1 of 4 tiles - jp CopyVideoDataOptimized + jp Get2bpp LoadBattleGraphics:: ; f80bb (3e:40bb) ld de, BattleHPBarGFX ld hl, $9600 lb bc, BANK(BattleHPBarGFX), ((BattleHPBarGFXEnd - BattleHPBarGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ld hl, $9700 ld de, BattleMarkersGFX lb bc, BANK(BattleMarkersGFX), ((BattleMarkersGFXEnd - BattleMarkersGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp call LoadActiveFrameGraphics ld de, HpExpBarParts0GFX ld hl, $96c0 lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFXEnd - HpExpBarParts0GFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ld de, HpExpBarParts1GFX ld hl, $9730 lb bc, BANK(HpExpBarParts1GFX), ((HpExpBarParts3GFXEnd - HpExpBarParts1GFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ld de, ExpBarGFX ld hl, $9550 lb bc, BANK(ExpBarGFX), ((ExpBarGFXEnd - ExpBarGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ret LoadPokemonStatsGraphics:: ; f80fb (3e:40fb) call LoadPokemonMenuGraphics ld de, HpExpBarParts0GFX ld hl, $96c0 lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFXEnd - HpExpBarParts0GFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ld de, HpExpBarParts1GFX ld hl, $9780 lb bc, BANK(HpExpBarParts1GFX), 1 ; 1 of 6 tiles - call CopyVideoDataDoubleOptimized + call Get1bpp ld de, HpExpBarParts2GFX ld hl, $9760 lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts2GFXEnd - HpExpBarParts2GFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ld de, ExpBarGFX ld hl, $9550 lb bc, BANK(ExpBarGFX), ((ExpBarGFXEnd - ExpBarGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ld de, StatsGFX ld hl, $9310 lb bc, BANK(StatsGFX), ((StatsGFXEnd - StatsGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp ret LoadBackpackGraphics:: ; f813b (3e:413b) ld de, BlackTileAndCursor1bppGFX ld hl, $9600 lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFXEnd - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE) - call CopyVideoDataDoubleOptimized + call Get1bpp ld de, PackIconGFX ld hl, $9620 lb bc, BANK(PackIconGFX), 12 ; 12 of 15 tiles - call CopyVideoDataOptimized + call Get2bpp ld de, FontSmallKanaPunctuationGFX ld hl, $96e0 lb bc, BANK(FontSmallKanaPunctuationGFX), ((FontSmallKanaPunctuationGFXEnd - FontSmallKanaPunctuationGFX) / LEN_2BPP_TILE) - call CopyVideoDataOptimized + call Get2bpp jp LoadActiveFrameGraphics ; 0xf8162
\ No newline at end of file diff --git a/engine/palettes.asm b/engine/palettes.asm new file mode 100644 index 0000000..d1f93c0 --- /dev/null +++ b/engine/palettes.asm @@ -0,0 +1,113 @@ +INCLUDE "constants.asm" + +SECTION "Overworld fade", ROMX[$433e],BANK[$23] + +OverworldFadeIn:: ; 23:433e + ld c, 0 + call GetFadeStep + ld b, 4 + call FadeTowardsWhite + ret + +OverworldFadeOut:: ; 23:4349 + ld c, 9 + call GetFadeStep + ld b, 4 + call FadeTowardsBlack + ret + + +; TODO: merge this +SECTION "Palette fading, part 2?", ROMX[$43d1],BANK[$23] + +ApplyPalettesAtHL:: ; 23:43d1 + push hl + ld a, [hli] + ld [rBGP], a + ld a, [hli] + ld [rOBP0], a + ld a, [hli] + ld [rOBP1], a + pop hl + ret + +FadeTowardsWhite:: ; 23:43dd + call ApplyPalettesAtHL + inc hl + inc hl + inc hl + ld c, 8 + call DelayFrames + dec b + jr nz, FadeTowardsWhite + ret + +FadeTowardsBlack:: ; 23:43ec + call ApplyPalettesAtHL + dec hl + dec hl + dec hl + ld c, 8 + call DelayFrames + dec b + jr nz, FadeTowardsBlack + ret + +GetFadeStep:: ; 23:43fb + ld a, [wTimeOfDayPal] + and 3 + push bc + ld c, a + ld b, 0 + ld hl, .sequences + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop bc + ld b, 0 + add hl, bc + ret + +.sequences + dw .sequence0 + dw .sequence1 + dw .sequence2 + dw .sequence3 + +.sequence0 + db $ff, $ff, $ff + db $fe, $fe, $fe + db $f9, $e4, $e4 + db $e4, $d0, $d0 + db $90, $80, $80 + db $40, $40, $40 + db $00, $00, $00 + +.sequence1 + db $ff, $ff, $ff + db $fe, $fe, $fe + db $f9, $e4, $e4 + db $e9, $d0, $d0 + db $90, $80, $80 + db $40, $40, $40 + db $00, $00, $00 + +.sequence2 + db $ff, $ff, $ff + db $fe, $fe, $ff + db $f9, $e4, $ff + db $f9, $d0, $ff + db $90, $80, $90 + db $40, $40, $40 + db $00, $00, $00 + +.sequence3 + db $ff, $ff, $ff + db $fe, $fe, $fe + db $f9, $e4, $e4 + db $e8, $d0, $d0 + db $90, $80, $80 + db $40, $40, $40 + db $00, $00, $00 |