FIX, please routine assembler for Sound SFX in PSG

By gasparrini

Champion (309)

gasparrini's picture

20-09-2020, 16:50

Hello Guys of MSX World,

Unfortunately, this my routine in assembler for sounds SFX, it work bad!
Because you hear only rustle, and this is not good.
Please ask if someone could fix me to make this interesting assembler program
for sound effects work well with PSG.

Best Regards
(^_^)
AG

org $C000-7
	.db $FE
	.dw begin
	.dw fine
	.dw begin

tabusr: .equ $F39A
tabusr1: .equ tabusr+2 
tabusr2: .equ tabusr1+2 
tabusr3: .equ tabusr2+2 
tabusr4: .equ tabusr3+2 

begin:
	ld hl,key1
	ld (tabusr),hl	;usr0(0)
	ld hl,key2
	ld (tabusr1),hl	;usr1(0)
	ld hl,key3
	ld (tabusr2),hl	;usr2(0)
	ld hl,key4
	ld (tabusr3),hl	;usr3(0)
	ld hl,$90
	ld (tabusr4),hl	;usr4(0)
	ret		

key1:
	ld hl,sfx1
	jp sound
key2:
	ld hl,sfx2
	jp sound

key3:
	ld hl,sfx3
	jp sound
key4:
	ld hl,sfx4
	jp sound

sound:
	ld a,(hl)
	inc hl
	ld b,a
sound0:
	push bc
	ld b,13
	ld d,0
send:
	ld a,d
	ld e,(hl)
	call $93
;	out ($a2),a
;	ld a,(hl)
;	out ($a1),a	
	inc hl
	inc d
	djnz send	
	pop bc	
	djnz sound0
	ret


sfx1:
	#include "sfx-1.asm"
sfx2:
	#include "sfx-2.asm"
sfx3:
	#include "sfx-3.asm"
sfx4:
	#include "sfx-4.asm"
fine:	
	.end			
;SFX-1.asm
 .db  42 
 .db  53 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 0 , 63 , 0 , 11 , 0 , 0 
 .db  63 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  247 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  239 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  231 , 63 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  223 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  215 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  207 , 2 , 63 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  199 , 2 , 63 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  191 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  183 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  175 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  167 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  159 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  151 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  143 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  135 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  127 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  119 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  111 , 2 , 0 , 0 , 63 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  103 , 2 , 0 , 0 , 63 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  95 , 2 , 0 , 0 , 63 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  87 , 2 , 0 , 0 , 63 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  79 , 2 , 0 , 0 , 63 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  71 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  63 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  55 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  50 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  41 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 63 , 0 
 .db  32 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 63 , 0 
 .db  23 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  14 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  5 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 63 
 .db  5 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 63 
 .db  50 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 63 
 .db  41 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 63 
 .db  32 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 0 
 .db  23 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 0 
 .db  14 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 0 
 .db  5 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 10 , 0 , 0 , 11 , 0 , 0 
 .db  5 , 2 , 0 , 0 , 0 , 0 , 0 , 184 , 2 , 0 , 0 , 11 , 0 , 0 
 .db  0 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 2 , 0 , 0 , 11 , 0 , 0 
 .db  0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 

;SFX-2.asm
 .db  14 
 .db  250 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  240 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  230 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  220 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  210 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  200 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  190 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  63 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  63 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  160 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  150 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  140 , 0 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  130 , 63 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  0 , 63 , 0 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  151 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 

;SFX-3.asm
 .db  14 
 .db  250 , 0 , 250 , 63 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  230 , 0 , 230 , 63 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  210 , 0 , 210 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  190 , 0 , 190 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  170 , 0 , 63 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  150 , 0 , 63 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  130 , 0 , 130 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  110 , 63 , 110 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  90 , 63 , 90 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  70 , 0 , 70 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  50 , 0 , 50 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  63 , 0 , 30 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  10 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 13 , 0 , 11 , 0 , 0 
 .db  0 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  151 , 2 , 0 , 63 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 

;SFX-4.asm
 .db  22 
 .db  250 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 63 , 0 , 0 , 11 , 0 , 0 
 .db  235 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  220 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  220 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 63 , 0 , 0 , 11 , 0 , 0 
 .db  205 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  190 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  190 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 63 , 0 , 0 , 11 , 0 , 0 
 .db  175 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 63 , 0 , 0 , 11 , 0 , 0 
 .db  160 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  160 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  145 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 63 , 0 , 0 , 11 , 0 , 0 
 .db  130 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 63 , 0 , 0 , 11 , 0 , 0 
 .db  130 , 0 , 10 , 0 , 0 , 0 , 0 , 63 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  115 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  100 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  100 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  85 , 0 , 10 , 0 , 0 , 0 , 0 , 63 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  70 , 0 , 10 , 0 , 0 , 0 , 0 , 63 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  70 , 0 , 10 , 0 , 0 , 0 , 63 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  55 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  40 , 0 , 10 , 0 , 0 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  0 , 0 , 10 , 0 , 0 , 0 , 0 , 63 , 13 , 0 , 0 , 11 , 0 , 0 
 .db  87 , 2 , 0 , 0 , 63 , 0 , 0 , 184 , 13 , 0 , 0 , 11 , 0 , 0 
Login or register to post comments

By SjaaQ

Master (147)

SjaaQ's picture

21-09-2020, 09:00

I would recommend using ayFX together with the pt3-replayer.

By gasparrini

Champion (309)

gasparrini's picture

21-09-2020, 10:09

I understand, but I disagree at the time of using AYFX+PT3 PLAYER,
I prefer to use my routine. That's why I asked for help here at this FORUM.

By theNestruo

Master (194)

theNestruo's picture

21-09-2020, 11:06

gasparrini wrote:

I understand, but I disagree at the time of using AYFX+PT3 PLAYER,

Don't mean to sound disrespectful, but using an already existing battle-tested replayer is the clever thing to do (unless you are an expert MSX musician and developer). No need to reinvent the wheel.

gasparrini wrote:

I prefer to use my routine. That's why I asked for help here at this FORUM.

At the very least, you need to add a HALT between sound0: and push bc to send each sound frame in a different frame.

By gasparrini

Champion (309)

gasparrini's picture

21-09-2020, 14:07

Thank you The Nestruo, I put HALT between SOUND0: and push BC, and now work well.