diff options
author | Astatin <[email protected]> | 2025-03-22 01:31:25 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2025-03-22 01:32:12 +0900 |
commit | 6613a89b4d31e3718bb20d144ae93bedfeb35a78 (patch) | |
tree | 427639309824a5b98eb55493b0df169a3f032f41 /assets/Astatin-bootrom.gbasm | |
parent | c07b53df795c2c0eadcb4cc19c7bb83f44a10855 (diff) |
Add custom DMG bootrom
Diffstat (limited to 'assets/Astatin-bootrom.gbasm')
-rw-r--r-- | assets/Astatin-bootrom.gbasm | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/assets/Astatin-bootrom.gbasm b/assets/Astatin-bootrom.gbasm new file mode 100644 index 0000000..3fd2d23 --- /dev/null +++ b/assets/Astatin-bootrom.gbasm @@ -0,0 +1,157 @@ +; .INCLUDE "minimal.gbasm" +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 + +; 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 + LD ($42), A + DEC C + CP $02 + LD D, $83 + CALL Z, =.sound1 + CP $00 + JR NZ, =Loop + LD D, $c1 + CALL =.sound1 + + .Lock: + JP =End + + .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 |