forked from historicalsource/smashtv
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSOUNDS.ASM
594 lines (555 loc) · 19.2 KB
/
SOUNDS.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
.FILE "SOUNDS.ASM"
.TITLE "GSP SOUND PROCESSOR VER. 2.0"
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
**************************************************************************
* *
* COPYRIGHT (C) 1990 MIDWAY MANUFACTURING COMPANY, *
* MANUFACTURERS OF BALLY/MIDWAY AMUSEMENT GAMES. *
* ALL RIGHTS RESERVED. *
* *
**************************************************************************
;
; GET THE SYSTEM STUFF
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
.include "sys.inc" ;z unit system equates
.include "macros.hdr" ;macros definitions
.INCLUDE "ROBO.EQU" ;SOUND HEADER
;
;
.REF SOUNDSUP
;
;SOUND DRIVER STUFF
;
.DEF SNDRES,ONESND,SNDLD,SNDSND,CKSNDPRI,QSNDRST
.DEF MUSICOFF,YAMOFF,FADE_DOWN,ALLOFF,SNDPRC,FADE_UP,MCSPK8
;
;SOUND HEADERS USED IN GAME
;
.DEF WOO1,WOO2,BINGO,EXP3HIB,COINSND,HIMUSC,TUNE4
.DEF BUYMSC,ENDTUNE,STRYMSC,VICMSC,OUCH,GOGO,SCRM
.DEF AWWSND,EESND,ONOSND,HASND,WPWPSND,WPSSND,HA2SND
.DEF AWWSND2
.DEF BTUNE1,TUNE1,TUNE2,TUNE3,TUNE1B,DOOR1,SCASH,GIFT,PZLSND
.DEF BTUNE2,BTUNE3
.DEF ICON,EXP3,SHOT,MISS,EXP1,TING,FSHOT,EXP3HI,TING2
.DEF MBANG,BLDS,UGH,BUBL,RIFL,HEXP,GDTH1,EXP3HIA,UGH2,UGH3
.DEF GDTH2,FREESND,CROWD1,CROWD2,SHKSND,CROWD1A,FREEMAN
.DEF GRNSND,LAZSND,BEEP2,MISS2,GLSEXP,BEEP1,LOWSND
.DEF BONS1,BONS2,LEGOSND,MONIN,BEEP3
.DEF MCSPK2,MCSPK3,MCSPK4,MCSPK5,MCSPK6,MCSPK7,MCSPK8
.DEF MCSPK9,MCSPK10,MCSPK11,NOWAY,ICSND
.TEXT
*
*SOUND PROCESSOR MAKES SOUNDS FOR N-CHANNELS (CURRENTLY 4):
*
* CHANNEL #0 CVSD SOUNDS
* CHANNEL #1 DAC A
* CHANNEL #2 DAC B
* CHANNEL #3 MUSIC
*
*THE ROUTINE "SNDRES" MUST BE CALLED TO INITAILIZE SOUND BOARD
*ALSO SCRATCHPAD RAM MUST BE INITIALIZED TO ZERO
*THE ROUTINE "SNDPRC" MUST BE CALLED EVERY 16MSEC. IN THE MAIN PROGRAM LOOP
*(THE SAME PLACE WHERE "PRCDSP" IS NORMALLY CALLED)
*MAKING A SOUND:
*
*SOUND TABLE FORMAT
*
*SOUND DESCRIPTION:
* .WORD PRIORITY, TIME, SOUND CODE, (PRIORITY), (TIME), (SOUND CODE), 0
*
*SOUND ENDS IN 0000.
*PRIORITY WORD = 1111IENNPPPPPPPP; I=1=NON-INTERRUPTABLE, E=1=NON-INT BY EQUAL
*NN=CHANNEL #(0-3);
*PP=PRIORITY (00-FF), FF=HIGHEST.
*TIME WORD =TTTT (0000-7FFF X 16MS).
*SOUND WORD =8SSS SSS=SOUND CODE(000-FFF).
*SOUND WORD =4SSS SSS=SOUND CODE (ZERO TIME SOUND CODE)
*EXAMPLE 1:
*
* MOVI SND1,A0 ;LOAD ABSOLUTE ADDRESS OF SND1 IN A0
* CALLA ONESND ;MAKE ONE SND1
*
*SND1: .WORD 0F0FFH,00100H,08088H,0
*
*SND1 IS FOR CHANNEL=0, PRIORITY=FF (HIGHEST), TIME = 100H X 16MSEC.
*SOUND CODE = 88H
*SND1 WILL MAKE ONE SOUND 88H, AND NOT ALLOW IT TO BE INTERRUPTED
*FOR 100H X 16MSEC., EXCEPT BY A SOUND OF EQUAL OR GREATER PRIORITY ON
*CHANNEL 0
*
* MOVI SND2,A0 ;LOAD SND2 ADDRESS
* MOVK 3,A1 ;REPEAT IT 3 TIMES
* CALLA SNDLD ;GO DO IT
*SND2: .WORD 0F311H,00020H,08044H,08044H,0
*
*SND2 IS ON CHANNEL 3, PRIORITY 11H. IT WILL MAKE ONE SOUND 44H, WAIT
*20H X 16 MSEC., THEN MAKE ANOTHER SOUND 44H, WHICH CANNOT BE INTERRUPTED
*FOR 20H X 16 MSEC., EXCEPT BY A SOUND OF EQUAL OR GREATER PRIORITY ON
*CHANNEL 3
*
*SINCE A1 IS LOADED WITH A REPEAT COUNT OF 3, THIS PROCESS WILL BE REPEATED
*THREE TIMES. THE END RESULT WILL BE 6 SOUND 44H SEPERATED BY 20H X 16MSEC.
*
*NOTE: THE CHANNEL SPECIFIED BY "MUSICHAN" WILL CAUSE THE MUSIC SECTION OF
* THE SOUND BOARD TO BE STROBED.
*
SNDPRI .SET 0 ;PRIORITY (00=LOWEST, FF=HIGHEST)
SNDTIM .SET 010h ;TIMER 000-7FFF
SNDTMR .SET 020h ;TIMER COUNTDOWN
SNDST .SET 030h ;ADDRESS OF SOUND TABLE START
SNDPTR .SET 050h ;POINTER TO SOUND TABLE DATA
SNDREP .SET 070h ;REPEAT COUNT OF SOUND
*NOTE: IF YOU CHANGE SNDSIZ, MAKE SURE ANY CODE THAT USES IT AS A DIVISOR
* PERFORMS THE CORRECT OP. CURRENTLY IT IS A POWER OF 2 SO SRL IS USED.
SNDSIZ .SET 080h
NCHAN EQU 4 ;DECLARE NUMBER OF ALLOWED CHANNELS
MUSICHAN EQU 3 ;THIS CHANNEL IS FOR THE TUNES
*THESE STROBE EQUATES ARE FOR THE PINBALL SOUND CARD
RESETBIT EQU 0FE00H ;THIS IS THE ^RESET BIT
MUSICBIT EQU 0FD00H ;THIS IS THE YAMAHA SIDE STROBE
SOUNDBIT EQU 0FD00H ;THIS IS THE SOUND SIDE STROBE
*THESE STROBE EQUATES ARE FOR THE NARC SOUND CARD
***RESETBIT EQU 0FB00H ;THIS IS THE ^RESET BIT
***MUSICBIT EQU 0FD00H ;THIS IS THE YAMAHA SIDE STROBE
***SOUNDBIT EQU 0FE00H ;THIS IS THE SOUND SIDE STROBE
.BSS SNDSTR,NCHAN*SNDSIZ ;RESERVE STORAGE AREA
.BSS SNDEND,0 ;END OF SOUND PROCESSOR RAM
**************************************************************************
* *
* CLRSNDDB - CLEAR THE SOUND PROCESSOR DATA BASE *
* *
**************************************************************************
CLRSNDDB
MMTM SP,A0,A1
MOVI SNDSTR,A1
CLR A0
CLRSDBL
MOVE A0,*A1+,W
CMPI SNDEND,A1
JRLO CLRSDBL
MMFM SP,A0,A1
RETS
*
*MAKE ONE SOUND
*A0=SOUND ADDRESS
ONESND: MOVE A1,-*SP,L
MOVK 1,A1
CALLR SNDLD
MOVE *SP+,A1,L
RETS
*
*SOUND LOADER
*A0=SOUND ADDRESS, A1=REPEAT COUNT
*SOUND DESCRIPTION= PRIORITY,TIME,SOUND CODE,(PRIORITY),(TIME),(SOUND CODE),0
*SOUND ENDS IN ZERO
*PRIORITY WORD = 1111IENNPPPPPPPP; I=1=NON-INTERRUPTABLE, E=1=NON-INT BY EQUAL
*NN=CHANNEL #(0-3);
*PP=PRIORITY (00-FF), FF=HIGHEST.
*TIME WORD =TTTT (0000-7FFF X 16MS).
*SOUND WORD =8SSS SSS=SOUND CODE(000-FFF).
*SOUND WORD =4SSS SSS=SOUND CODE (ZERO TIME SOUND CODE)
SNDLD:
MMTM SP,A0,A1,A2,A3,A4,A5
MOVE @SOUNDSUP,A4,W
JRNZ SNDLDX ;SOMEBODY SAYS NO!
MOVE *A0,A5 ;GET PRIORITY BYTE
MOVE A5,A2
MOVI SNDSIZ,A3
SLL 22,A5
SRL 30,A5 ;EXTRACT CHANNEL BITS
MPYU A5,A3
ADDI SNDSTR,A3 ;CALC RAM CHANNEL ADDRESS
MOVE *A3(SNDPRI),A4 ;GET CURRENT PRIORITY
BTST 11,A4 ;CURRENT SOUND NON-INTERRUPTABLE ?
JRNE SNDLDX ;YES, CAN NEW SOUND
MOVE A2,A5 ;EXTRACT PRIORITY
SLL 24,A5
SRL 24,A5
SLL 24,A4
SRL 24,A4
CMP A5,A4 ;NEW ONE GREATER OR EQUAL?
JRHI SNDLDX ;OLD ONE IS GREATER, FORGET NEW SOUND
JRLO SNDLD1 ;NEW ONE IS GREATER, DO IT
MOVE *A3(SNDPRI),A4 ;INTERRUPTABLE BY EQUAL?
BTST 10,A4
JRNE SNDLDX ;NON-INTERRUPTABLE BY EQUAL, CAN NEW GUY
SNDLD1:
MOVE A0,A4
MOVE A3,A0 ;CHANNEL RAM ADDRESS
MOVE A4,*A0(SNDPTR),L ;SETUP SOUND DATA POINTER (ROM)
MOVE A4,*A0(SNDST),L ;SETUP SOUND START POINTER
; MOVE A1,*A0(SNDREP) ;REPEAT COUNT
CALLR SNDUPD ;START SOUND GOING
SNDLDX:
MMFM SP,A0,A1,A2,A3,A4,A5
RETS
*
*SOUND PROCESSOR CALLED EVERY 16 MSEC.
*
SNDPRC:
MOVI SNDSTR,A0
MOVK NCHAN,A1
SNDLP0:
MOVE *A0(SNDTMR),A2 ;CHECK TIMER
JREQ SNDPLP ;EQUAL, INACTIVE CHANNEL
DEC A2
MOVE A2,*A0(SNDTMR) ;DEC TIME
JRNE SNDPLP ;NO TIMEOUT
CALLR SNDUPD ;UPDATE SOUND
SNDPLP:
ADDI SNDSIZ,A0
DSJS A1,SNDLP0
RETS
*
*UPDATE SOUND
*A0=POINTER TO SOUND CHANNEL RAM
*
SNDUPD:
SNDUP0:
MOVE *A0(SNDPTR),A2,L ;GET POINTER TO ROM TABLE
SNDUP1:
MOVE *A2+,A3 ;GET NEXT ROM TABLE ENTRY
JREQ SNDUP5 ;END OF SOUND
*CHECK FOR PRIORITY
CMPI -01000H,A3
JRLO SNDUP2 ;NOT PRIORITY CHANGE
MOVE A3,*A0(SNDPRI) ;UPDATE PRIORITY
JRUC SNDUP1 ;GO GET NEXT ONE
*CHECK FOR SOUND CODE
SNDUP2:
CMPI 4000H,A3
JRLO SNDUP3
CMPI -08000H,A3
JRHS SNDUP2A
MOVE A0,A5
SUBI SNDSTR,A5
SRL 7,A5 ;DIVIDE BY 128
CALLR SNDSND ;SEND SOUND CODE
JRUC SNDUP1 ;GET THE NEXT ONE BOYS
SNDUP2A:
MOVE A0,A5
SUBI SNDSTR,A5
SRL 7,A5 ;DIVIDE BY 128
**************************************************************************
* *
* MOVI SNDSIZ,A6 ;IF SNDSIZ IS NOT A POWER OF 2, *
* DIVU A6,A5 ;USE DIVIDE TO CALCULATE SOUND CHANNEL # *
* *
**************************************************************************
CALLR SNDSND ;SEND SOUND CODE
MOVE *A0(SNDTIM),*A0(SNDTMR)
MOVE A2,*A0(SNDPTR),L ;STORE POINTER
RETS
*TIMER VALUE X 16MSEC.
SNDUP3:
MOVE A3,*A0(SNDTIM)
MOVE A3,*A0(SNDTMR)
JRUC SNDUP1 ;SET TIMER VALUE, AND GO GET NEXT
*CHECK FOR REPEATERS
SNDUP5:
; MOVE *A0(SNDREP),A3 ;CHECK REPEAT COUNT
; DEC A3
; MOVE A3,*A0(SNDREP)
; JREQ SNDUP6 ;ALL OVER
; MOVE *A0(SNDST),*A0(SNDPTR)
; JRUC SNDUP0 ;START SOUND OVER
*SOUND IS OVER CLEAR THE CHANNEL
;SNDUP6:
CLR A2
MOVE A2,*A0(SNDPRI) ;CLEAR SOUND PRIORITY
SNDUPX: RETS
*
*HARDWARE SOUND CALL
*A3=SOUND CODE B0-B7
*A5=SOUND CHANNEL #
*
SNDSND:
MMTM SP,A0,A3
MOVI 8,A0 ;SLOW DOWN FOR GRANNER & C0.
DSJS A0,$
SLL 24,A3
SRL 24,A3 ;STRIP OFF BITS
CMPI MUSICHAN,A5
JRNE SNDSND1
ADDI MUSICBIT,A3 ;PULL MUSIC SECTION INTERRUPT
JRUC SNDSND2
SNDSND1
ADDI SOUNDBIT,A3 ;PULL SOUND SECTION INTERRUPT
SNDSND2
MOVE A3,@SOUND ;HIT SOUND
MOVI 8,A0
DSJS A0,$ ;SLOW IT DOWN A BIT
ORI 0FF00h,A3 ;PUT OUT 1'S
MOVE A3,@SOUND
MMFM SP,A0,A3
RETS
*
*RESET SOUND BOARD, FULL RESET, CHECKSUM DINGS AND ALL
*
SNDRES:
MMTM SP,A0
MOVI RESETBIT,A0 ;HIT RESET BIT
MOVE A0,@SOUND
MOVI 100,A0 ;WAIT FOR IT TO CATCH
DSJS A0,$
MOVI 0FFFFh,A0 ;LET IT GO
MOVE A0,@SOUND
MMFM SP,A0
RETS
**************************************************************************
* *
* CKSNDPRI - CHECK SOUND CHANNEL FOR EXISTANCE OF A GIVEN SOUND PRIORITY *
* A0 = CHANNEL # *
* A1 = SOUND PRIORITY *
* RETURNS: *
* CARRY CLEAR = PRIORITY NOT ACTIVE *
* CARRY SET = PRIORITY ACTIVE *
* *
**************************************************************************
CKSNDPRI
MMTM SP,A0,A2
MOVI SNDSTR,A2
SLL 7,A0 ;CHANNEL x 128
ADD A2,A0 ;OFFSET TO CORRECT CHANNEL AREA
MOVB *A0,A0
CMP A0,A1
JRNE CKSPRI1 ;BR = PRIORITY NOT ACTIVE
SETC
MMFM SP,A0,A2
RETS
CKSPRI1
CLRC
MMFM SP,A0,A2
RETS
**************************************************************************
* *
* QSNDRST - QUIET SOUND RESET, NO DIAGNOSTIC DONGERS *
* *
**************************************************************************
QSNDRST
MMTM SP,A3,A5
CALLR SNDRES ;RESET THE BOARD
CLR A3
CLR A5
CALLR SNDSND ;PEND ON DIG SIDE
MOVK MUSICHAN,A5
CALLR SNDSND ;PEND ON YAMAHA SIDE
MMFM SP,A3,A5
RETS
**************************************************************************
* *
* FADE_UP - PROCESS TO FADE THE SOUND UP *
* A11 = FADE RATE *
* *
**************************************************************************
FADE_UP:
MOVI FADE_UP_TAB,A8
JRUC FADER
**************************************************************************
* *
* FADE_DOWN - PROCESS TO FADE THE SOUND DOWN *
* A11 = FADE RATE *
* *
**************************************************************************
FADE_DOWN:
MOVI FADE_DOWN_TAB,A8
JRUC FADER
FADER:
MOVI FADEPID,A0
CLR A1
NOT A1
CALLA KILALL ;WASTE ANY OTHER FADERS
FADE_LP:
MOVE *A8+,A0,L
JRZ FADE_DONE
CALLR ONESND
SLOOPR A11,FADE_LP
FADE_DONE:
DIE
FADE_UP_TAB:
.LONG VOLUME0
.LONG VOLUME1
.LONG VOLUME2
.LONG VOLUME3
.LONG VOLUME4
.LONG VOLUME5
.LONG VOLUME6
.LONG VOLUME7
.LONG VOLUME8
.LONG VOLUME9
.LONG VOLUMEA
.LONG VOLUMEB
.LONG VOLUMEC
.LONG VOLUMED
.LONG VOLUMEE
.LONG VOLUMEF
.LONG 0
FADE_DOWN_TAB:
.LONG VOLUMEF
.LONG VOLUMEE
.LONG VOLUMED
.LONG VOLUMEC
.LONG VOLUMEB
.LONG VOLUMEA
.LONG VOLUME9
.LONG VOLUME8
.LONG VOLUME7
.LONG VOLUME6
.LONG VOLUME5
.LONG VOLUME4
.LONG VOLUME3
.LONG VOLUME2
.LONG VOLUME1
.LONG VOLUME0
.LONG 0
**************************************************************************
* *
* POPULAR SOUND CALLS *
* *
**************************************************************************
*
*HIGH PRIORITY OFF CODES, NOTHING SHOULD BEAT THESE
CVSDOFF .WORD 0F0FFH|0800H-10H,001H,08000H,0 ;CVSD BACKGROUND LOOP OFF
CVSDFOFF .WORD 0F0FFH|0800H-10H,001H,08000H,0 ;CVSD FOREGROUND LOOP OFF
SOUNDOFF .WORD 0F0FFH|0800H-10H,001H,08000H,0 ;TURN SOUND SIDE OFF
ALLOFF .WORD 0F0FFH|0800H-10H,001H,08000H,0 ;ALL CVSD & DAC SOUNDS OFF
MUSICOFF .WORD 0F3FCH|0800H-10H,001H,08000H,0 ;MUSIC HARD OFF
MUSITOFF .WORD 0F3FFH|0800H-10H,001H,08040H,0 ;MUSIC TRANSITION OFF
YAMOFF .WORD 0F3FFH-10H,001H,0807FH,0 ;YAMAHA EFFECT OFF
DIGOFF .WORD 0F0FFH|0800H-10H,001H,08000H,0 ;TURN SOUND SIDE OFF
VOLUME0 .WORD 0F3FEH-10H,01H,0402FH,0806FH,0
VOLUME1 .WORD 0F3FEH-10H,01H,0402EH,0806EH,0
VOLUME2 .WORD 0F3FEH-10H,01H,0402DH,0806DH,0
VOLUME3 .WORD 0F3FEH-10H,01H,0402CH,0806CH,0
VOLUME4 .WORD 0F3FEH-10H,01H,0402BH,0806BH,0
VOLUME5 .WORD 0F3FEH-10H,01H,0402AH,0806AH,0
VOLUME6 .WORD 0F3FEH-10H,01H,04029H,08069H,0
VOLUME7 .WORD 0F3FEH-10H,01H,04028H,08068H,0
VOLUME8 .WORD 0F3FEH-10H,01H,04027H,08067H,0
VOLUME9 .WORD 0F3FEH-10H,01H,04026H,08066H,0
VOLUMEA .WORD 0F3FEH-10H,01H,04025H,08065H,0
VOLUMEB .WORD 0F3FEH-10H,01H,04024H,08064H,0
VOLUMEC .WORD 0F3FEH-10H,01H,04023H,08063H,0
VOLUMED .WORD 0F3FEH-10H,01H,04022H,08062H,0
VOLUMEE .WORD 0F3FEH-10H,01H,04021H,08061H,0
VOLUMEF .WORD 0F3FEH-10H,01H,04020H,08060H,0
;
* SMASH TV SOUND TABLE
* CHANNEL #0 CVSD SOUNDS
* CHANNEL #1 DAC A
* CHANNEL #2 MUSIC
* CHANNEL #3 FOREGROUND
*------------------------------------------------------------------------*
*SOUND DESCRIPTION= PRIORITY,TIME,SOUND CODE,(PRIORITY),(TIME),(SOUND CODE),0
*SOUND ENDS IN 0000.
*PRIORITY WORD = 1111IENNPPPPPPPP; I=1=NON-INTERRUPTABLE, E=1=NON-INT BY EQUAL
*NN=CHANNEL #(0-3);
*PP=PRIORITY (00-FF), FF=HIGHEST.
*TIME WORD =TTTT (0000-7FFF X 16MS).
*SOUND WORD =8SSS SSS=SOUND CODE(000-FFF).
*SOUND WORD =4SSS SSS=SOUND CODE (ZERO TIME SOUND CODE)
*------------------------------------------------------------------------*
SNDTAB:
TUNE1 .WORD 0F2FEH-10H,300,08003H,0 ;PODIUM TO FIRST ARENA TUNE
TUNE1B .WORD 0F2FEH-10H,300,08006H,0 ;PODIUM TO 2ND CIRC TUNE
VICMSC .WORD 0F2F0H-10H,100,08009H,0 ;MUTOID VICTORY MUSIC
HIMUSC .WORD 0F2F0H-10H,100,0800FH,0 ;HIGH SCORE MUSIC
BUYMSC .WORD 0F280H-10H,300,0800DH,0 ;BUYIN MUSIC
STRYMSC .WORD 0F280H-10H,300,0800DH,0 ;MUSIC FOR STORY IN DEMO
ENDTUNE .WORD 0F280H-10H,300,08002H,0 ;END OF GAME TUNE
DOOR1 .WORD 0F376H-10H,5,08083H,0 ;DOOR SLIDING OPEN
DOOR2 .WORD 0F376H-10H,5,08084H,0 ;DOOR SLIDING SHUT
FSHOT .WORD 0F7A0H-10H,02EH,08085H,0 ;POD SIZZLE
TUNE2 .WORD 0F2FFH-10H,120,08001H,0 ;FIRST BKRND TUNE
TUNE3 .WORD 0F2FFH-10H,120,08005H,0 ;2ND BKRND TUNE (ROBOTS)
TUNE4 .WORD 0F2FFH-10H,120,0800EH,0 ;3RD BKRND TUNE (SNAKES)
BTUNE1 .WORD 0F6FFH-10H,0120H,08004H,0 ;MUTOID BOSS TUNE
BTUNE2 .WORD 0F6FFH-10H,0120H,08002H,0 ;FACE BOSS TUNE
BTUNE3 .WORD 0F6FFH-10H,0120H,0800AH,0 ;SNAKE BOSS TUNE
ICON .WORD 0F3AFH-10H,01EH,08091H,0 ;WEAPON ICON PICKUP
GDTH2 .WORD 0F3AFH-10H,01EH,08095H,0 ;GRUNT DEATH
SHOT .WORD 0F0E7H-10H,005H,080C4H,0 ;REGULAR SHOT
RIFL .WORD 0F4E8H-10H,008H,080C5H,0 ;RIFLE SPRAY WEAPON
MBANG .WORD 0F5E9H-10H,02EH,080A0H,0 ;ARM BANG
HEXP .WORD 0F3A0H-10H,010H,0808AH,0 ;OTHER HULK DEATH
HEXP2 .WORD 0F3A0H-10H,01EH,0809CH,0 ;OTHER HULK DEATH
HEXP3 .WORD 0F3A0H-10H,01EH,0809EH,0 ;OTHER HULK DEATH
BUBL .WORD 0FBFBH-10H,01EH,080A3H,0 ;BLOOD BUBBLE
ICSND .WORD 0F3EFH-10H,01EH,08092H,0 ;ICON PICKUP
FREESND .WORD 0FBFEH-10H,030H,080A6H,0 ;FREE MAN SND
LOWSND .WORD 0FBFDH-10H,120,080A8H,0 ;WEAPON LOW SND
LAZSND .WORD 0F3F7H-10H,010H,080AEH,0 ;LAZER BOLTS FROM EYES
BEEP2 .WORD 0F3F7H-10H,020H,080AFH,0 ;BEEP TONE
BONS1 .WORD 0F3FFH-10H,01H,080B2H,0 ;BONUS BUILDUP
BONS2 .WORD 0F3FEH-10H,01H,080B3H,0 ;BONUS END
SCRM .WORD 0F3EFH-10H,010H,080B5H,0 ;SNAKE SCREAM DEATH
BEEP1 .WORD 0F3F7H-10H,08H,080B0H,0 ;BEEP TONE
BEEP3 .WORD 0F3F7H-10H,08H,080A4H,0 ;BONUS PRIZE ERASE
MONIN .WORD 0F3F8H-10H,010H,0809FH,0 ;MONITOR SLIDE IN
GRNSND .WORD 0F7F7H-10H,010H,080AAH,0 ;GRENADE LAUNCH SND
MISS .WORD 0F4E8H-10H,008H,080C3H,0 ;MISSLES
MISS2 .WORD 0F0E7H-10H,008H,080C3H,0 ;MISSLES FROM BAD GUYS
BLDS .WORD 0FBDFH-10H,01EH,0808BH,0 ;BLADES
TING .WORD 0F38BH-10H,01EH,0809AH,0 ;BULLET HITTING WALL
TING2 .WORD 0F3F3H-10H,00FH,0809AH,0 ;BULLET HITTING WALL
GIFT .WORD 0F3A0H-10H,50,08081H,0 ;PRESENT PICKUP
SCASH .WORD 0F7A5H-10H,8,08080H,0 ;CASH REGISTER SOUND
GDTH1 .WORD 0F3E4H-10H,35,08082H,0 ;GRUNT DEATH
EXP1 .WORD 0F0E8H-10H,008H,080C2H,0 ;EXPLOSION SMALL
EXP3 .WORD 0F0E8H-10H,00FH,080C0H,0 ;EXOLOSION LARGE
EXP3HI .WORD 0F4FEH-10H,15,080C0H,0 ;EXOLOSION LARGE FOR SMRT BMB
EXP3HIA .WORD 0FCFFH-10H,35,080C0H,0 ;EXOLOSION LARGE FOR MUTOID
EXP3HIB .WORD 0F0FFH-08H,35,080C0H,0 ;EXOLOSION LARGE FOR SMRTBMB
UGH .WORD 0F8FEH-10H,15,080C9H,0 ;PLAYER DIE SCREAM
GLSEXP .WORD 0F1E8H-10H,040H,0809DH,0 ;GLASS SHATTER
SHKSND .WORD 0FCFEH-10H,120,080CFH,0 ;PLAYER ELECTRIC SHOCK
CROWD1 .WORD 0F8F8H-10H,04EH,080CAH,0 ;CROWD NOISE CHEERS
CROWD1A .WORD 0F0F8H-10H,03EH,080CAH,0 ;CROWD NOISE CHEERS TVMNTR
CROWD2 .WORD 0F8F8H-10H,02EH,080CBH,0 ;CROWD NOISE OOHS N AAHS
;
;SPEECH TABLES
;
PZLSND .LONG PZ1SND,PZ2SND,PZ3SND
PZ1SND .LONG WOO3,WOO1,WOO1 ;STSTR,SCAR,SVCR
PZ2SND .LONG WOO3,WOO1,WOO1 ;STELE,SLUGG,STRIP
PZ3SND .LONG WOO3,WOO1,WOO1 ;SHGM,SMWR,SMEAT
;
;SPEECH
;
GOGO .WORD 0F4FEH-10H,018H,08034H,0 ;GIRLS 'GO!'
UGH2 .WORD 0F4E8H-10H,014H,08031H,0 ;UGH! / SNAKE GRUNT
UGH3 .WORD 0F4E8H-10H,014H,08033H,0 ;OOF!
WOO1 .WORD 0F4FEH-10H,034H,08030H,0 ;"YEAH"
WOO3 .WORD 0F4FEH-10H,034H,08035H,0 ;GIRL YEAH
WOO2 .WORD 0F4FEH-10H,034H,08036H,0 ;WHHOOO
;
OUCH .WORD 0F4FEH-10H,040H,08038H,0 ;OUCH GROWL
AWWSND .WORD 0F4FDH-10H,03AH,08039H,0 ;BIG AWW SND
AWWSND2 .WORD 0F4FFH-10H,03AH,08039H,0 ;BIG AWW SND FLAT FACE
EESND .WORD 0F4FDH-10H,030H,0803AH,0 ;EE-AAH SND
ONOSND .WORD 0F4FEH-10H,030H,0803BH,0 ;OH NO SND
HASND .WORD 0F4FEH-10H,030H,0803CH,0 ;HAHA SND
HA2SND .WORD 0F4FEH-10H,030H,08037H,0 ;HAHA SND
WPWPSND .WORD 0F4FFH-10H,040H,0803DH,0 ;WHOOP WHOOP SND
WPSSND .WORD 0F4FFH-10H,040H,0803EH,0 ;LOTS OF WHOOPS
NOWAY .WORD 0F4FFH-0EH,050H,0803FH,0 ;"NO WAY"
;
BINGO .WORD 0F4FFH-07H,030H,08050H,0 ;"BINGO"
COINSND .WORD 0F4FFH-01H,018H,08050H,0 ;"BINGO" COIN IN SND
MCSPK2 .WORD 0F4FEH-10H,03FH,08051H,0 ;BIG MONEY
MCSPK3 .WORD 0F4FEH-10H,03FH,08052H,0 ;BIG PRIZES
MCSPK4 .WORD 0F4FEH-10H,03FH,08053H,0 ;"GOOD LUCK"
MCSPK5 .WORD 0FCFFH-06H,05BH,08054H,0 ;CONTESTANT 1
MCSPK6 .WORD 0FCFFH-06H,05BH,08055H,0 ;CONTESTANT 2
MCSPK7 .WORD 0FCFEH-10H,053H,08056H,0 ;"TOTAL CARNAGE"
MCSPK8 .WORD 0FCFEH-10H,043H,08057H,0 ;I LOVE IT
LEGOSND .WORD 0FCFEH-10H,030H,08058H,0 ;LET'S GO
MCSPK9 .WORD 0F4FFH-07H,053H,08059H,0 ;TEN SECONDS
MCSPK10 .WORD 0FCFEH-10H,043H,0805AH,0 ;"YOU'LL NEED IT"
FREEMAN .WORD 0FCFEH-8H,033H,0805BH,0 ;FREE MAN! SPEECH CALL
MCSPK11 .WORD 0FCFEH-10H,043H,08032H,0 ;"BUY FOR A DOLLAR:
.END