aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAsh Ketchum <no-reply@sl0p.foo>2026-07-15 01:48:59 +0200
committerAsh Ketchum <no-reply@sl0p.foo>2026-07-15 01:48:59 +0200
commitefa05fa97d3880030915b52483bc747546b813a0 (patch)
treed3f26b7b65c58b3b15b9f28a01af54fcf92d6795
parentintro: brief POKeMON SL0P EDITION splash on the fastboot path (diff)
downloadpokeyellow-efa05fa97d3880030915b52483bc747546b813a0.tar.gz
pokeyellow-efa05fa97d3880030915b52483bc747546b813a0.tar.xz
pokeyellow-efa05fa97d3880030915b52483bc747546b813a0.zip
intro: real 2bpp graphic splash (POKeMON SL0P EDITION)
Replace the plain-text splash with an actual rendered graphic: gfx/slop/intro.png (bordered banner, big drop-shadowed SL0P logo) -> deduped tiles + tilemap via a custom rgbgfx Makefile rule (164 tiles). SlopSplash loads it into VRAM (BG map, 0x8000 tiles), holds ~2s, fades out, and restores LCDC_DEFAULT so the overworld BG addressing + OBJ sprites are intact. Reproducible from the PNG.
-rw-r--r--.gitignore1
-rw-r--r--Makefile8
-rw-r--r--engine/slop_intro.asm55
-rw-r--r--gfx/slop/intro.pngbin0 -> 1534 bytes
4 files changed, 48 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index 8952a16f..decf741d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,4 @@
*.sn*
*.sa*
*.sg1
+gfx/slop/intro.tilemap
diff --git a/Makefile b/Makefile
index d05541b0..085b78f3 100644
--- a/Makefile
+++ b/Makefile
@@ -171,6 +171,14 @@ gfx/sgb/border.2bpp: tools/gfx += --trim-whitespace
gfx/surfing_pikachu/surfing_pikachu_1c.2bpp: tools/gfx += --trim-whitespace
+### Custom graphics rules
+
+# SL0P intro splash: dedup tiles (-u) and emit a tilemap (-t) alongside the
+# 2bpp, both INCBIN'd by engine/slop_intro.asm.
+gfx/slop/intro.2bpp: gfx/slop/intro.png
+ $(RGBGFX) $(RGBGFXFLAGS) -u -t gfx/slop/intro.tilemap -o $@ $<
+gfx/slop/intro.tilemap: gfx/slop/intro.2bpp ;
+
### Catch-all graphics rules
%.2bpp: %.png
diff --git a/engine/slop_intro.asm b/engine/slop_intro.asm
index 84bbc53f..b3bcaaa6 100644
--- a/engine/slop_intro.asm
+++ b/engine/slop_intro.asm
@@ -1,27 +1,50 @@
-; Brief custom boot splash shown on the fastboot path (before the save is
-; loaded). Reuses the same display setup as the menu/text system.
+; Brief custom boot splash shown on the fastboot path. Loads a real 2bpp
+; graphic (gfx/slop/intro.png -> tiles+tilemap via rgbgfx) into VRAM and holds
+; it, then MainMenu's autoload continues into the game.
+
+DEF SLOP_INTRO_NUM_TILES EQU 164
SECTION "Slop Intro", ROMX
SlopSplash::
call ClearScreen
- call LoadFontTilePatterns
- call RunDefaultPaletteCommand
- hlcoord 6, 7
- ld de, .line1
- call PlaceString
- hlcoord 4, 9
- ld de, .line2
- call PlaceString
- ld b, HIGH(vBGMap1)
+; load the custom tiles into the 0x8000 block (unsigned addressing)
+ ld hl, vChars0
+ ld de, SlopIntroTiles
+ ld b, BANK(SlopIntroTiles)
+ ld c, SLOP_INTRO_NUM_TILES
+ call CopyVideoData
+ ldh a, [rLCDC]
+ or LCDC_BLOCK01 ; BG/window tile data at 0x8000
+ ldh [rLCDC], a
+; blit the 20x18 tilemap through wTileMap so the 20->32 row stride is handled.
+; Use the BG map (vBGMap0): the map load on continue overwrites it, so nothing
+; is left corrupting the overworld (unlike the window map vBGMap1).
+ ld hl, SlopIntroTilemap
+ ld de, wTileMap
+ ld bc, SlopIntroTilemapEnd - SlopIntroTilemap
+ call CopyData
+ ld b, HIGH(vBGMap0)
call CopyScreenTileBufferToVRAM
xor a
- ldh [hWY], a
- ld a, $01
- ldh [hAutoBGTransferEnabled], a
+ ldh [hSCX], a
+ ldh [hSCY], a
+ ld a, LCDC_ON | LCDC_BLOCK01 | LCDC_BG_9800 | LCDC_BG_ON ; BG only, tiles @0x8000
+ ldh [rLCDC], a
+ call GBPalNormal
ld c, 120 ; ~2 seconds
call DelayFrames
+ call GBFadeOutToWhite
+; restore the default LCDC so the overworld renders correctly: signed tile data
+; (BLOCK21) for the BG *and* OBJ back on so entity sprites reappear
+ ld a, LCDC_DEFAULT
+ ldh [rLCDC], a
ret
-.line1: db "POKéMON@"
-.line2: db "SL0P EDITION@"
+SlopIntroTiles:
+ INCBIN "gfx/slop/intro.2bpp"
+SlopIntroTilesEnd:
+
+SlopIntroTilemap:
+ INCBIN "gfx/slop/intro.tilemap"
+SlopIntroTilemapEnd:
diff --git a/gfx/slop/intro.png b/gfx/slop/intro.png
new file mode 100644
index 00000000..05358e52
--- /dev/null
+++ b/gfx/slop/intro.png
Binary files differ