diff --git a/BuGS/gameSound.s b/BuGS/gameSound.s index 56be462..0a8335f 100644 --- a/BuGS/gameSound.s +++ b/BuGS/gameSound.s @@ -660,6 +660,8 @@ updateSounds_done anop playBonusSound entry short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f sta >SOUND_CONTROL_REG @@ -712,31 +714,25 @@ playDeathSound entry tax short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_CONTROL+DEATH_OSC_NUM - sta >SOUND_ADDR_LOW - lda #DEATH_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #DEATH_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+DEATH_OSC_NUM,#DEATH_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+DEATH_OSC_NUM+1,#DEATH_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - lda #SOUND_REG_VOLUME+DEATH_OSC_NUM - sta >SOUND_ADDR_LOW + ldy #SOUND_REG_VOLUME+DEATH_OSC_NUM + lda tileRightVolume,x + jsr writeReg + iny lda tileRightVolume,x - sta >SOUND_DATA_REG eor #$ff - sta >SOUND_DATA_REG + jsr writeReg - lda #SOUND_REG_CONTROL+DEATH_OSC_NUM - sta >SOUND_ADDR_LOW - lda #DEATH_CONTROL+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #DEATH_CONTROL+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+DEATH_OSC_NUM,#DEATH_CONTROL+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+DEATH_OSC_NUM+1,#DEATH_CONTROL+SOUND_LEFT_SPEAKER long m rtl @@ -744,31 +740,25 @@ playDeathSound entry playKillSound entry short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_CONTROL+KILL_OSC_NUM - sta >SOUND_ADDR_LOW - lda #KILL_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #KILL_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+KILL_OSC_NUM,#KILL_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+KILL_OSC_NUM+1,#KILL_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - lda #SOUND_REG_VOLUME+KILL_OSC_NUM - sta >SOUND_ADDR_LOW + ldy #SOUND_REG_VOLUME+KILL_OSC_NUM + lda tileRightVolume,x + jsr writeReg + iny lda tileRightVolume,x - sta >SOUND_DATA_REG eor #$ff - sta >SOUND_DATA_REG + jsr writeReg - lda #SOUND_REG_CONTROL+KILL_OSC_NUM - sta >SOUND_ADDR_LOW - lda #KILL_CONTROL+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #KILL_CONTROL+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+KILL_OSC_NUM,#KILL_CONTROL+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+KILL_OSC_NUM+1,#KILL_CONTROL+SOUND_LEFT_SPEAKER long m rtl @@ -788,7 +778,7 @@ playFireSound entry ldy #SOUND_REG_VOLUME+FIRE_OSC_NUM lda tileRightVolume,x jsr writeReg - ldy #SOUND_REG_VOLUME+FIRE_OSC_NUM+1 + iny lda tileRightVolume,x eor #$ff jsr writeReg @@ -802,24 +792,17 @@ playFireSound entry playExtraLifeSound entry short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_CONTROL+EXTRA_LIFE_OSC_NUM - sta >SOUND_ADDR_LOW - lda #EXTRA_LIFE_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #EXTRA_LIFE_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+EXTRA_LIFE_OSC_NUM,#EXTRA_LIFE_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+EXTRA_LIFE_OSC_NUM+1,#EXTRA_LIFE_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - lda #SOUND_REG_CONTROL+EXTRA_LIFE_OSC_NUM - sta >SOUND_ADDR_LOW - lda #EXTRA_LIFE_CONTROL+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #EXTRA_LIFE_CONTROL+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+EXTRA_LIFE_OSC_NUM,#EXTRA_LIFE_CONTROL+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+EXTRA_LIFE_OSC_NUM+1,#EXTRA_LIFE_CONTROL+SOUND_LEFT_SPEAKER long m rtl @@ -834,29 +817,21 @@ startSegmentSound_doIt anop stz segmentSoundIsPlaying short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM - sta >SOUND_ADDR_LOW - lda #SEGMENTS_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #SEGMENTS_CONTROL+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #SEGMENTS_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG - lda #SEGMENTS_CONTROL+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM,#SEGMENTS_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+1,#SEGMENTS_CONTROL+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+2,#SEGMENTS_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+3,#SEGMENTS_CONTROL+SOUND_LEFT_SPEAKER - lda #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM - sta >SOUND_ADDR_LOW - lda #SEGMENTS_VOLUME - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM,#SEGMENTS_VOLUME + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+1,#SEGMENTS_VOLUME + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+2,#SEGMENTS_VOLUME + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+3,#SEGMENTS_VOLUME long m rtl @@ -872,36 +847,26 @@ stopSegmentSound_doIt anop sta segmentSoundIsPlaying short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM - sta >SOUND_ADDR_LOW - lda #0 - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM,#0 + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+1,#0 + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+2,#0 + _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+3,#0 - lda #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM - sta >SOUND_ADDR_LOW - lda #SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG - lda #SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+1,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+2,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+3,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER - lda #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM - sta >SOUND_ADDR_LOW - lda #SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG - lda #SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+1,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+2,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_LEFT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SEGMENTS_OSC_NUM+3,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_LEFT_SPEAKER long m rtl @@ -916,30 +881,31 @@ startSpiderSound_doIt anop stz spiderSoundIsPlaying short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_CONTROL+SPIDER_OSC_NUM - sta >SOUND_ADDR_LOW - lda #SPIDER_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #SPIDER_CONTROL+SOUND_RIGHT_SPEAKER - sta >SOUND_DATA_REG - lda #SPIDER_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG - lda #SPIDER_CONTROL+SOUND_LEFT_SPEAKER - sta >SOUND_DATA_REG + _writeReg #SOUND_REG_CONTROL+SPIDER_OSC_NUM,#SPIDER_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SPIDER_OSC_NUM+1,#SPIDER_CONTROL+SOUND_RIGHT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SPIDER_OSC_NUM+2,#SPIDER_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER + _writeReg #SOUND_REG_CONTROL+SPIDER_OSC_NUM+3,#SPIDER_CONTROL+SOUND_LEFT_SPEAKER - lda #SOUND_REG_VOLUME+SPIDER_OSC_NUM - sta >SOUND_ADDR_LOW + ldy #SOUND_REG_VOLUME+SPIDER_OSC_NUM + lda tileRightVolume,x + jsr writeReg + iny + lda tileRightVolume,x + jsr writeReg + iny lda tileRightVolume,x - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG eor #$ff - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG + jsr writeReg + iny + lda tileRightVolume,x + eor #$ff + jsr writeReg long m rtl @@ -952,19 +918,27 @@ updateSpiderSound entry updateSpiderSound_doIt anop short m + _docWait + lda >SOUND_SYSTEM_VOLUME and #$0f - ora #$20 sta >SOUND_CONTROL_REG - lda #SOUND_REG_VOLUME+SPIDER_OSC_NUM - sta >SOUND_ADDR_LOW + ldy #SOUND_REG_VOLUME+SPIDER_OSC_NUM + lda tileRightVolume,x + jsr writeReg + iny + lda tileRightVolume,x + jsr writeReg + iny lda tileRightVolume,x - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG eor #$ff - sta >SOUND_DATA_REG - sta >SOUND_DATA_REG + jsr writeReg + iny + lda tileRightVolume,x + eor #$ff + jsr writeReg + long m rtl diff --git a/BuGS/make/launchEmulator b/BuGS/make/launchEmulator index 6e67779..af8deaf 100755 --- a/BuGS/make/launchEmulator +++ b/BuGS/make/launchEmulator @@ -29,7 +29,7 @@ then fi # This magic ensures that clicking stop in Xcode results in the emulator terminating. -if false +if true then cd make sed -i "" "s:^s7d1 *=.*$:s7d1 = $BOOTIMAGE: