mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-23 05:29:03 +00:00
lemm: add sound effect
This commit is contained in:
parent
6a86dfe89c
commit
3be732a51d
@ -71,7 +71,7 @@ lemm.o: lemm.s zp.inc hardware.inc \
|
||||
hgr_hlin.s hgr_vlin.s update_menu.s \
|
||||
interrupt_handler.s keyboard.s draw_pointer.s \
|
||||
pointer_sprites.inc \
|
||||
level1.s level5.s title.s
|
||||
level1.s level5.s title.s audio.s letsgo.s
|
||||
ca65 -o lemm.o lemm.s -l lemm.lst
|
||||
|
||||
|
||||
|
204
games/lemm/audio.s
Normal file
204
games/lemm/audio.s
Normal file
@ -0,0 +1,204 @@
|
||||
; Based on BTC.SYSTEM by Oliver Schmidt
|
||||
|
||||
; How to generate proper audio for this:
|
||||
|
||||
; -Open MP3 in Audacity
|
||||
; -Change Project Rate (Hz) to 33,000 (bottom left box)
|
||||
; -Tracks --> Mix... --> Mix Stereo Down to Mono
|
||||
; -File --> Export --> Export as WAV
|
||||
; - Select "WAV (Microsoft) signed 16-bit PCM"
|
||||
; - Under "Edit Metadata Tags" hit "Clear", then "Okay"
|
||||
; -Open saved WAV file in BTc Sound Encoder 3.0
|
||||
; -Change Algorithm to "1 bit" (leave fineness as BTc16)
|
||||
; -File --> Export binary file .BTC format
|
||||
|
||||
|
||||
spkr = $C030
|
||||
|
||||
;****************************************************************
|
||||
;* Audio playback *
|
||||
;****************************************************************
|
||||
; audio file in BTC_L/BTC_H
|
||||
; pages to play in X
|
||||
|
||||
|
||||
play_audio:
|
||||
ldy #0
|
||||
|
||||
; loop here as long as BITs are [F]alse (aka 0)
|
||||
F_NX: NOP ; 2 2
|
||||
NOP ; 2 2
|
||||
NOP ; 2 2
|
||||
BIT $00 ; 3 3
|
||||
F_RD: LDA (BTC_L),y ; 5 5 5
|
||||
ASL ; 2 2 2
|
||||
BCS T_1_SW ; 2/3 2
|
||||
NOP ; 2 2
|
||||
NOP ; 2 2
|
||||
NOP ; 2 2
|
||||
NOP ; 2 2
|
||||
F_1: JSR delay ; 6 (+13) 19
|
||||
ASL ; 2 2 = 31
|
||||
BCS T_2_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
F_2: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCS T_3_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
F_3: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCS T_4_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
F_4: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCS T_5_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
F_5: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCS T_6_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
F_6: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCS T_7_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
F_7: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCS T_8_SW ; 2/3 2 2
|
||||
NOP ; 2 2 2
|
||||
NOP ; 2 2 2
|
||||
NOP ; 2 2 2
|
||||
NOP ; 2 2 2
|
||||
F_8: INY ; 2 2 2
|
||||
BNE F_NX ; 2/3 3 = 31 2
|
||||
INC BTC_H ; 5 5
|
||||
DEX ; 2 2
|
||||
BNE F_RD ; 2/3 3 = 31
|
||||
RTS
|
||||
; click speaker on transitions
|
||||
T_1_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [1]
|
||||
BCS T_1 ; 3 (always)
|
||||
T_2_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [2]
|
||||
BCS T_2 ; 3 (always)
|
||||
T_3_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [3]
|
||||
BCS T_3 ; 3 (always)
|
||||
T_4_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [4]
|
||||
BCS T_4 ; 3 (always)
|
||||
T_5_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [5]
|
||||
BCS T_5 ; 3 (always)
|
||||
T_6_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [6]
|
||||
BCS T_6 ; 3 (always)
|
||||
T_7_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [7]
|
||||
BCS T_7 ; 3 (always)
|
||||
T_8_SW: STA spkr ; 4 [SW]itch to [T]rue on BIT [8]
|
||||
BCS T_8 ; 3 (always)
|
||||
|
||||
F_1_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [1]
|
||||
BCC F_1 ; 3 (always)
|
||||
F_2_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [2]
|
||||
BCC F_2 ; 3 (always)
|
||||
F_3_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [3]
|
||||
BCC F_3 ; 3 (always)
|
||||
F_4_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [4]
|
||||
BCC F_4 ; 3 (always)
|
||||
F_5_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [5]
|
||||
BCC F_5 ; 3 (always)
|
||||
F_6_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [6]
|
||||
BCC F_6 ; 3 (always)
|
||||
F_7_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [7]
|
||||
BCC F_7 ; 3 (always)
|
||||
F_8_SW: STA spkr ; 4 [SW]itch to [F]alse on BIT [8]
|
||||
BCC F_8 ; 3 (always)
|
||||
|
||||
; loop here as long as BITs are [T]rue (aka 1)
|
||||
T_NX: NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
BIT $00 ; 3
|
||||
T_RD: LDA (BTC_L),y ; 5
|
||||
ASL ; 2
|
||||
BCC F_1_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_1: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_2_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_2: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_3_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_3: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_4_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_4: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_5_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_5: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_6_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_6: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_7_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_7: JSR delay ; 6 (+13)
|
||||
ASL ; 2
|
||||
BCC F_8_SW ; 2/3
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
T_8: INY ; 2
|
||||
BNE T_NX ; 2/3
|
||||
INC BTC_H ; 5
|
||||
DEX ; 2
|
||||
BNE T_RD ; 2/3
|
||||
RTS
|
||||
|
||||
delay:
|
||||
nop ; 2
|
||||
nop ; 2
|
||||
BIT $00 ; 3
|
||||
RTS ; 6 = 13
|
||||
|
||||
|
@ -302,6 +302,8 @@ load_song_chunk_good:
|
||||
.include "update_menu.s"
|
||||
.include "wait_a_bit.s"
|
||||
.include "title.s"
|
||||
.include "audio.s"
|
||||
.include "letsgo.s"
|
||||
|
||||
; pt3 player
|
||||
|
||||
@ -320,9 +322,12 @@ config_string:
|
||||
|
||||
|
||||
.include "graphics/graphics_level1.inc"
|
||||
.include "graphics/graphics_level5.inc"
|
||||
;.include "graphics/graphics_level5.inc"
|
||||
.include "graphics/sprites.inc"
|
||||
|
||||
level5_lzsa:
|
||||
level5_preview_lzsa:
|
||||
|
||||
music_parts_h:
|
||||
.byte >lemm5_part1_lzsa,>lemm5_part2_lzsa,>lemm5_part3_lzsa
|
||||
.byte >lemm5_part4_lzsa,>lemm5_part5_lzsa,$00
|
||||
@ -361,4 +366,5 @@ lemm6_part4_lzsa:
|
||||
lemm6_part5_lzsa:
|
||||
.incbin "music/lemm6.part5.lzsa"
|
||||
|
||||
|
||||
letsgo:
|
||||
.incbin "sounds/letsgo.btc"
|
||||
|
29
games/lemm/letsgo.s
Normal file
29
games/lemm/letsgo.s
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
LETSGO_LENGTH = 14
|
||||
|
||||
play_letsgo:
|
||||
; only avail if language card
|
||||
;and #SOUND_IN_LC
|
||||
;beq done_link_noise
|
||||
|
||||
; switch in language card
|
||||
; read RAM, no write, $d000 bank 1
|
||||
|
||||
; bit $C088
|
||||
|
||||
; call the btc player
|
||||
|
||||
lda #<letsgo
|
||||
sta BTC_L
|
||||
lda #>letsgo
|
||||
sta BTC_H
|
||||
|
||||
ldx #LETSGO_LENGTH ; 14 pages long???
|
||||
jsr play_audio
|
||||
|
||||
; restore rom, no write, $d000 bank 1
|
||||
|
||||
; bit $c08A
|
||||
|
||||
rts
|
||||
|
@ -108,6 +108,8 @@ do_level1:
|
||||
; Play "Let's Go"
|
||||
;=======================
|
||||
|
||||
jsr play_letsgo
|
||||
|
||||
|
||||
;=======================
|
||||
; start music
|
||||
|
@ -106,6 +106,7 @@ do_level5:
|
||||
; Play "Let's Go"
|
||||
;=======================
|
||||
|
||||
jsr play_letsgo
|
||||
|
||||
;=======================
|
||||
; start music
|
||||
|
@ -217,7 +217,7 @@ sector_array:
|
||||
.byte 0 ; FIRST_SECTOR
|
||||
|
||||
length_array:
|
||||
.byte 88,159,157,145 ; MIST_TITLE,MIST,MECHE,SELENA
|
||||
.byte 92,159,157,145 ; MIST_TITLE,MIST,MECHE,SELENA
|
||||
.byte 128, 20,158,135 ; OCTAGON,VIEWER,STONEY,CHANNEL
|
||||
.byte 61, 31,159,109 ; CABIN,DENTIST,ARBOR,NIBEL
|
||||
.byte 20, 33, 27, 78 ; SHIP,GENERATOR,D'NI,SUB
|
||||
|
BIN
games/lemm/sounds/letsgo.btc
Normal file
BIN
games/lemm/sounds/letsgo.btc
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user