LD SP,$fffe EmptyVRAM: LD HL, $8000 EmptyVRAM.loop: LD A, $00 LD (HL+), A LD A, $A0 CP H JR NZ, =EmptyVRAM.loop SetupLogoTile: LD C, $48 LD DE, =Logo LD HL, $8010 SetupLogoTile.loop: LD A, (DE) LD (HL+), A LD (HL+), A LD (HL+), A LD (HL+), A INC DE DEC C LD A, $00 CP C JR NZ, =SetupLogoTile.loop LD A, $01 LD ($8092), A LD ($8093), A LD C, $10 SetupHeart.loop: LD A, (DE) LD (HL+), A LD (HL+), A INC DE DEC C LD A, $00 CP C JR NZ, =SetupHeart.loop LD A, $01 LogoFirstLine: LD HL, $9905 LogoFirstLine.loop: LD (HL+), A INC A CP $0a JR NZ, =LogoFirstLine.loop LD (HL), $14 LogoSecondLine: LD HL, $9925 LogoSecondLine.loop: LD (HL+), A INC A CP $13 JR NZ, =LogoSecondLine.loop LD A, $13 LD ($98ee), A ; Palette LD A, $fc LD ($47), A LD ($43), A ; LCD on LD A, $91 LD ($42), A LD ($40), A ; Sound on LD A, $80 LD ($26), A ; Channel 1 lengths LD ($11), A LD A, $f3 ; Channel 1 volume & envelope LD ($12), A ; Panning LD ($25), A LD A, $77 LD ($24), A LD C, $58 Loop: LD B, $12 .Wait_VBlank: LD A, ($44) CP $90 JR NZ, =.Wait_VBlank DEC B LD A, $00 CP B JR NZ, =.Wait_VBlank LD A, C DEC C CP $c0 JR Z, =End JR NC, =Loop CP $04 JR C, =Loop LD ($42), A LD D, $c1 CALL Z, =.sound1 CP $06 LD D, $83 CALL Z, =.sound1 JR =Loop .sound1: LD E, A LD A, D LD ($13), A LD A, $87 LD ($14), A LD A, E RET Logo: .DB $3f, $ff, $f0, $f0 .DB $c0, $f0, $f0, $f0 .DB $00, $00, $00, $fe .DB $00, $1e, $7f, $1e .DB $00, $00, $80, $1f .DB $00, $01, $07, $e1 .DB $03, $e3, $f8, $e3 .DB $c0, $c0, $00, $cf .DB $00, $01, $01, $3c .DB $ff, $f0, $f0, $f0 .DB $f3, $f0, $f0, $f0 .DB $e0, $fe, $1f, $fe .DB $1e, $1e, $9e, $1e .DB $00, $1f, $78, $1f .DB $79, $f9, $79, $f9 .DB $e3, $e3, $e3, $e3 .DB $cf, $cf, $cf, $cf .DB $cf, $0f, $0f, $0f Heart: .DB $00, $00, $00, $00, $00, $00, $00, $7c .DB $82, $29, $55, $45, $29, $11, $82, $7c .PADTO 0xfc End: LD A, $01 LD ($50), A