3323 lines
60 KiB
NASM
3323 lines
60 KiB
NASM
|
**************************************************************
|
|||
|
*
|
|||
|
* Software: Jason Skiles
|
|||
|
* Initiated: 1066, shortly after the Battle of Hastings
|
|||
|
*
|
|||
|
* COPYRIGHT (C) 1993 WILLIAMS ELECTRONICS GAMES, INC.
|
|||
|
*
|
|||
|
*.Last mod - 11/22/93 14:24
|
|||
|
**************************************************************
|
|||
|
|
|||
|
.file "select.asm"
|
|||
|
.title "wrestling selection screens"
|
|||
|
.width 132
|
|||
|
.option b,d,l,t
|
|||
|
.mnolist
|
|||
|
|
|||
|
|
|||
|
.include "mproc.equ" ;Mproc equates
|
|||
|
.include "display.equ" ;Display proc equates
|
|||
|
.include "gsp.equ" ;Gsp asm equates
|
|||
|
.include "sys.equ"
|
|||
|
.include "game.equ"
|
|||
|
.include "audit.equ"
|
|||
|
.include "macros.h"
|
|||
|
.include "link.equ"
|
|||
|
.include "sound.h"
|
|||
|
.include "plyr.equ"
|
|||
|
.INCLUDE "SOUND.EQU"
|
|||
|
|
|||
|
.include "fontsimg.glo"
|
|||
|
.include "bgndtbl.glo"
|
|||
|
.include "imgtbl.glo"
|
|||
|
.include "miscimg.glo"
|
|||
|
.include "ropeimg.glo"
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
|
|||
|
.ref current_round
|
|||
|
.ref DO_BEATEN_GAME
|
|||
|
|
|||
|
.def howard_wins,digits_tbl,calc_match_time_1
|
|||
|
.def num_wrestlers,wrestler_mugs
|
|||
|
|
|||
|
.def wrestler_attributes,attbars
|
|||
|
.def wrestler_mugs2,wrestler_audits
|
|||
|
|
|||
|
.ref ADD_VOICE,BAKMODS,BCDBIN,BEGINOBJ_TBL,BGND_UD1
|
|||
|
.ref BINBCD,change_image,CHECK_SCORE,civanic
|
|||
|
.ref CLOSE_PROGRESS_SCREEN,CLOSE_SCREEN_LINE,CR_STRTP
|
|||
|
.ref CURRENT_ANN_QUEUE,DONE_HOWARD,do_that_cycle,dpageflip
|
|||
|
.ref entered_inits,FADE_MASTER_VOL,FIND_LOW_TABLE_LEVEL
|
|||
|
.ref GET_ADJ,get_but_val_down,get_process_ptr,get_start_cur
|
|||
|
.ref get_stick_val_cur,get_stick_val_down,match_time
|
|||
|
.ref NEXT_ANN_QUEUE,no_pin_check,PCNT,pin_speed_check
|
|||
|
.ref PIN_SPEED_TAB,PSTATUS,PUT_UP_PROGRESS,RNDPER,RNDRNG0
|
|||
|
.ref SPECIAL_WIPEOUT,start_credbox
|
|||
|
.ref NEXT_IN_LADDER,INIT_LADDER_TABLE
|
|||
|
.ref NUM_OF_OPPS,CURRENT_LADDER,get_all_buttons_cur2
|
|||
|
.ref print_message,osgemd_ascii,is_final_match
|
|||
|
.ref UNIT_CLR,attract_mode,round_start_time,round_end_time
|
|||
|
.REF set_volume
|
|||
|
.REF belt_type
|
|||
|
|
|||
|
.if DEBUG
|
|||
|
.ref stay_down
|
|||
|
.endif
|
|||
|
|
|||
|
.ref total_matches
|
|||
|
.ref triple_sound,winstreak_check,WIPEOUT,wmania_tune
|
|||
|
.ref print_beaten
|
|||
|
.ref print_inter
|
|||
|
.ref GET_AUD
|
|||
|
.ref match_cnt
|
|||
|
.ref show_bonus_icons
|
|||
|
.ref clear_icon_total
|
|||
|
.ref del_bonus_icons
|
|||
|
|
|||
|
.ref wgsf24_ascii
|
|||
|
.REF royal_rumble
|
|||
|
.REF DO_TAG_GAME
|
|||
|
.ref print_tag
|
|||
|
.ref hscore_colcyc
|
|||
|
.ref hscore_colcyc2
|
|||
|
.ref font9_ascii,FNT9WHT_P,auto_init
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
|
|||
|
BSSX MATCH_TIMERS,64
|
|||
|
bssx which_player,32
|
|||
|
|
|||
|
BSSX index1, 16 ;player 1 cursor position
|
|||
|
BSSX index2, 16 ;player 2 cursor position
|
|||
|
.bss time_out, 16 ;time out flag
|
|||
|
BSSX active_flag, 16 ;0:player 1 active, 1:player 2 active
|
|||
|
|
|||
|
.bss kp_p1cursor, 32
|
|||
|
.bss blow_out, 16 ;Flag for not delaying after no buyin
|
|||
|
.BSS SPEECH_STARTED, 16
|
|||
|
|
|||
|
bssx match_time_bcd,32
|
|||
|
|
|||
|
bssx are_we_waiting_f,32
|
|||
|
; BSSX player_pal_pref,116*2
|
|||
|
BSSX player_pal_pref,120*2
|
|||
|
.bss cursor_procs,16
|
|||
|
BSSX rr_loss,16
|
|||
|
.BSS TEMP_PSTATUS,16
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
|
|||
|
num_wrestlers EQU 9
|
|||
|
|
|||
|
.word AUD_SNDERR4,AUD_SNDERR4,AUD_SNDERR4,AUD_SNDERR4
|
|||
|
wrestler_audits
|
|||
|
.word AUD_BHART,AUD_BHARTHW,AUD_BHARTC,AUD_BHARTCW
|
|||
|
.word AUD_RRAMO,AUD_RRAMOHW,AUD_RRAMOC,AUD_RRAMOCW
|
|||
|
.word AUD_UNDER,AUD_UNDERHW,AUD_UNDERC,AUD_UNDERCW
|
|||
|
.word AUD_YOKO,AUD_YOKOHW,AUD_YOKOC,AUD_YOKOCW
|
|||
|
.word AUD_SMICH,AUD_SMICHHW,AUD_SMICHC,AUD_SMICHCW
|
|||
|
.word AUD_BBBIG,AUD_BBBIGHW,AUD_BBBIGC,AUD_BBBIGCW
|
|||
|
.word AUD_DCLOW,AUD_DCLOWHW,AUD_DCLOWC,AUD_DCLOWCW
|
|||
|
.word 0,0,0,0
|
|||
|
.word AUD_LLUGE,AUD_LLUGEHW,AUD_LLUGEC,AUD_LLUGECW
|
|||
|
wrestler_auditsX
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
|
|||
|
PLEASE_YPOS .equ 45
|
|||
|
CONTINUE_YPOS .equ PLEASE_YPOS+157
|
|||
|
CREDIT_LINE_YPOS .equ 110
|
|||
|
TIMER_YPOS .equ 208
|
|||
|
TO_CONTINUE_YPOS .equ CREDIT_LINE_YPOS+15
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
|
|||
|
.ref OLD_PSTATUS
|
|||
|
.ref CR_CONTP
|
|||
|
.ref GAMSTATE
|
|||
|
; .ref secret_damage
|
|||
|
|
|||
|
#*******************************
|
|||
|
|
|||
|
STRUCTPD
|
|||
|
LONG #cursorimg ;UHL cursor *img
|
|||
|
LONG #hiliteimg ;UHL hilite letter *img
|
|||
|
WORD #stick ;UHW stick to read
|
|||
|
LONG #which_tab
|
|||
|
LONG #which_entry
|
|||
|
LONG #which_level
|
|||
|
|
|||
|
SUBR GAME_BEATEN
|
|||
|
|
|||
|
;kill the ladder
|
|||
|
calla INIT_LADDER_TABLE
|
|||
|
|
|||
|
MOVK INPARTY,A0
|
|||
|
MOVE A0,@GAMSTATE
|
|||
|
MOVI 998,A3
|
|||
|
CALLA SNDSND
|
|||
|
movi 2,a0
|
|||
|
calla RNDRNG0
|
|||
|
move a0,a3
|
|||
|
addk 0fh,a3
|
|||
|
calla SNDSND
|
|||
|
|
|||
|
MOVK 5,A11
|
|||
|
MOVI 32,A8
|
|||
|
CREATE FADE_PID,FADE_MASTER_VOL
|
|||
|
|
|||
|
calla WIPEOUT
|
|||
|
movk 1,a0 ;page flipping on
|
|||
|
move a0,@dpageflip
|
|||
|
calla start_credbox
|
|||
|
movi #plyrsel_mod,a0
|
|||
|
move a0,@BAKMODS,L
|
|||
|
calla BGND_UD1 ;create objects for background
|
|||
|
clr a14
|
|||
|
move a14,@time_out
|
|||
|
|
|||
|
CREATE CROUTON_PID,display_croutons
|
|||
|
|
|||
|
MOVE @royal_rumble,A10
|
|||
|
JRNZ WE_PLAYED_A_TAG_TEAM
|
|||
|
|
|||
|
move @PSTATUS,A10
|
|||
|
srl 1,a10
|
|||
|
move a10,a8
|
|||
|
|
|||
|
MOVE a8,a1
|
|||
|
sll 5,a1
|
|||
|
move a8,a2
|
|||
|
sll 4,a2
|
|||
|
add a2,a1
|
|||
|
addi entered_inits,a1
|
|||
|
clr a2
|
|||
|
move a2,*a1+,L
|
|||
|
move a2,*a1
|
|||
|
|
|||
|
push a10
|
|||
|
clr a1
|
|||
|
move a10,a10
|
|||
|
jrnz which_playr_set
|
|||
|
movk 1,a1
|
|||
|
which_playr_set
|
|||
|
move a1,a10
|
|||
|
CREATE PCURSOR_PID,player_cursor
|
|||
|
|
|||
|
pull a10
|
|||
|
push a10
|
|||
|
|
|||
|
JSRP DO_BEATEN_GAME
|
|||
|
pull a10
|
|||
|
|
|||
|
are_we_waiting4
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ no_need_for_inputb
|
|||
|
sleep 1
|
|||
|
movi CYCPID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
jrnz are_we_waiting4
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ no_need_for_inputb
|
|||
|
mmtm sp,a10,a9,a8
|
|||
|
calla do_that_cycle
|
|||
|
mmfm sp,a10,a9,a8
|
|||
|
jruc are_we_waiting4
|
|||
|
|
|||
|
no_need_for_inputb
|
|||
|
|
|||
|
CALLA WIPEOUT
|
|||
|
movk 1,a0 ;page flipping on
|
|||
|
move a0,@dpageflip
|
|||
|
movi #hstd_mod,a0
|
|||
|
move a0,@BAKMODS,L
|
|||
|
CALLA BGND_UD1 ;create objects for background
|
|||
|
|
|||
|
movi AUD_BEATEN,A0
|
|||
|
MOVE @belt_type,a1
|
|||
|
jrnz got_right_audit
|
|||
|
MOVI AUD_INTER,A0
|
|||
|
got_right_audit
|
|||
|
calla GET_AUD
|
|||
|
SUBI 1,A1
|
|||
|
CMPI 1,A1
|
|||
|
JRGE NO_PROBLEM
|
|||
|
MOVK 1,A1
|
|||
|
NO_PROBLEM
|
|||
|
CMPI 48,A1
|
|||
|
JRLE NO_PROBLEM2
|
|||
|
MOVI 48,A1
|
|||
|
NO_PROBLEM2
|
|||
|
MOVE A1,A5
|
|||
|
|
|||
|
MOVE @belt_type,a1
|
|||
|
jrnz DISPLAY_RIGHT_TABLE
|
|||
|
JSRP print_inter
|
|||
|
|
|||
|
SLEEP TSEC*7
|
|||
|
RETP
|
|||
|
|
|||
|
DISPLAY_RIGHT_TABLE
|
|||
|
JSRP print_beaten
|
|||
|
calla hscore_colcyc
|
|||
|
calla hscore_colcyc2
|
|||
|
|
|||
|
SLEEP TSEC*7
|
|||
|
RETP
|
|||
|
|
|||
|
WE_PLAYED_A_TAG_TEAM
|
|||
|
|
|||
|
move @MATCH_TIMERS,a9,L
|
|||
|
jrp #time_ok
|
|||
|
move @MATCH_TIMERS+20h,a9,L
|
|||
|
jrnz #time_ok
|
|||
|
|
|||
|
.if DEBUG
|
|||
|
LOCKUP ;bogus timer value
|
|||
|
.endif
|
|||
|
movi 12340,a9 ;123.4 seconds if the value is bogus
|
|||
|
#time_ok
|
|||
|
|
|||
|
CLR A10
|
|||
|
MOVE A10,@entered_inits,L
|
|||
|
MOVE A10,@entered_inits+32,L
|
|||
|
MOVE A10,@entered_inits+64,L
|
|||
|
clr a8
|
|||
|
|
|||
|
JSRP DO_TAG_GAME
|
|||
|
|
|||
|
MOVK 1,A10
|
|||
|
MOVE A10,A8
|
|||
|
JSRP DO_TAG_GAME
|
|||
|
|
|||
|
are_we_waiting5
|
|||
|
sleep 1
|
|||
|
|
|||
|
movi CYCPID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
jrnz are_we_waiting6
|
|||
|
|
|||
|
calla do_that_cycle
|
|||
|
are_we_waiting6
|
|||
|
movi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRNZ are_we_waiting5
|
|||
|
movi HI_INPUT_PID+1,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRNZ are_we_waiting5
|
|||
|
no_need_for_inputc
|
|||
|
.if RR_AWARD = 1
|
|||
|
move @royal_rumble,a14
|
|||
|
jrnz no_scores
|
|||
|
.endif
|
|||
|
|
|||
|
|
|||
|
CALLA WIPEOUT
|
|||
|
movk 1,a0 ;page flipping on
|
|||
|
move a0,@dpageflip
|
|||
|
movi #hstd_mod,a0
|
|||
|
move a0,@BAKMODS,L
|
|||
|
CALLA BGND_UD1 ;create objects for background
|
|||
|
|
|||
|
JSRP print_tag
|
|||
|
|
|||
|
calla hscore_colcyc
|
|||
|
calla hscore_colcyc2
|
|||
|
|
|||
|
SLEEP TSEC*7
|
|||
|
|
|||
|
.if RR_AWARD = 1
|
|||
|
no_scores
|
|||
|
.endif
|
|||
|
|
|||
|
RETP
|
|||
|
|
|||
|
|
|||
|
#hstd_mod
|
|||
|
hstd_mod
|
|||
|
.long slateBMOD
|
|||
|
.word 0,0
|
|||
|
.long 0
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
|
|||
|
SUBR pin_speed_in_case
|
|||
|
MOVE @PSTATUS,@TEMP_PSTATUS
|
|||
|
|
|||
|
move @total_matches,a14
|
|||
|
jrz no_need_for_input
|
|||
|
move @current_round,a14
|
|||
|
cmpi 3,a14
|
|||
|
jreq no_need_for_input
|
|||
|
|
|||
|
calla is_final_match
|
|||
|
jrc no_need_for_input
|
|||
|
movi INSELECT,a14
|
|||
|
move a14,@GAMSTATE
|
|||
|
|
|||
|
move a10,a8
|
|||
|
|
|||
|
move a8,A1
|
|||
|
CALLA get_process_ptr
|
|||
|
MOVE A8,A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI MATCH_TIMERS,A0
|
|||
|
move *a0,A0,L
|
|||
|
movi FIND_LOW_TABLE_LEVEL,a11
|
|||
|
move a11,*a13(#which_level),L
|
|||
|
clr a3
|
|||
|
MOVI PIN_SPEED_TAB,A8
|
|||
|
calla CHECK_SCORE
|
|||
|
|
|||
|
jrz no_need_for_input
|
|||
|
move a10,A1
|
|||
|
sll 5,a1
|
|||
|
|
|||
|
MOVE A10,A2
|
|||
|
SLL 4,A2
|
|||
|
ADD A2,A1
|
|||
|
addi entered_inits,a1
|
|||
|
move *a1,a1,L
|
|||
|
jrnz no_display_anything
|
|||
|
|
|||
|
|
|||
|
MOVI 998,A3
|
|||
|
CALLA SNDSND
|
|||
|
movi 2,a0
|
|||
|
calla RNDRNG0
|
|||
|
move a0,a3
|
|||
|
addk 0fh,a3
|
|||
|
calla SNDSND
|
|||
|
|
|||
|
MOVK 5,A11
|
|||
|
MOVI 32,A8
|
|||
|
CREATE FADE_PID,FADE_MASTER_VOL
|
|||
|
|
|||
|
calla WIPEOUT
|
|||
|
movk 1,a0 ;page flipping on
|
|||
|
move a0,@dpageflip
|
|||
|
calla start_credbox
|
|||
|
movi #plyrsel_mod,a0
|
|||
|
move a0,@BAKMODS,L
|
|||
|
calla BGND_UD1 ;create objects for background
|
|||
|
clr a14
|
|||
|
move a14,@time_out
|
|||
|
|
|||
|
CREATE CROUTON_PID,display_croutons
|
|||
|
|
|||
|
push a10
|
|||
|
clr a1
|
|||
|
move a10,a10
|
|||
|
jrnz which_play_set
|
|||
|
movk 1,a1
|
|||
|
which_play_set
|
|||
|
move a1,a10
|
|||
|
CREATE PCURSOR_PID,player_cursor
|
|||
|
|
|||
|
pull a10
|
|||
|
no_display_anything
|
|||
|
|
|||
|
move a10,a8
|
|||
|
mmtm sp,a6,a7,a8,a9,a10,a11
|
|||
|
jsrp pin_speed_check
|
|||
|
mmfm sp,a6,a7,a8,a9,a10,a11
|
|||
|
|
|||
|
are_we_waiting3
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ no_need_for_input
|
|||
|
sleep 1
|
|||
|
movi CYCPID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
jrnz are_we_waiting3
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ no_need_for_input
|
|||
|
mmtm sp,a10,a9,a8
|
|||
|
calla do_that_cycle
|
|||
|
mmfm sp,a10,a9,a8
|
|||
|
jruc are_we_waiting3
|
|||
|
|
|||
|
no_need_for_input
|
|||
|
MOVE @TEMP_PSTATUS,A14
|
|||
|
MOVE @PSTATUS,A1
|
|||
|
CMP A1,A14
|
|||
|
JREQ NORMAL_EXIT
|
|||
|
|
|||
|
clr a14
|
|||
|
move a14,@time_out
|
|||
|
|
|||
|
;a10 is already set up with side we are on 0 or 1
|
|||
|
CREATE PCURSOR_PID,player_cursor
|
|||
|
inc a10
|
|||
|
move @active_flag,a14
|
|||
|
or a10,a14
|
|||
|
move a14,@active_flag
|
|||
|
|
|||
|
|
|||
|
MOVI CLOCK_PID,A0
|
|||
|
movi -1,a1
|
|||
|
CALLA EXISTP
|
|||
|
jrz waitloop
|
|||
|
|
|||
|
movi select_time,a14
|
|||
|
move a14,*a0(PA9)
|
|||
|
clr a14
|
|||
|
move a14,@OLD_PSTATUS
|
|||
|
|
|||
|
JRUC waitloop
|
|||
|
|
|||
|
NORMAL_EXIT
|
|||
|
RETP
|
|||
|
|
|||
|
calc_match_time_1
|
|||
|
callr work_out_match_time
|
|||
|
; movi 10000,a1
|
|||
|
; sub a0,a1
|
|||
|
JRUC STORE_MATCH_TIME
|
|||
|
|
|||
|
.def calc_match_time_2
|
|||
|
calc_match_time_2
|
|||
|
callr work_out_match_time
|
|||
|
; movi 10000,a1
|
|||
|
; sub a0,a1
|
|||
|
MOVE *A10(PLYRNUM),A0
|
|||
|
CMPI 2,A0
|
|||
|
JRGE NO_POINT_ITS_A_DRONE
|
|||
|
SLL 5,A0
|
|||
|
ADDI MATCH_TIMERS,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
add a1,a0
|
|||
|
cmpi 50000,a0
|
|||
|
jrge no_bother_pin_speed_check
|
|||
|
MOVE A0,A0
|
|||
|
JRN no_bother_pin_speed_check
|
|||
|
calla BINBCD
|
|||
|
move a0,a1
|
|||
|
JRUC STORE_MATCH_TIME
|
|||
|
no_bother_pin_speed_check
|
|||
|
movi -1,a1
|
|||
|
STORE_MATCH_TIME
|
|||
|
MOVE *A10(PLYR_SIDE),A0
|
|||
|
CMPI 2,A0
|
|||
|
JRGE NO_POINT_ITS_A_DRONE
|
|||
|
SLL 5,A0
|
|||
|
ADDI MATCH_TIMERS,A0
|
|||
|
MOVE A1,*A0,L
|
|||
|
NO_POINT_ITS_A_DRONE
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
*
|
|||
|
* Return match time in a0, format is kinda funny. Return 100 - time elapsed
|
|||
|
* in BCD, 0xIIFF format, where II is the integer part and FF is the fractional.
|
|||
|
* Then convert this back to hex from BCD.
|
|||
|
|
|||
|
SUBRP work_out_match_time
|
|||
|
|
|||
|
;old
|
|||
|
move @match_time,a4,L
|
|||
|
move a4,a1
|
|||
|
srl 8,a4
|
|||
|
sll 24,a1
|
|||
|
srl 12,a1
|
|||
|
or a1,a4
|
|||
|
|
|||
|
move @match_time+020h,a5
|
|||
|
sll 16,a5
|
|||
|
srl 16,a5
|
|||
|
movi 100,a0
|
|||
|
mpyu a0,a5
|
|||
|
srl 16,a5
|
|||
|
move a5,a0
|
|||
|
calla BINBCD
|
|||
|
or a4,a0
|
|||
|
calla BCDBIN
|
|||
|
|
|||
|
|
|||
|
;new
|
|||
|
move @round_end_time,a1
|
|||
|
move @round_start_time,a14
|
|||
|
sub a14,a1 ;ticks
|
|||
|
movi (100<<8)/55,a14 ;convert from 55ths to 100ths.
|
|||
|
mpyu a14,a1
|
|||
|
srl 8,a1
|
|||
|
|
|||
|
; movi 10000,a0
|
|||
|
; sub a1,a0
|
|||
|
; calla BINBCD
|
|||
|
; calla BCDBIN
|
|||
|
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
***********
|
|||
|
|
|||
|
|
|||
|
howard_wins
|
|||
|
MOVE @SPEECH_STARTED,a0
|
|||
|
CMPI 2,A0
|
|||
|
jreq NO_SPEECH_COS_HOWRD_TALKIN
|
|||
|
movi NORMAL_WINNERS,a2
|
|||
|
|
|||
|
CALLA is_final_match
|
|||
|
JRNC NOT_LAST_MATCH
|
|||
|
movi SPECIAL_CONGRATS,A2
|
|||
|
|
|||
|
NOT_LAST_MATCH
|
|||
|
MOVK 2,A0
|
|||
|
CALLA RNDRNG0
|
|||
|
SLL 4,A0
|
|||
|
ADD A2,A0
|
|||
|
MOVE *A0,A0
|
|||
|
CALLA ADD_VOICE
|
|||
|
movk 2,a0
|
|||
|
MOVE a0,@SPEECH_STARTED
|
|||
|
sleep 80
|
|||
|
clr a0
|
|||
|
MOVE a0,@SPEECH_STARTED
|
|||
|
die
|
|||
|
|
|||
|
NORMAL_WINNERS
|
|||
|
.WORD 1FEH
|
|||
|
.WORD L_SIGN_YOUR_NAME
|
|||
|
.WORD SIGN_HERE_PLEASE
|
|||
|
|
|||
|
SPECIAL_CONGRATS
|
|||
|
.WORD CONGRATULATIONS
|
|||
|
.WORD L_CONGRATS
|
|||
|
.WORD CONGRATULATIONS
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SUBRP call_wrestler_name
|
|||
|
SLEEPK 20 ;wait 1/3 sec before doing anything.
|
|||
|
|
|||
|
#wait SLEEPK 1
|
|||
|
MOVE @SPEECH_STARTED,A0
|
|||
|
JRNZ #wait
|
|||
|
MOVE @NEXT_ANN_QUEUE,A1,L
|
|||
|
MOVE @CURRENT_ANN_QUEUE,A2,L
|
|||
|
CMP A1,A2
|
|||
|
JRNE NO_SPEECH_COS_HOWRD_TALKIN
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@SPEECH_STARTED
|
|||
|
MOVE *A8,A9
|
|||
|
SLL 5,A9
|
|||
|
ADDI WHICH_SPEECH,A9
|
|||
|
MOVE *A9,A0
|
|||
|
CALLA ADD_VOICE
|
|||
|
MOVE *A8(010H),A0
|
|||
|
CALLA PRCSLP
|
|||
|
CLR A0
|
|||
|
MOVE A0,@SPEECH_STARTED
|
|||
|
NO_SPEECH_COS_HOWRD_TALKIN
|
|||
|
DIE
|
|||
|
|
|||
|
;Bret
|
|||
|
;Razor
|
|||
|
;Taker
|
|||
|
;Yoko
|
|||
|
;Shawn
|
|||
|
;Bam Bam
|
|||
|
;Doink
|
|||
|
;spare
|
|||
|
;Lex
|
|||
|
WHICH_SPEECH
|
|||
|
.WORD 131H,70
|
|||
|
.WORD 12DH,44
|
|||
|
.WORD 12FH,54
|
|||
|
.WORD 132H,59
|
|||
|
.WORD 12CH,55
|
|||
|
.WORD 12EH,76
|
|||
|
.WORD 12BH,54
|
|||
|
.WORD 0,0
|
|||
|
.WORD 130H,47
|
|||
|
|
|||
|
SUBR buyin_select
|
|||
|
|
|||
|
;This turns on the player select background, etc.
|
|||
|
|
|||
|
;If this is a one player game, then display standard challenger needed
|
|||
|
;message on the correct side. Then display a please continue message
|
|||
|
;on the other side, along with a buyin timer.
|
|||
|
|
|||
|
;If this is a two player game, turn on the cursor, etc. for the winning
|
|||
|
;player. Then display a please continue message on the other side, along
|
|||
|
;with a buyin timer.
|
|||
|
|
|||
|
;If a player chooses to let his buyin timer expire, then check to see if
|
|||
|
;he had achieved a high score. If so, display the initials on his side
|
|||
|
;and let him pick. The other player (or none) will stay in limbo.
|
|||
|
|
|||
|
movi INWAITCONT,a14 ;set GAMSTATE
|
|||
|
move a14,@GAMSTATE
|
|||
|
|
|||
|
SUBR select_screen
|
|||
|
|
|||
|
;clear royal_rumble at the start of every select screen
|
|||
|
clr a14
|
|||
|
move a14,@royal_rumble
|
|||
|
|
|||
|
calla display_blank
|
|||
|
clr a0
|
|||
|
; move a0,@secret_damage
|
|||
|
MOVE A0,@SPEECH_STARTED
|
|||
|
|
|||
|
calla WIPEOUT ;kill any attract modes or old
|
|||
|
;battles lying around.
|
|||
|
movi INSELECT,a14 ;set GAMSTATE
|
|||
|
move a14,@GAMSTATE
|
|||
|
movi SELECT_PID,a14 ;set our PID
|
|||
|
move a14,*a13(PROCID)
|
|||
|
|
|||
|
.if DEBUG
|
|||
|
;Temp, stuff @index1,2 for testing wrestlers.
|
|||
|
|
|||
|
move @skip_select,a0
|
|||
|
jrz #noskp
|
|||
|
|
|||
|
;0 (Bret)
|
|||
|
;1 (Razor)
|
|||
|
;2 (Taker)
|
|||
|
;3 (Yoko)
|
|||
|
;4 (Shawn)
|
|||
|
;5 (Bam Bam)
|
|||
|
;6 (Doink)
|
|||
|
;7 spare
|
|||
|
;8 (Lex)
|
|||
|
|
|||
|
calla display_unblank
|
|||
|
movi 4,a0
|
|||
|
move a0,@index1
|
|||
|
movi 8,a0
|
|||
|
move a0,@index2
|
|||
|
|
|||
|
; MOVK 1,A0
|
|||
|
; .ref BONUS_POWER
|
|||
|
; MOVE A0,@BONUS_POWER
|
|||
|
|
|||
|
move @skip_select,a0
|
|||
|
jrp #skp
|
|||
|
|
|||
|
.ref NUM_OPPS
|
|||
|
movk 1,a0
|
|||
|
move a0,@NUM_OPPS
|
|||
|
|
|||
|
#skp
|
|||
|
; RETP
|
|||
|
|
|||
|
clr a0
|
|||
|
calla get_but_val_cur
|
|||
|
btst PLAYER_BLOCK_BIT,a0
|
|||
|
jrz #no_block1
|
|||
|
movk 1,a14
|
|||
|
move a14,@stay_down
|
|||
|
andni PLAYER_BLOCK_VAL,a0
|
|||
|
#no_block1
|
|||
|
X16 a0
|
|||
|
addi #select_table,a0
|
|||
|
move *a0,a14
|
|||
|
move a14,@index1
|
|||
|
|
|||
|
movi 1,a0
|
|||
|
calla get_but_val_cur
|
|||
|
btst PLAYER_BLOCK_BIT,a0
|
|||
|
jrz #no_block2
|
|||
|
movk 1,a14
|
|||
|
move a14,@stay_down
|
|||
|
andni PLAYER_BLOCK_VAL,a0
|
|||
|
#no_block2
|
|||
|
X16 a0
|
|||
|
addi #select_table,a0
|
|||
|
move *a0,a14
|
|||
|
move a14,@index2
|
|||
|
RETP
|
|||
|
|
|||
|
;lookup table
|
|||
|
#df equ 8 ;LEX
|
|||
|
#select_table
|
|||
|
.word #df
|
|||
|
.word 3 ;1 punch - YOKO
|
|||
|
.word #df,#df
|
|||
|
.word 0 ;4 spunch - BRET
|
|||
|
.word 8 ;5 punch + spunch - LEX
|
|||
|
.word #df,#df
|
|||
|
.word 1 ;8 kick - RAZOR
|
|||
|
.word 6 ;9 punch + kick - DOINK
|
|||
|
.word #df,#df,#df
|
|||
|
.word #df,#df,#df
|
|||
|
.word 4 ;16 skick - SHAWN
|
|||
|
.word #df,#df,#df
|
|||
|
.word 5 ;20 spunch + skick - BAM BAM
|
|||
|
.word #df,#df,#df
|
|||
|
.word 2 ;24 kick + skick - TAKER
|
|||
|
.word #df,#df,#df
|
|||
|
.word #df,#df,#df,#df
|
|||
|
|
|||
|
BSSX skip_select, 16
|
|||
|
|
|||
|
#noskp
|
|||
|
.endif
|
|||
|
|
|||
|
MOVK 5,A11
|
|||
|
MOVI 32,A8
|
|||
|
CREATE FADE_PID,FADE_MASTER_VOL
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,@blow_out
|
|||
|
|
|||
|
movk 1,a0 ;page flipping on
|
|||
|
move a0,@dpageflip
|
|||
|
|
|||
|
movi #plyrsel_mod,a0
|
|||
|
move a0,@BAKMODS,L
|
|||
|
calla BGND_UD1 ;create objects for background
|
|||
|
|
|||
|
;play wrestlemania tune
|
|||
|
.if MUSIC_ON
|
|||
|
MOVE @match_cnt,A0
|
|||
|
JRNZ NO_NEW_TUNE
|
|||
|
CREATE0 wmania_tune
|
|||
|
NO_NEW_TUNE
|
|||
|
.endif
|
|||
|
|
|||
|
CREATE CROUTON_PID,display_croutons
|
|||
|
calla start_credbox
|
|||
|
|
|||
|
;Initialize flags
|
|||
|
move @PSTATUS,a14
|
|||
|
move a14,@active_flag
|
|||
|
|
|||
|
clr a14
|
|||
|
move a14,@time_out
|
|||
|
|
|||
|
;create the player cursors
|
|||
|
clr a10
|
|||
|
move @rr_loss,a14
|
|||
|
jrz #not_rr
|
|||
|
move a10,@cursor_procs
|
|||
|
#not_rr
|
|||
|
CREATE PCURSOR_PID,player_cursor
|
|||
|
|
|||
|
move a0,@kp_p1cursor,L
|
|||
|
CREATE0 blink_rndper
|
|||
|
|
|||
|
movk 1,a10
|
|||
|
CREATE PCURSOR_PID,player_cursor
|
|||
|
|
|||
|
;wait for them to finish up
|
|||
|
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
movk 1,a0
|
|||
|
move a0,@DISPLAYON
|
|||
|
calla display_unblank
|
|||
|
|
|||
|
waitloop
|
|||
|
SLEEPK 1
|
|||
|
move @are_we_waiting_f,a14
|
|||
|
jrle no_we_are_not
|
|||
|
; jrz no_we_are_not
|
|||
|
; jrn no_we_are_not
|
|||
|
dec a14
|
|||
|
move a14,@are_we_waiting_f
|
|||
|
no_we_are_not
|
|||
|
|
|||
|
move @active_flag,a14
|
|||
|
jrnz waitloop
|
|||
|
|
|||
|
move @OLD_PSTATUS,a14
|
|||
|
jrnz waitloop
|
|||
|
|
|||
|
|
|||
|
;Players have chosen their guys. wait a sec, then bail
|
|||
|
movi 30,a8
|
|||
|
#final_waitloop
|
|||
|
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
move @active_flag,a14 ;don't quit if someone jumps in here
|
|||
|
jrnz waitloop
|
|||
|
|
|||
|
move @blow_out,a0
|
|||
|
jrnz #out
|
|||
|
|
|||
|
dsj a8,#final_waitloop
|
|||
|
|
|||
|
#out
|
|||
|
RETP
|
|||
|
|
|||
|
|
|||
|
SUBRP display_croutons
|
|||
|
|
|||
|
;Why is this a process?
|
|||
|
|
|||
|
;Draw the croutons and their associated pix
|
|||
|
|
|||
|
move @PSTATUS,a0
|
|||
|
; jrnz #gocrut
|
|||
|
; SLEEPK 1
|
|||
|
; jruc display_croutons
|
|||
|
;#gocrut
|
|||
|
|
|||
|
movi crouton_pos_table,a9
|
|||
|
movi #crouton_pic_table,a10
|
|||
|
move *a9+,a0
|
|||
|
#crouton_loop
|
|||
|
move *a9+,a1
|
|||
|
|
|||
|
sll 16,a0
|
|||
|
sll 16,a1
|
|||
|
move *a10+,a2,L
|
|||
|
movi #crutpic_z,a3
|
|||
|
movi DMAWNZ,a4
|
|||
|
movi CLSNEUT,a5
|
|||
|
clr a6
|
|||
|
clr a7
|
|||
|
|
|||
|
calla BEGINOBJW
|
|||
|
|
|||
|
move *a9+,a0
|
|||
|
jrnz #crouton_loop
|
|||
|
|
|||
|
; CREATE0 select_clock
|
|||
|
; move a0,a10
|
|||
|
; CREATE0 clock_digits
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
|
|||
|
#plyrsel_mod
|
|||
|
.long wwfselbkBMOD
|
|||
|
.word -40,0
|
|||
|
.long choiceBMOD
|
|||
|
.word 3,256
|
|||
|
.long 0
|
|||
|
|
|||
|
#crutplt_z equ 1
|
|||
|
hiplate_z equ 2 ;oscillates from 2 to 3
|
|||
|
#crutpic_z equ 4
|
|||
|
hilite_z equ 5
|
|||
|
|
|||
|
#baseshad_z equ 1
|
|||
|
#hishad_z equ 2
|
|||
|
#attplt_z equ 3
|
|||
|
#sidebar_z equ 3
|
|||
|
#nameshad_z equ 5
|
|||
|
#namebar_z equ 7
|
|||
|
atttxt_z equ 8
|
|||
|
|
|||
|
name_z equ 9
|
|||
|
|
|||
|
mugshot_z equ 1
|
|||
|
|
|||
|
#crouton_pic_table
|
|||
|
.long CRUT_DK
|
|||
|
.long CRUT_RR
|
|||
|
.long CRUT_UN
|
|||
|
.long CRUT_YK
|
|||
|
.long CRUT_SM
|
|||
|
.long CRUT_BM
|
|||
|
.long CRUT_BH
|
|||
|
.long CRUT_LX
|
|||
|
|
|||
|
crouton_pos_table
|
|||
|
.word 164,45
|
|||
|
.word 204,45
|
|||
|
|
|||
|
.word 164,90
|
|||
|
.word 204,90
|
|||
|
|
|||
|
.word 164,135
|
|||
|
.word 204,135
|
|||
|
|
|||
|
.word 164,180
|
|||
|
.word 204,180
|
|||
|
|
|||
|
.word 0
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
* Process that handles player selection for one player.
|
|||
|
* >a10 = player (0 or 1)
|
|||
|
|
|||
|
STRUCTPD
|
|||
|
LONG #HILITE ;UHL *hilite ring
|
|||
|
|
|||
|
LONG #HIPLATE ;UHL *color crouton
|
|||
|
|
|||
|
LONG #NAME ;UHL *name obj (message *obj)
|
|||
|
WORD #RND_DEST ;UHW target if in random mode
|
|||
|
|
|||
|
LONG #MUG1
|
|||
|
LONG #MUG2
|
|||
|
LONG #MUG3
|
|||
|
LONG #MUG4
|
|||
|
LONG #MUG5
|
|||
|
LONG #MUG6
|
|||
|
LONG #MUG7
|
|||
|
LONG #MUG8
|
|||
|
|
|||
|
LONG #ATT1
|
|||
|
LONG #ATT2
|
|||
|
LONG #ATT3
|
|||
|
LONG #ATT4
|
|||
|
WORD #CNTR ;Flashing cursor delay
|
|||
|
|
|||
|
|
|||
|
;player info struct
|
|||
|
#PI_HILITE equ 0 ;UHL hilite box TBL_ hdr
|
|||
|
#PI_HIPLATE equ 20h ;UHL hilite plate TBL_ hdr
|
|||
|
#PI_STARTPOS equ 40h ;UHW starting pos (index)
|
|||
|
#PI_MUGPOS equ 50h ;UHL mugshot [y,x]
|
|||
|
#PI_MUGXPOS equ 50h ;UHW mugshot x
|
|||
|
#PI_MUGYPOS equ 60h ;UHW mugshot y
|
|||
|
#PI_MUGCTRL equ 70h ;UHW mugshot OCTRL
|
|||
|
#PI_STARTNAME equ 80h ;UHL starting name TBL_ hdr
|
|||
|
#PI_ATTTXT equ 0A0h ;UHL atttribute text TBL_ hdr
|
|||
|
#PI_INDEX equ 0C0h ;UHL write selection word here
|
|||
|
#PI_MOVESOUND equ 0E0h ;UHW cursor move triple_sound
|
|||
|
#PI_SELSOUND equ 0F0h ;UHW select sound
|
|||
|
|
|||
|
#rnd_movespeed equ 5 ;ticks between rndsel moves
|
|||
|
|
|||
|
#rnd_wander equ 14 ;rnd moves before home-in begins
|
|||
|
|
|||
|
SUBRP player_cursor
|
|||
|
|
|||
|
;reg use
|
|||
|
; a6 = ticks until another move is allowed (debounce)
|
|||
|
; a6 = ticks until next move (random mode)
|
|||
|
; a7 = moves until home-in (random mode)
|
|||
|
; a9 = player info struct pointer
|
|||
|
; a10 = player number
|
|||
|
; a11 = position index (0-9)
|
|||
|
|
|||
|
;aim a9 at #p?info
|
|||
|
move a10,a9
|
|||
|
X32 a9
|
|||
|
addi #info,a9
|
|||
|
move *a9,a9,L
|
|||
|
|
|||
|
;initialize the index word to -1
|
|||
|
movi -1,a14
|
|||
|
move *a9(#PI_INDEX),a0,L
|
|||
|
move a14,*a0,W
|
|||
|
|
|||
|
;initialize random dest to -1
|
|||
|
movi -1,a14
|
|||
|
move a14,*a13(#RND_DEST)
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a13(#NAME),L
|
|||
|
movk 30,a0
|
|||
|
move a0,*a13(#CNTR)
|
|||
|
;active?
|
|||
|
move @PSTATUS,a14
|
|||
|
btst a10,a14
|
|||
|
jrnz #begin_select
|
|||
|
|
|||
|
move @OLD_PSTATUS,a14
|
|||
|
btst a10,a14
|
|||
|
jrz #norm
|
|||
|
|
|||
|
;This guy lost his last match:
|
|||
|
;did this guy get a high win streak ?
|
|||
|
move a10,a8
|
|||
|
mmtm sp,a6,a7,a8,a9,a10,a11
|
|||
|
JSRP winstreak_check
|
|||
|
mmfm sp,a6,a7,a8,a9,a10,a11
|
|||
|
; .ref wrestler_number
|
|||
|
; .ref process_ptrs
|
|||
|
;
|
|||
|
; PUSH a9
|
|||
|
; movi process_ptrs,a9
|
|||
|
;#find_loop
|
|||
|
; move *a9(PLYRNUM),a0
|
|||
|
; cmp a10,a0
|
|||
|
; jrz #found
|
|||
|
; addi 32,a9
|
|||
|
; jruc #find_loop
|
|||
|
;#found
|
|||
|
; move *a9(WRESTLERNUM),a0,W
|
|||
|
; move a0,@wrestler_number,L
|
|||
|
; PULL a9
|
|||
|
|
|||
|
;wait for the enter initials stuff to end
|
|||
|
are_we_waiting
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ FINISHED_INPUTTING
|
|||
|
SLEEPK 1
|
|||
|
movi CYCPID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
jrnz are_we_waiting
|
|||
|
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ FINISHED_INPUTTING
|
|||
|
mmtm sp,a10,a9,a8
|
|||
|
calla do_that_cycle
|
|||
|
mmfm sp,a10,a9,a8
|
|||
|
jruc are_we_waiting
|
|||
|
|
|||
|
FINISHED_INPUTTING
|
|||
|
move @auto_init,a14
|
|||
|
jrz #no_ai
|
|||
|
movi auto_str,a2
|
|||
|
calla print_message
|
|||
|
clr a14
|
|||
|
move a14,@auto_init
|
|||
|
#no_ai
|
|||
|
|
|||
|
calla show_bonus_icons
|
|||
|
|
|||
|
;create the name text
|
|||
|
move *a9(#PI_STARTNAME),a0,L
|
|||
|
calla BEGINOBJ_TBL
|
|||
|
move a8,*a13(#NAME),L
|
|||
|
|
|||
|
;Display please continue message
|
|||
|
;Display price to continue
|
|||
|
;Turn on continue timer at bottom of screen (Attribute area)
|
|||
|
|
|||
|
;Wait for him to make a decision
|
|||
|
;If he continues, turn on cursor, etc.
|
|||
|
;If he does not continue, start the other players time out for
|
|||
|
;player selection (If other plyr is present)
|
|||
|
|
|||
|
CREATE0 buyin_counter
|
|||
|
callr buyin_text
|
|||
|
|
|||
|
;Inactive. wait for buyin
|
|||
|
;Display the insert coin/press start message
|
|||
|
|
|||
|
#enough_money1
|
|||
|
calla CR_CONTP
|
|||
|
jrhs #enough_money2
|
|||
|
;There's not enough money. flash 'insert coins' message and wait
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
movi WF_INSERT,a0
|
|||
|
calla civanic
|
|||
|
jruc #start_waitloop1
|
|||
|
#enough_money2
|
|||
|
;There's enough money. flash 'press start' message and wait
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
movi WF_START,a0
|
|||
|
calla civanic
|
|||
|
|
|||
|
#start_waitloop1
|
|||
|
move @OLD_PSTATUS,a14
|
|||
|
btst a10,a14
|
|||
|
jrnz #okz
|
|||
|
|
|||
|
move @PSTATUS,a14
|
|||
|
btst a10,a14
|
|||
|
jrnz #okz
|
|||
|
;Timer has run out on this player
|
|||
|
move a10,a8
|
|||
|
calla clear_icon_total
|
|||
|
calla del_bonus_icons
|
|||
|
move @PSTATUS,a0
|
|||
|
jrnz #still
|
|||
|
move @rr_loss,a0
|
|||
|
jrz do_game_over
|
|||
|
move @cursor_procs,a0
|
|||
|
jrz do_game_over
|
|||
|
move a10,a0
|
|||
|
addk 1,a0
|
|||
|
move @active_flag,a14
|
|||
|
or a0,a14
|
|||
|
move a14,@active_flag
|
|||
|
jruc #still
|
|||
|
; jruc do_game_over
|
|||
|
|
|||
|
;Goto game over.
|
|||
|
SUBR THIS_GAME_IS_BEATEN
|
|||
|
CLR A0
|
|||
|
MOVE A0,@PSTATUS
|
|||
|
|
|||
|
movi INGAMEOVER,a14 ;set GAMSTATE
|
|||
|
move a14,@GAMSTATE
|
|||
|
movi GAMEOVER_PID,a14 ;set our PID
|
|||
|
move a14,*a13(PROCID)
|
|||
|
|
|||
|
; ;put up the sneak preview screen
|
|||
|
; calla display_blank
|
|||
|
; calla WIPEOUT
|
|||
|
; movk 1,a0 ;page flipping on
|
|||
|
; move a0,@dpageflip
|
|||
|
; movi hstd_mod,a0
|
|||
|
; move a0,@BAKMODS,L
|
|||
|
; CALLA BGND_UD1 ;create objects for background
|
|||
|
;
|
|||
|
; movi #win1_msg,a2
|
|||
|
; calla print_message
|
|||
|
;
|
|||
|
; movi #win2_msg,a2
|
|||
|
; calla print_message
|
|||
|
;
|
|||
|
; movi #win3_msg,a2
|
|||
|
; calla print_message
|
|||
|
;
|
|||
|
; calla display_unblank
|
|||
|
;
|
|||
|
; SLEEP TSEC*10
|
|||
|
|
|||
|
SUBR do_game_over
|
|||
|
|
|||
|
;kill the ladder
|
|||
|
calla INIT_LADDER_TABLE
|
|||
|
|
|||
|
clr a14
|
|||
|
move a14,@rr_loss
|
|||
|
move a14,@PSTATUS
|
|||
|
|
|||
|
movi INGAMEOVER,a14 ;set GAMSTATE
|
|||
|
move a14,@GAMSTATE
|
|||
|
|
|||
|
movi GAMEOVER_PID,a14 ;set our PID
|
|||
|
move a14,*a13(PROCID)
|
|||
|
|
|||
|
calla display_blank
|
|||
|
calla WIPEOUT
|
|||
|
|
|||
|
.ref wsf14_ascii,GENERIC_DISPLAY
|
|||
|
|
|||
|
JSRP GENERIC_DISPLAY
|
|||
|
|
|||
|
movi LN1b_setup,a2
|
|||
|
calla setup_message
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES1,a0
|
|||
|
move a0,@mess_objid ;OBJ ID's for text
|
|||
|
movi #str_game,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi LN2b_setup,a2
|
|||
|
calla setup_message
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES1,a0
|
|||
|
move a0,@mess_objid ;OBJ ID's for text
|
|||
|
movi #str_over,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
; .ref show_wrestler_end_story
|
|||
|
|
|||
|
; movi 0,a1
|
|||
|
; clr a0
|
|||
|
; calla show_wrestler_end_story
|
|||
|
; SLEEP TSEC*5
|
|||
|
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
MOVI -1,A11
|
|||
|
MOVI 100,A8
|
|||
|
CREATE FADE_PID,FADE_MASTER_VOL
|
|||
|
|
|||
|
calla display_unblank
|
|||
|
SLEEP TSEC*4
|
|||
|
calla UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
|
|||
|
|
|||
|
movi AMODE_PID,a0
|
|||
|
move a0,*a13(PROCID)
|
|||
|
|
|||
|
CLR A3
|
|||
|
CALLA SNDSND
|
|||
|
|
|||
|
movi ADJVOLUME,a0
|
|||
|
calla GET_ADJ
|
|||
|
BADCHK a0,0,255,28 ;reg, lo, hi, val if bad
|
|||
|
calla set_volume
|
|||
|
|
|||
|
clr a8
|
|||
|
calla clear_icon_total
|
|||
|
movk 1,a8
|
|||
|
calla clear_icon_total
|
|||
|
|
|||
|
jauc attract_mode
|
|||
|
|
|||
|
LN1b_setup
|
|||
|
JAM_STR wgsf24_ascii,6,0,200,128-41,WGSF_Y_P,0
|
|||
|
LN2b_setup
|
|||
|
JAM_STR wgsf24_ascii,6,0,200,128,WGSF_Y_P,0
|
|||
|
#str_game
|
|||
|
.byte "GAME",0
|
|||
|
#str_over
|
|||
|
.byte "OVER",0
|
|||
|
.even
|
|||
|
|
|||
|
;#win1_msg
|
|||
|
; JAM_STR osgemd_ascii,10,0,200,50,GOLD,print_string_C2
|
|||
|
; .byte "THANK YOU FOR PLAYING",0,0
|
|||
|
; .even
|
|||
|
;
|
|||
|
;#win2_msg
|
|||
|
; JAM_STR osgemd_ascii,10,0,200,90,GOLD,print_string_C2
|
|||
|
; .byte "THIS SNEAK PREVIEW",0,0
|
|||
|
; .even
|
|||
|
;
|
|||
|
;#win3_msg
|
|||
|
; JAM_STR osgemd_ascii,10,0,200,130,GOLD,print_string_C2
|
|||
|
; .byte "OF WRESTLEMANIA BY MIDWAY",0,0
|
|||
|
; .even
|
|||
|
|
|||
|
#still
|
|||
|
;Other player is in game
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
calla obj_del1c
|
|||
|
;If other player has already picked his wrestler, just blow out of here
|
|||
|
;otherwise, goto challenger needed screen stuff...
|
|||
|
move @active_flag,a14 ;don't quit if someone jumps in here
|
|||
|
jrnz #norm
|
|||
|
;Tell buyin_select proc to wake up and exit!
|
|||
|
movk 1,a0
|
|||
|
move a0,@blow_out
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
#okz
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
callr #blink
|
|||
|
|
|||
|
move @PSTATUS,a14
|
|||
|
btst a10,a14
|
|||
|
jrz #enough_money1
|
|||
|
|
|||
|
; jrz #start_waitloop1
|
|||
|
|
|||
|
move *a8(OXPOS),a0
|
|||
|
andi 1ffh,a0
|
|||
|
move a0,*a8(OXPOS)
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
calla obj_del1c
|
|||
|
|
|||
|
SLEEPK 1 ;Fix pal glitch!
|
|||
|
|
|||
|
jruc #begin_select
|
|||
|
|
|||
|
#norm
|
|||
|
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
jrnz no_need_to_create_name
|
|||
|
|
|||
|
;create the name text
|
|||
|
move *a9(#PI_STARTNAME),a0,L
|
|||
|
calla BEGINOBJ_TBL
|
|||
|
move a8,*a13(#NAME),L
|
|||
|
no_need_to_create_name
|
|||
|
|
|||
|
;Place a message which reads:
|
|||
|
;Challenger needed!
|
|||
|
;x credits to start
|
|||
|
;Unless we are in freeplay! Then
|
|||
|
;just display challenger needed centered
|
|||
|
;in the box!
|
|||
|
|
|||
|
movk ADJFREPL,a0 ;Are we in free play?
|
|||
|
calla GET_ADJ
|
|||
|
jrz #not_freeply
|
|||
|
|
|||
|
;Print free play
|
|||
|
movi #ln0_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok2c
|
|||
|
movi #ln0_setupb,a2
|
|||
|
#ok2c calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text0,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;Print centered "challenger needed" message
|
|||
|
movi #ln1_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok
|
|||
|
movi #ln1_setupb,a2
|
|||
|
#ok calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi #ln2_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok4
|
|||
|
movi #ln2_setupb,a2
|
|||
|
jruc #ok4
|
|||
|
|
|||
|
#not_freeply
|
|||
|
;Print how many credits to start
|
|||
|
PUSH a8
|
|||
|
movk ADJCSTRT,a0
|
|||
|
calla GET_ADJ ;GET NUMBER NEEDED
|
|||
|
move a0,a3
|
|||
|
cmpi 10,a0
|
|||
|
jrlt #max
|
|||
|
movk 9,a0
|
|||
|
#max
|
|||
|
sll 5,a0
|
|||
|
addi digits_tbl,a0
|
|||
|
move *a0,a2,L ;* image
|
|||
|
|
|||
|
movi [050,0],a0 ;x pos
|
|||
|
cmpi 1,a3
|
|||
|
jrnz #not1
|
|||
|
movi [054,0],a0 ;x pos
|
|||
|
#not1 move a10,a10
|
|||
|
jrz #zp1
|
|||
|
movi [0122h,0],a0 ;x pos
|
|||
|
cmpi 1,a3
|
|||
|
jrnz #zp1
|
|||
|
movi [0126h,0],a0 ;x pos
|
|||
|
#zp1
|
|||
|
movi [110,0],a1 ;y pos
|
|||
|
movi 104+200,a3 ;z pos
|
|||
|
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a5
|
|||
|
add a10,a5 ;object ID
|
|||
|
clr a6 ;x vel
|
|||
|
clr a7 ;y vel
|
|||
|
movi FNT9YEL_P,b0
|
|||
|
calla BEGINOBJP
|
|||
|
PULL a8
|
|||
|
|
|||
|
movi #ln3_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok2
|
|||
|
movi #ln3_setupb,a2
|
|||
|
#ok2 calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text3,a4
|
|||
|
movk ADJCSTRT,a0
|
|||
|
calla GET_ADJ ;GET NUMBER NEEDED
|
|||
|
cmpi 1,a0
|
|||
|
jrnz #not1b
|
|||
|
movi #str_text3b,a4
|
|||
|
#not1b
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi #ln4_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok2B
|
|||
|
movi #ln4_setupb,a2
|
|||
|
#ok2B calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text4,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
|
|||
|
;Print "challenger needed" message
|
|||
|
movi #ln1_setupx,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok3
|
|||
|
movi #ln1_setupxb,a2
|
|||
|
#ok3 calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi #ln2_setupx,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok4
|
|||
|
movi #ln2_setupxb,a2
|
|||
|
#ok4 calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text2,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
;Inactive. wait for buyin
|
|||
|
;Create the insert coin/press start message
|
|||
|
|
|||
|
#enough_money
|
|||
|
calla CR_STRTP
|
|||
|
jrhs #enough_money3
|
|||
|
;There's not enough money. flash 'insert coins' message and wait
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
movi WF_INSERT,a0
|
|||
|
calla civanic
|
|||
|
jruc #start_waitloop
|
|||
|
#enough_money3
|
|||
|
;There's enough money. flash 'press start' message and wait
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
movi WF_START,a0
|
|||
|
calla civanic
|
|||
|
|
|||
|
|
|||
|
#start_waitloop
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
callr #blink
|
|||
|
|
|||
|
move @PSTATUS,a14
|
|||
|
btst a10,a14
|
|||
|
jrz #enough_money
|
|||
|
|
|||
|
; jrz #start_waitloop
|
|||
|
|
|||
|
move *a8(OXPOS),a0
|
|||
|
andi 1ffh,a0
|
|||
|
move a0,*a8(OXPOS)
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
calla obj_del1c
|
|||
|
|
|||
|
SLEEPK 1 ;Fix pal glitch!
|
|||
|
|
|||
|
jruc #begin_select
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#ln0_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,120,FNT9YEL_P,0
|
|||
|
#ln0_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,120,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln1_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,80,FNT9YEL_P,0
|
|||
|
#ln1_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,80,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln2_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,95,FNT9YEL_P,0
|
|||
|
#ln2_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,95,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln1_setupx
|
|||
|
JAM_STR font9_ascii,8,0,81,60,FNT9YEL_P,0
|
|||
|
#ln1_setupxb
|
|||
|
JAM_STR font9_ascii,8,0,321,60,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln2_setupx
|
|||
|
JAM_STR font9_ascii,8,0,81,75,FNT9YEL_P,0
|
|||
|
#ln2_setupxb
|
|||
|
JAM_STR font9_ascii,8,0,321,75,FNT9YEL_P,0
|
|||
|
|
|||
|
|
|||
|
#ln3_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,110,FNT9YEL_P,0
|
|||
|
#ln3_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,110,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln4_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,125,FNT9YEL_P,0
|
|||
|
#ln4_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,125,FNT9YEL_P,0
|
|||
|
|
|||
|
#str_text
|
|||
|
.string "CHALLENGER",0
|
|||
|
#str_text0
|
|||
|
.string "FREE PLAY",0
|
|||
|
#str_text2
|
|||
|
.string "NEEDED!",0
|
|||
|
#str_text3
|
|||
|
.string " CREDITS",0
|
|||
|
#str_text3b
|
|||
|
.string " CREDIT",0
|
|||
|
#str_text4
|
|||
|
.string "TO START",0
|
|||
|
.even
|
|||
|
|
|||
|
#begin_select
|
|||
|
MOVE @no_pin_check,A0
|
|||
|
JRNZ are_we_waiting2
|
|||
|
calla is_final_match
|
|||
|
jrc are_we_waiting2
|
|||
|
|
|||
|
move a10,a8
|
|||
|
mmtm sp,a6,a7,a8,a9,a10,a11
|
|||
|
JSRP pin_speed_check
|
|||
|
mmfm sp,a6,a7,a8,a9,a10,a11
|
|||
|
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
jrz no_set_it_later
|
|||
|
move a10,a0
|
|||
|
inc a0
|
|||
|
neg a0
|
|||
|
move a0,@are_we_waiting_f
|
|||
|
no_set_it_later
|
|||
|
|
|||
|
; move @PSTATUS,A0
|
|||
|
; CMPI 3,A0
|
|||
|
; JREQ are_we_waiting2
|
|||
|
;
|
|||
|
; movi 60,a0
|
|||
|
; move a0,@are_we_waiting_f
|
|||
|
|
|||
|
are_we_waiting2
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ FINISHED_INPUTTING2b
|
|||
|
sleep 1
|
|||
|
movi CYCPID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
jrnz are_we_waiting2
|
|||
|
move a10,a0
|
|||
|
addi HI_INPUT_PID,a0
|
|||
|
movi -1,a1
|
|||
|
calla EXISTP
|
|||
|
JRZ FINISHED_INPUTTING2b
|
|||
|
mmtm sp,a10,a9,a8
|
|||
|
calla do_that_cycle
|
|||
|
mmfm sp,a10,a9,a8
|
|||
|
jruc are_we_waiting2
|
|||
|
|
|||
|
FINISHED_INPUTTING2b
|
|||
|
move @are_we_waiting_f,a0
|
|||
|
move a10,a1
|
|||
|
inc a1
|
|||
|
neg a1
|
|||
|
cmp a1,a0
|
|||
|
jrne FINISHED_INPUTTING2
|
|||
|
movi 60,a0
|
|||
|
move a0,@are_we_waiting_f
|
|||
|
|
|||
|
FINISHED_INPUTTING2
|
|||
|
|
|||
|
MOVI CLOCK_PID,A0
|
|||
|
movi -1,a1
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ CLOCK_ALREADY_TICKING
|
|||
|
|
|||
|
PUSH A10
|
|||
|
CREATE CLOCK_PID,select_clock
|
|||
|
move a0,a10
|
|||
|
CREATE0 clock_digits
|
|||
|
PULL A10
|
|||
|
|
|||
|
CLOCK_ALREADY_TICKING
|
|||
|
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
jrnz no_need_to_create
|
|||
|
|
|||
|
;create the name text
|
|||
|
move *a9(#PI_STARTNAME),a0,L
|
|||
|
calla BEGINOBJ_TBL
|
|||
|
move a8,*a13(#NAME),L
|
|||
|
no_need_to_create
|
|||
|
|
|||
|
move @total_matches,a14
|
|||
|
jrnz HOWARD_ALREADY_GOING
|
|||
|
move @DONE_HOWARD,a14
|
|||
|
jrnz HOWARD_HAS_SPOKEN
|
|||
|
|
|||
|
GOOD_EVENING
|
|||
|
movi 1Fbh,a0
|
|||
|
CALLA ADD_VOICE
|
|||
|
movi 1Fch,a0
|
|||
|
CALLA ADD_VOICE
|
|||
|
movi 1Fdh,a0
|
|||
|
CALLA ADD_VOICE
|
|||
|
|
|||
|
movk 1,a0
|
|||
|
move a0,@DONE_HOWARD
|
|||
|
JRUC HOWARD_HAS_SPOKEN
|
|||
|
|
|||
|
HOWARD_ALREADY_GOING
|
|||
|
move @DONE_HOWARD,a14
|
|||
|
jrnz HOWARD_HAS_SPOKEN
|
|||
|
MOVI 100,A0
|
|||
|
CALLA RNDPER
|
|||
|
jrls HOWARD_HAS_SPOKEN
|
|||
|
|
|||
|
SUBI 50,A0
|
|||
|
JRN GOOD_EVENING
|
|||
|
movi 1Ffh,a0
|
|||
|
CALLA ADD_VOICE
|
|||
|
|
|||
|
movk 1,a0
|
|||
|
move a0,@DONE_HOWARD
|
|||
|
HOWARD_HAS_SPOKEN
|
|||
|
|
|||
|
;set our active bit if it's not already set
|
|||
|
move @active_flag,a14
|
|||
|
move a10,a0
|
|||
|
inc a0
|
|||
|
or a0,a14
|
|||
|
move a14,@active_flag
|
|||
|
|
|||
|
;initialize index
|
|||
|
move *a9(#PI_STARTPOS),a11
|
|||
|
|
|||
|
;initialize #MUG?
|
|||
|
movk 8,a0
|
|||
|
clr a1
|
|||
|
move a13,a2
|
|||
|
addi #MUG1,a2
|
|||
|
#initloop
|
|||
|
move a1,*a2+,L
|
|||
|
dsj a0,#initloop
|
|||
|
|
|||
|
; ;create our attrib text
|
|||
|
; move *a9(#PI_ATTTXT),a0,L
|
|||
|
; calla BEGINOBJ_TBL
|
|||
|
; move *a8(OXVAL),a0,L
|
|||
|
; move *a8(OYVAL),a1,L
|
|||
|
;
|
|||
|
; ;create the att bars
|
|||
|
; addi [63,0],a0
|
|||
|
; addi [12,0],a1
|
|||
|
; movi ATTMTR_0,a2
|
|||
|
; movi atttxt_z,a3
|
|||
|
; movi DMAWNZ,a4
|
|||
|
; movi CLSNEUT,a5
|
|||
|
; clr a6
|
|||
|
; clr a7
|
|||
|
;
|
|||
|
; PUSH a10,a11
|
|||
|
;
|
|||
|
; movi 4,a10 ;bar count
|
|||
|
; move a13,a11
|
|||
|
; addi #ATT1,a11
|
|||
|
;
|
|||
|
;#abc_loop
|
|||
|
; PUSH a0,a1,a2,a3,a4,a5,a6,a7
|
|||
|
; calla BEGINOBJ
|
|||
|
; PULL a0,a1,a2,a3,a4,a5,a6,a7
|
|||
|
; move a8,*a11+,L
|
|||
|
; addi [8,0],a1
|
|||
|
; dsj a10,#abc_loop
|
|||
|
; PULL a10,a11
|
|||
|
|
|||
|
;create our cursors
|
|||
|
move *a9(#PI_HILITE),a0,L
|
|||
|
calla BEGINOBJ_TBL
|
|||
|
move a8,*a13(#HILITE),L
|
|||
|
|
|||
|
move *a9(#PI_HIPLATE),a0,L
|
|||
|
calla BEGINOBJ_TBL
|
|||
|
move a8,*a13(#HIPLATE),L
|
|||
|
|
|||
|
jruc #first_adjust
|
|||
|
|
|||
|
#blink
|
|||
|
move *a13(#CNTR),a0
|
|||
|
dec a0
|
|||
|
move a0,*a13(#CNTR)
|
|||
|
jrp #cont
|
|||
|
movk 22,a0
|
|||
|
move a0,*a13(#CNTR)
|
|||
|
move *a8(OXPOS),a0
|
|||
|
xori 1000h,a0
|
|||
|
move a0,*a8(OXPOS)
|
|||
|
#cont
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
.if 0
|
|||
|
|
|||
|
;Color cycle cursors...
|
|||
|
;Good example for future cycles....
|
|||
|
|
|||
|
PUSH a8,a9,a10,a11
|
|||
|
|
|||
|
move a10,a10
|
|||
|
jrz #blue
|
|||
|
|
|||
|
movi [1,1],a8
|
|||
|
movi CRHI_R_P,a9
|
|||
|
movi redcyc_tbl,a10
|
|||
|
movk 4,a11
|
|||
|
CREATE CYCPID,CYCLE_TABLE
|
|||
|
jruc #out
|
|||
|
|
|||
|
#blue
|
|||
|
movi [1,1],a8
|
|||
|
movi CRHI_B_P,a9
|
|||
|
movi blucyc_tbl,a10
|
|||
|
movk 4,a11
|
|||
|
CREATE CYCPID,CYCLE_TABLE
|
|||
|
|
|||
|
#out PULL a8,a9,a10,a11
|
|||
|
|
|||
|
jruc #first_adjust
|
|||
|
|
|||
|
|
|||
|
blucyc_tbl
|
|||
|
.word 0041fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0081fh,00c1fh,0101fh,0141fh,0181fh
|
|||
|
.word 01c1fh,0201fh,0241fh,0281fh,02c1fh,0301fh,0341fh,0381fh
|
|||
|
.word 03c1fh,0401fh,0441fh,0481fh,04c1fh,0501fh,0541fh,0581fh
|
|||
|
.word 05c1fh,0601fh,0641fh,0681fh,06c1fh,0701fh
|
|||
|
.word 0741fh,0701fh,06c1fh,0681fh,0641fh,0601fh,05c1fh
|
|||
|
.word 0581fh,0541fh,0501fh,04c1fh,0481fh,0441fh,0401fh,03c1fh
|
|||
|
.word 0381fh,0341fh,0301fh,02c1fh,0281fh,0241fh,0201fh,01c1fh
|
|||
|
.word 0181fh,0141fh,0101fh,00c1fh,0081fh,0041fh
|
|||
|
|
|||
|
.word 0041fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0001fh
|
|||
|
.word 0081fh,00c1fh,0101fh,0141fh,0181fh
|
|||
|
.word 01c1fh,0201fh,0241fh,0281fh,02c1fh,0301fh,0341fh,0381fh
|
|||
|
.word 03c1fh,0401fh,0441fh,0481fh,04c1fh,0501fh,0541fh,0581fh
|
|||
|
.word 05c1fh,0601fh,0641fh,0681fh,06c1fh,0701fh
|
|||
|
.word 0741fh,0701fh,06c1fh,0681fh,0641fh,0601fh,05c1fh
|
|||
|
.word 0581fh,0541fh,0501fh,04c1fh,0481fh,0441fh,0401fh,03c1fh
|
|||
|
.word 0381fh,0341fh,0301fh,02c1fh,0281fh,0241fh,0201fh,01c1fh
|
|||
|
.word 0181fh,0141fh,0101fh,00c1fh,0081fh,0041fh
|
|||
|
.word -1
|
|||
|
|
|||
|
redcyc_tbl
|
|||
|
.word 07c20h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c40h,07c60h,07c80h,07ca0h,07cc0h
|
|||
|
.word 07ce0h,07d00h,07d20h,07d40h,07d60h,07d80h,07da0h,07dc0h
|
|||
|
.word 07de0h,07e00h,07e20h,07e40h,07e60h,07e80h,07ea0h
|
|||
|
.word 07ec0h,07ee0h,07f00h,07f20h,07f40h,07f60h,07f80h
|
|||
|
.word 07fa0h,07f80h,07f60h,07f40h,07f20h,07f00h,07ee0h,07ec0h
|
|||
|
.word 07ea0h,07e80h,07e60h,07e40h,07e20h,07e00h,07de0h
|
|||
|
.word 07dc0h,07da0h,07d80h,07d60h,07d40h,07d20h,07d00h,07ce0h
|
|||
|
.word 07cc0h,07ca0h,07c80h,07c60h,07c40h,07c20h
|
|||
|
|
|||
|
.word 07c20h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c00h
|
|||
|
.word 07c40h,07c60h,07c80h,07ca0h,07cc0h
|
|||
|
.word 07ce0h,07d00h,07d20h,07d40h,07d60h,07d80h,07da0h,07dc0h
|
|||
|
.word 07de0h,07e00h,07e20h,07e40h,07e60h,07e80h,07ea0h
|
|||
|
.word 07ec0h,07ee0h,07f00h,07f20h,07f40h,07f60h,07f80h
|
|||
|
.word 07fa0h,07f80h,07f60h,07f40h,07f20h,07f00h,07ee0h,07ec0h
|
|||
|
.word 07ea0h,07e80h,07e60h,07e40h,07e20h,07e00h,07de0h
|
|||
|
.word 07dc0h,07da0h,07d80h,07d60h,07d40h,07d20h,07d00h,07ce0h
|
|||
|
.word 07cc0h,07ca0h,07c80h,07c60h,07c40h,07c20h
|
|||
|
.word -1
|
|||
|
|
|||
|
.endif
|
|||
|
|
|||
|
|
|||
|
#adjust
|
|||
|
move *a9(#PI_MOVESOUND),a0
|
|||
|
|
|||
|
move *a13(#RND_DEST),a14
|
|||
|
jrn #move_sound_ok
|
|||
|
movi >DD,a0
|
|||
|
#move_sound_ok
|
|||
|
|
|||
|
calla triple_sound
|
|||
|
callr #erase_mugshot
|
|||
|
#first_adjust
|
|||
|
callr #place_cursor
|
|||
|
callr #draw_mugshot
|
|||
|
callr #update_name
|
|||
|
; callr #update_attbars
|
|||
|
|
|||
|
;set a6 to debounce value if not rndsel, or to move time if rndsel
|
|||
|
move *a13(#RND_DEST),a14
|
|||
|
jrnn #waitloop
|
|||
|
movk 3,a6
|
|||
|
|
|||
|
clr a0
|
|||
|
move a0,*a8(OCONST) ;Clr color
|
|||
|
move a0,*a13(#CNTR)
|
|||
|
|
|||
|
#waitloop
|
|||
|
|
|||
|
callr #place_cursor
|
|||
|
|
|||
|
;flash the hilightes
|
|||
|
move *a13(#HIPLATE),a8,L
|
|||
|
move *a8(OZPOS),a14
|
|||
|
xori 1,a14
|
|||
|
move a14,*a8(OZPOS)
|
|||
|
|
|||
|
move *a13(#HILITE),a8,L
|
|||
|
move *a8(OZPOS),a14
|
|||
|
xori 1,a14
|
|||
|
move a14,*a8(OZPOS)
|
|||
|
|
|||
|
PUSHP a6,a7
|
|||
|
SLEEPK 1
|
|||
|
PULLP a6,a7
|
|||
|
|
|||
|
;Flash cursors white
|
|||
|
|
|||
|
move *a13(#CNTR),a14
|
|||
|
dec a14
|
|||
|
move a14,*a13(#CNTR)
|
|||
|
jrp #normz
|
|||
|
movk 8,a14
|
|||
|
move a14,*a13(#CNTR)
|
|||
|
|
|||
|
PUSH a6,a7,a9
|
|||
|
movi 0202h,a9
|
|||
|
CREATE0 FLASHME
|
|||
|
.ref FLASHME
|
|||
|
PULL a6,a7,a9
|
|||
|
#normz
|
|||
|
|
|||
|
;are we in random mode?
|
|||
|
move *a13(#RND_DEST),a14
|
|||
|
jrn #not_rndsel
|
|||
|
|
|||
|
;we're in random select
|
|||
|
dsj a6,#waitloop
|
|||
|
|
|||
|
;time to move again
|
|||
|
movi #rnd_movespeed,a6 ;set time to next move
|
|||
|
dec a7
|
|||
|
jrp #move_at_random
|
|||
|
|
|||
|
;move toward final destination
|
|||
|
;if we're there, take it
|
|||
|
move *a13(#RND_DEST),a14
|
|||
|
cmp a14,a11
|
|||
|
jreq #but_hit
|
|||
|
|
|||
|
;not there. one time in three, move at random anyway
|
|||
|
movk 3,a0
|
|||
|
calla RNDRNG0
|
|||
|
TEST a0
|
|||
|
jrz #move_at_random
|
|||
|
|
|||
|
;if we're in the correct row, move sideways
|
|||
|
move *a13(#RND_DEST),a14
|
|||
|
xor a11,a14
|
|||
|
srl 1,a14
|
|||
|
jrz #rnd_move_sideways
|
|||
|
|
|||
|
;okay, move toward the correct row
|
|||
|
move *a13(#RND_DEST),a14
|
|||
|
cmp a11,a14
|
|||
|
jrlt #stick_up
|
|||
|
jruc #stick_down
|
|||
|
|
|||
|
#move_at_random
|
|||
|
;move in a random direction, but only in legal directions
|
|||
|
movk 2,a0
|
|||
|
calla RNDRNG0
|
|||
|
cmpi 2,a0
|
|||
|
jreq #rnd_move_up
|
|||
|
cmpi 1,a0
|
|||
|
jreq #rnd_move_down
|
|||
|
|
|||
|
;move sideways by toggling bit zero in the index
|
|||
|
#rnd_move_sideways
|
|||
|
xori 1,a11
|
|||
|
jruc #adjust
|
|||
|
|
|||
|
#rnd_move_up
|
|||
|
cmpi 2,a11
|
|||
|
jrge #stick_up
|
|||
|
|
|||
|
;moving up isn't legal. move sideways or down
|
|||
|
movi 1,a0
|
|||
|
calla RNDRNG0
|
|||
|
TEST a0
|
|||
|
jrz #rnd_move_sideways
|
|||
|
jruc #stick_down
|
|||
|
|
|||
|
#rnd_move_down
|
|||
|
cmpi 5,a11
|
|||
|
jrle #stick_down
|
|||
|
|
|||
|
;moving down isn't legal. move sideways or up
|
|||
|
movi 1,a0
|
|||
|
calla RNDRNG0
|
|||
|
TEST a0
|
|||
|
jrz #rnd_move_sideways
|
|||
|
jruc #stick_up
|
|||
|
|
|||
|
#not_rndsel
|
|||
|
;if time is out, pick whoever we're on.
|
|||
|
move @time_out,a14
|
|||
|
jrnz #but_hit
|
|||
|
|
|||
|
;begin random select?
|
|||
|
move a10,a0
|
|||
|
calla get_start_cur
|
|||
|
jrz #button_checks
|
|||
|
|
|||
|
;start is down. check stick
|
|||
|
move a10,a0
|
|||
|
calla get_stick_val_cur
|
|||
|
btst JOYUP,a0
|
|||
|
jrz #button_checks
|
|||
|
|
|||
|
;stick is up. check position
|
|||
|
move *a9(#PI_STARTPOS),a14
|
|||
|
cmp a11,a14
|
|||
|
jreq #begin_random_select
|
|||
|
|
|||
|
#button_checks
|
|||
|
move @are_we_waiting_f,a14
|
|||
|
jrn no_worry_about_it
|
|||
|
jrnz no_check_buts_yet
|
|||
|
no_worry_about_it
|
|||
|
|
|||
|
;button checks
|
|||
|
move a10,a0
|
|||
|
calla get_but_val_down
|
|||
|
TEST a0
|
|||
|
jrnz #but_hit
|
|||
|
no_check_buts_yet
|
|||
|
|
|||
|
dec a6
|
|||
|
jrp #waitloop
|
|||
|
clr a6
|
|||
|
|
|||
|
;stick checks
|
|||
|
move a10,a0
|
|||
|
calla get_stick_val_down
|
|||
|
btst JOYDN,a0
|
|||
|
jrnz #stick_down
|
|||
|
btst JOYUP,a0
|
|||
|
jrnz #stick_up
|
|||
|
btst JOYLFT,a0
|
|||
|
jrnz #stick_left
|
|||
|
btst JOYRGT,a0
|
|||
|
jrnz #stick_right
|
|||
|
jruc #waitloop
|
|||
|
|
|||
|
#stick_down
|
|||
|
;add 2 unless the index is 6 or 7
|
|||
|
cmpi 6,a11
|
|||
|
jrge #waitloop
|
|||
|
addi 2,a11
|
|||
|
jruc #adjust
|
|||
|
|
|||
|
#stick_up
|
|||
|
;sub 2 unless index is 0 or 1
|
|||
|
cmpi 2,a11
|
|||
|
jrlt #waitloop
|
|||
|
subi 2,a11
|
|||
|
jruc #adjust
|
|||
|
|
|||
|
#stick_left
|
|||
|
;sub 1 unless index is even
|
|||
|
btst 0,a11
|
|||
|
jrz #waitloop
|
|||
|
dec a11
|
|||
|
jruc #adjust
|
|||
|
|
|||
|
#stick_right
|
|||
|
;add 1 unless index is odd
|
|||
|
btst 0,a11
|
|||
|
jrnz #waitloop
|
|||
|
inc a11
|
|||
|
jruc #adjust
|
|||
|
|
|||
|
#begin_random_select
|
|||
|
|
|||
|
;Print text message
|
|||
|
movi #message_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #p1m
|
|||
|
movi #message_setup2,a2
|
|||
|
#p1m
|
|||
|
calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES1,a0
|
|||
|
move a10,a10
|
|||
|
jrz #p1x
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES2,a0
|
|||
|
#p1x
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #message_string,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi 7,a0
|
|||
|
calla RNDRNG0
|
|||
|
|
|||
|
move a0,*a13(#RND_DEST)
|
|||
|
movi #rnd_movespeed,a6
|
|||
|
movi #rnd_wander,a7
|
|||
|
jruc #waitloop
|
|||
|
|
|||
|
.ref font9_ascii
|
|||
|
.ref pal_getf,setup_message
|
|||
|
.ref mess_objid,print_string_C2
|
|||
|
|
|||
|
|
|||
|
blink_rndper
|
|||
|
|
|||
|
movi FNT9RED_P,a0
|
|||
|
calla pal_getf
|
|||
|
move a0,a9
|
|||
|
|
|||
|
movi FNT9WHT_P,a0
|
|||
|
calla pal_getf
|
|||
|
|
|||
|
movi OBJLST,a14
|
|||
|
#lpz
|
|||
|
move *a14,a14,L
|
|||
|
jrz #x
|
|||
|
move *a14(OPAL),a2
|
|||
|
cmp a0,a2
|
|||
|
jrne #lpz
|
|||
|
|
|||
|
move *a14(OID),a2
|
|||
|
cmpi CLSNEUT|TYPTEXT|SUBMES1,a2
|
|||
|
jreq #lpdo
|
|||
|
cmpi CLSNEUT|TYPTEXT|SUBMES2,a2
|
|||
|
jrne #lpz
|
|||
|
#lpdo
|
|||
|
move a9,*a14(OPAL)
|
|||
|
jruc #lpz
|
|||
|
|
|||
|
#x SLEEPK 4
|
|||
|
|
|||
|
movi FNT9RED_P,a0
|
|||
|
calla pal_getf
|
|||
|
move a0,a9
|
|||
|
|
|||
|
movi FNT9WHT_P,a0
|
|||
|
calla pal_getf
|
|||
|
|
|||
|
movi OBJLST,a14
|
|||
|
#lp2
|
|||
|
move *a14,a14,L
|
|||
|
jrz #x2
|
|||
|
move *a14(OPAL),a2
|
|||
|
cmp a9,a2
|
|||
|
jrne #lp2
|
|||
|
|
|||
|
move *a14(OID),a2
|
|||
|
cmpi CLSNEUT|TYPTEXT|SUBMES1,a2
|
|||
|
jreq #lpdo2
|
|||
|
cmpi CLSNEUT|TYPTEXT|SUBMES2,a2
|
|||
|
jrne #lp2
|
|||
|
#lpdo2
|
|||
|
move a0,*a14(OPAL)
|
|||
|
jruc #lp2
|
|||
|
|
|||
|
#x2 SLEEPK 7
|
|||
|
|
|||
|
jruc blink_rndper
|
|||
|
|
|||
|
|
|||
|
#message_setup
|
|||
|
JAM_STR font9_ascii,5,0,79,15,FNT9WHT_P,0
|
|||
|
|
|||
|
#message_setup2
|
|||
|
JAM_STR font9_ascii,5,0,321,15,FNT9WHT_P,0
|
|||
|
|
|||
|
#message_string
|
|||
|
.string "CALLA RNDPER",0
|
|||
|
|
|||
|
.even
|
|||
|
|
|||
|
|
|||
|
#but_hit
|
|||
|
movi player_pal_pref,a1
|
|||
|
move a10,a10
|
|||
|
jrz #is_p1
|
|||
|
addk 16,a1
|
|||
|
#is_p1
|
|||
|
move a10,a0
|
|||
|
calla get_stick_val_cur
|
|||
|
jrz #no_pref
|
|||
|
move a10,a0
|
|||
|
calla get_but_val_cur
|
|||
|
jrz #no_pref
|
|||
|
movk 4,a14
|
|||
|
btst 0,a0 ; PUNCH
|
|||
|
jrnz #pp_pref
|
|||
|
movk 7,a14
|
|||
|
btst 4,a0 ; SKICK
|
|||
|
jrnz #pp_pref
|
|||
|
movk 5,a14
|
|||
|
btst 2,a0 ; SPUNCH
|
|||
|
jrnz #pp_pref
|
|||
|
movk 6,a14
|
|||
|
btst 3,a0 ; KICK
|
|||
|
jrnz #pp_pref
|
|||
|
#no_pref
|
|||
|
clr a14
|
|||
|
#pp_pref
|
|||
|
move a14,*a1
|
|||
|
;they hit a button. Stick 'em with the current guy.
|
|||
|
;Erase rndper message for this player
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES1,a0
|
|||
|
move a10,a10
|
|||
|
jrz #p1c
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES2,a0
|
|||
|
#p1c
|
|||
|
calla obj_del1c
|
|||
|
|
|||
|
move *a9(#PI_INDEX),a0,L
|
|||
|
;rewire kludge
|
|||
|
move a11,a14
|
|||
|
X16 a14
|
|||
|
addi scramble_table,a14
|
|||
|
move *a14,a14,W
|
|||
|
move a14,*a0
|
|||
|
|
|||
|
move a10,a1
|
|||
|
sll 4,a1
|
|||
|
addi which_player,a1
|
|||
|
move a14,*a1
|
|||
|
|
|||
|
;say the name.
|
|||
|
MOVI SEL_SPCH_PID1,A1
|
|||
|
ADD A10,A1
|
|||
|
MOVE A0,A8
|
|||
|
MOVI call_wrestler_name,A7
|
|||
|
CALLA GETPRC
|
|||
|
|
|||
|
;make a joyful noise unto the player
|
|||
|
move *a9(#PI_SELSOUND),a0
|
|||
|
calla triple_sound
|
|||
|
|
|||
|
;clear our bit in the active flag
|
|||
|
move @active_flag,a0
|
|||
|
move a10,a14
|
|||
|
inc a14
|
|||
|
andn a14,a0
|
|||
|
move a0,@active_flag
|
|||
|
|
|||
|
;flash over the crouton
|
|||
|
;synch! begin flashing on an even PCNT
|
|||
|
move @PCNT,a14
|
|||
|
btst 0,a14
|
|||
|
jrnz #synch
|
|||
|
SLEEPK 1
|
|||
|
|
|||
|
#synch
|
|||
|
move *a13(#HILITE),a8,L
|
|||
|
movi TSEC/4,a9
|
|||
|
#flashloop
|
|||
|
movi 0202h,a14
|
|||
|
move a14,*a8(OCONST)
|
|||
|
move *a8(OCTRL),a14
|
|||
|
xori M_CONZER,a14
|
|||
|
move a14,*a8(OCTRL)
|
|||
|
SLEEPK 2
|
|||
|
dsj a9,#flashloop
|
|||
|
|
|||
|
move *a8(OCTRL),a14
|
|||
|
andni M_CONZER,a14
|
|||
|
move a14,*a8(OCTRL)
|
|||
|
|
|||
|
movi hilite_z,a14
|
|||
|
move a14,*a8(OZPOS)
|
|||
|
|
|||
|
move *a13(#HIPLATE),a8,L
|
|||
|
movi hiplate_z,a14
|
|||
|
move a14,*a8(OZPOS)
|
|||
|
|
|||
|
#lp
|
|||
|
SLEEPK 1
|
|||
|
callr #place_cursor
|
|||
|
jruc #lp
|
|||
|
|
|||
|
|
|||
|
********
|
|||
|
* moves cursor to the current index position
|
|||
|
|
|||
|
SUBRP #place_cursor
|
|||
|
|
|||
|
PUSH a2,a3,a7,a8
|
|||
|
|
|||
|
move a11,a1
|
|||
|
X32 a1
|
|||
|
addi crouton_pos_table,a1
|
|||
|
move *a1+,a2,W
|
|||
|
move *a1,a3,W
|
|||
|
|
|||
|
move *a13(#HILITE),a7,L
|
|||
|
move *a13(#HIPLATE),a8,L
|
|||
|
|
|||
|
move a2,*a8(OXPOS)
|
|||
|
move a3,*a8(OYPOS)
|
|||
|
|
|||
|
move a10,a10
|
|||
|
jrz #p1
|
|||
|
move @kp_p1cursor,a8,L
|
|||
|
move *a8(PA11),a8
|
|||
|
cmp a8,a11
|
|||
|
jrnz #p1
|
|||
|
addk 2,a2
|
|||
|
addk 2,a3
|
|||
|
#p1
|
|||
|
move a2,*a7(OXPOS)
|
|||
|
move a3,*a7(OYPOS)
|
|||
|
|
|||
|
PULL a2,a3,a7,a8
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
********
|
|||
|
* updates the name text
|
|||
|
|
|||
|
SUBRP #update_name
|
|||
|
|
|||
|
PUSH a8,a11
|
|||
|
|
|||
|
;rewiring kludge
|
|||
|
X16 a11
|
|||
|
addi scramble_table,a11
|
|||
|
move *a11,a11,W
|
|||
|
|
|||
|
move a11,a0
|
|||
|
X32 a0
|
|||
|
addi name_tbl,a0
|
|||
|
move *a0,a0,L
|
|||
|
move *a13(#NAME),a8,L
|
|||
|
calla civanic
|
|||
|
|
|||
|
PULL a8,a11
|
|||
|
|
|||
|
rets
|
|||
|
|
|||
|
********
|
|||
|
* erases current mugshot
|
|||
|
|
|||
|
SUBRP #erase_mugshot
|
|||
|
|
|||
|
PUSH a5,a6,a8
|
|||
|
|
|||
|
movk 8,a6
|
|||
|
move a13,a5
|
|||
|
addi #MUG1,a5
|
|||
|
#eraseloop
|
|||
|
move *a5+,a0,L
|
|||
|
calla DELOBJ
|
|||
|
dsj a6,#eraseloop
|
|||
|
|
|||
|
PULL a5,a6,a8
|
|||
|
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
********
|
|||
|
* draws a new mugshot
|
|||
|
|
|||
|
SUBRP #draw_mugshot
|
|||
|
|
|||
|
;reg use
|
|||
|
;a10 = PDATA pointer
|
|||
|
;a11 = mug pointer
|
|||
|
|
|||
|
PUSH a6,a7,a8,a10,a11
|
|||
|
|
|||
|
;rewiring kludge
|
|||
|
X16 a11
|
|||
|
addi scramble_table,a11
|
|||
|
move *a11,a11,W
|
|||
|
|
|||
|
X32 a11
|
|||
|
addi wrestler_mugs,a11
|
|||
|
move *a11,a11,L
|
|||
|
|
|||
|
move a13,a10
|
|||
|
addi #MUG1,a10
|
|||
|
move *a11+,a2,L
|
|||
|
|
|||
|
#drawloop
|
|||
|
move *a9(#PI_MUGXPOS),a0
|
|||
|
move *a9(#PI_MUGYPOS),a1
|
|||
|
sla 16,a0
|
|||
|
sla 16,a1
|
|||
|
movi mugshot_z,a3
|
|||
|
move *a9(#PI_MUGCTRL),a4
|
|||
|
movi CLSNEUT,a5
|
|||
|
clr a6
|
|||
|
clr a7
|
|||
|
calla BEGINOBJW
|
|||
|
move a8,*a10+,L
|
|||
|
|
|||
|
move *a11+,a2,L
|
|||
|
jrz #done
|
|||
|
jruc #drawloop
|
|||
|
|
|||
|
#done
|
|||
|
PULL a6,a7,a8,a10,a11
|
|||
|
calla show_bonus_icons
|
|||
|
rets
|
|||
|
|
|||
|
;
|
|||
|
;********
|
|||
|
;* updates the attribute bars
|
|||
|
;
|
|||
|
; SUBRP #update_attbars
|
|||
|
;
|
|||
|
; PUSH a7,a10,a11
|
|||
|
;
|
|||
|
;
|
|||
|
; ;rewiring kludge
|
|||
|
; X16 a11
|
|||
|
; addi scramble_table,a11
|
|||
|
; move *a11,a11,W
|
|||
|
;
|
|||
|
; move a11,a10
|
|||
|
; X64 a10
|
|||
|
; addi wrestler_attributes,a10
|
|||
|
; move a13,a11
|
|||
|
; addi #ATT1,a11
|
|||
|
;
|
|||
|
; movi 4,a7
|
|||
|
;#ualoop
|
|||
|
; move *a10+,a0,W
|
|||
|
; X32 a0
|
|||
|
; addi attbars,a0
|
|||
|
; move *a0,a0,L
|
|||
|
; move *a11+,a8,L
|
|||
|
; calla civanic
|
|||
|
; dsj a7,#ualoop
|
|||
|
;
|
|||
|
; PULL a7,a10,a11
|
|||
|
; rets
|
|||
|
;
|
|||
|
wrestler_attributes
|
|||
|
;Power, speed, agility, recovery
|
|||
|
.word 4,9,9,3 ;0 (Bret)
|
|||
|
.word 7,6,2,5 ;1 (Razor)
|
|||
|
.word 8,4,7,6 ;2 (Taker)
|
|||
|
.word 9,2,4,6 ;3 (Yoko)
|
|||
|
.word 3,9,8,7 ;4 (Shawn)
|
|||
|
.word 8,6,5,3 ;5 (Bam Bam)
|
|||
|
.word 4,8,7,8 ;6 (Doink)
|
|||
|
.word 9,5,4,7 ;7 (Lex)
|
|||
|
.word 9,5,4,7 ;8 (Lex)
|
|||
|
|
|||
|
scramble_table ;swap bret and doink on the select page
|
|||
|
.word 6
|
|||
|
.word 1,2,3,4,5
|
|||
|
.word 0
|
|||
|
.word 8 ;put lex in place of adam
|
|||
|
|
|||
|
attbars
|
|||
|
.long ATTMTR_0,ATTMTR_1,ATTMTR_2,ATTMTR_3,ATTMTR_4
|
|||
|
.long ATTMTR_5,ATTMTR_6,ATTMTR_7,ATTMTR_8,ATTMTR_9
|
|||
|
|
|||
|
#info
|
|||
|
.long #p1info,#p2info
|
|||
|
|
|||
|
#p1info
|
|||
|
.long #hi_b,#plt_b ;hilite, crouton
|
|||
|
.word 0 ;start index
|
|||
|
.word 0+18+2,175 ;mug position
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;mug octrl
|
|||
|
.long #p1name,latttxt ;start name,att text
|
|||
|
.long index1 ;report choice to
|
|||
|
.word 0c8h,0cbh ;cursor/select sounds
|
|||
|
|
|||
|
#p2info
|
|||
|
.long #hi_r,#plt_r ;hilite, crouton
|
|||
|
.word 1 ;start index
|
|||
|
.word 400-18,175 ;mug position
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL|M_FLIPH ;mug octrl
|
|||
|
.long #p2name,ratttxt ;start name,att text
|
|||
|
.long index2 ;report choice to
|
|||
|
.word 0c7h,0cch ;cursor/select sounds
|
|||
|
|
|||
|
|
|||
|
#plt_b .word 0,0,hiplate_z ;X,Y,Z
|
|||
|
.long CRUTPLT_B ;IMG
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;CTRL
|
|||
|
.word CLSNEUT|TYPNEUT ;OID
|
|||
|
.long 0,0 ;XVEL, YVEL
|
|||
|
|
|||
|
#plt_r .word 0,0,hiplate_z+1 ;X,Y,Z
|
|||
|
.long CRUTPLT_R ;IMG
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;CTRL
|
|||
|
.word CLSNEUT|TYPNEUT ;OID
|
|||
|
.long 0,0 ;XVEL, YVEL
|
|||
|
|
|||
|
#hi_b .word 0,0,hilite_z ;X,Y,Z
|
|||
|
.long CRUTHI_B ;IMG
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;CTRL
|
|||
|
.word CLSNEUT|TYPNEUT ;OID
|
|||
|
.long 0,0 ;XVEL, YVEL
|
|||
|
|
|||
|
#hi_r .word 0,0,hilite_z+1 ;X,Y,Z
|
|||
|
.long CRUTHI_R ;IMG
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;CTRL
|
|||
|
.word CLSNEUT|TYPNEUT ;OID
|
|||
|
.long 0,0 ;XVEL, YVEL
|
|||
|
|
|||
|
#p1name .word >51,184,name_z
|
|||
|
.long WF_INSERT
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL
|
|||
|
.word CLSNEUT|TYPNEUT
|
|||
|
.long 0,0
|
|||
|
|
|||
|
#p2name .word >142,184,name_z
|
|||
|
.long WF_INSERT
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL
|
|||
|
.word CLSNEUT|TYPNEUT
|
|||
|
.long 0,0
|
|||
|
|
|||
|
latttxt .word 0+18,189,atttxt_z ;X, Y, Z
|
|||
|
.long ATT_TXT ;IMG
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;CTRL
|
|||
|
.word CLSNEUT|TYPNEUT ;OID
|
|||
|
.long 0,0 ;XVEL, YVEL
|
|||
|
|
|||
|
ratttxt .word 400-18-124,189,atttxt_z ;X, Y, Z
|
|||
|
.long ATT_TXT ;IMG
|
|||
|
.word DMAWNZ|M_3D|M_SCRNREL ;CTRL
|
|||
|
.word CLSNEUT|TYPNEUT ;OID
|
|||
|
.long 0,0 ;XVEL, YVEL
|
|||
|
|
|||
|
;Mugshot stuff
|
|||
|
|
|||
|
wrestler_mugs
|
|||
|
.long BHARTMUG
|
|||
|
.long RAZORMUG
|
|||
|
.long UNDERMUG
|
|||
|
.long YOKOMUG
|
|||
|
.long MICHAELMUG
|
|||
|
.long BAMBAMMUG
|
|||
|
.long DOINKMUG
|
|||
|
.long 0
|
|||
|
.long LUGERMUG
|
|||
|
|
|||
|
wrestler_mugs2
|
|||
|
.long BHARTMUG
|
|||
|
.long RAZORMUG
|
|||
|
.long UNDERMUG
|
|||
|
.long YOKOMUG
|
|||
|
.long MICHAELMUG
|
|||
|
.long BAMBAMMUG
|
|||
|
.long DOINKMUG
|
|||
|
; .long ADAMMUG
|
|||
|
.long LUGERMUG
|
|||
|
|
|||
|
BHARTMUG
|
|||
|
.long BHMUG_A,BHMUG_B,BHMUG_C,BHMUG_D
|
|||
|
.long BHMUG_E,BHMUG_F,BHMUG_G,BHMUG_H,0
|
|||
|
RAZORMUG
|
|||
|
.long RRMUG_A,RRMUG_B,RRMUG_C,RRMUG_D
|
|||
|
.long RRMUG_E,RRMUG_F,RRMUG_G,RRMUG_H,0
|
|||
|
UNDERMUG
|
|||
|
.long UNMUG_A,UNMUG_B,UNMUG_C,UNMUG_D
|
|||
|
.long UNMUG_E,UNMUG_F,UNMUG_G,UNMUG_H,0
|
|||
|
YOKOMUG
|
|||
|
.long YKMUG_A,YKMUG_B,YKMUG_C,YKMUG_D
|
|||
|
.long YKMUG_E,YKMUG_F,YKMUG_G,YKMUG_H,0
|
|||
|
MICHAELMUG
|
|||
|
.long SMMUG_A,SMMUG_B,SMMUG_C,SMMUG_D
|
|||
|
.long SMMUG_E,SMMUG_F,SMMUG_G,SMMUG_H,0
|
|||
|
BAMBAMMUG
|
|||
|
.long BMMUG_A,BMMUG_B,BMMUG_C,BMMUG_D
|
|||
|
.long BMMUG_E,BMMUG_F,BMMUG_G,BMMUG_H,0
|
|||
|
DOINKMUG
|
|||
|
.long DKMUG_A,DKMUG_B,DKMUG_C,DKMUG_D
|
|||
|
.long DKMUG_E,DKMUG_F,DKMUG_G,DKMUG_H,0
|
|||
|
LUGERMUG
|
|||
|
.long LXMUG_A,LXMUG_B,LXMUG_C,LXMUG_D
|
|||
|
.long LXMUG_E,LXMUG_F,LXMUG_G,LXMUG_H,0
|
|||
|
|
|||
|
name_tbl
|
|||
|
.long NAM_BRT,NAM_RZR,NAM_UND,NAM_YOK
|
|||
|
.long NAM_SHN2,NAM_BAM2,NAM_DNK,0,NAM_LEX
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
* Player select clock - sets time_out when it runs out of time
|
|||
|
*
|
|||
|
|
|||
|
SUBR select_clock
|
|||
|
|
|||
|
;reg use
|
|||
|
; a8 - current pstatus
|
|||
|
; a9 - time remaining
|
|||
|
|
|||
|
select_time equ TSEC*15
|
|||
|
|
|||
|
#reset
|
|||
|
movi select_time,a9
|
|||
|
move @PSTATUS,a8
|
|||
|
|
|||
|
#waitloop
|
|||
|
SLEEPK 1
|
|||
|
move @PSTATUS,a14
|
|||
|
cmp a14,a8
|
|||
|
jrne #reset ;new buyin. reset
|
|||
|
|
|||
|
dsj a9,#waitloop
|
|||
|
|
|||
|
;If other player is still thinking about buying in or is
|
|||
|
;still entering his initials, then go to #reset
|
|||
|
|
|||
|
move @OLD_PSTATUS,a0
|
|||
|
jrnz #reset
|
|||
|
|
|||
|
movk 1,a14
|
|||
|
move a14,@time_out
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
clock_digits
|
|||
|
;When player select time gets down to 5 seconds, display it...
|
|||
|
;a10=select_clock *PROC
|
|||
|
|
|||
|
movi [0cbh,0],a0 ;x pos
|
|||
|
movi [232,0],a1 ;y pos
|
|||
|
movi FNT9_5,a2 ;* image
|
|||
|
movi 104+200,a3 ;z pos
|
|||
|
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
|||
|
clr a5 ;object ID
|
|||
|
clr a6 ;x vel
|
|||
|
clr a7 ;y vel
|
|||
|
movi FNT9WHT_P,b0
|
|||
|
calla BEGINOBJP
|
|||
|
movk 4,a11
|
|||
|
#loop0 callr obj_off
|
|||
|
|
|||
|
#loop SLEEPK 1
|
|||
|
move @time_out,a0
|
|||
|
janz KILL_THIS_DIGIT
|
|||
|
|
|||
|
move @OLD_PSTATUS,a0
|
|||
|
jrnz #loop0
|
|||
|
|
|||
|
move *a10(PA9),a0
|
|||
|
srl 6,a0
|
|||
|
cmp a0,a11
|
|||
|
jrz #loop
|
|||
|
cmpi 6,a0
|
|||
|
jrge #loop0
|
|||
|
|
|||
|
;New digit time
|
|||
|
move a0,a11
|
|||
|
sll 5,a0
|
|||
|
|
|||
|
addi digits_tbl,a0
|
|||
|
move *a0,a0,L ;* image
|
|||
|
|
|||
|
move *a8(OCTRL),a1 ;DMA flags
|
|||
|
calla change_image
|
|||
|
callr obj_on
|
|||
|
|
|||
|
move a11,a14
|
|||
|
callr setup_clock_sound
|
|||
|
jruc #loop
|
|||
|
|
|||
|
KILL_THIS_DIGIT
|
|||
|
callr obj_off
|
|||
|
DIE
|
|||
|
|
|||
|
digits_tbl
|
|||
|
.long FNT9_0,FNT9_1,FNT9_2,FNT9_3,FNT9_4
|
|||
|
.long FNT9_5,FNT9_6,FNT9_7,FNT9_8,FNT9_9
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
* One player ladder of progression
|
|||
|
*
|
|||
|
|
|||
|
SUBR pregame_show
|
|||
|
|
|||
|
|
|||
|
;This will be the ladder type screen, showing the 1 player
|
|||
|
;game progression. Chooses the CPU opponent.
|
|||
|
|
|||
|
;Show 1 player game ladder of progression
|
|||
|
;Scroll horizontally to the next challenger
|
|||
|
|
|||
|
.if DEBUG
|
|||
|
move @skip_select,a0
|
|||
|
jrz #noskp
|
|||
|
|
|||
|
RETP
|
|||
|
#noskp
|
|||
|
.endif
|
|||
|
|
|||
|
move @PSTATUS,a0
|
|||
|
cmpi 3,a0
|
|||
|
jrnz #oneplyrgm
|
|||
|
|
|||
|
.ref question_type
|
|||
|
.if RR_AWARD = 1
|
|||
|
move @royal_rumble,a14
|
|||
|
jrnz #last_was_royal
|
|||
|
.endif
|
|||
|
movk 1,a14
|
|||
|
move a14,@question_type
|
|||
|
JSRP ask_belt_question
|
|||
|
.if RR_AWARD = 1
|
|||
|
jruc #type_set
|
|||
|
#last_was_royal
|
|||
|
clr a14
|
|||
|
move a14,@royal_rumble
|
|||
|
#type_set
|
|||
|
.endif
|
|||
|
|
|||
|
JSRP CLOSE_PROGRESS_SCREEN
|
|||
|
|
|||
|
RETP
|
|||
|
|
|||
|
;0 (Bret)
|
|||
|
;1 (Razor)
|
|||
|
;2 (Taker)
|
|||
|
;3 (Yoko)
|
|||
|
;4 (Shawn)
|
|||
|
;5 (Bam Bam)
|
|||
|
;6 (Doink)
|
|||
|
;7 spare
|
|||
|
;8 (Lex)
|
|||
|
|
|||
|
|
|||
|
#oneplyrgm
|
|||
|
.ref belt_ask
|
|||
|
.ref ask_belt_question
|
|||
|
|
|||
|
move @belt_ask,a14,W
|
|||
|
jrz #belt_is_set
|
|||
|
clr a14
|
|||
|
move a14,@question_type
|
|||
|
JSRP ask_belt_question
|
|||
|
|
|||
|
calla INIT_LADDER_TABLE
|
|||
|
clr a8
|
|||
|
move a8,@belt_ask
|
|||
|
#belt_is_set
|
|||
|
|
|||
|
; movk 15,a8
|
|||
|
; movk 4,a9
|
|||
|
movk 10,a8
|
|||
|
movk 2,a9
|
|||
|
JSRP CLOSE_SCREEN_LINE
|
|||
|
|
|||
|
calla SPECIAL_WIPEOUT
|
|||
|
JAUC PUT_UP_PROGRESS
|
|||
|
|
|||
|
;AVOID_PREGAME
|
|||
|
; MOVE @CURRENT_LADDER,A10,L
|
|||
|
; CALLA NEXT_IN_LADDER
|
|||
|
; CALLA NUM_OF_OPPS
|
|||
|
; JSRP CLOSE_PROGRESS_SCREEN
|
|||
|
; RETP
|
|||
|
|
|||
|
;Can we remove this?
|
|||
|
; .ref osgemd_ascii
|
|||
|
;#ln1_setup
|
|||
|
; JAM_STR osgemd_ascii,8,0,200,80,BLUE,0
|
|||
|
;
|
|||
|
;#ln2_setup
|
|||
|
; JAM_STR osgemd_ascii,8,0,200,110,BLUE,0
|
|||
|
;
|
|||
|
;#str_text
|
|||
|
; .string "SINGLE PLAYER GAME",0
|
|||
|
;#str_text2
|
|||
|
; .string "LADDER OF PROGRESSION",0
|
|||
|
; .even
|
|||
|
;
|
|||
|
;#ladder_mod
|
|||
|
; .long slateBMOD ;wrestler select map
|
|||
|
; .word 0,0
|
|||
|
; .long 0
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
*
|
|||
|
* INPUT: a8 = * object
|
|||
|
*-----------------------------------------------------------------------------
|
|||
|
|
|||
|
SUBRP obj_on
|
|||
|
move *a8(OYPOS),a0
|
|||
|
andni 400h,a0
|
|||
|
move a0,*a8(OYPOS)
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
#*****************************************************************************
|
|||
|
*
|
|||
|
* INPUT: a8 = * object
|
|||
|
*-----------------------------------------------------------------------------
|
|||
|
|
|||
|
SUBRP obj_off
|
|||
|
move *a8(OYPOS),a0
|
|||
|
ori 400h,a0
|
|||
|
move a0,*a8(OYPOS)
|
|||
|
rets
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
|
|||
|
buyin_text
|
|||
|
|
|||
|
movk ADJFREPL,a0 ;Are we in free play?
|
|||
|
calla GET_ADJ
|
|||
|
jrz #not_freeply
|
|||
|
|
|||
|
;Print free play
|
|||
|
movi #ln0_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok2c
|
|||
|
movi #ln0_setupb,a2
|
|||
|
#ok2c calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text0,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
;Print centered "PLEASE CONTINUE" message
|
|||
|
movi #ln1_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok
|
|||
|
movi #ln1_setupb,a2
|
|||
|
#ok calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi #ln2_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok4
|
|||
|
movi #ln2_setupb,a2
|
|||
|
calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text2,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
rets
|
|||
|
|
|||
|
#not_freeply
|
|||
|
;Print how many credits to start
|
|||
|
PUSH a8
|
|||
|
movk ADJCCONT,a0
|
|||
|
calla GET_ADJ ;GET NUMBER NEEDED
|
|||
|
move a0,a3
|
|||
|
cmpi 10,a0
|
|||
|
jrlt #max
|
|||
|
movk 9,a0
|
|||
|
#max
|
|||
|
sll 5,a0
|
|||
|
addi digits_tbl,a0
|
|||
|
move *a0,a2,L ;* image
|
|||
|
|
|||
|
movi [050,0],a0 ;x pos
|
|||
|
cmpi 1,a3
|
|||
|
jrnz #not1
|
|||
|
movi [054,0],a0 ;x pos
|
|||
|
#not1 move a10,a10
|
|||
|
jrz #zp1
|
|||
|
movi [0122h,0],a0 ;x pos
|
|||
|
cmpi 1,a3
|
|||
|
jrnz #zp1
|
|||
|
movi [0126h,0],a0 ;x pos
|
|||
|
#zp1
|
|||
|
movi [CREDIT_LINE_YPOS,0],a1 ;y pos
|
|||
|
movi 104+200,a3 ;z pos
|
|||
|
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a5
|
|||
|
add a10,a5 ;object ID
|
|||
|
clr a6 ;x vel
|
|||
|
clr a7 ;y vel
|
|||
|
movi FNT9YEL_P,b0
|
|||
|
calla BEGINOBJP
|
|||
|
PULL a8
|
|||
|
|
|||
|
movi #ln3_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok2
|
|||
|
movi #ln3_setupb,a2
|
|||
|
#ok2 calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text3,a4
|
|||
|
movk ADJCCONT,a0
|
|||
|
calla GET_ADJ ;GET NUMBER NEEDED
|
|||
|
cmpi 1,a0
|
|||
|
jrnz #not1b
|
|||
|
movi #str_text3b,a4
|
|||
|
#not1b
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi #ln4_setup,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok2B
|
|||
|
movi #ln4_setupb,a2
|
|||
|
#ok2B calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text4,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
|
|||
|
;Print "challenger needed" message
|
|||
|
movi #ln1_setupx,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok3
|
|||
|
movi #ln1_setupxb,a2
|
|||
|
#ok3 calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
movi #ln2_setupx,a2
|
|||
|
move a10,a10
|
|||
|
jrz #ok4
|
|||
|
movi #ln2_setupxb,a2
|
|||
|
#ok4 calla setup_message
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a0
|
|||
|
add a10,a0
|
|||
|
move a0,@mess_objid
|
|||
|
|
|||
|
movi #str_text2,a4
|
|||
|
calla print_string_C2
|
|||
|
|
|||
|
rets
|
|||
|
|
|||
|
.if 1
|
|||
|
#ln0_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,120,FNT9YEL_P,0
|
|||
|
#ln0_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,120,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln1_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,80,FNT9WHT_P,0
|
|||
|
#ln1_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,80,FNT9WHT_P,0
|
|||
|
|
|||
|
#ln2_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,95,FNT9WHT_P,0
|
|||
|
#ln2_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,95,FNT9WHT_P,0
|
|||
|
|
|||
|
#ln1_setupx
|
|||
|
JAM_STR font9_ascii,8,0,81,60,FNT9WHT_P,0
|
|||
|
#ln1_setupxb
|
|||
|
JAM_STR font9_ascii,8,0,321,60,FNT9WHT_P,0
|
|||
|
|
|||
|
#ln2_setupx
|
|||
|
JAM_STR font9_ascii,8,0,81,75,FNT9WHT_P,0
|
|||
|
#ln2_setupxb
|
|||
|
JAM_STR font9_ascii,8,0,321,75,FNT9WHT_P,0
|
|||
|
|
|||
|
|
|||
|
#ln3_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,110,FNT9YEL_P,0
|
|||
|
#ln3_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,110,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln4_setup
|
|||
|
JAM_STR font9_ascii,8,0,81,125,FNT9YEL_P,0
|
|||
|
#ln4_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,125,FNT9YEL_P,0
|
|||
|
|
|||
|
.else
|
|||
|
|
|||
|
#ln0_setup ; FREE PLAY
|
|||
|
JAM_STR font9_ascii,8,0,81,120,FNT9YEL_P,0
|
|||
|
#ln0_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,120,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln1_setup ; PLEASE
|
|||
|
JAM_STR font9_ascii,8,0,81,80,FNT9WHT_P,0
|
|||
|
#ln1_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,80,FNT9WHT_P,0
|
|||
|
|
|||
|
#ln2_setup ; DIGIT
|
|||
|
JAM_STR font9_ascii,8,0,81,95,FNT9WHT_P,0
|
|||
|
#ln2_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,95,FNT9WHT_P,0
|
|||
|
|
|||
|
#ln1_setupx ; PLEASE
|
|||
|
JAM_STR font9_ascii,8,0,81,PLEASE_YPOS,FNT9WHT_P,0
|
|||
|
#ln1_setupxb
|
|||
|
JAM_STR font9_ascii,8,0,321,PLEASE_YPOS,FNT9WHT_P,0
|
|||
|
|
|||
|
#ln2_setupx ; CONTINUE
|
|||
|
JAM_STR font9_ascii,8,0,81,CONTINUE_YPOS,FNT9WHT_P,0
|
|||
|
#ln2_setupxb
|
|||
|
JAM_STR font9_ascii,8,0,321,CONTINUE_YPOS,FNT9WHT_P,0
|
|||
|
|
|||
|
|
|||
|
#ln3_setup ; CREDITS
|
|||
|
JAM_STR font9_ascii,8,0,81,CREDIT_LINE_YPOS,FNT9YEL_P,0
|
|||
|
#ln3_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,CREDIT_LINE_YPOS,FNT9YEL_P,0
|
|||
|
|
|||
|
#ln4_setup ; TO CONTINUE
|
|||
|
JAM_STR font9_ascii,8,0,81,TO_CONTINUE_YPOS,FNT9YEL_P,0
|
|||
|
#ln4_setupb
|
|||
|
JAM_STR font9_ascii,8,0,321,TO_CONTINUE_YPOS,FNT9YEL_P,0
|
|||
|
.endif
|
|||
|
|
|||
|
|
|||
|
#str_text
|
|||
|
.string "PLEASE",0
|
|||
|
#str_text0
|
|||
|
.string "FREE PLAY",0
|
|||
|
#str_text2
|
|||
|
.string "CONTINUE!",0
|
|||
|
#str_text3
|
|||
|
.string " CREDITS",0
|
|||
|
#str_text3b
|
|||
|
.string " CREDIT",0
|
|||
|
#str_text4
|
|||
|
.string "TO CONTINUE",0
|
|||
|
.even
|
|||
|
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
|
|||
|
.ref AUD1
|
|||
|
.ref GET_CREDITS
|
|||
|
.ref get_start_down
|
|||
|
.ref get_but_val_cur
|
|||
|
|
|||
|
#cont_timer .equ 9
|
|||
|
#resets_allowed .equ 25 ;People whack on button to reset
|
|||
|
|
|||
|
SUBRP buyin_counter
|
|||
|
|
|||
|
move @rr_loss,a0
|
|||
|
jrz not_rr1
|
|||
|
move @cursor_procs,a0
|
|||
|
inc a0
|
|||
|
move a0,@cursor_procs
|
|||
|
not_rr1
|
|||
|
|
|||
|
move a10,*a13(PDATA+16) ;0 or 1
|
|||
|
|
|||
|
movi AUD_CONTOFF,a0 ;increment the offered audit
|
|||
|
calla AUD1
|
|||
|
|
|||
|
movi #resets_allowed,a7
|
|||
|
|
|||
|
jruc #loop_start
|
|||
|
|
|||
|
#coin_loop_reset
|
|||
|
movi #resets_allowed,a7
|
|||
|
|
|||
|
#loop_reset
|
|||
|
calla DELOBJA8
|
|||
|
|
|||
|
#loop_start
|
|||
|
calla GET_CREDITS
|
|||
|
move a0,a6
|
|||
|
|
|||
|
PUSH a6,a7
|
|||
|
movi [080,0],a0 ;x pos
|
|||
|
move *a13(PDATA+16),a10
|
|||
|
move a10,a10
|
|||
|
jrz #p1
|
|||
|
movi [0320,0],a0 ;x pos
|
|||
|
#p1
|
|||
|
movi [TIMER_YPOS,0],a1 ;y pos
|
|||
|
movi FNT9_9,a2 ;* image
|
|||
|
movi 104+200,a3 ;z pos
|
|||
|
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
|||
|
movi CLSNEUT|TYPTEXT|SUBOVRHED,a5
|
|||
|
add a10,a5
|
|||
|
clr a6 ;x vel
|
|||
|
clr a7 ;y vel
|
|||
|
movi FNT9WHT_P,b0
|
|||
|
calla BEGINOBJP
|
|||
|
PULL a6,a7
|
|||
|
|
|||
|
move @PSTATUS,a9
|
|||
|
movi TSEC*2,a10
|
|||
|
movi #cont_timer,a11
|
|||
|
|
|||
|
#loop
|
|||
|
PUSHP a6,a7
|
|||
|
SLEEPK 1
|
|||
|
PULLP a6,a7
|
|||
|
|
|||
|
;Buyin check
|
|||
|
move @PSTATUS,a14
|
|||
|
move *a13(PDATA+16),a0
|
|||
|
btst a0,a14
|
|||
|
jrne #buyin
|
|||
|
|
|||
|
;More credits check
|
|||
|
calla GET_CREDITS
|
|||
|
cmp a0,a6
|
|||
|
jrne #coin_loop_reset
|
|||
|
|
|||
|
;Start button check
|
|||
|
move a7,a7
|
|||
|
jrz #skip_start_check
|
|||
|
|
|||
|
;Any player who hits his start will reset buyin timer!
|
|||
|
move *a13(PDATA+16),a0
|
|||
|
calla get_start_down
|
|||
|
move a0,a0
|
|||
|
jrnz #start_hit
|
|||
|
|
|||
|
move *a13(PDATA+16),a0
|
|||
|
xori 1,a0
|
|||
|
calla get_start_down
|
|||
|
move a0,a0
|
|||
|
jrnz #start_hit
|
|||
|
|
|||
|
#skip_start_check
|
|||
|
|
|||
|
;Regular button check
|
|||
|
|
|||
|
;Make these button presses player specific!
|
|||
|
|
|||
|
move *a13(PDATA+16),a0
|
|||
|
calla get_but_val_down
|
|||
|
move a0,a0
|
|||
|
jrnz #new_button_press
|
|||
|
|
|||
|
move *a13(PDATA+16),a0
|
|||
|
calla get_but_val_cur
|
|||
|
move a0,a0
|
|||
|
jrnz #old_button_press
|
|||
|
|
|||
|
;No buttons down
|
|||
|
dsj a10,#loop
|
|||
|
|
|||
|
#sec_elapsed
|
|||
|
;A second has elapsed.
|
|||
|
dec a11
|
|||
|
jrz #timeout
|
|||
|
movi TSEC*2,a10
|
|||
|
|
|||
|
move a11,a14
|
|||
|
X32 a14
|
|||
|
addi digits_tbl,a14
|
|||
|
move *a14,a0,L
|
|||
|
calla civanic
|
|||
|
|
|||
|
move a11,a14
|
|||
|
callr setup_clock_sound
|
|||
|
|
|||
|
jruc #loop
|
|||
|
|
|||
|
setup_clock_sound
|
|||
|
; x16 a14
|
|||
|
; addi which_tick_tock,a14
|
|||
|
; move *a14,a0
|
|||
|
; CREATE0 do_next_tick
|
|||
|
; movi 0B7H,a0
|
|||
|
movi 0AH,a0
|
|||
|
calla triple_sound
|
|||
|
rets
|
|||
|
|
|||
|
;do_next_tick
|
|||
|
; SLEEP 12
|
|||
|
; MOVI 0B8H,A0
|
|||
|
; CALLA triple_sound
|
|||
|
; DIE
|
|||
|
|
|||
|
;which_tick_tock
|
|||
|
; .word 0b7h,0b8h,0b7h,0b8h
|
|||
|
; .word 0b7h,0b8h,0b7h,0b8h
|
|||
|
; .word 0b7h,0b8h,0b7h,0b8h
|
|||
|
|
|||
|
#new_button_press
|
|||
|
;New press. skip a digit
|
|||
|
clr a10
|
|||
|
jruc #sec_elapsed
|
|||
|
|
|||
|
#old_button_press
|
|||
|
;Button being held. Run clock at triple rate
|
|||
|
subk 20,a10
|
|||
|
jrp #loop
|
|||
|
jruc #sec_elapsed
|
|||
|
|
|||
|
#start_hit
|
|||
|
;A PSTATUS-active player has hit a start button.
|
|||
|
dec a7
|
|||
|
jruc #loop_reset
|
|||
|
|
|||
|
#buyin
|
|||
|
;Someone has bought in.
|
|||
|
;ALREADY DONE ELSE WHERE
|
|||
|
; movi AUD_CONTTAKN,a0 ;inc the conts taken audit
|
|||
|
; calla AUD1
|
|||
|
move @rr_loss,a14
|
|||
|
jrz #no_rr_loss
|
|||
|
move *a13(PDATA+16),a14
|
|||
|
addk 1,a14
|
|||
|
not a14
|
|||
|
move @OLD_PSTATUS,a0
|
|||
|
and a14,a0
|
|||
|
move @cursor_procs,a14
|
|||
|
dec a14
|
|||
|
move a14,@cursor_procs
|
|||
|
move a14,a14
|
|||
|
jrnz #no_cp
|
|||
|
move a14,@active_flag
|
|||
|
#no_cp clr a14
|
|||
|
move a14,@rr_loss ;don't care about this anymore
|
|||
|
jruc #ok2_1
|
|||
|
#no_rr_loss
|
|||
|
clr a0 ; ORG
|
|||
|
#ok2_1
|
|||
|
move a0,@OLD_PSTATUS
|
|||
|
move a0,@blow_out
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
#timeout
|
|||
|
;Time ran out!
|
|||
|
;If the other player has not bought in, then goto game over
|
|||
|
;If the other player is active, and has already chosen his fighter, then
|
|||
|
;immediately go into the match
|
|||
|
;If he hasn't chosen his fighter, replot the text messages to now read
|
|||
|
;Challenger needed, Insert x coins to start (The player blew his opportunity
|
|||
|
;to continue the game at the potentially lower price!)
|
|||
|
;
|
|||
|
move @rr_loss,a14
|
|||
|
jrz #no_rr_loss1
|
|||
|
move *a13(PDATA+16),a14
|
|||
|
addk 1,a14
|
|||
|
not a14
|
|||
|
move @OLD_PSTATUS,a0
|
|||
|
and a14,a0
|
|||
|
move @cursor_procs,a14
|
|||
|
dec a14
|
|||
|
move a14,@cursor_procs
|
|||
|
jruc #ok1
|
|||
|
#no_rr_loss1
|
|||
|
clr a0 ;ORG
|
|||
|
#ok1
|
|||
|
move a0,@OLD_PSTATUS
|
|||
|
move @rr_loss,a0
|
|||
|
jrz #do_end
|
|||
|
move a14,a14
|
|||
|
jrz #do_end
|
|||
|
clr a0
|
|||
|
jruc #set_it
|
|||
|
#do_end
|
|||
|
|
|||
|
movk 1,a0
|
|||
|
#set_it
|
|||
|
move a0,@blow_out
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
auto_str
|
|||
|
JAM_STR font9_ascii,10,0,200,19,FNT9WHT_P,print_string_C2
|
|||
|
.string "AUTO INITIALS",0
|
|||
|
.even
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
|
|||
|
.end
|
|||
|
|