GBC fixes: skip logo fade + set logo vram map
This commit is contained in:
@@ -38,6 +38,11 @@ GraphicB:
|
||||
ret
|
||||
|
||||
Intro:
|
||||
; skip fade-out on gameboy color
|
||||
ldh a, [GameboyType]
|
||||
cp a, $11
|
||||
jr z, .setBGPalette
|
||||
|
||||
; fade bg palette
|
||||
ld b, 8
|
||||
.fadeDelay0
|
||||
@@ -64,6 +69,7 @@ Intro:
|
||||
jr nz, .fadeDelay2
|
||||
|
||||
; load bg and obj palette [0=black, 1=dark gray, 2=light gray, 3=white]
|
||||
.setBGPalette
|
||||
ld a, %11100100
|
||||
ldh [rBGP], a
|
||||
|
||||
@@ -80,21 +86,43 @@ Intro:
|
||||
cp $34
|
||||
jr nz, .logoloop
|
||||
|
||||
; move all map indices to block 1
|
||||
; display logo in map 0 from block 1
|
||||
ld hl, _SCRN0
|
||||
ld bc, 18 * 32
|
||||
.copy
|
||||
ld d, $80
|
||||
ld bc, 8 * 32 + 4
|
||||
call VideoMemorySet
|
||||
|
||||
ld b, 12
|
||||
.logoLine1
|
||||
ldh a, [rSTAT]
|
||||
and a, STATF_BUSY
|
||||
jr nz, .copy
|
||||
ld a, [hl]
|
||||
add a, $80
|
||||
ld [hl+], a
|
||||
dec bc
|
||||
ld a, b
|
||||
or c
|
||||
jr nz, .copy
|
||||
jr nz, .logoLine1
|
||||
inc d
|
||||
ld [hl], d
|
||||
inc hl
|
||||
dec b
|
||||
jr nz, .logoLine1
|
||||
|
||||
ld d, $80
|
||||
ld bc, 20
|
||||
call VideoMemorySet
|
||||
|
||||
ld b, 12
|
||||
ld d, $8C
|
||||
.logoLine2
|
||||
ldh a, [rSTAT]
|
||||
and a, STATF_BUSY
|
||||
jr nz, .logoLine2
|
||||
inc d
|
||||
ld [hl], d
|
||||
inc hl
|
||||
dec b
|
||||
jr nz, .logoLine2
|
||||
|
||||
ld d, $80
|
||||
ld bc, 8 * 32 + 28
|
||||
call VideoMemorySet
|
||||
|
||||
; display nintendo logo from new map
|
||||
ld a, LCDCF_ON | LCDCF_BGON | LCDCF_BG9800
|
||||
ldh [rLCDC], a
|
||||
|
||||
106
Code/main.asm
106
Code/main.asm
@@ -7,8 +7,10 @@ EMPTY_BG_TILE EQU 17
|
||||
ANIMATE EQU %01
|
||||
STEP EQU %10
|
||||
|
||||
EXPORT GameboyType
|
||||
SECTION "Main Memory", HRAM
|
||||
Control: ds 1
|
||||
GameboyType: ds 1
|
||||
|
||||
SECTION "Header", ROM0[$100]
|
||||
EntryPoint:
|
||||
@@ -18,58 +20,10 @@ REPT $150 - $104
|
||||
db 0
|
||||
ENDR
|
||||
|
||||
SECTION "Jingle", ROM0
|
||||
Jingle:
|
||||
|
||||
; load initial frequency into HL
|
||||
FREQUENCY = 330
|
||||
ld hl, PULSE_FREQUENCY
|
||||
|
||||
; load step to be added to frequency in DE
|
||||
; based on if a != 0 or not
|
||||
or a
|
||||
jr z, .up
|
||||
.down
|
||||
ld de, 100
|
||||
jr .do
|
||||
.up
|
||||
ld de, -100
|
||||
|
||||
.do
|
||||
; load note count
|
||||
ld b, 3
|
||||
.loop
|
||||
|
||||
; play pulse channel 1 with frequency set in HL
|
||||
xor a
|
||||
ldh [rNR10], a ; sweep
|
||||
ld a, (%01 << 6) + 30
|
||||
ldh [rNR11], a ; pattern + sound length
|
||||
ld a, $F1
|
||||
ldh [rNR12], a ; init volume + envelope sweep
|
||||
ld a, l
|
||||
ldh [rNR13], a
|
||||
ld a, h
|
||||
or a, SOUND_START
|
||||
ldh [rNR14], a
|
||||
|
||||
; add DE to HL frequency
|
||||
add hl, de
|
||||
|
||||
; wait ~166ms
|
||||
ld c, 6
|
||||
.delay
|
||||
HaltAndClearInterrupts
|
||||
dec c
|
||||
jr nz, .delay
|
||||
|
||||
; repeat a few times
|
||||
dec b
|
||||
ret z
|
||||
jr .loop
|
||||
|
||||
SECTION "Main", ROM0[$150]
|
||||
Start:
|
||||
Start:
|
||||
ldh [GameboyType], a
|
||||
|
||||
; enable sound
|
||||
ld a, $80
|
||||
ld [rNR52], a ; sound ON
|
||||
@@ -233,3 +187,53 @@ FREQUENCY = 220
|
||||
ldh [rLCDC], a
|
||||
|
||||
jr .mainloop
|
||||
|
||||
SECTION "Jingle", ROM0
|
||||
Jingle:
|
||||
|
||||
; load initial frequency into HL
|
||||
FREQUENCY = 330
|
||||
ld hl, PULSE_FREQUENCY
|
||||
|
||||
; load step to be added to frequency in DE
|
||||
; based on if a != 0 or not
|
||||
or a
|
||||
jr z, .up
|
||||
.down
|
||||
ld de, 100
|
||||
jr .do
|
||||
.up
|
||||
ld de, -100
|
||||
|
||||
.do
|
||||
; load note count
|
||||
ld b, 3
|
||||
.loop
|
||||
|
||||
; play pulse channel 1 with frequency set in HL
|
||||
xor a
|
||||
ldh [rNR10], a ; sweep
|
||||
ld a, (%01 << 6) + 30
|
||||
ldh [rNR11], a ; pattern + sound length
|
||||
ld a, $F1
|
||||
ldh [rNR12], a ; init volume + envelope sweep
|
||||
ld a, l
|
||||
ldh [rNR13], a
|
||||
ld a, h
|
||||
or a, SOUND_START
|
||||
ldh [rNR14], a
|
||||
|
||||
; add DE to HL frequency
|
||||
add hl, de
|
||||
|
||||
; wait ~166ms
|
||||
ld c, 6
|
||||
.delay
|
||||
HaltAndClearInterrupts
|
||||
dec c
|
||||
jr nz, .delay
|
||||
|
||||
; repeat a few times
|
||||
dec b
|
||||
ret z
|
||||
jr .loop
|
||||
|
||||
Reference in New Issue
Block a user