A C64 Game - Step 96


And a nice little update, Richard Bayliss added sounds effects. Now there's a SFX mode, toggle in the title screen with left/right.



The effects are integrated in the player code as separate "songs". So we add a variable SFX_MODE and check it's value when we want to play an effect or start the music:

No music in title when SFX mode enabled:

          ;initialise music player
ldx #0
ldy #0
lda SFX_MODE
bne +

lda #MUSIC_TITLE_TUNE
jsr MUSIC_PLAYER



Play an effect is similar:

          lda SFX_MODE
beq +

lda #MUSIC_PICKUP
jsr MUSIC_PLAYER

+



To toggle sfx mode move the joystick left/right in the title screen and display its state:

          ;switch through music/sfx mode
lda #$04
bit JOYSTICK_PORT_II
bne .NotLeftPressed

lda LEFT_RELEASED
beq .LeftPressed

lda SFX_MODE
eor #$01
sta SFX_MODE
jsr DisplaySfxMode

lda SFX_MODE
beq +

lda #MUSIC_PICKUP
jmp ++

+
lda #MUSIC_TITLE_TUNE
++
jsr MUSIC_PLAYER
lda #0
jmp .LeftPressed

.NotLeftPressed
lda #1

.LeftPressed
sta LEFT_RELEASED
lda #$08
bit JOYSTICK_PORT_II
bne .NotRightPressed

lda RIGHT_RELEASED
beq .RightPressed

lda SFX_MODE
eor #$01
sta SFX_MODE
jsr DisplaySfxMode

lda SFX_MODE
beq +

lda #MUSIC_PICKUP
jmp ++

+
lda #MUSIC_TITLE_TUNE
++
jsr MUSIC_PLAYER
lda #0
jmp .RightPressed

.NotRightPressed
lda #1

.RightPressed
sta RIGHT_RELEASED

!zone DisplaySfxMode
DisplaySfxMode
lda SFX_MODE
bne +

lda #TEXT_MUSIC
jmp .DisplaySfxMode

+
lda #TEXT_SFX

.DisplaySfxMode
sta ZEROPAGE_POINTER_1 + 1
lda #34
sta PARAM1
lda #24
sta PARAM2
jmp DisplayText



Due to technical limitations in the player code there are not too many sounds, but there are enough to make it worthwile.


step96.zip