smashtv/SOUNDS.ASM

594 lines
19 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

.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 "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
.INCLUDE "\VIDEO\SYS\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 >F0FF,>0100,>8088,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 >F311,>0020,>8044,>8044,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 ->1000,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 ->8000,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 >F0FF|>800-10H,>01,>8000,0 ;CVSD BACKGROUND LOOP OFF
CVSDFOFF .WORD >F0FF|>800-10H,>01,>8000,0 ;CVSD FOREGROUND LOOP OFF
SOUNDOFF .WORD >F0FF|>800-10H,>01,>8000,0 ;TURN SOUND SIDE OFF
ALLOFF .WORD >F0FF|>800-10H,>01,>8000,0 ;ALL CVSD & DAC SOUNDS OFF
MUSICOFF .WORD >F3FC|>800-10H,>01,>8000,0 ;MUSIC HARD OFF
MUSITOFF .WORD >F3FF|>800-10H,>01,>8040,0 ;MUSIC TRANSITION OFF
YAMOFF .WORD >F3FF-10H,>01,>807F,0 ;YAMAHA EFFECT OFF
DIGOFF .WORD >F0FF|>800-10H,>01,>8000,0 ;TURN SOUND SIDE OFF
VOLUME0 .WORD >F3FE-10H,>1,>402F,>806F,0
VOLUME1 .WORD >F3FE-10H,>1,>402E,>806E,0
VOLUME2 .WORD >F3FE-10H,>1,>402D,>806D,0
VOLUME3 .WORD >F3FE-10H,>1,>402C,>806C,0
VOLUME4 .WORD >F3FE-10H,>1,>402B,>806B,0
VOLUME5 .WORD >F3FE-10H,>1,>402A,>806A,0
VOLUME6 .WORD >F3FE-10H,>1,>4029,>8069,0
VOLUME7 .WORD >F3FE-10H,>1,>4028,>8068,0
VOLUME8 .WORD >F3FE-10H,>1,>4027,>8067,0
VOLUME9 .WORD >F3FE-10H,>1,>4026,>8066,0
VOLUMEA .WORD >F3FE-10H,>1,>4025,>8065,0
VOLUMEB .WORD >F3FE-10H,>1,>4024,>8064,0
VOLUMEC .WORD >F3FE-10H,>1,>4023,>8063,0
VOLUMED .WORD >F3FE-10H,>1,>4022,>8062,0
VOLUMEE .WORD >F3FE-10H,>1,>4021,>8061,0
VOLUMEF .WORD >F3FE-10H,>1,>4020,>8060,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 >F2FE-10H,300,>8003,0 ;PODIUM TO FIRST ARENA TUNE
TUNE1B .WORD >F2FE-10H,300,>8006,0 ;PODIUM TO 2ND CIRC TUNE
VICMSC .WORD >F2F0-10H,100,>8009,0 ;MUTOID VICTORY MUSIC
HIMUSC .WORD >F2F0-10H,100,>800F,0 ;HIGH SCORE MUSIC
BUYMSC .WORD >F280-10H,300,>800D,0 ;BUYIN MUSIC
STRYMSC .WORD >F280-10H,300,>800D,0 ;MUSIC FOR STORY IN DEMO
ENDTUNE .WORD >F280-10H,300,>8002,0 ;END OF GAME TUNE
DOOR1 .WORD >F376-10H,5,>8083,0 ;DOOR SLIDING OPEN
DOOR2 .WORD >F376-10H,5,>8084,0 ;DOOR SLIDING SHUT
FSHOT .WORD >F7A0-10H,>2E,>8085,0 ;POD SIZZLE
TUNE2 .WORD >F2FF-10H,120,>8001,0 ;FIRST BKRND TUNE
TUNE3 .WORD >F2FF-10H,120,>8005,0 ;2ND BKRND TUNE (ROBOTS)
TUNE4 .WORD >F2FF-10H,120,>800E,0 ;3RD BKRND TUNE (SNAKES)
BTUNE1 .WORD >F6FF-10H,>120,>8004,0 ;MUTOID BOSS TUNE
BTUNE2 .WORD >F6FF-10H,>120,>8002,0 ;FACE BOSS TUNE
BTUNE3 .WORD >F6FF-10H,>120,>800A,0 ;SNAKE BOSS TUNE
ICON .WORD >F3AF-10H,>1E,>8091,0 ;WEAPON ICON PICKUP
GDTH2 .WORD >F3AF-10H,>1E,>8095,0 ;GRUNT DEATH
SHOT .WORD >F0E7-10H,>05,>80C4,0 ;REGULAR SHOT
RIFL .WORD >F4E8-10H,>08,>80C5,0 ;RIFLE SPRAY WEAPON
MBANG .WORD >F5E9-10H,>2E,>80A0,0 ;ARM BANG
HEXP .WORD >F3A0-10H,>10,>808A,0 ;OTHER HULK DEATH
HEXP2 .WORD >F3A0-10H,>1E,>809C,0 ;OTHER HULK DEATH
HEXP3 .WORD >F3A0-10H,>1E,>809E,0 ;OTHER HULK DEATH
BUBL .WORD >FBFB-10H,>1E,>80A3,0 ;BLOOD BUBBLE
ICSND .WORD >F3EF-10H,>1E,>8092,0 ;ICON PICKUP
FREESND .WORD >FBFE-10H,>30,>80A6,0 ;FREE MAN SND
LOWSND .WORD >FBFD-10H,120,>80A8,0 ;WEAPON LOW SND
LAZSND .WORD >F3F7-10H,>10,>80AE,0 ;LAZER BOLTS FROM EYES
BEEP2 .WORD >F3F7-10H,>20,>80AF,0 ;BEEP TONE
BONS1 .WORD >F3FF-10H,>1,>80B2,0 ;BONUS BUILDUP
BONS2 .WORD >F3FE-10H,>1,>80B3,0 ;BONUS END
SCRM .WORD >F3EF-10H,>10,>80B5,0 ;SNAKE SCREAM DEATH
BEEP1 .WORD >F3F7-10H,>8,>80B0,0 ;BEEP TONE
BEEP3 .WORD >F3F7-10H,>8,>80A4,0 ;BONUS PRIZE ERASE
MONIN .WORD >F3F8-10H,>10,>809F,0 ;MONITOR SLIDE IN
GRNSND .WORD >F7F7-10H,>10,>80AA,0 ;GRENADE LAUNCH SND
MISS .WORD >F4E8-10H,>08,>80C3,0 ;MISSLES
MISS2 .WORD >F0E7-10H,>08,>80C3,0 ;MISSLES FROM BAD GUYS
BLDS .WORD >FBDF-10H,>1E,>808B,0 ;BLADES
TING .WORD >F38B-10H,>1E,>809A,0 ;BULLET HITTING WALL
TING2 .WORD >F3F3-10H,>0F,>809A,0 ;BULLET HITTING WALL
GIFT .WORD >F3A0-10H,50,>8081,0 ;PRESENT PICKUP
SCASH .WORD >F7A5-10H,8,>8080,0 ;CASH REGISTER SOUND
GDTH1 .WORD >F3E4-10H,35,>8082,0 ;GRUNT DEATH
EXP1 .WORD >F0E8-10H,>08,>80C2,0 ;EXPLOSION SMALL
EXP3 .WORD >F0E8-10H,>0F,>80C0,0 ;EXOLOSION LARGE
EXP3HI .WORD >F4FE-10H,15,>80C0,0 ;EXOLOSION LARGE FOR SMRT BMB
EXP3HIA .WORD >FCFF-10H,35,>80C0,0 ;EXOLOSION LARGE FOR MUTOID
EXP3HIB .WORD >F0FF-08H,35,>80C0,0 ;EXOLOSION LARGE FOR SMRTBMB
UGH .WORD >F8FE-10H,15,>80C9,0 ;PLAYER DIE SCREAM
GLSEXP .WORD >F1E8-10H,>40,>809D,0 ;GLASS SHATTER
SHKSND .WORD >FCFE-10H,120,>80CF,0 ;PLAYER ELECTRIC SHOCK
CROWD1 .WORD >F8F8-10H,>4E,>80CA,0 ;CROWD NOISE CHEERS
CROWD1A .WORD >F0F8-10H,>3E,>80CA,0 ;CROWD NOISE CHEERS TVMNTR
CROWD2 .WORD >F8F8-10H,>2E,>80CB,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 >F4FE-10H,>18,>8034,0 ;GIRLS 'GO!'
UGH2 .WORD >F4E8-10H,>14,>8031,0 ;UGH! / SNAKE GRUNT
UGH3 .WORD >F4E8-10H,>14,>8033,0 ;OOF!
WOO1 .WORD >F4FE-10H,>34,>8030,0 ;"YEAH"
WOO3 .WORD >F4FE-10H,>34,>8035,0 ;GIRL YEAH
WOO2 .WORD >F4FE-10H,>34,>8036,0 ;WHHOOO
;
OUCH .WORD >F4FE-10H,>40,>8038,0 ;OUCH GROWL
AWWSND .WORD >F4FD-10H,>3A,>8039,0 ;BIG AWW SND
AWWSND2 .WORD >F4FF-10H,>3A,>8039,0 ;BIG AWW SND FLAT FACE
EESND .WORD >F4FD-10H,>30,>803A,0 ;EE-AAH SND
ONOSND .WORD >F4FE-10H,>30,>803B,0 ;OH NO SND
HASND .WORD >F4FE-10H,>30,>803C,0 ;HAHA SND
HA2SND .WORD >F4FE-10H,>30,>8037,0 ;HAHA SND
WPWPSND .WORD >F4FF-10H,>40,>803D,0 ;WHOOP WHOOP SND
WPSSND .WORD >F4FF-10H,>40,>803E,0 ;LOTS OF WHOOPS
NOWAY .WORD >F4FF-0EH,>50,>803F,0 ;"NO WAY"
;
BINGO .WORD >F4FF-07H,>30,>8050,0 ;"BINGO"
COINSND .WORD >F4FF-01H,>18,>8050,0 ;"BINGO" COIN IN SND
MCSPK2 .WORD >F4FE-10H,>3F,>8051,0 ;BIG MONEY
MCSPK3 .WORD >F4FE-10H,>3F,>8052,0 ;BIG PRIZES
MCSPK4 .WORD >F4FE-10H,>3F,>8053,0 ;"GOOD LUCK"
MCSPK5 .WORD >FCFF-06H,>5B,>8054,0 ;CONTESTANT 1
MCSPK6 .WORD >FCFF-06H,>5B,>8055,0 ;CONTESTANT 2
MCSPK7 .WORD >FCFE-10H,>53,>8056,0 ;"TOTAL CARNAGE"
MCSPK8 .WORD >FCFE-10H,>43,>8057,0 ;I LOVE IT
LEGOSND .WORD >FCFE-10H,>30,>8058,0 ;LET'S GO
MCSPK9 .WORD >F4FF-07H,>53,>8059,0 ;TEN SECONDS
MCSPK10 .WORD >FCFE-10H,>43,>805A,0 ;"YOU'LL NEED IT"
FREEMAN .WORD >FCFE-8H,>33,>805B,0 ;FREE MAN! SPEECH CALL
MCSPK11 .WORD >FCFE-10H,>43,>8032,0 ;"BUY FOR A DOLLAR:
.END