aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-08-19 15:57:51 +0200
committerAstatin <[email protected]>2025-08-19 15:57:51 +0200
commitbbc5ab6ad02dbabcb79e1e83195288c0fb8cf1d1 (patch)
tree619cda5870860164fd8bddcb4e0ed741cf63ca49
parentc70b3cb2cab64d550a585dcfbc166bf30c0ea955 (diff)
Add insect bite & frog grab sound effects + disallow 2 sound effects at once
-rw-r--r--enemiesattacks/freeze.gbasm2
-rw-r--r--enemiesattacks/grab.gbasm2
-rw-r--r--enemiesattacks/poison.gbasm2
-rw-r--r--entity/bunny.gbasm2
-rw-r--r--main.gbasm6
-rw-r--r--map/dungeons/morningforest.gbasm6
-rw-r--r--music/soundeffects.gbasm28
-rw-r--r--music/soundeffects/bite.gbasm70
-rw-r--r--music/soundeffects/earcoptr.gbasm27
-rw-r--r--music/soundeffects/freeze.gbasm56
-rw-r--r--music/soundeffects/grab.gbasm23
-rw-r--r--music/soundeffects/jump.gbasm19
-rw-r--r--music/soundeffects/laser.gbasm19
-rw-r--r--playerattacks/freeze.gbasm1
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
diff --git a/main.gbasm b/main.gbasm
index 0966338..e6a6ba1 100644
--- a/main.gbasm
+++ b/main.gbasm
@@ -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