diff options
author | Astatin <[email protected]> | 2025-08-19 15:57:51 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-08-19 15:57:51 +0200 |
commit | bbc5ab6ad02dbabcb79e1e83195288c0fb8cf1d1 (patch) | |
tree | 619cda5870860164fd8bddcb4e0ed741cf63ca49 | |
parent | c70b3cb2cab64d550a585dcfbc166bf30c0ea955 (diff) |
Add insect bite & frog grab sound effects + disallow 2 sound effects at once
-rw-r--r-- | enemiesattacks/freeze.gbasm | 2 | ||||
-rw-r--r-- | enemiesattacks/grab.gbasm | 2 | ||||
-rw-r--r-- | enemiesattacks/poison.gbasm | 2 | ||||
-rw-r--r-- | entity/bunny.gbasm | 2 | ||||
-rw-r--r-- | main.gbasm | 6 | ||||
-rw-r--r-- | map/dungeons/morningforest.gbasm | 6 | ||||
-rw-r--r-- | music/soundeffects.gbasm | 28 | ||||
-rw-r--r-- | music/soundeffects/bite.gbasm | 70 | ||||
-rw-r--r-- | music/soundeffects/earcoptr.gbasm | 27 | ||||
-rw-r--r-- | music/soundeffects/freeze.gbasm | 56 | ||||
-rw-r--r-- | music/soundeffects/grab.gbasm | 23 | ||||
-rw-r--r-- | music/soundeffects/jump.gbasm | 19 | ||||
-rw-r--r-- | music/soundeffects/laser.gbasm | 19 | ||||
-rw-r--r-- | playerattacks/freeze.gbasm | 1 |
14 files changed, 201 insertions, 62 deletions
diff --git a/enemiesattacks/freeze.gbasm b/enemiesattacks/freeze.gbasm index cdf5afc..666206e 100644 --- a/enemiesattacks/freeze.gbasm +++ b/enemiesattacks/freeze.gbasm @@ -80,6 +80,8 @@ Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D LD A, $04 LD $mem_bunny_status_clear_turn_counter, A + .SET_SOUND_EFFECT =_sound_effect_Freeze + LD A, L AND $f0 ADD $09 diff --git a/enemiesattacks/grab.gbasm b/enemiesattacks/grab.gbasm index 8ad2d57..a3d71fa 100644 --- a/enemiesattacks/grab.gbasm +++ b/enemiesattacks/grab.gbasm @@ -139,6 +139,8 @@ Grab_Enemy_Attack: ; Entity in HL (whatever alignment), Direction to face in E. POP BC POP DE + .SET_SOUND_EFFECT =_sound_effect_Grab + LD A, L AND $f0 ADD $09 diff --git a/enemiesattacks/poison.gbasm b/enemiesattacks/poison.gbasm index 8970571..b2af90e 100644 --- a/enemiesattacks/poison.gbasm +++ b/enemiesattacks/poison.gbasm @@ -66,6 +66,8 @@ Poison_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D LD A, $0a LD $mem_bunny_status_clear_turn_counter, A + .SET_SOUND_EFFECT =_sound_effect_Bite + LD A, L AND $f0 ADD $07 diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm index d617285..af586e1 100644 --- a/entity/bunny.gbasm +++ b/entity/bunny.gbasm @@ -63,7 +63,7 @@ Move_Bunny: .Poison_effect: LD A, $mem_bunny_status CP $08 - JR NZ, =.Poison_effect.end + JP NZ, =.Poison_effect.end LD A, $f6 LD $mem_bunny_status_tile, A LD A, $mem_moving_animation_step @@ -10,7 +10,7 @@ Entrypoint: LD HL, $mem_bunny_attacks LD A, $01 LD (HL+), A - LD A, $04 + LD A, $03 LD (HL+), A XOR A LD (HL+), A @@ -72,6 +72,10 @@ Entrypoint: .INCLUDE "music/soundeffects/laser.gbasm" .INCLUDE "music/soundeffects/damage.gbasm" .INCLUDE "music/soundeffects/earcoptr.gbasm" +.INCLUDE "music/soundeffects/freeze.gbasm" +.INCLUDE "music/soundeffects/bite.gbasm" +.INCLUDE "music/soundeffects/grab.gbasm" +.ASSERT bank(.) $01 _music_Dungeon: .INCLUDEBIN "music/morning-forest.vgm" diff --git a/map/dungeons/morningforest.gbasm b/map/dungeons/morningforest.gbasm index 3ee08e3..af59699 100644 --- a/map/dungeons/morningforest.gbasm +++ b/map/dungeons/morningforest.gbasm @@ -22,6 +22,12 @@ Morning_Forest: .max_floor: .DB 0x0a, inv(0x0a) .spawning_patterns: + ; DBG + .DB $entity_frog_index, $entity_frog_index, $entity_frog_index, $entity_frog_index, $ff + .DB $entity_frog_index, $entity_frog_index, $entity_frog_index, $entity_frog_index, $ff + .DB $entity_frog_index, $entity_frog_index, $entity_frog_index, $entity_frog_index, $ff + .DB $entity_frog_index, $entity_frog_index, $entity_frog_index, $entity_frog_index, $ff + .DB $entity_cat_index, $entity_cat_index, $entity_cat_index, $entity_fimsh_index, 0b00000010 .DB $entity_cat_index, $entity_cat_index, $entity_penguin_index, $entity_fimsh_index, 0b00100011 .DB $entity_cat_index, $entity_cat_index, $entity_fox_index, $entity_fimsh_index, 0b00100111 diff --git a/music/soundeffects.gbasm b/music/soundeffects.gbasm index c164492..6bf4a15 100644 --- a/music/soundeffects.gbasm +++ b/music/soundeffects.gbasm @@ -24,6 +24,28 @@ Wait_Next_Frame: LD L, A .END +.MACRODEF CHANNEL_2_SOUND_EFFECT_LOOP =start =end + LD HL, =start + + $loop: + LD A, (HL+) + LD ($18), A + + LD A, (HL+) + LD ($19), A + + .RET_WAIT_NEXT_FRAME_SAVE_HL + + LD A, H + CP high(=end) + JR NZ, =$loop + LD A, L + CP low(=end) + JR NZ, =$loop + $end: +.END + + Play_Sound_Effect: LD A, ($mem_sound_effect_pc) CP $ff @@ -37,10 +59,16 @@ Play_Sound_Effect: RET .MACRODEF SET_SOUND_EFFECT =addr + PUSH AF + LD A, $mem_sound_flags + AND 0b00111110 + JR NZ =$end LD A, bank(=addr) LD ($mem_sound_effect_pc), A LD A, high(ptr(=addr)) LD ($mem_sound_effect_pc+1), A LD A, low(ptr(=addr)) LD ($mem_sound_effect_pc+2), A + $end: + POP AF .END diff --git a/music/soundeffects/bite.gbasm b/music/soundeffects/bite.gbasm new file mode 100644 index 0000000..3ac67a3 --- /dev/null +++ b/music/soundeffects/bite.gbasm @@ -0,0 +1,70 @@ +_sound_effect_Bite_slide_data: +.DB $7d, $87, $77, $07, $71, $07, $6b, $07, $64, $07, $5e, $07, $56, $07, $4f, $07 +.DB $47, $07, $3f, $07, $36, $07, $2d, $07, $24, $07 +_sound_effect_Bite_slide_data.end: + +_sound_effect_Bite: + LD A, $mem_sound_flags + OR 0b00010100 + LD $mem_sound_flags, A + + LD A, $3f + LD ($20), A + LD A, $42 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + + LD A, $08 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + + LD A, $3f + LD ($20), A + LD A, $42 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + + LD A, $08 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + + LD A, $3f + LD ($16), A + LD A, $a2 + LD ($17), A + + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Bite_slide_data, =_sound_effect_Bite_slide_data.end + + LD A, $08 + LD ($17), A + + LD A, $mem_sound_flags + AND 0b11000001 + LD $mem_sound_flags, A + LD A, $ff + LD ($mem_sound_effect_pc), A + RET diff --git a/music/soundeffects/earcoptr.gbasm b/music/soundeffects/earcoptr.gbasm index bbccb65..0c11168 100644 --- a/music/soundeffects/earcoptr.gbasm +++ b/music/soundeffects/earcoptr.gbasm @@ -13,44 +13,23 @@ _sound_effect_Earcoptr: LD A, $80 LD ($19), A - .MACRODEF EARCOPTER_SOUND_LOOP =start =end - LD HL, =start - - $loop: - LD A, (HL+) - LD ($18), A - - LD A, (HL+) - LD ($19), A - - .RET_WAIT_NEXT_FRAME_SAVE_HL - - LD A, H - CP high(=end) - JR NZ, =$loop - LD A, L - CP low(=end) - JR NZ, =$loop - $end: - .END - LD A, $3f LD ($16), A LD A, $82 LD ($17), A - .EARCOPTER_SOUND_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi LD A, $3f LD ($16), A LD A, $82 LD ($17), A - .EARCOPTER_SOUND_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi LD A, $3f LD ($16), A LD A, $82 LD ($17), A - .EARCOPTER_SOUND_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.end + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.end LD A, $mem_sound_flags AND 0b11000001 diff --git a/music/soundeffects/freeze.gbasm b/music/soundeffects/freeze.gbasm new file mode 100644 index 0000000..5d4915f --- /dev/null +++ b/music/soundeffects/freeze.gbasm @@ -0,0 +1,56 @@ +_sound_effect_Freeze_slide_data: +.DB $c2, $87, $c1, $07, $c1, $07, $c1, $07, $c2, $07 +.semi: +.DB $c1, $07, $c1, $07, $c1, $07 +.DB $c2, $07, $c2, $07, $c1, $07, $c1, $07, $c1, $07, $c2, $07, $c1, $07, $c1, $07 +.DB $c1, $07, $c2, $07, $c1, $07, $c1, $07, $c1, $07, $c2, $07, $c2, $07, $c1, $07 +.DB $c1, $07, $c1, $07, $c2, $07, $c1, $07, $c1, $07, $c1, $07, $c2, $07, $c1, $07 +.DB $c1, $07, $c1, $07, $c2, $07 +.end: + +_sound_effect_Freeze: + LD A, $mem_sound_flags + OR 0b00010100 + LD $mem_sound_flags, A + + + LD A, $80 + LD ($19), A + LD A, $3f + LD ($16), A + LD A, $a3 + LD ($17), A + + LD A, $3f + LD ($20), A + LD A, $52 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Freeze_slide_data, =_sound_effect_Freeze_slide_data.semi + + LD A, $3f + LD ($16), A + LD A, $a3 + LD ($17), A + + LD A, $3f + LD ($20), A + LD A, $52 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Freeze_slide_data, =_sound_effect_Freeze_slide_data.end + + LD A, $mem_sound_flags + AND 0b11000001 + LD $mem_sound_flags, A + LD A, $ff + LD ($mem_sound_effect_pc), A + RET diff --git a/music/soundeffects/grab.gbasm b/music/soundeffects/grab.gbasm new file mode 100644 index 0000000..5145774 --- /dev/null +++ b/music/soundeffects/grab.gbasm @@ -0,0 +1,23 @@ +_sound_effect_Grab_slide_data: +.DB $a3, $86, $93, $06, $83, $06, $72, $06, $61, $06, $4e, $06, $3b, $06, $27, $06 +.DB $12, $06, $fc, $05, $e5, $05, $ce, $05, $b5, $05, $9b, $05, $80, $05, $63, $05 +.DB $46, $05 +_sound_effect_Grab_slide_data.end: + +_sound_effect_Grab: + LD A, $mem_sound_flags + SET 2, A + LD $mem_sound_flags, A + + LD A, $3f + LD ($16), A + LD A, $84 + LD ($17), A + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Grab_slide_data, =_sound_effect_Grab_slide_data.end + + LD A, $mem_sound_flags + AND 0b11000001 + LD $mem_sound_flags, A + LD A, $ff + LD ($mem_sound_effect_pc), A + RET diff --git a/music/soundeffects/jump.gbasm b/music/soundeffects/jump.gbasm index 7ae9a58..13c21c0 100644 --- a/music/soundeffects/jump.gbasm +++ b/music/soundeffects/jump.gbasm @@ -14,8 +14,6 @@ _sound_effect_Jump: SET 2, A LD $mem_sound_flags, A - LD HL, =_sound_effect_Jump_slide_data - LD A, $80 LD ($19), A LD A, $3f @@ -23,22 +21,7 @@ _sound_effect_Jump: LD A, $a2 LD ($17), A - .loop: - LD A, (HL+) - LD ($18), A - - LD A, (HL+) - LD ($19), A - - .RET_WAIT_NEXT_FRAME_SAVE_HL - - LD A, H - CP high(=_sound_effect_Jump_slide_data.end) - JR NZ, =.loop - LD A, L - CP low(=_sound_effect_Jump_slide_data.end) - JR NZ, =.loop - .end: + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Jump_slide_data =_sound_effect_Jump_slide_data.end LD A, $mem_sound_flags AND 0b11000001 diff --git a/music/soundeffects/laser.gbasm b/music/soundeffects/laser.gbasm index e73396b..b3c02a7 100644 --- a/music/soundeffects/laser.gbasm +++ b/music/soundeffects/laser.gbasm @@ -12,8 +12,6 @@ _sound_effect_Laser: SET 2, A LD $mem_sound_flags, A - LD HL, =_sound_effect_Laser_slide_data - LD A, $80 LD ($19), A LD A, $3f @@ -21,22 +19,7 @@ _sound_effect_Laser: LD A, $a2 LD ($17), A - .loop: - LD A, (HL+) - LD ($18), A - - LD A, (HL+) - LD ($19), A - - .RET_WAIT_NEXT_FRAME_SAVE_HL - - LD A, H - CP high(=_sound_effect_Laser_slide_data.end) - JR NZ, =.loop - LD A, L - CP low(=_sound_effect_Laser_slide_data.end) - JR NZ, =.loop - .end: + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Laser_slide_data, =_sound_effect_Laser_slide_data.end LD A, $mem_sound_flags AND 0b11000001 diff --git a/playerattacks/freeze.gbasm b/playerattacks/freeze.gbasm index 0ce697f..f1bf595 100644 --- a/playerattacks/freeze.gbasm +++ b/playerattacks/freeze.gbasm @@ -117,5 +117,6 @@ Freeze_Attack: LD A, $enum_loading_mode LD $mem_requested_mode, A + .SET_SOUND_EFFECT =_sound_effect_Freeze .CLOSE_DIALOGUE RET |