diff --git a/DMGTRIS.GB b/DMGTRIS.GB index 2bca4ee..cf96517 100644 Binary files a/DMGTRIS.GB and b/DMGTRIS.GB differ diff --git a/src/constants.asm b/src/constants.asm index 8124812..a91308f 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -89,6 +89,10 @@ sPause:: db " P A U S E" db "P A U S E " db " P A U S E" +sEaster0:: db $D4, $D6, $D8, $DA, $DC +sEaster1:: db $D5, $D7, $D9, $DB, $DD +sEaster2:: db $DE, $E0, $D8, $DA, $DC +sEaster3:: db $DF, $E1, $D9, $DB, $DD sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. db 0, 8, 16, 24 ; I db 0, 8, 8, 16 ; Z diff --git a/src/include/globals.asm b/src/include/globals.asm index a55dae9..273faec 100644 --- a/src/include/globals.asm +++ b/src/include/globals.asm @@ -114,6 +114,8 @@ DEF TITLE_LEVEL EQU $996C DEF TITLE_ROLLS EQU $9A2F DEF FIELD_RNGTELL EQU $9812 DEF FIELD_TOP_LEFT EQU $9800+1 +DEF EASTER_0 EQU $9885 +DEF EASTER_1 EQU $98A5 DEF TILE_FIELD_EMPTY EQU 4 DEF TILE_PIECE_0 EQU 10 DEF TILE_0 EQU 66 diff --git a/src/main.asm b/src/main.asm index 64476f0..402aacd 100644 --- a/src/main.asm +++ b/src/main.asm @@ -28,6 +28,7 @@ INCLUDE "res/title_map.inc" SECTION "High Globals", HRAM hGameState:: ds 1 hSwapAB:: ds 1 +hInitialA:: ds 1 SECTION "Stack", WRAM0 @@ -38,6 +39,9 @@ wStackEnd:: SECTION "Code Entry Point", ROM0 Main:: + ; Load the initial A register. For reasons. + ldh [hInitialA], a + ; Turn off LCD during initialization. wait_vram xor a, a diff --git a/src/res/sources/tiles.gbr b/src/res/sources/tiles.gbr index f6549d3..ee75eb8 100644 Binary files a/src/res/sources/tiles.gbr and b/src/res/sources/tiles.gbr differ diff --git a/src/res/tiles.inc b/src/res/tiles.inc index 81af435..7228917 100644 --- a/src/res/tiles.inc +++ b/src/res/tiles.inc @@ -444,6 +444,34 @@ Tiles:: DB $07,$00,$00,$00,$00,$00,$00,$00 DB $07,$00,$04,$00,$06,$00,$04,$00 DB $04,$00,$00,$00,$00,$00,$00,$00 + DB $7C,$7C,$42,$42,$41,$41,$5D,$48 + DB $6E,$4C,$5B,$4A,$79,$49,$00,$00 + DB $68,$58,$58,$68,$68,$58,$48,$78 + DB $48,$78,$48,$78,$78,$78,$00,$00 + DB $7C,$7C,$84,$84,$04,$04,$75,$25 + DB $ED,$65,$B5,$A5,$3D,$25,$00,$00 + DB $2D,$35,$35,$2D,$2D,$35,$25,$3D + DB $24,$3C,$24,$3C,$3C,$3C,$00,$00 + DB $3C,$3C,$42,$42,$81,$81,$BA,$18 + DB $67,$27,$A0,$20,$EF,$2F,$00,$00 + DB $6D,$AA,$A6,$65,$65,$A6,$18,$FF + DB $81,$FF,$42,$7E,$3C,$3C,$00,$00 + DB $3F,$3F,$20,$20,$20,$20,$AE,$A6 + DB $B5,$A5,$2E,$26,$BF,$A0,$00,$00 + DB $B5,$AA,$AE,$B7,$B5,$AD,$A6,$BF + DB $20,$3F,$20,$3F,$3F,$3F,$00,$00 + DB $1F,$1F,$90,$90,$50,$50,$DF,$5E + DB $42,$42,$C3,$42,$83,$82,$00,$00 + DB $82,$83,$43,$42,$42,$C3,$42,$C3 + DB $42,$C3,$82,$83,$03,$03,$00,$00 + DB $01,$01,$02,$02,$04,$04,$0D,$08 + DB $0B,$09,$0D,$09,$0F,$09,$00,$00 + DB $0B,$0D,$0D,$0B,$0B,$0D,$08,$0F + DB $04,$07,$02,$03,$01,$01,$00,$00 + DB $E0,$E0,$10,$10,$08,$08,$D5,$C5 + DB $2D,$25,$3D,$3D,$01,$01,$00,$00 + DB $01,$01,$3D,$3D,$2D,$35,$C5,$FD + DB $08,$F8,$10,$F0,$E0,$E0,$00,$00 TilesEnd:: diff --git a/src/state_title.asm b/src/state_title.asm index 7a0cdd3..d4a66f4 100644 --- a/src/state_title.asm +++ b/src/state_title.asm @@ -38,7 +38,33 @@ SwitchToTitle:: ld bc, TitleScreenTilemapEnd - TitleScreenTilemap call UnsafeMemCopy + ; Little easter egg. + ldh a, [hInitialA] + cp a, $FF + jr nz, :+ + ld de, sEaster0 + ld hl, EASTER_0 + ld bc, 5 + call UnsafeMemCopy + ld de, sEaster1 + ld hl, EASTER_1 + ld bc, 5 + call UnsafeMemCopy + jr .oam + +: cp a, $11 + jr nz, .oam + ld de, sEaster2 + ld hl, EASTER_0 + ld bc, 5 + call UnsafeMemCopy + ld de, sEaster3 + ld hl, EASTER_1 + ld bc, 5 + call UnsafeMemCopy + ; Clear OAM. +.oam call ClearOAM call SetNumberSpritePositions