675 lines
24 KiB
NASM
675 lines
24 KiB
NASM
**************************************************************************
|
||
* *
|
||
* TROG GLOBAL EQUATE FILE *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
*RAM EQUATES
|
||
*
|
||
.GLOBAL TVPATCH, TVPATCHX
|
||
.GLOBAL BBACTIVE, BBFREE, BACKSLST, NOAUTOE, RAND, SWSTACK, SWTEMP1
|
||
.GLOBAL SWTEMP2, SWSTMN, SWSTST, SYSCOPY, INTSYNC0, INTSYNC1
|
||
.GLOBAL PALRAM, FPALRAM, BPALRAM, PTRRAM, CURPAL
|
||
.GLOBAL IRQSKYE, P1DATA, P2DATA, P3DATA, P4DATA
|
||
.GLOBAL GAME_STATE, NPLAYERS, CURPLYRS, SOUNDSUP, GAMERASE
|
||
.GLOBAL WRAMEND, WRAMSTRT, NRAMEND, NRAMSTRT, GRAMEND, GRAMSTRT
|
||
.GLOBAL POSTSUPP, POSTMAP, MOVEMAP, MOVEEND
|
||
.GLOBAL P1BARS, P2BARS, P3BARS, P4BARS, TROGS, EGGS
|
||
.GLOBAL MAXBARS, PAGE, DINOS, WAVE, CMOVEMAP, CMOVEEND, CMOVECNT
|
||
.GLOBAL EMOVEMAP, EMOVEEND, EMOVECNT, BOXDIM, BOUNDRIES, STICKTYP
|
||
.GLOBAL MOVECNT, ENEMIES, AMOVEMAP, AMOVEEND
|
||
.GLOBAL AMOVECNT, SW2TEMP1, SW2TEMP2, PAUSE_GAME, HOUSELST
|
||
.GLOBAL WAVE_OVER
|
||
|
||
*
|
||
*PALETTE SUBROUTINE EQUATES
|
||
*
|
||
.GLOBAL GETFPAL, PALTRANS, CLRBPAL, INITPAL, CLRFPAL, FINDPAL
|
||
.GLOBAL GETBPAL, INITBPAL, CLRPAL, DELPAL, DELETE_PAL, FREEPAL
|
||
.GLOBAL CHANGE_PAL, GET_PALID
|
||
*
|
||
*UTILITY SUBROUTINE EQUATES
|
||
*
|
||
.GLOBAL SCRCLR, CLR_SCRN, MYOINIT, SETPPROC
|
||
.GLOBAL SHVELCPY, SHVELFLP, FLP, XZCHK, CLRPDATA
|
||
.GLOBAL RANDU, RANDOM, SRAND, RANGRAND, RANDPER
|
||
.GLOBAL FRANIM, IAUTOE, AUTOEOFF, AUTOEON, SYNCFULL, SYNCHALF
|
||
.GLOBAL DMAQWAIT, BLNKAREA, DTIME, DMAN, DRAWBOX, CLRP_P0, CLRP_P1
|
||
.GLOBAL PSTOP, MIDPOINT, QBOXCK, QINSCRN, CLRPLAY, PAGE0, PAGE1
|
||
.GLOBAL TURNPAGE, WHICHSID, ABOVBELO, ALIGNOBJ, GETCPNT, GETCENT
|
||
.GLOBAL SLINEVEL, CLRBLOCK, FILBLOCK, CHKRANGE, FRAMSKIP, FILL_SCRN
|
||
.GLOBAL PNT_IN_RANGE, CENTEROBJ, CK_OBJ_CENT, CK_BOTTOM_CENT
|
||
.GLOBAL SET_ZPOS, SET_MZPOS, SET_TZPOS, GET_INIT_CPNT, ANIMATOR
|
||
.GLOBAL GET_BOTTOM_MID, FILLAREA, ANIMATE_DEL, DMAWPAL, OSINK
|
||
.GLOBAL STOPPED, SKIP_ANIMATION
|
||
|
||
*
|
||
*SCORE SUBROUTINE EQUATES
|
||
*
|
||
.GLOBAL SCORAREA, SCORE
|
||
*
|
||
*PLAYER SUBROUTINE EQUATES
|
||
*
|
||
.GLOBAL CALLPLAY
|
||
*
|
||
*BACKGROUND SYSTEM STUFF
|
||
*
|
||
.GLOBAL BAKBITS, BAKLST
|
||
*
|
||
*GLOBAL DUMMY(NULL) ROUTINES
|
||
*
|
||
.GLOBAL DUMRETS, DUMCOLL, DUMCRETS, DUMBGND, DUMSCRIPT, DUMRETP
|
||
.GLOBAL DUMFGND, DUMDIE, DUMSRETS
|
||
|
||
.GLOBAL DUMPPRINT
|
||
|
||
*
|
||
* TROG EQUATES
|
||
*
|
||
NWAVES .EQU 50 ;# OF DIFFERENT WAVES (DIFF TABLE SIZE)
|
||
LAST_WAVE .EQU 49 ;GAME ENDS AFTER THIS WAVE
|
||
MAXPLAYERS .EQU 5 ;MAXIMUM # OF PLAYERS ALLOWED(INCLUDES DRONE)
|
||
*
|
||
*SCREEN TOP OFFSET
|
||
SKYTOPOF .EQU 40
|
||
SCORDPYS .EQU 0FFFFFD7CH ;DPYSTRT VALUE FOR HIDING THE SCORE
|
||
|
||
*
|
||
*GLOBAL MOVEMENT EQUATES
|
||
*
|
||
UP .EQU 0
|
||
DOWN .EQU 1
|
||
LEFT .EQU 2
|
||
RIGHT .EQU 3
|
||
UP_LEFT .EQU 4
|
||
UP_RIGHT .EQU 5
|
||
DOWN_LEFT .EQU 6
|
||
DOWN_RIGHT .EQU 7
|
||
|
||
************************************************************
|
||
* *
|
||
* PLAYER DATA STRUCTURE *
|
||
* *
|
||
************************************************************
|
||
POBJ EQU 0000H ;PLAYER OBJECT BLOCK
|
||
PSCRAD EQU 0020H ;PLAYER SCORE SCREEN ADDRESS
|
||
PSCORE EQU 0040H ;PLAYER SCORE
|
||
PLIVES EQU 0060H ;PLAYER # OF LIVES
|
||
PPID EQU 0070H ;PLAYER BASE PROCESS I.D.
|
||
PEGGINIT EQU 0080H ;UHW IF <> 0, WE HAVE LAYED THE INTIAL EGGS
|
||
PMOVE EQU 0090H ;PTR TO CURRENT MOVE TABLE ENTRY
|
||
PBARS EQU 00B0H ;CURRENT NUMBER OF ACTIVE BARS
|
||
PINITAB EQU 00C0H ;PLAYER INITIALIZATION TABLE
|
||
PSUPP EQU 00E0H ;PTR TO PLAYER SUPPLEMENTAL LIST
|
||
PJOYSTCK EQU 0100H ;CURRENT JOYSTICK DIRECTION BEING PROCESSED
|
||
PDINO EQU 0110H ;PTR TO DINOSAUR START TABLE
|
||
PLICON EQU 0130H ;PTR TO PLAYER LIFE ICON
|
||
PNEXTREP EQU 0150H ;NEXT REPLAY LEVEL, 32 BITS BCD
|
||
PEGGS EQU 0170H ;# OF EGGS CURRENTLY HELD BY THIS PLAYER
|
||
PEGGACTIVE EQU 0180H ;UHW # OF ACTIVE EGGS
|
||
PEGGLAY EQU 0190H ;UHW IF <> 0, CURRENTLY LAYING SOME EGGS
|
||
PENTER EQU 01A0H ;IF = 1, PLAYER WILL ENTER GAME @ NEXT INPLAY
|
||
PWINS EQU 01B0H ;NUMBER OF WINS THIS GAME
|
||
PPALID EQU 01C0H ;PLAYER PALETTE I.D.
|
||
PWAVEST EQU 01E0H ;NUMBER OF PLAYER STARTS THIS WAVE
|
||
PLASTEGG EQU 01F0H ;ELAPSED TIME SINCE LAST EGG PICKUP
|
||
PLASTDTH EQU 0210H ;ELAPSED TIME SINCE LAST PLAYER DEATH
|
||
PLASTWIN EQU 0230H ;LAST WAVE WON BY PLAYER
|
||
PEXITPNT EQU 0240H ;PTR TO PLAYER FIRST EXIT POINT
|
||
PDEAD EQU 0260H ;1 IF DEAD MESSAGE UP
|
||
PDINOCNT EQU 0270H ;NUMBER OF ACTIVE DINOS FOR THIS PLAYER
|
||
PDTHPOS EQU 0280H ;[Y,X] RETURN POINT LAST DINO DEATH
|
||
PTRUEJOY EQU 02A0H ;TRUE JOYSTICK SWITCH STATUS FOR THIS PLAYER
|
||
PBOZO EQU 02B0H ;BOZO LEVEL, > 0 = SOME SORT OF BOZO
|
||
PWAVEDEATHS EQU 02C0H ;NUMBER OF DEATHS THIS WAVE
|
||
PEGGSTHISLIFE EQU 02D0H ;NUMBER OF EGGS COLLECTED THIS LIFE
|
||
PTROGKILLS EQU 02E0H ;TIMES THIS PLAYER HAS WASTED TROG
|
||
PCONSECUTIVE EQU 02F0H ;CONSECUTIVE WAVES PLAYED BY THIS PLAYER
|
||
PWAVES EQU 0300H ;NUMBER OF WAVES PLAYED THIS GAME
|
||
PEXTRAS EQU 0310H ;NUMBER OF EXTRA LEFT TO EARN THIS GAME
|
||
PTOTTIME EQU 0320H ;TOTAL TIME OF THIS CREDIT
|
||
PITIME EQU 0330H ;TIME LEFT FOR ENTERING INITIALS
|
||
PWAVETIME EQU 0340H ;TIME THIS PLAYER HAS SPENT ON THIS WAVE
|
||
PDTHFLAG EQU 0360H ; 1 IF THE GUY IS DEAD
|
||
PLIFETIME EQU 0370H ; TIME THIS GUY HAS BEEN ALIVE
|
||
PSPEEDTIME EQU 0380H ;TIME 'TIL NEXT SPEED UP
|
||
PEXTRAEARN EQU 0390H ;EXTRA MEN EARNED THIS WAVE
|
||
PDRONEFLG EQU 03A0H ;IF <> 0 THEN THIS IS A DRONE PLAYER
|
||
PSTARTESC EQU 03B0H ;FLAG TO SHOW START BUTTON PUSHED FOR ESCAPE
|
||
PEGGOUT EQU 03C0H ;# OF EGGS LAID FOR THIS PLAYER, THIS WAVE
|
||
PNOMOVE EQU 03D0H ;IF <> 0, THEN DON'T ALLOW HAND MOVEMENT
|
||
PLAYMAN EQU 03E0H ;NUMBER OF EGGS TO LAY THIS PASS THROUGH LAY_MAN
|
||
PJOYESC EQU 03F0H ;FLAG TO SHOW JOYSTICK MOVEMENT
|
||
PSWITCHESC EQU 0400H ;FLAG TO SHOW BUTTON ACTION
|
||
PDINOSTOP EQU 0410H ;IF <> 0, THEN STOP THIS GUYS DINO
|
||
PINSTRUCT EQU 0420H ;IF <> 0, THEN DINO IS IN INSTRUCTIONAL MODE
|
||
PBONEHIT EQU 0430H ;IF <> 0, DINO HIT BONE DURING INSTRUCTIONS
|
||
PSTARTS EQU 0440H ;# OF STARTS THIS GAME
|
||
PDSIZE EQU 0450H ;SIZE OF PLAYER DATA BLOCK
|
||
|
||
PIZPOS EQU 0FFFH ;PLAYER INITIAL Z POSITION
|
||
PXPLAYER .EQU 4 ;MOVEPLYR MARKER FOR INDESTRUCTIBLE BONES
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POST AND MOVE MAP DEFINITIONS *
|
||
* *
|
||
* NOTE: ALWAYS KEEP THE POSITION ENTRY OF THESE FOLLOWING TABLES AT *
|
||
* THE SAME OFFSET: *
|
||
* POSTMAP *
|
||
* MOVEMAP *
|
||
* CMOVEMAP *
|
||
* AMOVEMAP *
|
||
* EMOVEMAP *
|
||
* *
|
||
**************************************************************************
|
||
|
||
*
|
||
*POST MAP ENTRY
|
||
*
|
||
POSTPOS EQU 0H
|
||
POSTREL EQU 20H
|
||
POSTSIZE EQU 40H
|
||
|
||
|
||
*
|
||
*MOVE MAP ENTRY
|
||
*
|
||
MOVEPOS EQU 0 ;POSITION OF THIS MOVE POINT (32)
|
||
MOVEREL EQU 20H ;START OF MOVE RELATIONSHIPS
|
||
MOVEUP EQU 20H ;NEXT UP (16)
|
||
MOVEDN EQU 30H ;NEXT DOWN (16)
|
||
MOVELF EQU 40H ;NEXT LEFT (16)
|
||
MOVERT EQU 50H ;NEXT RIGHT (16)
|
||
MOVEUL EQU 60H ;NEXT UP/LEFT (16)
|
||
MOVEUR EQU 70H ;NEXT UP/RIGHT (16)
|
||
MOVEDL EQU 80H ;NEXT DOWN/LEFT (16)
|
||
MOVEDR EQU 90H ;NEXT DOWN/RIGHT (16)
|
||
MOVETYPE EQU 0A0H ;TYPE(0=H,1=V,2=THRU,FF=NOT VALID) (8)
|
||
MOVEPLYR EQU 0A8H ;WALL OF PLAYER # (0-3,FF=UNOCCUPIED) (8)
|
||
MOVEDSRCH EQU 0B0H ;DINO SEARCH FLAG, 0=NOT CHECKED (8)
|
||
MOVERES1 EQU 0B8H ;RESERVED (8)
|
||
MOVECPTR EQU 0C0H ;PTR TO CORRESPONDING CENTER MOVE (32)
|
||
MOVEAPTR EQU 0E0H ;PTR TO CORRESPONDING AUXILARY MOVE (32)
|
||
MOVEEPTR EQU 100H ;PTR TO CORRESPONDING EXIT MOVE (32)
|
||
MOVESIZE EQU 120H
|
||
|
||
NMOVES EQU 512 ;THIS MANY MOVES ALLOWED
|
||
HORBAR EQU 0 ;HORIZONTAL BAR INDICATOR
|
||
VERTBAR EQU 1 ;VERTICAL BAR INDICATOR
|
||
THRU EQU 2 ;THRU MOVE INDICATOR
|
||
|
||
*
|
||
*CENTER POINT LIST ENTRY
|
||
*
|
||
CMOVEPOS EQU 0H ;POSITION OF THIS CENTER MOVE POINT (32)
|
||
CMOVEEGG EQU 20H ;PLAYER EGG # ON THIS POINT (FF = UNOCC) (8)
|
||
CMOVETROG EQU 28H ;OBSTRUCTION TROG WILL PLACE (FF = NONE) (8)
|
||
CMOVEMPTR EQU 30H ;PTR TO CORRESPONDING MOVE (32)
|
||
CMOVESIZE EQU 50H
|
||
|
||
NCMOVES EQU NMOVES/9 ;THIS MANY CENTER POINT ENTRIES ALLOWED
|
||
|
||
*
|
||
*AUXILARY POINT LIST ENTRY (SAME AS CENTER POINT LIST ENTRY)
|
||
*
|
||
AMOVESIZE EQU CMOVESIZE
|
||
NAMOVES EQU NMOVES/4 ;THIS MANY AUXILARY POINT ENTRIES ALLOWED
|
||
|
||
*
|
||
*EXIT POINT LIST ENTRY
|
||
*
|
||
EMOVEPOS EQU 0H ;POSITION OF THIS EXIT POINT (32)
|
||
EMOVEPLYR EQU 20H ;PLAYER # EXIT POINT(FF = O.K. TO BUILD)(8)
|
||
* (FE = BUILD NO HOUSES)
|
||
EMOVEDIR EQU 28H ;DIRECTION (0=UP,1=DOWN,2=LEFT,3=RIGHT) (8)
|
||
EMOVEOBJ EQU 30H ;PTR TO OBJECT RESTING ON THE EXIT PNT (32)
|
||
;0 = NO OBJECT
|
||
EMOVERET EQU 50H ;INDEX OF RETURN MOVE POINT (16)
|
||
EMOVEMPTR EQU 60H ;PTR TO RETURN MOVE POINT (32)
|
||
EMOVETYPE EQU 80H ;TYPE OF EXIT (0=CLIFF,1=PIT, ETC.) (16)
|
||
EMOVEPIT EQU 90H ;MIDPOINT OF PIT IF THIS IS A PIT (32)
|
||
EMOVESIZE EQU 0B0H
|
||
|
||
NEMOVES EQU NMOVES/9 ;THIS MANY EXIT POINT ENTRIES ALLOWED
|
||
|
||
**************************************************************************
|
||
* *
|
||
* END OF POST AND MOVE MAPS *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
*THESE CONSTANTS ARE TO BE REPLACED BY "CMOS" GAME ADJUSTMENTS
|
||
****ILIVES EQU 3 ;INITIAL # OF LIVES
|
||
IREPLAY EQU 20000H ;INITIAL REPLAY LEVEL OF THIS MANY K
|
||
ISAVES EQU 4 ;NUMBER OF TIMES A PLAYER MAY BE SAVED
|
||
|
||
*
|
||
*SCORE AREA EQUATES
|
||
P11SCRAD EQU [6,172] ; 1 PLAYER 1 SCORE ADDRESS
|
||
|
||
P21SCRAD EQU [6,112] ; 2 PLAYER 1 SCORE ADDRESS
|
||
P22SCRAD EQU [6,232] ; 2 PLAYER 2 SCORE ADDRESS
|
||
|
||
P31SCRAD EQU [6,52] ; 3 PLAYER 1 SCORE ADDRESS
|
||
P32SCRAD EQU [6,172] ; 3 PLAYER 2 SCORE ADDRESS
|
||
P33SCRAD EQU [6,292] ; 3 PLAYER 3 SCORE ADDRESS
|
||
|
||
P41SCRAD EQU [6,20] ; 4 PLAYER 1 SCORE ADDRESS
|
||
P42SCRAD EQU [6,112] ; 4 PLAYER 2 SCORE ADDRESS
|
||
P43SCRAD EQU [6,232] ; 4 PLAYER 3 SCORE ADDRESS
|
||
P44SCRAD EQU [6,324] ; 4 PLAYER 4 SCORE ADDRESS
|
||
PBOXOF EQU [-5,-20] ;SCORE AREA ENCLOSURE OFFSET FROM LEFT MSD
|
||
PBOXSIZ EQU [32,86] ;SIZE OF SCORE BOX
|
||
SCRSPC EQU [0,8] ;SPACING BETWEEN SCORE DIGITS
|
||
SCRCTR EQU [14,24] ; CENTERING LOC FOR PRESS START
|
||
SCRERA EQU [10,-16] ; SCORE BOX ERASE
|
||
SCRERAS EQU [12,82] ; SCORE BOX ERASE SIZE
|
||
SCICTR EQU [14,23] ; INITIAL ENTRY CENTER
|
||
SCIMESS EQU [-1,14] ; ENTER INITIALS MESS CENTERING LOCATION
|
||
SCITIME EQU [-1,55] ; OFFSET FOR TIME PLOT
|
||
SCILET1 EQU [9,0] ; LETTER 1
|
||
SCILET2 EQU [9,24] ; LETTER 2
|
||
SCILET3 EQU [9,48] ; LETTER 3
|
||
SCILETSIZE EQU [17,20] ; SIZE OF A LETTER
|
||
SCIERA EQU [7,-16] ; INITIALS BOX ERASE
|
||
SCIERAS EQU [17,78] ; INITIALS BOX ERASE SIZE
|
||
SCITERA EQU [-2,-14] ; SCORE BOX ERASE
|
||
SCITES EQU [10,76] ; SCORE BOX ERASE SIZE
|
||
SCSHIRT EQU [12,-14] ; SCORE SHIRT
|
||
NLIVES EQU 5 ;MAX NUMBER OF DISPLAYABLE LIVES
|
||
PLIFECOF EQU [10,15] ;OFFSET FOR LIFE ACCOUNT CLEAR
|
||
PLIFESIZ EQU [14,48] ;SIZE OF LIFE DISPLAY AREA
|
||
LIFESPC EQU [0,-9] ;SPACING BETWEEN LIVES
|
||
PLIFEOF EQU [10,51] ;OFFSET FOR PLAYER LIVES
|
||
PEGGCOF EQU [10,-15] ;OFFSET FOR EGG ACCOUNT CLEAR
|
||
PEGGSIZ EQU [14,25] ;SIZE OF EGG ACCOUNT AREA
|
||
PEGGOF EQU [11,-12] ;OFFSET FOR EGG ACCOUNT
|
||
CRD1BOX EQU [9,121] ; 1 PLAYER CREDIT BOX IS HERE
|
||
CRD2BOX EQU [0,181] ; 2 PLAYER CREDIT BOX IS HERE
|
||
CRD3BOX EQU [9,121] ; 3 PLAYER CREDIT BOX IS HERE
|
||
CRD4BOX EQU [0,181] ; 4 PLAYER CREDIT BOX IS HERE
|
||
ISLE1BOX EQU [9,241] ; 1 PLAYER ISLAND BOX IS HERE
|
||
ISLE2BOX EQU [18,181] ; 2 PLAYER ISLAND BOX IS HERE
|
||
ISLE3BOX EQU [9,241] ; 3 PLAYER ISLAND BOX IS HERE
|
||
ISLE4BOX EQU [18,181] ; 4 PLAYER ISLAND BOX IS HERE
|
||
CRDSIZE EQU [15,31] ;AND THIS IS THE SIZE
|
||
CRDTXT EQU [2,16] ; TEXT ADD ON
|
||
CRDX EQU 197 ;CREDIT MESSAGE X
|
||
CRDY EQU 2 ;CREDIT MESSAGE Y
|
||
CRDNUMXY EQU [10,197] ;CREDIT NUMBER
|
||
CRDNUM EQU [10,16] ; CREDIT NUMBER ADD ON
|
||
ISLESIZE EQU [15,31] ;AND THIS IS THE SIZE
|
||
ISLETXT EQU [1,16] ; TEXT ADD ON
|
||
ISLEX EQU 197 ;ISLAND MESSAGE X
|
||
ISLEY EQU 19 ;ISLAND MESSAGE Y
|
||
ISLENUMXY EQU [26,197] ;ISLAND NUMBER
|
||
ISLENUM EQU [8,16] ; ISLE NUMBER ADD ON
|
||
STOPW EQU [2,-15] ;STOP WATCH OFFSET
|
||
STOPWSIZ EQU [6,14] ;STOP WATCH AREA SIZE
|
||
|
||
*
|
||
*PLAYER JOYSTICK MOVEMENT CONSTANTS
|
||
WAY4DELAY EQU 10 ;TICKS TO DELAY UNTIL REPEAT (4-WAY)
|
||
WAY4REPEAT EQU 8 ;MOVEMENT REPEAT RATE (4-WAY)
|
||
WAY8DELAY EQU 12 ;TICKS TO DELAY UNTIL REPEAT (8-WAY)
|
||
WAY8REPEAT EQU 10 ;MOVEMENT REPEAT RATE (8-WAY)
|
||
|
||
*
|
||
*ENEMY SUB-TYPES
|
||
TARID EQU 10H
|
||
TARBAITID EQU 11H
|
||
FIREID EQU 20H
|
||
PITID EQU 30H
|
||
TUNNELID EQU 31H ;TIME TUNNEL
|
||
TROGPITID EQU 32H ;THE PIT FROM WHICH TROG EMERGES
|
||
*
|
||
*40H - 4FH ARE FOR POWERUPS ONLY!
|
||
*IF YOU CHANGE ANY OF THE 4xH I.D.s MAKE SURE THERE ARE NO CONFLICTS
|
||
* CREATED BETWEEN PROCESS I.D.s THAT ARE CREATED BY ORing THESE I.D.s (GNP)
|
||
FLOWERID EQU 40H
|
||
SHROOMID EQU 41H
|
||
TSHIRTID EQU 42H ; T-SHIRT
|
||
PINEAPPLEID EQU 43H ;PINEAPPLE
|
||
HSHOEID EQU 44H ;THE LUCKY HORSESHOE
|
||
ICEID EQU 46H ;THE ICE CUBE
|
||
CHILIID EQU 49H ;THE RED HOT CHILI PEPPER
|
||
|
||
CATID EQU 50H ;CATAPULT ID
|
||
HAUSID EQU 51H ;TRANSPORT HOUSE ID
|
||
ROCKID EQU 52H ;ROCK ID
|
||
TGENID EQU 53H ;TROG GENERATOR
|
||
|
||
*
|
||
*TROG I.D. BYTE:
|
||
* 0110 CCWW
|
||
* C = COLOR
|
||
* W = WEAPON
|
||
TROGID EQU 60H ;BASE TROG I.D.
|
||
*TROG WEAPON I.D.s
|
||
HAND EQU 0 ;TROG USING BARE HANDS
|
||
CLUB EQU 1 ;TROG USING THE CLUB
|
||
WHEEL EQU 2 ;TROG THROWING THE WHEEL
|
||
SPRING EQU 3 ;TROG WITH SPRINGS
|
||
*TROG COLOR I.D.s
|
||
NRM EQU 0 ;BROWN TROG (NORMAL)
|
||
GRN EQU 4 ;GREEN TROG
|
||
RED EQU 8 ;RED TROG
|
||
BLU EQU 0CH ;BLUE TROG
|
||
|
||
TROGCLUBID EQU TROGID|NRM|CLUB ;TROG HOLDING THE CLUB
|
||
TROGWHLID EQU TROGID|NRM|WHEEL ;TROG PUSHING THE WHEEL
|
||
TROGSPRGID EQU TROGID|NRM|SPRING ;TROG WITH THE SPRING SHOES
|
||
|
||
GTROGID EQU TROGID|GRN|NRM ;GREEN TROG
|
||
GTROGCLUBID EQU TROGID|GRN|CLUB ;GREEN TROG HOLDING THE CLUB
|
||
GTROGWHLID EQU TROGID|GRN|WHEEL ;GREEN TROG PUSHING THE WHEEL
|
||
GTROGSPRGID EQU TROGID|GRN|SPRING ;GREEN TROG WITH THE SPRING SHOES
|
||
|
||
RTROGID EQU TROGID|RED|NRM ;RED TROG
|
||
RTROGCLUBID EQU TROGID|RED|CLUB ;RED TROG HOLDING THE CLUB
|
||
RTROGWHLID EQU TROGID|RED|WHEEL ;RED TROG PUSHING THE WHEEL
|
||
RTROGSPRGID EQU TROGID|RED|SPRING ;RED TROG WITH THE SPRING SHOES
|
||
|
||
BTROGID EQU TROGID|BLU|NRM ;BLUE TROG
|
||
BTROGCLUBID EQU TROGID|BLU|CLUB ;BLUE TROG HOLDING THE CLUB
|
||
BTROGWHLID EQU TROGID|BLU|WHEEL ;BLUE TROG PUSHING THE WHEEL
|
||
BTROGSPRGID EQU TROGID|BLU|SPRING ;BLUE TROG WITH THE SPRING SHOES
|
||
|
||
WHEELID EQU 70H
|
||
TROGSUBID EQU 90H ;PROCESSES TROG HAS SPAWNED
|
||
|
||
DEADTROG EQU 0FFH ;A DEAD TROG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PROCESS I.D. EQUATES *
|
||
* 15 0 *
|
||
* PID FORMAT -- NEWI IPPP IIII IIII *
|
||
* N = NON-DESTRUCTIBLE *
|
||
* E = WAVE END WAIT *
|
||
* W = WAVE END WILL NOT KILL THESE *
|
||
* I = PROC. SPECIFIC I.D. *
|
||
* P = RESERVED FOR BASE PLAYER PROCESS I.D.'S *
|
||
* *
|
||
**************************************************************************
|
||
COLORPID EQU 20CCH ;COLOR CYCLE PROCESSES
|
||
PFADEPID EQU 20D0H ; FADER PROCESSES ( LOW BYTE = PAL )
|
||
BUPDPID EQU 20BDH ;BACKGROUND UPDATE PROCESS I.D.
|
||
INDPID EQU 0006H ;INDEPENDENT PROCESS
|
||
ATTPID EQU 0008H ; ATTRACT MODE PROCESS
|
||
INDPIDW EQU 2006H ;WAVE END WILL NOT KILL IND. PROCESS
|
||
INDPIDE EQU 4006H ;WAVE END WAIT INDEPENDENT PROCESS
|
||
P1PID EQU 0100H ;BASE PROCESS I.D. FOR PLAYER 1 PROCESSES
|
||
P2PID EQU 0200H ;BASE PROCESS I.D. FOR PLAYER 2 PROCESSES
|
||
P3PID EQU 0300H ;BASE PROCESS I.D. FOR PLAYER 3 PROCESSES
|
||
P4PID EQU 0400H ;BASE PROCESS I.D. FOR PLAYER 4 PROCESSES
|
||
PXPID EQU 0500H ;GLOBAL PLAYER
|
||
PPROCMASK EQU 0F8FFH ;MASK TO CLASSIFY ALL PLAYER PROCS
|
||
*THE FOLLOWING I.D'S ARE OR'D INTO THE ABOVE PLAYER BASE PROCESS I.D.S
|
||
*TO FORM THE COMPLETE PROCID.
|
||
PCPID EQU 0000H ;PLAYER CONTROL PROCESS
|
||
PSTRTPID EQU 8002H ;PLAYER START PROCESS IDENTIFIER
|
||
PUP EQU 3000H ;PLAYER UP PROCESS
|
||
PDOWN EQU 3040H ;PLAYER DOWN PROCESS
|
||
PLEFT EQU 3080H ;PLAYER LEFT PROCESS
|
||
PRIGHT EQU 30C0H ;PLAYER RIGHT PROCESS
|
||
PDRAWPID EQU 2003H ;PLAYER DRAW BUTTON PROCESS
|
||
PSPEEDPID EQU 0001H ;PLAYER SPEED UP/DOWN PROCESS
|
||
PTREXPID EQU 000AH ;PLAYER IS NOW TREX
|
||
PFLASHPID EQU 000BH ;PLAYER IS FLASHING
|
||
PFIREPID EQU 000CH ;PLAYER IS SPITTING FIRE
|
||
PINITIALPID EQU 2004H ;PLAYER INITIAL ENTRY
|
||
PHELPPID EQU 2007H ;PLAYER HELP PROCESS
|
||
*COMPLETE PROCESS I.D.S
|
||
PCONFPID EQU 1800H ;PLAYER CONFLICT FLASH PROCESS
|
||
COLLPID EQU 00C0H ;COLLISION PROCESS I.D. RES C0 - CF
|
||
COLLDPID EQU 00CDH ;DINOSAUR COLLISION DETECT PROCESS
|
||
COLLEPID EQU 00CEH ;ENEMY COLLISION DETECT PROCESS
|
||
CAVESIGNPID EQU 0910H ;CAVE SIGN COLOR CYCLERS
|
||
BONUSPID EQU 09A0H ;BONUS PROCESS
|
||
BORDERPID EQU 0B0DH ;BONE BORDER ANIMATION PROCESSES
|
||
FWORKSPID EQU 0B0EH ;FIREWORKS PROCESSES
|
||
GOODIEPID EQU 0B0FH ;TEMPORARY GOODIE ANIMATIONS
|
||
|
||
HOUSEPID EQU 0D20H ;HOUSE BUILD BASE PROCESS I.D. RESERVE 0D20H - 0D27H
|
||
|
||
MASTERID EQU 0D37H ;THE MASTER DISPATCHER
|
||
EBAITPID EQU 0D39H ;ENFORCER BAITER PROCESS
|
||
POWERUPPID EQU 0D3AH ;POWER-UP DISPATCHER
|
||
BUYINPID EQU 0D3BH ;END O' GAME BUY-IN WAIT PID
|
||
|
||
*NOTE: THE 0D4xH PROCIDs ARE CURRENTLY RESERVED FOR POWERUPS (GNP 6/8/90)
|
||
FLOWERPID EQU 0D00H|FLOWERID ;SPEED FLOWER PROCID
|
||
SHROOMPID EQU 0D00H|SHROOMID ;SLOW SHROOMER PROCID
|
||
HSHOEPID EQU 0D00H|HSHOEID ;THE LUCKY HORSESHOE PROCESS(ES)
|
||
PINEAPPLEPID EQU 0D00H|PINEAPPLEID ;PINEAPPLE PROCESS(ES)
|
||
ICEPID EQU 0D00H|ICEID ;THE ICE CUBE PROCESS(ES)
|
||
CHILIPID EQU 0D00H|CHILIID ;THE RED HOT CHILI PEPPER PROC
|
||
|
||
DINOPID EQU 0D80H ;DINOSAUR BASE PROCESS I.D.
|
||
DINO_PUNCH_PID EQU 0D90H ;DINOSAUR PUNCH PROCESS I.D.
|
||
DINO_OOF_PID EQU 0DA0H ;DINOSAUR OOF PROCESS I.D.
|
||
|
||
SKYPID EQU 1BF0H ;SKY COLOR FADE PROCESS I.D.
|
||
FADEPID EQU 1FF0H ;MUSIC FADE PROCESS
|
||
|
||
*COIN SWITCH PIDs
|
||
LC_PID EQU 0C000H ;LEFT COIN
|
||
CC_PID EQU 0C002H ;CENTER COIN
|
||
RC_PID EQU 0C004H ;RIGHT COIN
|
||
XC_PID EQU 0C006H ; FOURTH COIN SLOT
|
||
SLAM_PID EQU 0C008H ;SLAM TILT PROCESS
|
||
COINCTR_PID EQU 0C00AH ; COIN COUNTER PROCESS
|
||
PRINT_PID EQU 0800CH ; BACKGROUND PRINTER PROCESS
|
||
DIAG_PID EQU 0C100H ; DIAGNOSTICS PROCESS
|
||
|
||
PARADE_PID EQU 200CH ; PARADE PID
|
||
|
||
*ENEMY PROCESS I.D.s
|
||
TROGPID EQU 0E00H|TROGID ;TROG
|
||
TROGSUBPID EQU 0E00H|TROGSUBID ;PROCESS BY TROG, FOR TROG.
|
||
TARPID EQU 0E00H|TARID ;TAR PIT PROCID
|
||
TARBAITPID EQU 0E00H|TARBAITID ;BAITER TAR PIT
|
||
FIREPID EQU 0E00H|FIREID ;FIRE PROCID
|
||
PITPID EQU 0E00H|PITID ;SMALL PIT PROCID
|
||
TUNNELPID EQU 0E00H|TUNNELID ;THE TUNNEL
|
||
TSHIRTPID EQU 0E00H|TSHIRTID ;
|
||
WHEELPID EQU 0E00H|WHEELID ;THE WHEEL
|
||
CATPID EQU 0E00H|CATID ; CATAPULT PID
|
||
HAUSPID EQU 0E00H|HAUSID ; TRANSPORT HOUSE PID
|
||
ROCKPID EQU 0E00H|ROCKID ; ROCK PID
|
||
TGENPID EQU 0E00H|TGENID ;TROG GENERATOR PID
|
||
|
||
TROGSPEEDPID EQU 60H ;TROG SPEED UP/SLOW DOWN PROCESS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OBJECT I.D. EQUATES *
|
||
* 15 0 *
|
||
* OID FORMAT -- ZMPP TTTT TTTT IIII *
|
||
* Z = SET, LYING ON GROUND *
|
||
* M = MISCELLANEOUS *
|
||
* P = RESERVED FOR PLAYERS *
|
||
* T = OBJECT TYPE *
|
||
* I = IDENTIFIER(SUB-TYPE) *
|
||
* *
|
||
**************************************************************************
|
||
P1OID EQU >1000 ;PLAYER 1 OBJECT ID
|
||
P2OID EQU >2000 ;PLAYER 2 OBJECT ID
|
||
P3OID EQU >3000 ;PLAYER 3 OBJECT ID
|
||
P4OID EQU >4000 ;PLAYER 4 OBJECT ID
|
||
PXOID EQU >5000 ;INDESTRUCTIBLE PLAYER I.D.
|
||
HBAROID EQU >1 ;HBAR IDENTIFIER
|
||
VBAROID EQU >2 ;VBAR IDENTIFIER
|
||
|
||
JUNKOID EQU 0660H ;SHIT THAT CLUTTERS THE PLAYING FIELD
|
||
ATTOID EQU 0680H ; ATTRACT MODE OID
|
||
TIPOID EQU 06A0H ;TROG TIPS BOX AND TEXT OID
|
||
TIPHEADOID EQU 06A1H ;TROG TIPS HEADER OID
|
||
CAVEOID EQU 06C0H ; TROG CAVE OID
|
||
HBOXOID EQU 0900H ;PLAYER HELP BOX (RESERVE 900H-907H)
|
||
HTEXTOID EQU 0910H ;PLAYER HELP TEXT (RESERVE 910H-917H)
|
||
HARROWOID EQU 0920H ;PLAYER HELP ARROW (RESERVE 920H-927H)
|
||
HRESOID EQU 0930H ;PLAYER HELP RES (RESERVE 930H-937H)
|
||
HBOXMASK EQU 0FFCFH ;MASK TO CLASSIFY ALL HELP BOX PARTS
|
||
TEXTOID EQU 0990H ;"ON THE OBJECT LIST" TEXT OID
|
||
BMES1OID EQU 0993H ;BUYIN MESSAGE 1 OBJECT ID
|
||
BMES2OID EQU 0994H ;BUYIN MESSAGE 2 OBJECT ID
|
||
BTIMEOID EQU 0995H ;BUYIN TIMER OBJECT ID
|
||
TEXTWOID EQU 0980H ;TEXT WINDOW OID
|
||
BONUSOID EQU 09A0H ;BONUS SCORE OID
|
||
ICONOID EQU 09A1H ;OID OF BONUS ICONS
|
||
BTITLEOID EQU 09A2H ;OID OF BONUS TITLE
|
||
BORDEROID EQU 0B0DH ;BONE BORDER OBJECTS
|
||
GOODIEOID EQU 0B0FH ;JACK'S GOODIE OBJECTS
|
||
GAMEOVEROID EQU 0BAAH ; GAME OVER FLASHER
|
||
|
||
*DINOSAUR RELATED OBJECTS
|
||
DINOOID EQU 0D00H ;DINOSAURS - RESERVE 0D00H - 0D07H
|
||
EGGOID EQU 0D10H ;EGGS - RESERVE 0D10H - 0D17H
|
||
HOUSEOID EQU 0D20H ;HOUSES - RESERVE 0D20H - 0D27H
|
||
DEADDINOOID EQU 0D30H ;DEAD DINOSAURS - RESERVE 0D30H - 0D37H
|
||
DINOFIREOID EQU 0D40H ;FIREBALLS - RESERVE 0D40H - 0D47H
|
||
|
||
*
|
||
*DINOSAUR SUB-TYPES
|
||
* NOTE: IF YOU CHANGE THE ORDER, ALSO CHANGE ALIGNTAB IN TROGDINO.ASM
|
||
REXID .EQU 0 ;THIS IS REX
|
||
BLOOPID .EQU 1 ;THIS IS BLOOP
|
||
SPIKEID .EQU 2 ;THIS IS SPIKE
|
||
GWENID .EQU 3 ;THIS IS GWEN
|
||
*
|
||
*ENEMY OBJECT I.D.s
|
||
*
|
||
TROGOID EQU 0E00H|TROGID ;TROG OID
|
||
TROGCLUBOID EQU 0E00H|TROGCLUBID ;TROG W/CLUB OID
|
||
TROGWHLOID EQU 0E00H|TROGWHLID ;TROG W/WHEEL OID
|
||
TROGSPRGOID EQU 0E00H|TROGSPRGID ;TROG W/BOUNCING SPRING SHOE
|
||
TAROID EQU 0E00H|TARID ;TAR PIT OID
|
||
TARBAITOID EQU 0E00H|TARBAITID ;TAR BAITER OID
|
||
FIREOID EQU 0E00H|FIREID ;FIRE OID
|
||
PITOID EQU 0E00H|PITID ;PIT OID
|
||
TUNNELOID EQU 0E00H|TUNNELID ;THE TUNNEL OID
|
||
FLOWEROID EQU 0E00H|FLOWERID ;SPEED FLOWER OID
|
||
SHROOMOID EQU 0E00H|SHROOMID ;SLOW SHROOMER OID
|
||
TSHIRTOID EQU 0E00H|TSHIRTID ;
|
||
WHEELOID EQU 0E00H|WHEELID ;THE WHEEL OBJECT
|
||
TROGPITOID EQU 0E00H|TROGPITID ;THE TROG PIT OBJECT
|
||
PINEAPPLEOID EQU 0E00H|PINEAPPLEID ; PINEAPPLE
|
||
HSHOEOID EQU 0E00H|HSHOEID ;THE LUCKY HORSESHOE OBJECT
|
||
CATOID EQU 0E00H|CATID ; CATAPULT OBJECT
|
||
ICEOID EQU 0E00H|ICEID ;THE ICE CUBE OBJECT
|
||
HAUSOID EQU 0E00H|HAUSID ; TRANSPORT HOUSE OBJECT
|
||
ROCKOID EQU 0E00H|ROCKID ; ROCK OBJECT
|
||
TGENOID EQU 0E00H|TGENID ;TROG GENERATOR OID
|
||
CHILIOID EQU 0E00H|CHILIID ;THE RED HOT CHILI PEPPER OBJ
|
||
|
||
DEADTROGOID EQU 0E00H|DEADTROG ;DEAD TROG
|
||
DEADWHLOID EQU 0E00H|WHEELID|0DH ;"DEAD" WHEEL
|
||
|
||
*
|
||
*DINOSAUR Z POSITIONS
|
||
DINOZPOS .EQU 20H
|
||
|
||
*
|
||
*ISLAND DEATH TYPES
|
||
TYPE_CLIFF .EQU 0 ;IF OUT OF THIS BOX, THEN FALL IN WATER
|
||
TYPE_PIT .EQU 1 ;IF IN THIS BOX, THEN FALL IN PIT
|
||
TYPE_LAKE .EQU 2 ;IF IN THIS BOX, THEN FALL IN WATER
|
||
TYPE_VOLCANO .EQU 3 ;IF IN THIS BOX, THEN DO VOLCANO COLLISION
|
||
|
||
*
|
||
*ISLAND BACKGROUND TERRAIN TYPES
|
||
BTYPE_GREEN .EQU 0 ;NORMAL GREEN ISLAND
|
||
BTYPE_LAVA .EQU 1 ;LAVA BACKGROUND
|
||
BTYPE_ENT .EQU 2 ;FIRST TROG WAVE BACKGROUND
|
||
BTYPE_CLUB .EQU 3 ;TROG WITH CLUB BACKGROUND
|
||
BTYPE_WHEEL .EQU 4 ;TROG WITH WHEEL BACKGROUND
|
||
BTYPE_SPRING .EQU 5 ;TROG WITH SPRINGS BACKGROUND
|
||
BTYPE_CRAY .EQU 6 ;GREEN TROG ISLAND WITH LAVA SURROUNDING IT
|
||
BTYPE_DESERT .EQU 7 ; DESERT ISLE
|
||
|
||
*
|
||
*BONUS WAVE TYPES
|
||
BONUSW_1 .EQU 1 ;TROG FEAST
|
||
BONUSW_2 .EQU 2 ;DIAMOND MINE
|
||
BONUSW_3 .EQU 3 ;BONFIRE
|
||
|
||
NBONUS_WAVES .EQU 3 ;NUMBER OF BONUS WAVES
|
||
|
||
*
|
||
*TROG GLOBAL EQUATES
|
||
*
|
||
MINPURSUIT .EQU 2 ;MIN. # OF MOVES ALLOWED TO INITIATE PURSUIT
|
||
MAXPURSUIT .EQU 8 ;MAX. # OF MOVES ALLOWED TO INTIIATE PURSUIT
|
||
*
|
||
*COMMUNICATIONS
|
||
COMM_PIT_OPEN .EQU PITID ;PIT IS OPEN
|
||
COMM_PIT_CLOSE .EQU PITID+1 ;CLOSE PIT PLEASE
|
||
COMM_PIT_FAIL .EQU PITID+2 ;FAILURE ON PIT CREATE
|
||
|
||
*
|
||
*FRANIM FLAG MASKS
|
||
SPAWNP EQU 8000H
|
||
FLIPBITS EQU 4000H
|
||
NEWPALET EQU 2000H
|
||
DELTAXZ EQU 1000H
|
||
DELTAY EQU 800H
|
||
MAKESOUND EQU 200H
|
||
SCRIPT EQU 100H
|
||
|
||
*
|
||
*PALETTE ALLOCATOR EQUATES
|
||
*
|
||
*PALETTE ALLOCATION RAM
|
||
*FOR EACH COLOR PALETTE ID 32 BITS, PALETTE COUNT 16 BITS
|
||
*IF PALCNT>0 PALETTE IS ALLOCATED, IF PALCNT=0 PALETTE IS FREE
|
||
*
|
||
NUMPAL .SET 16 ;NUMBER OF DYNAMICALLY ALLOCATED PALETTES
|
||
NMFPAL .SET 11 ;NUMBER OF FOREGROUND PALETTES
|
||
NMBPAL .SET 5 ;NUMBER OF BACKGROUND PALETTES
|
||
*
|
||
*PALETTE ENTRY DATA STRUCTURE
|
||
PALID .SET 0 ;PALETTE I.D. (32)
|
||
PALCNT .SET 32 ;PALETTE ALLOCATION COUNT (16)
|
||
PALRSIZ .SET 48 ;SIZE OF PALETTE ALLOCATION RAM
|
||
*
|
||
*PALETTE TRANSFER RAM DATA STRUCTURE
|
||
PLDCNT .SET 0 ;COLOR COUNT (16)
|
||
PALSRC .SET >10 ;SOURCE ADDRESS OF PALETTE COLOR DATA (32)
|
||
PALDEST .SET >30 ;DESTINATION PALETTE|START COLOR (16)
|
||
PTRSIZ .SET >40 ;SIZE OF EACH CELL
|
||
NUMPTR .SET 16 ;NUMBER OF TRANSFERS ALLOWED
|
||
*
|
||
*GAME STATE CONSTANTS
|
||
INGAME .EQU 10H
|
||
ININTRO .EQU 18H
|
||
INPLAY .EQU 20H
|
||
INAMODE .EQU 30H
|
||
INDIAG .EQU 40H
|
||
INGAMEOV .EQU 50H
|
||
INEPILOG .EQU 60H
|
||
*
|
||
*DISPLAY FLAGS FOR FORE/BACKGROUND OBJECTS
|
||
M_SPAWNP EQU 80H ;SPAWN A PROCESS WITH THIS OBJECT IN A8
|
||
B_SPAWNP EQU 7
|
||
|
||
*
|
||
*BUY-IN WINDOW CONSTANTS
|
||
*
|
||
BUYTIME .EQU 10
|
||
BUYSLP .EQU 4
|
||
BUYTICK .EQU 52/BUYSLP
|
||
|
||
*
|
||
*ALLPLYR - MACRO TO CALL A ROUTINE ON ALL PLAYERS.
|
||
*P1=ROUTINE-->A7
|
||
*
|
||
ALLPLYR $MACRO P1
|
||
MOVI :P1:,A7
|
||
CALLA CALLPLAY
|
||
$END
|
||
|
||
|
||
|