diff options
| author | Ash Ketchum <no-reply@sl0p.foo> | 2026-07-15 01:48:59 +0200 |
|---|---|---|
| committer | Ash Ketchum <no-reply@sl0p.foo> | 2026-07-15 01:48:59 +0200 |
| commit | efa05fa97d3880030915b52483bc747546b813a0 (patch) | |
| tree | d3f26b7b65c58b3b15b9f28a01af54fcf92d6795 | |
| parent | intro: brief POKeMON SL0P EDITION splash on the fastboot path (diff) | |
| download | pokeyellow-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-- | .gitignore | 1 | ||||
| -rw-r--r-- | Makefile | 8 | ||||
| -rw-r--r-- | engine/slop_intro.asm | 55 | ||||
| -rw-r--r-- | gfx/slop/intro.png | bin | 0 -> 1534 bytes |
4 files changed, 48 insertions, 16 deletions
@@ -32,3 +32,4 @@ *.sn* *.sa* *.sg1 +gfx/slop/intro.tilemap @@ -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 Binary files differnew file mode 100644 index 00000000..05358e52 --- /dev/null +++ b/gfx/slop/intro.png |
