The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Small snippet to make the AY scream a bit
#1
I ported some old code I developed with the aid of a couple of snippets published in Microhobby and some documentation for the AY chip to ZX Basic. The original was plain interpreted Sinclair BASIC. It may be useful to create simple sound effects, but nothing very fancy. Porting WYZ's replayer would be a better idea, but I have no time at the moment.

Try this:

Code:
Dim sonidos (4, 13) As Byte => {_ {100,50,0,0,0,0,4,216,31,0,0,10,10,0}, _ {250,250,0,0,0,0,15,248,31,0,0,10,10,0}, _ {10,10,0,0,0,0,29,216,31,0,0,4,4,0}, _ {10,100,0,0,0,0,15,248,31,0,0,50,50,0}, _ {15,1,0,0,0,0,15,248,31,0,0,50,50,0} _ } Dim n As Byte Cls For n = 0 To 4 ' We'll play 4 sounds Print "SFX #"; n ' Print which one ayPlaySound (n) ' Play sound # i Pause 100 ' Wait for 2 secs. Next n Sub ayPlaySound (sonido As Byte) ' This SUB plays the sound passed as parameter ' Sounds are taken from table "sonidos", which ' must be defined globally. Dim i As Byte For i = 0 To 13 Out 65533, i ' Select which AY register Out 49149, sonidos (sonido, i) ' Write a value in it Next i End Sub

The values in the array are pretty straightforward. The first 14 AY registers are written by the routine, just look at this table and you may create your own wacky sounds.

Code:
AY REGISTERS 00 Channel A fine pitch 8-bit (0-255) 01 Channel A course pitch 4-bit (0-15) 02 Channel B fine pitch 8-bit (0-255) 03 Channel B course pitch 4-bit (0-15) 04 Channel C fine pitch 8-bit (0-255) 05 Channel C course pitch 4-bit (0-15) 06 Noise pitch 5-bit (0-31) 07 Mixer 8-bit (see below) 08 Channel A volume 4-bit (0-15, see below) 09 Channel B volume 4-bit (0-15, see below) 10 Channel C volume 4-bit (0-15, see below) 11 Envelope fine duration 8-bit (0-255) 12 Envelope course duration 8-bit (0-255) 13 Envelope shape 4-bit (0-15) 14 I/O port A 8-bit (0-255) 15 I/O port B 8-bit (0-255) Bit: 7 6 5 4 3 2 1 0 _ _ I/O I/O Noise Noise Noise Tone Tone Tone B A C B A C B A
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)