mirror of
https://github.com/jeremysrand/BuGS.git
synced 2024-06-14 04:29:28 +00:00
Add sounds for shooting, killing bugs, dying and resetting mushrooms after death. The shoot sound isn't great because it doesn't restart when rapid fire is happening but this is a start.
This commit is contained in:
parent
8b2e753b68
commit
bae931aaa6
|
@ -288,7 +288,7 @@ shootFlea entry
|
|||
beq shootFlea_faster
|
||||
|
||||
jsl explodeFlea
|
||||
|
||||
~FFStartPlaying #KILL_SOUND_GEN_BIT
|
||||
jmp scoreAddTwoHundred
|
||||
|
||||
shootFlea_faster anop
|
||||
|
|
|
@ -50,10 +50,13 @@ resetMushrooms_jumpInst anop
|
|||
nop
|
||||
|
||||
resetMushrooms_doneReset anop
|
||||
txa
|
||||
inx
|
||||
inx
|
||||
bra resetMushrooms_loop
|
||||
lda mushroomRefreshWait
|
||||
beq resetMushrooms_next
|
||||
dec a
|
||||
sta mushroomRefreshWait
|
||||
sec
|
||||
rtl
|
||||
|
||||
resetMushrooms_startFromBeginning anop
|
||||
ldx #0
|
||||
|
||||
|
@ -73,10 +76,24 @@ resetMushrooms_keepChecking anop
|
|||
stx mushroomToRefresh
|
||||
lda #TILE_MUSHROOM4
|
||||
sta tileType,x
|
||||
lda #TILE_STATE_DIRTY
|
||||
sta tileDirty,x
|
||||
jsl scoreAddFive
|
||||
~FFStartPlaying mushroomSound
|
||||
lda mushroomSound
|
||||
asl a
|
||||
and #BONUS2_SOUND_GEN_BIT+BONUS3_SOUND_GEN_BIT
|
||||
bne resetMushrooms_doneSound
|
||||
lda #BONUS1_SOUND_GEN_BIT
|
||||
resetMushrooms_doneSound anop
|
||||
sta mushroomSound
|
||||
ldx mushroomToRefresh
|
||||
lda #EXPLOSION_LAST_OFFSET
|
||||
bra resetMushrooms_explode
|
||||
sta mushroomExplosionSprite
|
||||
lda #2
|
||||
sta mushroomRefreshWait
|
||||
sec
|
||||
rtl
|
||||
|
||||
resetMushrooms_next anop
|
||||
inx
|
||||
|
@ -149,6 +166,8 @@ shootMushroom_done anop
|
|||
|
||||
mushroomToRefresh dc i2'INVALID_TILE_NUM'
|
||||
mushroomExplosionSprite dc i2'0'
|
||||
mushroomSound dc i2'BONUS1_SOUND_GEN_BIT'
|
||||
mushroomRefreshWait dc i2'0'
|
||||
|
||||
|
||||
end
|
||||
|
|
|
@ -15,7 +15,7 @@ gamePlayer start
|
|||
using tileData
|
||||
using screenData
|
||||
|
||||
PLAYER_EXPLOSION_FRAME_COUNT equ 4
|
||||
PLAYER_EXPLOSION_FRAME_COUNT equ 3
|
||||
PLAYER_RESTART_LEVEL_FRAME_COUNT equ 20
|
||||
|
||||
|
||||
|
@ -112,6 +112,8 @@ updatePlayer_nextExplosion anop
|
|||
sec
|
||||
sbc #4
|
||||
sta playerExplosionOffset
|
||||
lda #PLAYER_EXPLOSION_FRAME_COUNT
|
||||
sta playerFrameCount
|
||||
bra updatePlayer_drawExplosion
|
||||
updatePlayer_doneExplosion anop
|
||||
lda #PLAYER_STATE_MUSHROOMS
|
||||
|
@ -486,10 +488,11 @@ updatePlayer_explosionOffLeft anop
|
|||
sta mouseAddress
|
||||
|
||||
updatePlayer_contCollision anop
|
||||
lda #PLAYER_EXPLOSION_FRAME_COUNT-1
|
||||
lda #PLAYER_EXPLOSION_FRAME_COUNT
|
||||
sta playerFrameCount
|
||||
lda #SHIP_EXPLOSION_LAST_OFFSET
|
||||
sta playerExplosionOffset
|
||||
~FFStartPlaying #DEATH_SOUND_GEN_BIT
|
||||
jmp updatePlayer_exploding
|
||||
|
||||
updatePlayer_noCollision anop
|
||||
|
|
|
@ -371,6 +371,7 @@ shootScorpion entry
|
|||
inc a
|
||||
inc a
|
||||
sta scorpionScreenOffset
|
||||
~FFStartPlaying #KILL_SOUND_GEN_BIT
|
||||
jmp scoreAddOneThousand
|
||||
|
||||
shootScorpion_done anop
|
||||
|
|
|
@ -1781,6 +1781,7 @@ isSegmentCollision_returnTrue anop
|
|||
; Call this with the segment num * 2 in the X register
|
||||
shootSegment entry
|
||||
phx
|
||||
~FFStartPlaying #KILL_SOUND_GEN_BIT
|
||||
lda segmentStates,x
|
||||
cmp #SEGMENT_STATE_BODY
|
||||
beq shootSegment_body
|
||||
|
|
|
@ -75,6 +75,13 @@ updateShot_shifted anop
|
|||
updateShot_notNone anop
|
||||
cmp #SHOT_STATE_START_SHOOTING
|
||||
bne updateShot_shooting
|
||||
; pha
|
||||
; ~FFSoundDoneStatus #FIRE_SOUND_GENERATOR
|
||||
; pla
|
||||
; bne updateShot_noSoundPlaying
|
||||
; ~FFStopSound #FIRE_SOUND_GEN_BIT
|
||||
;updateShot_noSoundPlaying anop
|
||||
~FFStartPlaying #FIRE_SOUND_GEN_BIT
|
||||
lda SHOT_STATE_SHOOTING
|
||||
sta shotState
|
||||
lda #1
|
||||
|
@ -141,7 +148,9 @@ updateShot_checkCollision anop
|
|||
rtl
|
||||
updateShot_collision anop
|
||||
cpx #SCREEN_ADDRESS
|
||||
blt updateShot_done
|
||||
bge updateShot_onScreen
|
||||
rtl
|
||||
updateShot_onScreen anop
|
||||
and #$3333
|
||||
bne updateShot_maybeMushroom
|
||||
|
||||
|
|
|
@ -809,7 +809,8 @@ shootSpider entry
|
|||
lda spiderState
|
||||
cmp #SPIDER_STATE_LEFT_DIAG_DOWN
|
||||
blt shootSpider_done
|
||||
|
||||
|
||||
~FFStartPlaying #KILL_SOUND_GEN_BIT
|
||||
jsl explodeSpider
|
||||
cmp mouseAddress
|
||||
blt shootSpider_playerBelow
|
||||
|
|
|
@ -105,6 +105,25 @@ TILE_POISON_A_MUSHROOM gequ TILE_POISON_MUSHROOM4-TILE_MUSHROOM4
|
|||
|
||||
NUM_COLOUR_PALETTES gequ 14
|
||||
|
||||
; These need to be kept consistent with the defines in main.h
|
||||
BONUS1_SOUND_GENERATOR gequ 1
|
||||
BONUS2_SOUND_GENERATOR gequ 2
|
||||
BONUS3_SOUND_GENERATOR gequ 3
|
||||
DEATH_SOUND_GENERATOR gequ 4
|
||||
FIRE_SOUND_GENERATOR gequ 5
|
||||
KILL_SOUND_GENERATOR gequ 6
|
||||
SEGMENTS_SOUND_GENERATOR gequ 7
|
||||
SPIDER_SOUND_GENERATOR gequ 8
|
||||
|
||||
BONUS1_SOUND_GEN_BIT gequ 1|BONUS1_SOUND_GENERATOR
|
||||
BONUS2_SOUND_GEN_BIT gequ 1|BONUS2_SOUND_GENERATOR
|
||||
BONUS3_SOUND_GEN_BIT gequ 1|BONUS3_SOUND_GENERATOR
|
||||
DEATH_SOUND_GEN_BIT gequ 1|DEATH_SOUND_GENERATOR
|
||||
FIRE_SOUND_GEN_BIT gequ 1|FIRE_SOUND_GENERATOR
|
||||
KILL_SOUND_GEN_BIT gequ 1|KILL_SOUND_GENERATOR
|
||||
SEGMENTS_SOUND_GEN_BIT gequ 1|SEGMENTS_SOUND_GENERATOR
|
||||
SPIDER_SOUND_GEN_BIT gequ 1|SPIDER_SOUND_GENERATOR
|
||||
|
||||
SPRITE_SPEED_SLOW gequ 0
|
||||
SPRITE_SPEED_FAST gequ 1
|
||||
|
||||
|
|
53
BuGS/main.c
53
BuGS/main.c
|
@ -60,8 +60,48 @@ void setupSound(word soundNum, SoundParamBlock * soundParams, boolean looped)
|
|||
soundParams->volSetting = 255;
|
||||
soundParams->waveStart = *handle;
|
||||
soundParams->waveSize = (handleSize / 256) + 1;
|
||||
soundParams->bufferSize = 0;
|
||||
nextDocBuffer += (soundParams->waveSize * 256);
|
||||
|
||||
if (handleSize > 16384)
|
||||
{
|
||||
soundParams->bufferSize = 7;
|
||||
nextDocBuffer += 32768;
|
||||
}
|
||||
else if (handleSize > 8192)
|
||||
{
|
||||
soundParams->bufferSize = 6;
|
||||
nextDocBuffer += 16384;
|
||||
}
|
||||
else if (handleSize > 4096)
|
||||
{
|
||||
soundParams->bufferSize = 5;
|
||||
nextDocBuffer += 8192;
|
||||
}
|
||||
else if (handleSize > 2048)
|
||||
{
|
||||
soundParams->bufferSize = 4;
|
||||
nextDocBuffer += 4096;
|
||||
}
|
||||
else if (handleSize > 1024)
|
||||
{
|
||||
soundParams->bufferSize = 3;
|
||||
nextDocBuffer += 2048;
|
||||
}
|
||||
else if (handleSize > 512)
|
||||
{
|
||||
soundParams->bufferSize = 2;
|
||||
nextDocBuffer += 1024;
|
||||
}
|
||||
else if (handleSize > 256)
|
||||
{
|
||||
soundParams->bufferSize = 1;
|
||||
nextDocBuffer += 512;
|
||||
}
|
||||
else
|
||||
{
|
||||
soundParams->bufferSize = 0;
|
||||
nextDocBuffer += 256;
|
||||
}
|
||||
|
||||
if (looped)
|
||||
soundParams->nextWavePtr = soundParams;
|
||||
else
|
||||
|
@ -76,17 +116,20 @@ void loadSounds(void)
|
|||
static SoundParamBlock spiderSound;
|
||||
static SoundParamBlock deathSound;
|
||||
static SoundParamBlock segmentsSound;
|
||||
static SoundParamBlock bonusSound;
|
||||
static SoundParamBlock bonus1Sound;
|
||||
static SoundParamBlock bonus2Sound;
|
||||
static SoundParamBlock bonus3Sound;
|
||||
static SoundParamBlock killSound;
|
||||
static SoundParamBlock fireSound;
|
||||
|
||||
setupSound(SPIDER_SOUND, &spiderSound, TRUE);
|
||||
setupSound(DEATH_SOUND, &deathSound, FALSE);
|
||||
setupSound(SEGMENTS_SOUND, &segmentsSound, TRUE);
|
||||
setupSound(BONUS_SOUND, &bonusSound, FALSE);
|
||||
setupSound(BONUS1_SOUND, &bonus1Sound, FALSE);
|
||||
setupSound(BONUS2_SOUND, &bonus2Sound, FALSE);
|
||||
setupSound(BONUS3_SOUND, &bonus3Sound, FALSE);
|
||||
setupSound(KILL_SOUND, &killSound, FALSE);
|
||||
setupSound(FIRE_SOUND, &fireSound, FALSE);
|
||||
// FFStartPlaying(1 << SEGMENTS_SOUND);
|
||||
}
|
||||
|
||||
|
||||
|
|
14
BuGS/main.h
14
BuGS/main.h
|
@ -17,12 +17,14 @@
|
|||
|
||||
/* Sounds */
|
||||
#define rRawSound 1
|
||||
#define BONUS_SOUND 1
|
||||
#define DEATH_SOUND 2
|
||||
#define FIRE_SOUND 3
|
||||
#define KILL_SOUND 4
|
||||
#define SEGMENTS_SOUND 5
|
||||
#define SPIDER_SOUND 6
|
||||
#define BONUS1_SOUND 1
|
||||
#define BONUS2_SOUND 2
|
||||
#define BONUS3_SOUND 3
|
||||
#define DEATH_SOUND 4
|
||||
#define FIRE_SOUND 5
|
||||
#define KILL_SOUND 6
|
||||
#define SEGMENTS_SOUND 7
|
||||
#define SPIDER_SOUND 8
|
||||
|
||||
|
||||
#endif /* defined(_GUARD_PROJECTBuGS_FILEmain_) */
|
||||
|
|
|
@ -48,7 +48,9 @@ type rRawSound {
|
|||
hex string;
|
||||
};
|
||||
|
||||
read rRawSound (BONUS_SOUND) "sound/bonus.raw";
|
||||
read rRawSound (BONUS1_SOUND) "sound/bonus.raw";
|
||||
read rRawSound (BONUS2_SOUND) "sound/bonus.raw";
|
||||
read rRawSound (BONUS3_SOUND) "sound/bonus.raw";
|
||||
read rRawSound (DEATH_SOUND) "sound/death.raw";
|
||||
read rRawSound (FIRE_SOUND) "sound/fire.raw";
|
||||
read rRawSound (KILL_SOUND) "sound/kill.raw";
|
||||
|
|
Loading…
Reference in New Issue
Block a user