From: Lukas Krickl Date: Wed, 22 Mar 2023 05:26:43 +0000 (+0100) Subject: Saved some space by putting songs and table and only using one sub: X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=c0e64400485153d2ab41558659c27aa8e1f06d8d;p=turtlebay%2F.git Saved some space by putting songs and table and only using one sub: --- diff --git a/main.asm b/main.asm index 6371606..f9e92cb 100644 --- a/main.asm +++ b/main.asm @@ -775,7 +775,10 @@ NoP1PFCollision NoReset jsr ResetPPositions jsr SetM0Pos - jsr PlayBirdHitPlayerSong + + ldx #0 ; first song + ldy #BIRDHITPLAYERTRACKSIZE + jsr PlaySong NoP0P1Collision ; p0 and p1 did not collide! ; now we dio p0 m0 collision. m0 must be collected by turtle to advance @@ -790,7 +793,10 @@ NoP0P1Collision ; p0 and p1 did not collide! dex stx Score jsr SetM0Pos ; new position for m0 - jsr PlayFoodCollectedSong + + ldx #2 ; second song + ldy #FOODCOLLECTEDTRACKSIZE + jsr PlaySong NoP0M0Collision ; now we check if m0 is in a wall bit CXM0FB @@ -852,71 +858,25 @@ ClearSong sta AUDV0,x rts -PlayBirdHitPlayerSong - lda #<(BirdHitPlayerTrack) - sta SoundTrackPtr - lda #>(BirdHitPlayerTrack) - sta SoundTrackPtr+1 - - ;lda #BIRDHITPLAYERVOLUME - ;sta SoundVolumePtr - - lda #BIRDHITPLAYERTRACKSIZE ; 4 frames long - sta SoundEnabled - - lda #<(BirdHitPlayerControl) - sta SoundControl - - lda #>(BirdHitPlayerControl) - sta SoundControl+1 - - ;lda #S_FULLSPEED - ;sta SoundSpeed - rts - -PlayFoodCollectedSong - lda #<(FoodCollectedTrack) +; subroutine +; inputs: x = offset in track and control table +; y = track length +PlaySong + lda #SoundTrackTable,x sta SoundTrackPtr - lda #>(FoodCollectedTrack) + lda #SoundTrackTable+1,x sta SoundTrackPtr+1 - ;lda #FOODCOLLECTEDVOLUME - ;sta SoundVolumePtr + sty SoundEnabled - lda #FOODCOLLECTEDTRACKSIZE ; 4 frames long - sta SoundEnabled - - lda #<(FoodCollectedControl) + lda #SoundControlTable,x sta SoundControl - lda #>(FoodCollectedControl) + lda #SoundControlTable+1,x sta SoundControl+1 - ;lda #S_HALFSPEED - ;sta SoundSpeed rts -PlayLevelClearSong - lda #<(LevelClearTrack) - sta SoundTrackPtr - lda #>(LevelClearTrack) - sta SoundTrackPtr+1 - - ;lda #LEVELCLEARVOLUME - ;sta SoundVolumePtr - - lda #LEVELCLEARTRACKSIZE ; 4 frames long - sta SoundEnabled - - lda #<(LevelClearControl) - sta SoundControl - - lda #>(LevelClearControl) - sta SoundControl+1 - - ;lda #S_HALFSPEED - ;sta SoundSpeed - rts SetM0Pos ldx 2 @@ -998,7 +958,10 @@ NextLevel stx GameState ldx #LEVELCLEARTRACKSIZE*2 stx Temp+1 ; used for frame counter for blank screen - jsr PlayLevelClearSong + + ldx #4 ; third song + ldy #LEVELCLEARTRACKSIZE + jsr PlaySong rts NextMap @@ -1919,6 +1882,16 @@ LevelClearControl .byte 0, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F .byte $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F, $4F +; table holding all the needed addresses +SoundTrackTable + .word BirdHitPlayerTrack + .word FoodCollectedTrack + .word LevelClearTrack + +SoundControlTable + .word BirdHitPlayerControl + .word FoodCollectedControl + .word LevelClearControl ; Free memory check ECHO ([$FFFA-*]d), "bytes free before end of cart ($FFFA)"