summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/gfx.asm52
-rw-r--r--engine/palettes.asm113
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