1319 lines
27 KiB
NASM
1319 lines
27 KiB
NASM
.MLIB "HHMACS.LIB"
|
|
.FILE "HHPUP.ASM"
|
|
.WIDTH 132
|
|
.OPTION B,D,L,T
|
|
.MNOLIST
|
|
|
|
*
|
|
*GET THE SYSTEM STUFF
|
|
*
|
|
.INCLUDE "HH.INC"
|
|
.INCLUDE "HHSTRING.H"
|
|
.INCLUDE "IMGTBL.GLO"
|
|
.include "HHPUP.TBL"
|
|
.include "hhpup.e"
|
|
.include "hhd.g"
|
|
.include "hhplayer.g"
|
|
.include "hhpall.g"
|
|
.include "hhc.g"
|
|
.include "HHPROC.G"
|
|
.include "hhtext.g"
|
|
.include "hhsnd.g"
|
|
.include "hhgame.g"
|
|
.include "HHRAM.G"
|
|
.include "hhcmos.g"
|
|
|
|
; end of include files
|
|
|
|
.BSS SUPER_GOALIE,16 ;GOALIE IS A BAD MOTHER
|
|
.BSS TOURN_MODE,16 ;TOURNAMENT MODE
|
|
.BSS BIG_PUCK,16 ;BIG MOTHERFUCKER
|
|
.BSS BABY_SIZE,16 ;GOO-GOO PLAYERS
|
|
.BSS UNLIM_TURBO,16 ;UNLIMITED TURBO
|
|
.BSS UNLIM_CHECK,16 ;UNLIMITED CHECK
|
|
.BSS COMP_ASS_OFF,16 ;COMPUTER ASSISTANCE OFF
|
|
|
|
.TEXT
|
|
.EVEN
|
|
|
|
;FIX LOD FILE AND REMOVE THESE!
|
|
.REF TH_MESS,S_MESS,HH_MESS,G_MESS,BH_MESS,BP_MESS,TM_MESS
|
|
|
|
PL1256_LIST_TABLE
|
|
.long PLAYER_1_BLOCK
|
|
.long PLAYER_2_BLOCK
|
|
.long PLAYER_5_BLOCK
|
|
.long PLAYER_6_BLOCK
|
|
|
|
CIRCLE_CLOCKWISE
|
|
.WORD M_SW_U
|
|
.WORD M_SW_U|M_SW_R
|
|
.WORD M_SW_R
|
|
.WORD M_SW_D|M_SW_R
|
|
.WORD M_SW_D
|
|
.WORD M_SW_D|M_SW_L
|
|
.WORD M_SW_L
|
|
.WORD M_SW_U|M_SW_L
|
|
.WORD M_SW_U
|
|
|
|
CIRCLE_COUNTER_CLOCKWISE
|
|
.WORD M_SW_U
|
|
.WORD M_SW_U|M_SW_L
|
|
.WORD M_SW_L
|
|
.WORD M_SW_D|M_SW_L
|
|
.WORD M_SW_D
|
|
.WORD M_SW_D|M_SW_R
|
|
.WORD M_SW_R
|
|
.WORD M_SW_U|M_SW_R
|
|
.WORD M_SW_U
|
|
|
|
**************************************************************************
|
|
* *
|
|
* POWERUPS ON TONIGHT'S GAME SCREEN VALID FROM HELMETS TILTING *
|
|
* TIL SCREEN GOES WHITE *
|
|
* *
|
|
**************************************************************************
|
|
|
|
BIGHEAD_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_P|M_SW_T
|
|
.WORD -1
|
|
.LONG SET_BIGHEAD
|
|
|
|
HUGEHEAD_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_S|M_SW_P
|
|
.WORD M_SW_U
|
|
.WORD M_SW_U|M_SW_S|M_SW_P
|
|
.WORD M_SW_U
|
|
.WORD M_SW_U|M_SW_S|M_SW_P
|
|
.WORD M_SW_U
|
|
.WORD -1
|
|
.LONG SET_HUGEHEAD
|
|
|
|
TINYHEAD_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_S|M_SW_P|M_SW_T
|
|
.WORD M_SW_U|M_SW_T
|
|
.WORD M_SW_U|M_SW_S|M_SW_P|M_SW_T
|
|
.WORD M_SW_U|M_SW_T
|
|
.WORD M_SW_U|M_SW_S|M_SW_P|M_SW_T
|
|
.WORD M_SW_U|M_SW_T
|
|
.WORD -1
|
|
.LONG SET_TINYHEAD
|
|
|
|
NORMHEAD_SEQ_TABLE
|
|
.WORD M_SW_D|M_SW_S
|
|
.WORD -1
|
|
.LONG SET_NORMHEAD
|
|
|
|
GBIGHEAD_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_P
|
|
.WORD M_SW_U|M_SW_R|M_SW_P
|
|
.WORD M_SW_R|M_SW_P
|
|
.WORD M_SW_D|M_SW_R|M_SW_P
|
|
.WORD M_SW_D|M_SW_P
|
|
.WORD M_SW_D|M_SW_L|M_SW_P
|
|
.WORD M_SW_L|M_SW_P
|
|
.WORD M_SW_U|M_SW_L|M_SW_P
|
|
.WORD M_SW_U|M_SW_P
|
|
.WORD -1
|
|
.LONG SET_GBIGHEAD
|
|
|
|
GHUGEHEAD_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_S
|
|
.WORD M_SW_U|M_SW_R|M_SW_S
|
|
.WORD M_SW_R|M_SW_S
|
|
.WORD M_SW_D|M_SW_R|M_SW_S
|
|
.WORD M_SW_D|M_SW_S
|
|
.WORD M_SW_D|M_SW_L|M_SW_S
|
|
.WORD M_SW_L|M_SW_S
|
|
.WORD M_SW_U|M_SW_L|M_SW_S
|
|
.WORD M_SW_U|M_SW_S
|
|
.WORD M_SW_U|M_SW_R|M_SW_S
|
|
.WORD M_SW_R|M_SW_S
|
|
.WORD M_SW_D|M_SW_R|M_SW_S
|
|
.WORD M_SW_D|M_SW_S
|
|
.WORD M_SW_D|M_SW_L|M_SW_S
|
|
.WORD M_SW_L|M_SW_S
|
|
.WORD M_SW_U|M_SW_L|M_SW_S
|
|
.WORD M_SW_U|M_SW_S
|
|
.WORD -1
|
|
.LONG SET_GHUGEHEAD
|
|
|
|
GTINYHEAD_SEQ_TABLE
|
|
.WORD M_SW_R
|
|
.WORD 0
|
|
.WORD M_SW_D
|
|
.WORD 0
|
|
.WORD M_SW_R
|
|
.WORD 0
|
|
.WORD M_SW_S
|
|
.WORD -1
|
|
.LONG SET_GTINYHEAD
|
|
|
|
GNORMHEAD_SEQ_TABLE
|
|
.WORD M_SW_L
|
|
.WORD 0
|
|
.WORD M_SW_L
|
|
.WORD 0
|
|
.WORD M_SW_L
|
|
.WORD 0
|
|
.WORD M_SW_T
|
|
.WORD -1
|
|
.LONG SET_GNORMHEAD
|
|
|
|
BIGPUCK_SEQ_TABLE
|
|
.WORD M_SW_U
|
|
.WORD 0
|
|
.WORD M_SW_U
|
|
.WORD 0
|
|
.WORD M_SW_D
|
|
.WORD 0
|
|
.WORD M_SW_D
|
|
.WORD 0
|
|
.WORD M_SW_T
|
|
.WORD -1
|
|
.LONG SET_BIGPUCK
|
|
|
|
BABYSIZE_SEQ_TABLE
|
|
.WORD M_SW_P
|
|
.WORD 0
|
|
.WORD M_SW_P
|
|
.WORD 0
|
|
.WORD M_SW_T
|
|
.WORD 0
|
|
.WORD M_SW_S
|
|
.WORD 0
|
|
.WORD M_SW_P
|
|
.WORD -1
|
|
.LONG SET_BABYSIZE
|
|
|
|
FORCE_TINYHEAD_SEQ_TABLE
|
|
.WORD M_SW_L|M_SW_R
|
|
.WORD -1
|
|
.LONG SET_FORCE_TINYHEAD
|
|
|
|
**************************************************************************
|
|
* *
|
|
* POWERUPS ON GAME START VALID FROM GAME CREATION TIL POWER-UP REPORT *
|
|
* *
|
|
**************************************************************************
|
|
|
|
SUPERGOALIE_SEQ_TABLE
|
|
.WORD M_SW_L|M_SW_T
|
|
.WORD M_SW_T
|
|
.WORD M_SW_L|M_SW_T
|
|
.WORD M_SW_T
|
|
.WORD M_SW_R|M_SW_T
|
|
.WORD M_SW_T
|
|
.WORD M_SW_R|M_SW_T
|
|
.WORD -1
|
|
.LONG SET_SUPERGOALIE
|
|
|
|
TOURNMODE_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_S
|
|
.WORD M_SW_R|M_SW_S
|
|
.WORD M_SW_D|M_SW_S
|
|
.WORD M_SW_L|M_SW_S
|
|
.WORD M_SW_U|M_SW_S
|
|
.WORD -1
|
|
.LONG SET_TOURNMODE
|
|
|
|
COMP_ASS_OFF_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_T
|
|
.WORD -1
|
|
.LONG SET_COMP_ASS_OFF
|
|
|
|
UNLIM_TURBO_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_S|M_SW_P
|
|
.WORD M_SW_R|M_SW_S|M_SW_P
|
|
.WORD M_SW_D|M_SW_S|M_SW_P
|
|
.WORD M_SW_L|M_SW_S|M_SW_P
|
|
.WORD M_SW_U|M_SW_S|M_SW_P
|
|
.WORD M_SW_R|M_SW_S|M_SW_P
|
|
.WORD M_SW_D|M_SW_S|M_SW_P
|
|
.WORD M_SW_L|M_SW_S|M_SW_P
|
|
.WORD M_SW_U|M_SW_S|M_SW_P
|
|
.WORD -1
|
|
.LONG SET_UNLIM_TURBO
|
|
|
|
UNLIM_CHECK_SEQ_TABLE
|
|
.WORD M_SW_U|M_SW_P
|
|
.WORD M_SW_P
|
|
.WORD M_SW_U|M_SW_P
|
|
.WORD M_SW_P
|
|
.WORD M_SW_D|M_SW_P
|
|
.WORD M_SW_P
|
|
.WORD M_SW_D|M_SW_P
|
|
.WORD -1
|
|
.LONG SET_UNLIM_CHECK
|
|
|
|
INC_SPEED_TABLE
|
|
.WORD M_SW_U
|
|
.WORD -1
|
|
.LONG SET_INC_SPEED
|
|
|
|
INC_SHOOT_TABLE
|
|
.WORD M_SW_S
|
|
.WORD -1
|
|
.LONG SET_INC_SHOOT
|
|
|
|
INC_PASS_TABLE
|
|
.WORD M_SW_P
|
|
.WORD -1
|
|
.LONG SET_INC_PASS
|
|
|
|
INC_CHECK_TABLE
|
|
.WORD M_SW_L
|
|
.WORD -1
|
|
.LONG SET_INC_CHECK
|
|
|
|
INC_PUCK_TABLE
|
|
.WORD M_SW_R
|
|
.WORD -1
|
|
.LONG SET_INC_PUCK
|
|
|
|
FAST_TURBO_RECOVERY_TABLE
|
|
.WORD M_SW_T
|
|
.WORD -1
|
|
.LONG SET_FAST_TURBO_RECOVERY
|
|
|
|
**************************************************************************
|
|
* *
|
|
* START_POWERUP_PROC *
|
|
* *
|
|
**************************************************************************
|
|
|
|
START_TG_POWERUP_PROC
|
|
CLR A14
|
|
MOVE A14,@BIG_PUCK,W
|
|
MOVE A14,@BABY_SIZE,W
|
|
MOVE A14,@UNLIM_TURBO,W
|
|
MOVE A14,@UNLIM_CHECK,W
|
|
MOVE A14,@SUPER_GOALIE,W
|
|
|
|
MOVK ADJTOURMODE,A0
|
|
CALLA GET_ADJ ;SET TOURNAMENT MODE
|
|
NEG A0
|
|
MOVE A0,@TOURN_MODE,W
|
|
; JRN STGPP_SNAPSHOTS ;BR=SKIP SEQUENCES
|
|
JRN STGPP_DONE ;BR=SKIP SEQUENCES
|
|
|
|
MOVK 3,A9
|
|
MOVI TG_SEQ_PUP_TABLE,A10
|
|
STGPP_LUPE
|
|
CREATE PID_POWERUP,POWERUP_SEQUENCE_PROC
|
|
DEC A9
|
|
JRNN STGPP_LUPE ;BR=NOT DONE
|
|
|
|
;STGPP_SNAPSHOTS
|
|
; MOVI TG_POWERUP_PROC_TABLE,A11
|
|
; CREATE PID_POWERUP,POWERUP_SNAPSHOT_PROC
|
|
|
|
STGPP_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
* *
|
|
* START_FACEOFF_POWERUP_PROC *
|
|
* *
|
|
**************************************************************************
|
|
|
|
START_FACEOFF_POWERUP_PROC
|
|
PUSH A1
|
|
MOVK 3,A9
|
|
MOVI FACEOFF_SEQ_PUP_TABLE,A10
|
|
SFPP_LUPE
|
|
CREATE PID_POWERUP,POWERUP_SEQUENCE_PROC
|
|
DEC A9
|
|
JRNN SFPP_LUPE ;BR=NOT DONE
|
|
PULLQ A1
|
|
|
|
RETS
|
|
|
|
|
|
**************************************************************************
|
|
* *
|
|
* POWERUP_SEQUENCE_PROC *
|
|
* *
|
|
* PASS: *
|
|
* A9 = PLAYER NUMBER - 1 *
|
|
* A10 = SEQUENCE TABLE ADDRESS *
|
|
* *
|
|
**************************************************************************
|
|
|
|
PLAYER_SWMASK EQU M_SW_U|M_SW_D|M_SW_L|M_SW_R|M_SW_S|M_SW_P|M_SW_T
|
|
|
|
PPUP_TABLE EQU PDATA ;UHL TABLE ADDRESS
|
|
|
|
PUP_SUBR_OFFSET EQU 010H ;SUBROUTINE OFFSET
|
|
|
|
POWERUP_SEQUENCE_PROC
|
|
|
|
MOVE @PLAYER_BITS,A14,W
|
|
BTST A9,A14
|
|
JRNZ PSP_START ;BR=PLAYER NOT ACTIVE
|
|
SLEEP 1
|
|
JRUC POWERUP_SEQUENCE_PROC
|
|
|
|
PSP_START
|
|
MOVE A10,*A13(PPUP_TABLE),L
|
|
|
|
MOVE A9,A10
|
|
SLL 3,A10
|
|
NEG A10
|
|
|
|
PSP_LUPE
|
|
MOVE @HELP_WINDOW_COUNT,A14,W
|
|
JRNZ PSP_NAP ;BR=HELP WINDOWS ON SCREEN
|
|
|
|
MOVE @SWITCH,A0,L
|
|
NOT A0
|
|
SRL A10,A0
|
|
ANDI PLAYER_SWMASK,A0
|
|
JRZ PSP_NAP ;BR=NO SWITCHES
|
|
|
|
MOVE *A13(PPUP_TABLE),A1,L
|
|
PSP_SEQ_LUPE
|
|
MOVE *A1+,A8,L
|
|
JRZ PSP_NAP ;BR=PSP_NAP
|
|
MOVE *A8+,A14,W
|
|
XOR A0,A14
|
|
JRZ PSP_CHECK_SEQ ;BR=SEQUENCE START
|
|
JRUC PSP_SEQ_LUPE
|
|
PSP_NAP
|
|
SLEEP 1
|
|
JRUC PSP_LUPE
|
|
|
|
PSP_CHECK_SEQ
|
|
CREATE PID_POWERUP,PSP_SEQ
|
|
JRUC PSP_NAP
|
|
|
|
; SLEEP 1
|
|
|
|
PSP_SEQ
|
|
MOVK 15,A11
|
|
PSP_CS_LUPE
|
|
MOVE @SWITCH,A0,L
|
|
NOT A0
|
|
SRL A10,A0
|
|
ANDI PLAYER_SWMASK,A0
|
|
; JRZ PSP_CS_NAP ;BR=NO SWITCHES
|
|
|
|
MOVE *A8,A14,W
|
|
JRN PSP_POWERUP ;BR=POWERUP MOTHERFUCKER!
|
|
XOR A0,A14
|
|
JRNZ PSP_CS_NAP ;BR=NOT THE NEXT ONE
|
|
ADDK 010H,A8
|
|
MOVE *A8,A14,W
|
|
JRN PSP_POWERUP ;BR=POWERUP MOTHERFUCKER!
|
|
MOVK 16,A11 ;RESET LUPE
|
|
PSP_CS_NAP
|
|
SLEEP 1
|
|
DSJ A11,PSP_CS_LUPE
|
|
|
|
DIE
|
|
|
|
; JRUC PSP_NAP
|
|
PSP_POWERUP
|
|
MOVE *A8(PUP_SUBR_OFFSET),A14,L
|
|
CALL A14
|
|
|
|
DIE
|
|
|
|
; JRUC PSP_NAP
|
|
|
|
**************************************************************************
|
|
* *
|
|
* POWERUP SEQUENCE ROUTINES CANNOT TRASH: *
|
|
* *
|
|
* A9 = PLAYER NUMBER - 1 *
|
|
* A10 = PLAYER SWITCH RIGHT SHIFT *
|
|
* *
|
|
**************************************************************************
|
|
|
|
TG_SEQ_PUP_TABLE
|
|
.LONG BIGHEAD_SEQ_TABLE,HUGEHEAD_SEQ_TABLE
|
|
.LONG TINYHEAD_SEQ_TABLE,NORMHEAD_SEQ_TABLE
|
|
|
|
.LONG GBIGHEAD_SEQ_TABLE,GHUGEHEAD_SEQ_TABLE
|
|
.LONG GTINYHEAD_SEQ_TABLE,GNORMHEAD_SEQ_TABLE
|
|
|
|
.LONG BIGPUCK_SEQ_TABLE
|
|
.LONG BABYSIZE_SEQ_TABLE
|
|
.LONG 0
|
|
|
|
.LONG FORCE_TINYHEAD_SEQ_TABLE
|
|
.LONG 0
|
|
|
|
FACEOFF_SEQ_PUP_TABLE
|
|
.LONG 0
|
|
.LONG SUPERGOALIE_SEQ_TABLE,TOURNMODE_SEQ_TABLE
|
|
.LONG COMP_ASS_OFF_SEQ_TABLE
|
|
.LONG UNLIM_TURBO_SEQ_TABLE,UNLIM_CHECK_SEQ_TABLE
|
|
.LONG INC_SPEED_TABLE,INC_SHOOT_TABLE,INC_PASS_TABLE
|
|
.LONG INC_CHECK_TABLE,INC_PUCK_TABLE,FAST_TURBO_RECOVERY_TABLE
|
|
.LONG 0
|
|
|
|
|
|
**************************************************************************
|
|
SET_SUPERGOALIE
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ S_SG_DONE ;BR=TOURNAMENT MODE POWERED-UP
|
|
|
|
MOVE @SUPER_GOALIE,A14,W
|
|
JRNZ S_SG_DONE ;BR=ALREADY SET
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@SUPER_GOALIE,W
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_SG_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_TOURNMODE
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ S_TM_DONE ;BR=ALREADY SET
|
|
|
|
CALLR CHECK_TOURNMODE_VALID
|
|
JRZ S_TM_DONE ;BR=NOPE
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@TOURN_MODE,W
|
|
|
|
CLR A14
|
|
MOVE A14,@BABY_SIZE,W
|
|
MOVE A14,@SUPER_GOALIE,W
|
|
MOVE A14,@UNLIM_TURBO,W
|
|
MOVE A14,@UNLIM_CHECK,W
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@COMP_ASS_OFF,W
|
|
|
|
;DISABLE INDIVIDUAL PLAYER POWER-UPS IN POF_PUP_FLAGS
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_TM_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_COMP_ASS_OFF
|
|
MOVE @COMP_ASS_OFF,A14,W
|
|
JRNZ S_CAO_DONE ;BR=ALREADY SET
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@COMP_ASS_OFF,W
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_CAO_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_UNLIM_TURBO
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ S_UT_DONE ;BR=TOURNAMENT MODE POWERED-UP
|
|
|
|
MOVE @UNLIM_TURBO,A14,W
|
|
JRNZ S_UT_DONE ;BR=ALREADY SET
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@UNLIM_TURBO,W
|
|
|
|
CLR A14
|
|
MOVE A14,@UNLIM_CHECK,W
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_UT_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_UNLIM_CHECK
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ S_UC_DONE ;BR=TOURNAMENT MODE POWERED-UP
|
|
|
|
MOVE @UNLIM_CHECK,A14,W
|
|
JRNZ S_UC_DONE ;BR=ALREADY SET
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@UNLIM_CHECK,W
|
|
|
|
CLR A14
|
|
MOVE A14,@UNLIM_TURBO,W
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_UC_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_FORCE_TINYHEAD
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ S_FT_DONE ;BR=TOURNAMENT MODE POWERED-UP
|
|
|
|
MOVE A9,A6
|
|
SLL 5,A6
|
|
ADDI PL1256_LIST_TABLE,A6
|
|
MOVE *A6,A6,L
|
|
MOVE *A6(POF_PUP_FLAGS),A0,W
|
|
BTST B_PUP_FORCETINY,A0
|
|
JRNZ S_FT_DONE ;BR=ALREADY FUCKED 'EM OVER
|
|
|
|
ORI M_PUP_FORCETINY,A0
|
|
MOVE A0,*A6(POF_PUP_FLAGS),W
|
|
|
|
MOVK 1,A0
|
|
CMPI 1,A9
|
|
JRGT S_FT_FUCKEM ;BR=FUCK OVER THE LEFT TEAM
|
|
MOVK 5,A0
|
|
S_FT_FUCKEM
|
|
CALLR S_FT_TINYHEAD
|
|
INC A0
|
|
CALLR S_FT_TINYHEAD
|
|
ADDK 2,A0
|
|
CALLR S_FT_TINYHEAD
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_FT_DONE
|
|
RETS
|
|
|
|
S_FT_TINYHEAD
|
|
GBLOCK A0,A1
|
|
MOVE *A1(POF_PUP_FLAGS),A14,W
|
|
ANDNI M_PUP_HEADS,A14
|
|
ORI M_PUP_TINYHEAD,A14
|
|
MOVE A14,*A1(POF_PUP_FLAGS),W
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_INC_SPEED
|
|
MOVI M_PUP_SPEED,A0
|
|
JRUC SET_INC
|
|
SET_INC_SHOOT
|
|
MOVI M_PUP_SHOOT,A0
|
|
JRUC SET_INC
|
|
SET_INC_PASS
|
|
MOVI M_PUP_PASS,A0
|
|
JRUC SET_INC
|
|
SET_INC_CHECK
|
|
MOVI M_PUP_CHECK,A0
|
|
JRUC SET_INC
|
|
SET_INC_PUCK
|
|
MOVI M_PUP_PUCK,A0
|
|
JRUC SET_INC
|
|
SET_FAST_TURBO_RECOVERY
|
|
MOVI M_PUP_TURBO,A0
|
|
SET_INC
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ S_I_DONE ;BR=TOURNAMENT MODE POWERED-UP
|
|
|
|
MOVE A9,A6
|
|
SLL 5,A6
|
|
ADDI PL1256_LIST_TABLE,A6
|
|
MOVE *A6,A6,L
|
|
MOVE *A6(POF_PUP_FLAGS),A1,W
|
|
BTST B_PUP_FORCETINY,A1
|
|
JRNZ S_I_DONE ;BR=NOT ALLOWED
|
|
MOVE A1,A14
|
|
AND A0,A14
|
|
JRNZ S_I_DONE ;BR=ALREADY SET
|
|
|
|
ANDNI M_PUP_ATTR,A1
|
|
OR A0,A1
|
|
MOVE A1,*A6(POF_PUP_FLAGS),W
|
|
|
|
CALLR POWERUP_SOUND
|
|
S_I_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_NORMHEAD
|
|
MOVK M_PUP_NORMHEAD,A0
|
|
JRUC HEAD_POWERUP
|
|
SET_TINYHEAD
|
|
MOVK M_PUP_TINYHEAD,A0
|
|
JRUC HEAD_POWERUP
|
|
SET_HUGEHEAD
|
|
MOVK M_PUP_HUGEHEAD,A0
|
|
JRUC HEAD_POWERUP
|
|
SET_BIGHEAD
|
|
MOVK M_PUP_BIGHEAD,A0
|
|
HEAD_POWERUP
|
|
MOVE A9,A6
|
|
SLL 5,A6
|
|
ADDI PL1256_LIST_TABLE,A6
|
|
MOVE *A6,A6,L
|
|
H_PUP_GO
|
|
MOVE *A6(POF_PUP_FLAGS),A1,W
|
|
MOVE A1,A14
|
|
AND A0,A14
|
|
JRNZ H_PUP_DONE ;BR=ALREADY SET
|
|
|
|
ANDNI M_PUP_HEADS,A1
|
|
OR A0,A1
|
|
MOVE A1,*A6(POF_PUP_FLAGS),W
|
|
|
|
CALLR POWERUP_SOUND
|
|
|
|
H_PUP_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_GNORMHEAD
|
|
MOVK M_PUP_NORMHEAD,A0
|
|
JRUC GOALIE_HEAD_POWERUP
|
|
SET_GTINYHEAD
|
|
MOVK M_PUP_TINYHEAD,A0
|
|
JRUC GOALIE_HEAD_POWERUP
|
|
SET_GHUGEHEAD
|
|
MOVK M_PUP_HUGEHEAD,A0
|
|
JRUC GOALIE_HEAD_POWERUP
|
|
SET_GBIGHEAD
|
|
MOVK M_PUP_BIGHEAD,A0
|
|
GOALIE_HEAD_POWERUP
|
|
MOVI PLAYER_4_BLOCK,A6
|
|
|
|
KITN 4
|
|
JREQ GBP_4P ;BR=4 PLAYER KIT
|
|
CMPI 3,A9
|
|
JRNE H_PUP_GO ;BR=NOT PLAYER 2(4)
|
|
|
|
MOVI PLAYER_8_BLOCK,A6
|
|
JRUC H_PUP_GO
|
|
GBP_4P
|
|
CMPI 2,A9
|
|
JRLT H_PUP_GO ;BR=LEFT GOALIE
|
|
MOVI PLAYER_8_BLOCK,A6
|
|
JRUC H_PUP_GO
|
|
|
|
**************************************************************************
|
|
SET_BIGPUCK
|
|
MOVE @BIG_PUCK,A14,W
|
|
JRNZ SBP_PUP_DONE ;BR=ALREADY BIG
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@BIG_PUCK,W
|
|
|
|
CALLR POWERUP_SOUND
|
|
|
|
SBP_PUP_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
SET_BABYSIZE
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRNZ SBS_PUP_DONE ;BR=DIPSWITCH ON
|
|
|
|
MOVE @BABY_SIZE,A14,W
|
|
JRNZ SBS_PUP_DONE ;BR=ALREADY BIG
|
|
|
|
MOVK 1,A14
|
|
MOVE A14,@BABY_SIZE,W
|
|
|
|
CALLR POWERUP_SOUND
|
|
|
|
SBS_PUP_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
* *
|
|
* POWERUP_SOUND *
|
|
* *
|
|
**************************************************************************
|
|
|
|
POWERUP_SOUND
|
|
PUSH A4
|
|
MOVI S_SIDE_TOGGLE,A4
|
|
; MOVI S_P1_POWERUP,A4
|
|
CALLA do_sound
|
|
PULLQ A4
|
|
RETS
|
|
|
|
**************************************************************************
|
|
* *
|
|
* REPORT_POWERUPS *
|
|
* *
|
|
**************************************************************************
|
|
|
|
REPORT_POWERUPS
|
|
MOVI PID_POWERUP,A0
|
|
CALLA KILLPROC_ALL
|
|
|
|
CLR A9
|
|
|
|
MOVI TEXTZVAL,A2
|
|
MOVE @PLAYER_BITS,A3,W
|
|
MOVK 3,A7
|
|
MOVI dpl_lst,A5
|
|
|
|
RP_LUPE
|
|
BTST A7,A3
|
|
JRZ RP_NEXT ;BR=PLAYER NOT ACTIVE
|
|
|
|
MOVE *A5,A6,L
|
|
MOVE *A6(POF_PUP_FLAGS),A14,W
|
|
CALLR RP_REPORT_ATTRIBUTES
|
|
ANDI M_PUP_BIGHEAD|M_PUP_HUGEHEAD|M_PUP_TINYHEAD,A14
|
|
JRZ RP_NEXT ;BR=NO HEAD POWERUP
|
|
|
|
MOVI REPORT_INIT,B0
|
|
CALLR RP_MAKE_REPORT
|
|
RP_NEXT
|
|
ADDK 020H,A5
|
|
DEC A7
|
|
JRNN RP_LUPE
|
|
|
|
MOVE A3,A14
|
|
ANDI 011B,A14
|
|
JRZ RP_CHECK_RIGHT_GOALIE ;BR=TEAM NOT ACTIVE
|
|
|
|
MOVK 4,A7
|
|
MOVI PLAYER_4_BLOCK,A6
|
|
MOVE *A6(POF_PUP_FLAGS),A14,W
|
|
ANDI M_PUP_BIGHEAD|M_PUP_HUGEHEAD|M_PUP_TINYHEAD,A14
|
|
JRZ RP_CHECK_RIGHT_GOALIE ;BR=NO HEAD POWERUP
|
|
|
|
MOVI REPORT_INIT,B0
|
|
CALLR RP_MAKE_REPORT
|
|
MOVE A8,A8
|
|
JRZ RP_CHECK_RIGHT_GOALIE ;BR=DOESN'T EXIST
|
|
MOVI REPORT_TIMEOUT_ANIM,A1
|
|
CALLA STRT_ANIM
|
|
MOVI REPORT_GOALIE_INIT,B0
|
|
CALLA EASYMAKE
|
|
MOVI LEFT_GOALIE_REPORT_YX,A1
|
|
CALLA SET_SCRNOBJ
|
|
MOVI BLUTXT5P,A0
|
|
CALLA CHANGE_PAL
|
|
CALLA INSERT_OBJ
|
|
|
|
RP_CHECK_RIGHT_GOALIE
|
|
MOVE A3,A14
|
|
ANDI 01100B,A14
|
|
JRZ RP_MODES ;BR=TEAM NOT ACTIVE
|
|
|
|
MOVK 5,A7
|
|
MOVI PLAYER_8_BLOCK,A6
|
|
MOVE *A6(POF_PUP_FLAGS),A14,W
|
|
ANDI M_PUP_BIGHEAD|M_PUP_HUGEHEAD|M_PUP_TINYHEAD,A14
|
|
JRZ RP_MODES ;BR=NO HEAD POWERUP
|
|
|
|
MOVI REPORT_INIT,B0
|
|
CALLR RP_MAKE_REPORT
|
|
MOVE A8,A8
|
|
JRZ RP_MODES ;BR=DOESN'T EXIST
|
|
MOVI REPORT_TIMEOUT_ANIM,A1
|
|
CALLA STRT_ANIM
|
|
MOVI REPORT_GOALIE_INIT,B0
|
|
CALLA EASYMAKE
|
|
MOVI RGHT_GOALIE_REPORT_YX,A1
|
|
CALLA SET_SCRNOBJ
|
|
MOVI REDTXT3P,A0
|
|
CALLA CHANGE_PAL
|
|
CALLA INSERT_OBJ
|
|
|
|
RP_MODES
|
|
MOVI [154,199],A3
|
|
|
|
MOVE @BIG_PUCK,A14,W
|
|
JRZ RP_CHECK_BS ;BR=NORMAL PUCK
|
|
|
|
MOVI BP_MESS,A2
|
|
CALLR REPORT_SINGLE_POWERUP
|
|
|
|
RP_CHECK_BS
|
|
MOVE @BABY_SIZE,A14,W
|
|
JRZ RP_CHECK_UT ;BR=NORMAL SIZE
|
|
|
|
MOVI BS_MESS,A2
|
|
ADDI [13,0],A3
|
|
CALLR REPORT_SINGLE_POWERUP
|
|
|
|
RP_CHECK_UT
|
|
MOVE @UNLIM_TURBO,A14,W
|
|
JRZ RP_CHECK_UC ;BR=NOPE
|
|
|
|
MOVI UT_MESS,A2
|
|
ADDI [13,0],A3
|
|
CALLR REPORT_SINGLE_POWERUP
|
|
|
|
RP_CHECK_UC
|
|
MOVE @UNLIM_CHECK,A14,W
|
|
JRZ RP_CHECK_SG ;BR=NOPE
|
|
|
|
MOVI UC_MESS,A2
|
|
ADDI [13,0],A3
|
|
CALLR REPORT_SINGLE_POWERUP
|
|
|
|
RP_CHECK_SG
|
|
MOVE @SUPER_GOALIE,A14,W
|
|
JRZ RP_CHECK_TM ;BR=DUMB ASS GOALIE
|
|
|
|
PUSH A3
|
|
MOVI REPORT_SUPER_GOALIE_INIT,B0
|
|
CALLA MULTIMAKE
|
|
JRZ RP_CHECK_TM ;BR=COULDN'T DO IT
|
|
PULLQ A3
|
|
|
|
ADDI [13,0],A3
|
|
MOVE A3,A1
|
|
MOVI [13,19],A14
|
|
ADDXY A14,A1
|
|
MOVI TEXTZVAL,A2
|
|
CALLA SET_SCRNOBJ
|
|
|
|
MOVI ORGTXT1P,A0
|
|
CALLA CHANGE_PAL_MULTI
|
|
CALLA INSERT_OBJ
|
|
|
|
RP_CHECK_TM
|
|
MOVE @TOURN_MODE,A14,W
|
|
JRZ RP_CHECK_CAO ;BR=NOPE
|
|
|
|
MOVI TM_MESS,A2
|
|
ADDI [13,0],A3
|
|
CALLR REPORT_SINGLE_POWERUP
|
|
|
|
RP_CHECK_CAO
|
|
MOVE @COMP_ASS_OFF,A14,W
|
|
JRZ RP_SOUND ;BR=NOPE
|
|
|
|
MOVI CAO_MESS,A2
|
|
ADDI [13,0],A3
|
|
CALLR REPORT_SINGLE_POWERUP
|
|
|
|
RP_SOUND
|
|
MOVE A9,A9
|
|
JRZ RP_DONE ;BR=NONE
|
|
MOVI S_POWERUP_REPORT,A4
|
|
CALLA do_sound
|
|
RP_DONE
|
|
RETS
|
|
|
|
**************************************************************************
|
|
* *
|
|
* REPORT_SINGLE_POWERUP *
|
|
* *
|
|
* PASS: *
|
|
* A2 = POWER-UP IMAGE *
|
|
* A3 = [Y,X] SCREEN POSITION *
|
|
* A9 = POWER-UP COUNT *
|
|
* *
|
|
* RETURN: *
|
|
* A8 = OBJECT *
|
|
* A9 = POWER-UP COUNT *
|
|
* *
|
|
**************************************************************************
|
|
|
|
REPORT_SINGLE_POWERUP
|
|
MOVI REPORT_BIGPUCK_INIT,B0
|
|
CALLA EASYMAKE
|
|
JRZ RSP_ABORT ;BR=COULDN'T DO IT
|
|
|
|
MOVE A2,A1
|
|
MOVI DMAWNZ,A4
|
|
CALLA ANI
|
|
|
|
MOVE A3,A1
|
|
MOVI TEXTZVAL,A2
|
|
CALLA SET_SCRNOBJ
|
|
MOVI ORGTXT1P,A0
|
|
CALLA CHANGE_PAL
|
|
CALLA INSERT_OBJ
|
|
|
|
INC A9 ;ACKNOWLEDGE POWERUP
|
|
RSP_ABORT
|
|
RETS
|
|
|
|
|
|
**************************************************************************
|
|
* *
|
|
* RP_MAKE_REPORT *
|
|
* *
|
|
* PASS: *
|
|
* A2 = Z POSITION *
|
|
* A7 = PLAYER NUMBER - 1 *
|
|
* A14 = POF_PUP_FLAGS *
|
|
* A9 = POWER-UP COUNT *
|
|
* *
|
|
* RETURN: *
|
|
* A8 = OBJECT *
|
|
* A9 = POWER-UP COUNT *
|
|
* *
|
|
**************************************************************************
|
|
|
|
RP_MAKE_REPORT
|
|
MMTM SP,A3,A5
|
|
|
|
MOVE A14,A6
|
|
LMO A6,A6
|
|
SUBK 31,A6
|
|
ABS A6
|
|
SLL 5,A6
|
|
|
|
MOVI REPORT_MESS_TABLE,A3
|
|
MOVI HEAD_REPORT_YX_TABLE,A5
|
|
CALLR MAKE_REPORT_OBJ
|
|
|
|
INC A9 ;ACKNOWLEDGE POWERUP
|
|
MMFM SP,A3,A5
|
|
RETS
|
|
|
|
**************************************************************************
|
|
* *
|
|
* RP_REPORT_ATTRIBUTES *
|
|
* *
|
|
* PASS: *
|
|
* A2 = Z POSITION *
|
|
* A7 = PLAYER NUMBER - 1 *
|
|
* A14 = POF_PUP_FLAGS *
|
|
* A9 = POWER-UP COUNT *
|
|
* *
|
|
* RETURN: *
|
|
* A8 = OBJECT *
|
|
* A9 = POWER-UP COUNT *
|
|
* *
|
|
**************************************************************************
|
|
|
|
RP_REPORT_ATTRIBUTES
|
|
MMTM SP,A3,A5,A14
|
|
|
|
MOVE A14,A6
|
|
SRL 4,A6
|
|
JRZ RP_RA_DONE ;BR=NONE
|
|
LMO A6,A6
|
|
SUBK 31,A6
|
|
ABS A6
|
|
SLL 5,A6
|
|
|
|
MOVI ATTRIBUTE_MESS_TABLE,A3
|
|
MOVI ATTRIBUTE_YX_TABLE,A5
|
|
CALLR MAKE_REPORT_OBJ
|
|
; MOVI REPORT_TIMEOUT_ANIM,A1
|
|
; CALLA STRT_ANIM
|
|
|
|
INC A9 ;ACKNOWLEDGE POWERUP
|
|
RP_RA_DONE
|
|
MMFM SP,A3,A5,A14
|
|
RETS
|
|
|
|
**************************************************************************
|
|
* *
|
|
* MAKE_REPORT_OBJ *
|
|
* *
|
|
* PASS: *
|
|
* A2 = Z POSITION *
|
|
* A3 = MESSAGE TABLE *
|
|
* A5 = [Y,X] TABLE *
|
|
* A6 = TABLE OFFSET *
|
|
* A7 = PLAYER NUMBER -1 *
|
|
* *
|
|
* RETURN: *
|
|
* A8 = OBJECT *
|
|
* *
|
|
**************************************************************************
|
|
|
|
MAKE_REPORT_OBJ
|
|
MOVI REPORT_INIT,B0
|
|
CALLA EASYMAKE
|
|
JRZ MRO_ABORT
|
|
|
|
ADD A3,A6
|
|
MOVE *A6,A1,L
|
|
MOVI DMAWNZ,A4
|
|
CALLA ANI
|
|
|
|
MOVE A7,A6
|
|
SLL 5,A6
|
|
MOVE A6,A1
|
|
ADD A5,A1
|
|
MOVE *A1,A1,L
|
|
CALLA SET_SCRNOBJ
|
|
|
|
ADDI REPORT_PAL_TABLE,A6
|
|
MOVE *A6,A0,L
|
|
CALLA CHANGE_PAL
|
|
|
|
CALLA INSERT_OBJ
|
|
MRO_ABORT
|
|
RETS
|
|
|
|
ATTRIBUTE_MESS_TABLE
|
|
.LONG FTH_MESS,IS_MESS,ISH_MESS,IP_MESS,IC_MESS,IPH_MESS,FTR_MESS
|
|
|
|
ATTRIBUTE_YX_TABLE
|
|
.LONG [230,50],[230,150],[230,250],[230,350]
|
|
|
|
REPORT_MESS_TABLE
|
|
.LONG BH_MESS,HH_MESS,TH_MESS
|
|
|
|
LEFT_GOALIE_REPORT_YX EQU [60,50]
|
|
RGHT_GOALIE_REPORT_YX EQU [60,350]
|
|
|
|
HEAD_REPORT_YX_TABLE
|
|
.LONG [130,70]
|
|
.LONG [145,140]
|
|
.LONG [145,260]
|
|
.LONG [130,330]
|
|
.LONG LEFT_GOALIE_REPORT_YX
|
|
.LONG RGHT_GOALIE_REPORT_YX
|
|
|
|
REPORT_PAL_TABLE
|
|
.LONG PRPTXT5P,BLUTXT5P,GLDTXT5P,GRNTXT5P,BLUTXT5P,REDTXT3P
|
|
|
|
REPORT_INIT
|
|
.long BH_MESS
|
|
.word DMAWNZ,M_SCRNOBJ|M_NOVEL
|
|
.word OM_OID|OM_ANIM
|
|
.word OID_JUNK
|
|
.LONG REPORT_ANIM
|
|
|
|
REPORT_ANIM
|
|
LWL 1,3|AFUNC,OBJ_CONST
|
|
LWL 1,3|AFUNC,OBJ_ON
|
|
LWL 1,3|AFUNC,OBJ_CONST
|
|
LWL 1,3|AFUNC,OBJ_ON
|
|
LWL 1,3|AFUNC,OBJ_CONST
|
|
LWL 1,3|AFUNC,OBJ_ON
|
|
LWL 1,3|AFUNC,OBJ_CONST
|
|
LWL 1,3|AFUNC,OBJ_ON
|
|
LWL 1,3|AFUNC,OBJ_CONST
|
|
LWL 1,3|AFUNC,OBJ_ON
|
|
LW 1,60
|
|
LWL 1,1|AFUNC,DELETE_OBJ
|
|
|
|
REPORT_GOALIE_INIT
|
|
.long G_MESS
|
|
.word DMAWNZ,M_SCRNOBJ|M_NOVEL
|
|
.word OM_OID|OM_ANIM
|
|
.word OID_JUNK
|
|
.LONG REPORT_TIMEOUT_ANIM
|
|
|
|
REPORT_TIMEOUT_ANIM
|
|
LW 1,90
|
|
LWL 1,1|AFUNC,DELETE_OBJ
|
|
|
|
REPORT_BIGPUCK_INIT
|
|
.long BP_MESS
|
|
.word DMAWNZ,M_SCRNOBJ|M_NOVEL
|
|
.word OM_OID|OM_ANIM
|
|
.word OID_JUNK
|
|
.LONG REPORT_TIMEOUT_ANIM
|
|
|
|
REPORT_SUPER_GOALIE_INIT
|
|
.byte 2, 0, 0, 1 ;OBJCNT, PRCCNT, IMGPALCNT, PALCNT
|
|
.long GFONT10CP ;IMGPAL
|
|
.word OID_JUNK, 0 ;OID, GLOBAL_OPTIONS
|
|
* .long IMG
|
|
* .word OCTRL, OFLAGS, OZOFF
|
|
* .word OPTIONS
|
|
|
|
LWWWW S_MESS, DMAWNZ, M_SCRNOBJ|M_NOVEL, 0, OM_ANIM
|
|
.LONG REPORT_TIMEOUT_ANIM
|
|
LWWWW G_MESS, DMAWNZ, M_SCRNOBJ|M_NOVEL, 0, OM_PRVANIM
|
|
|
|
**************************************************************************
|
|
* *
|
|
* CHECK_TOURNMODE_VALID - CHECK IF TOURNAMENT MODE IS VALID *
|
|
* *
|
|
* PASS: *
|
|
* NUTIN' *
|
|
* RETURN: *
|
|
* Z CLR IF VALID *
|
|
* *
|
|
**************************************************************************
|
|
|
|
CHECK_TOURNMODE_VALID
|
|
MMTM SP,A0
|
|
MOVE @PLAYER_BITS,A0,W
|
|
MOVE A0,A14
|
|
ANDI 01100B,A14
|
|
JRZ CTV_DONE ;BR=RIGHT TEAM NOT ACTIVE
|
|
ANDI 011B,A0 ;CHECK LEFT TEAM
|
|
CTV_DONE
|
|
MMFM SP,A0
|
|
RETS
|
|
|
|
.END
|
|
|
|
;BIGHEAD_SWPUP EQU M_SW_U|M_SW_P|M_SW_T
|
|
;HUGEHEAD_SWPUP EQU M_SW_L|M_SW_S|M_SW_T
|
|
;;TINYHEAD_SWPUP EQU M_SW_R|M_SW_S|M_SW_P
|
|
;NORMHEAD_SWPUP EQU M_SW_D|M_SW_S|M_SW_P|M_SW_T
|
|
;
|
|
;GOALIE_BIGHEAD_SWPUP EQU M_SW_D|M_SW_S
|
|
;GOALIE_HUGEHEAD_SWPUP EQU M_SW_U|M_SW_S|M_SW_T
|
|
;;GOALIE_TINYHEAD_SWPUP EQU M_SW_R|M_SW_S
|
|
;GOALIE_NORMHEAD_SWPUP EQU M_SW_U|M_SW_S|M_SW_P|M_SW_T
|
|
;
|
|
;;BIGPUCK_SWPUP EQU M_SW_U|M_SW_L|M_SW_P
|
|
;
|
|
;;BABYSIZE_SWPUP EQU M_SW_D|M_SW_T
|
|
;
|
|
;**************************************************************************
|
|
;* *
|
|
;* POWERUP_SNAPSHOT_PROC - CHECK FOR "SNAPSHOT" POWER UPS *
|
|
;* *
|
|
;* PASS: *
|
|
;* NUTIN' *
|
|
;* RETURN: *
|
|
;* NUTIN' *
|
|
;* *
|
|
;**************************************************************************
|
|
;
|
|
;POWERUP_SNAPSHOT_PROC
|
|
;PSNP_LUPE
|
|
; MOVE A11,A4
|
|
;PSNP_NEXT_POWERUP
|
|
; MOVE *A4+,A9,W
|
|
; JRZ PSNP_NAP ;BR=TABLE DONE
|
|
; SLL 24,A9
|
|
; MOVE *A4+,A10,L
|
|
;
|
|
; MOVK 3,A0
|
|
; MOVE @PLAYER_BITS,A1,W
|
|
; MOVI dpl_lst,A2
|
|
; MOVE @SWITCH,A3,L
|
|
; NOT A3
|
|
;PSNP_PLAYER_LUPE
|
|
; BTST A0,A1
|
|
; JRZ PSNP_NEXT ;BR=PLAYER NOT ACTIVE
|
|
;
|
|
; KITN 4
|
|
; JREQ PSNP_CHECK ;BR=4 PLAYER KIT
|
|
; CMPI 3,A0
|
|
; JRNE PSNP_CHECK ;BR=NOT PLAYER 2(4)
|
|
; MOVE A3,A14
|
|
; SLL 16,A14 ;PLAYER 2 FUDGE
|
|
; JRUC PSNP_FUDGE
|
|
;PSNP_CHECK
|
|
; MOVE A3,A14
|
|
;PSNP_FUDGE
|
|
; ANDI PLAYER_SWMASK << 24,A14
|
|
; XOR A9,A14
|
|
; JRNZ PSNP_NEXT ;BR=NO MATCH
|
|
;PSNP_POWERUP
|
|
; CALL A10
|
|
;PSNP_NEXT
|
|
; SLL 8,A3
|
|
; ADDK 020H,A2
|
|
; DEC A0
|
|
; JRNN PSNP_PLAYER_LUPE
|
|
;
|
|
; JRUC PSNP_NEXT_POWERUP
|
|
;PSNP_NAP
|
|
; SLEEP 1
|
|
;
|
|
; JRUC PSNP_LUPE
|
|
;
|
|
;**************************************************************************
|
|
;* *
|
|
;* POWERUP SNAPSHOT ROUTINES CANNOT TRASH: *
|
|
;* *
|
|
;* A0 = PLAYER NUMBER - 1 *
|
|
;* A1 = PLAYER_BITS *
|
|
;* A2 = PLAYER BLOCK ADDRESS TABLE *
|
|
;* A4 = NEXT POWERUP TABLE ENTRY *
|
|
;* A9 = POWERUP BUTTONS << 24 *
|
|
;* A10 = POWERUP ROUTINE ADDRESS *
|
|
;* A11 = POWERUP TABLE *
|
|
;* *
|
|
;**************************************************************************
|
|
;
|
|
;TG_POWERUP_PROC_TABLE
|
|
; WL BIGHEAD_SWPUP,BIGHEAD_POWERUP
|
|
; WL HUGEHEAD_SWPUP,HUGEHEAD_POWERUP
|
|
;; WL TINYHEAD_SWPUP,TINYHEAD_POWERUP
|
|
; WL NORMHEAD_SWPUP,NORMHEAD_POWERUP
|
|
; WL GOALIE_BIGHEAD_SWPUP,GOALIE_BIGHEAD_POWERUP
|
|
; WL GOALIE_HUGEHEAD_SWPUP,GOALIE_HUGEHEAD_POWERUP
|
|
;; WL GOALIE_TINYHEAD_SWPUP,GOALIE_TINYHEAD_POWERUP
|
|
; WL GOALIE_NORMHEAD_SWPUP,GOALIE_NORMHEAD_POWERUP
|
|
;; WL BIGPUCK_SWPUP,BIGPUCK_POWERUP
|
|
;; WL BABYSIZE_SWPUP,BABYSIZE_POWERUP
|
|
; .WORD 0
|
|
;
|
|
;**************************************************************************
|
|
;NORMHEAD_POWERUP
|
|
; MOVK M_PUP_NORMHEAD,A5
|
|
; JRUC HEAD_POWERUP
|
|
;TINYHEAD_POWERUP
|
|
; MOVK M_PUP_TINYHEAD,A5
|
|
; JRUC HEAD_POWERUP
|
|
;HUGEHEAD_POWERUP
|
|
; MOVK M_PUP_HUGEHEAD,A5
|
|
; JRUC HEAD_POWERUP
|
|
;BIGHEAD_POWERUP
|
|
; MOVK M_PUP_BIGHEAD,A5
|
|
;HEAD_POWERUP
|
|
; MOVE *A2,A6,L
|
|
;H_PUP_GO
|
|
; MOVE *A6(POF_PUP_FLAGS),A14,W
|
|
; MOVE A14,A7
|
|
; AND A5,A7
|
|
; JRNZ H_PUP_DONE ;BR=ALREADY SET
|
|
;
|
|
; ANDNI M_PUP_HEADS,A14
|
|
; OR A5,A14
|
|
; MOVE A14,*A6(POF_PUP_FLAGS),W
|
|
;
|
|
; CALLR POWERUP_SOUND
|
|
;
|
|
;H_PUP_DONE
|
|
; RETS
|
|
;
|
|
;**************************************************************************
|
|
;GOALIE_NORMHEAD_POWERUP
|
|
; MOVK M_PUP_NORMHEAD,A5
|
|
; JRUC GOALIE_HEAD_POWERUP
|
|
;GOALIE_TINYHEAD_POWERUP
|
|
; MOVK M_PUP_TINYHEAD,A5
|
|
; JRUC GOALIE_HEAD_POWERUP
|
|
;GOALIE_HUGEHEAD_POWERUP
|
|
; MOVK M_PUP_HUGEHEAD,A5
|
|
; JRUC GOALIE_HEAD_POWERUP
|
|
;GOALIE_BIGHEAD_POWERUP
|
|
; MOVK M_PUP_BIGHEAD,A5
|
|
;GOALIE_HEAD_POWERUP
|
|
; MOVI PLAYER_4_BLOCK,A6
|
|
;
|
|
; KITN 4
|
|
; JREQ GBP_4P ;BR=4 PLAYER KIT
|
|
; CMPI 3,A0
|
|
; JRNE H_PUP_GO ;BR=NOT PLAYER 2(4)
|
|
;
|
|
; MOVI PLAYER_8_BLOCK,A6
|
|
; JRUC H_PUP_GO
|
|
;GBP_4P
|
|
; CMPI 2,A0
|
|
; JRLT H_PUP_GO ;BR=LEFT GOALIE
|
|
; MOVI PLAYER_8_BLOCK,A6
|
|
; JRUC H_PUP_GO
|
|
;
|
|
;**************************************************************************
|
|
;BIGPUCK_POWERUP
|
|
; MOVE @BIG_PUCK,A14,W
|
|
; JRNZ BP_PUP_DONE ;BR=ALREADY BIG
|
|
;
|
|
; MOVK 1,A14
|
|
; MOVE A14,@BIG_PUCK,W
|
|
;
|
|
; CALLR POWERUP_SOUND
|
|
;
|
|
;BP_PUP_DONE
|
|
; RETS
|
|
;
|
|
;**************************************************************************
|
|
;BABYSIZE_POWERUP
|
|
; MOVE @TOURN_MODE,A14,W
|
|
; JRN BAP_PUP_DONE ;BR=DIPSWITCH ON
|
|
;
|
|
; MOVE @BABY_SIZE,A14,W
|
|
; JRNZ BAP_PUP_DONE ;BR=ALREADY BIG
|
|
;
|
|
; MOVK 1,A14
|
|
; MOVE A14,@BABY_SIZE,W
|
|
;
|
|
; CALLR POWERUP_SOUND
|
|
;
|
|
;BAP_PUP_DONE
|
|
; RETS
|
|
;
|