Jump to content

  • Log In with Google      Sign In   
  • Create Account






A C64 Game - Step 96

Posted by Endurion, in C64 19 April 2013 · 500 views

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

Attached Image

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

+		 

/code]
 
To toggle sfx mode move the joystick left/right in the title screen and display its state:
 
[code]
		  ;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

		  sta ZEROPAGE_POINTER_1

		  lda #>TEXT_MUSIC

		  jmp .DisplaySfxMode

+		 

		  lda #<TEXT_SFX

		  sta ZEROPAGE_POINTER_1

		  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.



Previous Step Next Step

Attached Files






Any chances to be able to modify the sound code in the future to allow sound effects and music to play at the same time? (though it probably won't be even remotely easy)

The player code wasn't done by me; I only received the binary part, so I can't say on this one. Quite common with C64, the musician would program his own player code and compose in it.

 

However I had worked with a different musician who made sfx play over the music. You always have to keep in mind that the C64 has only 3 midi-like sound channels, and music is played via them as well. So usually the music is overlayed by a sound effect (which can sound good or awkward, depends pretty much on the composition).

April 2014 »

S M T W T F S
  12345
6789101112
131415 16 171819
20212223242526
27282930   

Recent Entries

Recent Comments

PARTNERS