4689 lines
118 KiB
NASM
Executable File
4689 lines
118 KiB
NASM
Executable File
;-----------------------------------------------------------------------------
|
||
;
|
||
* Owner: JOHNSON
|
||
*
|
||
; Software: Jeff Johnson
|
||
; Initiated: 7-31-95
|
||
;
|
||
; COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
||
;
|
||
;.Last mod - 7/31/95
|
||
;-----------------------------------------------------------------------------
|
||
.file "select3.asm"
|
||
.title "option screen...etc"
|
||
.width 132
|
||
.option b,d,l,t
|
||
.mnolist
|
||
|
||
|
||
.include "mproc.equ"
|
||
.include "disp.equ"
|
||
.include "sys.equ"
|
||
; .include "gsp.equ"
|
||
.include "game.equ"
|
||
.include "macros.hdr"
|
||
.include "audit.equ"
|
||
|
||
.include "bgndtbl.glo"
|
||
.include "imgtbl.glo"
|
||
; .include "imgtbl2.glo"
|
||
.include "mugshot.glo"
|
||
.include "imgtblp.glo"
|
||
.include "imgtblm.glo"
|
||
; .include "imgtbl4.glo"
|
||
|
||
.include "plaques.tbl"
|
||
|
||
|
||
.ref create_plr_mugshots_tbl,create_plr_mugshots_tbl_end
|
||
.ref player_heads,player_names ;table addr.
|
||
.ref winner_stays_msg
|
||
.ref mess_objid,mess_line_spacing
|
||
.ref message_palette,message_ascii
|
||
.ref mess_space_width
|
||
.ref mess_cursx,mess_cursy
|
||
.ref cur_pos,create_plyr
|
||
.ref get_all_sticks_cur,get_all_buttons_down
|
||
.ref setup_message
|
||
.ref scrnrel_off,print_string_C2,print_string_C
|
||
.ref print_string,print_string2
|
||
.ref dec_to_asc,concat_string
|
||
.ref copy_string,RNDRNG0
|
||
.ref obj_on,obj_off
|
||
.ref PSTATUS,PSTATUS2
|
||
.ref create_title_bar
|
||
.ref pal_getf,GAMSTATE
|
||
.ref brush10_ascii,brush12_ascii,brush20_ascii
|
||
.ref city_table_start
|
||
.ref del_butn_box_stuff
|
||
.ref del_yes_no_buttons
|
||
.ref create_small_yes_no_butns
|
||
.ref joy_pos
|
||
.ref update_yes_no_button_pals
|
||
.ref get_stick_val_cur,get_stick_val_down
|
||
.ref flash_pressed_yes_no_button
|
||
.ref get_all_buttons_cur
|
||
.ref timeout
|
||
.ref KIL1C,delete_text
|
||
.ref IRQSKYE,TWOPLAYERS
|
||
.ref bast8t_ascii,bast8_ascii,bast10_ascii
|
||
.ref GET_ADJ,CRED_P
|
||
.ref special_heads
|
||
.ref our_names
|
||
.ref player1_data,player2_data,player3_data,player4_data
|
||
.ref team1,team2,tm1set,tm2set
|
||
.ref setup_message,mess_cursx,mess_cursy
|
||
.ref message_buffer
|
||
.ref get_name_string
|
||
.ref get_all_buttons_cur2
|
||
.ref get_but_val_cur
|
||
.ref get_but_val_down
|
||
.ref inmatchup
|
||
|
||
.ref pal_clean,KILBGND
|
||
|
||
.ref pup_court,pup_aba,pup_baby,pup_bighead
|
||
.ref pup_nomusic,pup_maxblock,pup_hypspeed
|
||
.ref pup_hugehead
|
||
.ref pup_maxpower,pup_tournament,pup_maxsteal
|
||
.ref pup_fastpass,pup_showhotspots,pup_notag
|
||
.ref pup_goaltend,pup_trbinfinite
|
||
.ref pup_trbstealth
|
||
.ref pup_nopush,pup_maxspeed,pup_showshotper
|
||
.ref pup_noassistance,pup_tournament,pup_maxpower
|
||
.ref pup_lockcombo
|
||
|
||
.ref print_plr_name,print_string_C3
|
||
.ref credits3,exit_status
|
||
|
||
.ref TM_NAMES_ON_SCRN,MIDDLE_TEAM_NAME
|
||
.ref plate1_objs,plate2_objs
|
||
.ref transition_flag
|
||
.ref teamset1_obj,teamset2_obj
|
||
.ref SHAKER2
|
||
.ref compute_team_def_off_rank
|
||
.ref get_teams_pop,copy_rom_string
|
||
.ref sorted_teams,teams_pop
|
||
.ref concat_rom_string,dec_to_pct
|
||
.ref print_string_R,print_string_R2
|
||
.ref HALT
|
||
.ref check_world_records
|
||
.ref get_plr_rank
|
||
.ref force_selection
|
||
.ref find_record
|
||
.ref BGND_UD1,BAKMODS
|
||
.ref plaque_fall1,plaque_fall2
|
||
.ref plaque_fall3,plaque_fall4
|
||
.ref plaque_land1,plaque_land2
|
||
.ref plaque_land3,plaque_land4
|
||
.ref opt_scr_cur,opt_scr_sel
|
||
.ref get_all_sticks_down
|
||
.ref reset_yes_no_butn_pals
|
||
.ref combo_but1,combo_but2,combo_but3,combo_but4
|
||
.ref yes_no_cur1,yes_no_sel1
|
||
.ref qtr_purchased
|
||
.ref clear_buffers
|
||
.ref change_pal_on_text
|
||
.ref nickname_img_tbl
|
||
.ref compute_plyr_off_rank
|
||
.ref compute_plyr_def_rank
|
||
|
||
.def TUBE_O_P,TUBE_R_P,TUBE_Y_P,TUBE_G_P
|
||
.def PLTF5_B_P,PLTF5_G_P,PLTF5_Y_P,PLTF5_R_P
|
||
.def plaque_xs,plaque_flsh_pals
|
||
.def plaque_snds,plaque_lnds_snds
|
||
|
||
|
||
SPOTLITE_PARTS equ 5
|
||
BBALL_PARTS equ 1 ;big bball parts
|
||
PBALL_PARTS equ 1 ;pressed bball parts
|
||
PBALL_SHDW_PARTS equ 2
|
||
BBALL_SHDW_PARTS equ 2
|
||
|
||
|
||
TURBO_NEEDED equ 0
|
||
SHOOT_NEEDED equ 16
|
||
PASS_NEEDED equ 32
|
||
AWARD_ROUTINE equ 48
|
||
|
||
|
||
.bss bball_1_obj_ptrs,BBALL_PARTS*32 ;4 pieces for non hi-lited bball
|
||
.bss bball_2_obj_ptrs,BBALL_PARTS*32 ;4 pieces for non hi-lited bball
|
||
.bss bball_3_obj_ptrs,BBALL_PARTS*32 ;4 pieces for non hi-lited bball
|
||
.bss pball_obj_ptrs,PBALL_PARTS*32 ;4 pieces for pressd bball
|
||
.bss bball_1_text_obj_ptr,32
|
||
.bss bball_2_text_obj_ptr,32
|
||
.bss bball_3_text_obj_ptr,32
|
||
|
||
.bss p1_butn_cnts,16
|
||
.bss p2_butn_cnts,16
|
||
.bss p3_butn_cnts,16
|
||
.bss p4_butn_cnts,16
|
||
|
||
BSSX rodman_colors,32
|
||
|
||
.text
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This process handles the dropping of best-player plaques on the team
|
||
; select page
|
||
;
|
||
;-----------------------------------------------------------------------------
|
||
SUBR best_player_plaques
|
||
|
||
clr a0
|
||
move a0,*a13(PDATA) ;counter of plaques (delay)
|
||
|
||
; clr a0 ;count
|
||
move @player1_data+PR_NAME1,a14
|
||
jrle #np1 ;br=plr - no inits
|
||
move @player1_data+PR_COUNT,a14
|
||
jrle #np1
|
||
inc a0
|
||
#np1 move @player2_data+PR_NAME1,a14
|
||
jrle #np2 ;br=plr - no inits
|
||
move @player2_data+PR_COUNT,a14
|
||
jrle #np2
|
||
inc a0
|
||
#np2 move @player3_data+PR_NAME1,a14
|
||
jrle #np3 ;br=plr - no inits
|
||
move @player3_data+PR_COUNT,a14
|
||
jrle #np3
|
||
inc a0
|
||
#np3 move @player4_data+PR_NAME1,a14
|
||
jrle #np4 ;br=plr - no inits
|
||
move @player4_data+PR_COUNT,a14
|
||
jrle #np4
|
||
inc a0
|
||
#np4 subk 1,a0 ;br=more than 1 plyr ?
|
||
jrle #die ;br=no
|
||
|
||
;drop rank plaque
|
||
clr a0 ;player nbr.
|
||
move @player1_data+PR_RANK,a14
|
||
move @player2_data+PR_RANK,a8
|
||
move @player3_data+PR_RANK,a9
|
||
move @player4_data+PR_RANK,a10
|
||
cmp a8,a14
|
||
jrlo #rnk1 ;br=plr 1 is better
|
||
move a8,a14
|
||
movk 1,a0
|
||
#rnk1 cmp a9,a14
|
||
jrlo #rnk2
|
||
move a9,a14
|
||
movk 2,a0
|
||
#rnk2 cmp a10,a14
|
||
jrlo #rnk3
|
||
movk 3,a0
|
||
#rnk3
|
||
move a0,*a13(PDATA+16) ;flag for plyr nbr
|
||
movi BST_RNKred,a9,L
|
||
JSRP anim_plyr_plaque
|
||
|
||
;drop win streak plaque
|
||
|
||
clr a0 ;player nbr.
|
||
move @player1_data+PR_WINSTREAK,a14
|
||
inc a14 ;in case negative
|
||
move @player2_data+PR_WINSTREAK,a8
|
||
inc a8
|
||
move @player3_data+PR_WINSTREAK,a9
|
||
inc a9
|
||
move @player4_data+PR_WINSTREAK,a10
|
||
inc a10
|
||
cmp a8,a14
|
||
jrhi #rnk4 ;br=plr 1 is better
|
||
move a8,a14
|
||
movk 1,a0
|
||
#rnk4 cmp a9,a14
|
||
jrhi #rnk5
|
||
move a9,a14
|
||
movk 2,a0
|
||
#rnk5 cmp a10,a14
|
||
jrhi #rnk6
|
||
movk 3,a0
|
||
#rnk6
|
||
move a0,*a13(PDATA+16) ;flag for plyr nbr
|
||
movi BST_STKred,a9,L
|
||
JSRP anim_plyr_plaque
|
||
|
||
;drop best offense plaque
|
||
|
||
clr a0 ;player nbr.
|
||
move @player1_data+PR_PTS_SCORED,a14
|
||
inc a14 ;in case negative
|
||
move @player2_data+PR_PTS_SCORED,a8
|
||
inc a8
|
||
move @player3_data+PR_PTS_SCORED,a9
|
||
inc a9
|
||
move @player4_data+PR_PTS_SCORED,a10
|
||
inc a10
|
||
cmp a8,a14
|
||
jrhi #rnk7 ;br=plr 1 is better
|
||
move a8,a14
|
||
movk 1,a0
|
||
#rnk7 cmp a9,a14
|
||
jrhi #rnk8
|
||
move a9,a14
|
||
movk 2,a0
|
||
#rnk8 cmp a10,a14
|
||
jrhi #rnk9
|
||
movk 3,a0
|
||
#rnk9
|
||
move a0,*a13(PDATA+16) ;flag for plyr nbr
|
||
movi BST_OFFred,a9,L
|
||
JSRP anim_plyr_plaque
|
||
|
||
;drop best defense plaque
|
||
|
||
clr a0 ;player nbr.
|
||
move @player1_data+PR_PTS_ALLOWED,a14
|
||
move @player2_data+PR_PTS_ALLOWED,a8
|
||
move @player3_data+PR_PTS_ALLOWED,a9
|
||
move @player4_data+PR_PTS_ALLOWED,a10
|
||
cmp a8,a14
|
||
jrlo #rnka ;br=plr 1 is better
|
||
move a8,a14
|
||
movk 1,a0
|
||
#rnka cmp a9,a14
|
||
jrlo #rnkb
|
||
move a9,a14
|
||
movk 2,a0
|
||
#rnkb cmp a10,a14
|
||
jrlo #rnkc
|
||
movk 3,a0
|
||
#rnkc
|
||
move a0,*a13(PDATA+16) ;flag for plyr nbr
|
||
movi BST_DEFred,a9,L
|
||
JSRP anim_plyr_plaque
|
||
#die
|
||
DIE
|
||
|
||
|
||
best_plq_pals
|
||
.long PLAT_B_P
|
||
.long PLAT_G_P
|
||
.long PLAT_Y_P
|
||
.long PLAT_R_P
|
||
.long PLAT_G_P ;kit
|
||
.long PLAT_B_P
|
||
.long PLAT_R_P
|
||
.long PLAT_Y_P
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This PROCESS handles the showing of the players status thru plaques
|
||
;
|
||
; INPUT: reg a11 - ptr to plyr process
|
||
;-----------------------------------------------------------------------------
|
||
SUBR plyr_plaques
|
||
|
||
move *a11(PC_DATADDR),a0,L ;start of player data
|
||
|
||
clr a14
|
||
move a14,*a13(PDATA) ;counter of plaques
|
||
not a14
|
||
move a14,*a13(PDATA+16) ;flag for plyr nbr
|
||
|
||
;----------------------
|
||
;check 'created player'
|
||
|
||
move *a0(PR_CREATED_PLYR),a14
|
||
jrle #ccp2
|
||
|
||
movi custm_plr_imgs,a14
|
||
move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #ccp1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#ccp1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
|
||
;-----------------
|
||
;check player rank
|
||
|
||
#ccp2
|
||
move *a0(PR_COUNT),a1
|
||
jrz #nornk
|
||
|
||
movi top1_imgs,a14
|
||
move *a0(PR_RANK),a1
|
||
jrz #nornk
|
||
cmpi 1,a1
|
||
jreq #cpr0
|
||
movi top5_imgs,a14
|
||
cmpi 5,a1
|
||
jrls #cpr0
|
||
movi top10_imgs,a14
|
||
cmpi 10,a1
|
||
jrgt #nornk
|
||
#cpr0
|
||
move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #cpr1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#cpr1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
|
||
;-----------------------
|
||
;check player winstreaks
|
||
|
||
#nornk
|
||
move *a11(PC_DATADDR),a0,L
|
||
move *a0(PR_WINSTREAK),a1
|
||
subk 5,a1
|
||
jrlt #nowin
|
||
movi grt_win_strk_imgs,a14
|
||
move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #cpw1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#cpw1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
#nowin
|
||
|
||
;---------------------------
|
||
;check player teams defeated
|
||
|
||
move *a11(PC_DATADDR),a0,L
|
||
move *a0(PR_NUMDEF),a1
|
||
cmpi NUM_TEAMS,a1
|
||
jrlo #nochmp
|
||
movi nba_champ_imgs,a14
|
||
move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #cptd1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#cptd1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
#nochmp
|
||
|
||
;---------------------
|
||
;check defensive rank
|
||
|
||
move *a11(PC_DATADDR),a6,L ;start of player data
|
||
move *a6(PR_COUNT),a14
|
||
subk 5,a14
|
||
jrlt #nodef
|
||
; jrz #nodef
|
||
PUSH a11
|
||
calla find_record ;ret a11 - rec. number
|
||
move a11,a4
|
||
PULL a11
|
||
move a10,a10
|
||
jrz #ccp2 ;br=rec not found...not DEFENSE or OFFENSE check
|
||
calla get_plr_rank
|
||
move *a9,a8,L
|
||
move *a8(RS_DEF_RANK),a0
|
||
jrz #nodef
|
||
calla compute_plyr_def_rank
|
||
|
||
movi bst_def_imgs,a14
|
||
cmpi 1,a0
|
||
jrls #cdr0
|
||
movi top5_def_imgs,a14
|
||
cmpi 5,a0
|
||
jrls #cdr0
|
||
movi top10_def_imgs,a14
|
||
cmpi 10,a0
|
||
jrgt #nodef
|
||
|
||
#cdr0 move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #cdr1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#cdr1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
|
||
;---------------------
|
||
;check offensive rank
|
||
|
||
#nodef
|
||
move *a11(PC_DATADDR),a0,L
|
||
move *a0(PR_COUNT),a1
|
||
subk 5,a1
|
||
jrle #nooff
|
||
; jrz #nooff
|
||
move *a8(RS_OFF_RANK),a0
|
||
jrz #nooff
|
||
calla compute_plyr_off_rank
|
||
|
||
movi bst_off_imgs,a14
|
||
cmpi 1,a0
|
||
jrls #cor0
|
||
movi top5_off_imgs,a14
|
||
cmpi 5,a0
|
||
jrls #cor0
|
||
movi top10_off_imgs,a14
|
||
cmpi 10,a0
|
||
jrgt #nooff
|
||
|
||
#cor0 move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #cor1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#cor1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
|
||
;-------------------
|
||
;check world records
|
||
|
||
#nooff
|
||
move *a11(PC_DATADDR),a2,L ;start of player data
|
||
calla check_world_records ;ret. 14
|
||
move a14,a14
|
||
jrz #nowrld
|
||
|
||
movi wrldrec_imgs,a14
|
||
move *a11(PC_PLAYNUM),a10
|
||
sll 5,a10
|
||
add a10,a14
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #cwr1
|
||
addi 4*32,a14 ;get KIT image ptr.
|
||
#cwr1
|
||
move *a14,a9,L ;get img. from table
|
||
JSRP anim_plyr_plaque
|
||
|
||
#nowrld
|
||
DIE
|
||
|
||
|
||
|
||
.asg 183,PLAQUE_Y
|
||
|
||
#*****************************************************************************
|
||
;a9 = ptr to image
|
||
|
||
|
||
SUBRP anim_plyr_plaque
|
||
|
||
PUSHP a8
|
||
#app0
|
||
SLEEPK 1
|
||
move @HALT,a0
|
||
jrnz #app0
|
||
|
||
move *a13(PDATA),a14
|
||
jrz #app00
|
||
|
||
SLEEPK 10
|
||
#app00
|
||
move *a13(PDATA),a14
|
||
inc a14
|
||
move a14,*a13(PDATA) ;counter of plaques
|
||
|
||
move *a13(PDATA+16),a0
|
||
jrge #app1 ;br=player nbr passed in
|
||
|
||
move *a11(PC_PLAYNUM),a0
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #app1
|
||
addk 4,a0 ;add in offset for 2 PLYR KIT
|
||
#app1
|
||
sll 4,a0 ;x 16
|
||
addi plaque_xs,a0
|
||
move *a0,a0 ;x val
|
||
sll 16,a0
|
||
movi [PLAQUE_Y-(16*16),0],a1 ;y val
|
||
move a9,a2
|
||
|
||
move *a13(PDATA),a3
|
||
addi 20300,a3 ;z (allow FULLGAME PLAQUE over it)
|
||
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
movi [16,0],a7 ;y vel
|
||
|
||
move *a13(PDATA+16),a14
|
||
jrlt #nrm ;br=player nbr passed in
|
||
move a14,b0
|
||
sll 5,b0
|
||
addi best_plq_pals,b0,L
|
||
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
|
||
jrz #n2p
|
||
addi 4*32,b0 ;get KIT image ptr.
|
||
#n2p move *b0,b0,L
|
||
calla BEGINOBJP2
|
||
jruc #nrm2
|
||
#nrm
|
||
calla BEGINOBJ2
|
||
|
||
#nrm2
|
||
move *a13(PDATA+16),a0
|
||
jrge #plx ;br=player nbr passed in
|
||
move *a11(PC_PLAYNUM),a0
|
||
#plx
|
||
sll 5,a0
|
||
addi plaque_snds,a0
|
||
move *a0,a0,L
|
||
calla snd_play1
|
||
#waitf
|
||
SLEEPK 1
|
||
move *a8(OYPOS),a0
|
||
cmpi PLAQUE_Y,a0
|
||
jrlt #waitf
|
||
clr a0
|
||
move a0,*a8(OYVEL),L
|
||
|
||
move *a13(PDATA+16),a0
|
||
jrge #plx2 ;br=player nbr passed in
|
||
move *a11(PC_PLAYNUM),a0
|
||
#plx2
|
||
sll 5,a0
|
||
addi plaque_lnds_snds,a0
|
||
move *a0,a0,L
|
||
calla snd_play1
|
||
|
||
movk 22,a10
|
||
calla SHAKER2
|
||
|
||
move *a13(PDATA+16),a9
|
||
jrge #plx3 ;br=player nbr passed in
|
||
move *a11(PC_PLAYNUM),a9
|
||
#plx3
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #app2
|
||
addk 4,a9 ;add in offset for 2 PLYR KIT
|
||
#app2 sll 5,a9
|
||
addi plaque_flsh_pals,a9
|
||
move *a9,a9,L ;get pal flash tbl ptr.
|
||
#flsh
|
||
move *a9+,a0,L ;at end of table ?
|
||
jrnn #flsh1 ;br=yes
|
||
calla pal_getf
|
||
move a0,*a8(OPAL),L
|
||
SLEEPK 3
|
||
jruc #flsh
|
||
#flsh1
|
||
CREATE0 show_n_del_plate
|
||
|
||
PULLP a8
|
||
RETP
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR show_n_del_plate
|
||
|
||
SLEEP 32
|
||
calla DELOBJA8
|
||
|
||
DIE
|
||
|
||
|
||
|
||
;tmodex .long [20,0],[6ch,0],[0d7h,0],[12eh,0]
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR nosecrets_drw
|
||
|
||
move a8,a0
|
||
sll 5,a0
|
||
addi nosecret_imgs,a0
|
||
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
|
||
jrz nsec_0
|
||
addi 4*32,a0 ;get KIT image ptr.
|
||
nsec_0 move *a0,a2,L
|
||
|
||
move a8,a0
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz nsec_1
|
||
addk 4,a0 ;add in offset for 2 PLYR KIT
|
||
nsec_1 sll 4,a0 ;x 16
|
||
addi plaque_xs,a0
|
||
move *a0,a0 ;x val
|
||
sll 16,a0
|
||
movi [PLAQUE_Y,0],a1 ;18
|
||
movi 20450,a3
|
||
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
|
||
movi CLSDEAD,a5
|
||
clr a6
|
||
clr a7
|
||
calla BEGINOBJ2
|
||
|
||
; .ref blink_plyr2
|
||
;
|
||
; CREATE0 blink_plyr2
|
||
; move a0,a9
|
||
SLEEP 90
|
||
; move a9,a0
|
||
; calla KILL
|
||
; move a8,a0
|
||
calla DELOBJA8
|
||
DIE
|
||
|
||
|
||
nosecret_imgs
|
||
.long TurnNSblu
|
||
.long TurnNSgrn
|
||
.long TurnNSyel
|
||
.long TurnNSred
|
||
.long TurnNSgrn ;For kit
|
||
.long TurnNSblu
|
||
.long TurnNSred
|
||
.long TurnNSyel
|
||
|
||
|
||
#*****************************************************************************
|
||
;
|
||
; INPUT: reg a10 - X pos
|
||
; reg a11 - player number
|
||
******************************************************************************
|
||
SUBR fullgame_purchased
|
||
|
||
SLEEPK 1
|
||
move @HALT,a1
|
||
jrnz fullgame_purchased
|
||
|
||
move a10,a0 ;x val
|
||
movi [PLAQUE_Y-(16*16),0],a1 ;y val
|
||
move a9,a2 ;* image
|
||
movi 20500,a3 ;z pos
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
movi [16,0],a7 ;y vel
|
||
calla BEGINOBJ2
|
||
|
||
move a11,a0
|
||
sll 5,a0
|
||
addi plaque_snds,a0
|
||
move *a0,a0,L
|
||
calla snd_play1
|
||
;; SOUND1 plaque_fall1
|
||
#waitf
|
||
SLEEP 1
|
||
move *a8(OYPOS),a0
|
||
cmpi PLAQUE_Y,a0
|
||
jrlt #waitf
|
||
movi PLAQUE_Y,a0
|
||
move a0,*a8(OYPOS)
|
||
clr a0
|
||
move a0,*a8(OYVEL),L
|
||
|
||
move a11,a0
|
||
sll 5,a0
|
||
addi plaque_lnds_snds,a0
|
||
move *a0,a0,L
|
||
calla snd_play1
|
||
;; SOUND1 plaque_land1
|
||
|
||
movk 22,a10
|
||
calla SHAKER2
|
||
|
||
movk 3,a10
|
||
move @TWOPLAYERS,a1 ;0 = NO, 1 = YES 2 players
|
||
jrz #fgp1
|
||
addk 4,a11 ;add in offset for 2 PLYR KIT
|
||
#fgp1 sll 5,a11
|
||
addi plaque_flsh_pals,a11
|
||
move *a11,a11,L ;get pal flash tbl ptr.
|
||
#fgp2
|
||
move *a11+,a0,L ;at end of table ?
|
||
jrnn #fgp3 ;br=yes
|
||
calla pal_getf
|
||
move a0,*a8(OPAL),L
|
||
SLEEPK 3
|
||
jruc #fgp2
|
||
#fgp3
|
||
SLEEP 20
|
||
calla DELOBJA8
|
||
DIE
|
||
|
||
|
||
plaque_snds
|
||
.long plaque_fall1,plaque_fall2,plaque_fall3,plaque_fall4
|
||
|
||
plaque_lnds_snds
|
||
.long plaque_land1,plaque_land2,plaque_land3,plaque_land4
|
||
|
||
plaque_xs
|
||
.word 13,105,207,299 ;4 plr
|
||
.word 0,59,254,0 ;2 plr kit
|
||
|
||
plaque_flsh_pals
|
||
.long p1_flsh_pals
|
||
.long p2_flsh_pals
|
||
.long p3_flsh_pals
|
||
.long p4_flsh_pals
|
||
.long p2_flsh_pals ;2 plyr kit
|
||
.long p1_flsh_pals
|
||
.long p4_flsh_pals
|
||
.long p3_flsh_pals
|
||
|
||
|
||
p1_flsh_pals
|
||
.long PLTF5_B_P
|
||
.long PLAT_B_P
|
||
.long PLTF5_B_P
|
||
.long PLAT_B_P
|
||
.long PLTF4_B_P
|
||
.long PLTF3_B_P
|
||
.long PLTF2_B_P
|
||
.long PLTF1_B_P
|
||
.long PLAT_B_P
|
||
.long 1
|
||
|
||
p2_flsh_pals
|
||
.long PLTF5_G_P
|
||
.long PLAT_G_P
|
||
.long PLTF5_G_P
|
||
.long PLAT_G_P
|
||
.long PLTF4_G_P
|
||
.long PLTF3_G_P
|
||
.long PLTF2_G_P
|
||
.long PLTF1_G_P
|
||
.long PLAT_G_P
|
||
.long 1
|
||
|
||
p3_flsh_pals
|
||
.long PLTF5_Y_P
|
||
.long PLAT_Y_P
|
||
.long PLTF5_Y_P
|
||
.long PLAT_Y_P
|
||
.long PLTF4_Y_P
|
||
.long PLTF3_Y_P
|
||
.long PLTF2_Y_P
|
||
.long PLTF1_Y_P
|
||
.long PLAT_Y_P
|
||
.long 1
|
||
|
||
|
||
p4_flsh_pals
|
||
.long PLTF5_R_P
|
||
.long PLAT_R_P
|
||
.long PLTF5_R_P
|
||
.long PLAT_R_P
|
||
.long PLTF4_R_P
|
||
.long PLTF3_R_P
|
||
.long PLTF2_R_P
|
||
.long PLTF1_R_P
|
||
.long PLAT_R_P
|
||
.long 1
|
||
|
||
|
||
custm_plr_imgs
|
||
.long Customblu
|
||
.long Customgrn
|
||
.long Customyel
|
||
.long Customred
|
||
.long Customgrn ;For kit
|
||
.long Customblu
|
||
.long Customred
|
||
.long Customyel
|
||
|
||
wrldrec_imgs
|
||
.long WorldRblu
|
||
.long WorldRgrn
|
||
.long WorldRyel
|
||
.long WorldRred
|
||
.long WorldRgrn ;For kit
|
||
.long WorldRblu
|
||
.long WorldRred
|
||
.long WorldRyel
|
||
|
||
top10_imgs
|
||
.long TopTenblu
|
||
.long TopTengrn
|
||
.long TopTenyel
|
||
.long TopTenred
|
||
.long TopTengrn ;For kit
|
||
.long TopTenblu
|
||
.long TopTenred
|
||
.long TopTenyel
|
||
|
||
|
||
top5_imgs
|
||
.long TopFivblu
|
||
.long TopFivgrn
|
||
.long TopFivyel
|
||
.long TopFivred
|
||
.long TopFivgrn ;For kit
|
||
.long TopFivblu
|
||
.long TopFivred
|
||
.long TopFivyel
|
||
|
||
|
||
top1_imgs
|
||
.long onePlblu
|
||
.long onePlgrn
|
||
.long onePlyel
|
||
.long onePlred
|
||
.long onePlgrn ;For kit
|
||
.long onePlblu
|
||
.long onePlred
|
||
.long onePlyel
|
||
|
||
|
||
bst_def_imgs
|
||
.long BstDfPlblu
|
||
.long BstDfPlgrn
|
||
.long BstDfPlyel
|
||
.long BstDfPlred
|
||
.long BstDfPlgrn ;For kit
|
||
.long BstDfPlblu
|
||
.long BstDfPlred
|
||
.long BstDfPlyel
|
||
|
||
top5_def_imgs
|
||
.long Top5DPblu
|
||
.long Top5DPgrn
|
||
.long Top5DPyel
|
||
.long Top5DPred
|
||
.long Top5DPgrn ;For kit
|
||
.long Top5DPblu
|
||
.long Top5DPred
|
||
.long Top5DPyel
|
||
|
||
top10_def_imgs
|
||
.long Top10Dblu
|
||
.long Top10Dgrn
|
||
.long Top10Dyel
|
||
.long Top10Dred
|
||
.long Top10Dgrn ;For kit
|
||
.long Top10Dblu
|
||
.long Top10Dred
|
||
.long Top10Dyel
|
||
|
||
bst_off_imgs
|
||
.long BstOfPlblu
|
||
.long BstOfPlgrn
|
||
.long BstOfPlyel
|
||
.long BstOfPlred
|
||
.long BstOfPlgrn ;For kit
|
||
.long BstOfPlblu
|
||
.long BstOfPlred
|
||
.long BstOfPlyel
|
||
|
||
top5_off_imgs
|
||
.long Top5OPblu
|
||
.long Top5OPgrn
|
||
.long Top5OPyel
|
||
.long Top5OPred
|
||
.long Top5OPgrn ;For kit
|
||
.long Top5OPblu
|
||
.long Top5OPred
|
||
.long Top5OPyel
|
||
|
||
top10_off_imgs
|
||
.long Top10Oblu
|
||
.long Top10Ogrn
|
||
.long Top10Oyel
|
||
.long Top10Ored
|
||
.long Top10Ogrn ;For kit
|
||
.long Top10Oblu
|
||
.long Top10Ored
|
||
.long Top10Oyel
|
||
|
||
grt_win_strk_imgs
|
||
.long GrtWnSblu
|
||
.long GrtWnSgrn
|
||
.long GrtWnSyel
|
||
.long GrtWnSred
|
||
.long GrtWnSgrn ;For kit
|
||
.long GrtWnSblu
|
||
.long GrtWnSred
|
||
.long GrtWnSyel
|
||
|
||
nba_champ_imgs
|
||
.long NbaChpblu
|
||
.long NbaChpgrn
|
||
.long NbaChpyel
|
||
.long NbaChpred
|
||
.long NbaChpgrn ;For kit
|
||
.long NbaChpblu
|
||
.long NbaChpred
|
||
.long NbaChpyel
|
||
|
||
|
||
|
||
.asg 157,VS_X
|
||
.asg -76,VS_Y
|
||
|
||
|
||
.asg 224,COMBIN_Y ;vs. screen head Y position
|
||
.asg 10,COMBIN_X1 ;vs. screen head X position 1
|
||
.asg 105,COMBIN_X2 ;vs. screen head X position 2
|
||
.asg 203,COMBIN_X3 ;vs. screen head X position 3
|
||
.asg 298,COMBIN_X4 ;vs. screen head X position 4
|
||
.asg 17,COMBIN_W ;vs. screen head width
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine prints the headers for the team stat. info
|
||
;
|
||
; INPUT: reg. a1 - team number (0-1)
|
||
; reg. a5 - obj. id
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_team_stat_title
|
||
|
||
move a0,a11
|
||
move a1,a10
|
||
sll 5,a1
|
||
addi stat_xys,a1
|
||
move *a1,a9,L ;get coor. tbl addr.
|
||
|
||
movi 1400,a3 ;z pos (sorting)
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
|
||
move *a9+,a2,L ;get img
|
||
move *a9+,a1,L ;get img
|
||
move *a9+,a0,L ;get img
|
||
movi BAST_Y_P,b0
|
||
calla BEGINOBJP2
|
||
move *a9+,a2,L ;get img
|
||
move *a9+,a1,L ;get img
|
||
move *a9,a0,L ;get img
|
||
movi BAST_C_P,b0
|
||
calla BEGINOBJP2
|
||
move a11,a0
|
||
move a10,a1
|
||
rets
|
||
|
||
stat_xys
|
||
.long tm1_stxy
|
||
.long tm2_stxy
|
||
|
||
tm1_stxy
|
||
.long TEAMST,[31,0],[112,0] ;team 1
|
||
.long TEAMST4,[31,0],[104,0] ;team 1
|
||
tm2_stxy
|
||
.long TEAMST,[31,0],[216,0] ;team 2
|
||
.long TEAMST4,[31,0],[208,0] ;team 2
|
||
|
||
|
||
.asg 193,TM1_STAT_X
|
||
.asg 296,TM2_STAT_X
|
||
.asg 44,WINS_Y
|
||
.asg 56,OFF_RANK_Y
|
||
.asg 68,DEF_RANK_Y
|
||
.asg 80,POPULAR_Y
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine just deletes all the objects that show team stats
|
||
;
|
||
;
|
||
; INPUT: reg a5 - obj id to delete
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_team_stats
|
||
|
||
PUSH a0,a1
|
||
move a5,a0
|
||
calla obj_del1c
|
||
PULL a0,a1
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine prints the NBA teams stats during TEAM SELECT
|
||
;
|
||
; INPUT: a0 - NBA team number (0-NUM_TEAMS)
|
||
; a1 - team number (0-1)
|
||
;-----------------------------------------------------------------------------
|
||
SUBR print_team_stats
|
||
|
||
move a0,a0
|
||
jrn pts_1 ;br=invalid team number
|
||
cmpi NUM_TEAMS,a0
|
||
jrhi pts_1 ;br=invalid team number
|
||
|
||
PUSH a0,a1 ;save NBA team number
|
||
|
||
movi TM1_STAT_OBJS,a5 ;object ID
|
||
move a1,a1 ;team 1 ?
|
||
jreq pts_00 ;br=yep
|
||
movi TM2_STAT_OBJS,a5 ;object ID
|
||
pts_00
|
||
move a5,@mess_objid
|
||
callr del_team_stats
|
||
callr create_team_stat_title
|
||
|
||
calla compute_team_def_off_rank ;ret. a6 - ptr. to TEAM STATS
|
||
|
||
movi TM1_STAT_X,a0
|
||
move a1,a1
|
||
jreq pts_0
|
||
movi TM2_STAT_X,a0
|
||
pts_0 move a0,@mess_cursx ;message cursor pos X
|
||
|
||
movi bast8t_ascii,a0
|
||
move a0,@message_ascii,L ;* ascii lookup table
|
||
movi BAST_W_P,a0
|
||
move a0,@message_palette,L
|
||
movi WINS_Y,a0
|
||
move a0,@mess_cursy ;message cursor pos Y
|
||
|
||
move a6,a11 ;save TEAM stat ram ptr
|
||
|
||
calla get_teams_pop
|
||
|
||
;print wins
|
||
calla clear_buffers
|
||
|
||
; movi message_buffer,a3 ;* string dest
|
||
; clr a0
|
||
; move a0,*a3,L
|
||
; move a0,*a3(16),L
|
||
|
||
PULL a0
|
||
move a0,a14 ;get NBA team nbr (0-NUM_TEAMS)
|
||
PUSH a0
|
||
|
||
sll 5,a14
|
||
addi teams_pop,a14,L
|
||
move *a14,a0,L ;get team 'picked count' audit
|
||
move a0,a2
|
||
move *a11(TR_WINS),a1
|
||
sub a1,a0 ;a0=games lost
|
||
jrle pts_0a
|
||
|
||
movi 100,a14 ;2 digits of signifigence
|
||
mpys a14,a1 ;games won * 100
|
||
divs a2,a1 ;/ total games
|
||
move a1,a0
|
||
; calla dec_to_pct
|
||
calla dec_to_asc
|
||
calla concat_string
|
||
; calla print_string_C
|
||
movi str_prcnt,a4
|
||
calla concat_rom_string
|
||
calla print_string_R
|
||
jruc pts_0b
|
||
|
||
pts_0a movi str_100,a4
|
||
; calla print_string_C2 ;centered
|
||
calla print_string_R2
|
||
|
||
;print offensive rank
|
||
pts_0b movi message_buffer,a3 ;* string dest
|
||
clr a0
|
||
move a0,*a3,L
|
||
movi OFF_RANK_Y,a0
|
||
move a0,@mess_cursy ;message cursor pos Y
|
||
move *a11(TR_OFF_RANK),a0
|
||
movi NUM_TEAMS+1,a1 ;max value
|
||
calla dec_to_asc
|
||
calla concat_string
|
||
; calla print_string_C
|
||
calla print_string_R
|
||
|
||
;print defensive rank
|
||
movi message_buffer,a3 ;* string dest
|
||
clr a0
|
||
move a0,*a3,L
|
||
movi DEF_RANK_Y,a0
|
||
move a0,@mess_cursy ;message cursor pos Y
|
||
move *a11(TR_DEF_RANK),a0
|
||
movi NUM_TEAMS+1,a1 ;max value
|
||
calla dec_to_asc
|
||
calla concat_string
|
||
calla print_string_R
|
||
; calla print_string_C
|
||
|
||
;print teams popularity
|
||
|
||
PULL a0,a1
|
||
PUSH a1
|
||
move a0,a2
|
||
callr print_ranking
|
||
PULL a1
|
||
|
||
;a1=0 or 1 for team
|
||
;If Rodman is on this team, change his hair color...
|
||
|
||
move a1,a1
|
||
jrnz #tm2
|
||
|
||
movi rodman_colors,a1
|
||
|
||
move @head1_obj,a14,L
|
||
move *a14(OIMG),a0,L
|
||
.ref ROD_CHI
|
||
cmpi ROD_CHI,a0
|
||
jrz #yes
|
||
|
||
move @head2_obj,a14,L
|
||
move *a14(OIMG),a0,L
|
||
cmpi ROD_CHI,a0
|
||
jrz #yes
|
||
jruc pts_1
|
||
|
||
#tm2
|
||
|
||
movi rodman_colors+16,a1
|
||
|
||
move @head3_obj,a14,L
|
||
move *a14(OIMG),a0,L
|
||
cmpi ROD_CHI,a0
|
||
jrz #yes
|
||
|
||
.ref head1_obj
|
||
.ref head2_obj
|
||
.ref head3_obj
|
||
.ref head4_obj
|
||
|
||
move @head4_obj,a14,L
|
||
move *a14(OIMG),a0,L
|
||
cmpi ROD_CHI,a0
|
||
jrnz pts_1
|
||
|
||
#yes
|
||
move *a1,a0
|
||
inc a0
|
||
move a0,*a1
|
||
cmpi 8,a0
|
||
jrnz #restuff
|
||
clr a0
|
||
move a0,*a1
|
||
#restuff
|
||
sll 5,a0
|
||
addi #rod_tbl,a0
|
||
move *a0,a0,L
|
||
move a14,a2
|
||
calla pal_getf
|
||
move a0,*a2(OPAL)
|
||
|
||
pts_1 rets
|
||
|
||
|
||
SUBR check_rodman
|
||
;Mugshot
|
||
|
||
cmpi ROD_CHI,a2
|
||
jrnz #ex
|
||
|
||
movi rodman_colors,a1
|
||
|
||
move a14,a14
|
||
jrz #tm1
|
||
|
||
movi rodman_colors+16,a1
|
||
#tm1
|
||
move *a1,a0
|
||
sll 5,a0
|
||
addi #rod_tbl,a0
|
||
move *a0,a0,L
|
||
|
||
#ex rets
|
||
|
||
#rod_tbl
|
||
.ref CHI_RODBP
|
||
.ref CHI_RODOP
|
||
.ref CHI_RODPP
|
||
.ref CHI_RODRP
|
||
.ref CHI_RODWP
|
||
.ref CHI_RODYP
|
||
.ref CHI_RODKP
|
||
.ref CHI_RODGP
|
||
|
||
.long CHI_RODGP
|
||
.long CHI_RODBP
|
||
.long CHI_RODOP
|
||
.long CHI_RODPP
|
||
.long CHI_RODRP
|
||
.long CHI_RODWP
|
||
.long CHI_RODYP
|
||
.long CHI_RODKP
|
||
|
||
#*
|
||
SUBR check_rodman2
|
||
;Small head
|
||
|
||
.ref RODMAN1
|
||
cmpi RODMAN1+240h,a2
|
||
jrnz #ex
|
||
|
||
movi rodman_colors,a1
|
||
|
||
move a14,a14
|
||
jrz #tm1
|
||
|
||
movi rodman_colors+16,a1
|
||
#tm1
|
||
move *a1,a0
|
||
sll 5,a0
|
||
addi #rod_tbl,a0
|
||
move *a0,a0,L
|
||
|
||
#ex rets
|
||
|
||
#rod_tbl
|
||
.ref RODMANBP
|
||
.ref RODMANKP
|
||
.ref RODMANOP
|
||
.ref RODMANPP
|
||
.ref RODMANRP
|
||
.ref RODMANWP
|
||
.ref RODMANYP
|
||
.ref RODMANGP
|
||
|
||
.long RODMANGP
|
||
.long RODMANBP
|
||
.long RODMANOP
|
||
.long RODMANPP
|
||
.long RODMANRP
|
||
.long RODMANWP
|
||
.long RODMANYP
|
||
.long RODMANKP
|
||
|
||
str_prcnt .string "%",0
|
||
.even
|
||
|
||
str_100 .string "100%",0
|
||
.even
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine prints the NBA TEAMS popularity
|
||
;
|
||
;INPUT: reg a2 - NBA team number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR print_ranking
|
||
|
||
clr a10 ;current rank
|
||
clr a8 ;count
|
||
movi sorted_teams,a4
|
||
movi teams_pop,a5
|
||
move *a5,a9,L ;current count
|
||
#keep_looking
|
||
move *a5+,a0,L
|
||
cmp a0,a9
|
||
jreq #no_change
|
||
move a0,a9 ;new count
|
||
move a8,a10 ;new rank
|
||
#no_change
|
||
inc a8
|
||
cmpi NUM_TEAMS,a8 ;safety
|
||
jrhs #last
|
||
move *a4+,a3
|
||
cmp a3,a2
|
||
jrne #keep_looking
|
||
#last
|
||
movi POPULAR_Y,a0
|
||
move a0,@mess_cursy ;message cursor pos Y
|
||
|
||
sll 5,a10 ;x 32 bits
|
||
addi #txt_table,a10
|
||
move *a10,a4,L
|
||
calla copy_rom_string ;"2nd, 3rd etc"
|
||
; calla print_string_C
|
||
calla print_string_R
|
||
rets
|
||
|
||
|
||
.even
|
||
#txt_table
|
||
.long #S1,#S2,#S3,#S4
|
||
.long #S5,#S6,#S7,#S8
|
||
.long #S9,#S10,#S11,#S12
|
||
.long #S13,#S14,#S15,#S16
|
||
.long #S17,#S18,#S19,#S20
|
||
.long #S21,#S22,#S23,#S24
|
||
.long #S25,#S26,#S27,#S28,#S29
|
||
|
||
.even
|
||
#S1 .string "1",0
|
||
#S2 .string "2",0
|
||
#S3 .string "3",0
|
||
#S4 .string "4",0
|
||
#S5 .string "5",0
|
||
#S6 .string "6",0
|
||
#S7 .string "7",0
|
||
#S8 .string "8",0
|
||
#S9 .string "9",0
|
||
#S10 .string "10",0
|
||
#S11 .string "11",0
|
||
#S12 .string "12",0
|
||
#S13 .string "13",0
|
||
#S14 .string "14",0
|
||
#S15 .string "15",0
|
||
#S16 .string "16",0
|
||
#S17 .string "17",0
|
||
#S18 .string "18",0
|
||
#S19 .string "19",0
|
||
#S20 .string "20",0
|
||
#S21 .string "21",0
|
||
#S22 .string "22",0
|
||
#S23 .string "23",0
|
||
#S24 .string "24",0
|
||
#S25 .string "25",0
|
||
#S26 .string "26",0
|
||
#S27 .string "27",0
|
||
#S28 .string "28",0
|
||
#S29 .string "29",0
|
||
.even
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine creates the objects underneath the scores
|
||
; on the stats page
|
||
;
|
||
; INPUT: reg a0 - xy table offset
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_score_backdrop
|
||
|
||
sll 5,a0
|
||
addi scr_bkdrp_ptrs,a0,L
|
||
move *a0,a0,L
|
||
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
move *a0+,a14,W ;flip image ?
|
||
jrz csb_1 ;br=nope
|
||
movi M_FLIPH|DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
csb_1
|
||
move *a0+,a1,L ;Y pos
|
||
move *a0,a0,L ;X pos
|
||
movi SCORE,a2,L
|
||
movi 1400,a3 ;z pos (sorting)
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
rets
|
||
|
||
|
||
scr_bkdrp_ptrs
|
||
.long bkdrp1_xys
|
||
.long bkdrp2_xys
|
||
|
||
bkdrp1_xys
|
||
.word 0 ;flip img flag
|
||
.long [9,0],[12,0] ;stats screen left
|
||
|
||
bkdrp2_xys
|
||
.word 1
|
||
.long [9,0],[388,0] ;stats screen right
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This PROCESS creates the BACKDROP for the squad number
|
||
; during team select and animates the backdrop
|
||
;
|
||
; INPUT: a10 = table offset to use for coordinates
|
||
;-----------------------------------------------------------------------------
|
||
SUBR anim_squad_bball
|
||
|
||
sll 5,a10
|
||
addi squad_ball_xys,a10
|
||
move *a10+,a1 ;Y coor.
|
||
sll 16,a1
|
||
move *a10,a0 ;X coor.
|
||
sll 16,a0
|
||
movi 16000,a3 ;z pos
|
||
movi SQDBAL01,a2,L
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
|
||
;now animate bball
|
||
asb_0
|
||
movi ball_anim_tbl,a10,L
|
||
asb_1
|
||
move *a10+,a0,L ;new image
|
||
movi DMAWNZ|M_SCRNREL,a1 ;DMA flags
|
||
calla obj_aniq
|
||
SLEEPK 4
|
||
cmpi ball_anim_tbl_end,a10
|
||
jrlo asb_1
|
||
jruc asb_0
|
||
DIE
|
||
|
||
|
||
squad_ball_xys
|
||
.word TM1_Y+4,TM1_X-88
|
||
.word TM2_Y+4,TM2_X-95
|
||
|
||
|
||
ball_anim_tbl
|
||
.long SQDBAL01
|
||
.long SQDBAL02
|
||
.long SQDBAL03
|
||
.long SQDBAL04
|
||
.long SQDBAL05
|
||
.long SQDBAL06
|
||
.long SQDBAL07
|
||
.long SQDBAL08
|
||
.long SQDBAL09
|
||
.long SQDBAL10
|
||
.long SQDBAL11
|
||
.long SQDBAL12
|
||
.long SQDBAL13
|
||
.long SQDBAL14
|
||
.long SQDBAL15
|
||
.long SQDBAL16
|
||
.long SQDBAL17
|
||
.long SQDBAL18
|
||
.long SQDBAL19
|
||
.long SQDBAL20
|
||
.long SQDBAL21
|
||
.long SQDBAL22
|
||
.long SQDBAL23
|
||
.long SQDBAL24
|
||
.long SQDBAL25
|
||
.long SQDBAL26
|
||
.long SQDBAL27
|
||
.long SQDBAL28
|
||
.long SQDBAL29
|
||
.long SQDBAL30
|
||
ball_anim_tbl_end
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine creates the NUMBERS representing the squad
|
||
; number during team select
|
||
;
|
||
; INPUT: a0 = team number (table offset for coordinates)
|
||
;RETURN: a8 = ptr. to squad nbr. obj. ram
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_team_squad_nbr
|
||
|
||
PUSH a10,a11
|
||
move a0,a10
|
||
CREATE0 anim_squad_bball
|
||
move a10,a0
|
||
sll 5,a0 ;x 32 bits
|
||
addi squad_xys,a0
|
||
move *a0+,a1
|
||
sll 16,a1 ;y pos
|
||
move *a0,a0 ;x val
|
||
sll 16,a0
|
||
|
||
move a10,a10
|
||
jrnz crsn_1a ;br=team 1
|
||
move @team1,a2
|
||
jrnn crsn_1
|
||
clr a2
|
||
crsn_1 sll 4,a2 ;offset into TEAM LINEUP array
|
||
addi tm1set,a2 ;point to team
|
||
move *a2,a2 ;get current squad nbr
|
||
jruc crsn_2a
|
||
crsn_1a
|
||
move @team2,a2
|
||
jrnn crsn_2
|
||
clr a2
|
||
crsn_2 sll 4,a2 ;offset into TEAM LINEUP array
|
||
addi tm2set,a2 ;point to team
|
||
move *a2,a2 ;get current squad nbr
|
||
crsn_2a
|
||
; movi SQUD_01,a2 ;* image
|
||
sll 5,a2
|
||
addi squd_nbr_imgs,a2
|
||
move *a2,a2,L
|
||
|
||
|
||
movi 19000,a3 ;z pos
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
PULL a10,a11
|
||
rets
|
||
|
||
squad_xys
|
||
.word TM1_Y+44,TM1_X+3
|
||
.word TM2_Y+44,TM2_X-4
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine updates the teams squad number to reflect the current
|
||
; squad being shown
|
||
;
|
||
; INPUT: reg a8 - ptr. to teams squad nbr. obj
|
||
; reg a14 - squad number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_team_squad_nbr
|
||
|
||
sll 5,a14
|
||
addi squd_nbr_imgs,a14
|
||
move *a14,a0,L ;NEW image addr
|
||
movi DMAWNZ|M_SCRNREL,a1 ;DMA flags
|
||
calla obj_aniq ;change object image
|
||
rets
|
||
|
||
|
||
squd_nbr_imgs
|
||
.long SQUD_01,SQUD_02,SQUD_03,SQUD_04,SQUD_05
|
||
.long SQUD_06,SQUD_07,SQUD_08,SQUD_09,SQUD_10
|
||
.long SQUD_11,SQUD_12,SQUD_13,SQUD_14,SQUD_15
|
||
.long SQUD_16,SQUD_17,SQUD_18,SQUD_19,SQUD_20,SQUD_20
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This PROCESS flashes the plate behind the players heads
|
||
; on the team select screen
|
||
;
|
||
; INPUT: a10 - team number (0-1)
|
||
; a11 - ptr. to plyr. head backdrop obj
|
||
;-----------------------------------------------------------------------------
|
||
SUBR flash_backdrop
|
||
|
||
sll 6,a10
|
||
addi flsh_bkdrop_tbl,a10,L
|
||
move *a10+,a9,L ;get start tbl addr.
|
||
move *a10,a10,L ;get end tbl addr.
|
||
move a11,a8
|
||
|
||
fbk_1 move *a9+,a0,L
|
||
calla pal_getf
|
||
move a0,*a8(OPAL),L ;Set palette & constant
|
||
SLEEPK 3
|
||
cmp a10,a9
|
||
jrlo fbk_1
|
||
DIE
|
||
|
||
|
||
flsh_bkdrop_tbl
|
||
.long bflsh_bkdrop_tbl,bflsh_bkdrop_tbl_end
|
||
.long rflsh_bkdrop_tbl,rflsh_bkdrop_tbl_end
|
||
|
||
bflsh_bkdrop_tbl
|
||
.long SQDFB7_P
|
||
.long SQAD_VB_P
|
||
.long SQDFB7_P
|
||
.long SQAD_VB_P
|
||
.long SQDFB7_P
|
||
.long SQDFB6_P
|
||
.long SQDFB5_P
|
||
.long SQDFB4_P
|
||
.long SQDFB3_P
|
||
.long SQDFB2_P
|
||
.long SQDFB1_P
|
||
.long SQAD_VB_P
|
||
bflsh_bkdrop_tbl_end
|
||
|
||
|
||
rflsh_bkdrop_tbl
|
||
.long SQDFR7_P
|
||
.long SQAD_VR_P
|
||
.long SQDFR7_P
|
||
.long SQAD_VR_P
|
||
.long SQDFR7_P
|
||
.long SQDFR6_P
|
||
.long SQDFR5_P
|
||
.long SQDFR4_P
|
||
.long SQDFR3_P
|
||
.long SQDFR2_P
|
||
.long SQDFR1_P
|
||
.long SQAD_VR_P
|
||
rflsh_bkdrop_tbl_end
|
||
|
||
;POWER-UP logic
|
||
;-----------------------------------------------------------------------------
|
||
; This PROCESS (for each player in game) lets the players input
|
||
; a button combination for secrets
|
||
;
|
||
; INPUT: reg a10 - player number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR plyr_get_combination
|
||
|
||
;wait for player to join-in
|
||
pgc_0
|
||
SLEEPK 2
|
||
move @inmatchup,a0
|
||
jrz pgc_5 ;not in MATCH_UP screen, exit
|
||
move @PSTATUS,a0
|
||
btst a10,a0
|
||
jrz pgc_0 ;br=plyr hasn't joined in
|
||
|
||
;clear ram
|
||
clr a14
|
||
move a10,a0
|
||
sll 5,a0
|
||
addi butn_cnt_ram_ptr_tbl,a0,L
|
||
move *a0,a0,L ;get pointer to ram
|
||
move a14,*a0 ;clear plyr button cnt ram
|
||
|
||
callr create_combo_symbol_backdrops ;Want to keep this A8!
|
||
;MJT Start
|
||
move a10,a0
|
||
sll 5,a0
|
||
BSSX lock_ram,32*4
|
||
addi lock_ram,a0
|
||
move a8,*a0,L
|
||
;MJT End
|
||
|
||
|
||
callr create_combination_symbols
|
||
|
||
pgc_1
|
||
SLEEPK 1
|
||
move @pup_lockcombo,a0
|
||
btst a10,a0
|
||
jrnz pgc_flash
|
||
|
||
move a10,a0
|
||
calla get_but_val_down
|
||
move a0,a3
|
||
jrz pgc_1
|
||
|
||
move a10,a0
|
||
sll 5,a0
|
||
addi combo_sounds,a0
|
||
move *a0,a0,L
|
||
calla snd_play1
|
||
|
||
clr a2
|
||
move a10,a0
|
||
calla get_stick_val_cur
|
||
btst 0,a0 ;is joystick UP ?
|
||
jrz pgc_1a ;br=no
|
||
movi -1,a2 ;flag - dec. not inc. value
|
||
pgc_1a
|
||
btst 0,a3 ;shoot button pressed ?
|
||
jrz pgc_2 ;br=nope
|
||
callr update_shoot_butn_cnt
|
||
pgc_2
|
||
btst 1,a3 ;pass button pressed ?
|
||
jrz pgc_3 ;br=nope
|
||
callr update_pass_butn_cnt
|
||
pgc_3
|
||
btst 2,a3 ;turbo button pressed ?
|
||
jrz pgc_4 ;br=nope
|
||
callr update_turbo_butn_cnt
|
||
|
||
pgc_4 callr del_combination_symbols
|
||
callr create_combination_symbols
|
||
|
||
move @inmatchup,a0
|
||
jrnz pgc_1
|
||
pgc_5
|
||
DIE
|
||
|
||
pgc_flash
|
||
movi 0101h,a2
|
||
move a2,*a8(OCONST)
|
||
|
||
movk 4,a11
|
||
#again
|
||
setf 4,0,0
|
||
movk M_CONNON,a0 ;Replace non-zero data with constant
|
||
move a0,*a8(OCTRL) ;Write 4 low bits
|
||
setf 16,1,0
|
||
movk 3,a9
|
||
#tg0
|
||
move @inmatchup,a0
|
||
jrz #tg1
|
||
SLEEPK 1
|
||
dsj a9,#tg0
|
||
#tg1
|
||
setf 4,0,0
|
||
movk M_WRNONZ,a0
|
||
move a0,*a8(OCTRL) ;Write 4 low bits
|
||
setf 16,1,0
|
||
|
||
movk 3,a9
|
||
#tg2
|
||
move @inmatchup,a0
|
||
jrz pgc_5
|
||
SLEEPK 1
|
||
dsj a9,#tg2
|
||
|
||
dsj a11,#again
|
||
jruc pgc_5
|
||
|
||
|
||
combo_sounds
|
||
.long combo_but1,combo_but2
|
||
.long combo_but3,combo_but4
|
||
|
||
|
||
.asg 0000000000001111b,PASS_CNT_MASK
|
||
.asg 0000000011110000b,SHOOT_CNT_MASK
|
||
.asg 0000111100000000b,TURBO_CNT_MASK
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine updates the players TURBO button hit count
|
||
;
|
||
; INPUT: reg. a2 (if negative, decrement value)
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_turbo_butn_cnt
|
||
|
||
move a10,a0
|
||
sll 5,a0
|
||
addi butn_cnt_ram_ptr_tbl,a0,L
|
||
move *a0,a0,L ;get pointer to ram
|
||
move *a0,a1 ;get plyr button cnt ram value
|
||
move a1,a14
|
||
andni TURBO_CNT_MASK,a14 ;clear turbo button count
|
||
andi TURBO_CNT_MASK,a1
|
||
srl 8,a1 ;put into 1st nibble
|
||
|
||
move a2,a2 ;dec. value ?
|
||
jrn utbc_1 ;br=negative, YEP
|
||
inc a1
|
||
cmpi NBR_SYMBOLS,a1
|
||
jrlo utbc_2 ;br=haven't cycled all heads
|
||
clr a1
|
||
jruc utbc_2
|
||
utbc_1
|
||
dec a1
|
||
jrge utbc_2 ;br=value >= 0
|
||
movi NBR_SYMBOLS-1,a1 ;set to bottom of table
|
||
utbc_2
|
||
sll 8,a1
|
||
or a14,a1
|
||
move a1,*a0 ;save PASS button count value
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine updates the players SHOOT button hit count
|
||
;
|
||
; INPUT: reg. a2 (if negative, decrement value)
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_shoot_butn_cnt
|
||
|
||
move a10,a0
|
||
sll 5,a0
|
||
addi butn_cnt_ram_ptr_tbl,a0,L
|
||
move *a0,a0,L ;get pointer to ram
|
||
move *a0,a1 ;get plyr button cnt ram value
|
||
move a1,a14
|
||
andni SHOOT_CNT_MASK,a14 ;clear turbo button count
|
||
andi SHOOT_CNT_MASK,a1
|
||
srl 4,a1 ;put into 1st nibble
|
||
|
||
move a2,a2 ;dec. value ?
|
||
jrn usbc_1 ;br=negative, YEP
|
||
inc a1
|
||
cmpi NBR_SYMBOLS,a1
|
||
jrlo usbc_2 ;br=haven't cycled all heads
|
||
clr a1
|
||
jruc usbc_2
|
||
usbc_1
|
||
dec a1
|
||
jrge usbc_2 ;br=value >= 0
|
||
movi NBR_SYMBOLS-1,a1 ;set to bottom of table
|
||
usbc_2
|
||
sll 4,a1
|
||
or a14,a1
|
||
move a1,*a0 ;save SHOOT button count value
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine updates the players PASS button hit count
|
||
;
|
||
; INPUT: reg. a2 (if negative, decrement value)
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_pass_butn_cnt
|
||
|
||
move a10,a0
|
||
sll 5,a0
|
||
addi butn_cnt_ram_ptr_tbl,a0,L
|
||
move *a0,a0,L ;get pointer to ram
|
||
move *a0,a1 ;get plyr button cnt ram value
|
||
move a1,a14
|
||
andni PASS_CNT_MASK,a14 ;clear turbo button count
|
||
andi PASS_CNT_MASK,a1
|
||
|
||
move a2,a2 ;dec. value ?
|
||
jrn upbc_1 ;br=negative, YEP
|
||
inc a1
|
||
cmpi NBR_SYMBOLS,a1
|
||
jrlo upbc_2 ;br=haven't cycled all heads
|
||
clr a1
|
||
jruc upbc_2
|
||
upbc_1
|
||
dec a1
|
||
jrge upbc_2 ;br=value >= 0
|
||
movi NBR_SYMBOLS-1,a1 ;set to bottom of table
|
||
upbc_2
|
||
or a14,a1
|
||
move a1,*a0 ;save TURBO button count value
|
||
rets
|
||
|
||
|
||
;
|
||
; Pointers to the players button count ram
|
||
;
|
||
butn_cnt_ram_ptr_tbl
|
||
.long p1_butn_cnts
|
||
.long p2_butn_cnts
|
||
.long p3_butn_cnts
|
||
.long p4_butn_cnts
|
||
|
||
|
||
combo_obj_id_tbl
|
||
.word COMBO_SYMBOLS_P1
|
||
.word COMBO_SYMBOLS_P2
|
||
.word COMBO_SYMBOLS_P3
|
||
.word COMBO_SYMBOLS_P4
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; INPUT: a10 = player number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_combination_symbols
|
||
|
||
move a10,a0
|
||
sll 4,a0
|
||
addi combo_obj_id_tbl,a0
|
||
move *a0,a0 ;get obj class to delete
|
||
calla obj_del1c
|
||
rets
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine creates the backdrop behind the number SYMBOLS
|
||
; on the verus screen
|
||
;
|
||
; INPUT: a10 - player number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_combo_symbol_backdrops
|
||
|
||
PUSH a10
|
||
move a10,a0
|
||
sll 4,a0
|
||
addi combo_plate_xs,a0,L
|
||
|
||
movi 100,a3 ;z pos
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5
|
||
clr a6
|
||
clr a7
|
||
|
||
movi CODE,a2,L
|
||
move *a0,a0 ;get X coor.
|
||
sll 16,a0
|
||
movi [COMBIN_Y,0],a1 ;get Y coor.
|
||
movi CODE_V_P,b0
|
||
calla BEGINOBJP2
|
||
PULL a10
|
||
rets
|
||
|
||
|
||
combo_plate_xs
|
||
.word COMBIN_X1
|
||
.word COMBIN_X2
|
||
.word COMBIN_X3
|
||
.word COMBIN_X4
|
||
combo_plate_xs_end
|
||
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine creates the number SYMBOLS on the verus screen
|
||
;
|
||
; INPUT: a10 - player number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_combination_symbols
|
||
|
||
PUSH a8,a10
|
||
move a10,a0
|
||
move a10,a9
|
||
sll 4,a0
|
||
addi combo_obj_id_tbl,a0
|
||
move *a0,a5 ;get obj class to delete
|
||
|
||
sll 6,a10
|
||
addi combo_symbol_xys,a10
|
||
|
||
movi 1000,a3 ;z pos
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
|
||
clr a6
|
||
clr a7
|
||
|
||
;1st symbol (turbo button changes this symbol)
|
||
|
||
sll 5,a9 ;*32
|
||
addi butn_cnt_ram_ptr_tbl,a9,L
|
||
move *a9,a9,L ;get ptr to PLYR butn cnt ram
|
||
move *a9,a9,L ;get ram value
|
||
move a9,a0
|
||
andi TURBO_CNT_MASK,a0
|
||
srl 3,a0
|
||
addi combo_symbols_tbl,a0,L
|
||
move *a0,a2,L ;get img ptr.
|
||
move *a10+,a0 ;get X coor.
|
||
sll 16,a0
|
||
movi [COMBIN_Y+3,0],a1 ;get Y coor.
|
||
calla BEGINOBJ2
|
||
|
||
;2nd symbol (shoot button changed this symbol)
|
||
move a9,a0
|
||
andi SHOOT_CNT_MASK,a0
|
||
sll 1,a0
|
||
addi combo_symbols_tbl,a0,L
|
||
move *a0,a2,L
|
||
move *a10+,a0 ;get X coor.
|
||
sll 16,a0
|
||
movi [COMBIN_Y+3,0],a1 ;get Y coor.
|
||
calla BEGINOBJ2
|
||
|
||
;3rd symbol (pass button changed this symbol)
|
||
move a9,a0
|
||
andi PASS_CNT_MASK,a0
|
||
sll 5,a0
|
||
addi combo_symbols_tbl,a0,L
|
||
move *a0,a2,L
|
||
move *a10,a0 ;get X coor.
|
||
sll 16,a0
|
||
movi [COMBIN_Y+3,0],a1 ;get Y coor.
|
||
calla BEGINOBJ2
|
||
PULL a8,a10
|
||
rets
|
||
|
||
|
||
combo_symbols_tbl
|
||
.long BRSH20_0
|
||
.long BRSH20_1
|
||
.long BRSH20_2
|
||
.long BRSH20_3
|
||
.long BRSH20_4
|
||
.long BRSH20_5
|
||
.long BRSH20_6
|
||
.long BRSH20_7
|
||
.long BRSH20_8
|
||
.long BRSH20_9
|
||
combo_symbols_tbl_end
|
||
|
||
|
||
NBR_SYMBOLS equ (combo_symbols_tbl_end-combo_symbols_tbl)/32
|
||
|
||
|
||
combo_symbol_xys
|
||
.word COMBIN_X1+8,COMBIN_X1+37,COMBIN_X1+66,0 ;player 1
|
||
.word COMBIN_X2+8,COMBIN_X2+37,COMBIN_X2+66,0 ;player 2
|
||
.word COMBIN_X3+8,COMBIN_X3+37,COMBIN_X3+66,0 ;player 3
|
||
.word COMBIN_X4+8,COMBIN_X4+37,COMBIN_X4+66,0 ;player 4
|
||
|
||
|
||
|
||
|
||
;POWER-UP stuff
|
||
.asg >00000001,TOURN ;tournament mode
|
||
.asg >00000002,BABYS ;baby mode
|
||
.asg >00000004,NOMUS ;no music mode
|
||
.asg >00000008,GOALT ;goal tending
|
||
.asg >00000010,MXBLK ;block power
|
||
.asg >00000020,MXSTL ;steal power; quick hands
|
||
.asg >00000040,MXPWR ;max power
|
||
.asg >00000080,MXSPD ;max speed
|
||
.asg >00000100,HYPER ;hyper speed
|
||
.asg >00000200,TBSTL ;stealth turbo
|
||
.asg >00000400,TBINF ;unlimited turbo
|
||
.asg >00000800,NOPSH ;no pushing
|
||
.asg >00001000,FPASS ;fast passing
|
||
|
||
|
||
; .asg >00000000,BIGHD ;big heads
|
||
; .asg >00000000,HUGHD ;huge heads
|
||
; .asg >00000000,NOTAG ;no tag arrows
|
||
; .asg >00000000,SHTPR ;show shot percent
|
||
; .asg >00000000,ABALL ;ABA ball in use
|
||
; .asg >00000000,COURT ;outside court
|
||
; .asg >00000000,NOASS ;no cpu assistance
|
||
; .asg >00000000,HOTSP ;show hot spots
|
||
;
|
||
; .asg >00000000,STRNG ;strong men
|
||
|
||
|
||
combination_tbl
|
||
WL >111,TOURN
|
||
WL >025,BABYS
|
||
WL >048,NOMUS
|
||
WL >937,GOALT
|
||
WL >616,MXBLK
|
||
WL >709,MXSTL
|
||
WL >802,MXPWR
|
||
WL >284,MXSPD
|
||
WL >552,HYPER
|
||
WL >273,TBSTL
|
||
WL >461,TBINF
|
||
WL >390,NOPSH
|
||
WL >120,FPASS
|
||
|
||
;Joystick/butn powerups:
|
||
|
||
; WL >001,BIGHD
|
||
; WL >011,HUGHD
|
||
; WL >040,NOTAG
|
||
; WL >100,SHTPR
|
||
; WL >999,COURT
|
||
; WL >030,HOTSP
|
||
; WL >222,NOASS
|
||
|
||
; WL >121,GOALT|STLPW
|
||
; WL >191,HUGHD|BABYS
|
||
; WL >666,NOTAG|GOALT|NOPSH
|
||
|
||
combination_tbl_end
|
||
|
||
NBR_CODE_COMBOS equ (combination_tbl_end-combination_tbl)/(16+32)
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine checks all the players buttons counts to see if
|
||
; a powerup exists for there count.
|
||
;-----------------------------------------------------------------------------
|
||
SUBR set_plyrs_powerup_ram
|
||
|
||
movk 1,a0 ;player 1 (bit 0)
|
||
move @p1_butn_cnts,a1
|
||
callr set_plyr_powerup_ram
|
||
movk 2,a0 ;player 2 (bit 1)
|
||
move @p2_butn_cnts,a1
|
||
callr set_plyr_powerup_ram
|
||
movk 4,a0 ;player 3 (bit 2)
|
||
move @p3_butn_cnts,a1
|
||
callr set_plyr_powerup_ram
|
||
movk 8,a0 ;player 4 (bit 3)
|
||
move @p4_butn_cnts,a1
|
||
callr set_plyr_powerup_ram
|
||
|
||
movi pup_baby,a0 ;!!!
|
||
|
||
move @PSTATUS,a1 ;Is it a plyr-v-plyr game?
|
||
movi >eee0,a14
|
||
btst a1,a14 ;Do team agreement test if so
|
||
jrnz sppr0 ; br=yes
|
||
movi >fffe,a14 ;Share any powerups that are set
|
||
sppr0
|
||
move *a0,a1
|
||
clr a2
|
||
btst a1,a14
|
||
jrz sppr1
|
||
movk >f,a2
|
||
sppr1
|
||
move a2,*a0+
|
||
cmpi pup_fastpass,a0 ;!!!
|
||
jrle sppr0
|
||
|
||
rets
|
||
|
||
|
||
.asg 0,TBL_COMBO
|
||
.asg 16,POWERUPS
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine sets the BITS in all the powerup ram based
|
||
; on code entered and player number (if combination found in table!!!)
|
||
;
|
||
; INPUT: reg a0 - plyr bit number (mask)
|
||
; reg a1 - plyr butn press count
|
||
;
|
||
;RETURNS: carry set if didn't find combination in table
|
||
;-----------------------------------------------------------------------------
|
||
SUBR set_plyr_powerup_ram
|
||
|
||
move @PSTATUS,a14
|
||
and a0,a14 ;is this player in game ?
|
||
jrz cvc_x ;br=nope
|
||
;
|
||
;search table for a matching combination
|
||
;
|
||
movi combination_tbl,a2,L
|
||
movi NBR_CODE_COMBOS,a3
|
||
#lp
|
||
move *a2(TBL_COMBO),a14 ;get count from table
|
||
cmp a14,a1 ;plyrs and tbl count the same?
|
||
jreq cvc_00 ;br=yes !!!
|
||
addi 16+32,a2 ;next line in combination table
|
||
dsj a3,#lp
|
||
jruc cvc_x ;br=no match found
|
||
|
||
;found match
|
||
cvc_00
|
||
move *a2(POWERUPS),a14,L
|
||
srl 1,a14
|
||
jrnc cvc_01 ;br=not this power up
|
||
move @PSTATUS,a2
|
||
movi >116,a3
|
||
btst a2,a3 ;No tmode if only 1 plyr
|
||
jrz dotmd
|
||
PUSH a0,a14
|
||
.ref no_sp
|
||
SOUND1 no_sp
|
||
PULL a0,a14
|
||
jruc cvc_01 ;br=not this power up
|
||
dotmd
|
||
move @pup_tournament,a3
|
||
or a0,a3
|
||
move a3,@pup_tournament
|
||
cvc_01
|
||
srl 1,a14
|
||
jrnc cvc_02
|
||
move @pup_baby,a3
|
||
or a0,a3
|
||
move a3,@pup_baby
|
||
cvc_02
|
||
srl 1,a14
|
||
jrnc cvc_03
|
||
move @pup_nomusic,a3
|
||
or a0,a3
|
||
move a3,@pup_nomusic
|
||
cvc_03
|
||
srl 1,a14
|
||
jrnc cvc_04
|
||
move @pup_goaltend,a3
|
||
or a0,a3
|
||
move a3,@pup_goaltend
|
||
cvc_04
|
||
srl 1,a14
|
||
jrnc cvc_05
|
||
move @pup_maxblock,a3
|
||
or a0,a3
|
||
move a3,@pup_maxblock
|
||
cvc_05
|
||
srl 1,a14
|
||
jrnc cvc_06
|
||
move @pup_maxsteal,a3
|
||
or a0,a3
|
||
move a3,@pup_maxsteal
|
||
cvc_06
|
||
srl 1,a14
|
||
jrnc cvc_07
|
||
move @pup_maxpower,a3
|
||
or a0,a3
|
||
move a3,@pup_maxpower
|
||
cvc_07
|
||
srl 1,a14
|
||
jrnc cvc_08
|
||
move @pup_maxspeed,a3
|
||
or a0,a3
|
||
move a3,@pup_maxspeed
|
||
cvc_08
|
||
srl 1,a14
|
||
jrnc cvc_09
|
||
move @pup_hypspeed,a3
|
||
or a0,a3
|
||
move a3,@pup_hypspeed
|
||
cvc_09
|
||
srl 1,a14
|
||
jrnc cvc_10
|
||
move @pup_trbstealth,a3
|
||
or a0,a3
|
||
move a3,@pup_trbstealth
|
||
cvc_10
|
||
srl 1,a14
|
||
jrnc cvc_11
|
||
move @pup_trbinfinite,a3
|
||
or a0,a3
|
||
move a3,@pup_trbinfinite
|
||
cvc_11
|
||
srl 1,a14
|
||
jrnc cvc_12
|
||
move @pup_nopush,a3
|
||
or a0,a3
|
||
move a3,@pup_nopush
|
||
cvc_12
|
||
srl 1,a14
|
||
jrnc cvc_13
|
||
move @pup_fastpass,a3
|
||
or a0,a3
|
||
move a3,@pup_fastpass
|
||
cvc_13
|
||
cvc_x
|
||
rets
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine deletes the CREATED players name
|
||
;-----------------------------------------------------------------------------
|
||
SUBR delete_name
|
||
|
||
movi SM_PLYRS_NAME,a0
|
||
clr a1
|
||
calla obj_del1c
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine prints the CREATED players name at the X,Y from table
|
||
;
|
||
; INPUT: reg. a0 - X coor (center)
|
||
; reg. a1 - Y coor
|
||
;-----------------------------------------------------------------------------
|
||
SUBR print_name
|
||
|
||
move a0,@mess_cursx ;message cursor pos X
|
||
move a1,@mess_cursy ;message cursor pos Y
|
||
|
||
addi PR_NAME1,a4 ;* src NAME
|
||
movi message_buffer,a3 ;* string dest
|
||
calla get_name_string
|
||
|
||
movi bast8_ascii,a0
|
||
move a0,@message_ascii,L ;* ascii lookup table
|
||
movi BAST_W_P,a0
|
||
move a0,@message_palette,L
|
||
movk 9,a0 ;6,a0
|
||
move a0,@mess_space_width ;space char width
|
||
movi SM_PLYRS_NAME,a0
|
||
move a0,@mess_objid
|
||
calla print_string_C
|
||
rets
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
|
||
.asg 97,STBOX_W ;width of stat box
|
||
.asg 8,STBOX_X1
|
||
.asg STBOX_X1+STBOX_W+1,STBOX_X2
|
||
.asg STBOX_X2+STBOX_W+1,STBOX_X3
|
||
.asg STBOX_X3+STBOX_W+1,STBOX_X4
|
||
.asg 34,STBOX_Y
|
||
.asg 34,STBOX_Y1
|
||
.asg 34,STBOX_Y2
|
||
.asg 34,STBOX_Y3
|
||
.asg 34,STBOX_Y4
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine just kills the PROCESS which animates FIRE around the players
|
||
; stat box on the STAT pages
|
||
;-----------------------------------------------------------------------------
|
||
SUBR kill_fire_anim
|
||
|
||
movi FIRE_ANIM_PID,a0
|
||
calla KIL1C
|
||
rets
|
||
|
||
.asg 0,FIRE_X ;table offsets
|
||
.asg 32,FIRE_X2
|
||
.asg 64,FIRE_Y
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This PROCESS animated FIRE for the best player at halftime and game
|
||
; over
|
||
;
|
||
; INPUT: a11 - player number
|
||
;-----------------------------------------------------------------------------
|
||
SUBR anim_fire_for_best_plyr
|
||
|
||
sll 7,a11
|
||
addi fire_anim_xys,a11,L
|
||
|
||
afbp_1 movi fire_anim_tbl,a9,L
|
||
|
||
;left side of fire
|
||
afbp_2 movi 2000,a3 ;z pos
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
move *a9+,a2,L
|
||
move *a11(FIRE_X),a0,L ;get X coor.
|
||
move *a11(FIRE_Y),a1,L ;get Y coor.
|
||
calla BEGINOBJ2
|
||
move a8,a10
|
||
|
||
;right side of fire
|
||
movi M_FLIPH|DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
move *a9+,a2,L
|
||
move *a11(FIRE_X2),a0,L ;get X coor.
|
||
move *a11(FIRE_Y),a1,L ;get Y coor.
|
||
calla BEGINOBJ2
|
||
SLEEPK 5
|
||
|
||
;delete fire frames
|
||
calla DELOBJA8
|
||
move a10,a8
|
||
calla DELOBJA8
|
||
|
||
cmpi fire_anim_tbl_end,a9,L
|
||
jrlo afbp_2
|
||
jruc afbp_1
|
||
DIE
|
||
|
||
|
||
fire_anim_xys
|
||
.long [STBOX_X1+6,0],[STBOX_X1+92,0],[STBOX_Y+206,0],0 ;plyr 1
|
||
.long [STBOX_X2-1,0],[STBOX_X2+86,0],[STBOX_Y+206,0],0 ;plyr 2
|
||
.long [STBOX_X3+4,0],[STBOX_X3+91,0],[STBOX_Y+206,0],0 ;plyr 3
|
||
.long [STBOX_X4-2,0],[STBOX_X4+84,0],[STBOX_Y+206,0],0 ;plyr 4
|
||
|
||
fire_anim_tbl
|
||
.long HTFIRE01,HTFIRE04
|
||
.long HTFIRE02,HTFIRE05
|
||
.long HTFIRE03,HTFIRE06
|
||
.long HTFIRE04,HTFIRE07
|
||
.long HTFIRE05,HTFIRE08
|
||
.long HTFIRE06,HTFIRE09
|
||
.long HTFIRE07,HTFIRE10
|
||
.long HTFIRE08,HTFIRE01
|
||
.long HTFIRE09,HTFIRE02
|
||
.long HTFIRE10,HTFIRE03
|
||
fire_anim_tbl_end
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_name_backplates
|
||
|
||
movk 2,a9
|
||
callr create_name_backplate
|
||
movk 3,a9
|
||
callr create_name_backplate
|
||
movk 4,a9
|
||
callr create_name_backplate
|
||
movk 5,a9
|
||
callr create_name_backplate
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_name_backplates
|
||
|
||
movi TEAM_SEL_OBJS,a0
|
||
calla obj_del1c
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; Create the Hi-Lighter bar
|
||
;
|
||
; INPUT: reg b0 - which bar to put up (table offset)
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_name_backplate
|
||
|
||
sll 5,a9
|
||
addi backplt_xys,a9 ;x val
|
||
move *a9,a9,L
|
||
cnb_0
|
||
move *a9+,a2,L ;get image
|
||
move *a9+,a1,L ;palette
|
||
move a1,b0
|
||
move *a9+,a1,L ;x val
|
||
move *a9+,a0,L ;x val
|
||
; movi TEAMBR,a2
|
||
movi 50,a3 ;z pos (sorting) over city names
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
; movi M_FLIPH|DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi TEAM_SEL_OBJS,a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJP2
|
||
|
||
move *a9+,a0,L ;move to plot ?
|
||
jrnz cnb_0 ;yep
|
||
rets
|
||
|
||
|
||
backplt_xys
|
||
.long bar1table
|
||
.long bar2table
|
||
.long bar3table
|
||
.long bar4table
|
||
.long bar5table
|
||
.long bar6table
|
||
.long bar1kit
|
||
.long bar2kit
|
||
|
||
bar1table
|
||
.long TEXTBAR,TUBE_LB_P,[TM1_Y-56,0],[TM1_X-87,0],0 ;team select, plyr 1
|
||
bar2table
|
||
.long TEXTBAR,TUBE_LR_P,[TM2_Y-56,0],[TM2_X+5,0],0 ;team select, plyr 2
|
||
|
||
bar3table
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y1+69,0],[STBOX_X1+5,0],1 ;stat pg. plr 1
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y1+69,0],[STBOX_X1+11,0],1 ;stat pg. plr 1
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y1+195,0],[STBOX_X1+5,0],1 ;stat pg. plr 1
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y1+195,0],[STBOX_X1+11,0],0 ;stat pg. plr 1
|
||
|
||
bar4table
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y2+69,0],[STBOX_X2-1,0],1 ;stat pg. plr 2
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y2+69,0],[STBOX_X2+5,0],1 ;stat pg. plr 2
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y2+195,0],[STBOX_X2-1,0],1 ;stat pg. plr 2
|
||
.long TEXTBAR,TUBE_LB_P,[STBOX_Y2+195,0],[STBOX_X2+5,0],0 ;stat pg. plr 2
|
||
|
||
bar5table
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y3+69,0],[STBOX_X3+4,0],1 ;stat pg. plr 3
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y3+69,0],[STBOX_X3+9,0],1 ;stat pg. plr 3
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y3+195,0],[STBOX_X3+4,0],1 ;stat pg. plr 3
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y3+195,0],[STBOX_X3+10,0],0 ;stat pg. plr 3
|
||
|
||
bar6table
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+69,0],[STBOX_X4-2,0],1 ;stat pg. plr 4
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+69,0],[STBOX_X4+3,0],1 ;stat pg. plr 4
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+195,0],[STBOX_X4-2,0],1 ;stat pg. plr 4
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+195,0],[STBOX_X4+3,0],0 ;stat pg. plr 4
|
||
|
||
bar1kit
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+69,0],[STBOX_X4+5,0],1 ;stat pg. plr 1 (kit)
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+69,0],[STBOX_X4+10,0],1 ;stat pg. plr 1
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+196,0],[STBOX_X4+5,0],1 ;stat pg. plr 1 (kit)
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+196,0],[STBOX_X4+10,0],0 ;stat pg. plr 1
|
||
|
||
bar2kit
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+69,0],[STBOX_X4+5,0],1 ;stat pg. plr 2 (kit)
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+69,0],[STBOX_X4+10,0],1 ;stat pg. plr 2
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+196,0],[STBOX_X4+5,0],1 ;stat pg. plr 2 (kit)
|
||
.long TEXTBAR,TUBE_LR_P,[STBOX_Y4+196,0],[STBOX_X4+10,0],0 ;stat pg. plr 2
|
||
|
||
|
||
|
||
TUBE_LR_P:
|
||
.word 127
|
||
.word 0294ah,07ed5h,07e72h,079eeh,075eeh,07dabh,075cdh,079ach
|
||
.word 07d69h,0798bh,0758bh,0718bh,0756ah,07949h,07948h,07548h
|
||
.word 07928h,07927h,07106h,078c5h,06d07h,070e6h,06907h,06ce6h
|
||
.word 06cc5h,07482h,060e6h,05ce6h,060c5h,07062h,06c82h,07061h
|
||
.word 06883h,05cc5h,06882h,07041h,06c61h,06483h,06862h,06482h
|
||
.word 06861h,06c41h,054c5h,06462h,06082h,06461h,06841h,054a5h
|
||
.word 06062h,054a4h,06061h,06441h,05c62h,06041h,05c61h,05862h
|
||
.word 04ca4h,05c41h,05861h,05462h,05841h,05461h,04c83h,05062h
|
||
.word 05441h,05061h,04484h,05041h,04c42h,04c41h,05021h,04861h
|
||
.word 04083h,04842h,04462h,04841h,04c21h,03c83h,04442h,04441h
|
||
.word 05821h,05042h,05421h,05041h,04c42h,05021h,04c41h,04842h
|
||
.word 04c21h,04841h,04063h,04442h,04821h,04441h,04042h,04421h
|
||
.word 03863h,04021h,03c41h,03462h,03c21h,03841h,03822h,03423h
|
||
.word 03442h,03821h,03441h,03023h,03042h,03041h,03421h,02c42h
|
||
.word 02c41h,03021h,02823h,02842h,02c21h,02442h,02821h,02441h
|
||
.word 02422h,02042h,02421h,02021h,01c21h,01821h,01421h
|
||
|
||
|
||
|
||
;#*****************************************************************************
|
||
;* Create player heads on the STATs PAGE
|
||
;******************************************************************************
|
||
;;;;; .asg 65,HEAD_WIDTH
|
||
; .asg 95,HEAD_WIDTH
|
||
;
|
||
; SUBR create_heads
|
||
;
|
||
; movi player_heads,a10
|
||
; move @team1,a2
|
||
;#lp cmpi 0,a2
|
||
; jrz #out
|
||
; addi NEXT_TEAM,a10 ;compute offset into HEAD tbl
|
||
;;; addi 20*64,a10
|
||
; dec a2
|
||
; jruc #lp
|
||
;#out
|
||
; move @team1,a0
|
||
; sll 4,a0
|
||
; addi tm1set,a0
|
||
; move *a0,a14
|
||
; sll 6,a14
|
||
; add a14,a10
|
||
; move *a10,a2,L ;image addr
|
||
;;
|
||
;; Head 1 (team 1)
|
||
;;
|
||
; movi player1_data,a14
|
||
; move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
; jrle #ncr1 ;br=nope
|
||
; move *a14(PR_HEAD_NBR),a2 ;get head number
|
||
; sll 5,a2
|
||
; addi create_plr_mugshots_tbl,a2
|
||
; move *a2,a2,L ;get mugshot img
|
||
; jruc #no_spec1
|
||
;#ncr1
|
||
; move @special_heads,a0
|
||
; jrn #no_spec1
|
||
; sll 5,a0 ;x 32 bits
|
||
; addi our_heads,a0
|
||
; move *a0,a2,L
|
||
;#no_spec1
|
||
; movi [STBOX_X1+15,0],a0 ;x val
|
||
; movi [STBOX_Y1+69,0],a1 ;y val
|
||
; movi 120,a3 ;z pos
|
||
; movi DMAWNZ,a4 ;DMA flags
|
||
; clr a5 ;object ID
|
||
; clr a6 ;x vel
|
||
; clr a7 ;y vel
|
||
; calla BEGINOBJ2
|
||
;;
|
||
;; Head 2 (team 1)
|
||
;;
|
||
; move *a10(20h),a2,L ;image addr
|
||
;
|
||
; movi player2_data,a14
|
||
; move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
; jrle #ncr2 ;br=nope
|
||
; move *a14(PR_HEAD_NBR),a2 ;get head number
|
||
; sll 5,a2
|
||
; addi create_plr_mugshots_tbl,a2
|
||
; move *a2,a2,L ;get mugshot img
|
||
; jruc #no_spec2
|
||
;#ncr2
|
||
; move @special_heads+10h,a0
|
||
; jrn #no_spec2
|
||
; sll 5,a0 ;x 32 bits
|
||
; addi our_heads,a0
|
||
; move *a0,a2,L
|
||
;#no_spec2
|
||
; movi [STBOX_X2+15,0],a0 ;x val
|
||
; movi [STBOX_Y2+69,0],a1 ;y val
|
||
; movi 120,a3 ;z pos
|
||
; movi DMAWNZ,a4 ;DMA flags
|
||
; clr a5 ;object ID
|
||
; clr a6 ;x vel
|
||
; clr a7 ;y vel
|
||
; calla BEGINOBJ2
|
||
;
|
||
;;team 2
|
||
; movi player_heads,a10
|
||
; move @team2,a2
|
||
;#lp1 cmpi 0,a2
|
||
; jrz #out1
|
||
; addi NEXT_TEAM,a10 ;compute offset into HEAD tbl
|
||
; dec a2
|
||
; jruc #lp1
|
||
;#out1
|
||
; move @team2,a0
|
||
; sll 4,a0
|
||
; addi tm2set,a0
|
||
; move *a0,a14
|
||
; sll 6,a14
|
||
; add a14,a10
|
||
;;
|
||
;; Head 1 (team 2)
|
||
;;
|
||
; move *a10,a2,L ;image addr
|
||
;
|
||
; movi player3_data,a14
|
||
; move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
; jrle #ncr3 ;br=nope
|
||
; move *a14(PR_HEAD_NBR),a2 ;get head number
|
||
; sll 5,a2
|
||
; addi create_plr_mugshots_tbl,a2
|
||
; move *a2,a2,L ;get mugshot img
|
||
; jruc #no_spec3
|
||
;#ncr3
|
||
; move @special_heads+20h,a0
|
||
; jrn #no_spec3
|
||
; sll 5,a0 ;x 32 bits
|
||
; addi our_heads,a0
|
||
; move *a0,a2,L
|
||
;#no_spec3
|
||
;
|
||
; movi [STBOX_X3+15,0],a0 ;x val
|
||
; movi [STBOX_Y3+69,0],a1 ;y val
|
||
; movi 120,a3 ;z pos
|
||
; movi DMAWNZ,a4 ;DMA flags
|
||
; clr a5 ;object ID
|
||
; clr a6 ;x vel
|
||
; clr a7 ;y vel
|
||
; calla BEGINOBJ2
|
||
;;
|
||
;; Head 2 (team 2)
|
||
;;
|
||
; move *a10(20h),a2,L ;image addr
|
||
;
|
||
; movi player4_data,a14
|
||
; move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
; jrle #ncr4 ;br=nope
|
||
; move *a14(PR_HEAD_NBR),a2 ;get head number
|
||
; sll 5,a2
|
||
; addi create_plr_mugshots_tbl,a2
|
||
; move *a2,a2,L ;get mugshot img
|
||
; jruc #no_spec4
|
||
;#ncr4
|
||
; move @special_heads+30h,a0
|
||
; jrn #no_spec4
|
||
; sll 5,a0 ;x 32 bits
|
||
; addi our_heads,a0
|
||
; move *a0,a2,L
|
||
;#no_spec4
|
||
;
|
||
; movi [STBOX_X4+15,0],a0 ;x val
|
||
; movi [STBOX_Y4+69,0],a1 ;y val
|
||
; movi 120,a3 ;z pos
|
||
; movi DMAWNZ,a4 ;DMA flags
|
||
; clr a5 ;object ID
|
||
; clr a6 ;x vel
|
||
; clr a7 ;y vel
|
||
; calla BEGINOBJ2
|
||
;#cnt4a
|
||
; rets
|
||
|
||
|
||
#*****************************************************************************
|
||
* Create stats title images (on the STAT page)
|
||
******************************************************************************
|
||
SUBR create_stat_titles
|
||
|
||
movi stat_title_tbl,a10,L
|
||
movi 16000,a3 ;z pos
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
cst_1
|
||
move *a10+,a0,L ;X coor.
|
||
move *a10+,a1,L ;Y coor.
|
||
movi HLFSTATS,a2,L
|
||
calla BEGINOBJ2
|
||
cmpi stat_title_tbl_end,a10
|
||
jrlo cst_1
|
||
rets
|
||
|
||
|
||
stat_title_tbl
|
||
.long [STBOX_X2-21,0],[STBOX_Y2+85,0]
|
||
.long [STBOX_X4-23,0],[STBOX_Y4+85,0]
|
||
stat_title_tbl_end
|
||
|
||
|
||
#*****************************************************************************
|
||
* Show players name (on the STAT page)
|
||
******************************************************************************
|
||
SUBR create_plyrs_name
|
||
|
||
movi #initials_setup,a2
|
||
calla setup_message
|
||
|
||
movi STBOX_Y1+196,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_X1+48,a0
|
||
move a0,@mess_cursx
|
||
move @PSTATUS,a0
|
||
btst 0,a0
|
||
jrnz #ok1
|
||
movi #str_cpu,a4
|
||
calla print_string_C2
|
||
jruc #skip1
|
||
#ok1
|
||
movi message_buffer,a3
|
||
movi player1_data+PR_NAME1,a4
|
||
move @player1_data+PR_CREATED_PLYR,a14
|
||
jrle #nm1 ;br=not created
|
||
movi STBOX_Y1+71,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_Y1+196,a0
|
||
move @player1_data+PR_NICKNAME_NBR,a2
|
||
callr create_plr_nickname
|
||
#nm1
|
||
calla get_name_string
|
||
calla print_string_C
|
||
|
||
#skip1
|
||
movi STBOX_Y2+196,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_X2+41,a0
|
||
move a0,@mess_cursx
|
||
move @PSTATUS,a0
|
||
btst 1,a0
|
||
jrnz #ok2
|
||
movi #str_cpu,a4
|
||
calla print_string_C2
|
||
jruc #skip2
|
||
#ok2
|
||
movi message_buffer,a3
|
||
movi player2_data+PR_NAME1,a4
|
||
move @player2_data+PR_CREATED_PLYR,a14
|
||
jrle #nm2
|
||
movi STBOX_Y2+71,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_Y2+196,a0
|
||
move @player2_data+PR_NICKNAME_NBR,a2
|
||
callr create_plr_nickname
|
||
#nm2
|
||
calla get_name_string
|
||
calla print_string_C
|
||
|
||
#skip2
|
||
movi STBOX_Y3+196,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_X3+47,a0
|
||
move a0,@mess_cursx
|
||
move @PSTATUS,a0
|
||
btst 2,a0
|
||
jrnz #ok3
|
||
movi #str_cpu,a4
|
||
calla print_string_C2
|
||
jruc #skip3
|
||
#ok3
|
||
movi message_buffer,a3
|
||
movi player3_data+PR_NAME1,a4
|
||
move @player3_data+PR_CREATED_PLYR,a14
|
||
jrle #nm3
|
||
movi STBOX_Y3+71,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_Y3+196,a0
|
||
move @player3_data+PR_NICKNAME_NBR,a2
|
||
callr create_plr_nickname
|
||
#nm3
|
||
calla get_name_string
|
||
calla print_string_C
|
||
|
||
#skip3
|
||
movi STBOX_Y4+196,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_X4+40,a0
|
||
move a0,@mess_cursx
|
||
move @PSTATUS,a0
|
||
btst 3,a0
|
||
jrnz #ok4
|
||
movi #str_cpu,a4
|
||
calla print_string_C2
|
||
jruc #skip4
|
||
#ok4
|
||
movi message_buffer,a3
|
||
movi player4_data+PR_NAME1,a4
|
||
move @player4_data+PR_CREATED_PLYR,a14
|
||
jrle #nm4
|
||
movi STBOX_Y4+71,a0
|
||
move a0,@mess_cursy
|
||
movi STBOX_Y4+196,a0
|
||
move @player4_data+PR_NICKNAME_NBR,a2
|
||
callr create_plr_nickname
|
||
#nm4
|
||
calla get_name_string
|
||
calla print_string_C
|
||
#skip4
|
||
rets
|
||
|
||
|
||
#initials_setup
|
||
PRINT_STR bast8t_ascii,8,1,200,4,BAST_W_P,0
|
||
#str_cpu
|
||
.string "CPU",0
|
||
.even
|
||
|
||
.ref tm1set,tm2set
|
||
|
||
#*****************************************************************************
|
||
* This routine prints the players' nickname under mugshot
|
||
*
|
||
* INPUT: reg a0 - Y pos
|
||
* reg a2 - nick name number
|
||
******************************************************************************
|
||
SUBRP create_plr_nickname
|
||
|
||
PUSH a3,a4
|
||
move a0,a1
|
||
sll 16,a1
|
||
move @mess_cursx,a0
|
||
|
||
sll 6,a2 ;2*32
|
||
addi nickname_img_tbl,a2,L
|
||
move *a2,a2,L
|
||
|
||
move *a2(ISIZEX),a14 ;center obj. at X coor.
|
||
srl 1,a14
|
||
sub a14,a0
|
||
sll 16,a0
|
||
|
||
movi 6000,a3 ;z pos.
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5 ;object class
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
PULL a3,a4
|
||
rets
|
||
|
||
|
||
#*****************************************************************************
|
||
* Show name of HEAD (basketball players name)
|
||
*
|
||
* INPUT: reg a1 - Y position
|
||
**************************************************
|
||
SUBR create_names
|
||
|
||
PUSH a9
|
||
sll 16,a1
|
||
move a1,a9
|
||
|
||
movi player_names,a10
|
||
move @team1,a2
|
||
#lp cmpi 0,a2
|
||
jrz #out
|
||
addi NEXT_TEAM_NAMES,a10 ;compute offset into table
|
||
dec a2
|
||
jruc #lp
|
||
#out
|
||
move @team1,a0
|
||
sll 4,a0
|
||
addi tm1set,a0
|
||
move *a0,a14
|
||
sll 6,a14
|
||
add a14,a10
|
||
|
||
move *a10,a2,L ;image addr
|
||
;
|
||
;name 1 (team 1)
|
||
;
|
||
movi player1_data,a14
|
||
move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
jrgt #hd2 ;br=yep..dont show a name
|
||
|
||
move @special_heads,a0
|
||
jrn #not_spec1
|
||
sll 5,a0 ;x 32 bits
|
||
addi our_names,a0
|
||
move *a0,a2,L
|
||
#not_spec1
|
||
movi [STBOX_X1+48,0],a0 ;x val
|
||
move a9,a1
|
||
; movi [STBOX_Y1+71,0],a1 ;y val
|
||
movi 120,a3 ;z pos
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
;
|
||
;name 2 (team 1)
|
||
;
|
||
#hd2 move *a10(20h),a2,L ;image addr
|
||
|
||
movi player2_data,a14
|
||
move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
jrgt #hd3 ;br=yep..dont show a name
|
||
|
||
move @special_heads+10h,a0
|
||
jrn #not_spec2
|
||
sll 5,a0 ;x 32 bits
|
||
addi our_names,a0
|
||
move *a0,a2,L
|
||
#not_spec2
|
||
movi [STBOX_X2+42,0],a0 ;x val
|
||
move a9,a1
|
||
; movi [STBOX_Y2+71,0],a1 ;y val
|
||
movi 120,a3 ;z pos
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
#hd3
|
||
movi player_names,a10
|
||
move @team2,a2
|
||
#lp1 cmpi 0,a2
|
||
jrz #out1
|
||
addi NEXT_TEAM_NAMES,a10 ;compute offset into table
|
||
dec a2
|
||
jruc #lp1
|
||
#out1
|
||
move @team2,a0
|
||
sll 4,a0
|
||
addi tm2set,a0
|
||
move *a0,a14
|
||
sll 6,a14
|
||
add a14,a10
|
||
;
|
||
; name 1 (team 2)
|
||
;
|
||
move *a10,a2,L ;image addr
|
||
|
||
movi player3_data,a14
|
||
move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
jrgt #hd4 ;br=yep..dont show a name
|
||
|
||
move @special_heads+20h,a0
|
||
jrn #not_spec3
|
||
sll 5,a0 ;x 32 bits
|
||
addi our_names,a0
|
||
move *a0,a2,L
|
||
#not_spec3
|
||
|
||
movi [STBOX_X3+47,0],a0 ;x val
|
||
move a9,a1
|
||
; movi [STBOX_Y3+71,0],a1 ;y val
|
||
movi 120,a3 ;z pos
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
;
|
||
; name 2 (team 2)
|
||
;
|
||
#hd4 move *a10(20h),a2,L ;image addr
|
||
|
||
movi player4_data,a14
|
||
move *a14(PR_CREATED_PLYR),a0 ;is player created ?
|
||
jrgt #hd5 ;br=yep..dont show a name
|
||
|
||
move @special_heads+30h,a0
|
||
jrn #not_spec4
|
||
sll 5,a0 ;x 32 bits
|
||
addi our_names,a0
|
||
move *a0,a2,L
|
||
#not_spec4
|
||
movi [STBOX_X4+41,0],a0 ;x val
|
||
move a9,a1
|
||
; movi [STBOX_Y4+71,0],a1 ;y val
|
||
movi 120,a3 ;z pos
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
clr a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
calla BEGINOBJ2
|
||
#hd5 PULL a9
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_hi_score_page_objs
|
||
|
||
;create vertical bar
|
||
movi 10,a3
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5
|
||
clr a6
|
||
clr a7
|
||
movi [7,0],a0
|
||
movi [0,0],a1
|
||
movi NBABAR,a2,L
|
||
calla BEGINOBJ2
|
||
|
||
|
||
;create nba logo
|
||
movi 12,a3
|
||
movi [7,0],a0
|
||
movi [181,0],a1
|
||
movi NBALOGO,a2,L
|
||
calla BEGINOBJ2
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR animate_vs_logo
|
||
|
||
movi 2000,a3
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a5
|
||
clr a6
|
||
clr a7
|
||
|
||
;create V and S letters
|
||
movi [VS_X,0],a0
|
||
movi [VS_Y+104,0],a1
|
||
movi VSB01,a2
|
||
calla BEGINOBJ2
|
||
move a8,a10
|
||
|
||
movi [VS_X,0],a0
|
||
movi [VS_Y+104,0],a1
|
||
movi VSS01,a2
|
||
calla BEGINOBJ2
|
||
move a8,a9
|
||
|
||
;animate VS logo
|
||
movi vs_logo_anim_tbl,a11
|
||
avsl_1
|
||
;V
|
||
move *a11+,a0,L ;new V img.
|
||
movi DMAWNZ|M_SCRNREL,a1 ;DMA flags
|
||
move a9,a8 ;get V obj. ptr
|
||
calla obj_aniq
|
||
;S
|
||
move *a11+,a0,L ;new V img.
|
||
movi DMAWNZ|M_SCRNREL,a1 ;DMA flags
|
||
move a10,a8 ;get V obj. ptr
|
||
calla obj_aniq
|
||
|
||
move *a11+,a0 ;get sleep time
|
||
calla PRCSLP
|
||
|
||
cmpi vs_logo_anim_tbl_end,a11,L
|
||
jrlo avsl_1
|
||
DIE
|
||
|
||
;
|
||
; This table contains information pertaining to the VS logo animating
|
||
;
|
||
; 1) img frame of V
|
||
; 3) Y pos of V
|
||
; 2) img frame of S
|
||
; 4) Y pos of S
|
||
; 5) sleep time
|
||
;
|
||
vs_logo_anim_tbl
|
||
.long VSB01,VSS01
|
||
.word 2
|
||
.long VSB02,VSS02
|
||
.word 2
|
||
.long VSB03,VSS03
|
||
.word 2
|
||
.long VSB04,VSS04
|
||
.word 2
|
||
.long VSB05,VSS05
|
||
.word 2
|
||
.long VSB06,VSS06
|
||
.word 3
|
||
.long VSB07,VSS07
|
||
.word 3
|
||
.long VSB08,VSS08
|
||
.word 3
|
||
.long VSB09,VSS09
|
||
.word 3
|
||
vs_logo_anim_tbl_end
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR kill_vs_logo
|
||
|
||
movi VS_LOGO_PID,a0
|
||
calla KIL1C
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine deletes the current PRESSED in BUTTON
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_pressed_bball
|
||
|
||
movi pball_obj_ptrs,a2,L ;ram to save obj ptrs
|
||
move *a2+,a8,L
|
||
calla DELOBJA8
|
||
|
||
;delete its shadow
|
||
movi BBALL_SHADOW,a0
|
||
calla obj_del1c
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine deletes the current normal BBALL
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_normal_hilited_bball
|
||
|
||
move @cur_pos,a0
|
||
sll 5,a0
|
||
addi bball_obj_ram_ptrs,a0,L
|
||
move *a0,a2,L ;get ptr. to ram ptrs.
|
||
dnb_1
|
||
move *a2,a8,L
|
||
calla DELOBJA8
|
||
|
||
;delete its shadow
|
||
movi BBALL_SHADOW,a0
|
||
calla obj_del1c
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_not_allowed_symbol
|
||
|
||
movi [BALL1X-3,0],a0 ;x val
|
||
movi [BALL1Y+1,0],a1 ;y val
|
||
movi F_NO1,a2,L
|
||
movi 500,a3
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
;; movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi OPTION_STUFF,a5 ;object ID
|
||
clr a6
|
||
clr a7
|
||
calla BEGINOBJ2
|
||
|
||
movi [BALL1X-3,0],a0 ;x val
|
||
movi [BALL1Y+1,0],a1 ;y val
|
||
movi F_NO2,a2,L
|
||
calla BEGINOBJ2
|
||
|
||
movi [BALL1X-3,0],a0 ;x val
|
||
movi [BALL1Y+1,0],a1 ;y val
|
||
movi 600,a3
|
||
movi ONE,a2,La
|
||
calla BEGINOBJ2
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_team_sel_header
|
||
|
||
movi [99,0],a0 ;x val
|
||
movi [9,0],a1 ;y val
|
||
movi HEADER,a2,L
|
||
movi 50,a3
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi TEAM_SEL_OBJS,a5 ;object ID
|
||
clr a6
|
||
clr a7
|
||
movi TUBE_V_P,b0,L
|
||
calla BEGINOBJP2
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_option_screen_stuff
|
||
|
||
movi SPOTLIGHT,a0 ;object ID
|
||
calla obj_del1c
|
||
movi BBALL_SHADOW,a0
|
||
calla obj_del1c
|
||
movi OPTION_STUFF,a0
|
||
calla obj_del1c
|
||
movi TITLE_BAR,a0
|
||
calla obj_del1c
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR kill_countdown_timer
|
||
|
||
movi CNTDWN_PID,a0
|
||
calla KIL1C
|
||
calla delete_text
|
||
rets
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine handles the logic for the player chosing an option at
|
||
; begining of game
|
||
;
|
||
; RETURNS: a0 = 0:player design, 1:enter initials, 2:select teams
|
||
;-----------------------------------------------------------------------------
|
||
SUBR options_screen
|
||
|
||
movk 1,a0 ;start on 'enter initials'
|
||
move a0,@cur_pos
|
||
|
||
clr a0
|
||
move a0,@create_plyr
|
||
move a0,@IRQSKYE ;BLACK background color
|
||
|
||
calla del_create_spotlight
|
||
clr a0
|
||
calla create_title_bar
|
||
|
||
;create text for screen
|
||
movi opt_str_setup,a2
|
||
calla setup_message
|
||
movi OPTION_STUFF,a0
|
||
move a0,@mess_objid
|
||
movk 22,a0
|
||
move a0,@mess_line_spacing
|
||
movi option_strings,a4
|
||
calla print_string_C2
|
||
|
||
movi bball_1_obj_ptrs,a9,L
|
||
movi [BALL1X,0],a0,L ;X coor.
|
||
movi [BALL1Y,0],a1,L ;Y coor.
|
||
calla create_normal_bball
|
||
|
||
movi bball_2_obj_ptrs,a9,L
|
||
movi [BALL2X-2,0],a0,L ;X coor.
|
||
movi [BALL2Y,0],a1,L ;Y coor.
|
||
calla create_normal_bball
|
||
|
||
movi bball_3_obj_ptrs,a9,L
|
||
movi [BALL3X-1,0],a0,L ;X coor.
|
||
movi [BALL3Y,0],a1,L ;Y coor.
|
||
calla create_normal_bball
|
||
|
||
calla create_bball_text
|
||
|
||
calla update_bball_text_pals
|
||
calla update_bball_palettes
|
||
|
||
.ref pregame_tune
|
||
SOUND1 pregame_tune
|
||
|
||
CREATE WIN_STAY_PID,winner_stays_msg
|
||
|
||
SLEEPK 6
|
||
|
||
movi 5*TSEC,a10
|
||
CREATE CNTDWN_PID,timeout
|
||
|
||
movi 20*TSEC,a7 ;timeout time
|
||
clr a10 ;used to mark last joystick pos.
|
||
#input_loop
|
||
;
|
||
; Here I check to see if the 'CREATE PLAYER' should still be allowed ...
|
||
; If more than 1 player is in game, move it to 'ENTER INITIALS' and dont allow
|
||
; CREATE PLAYER option.
|
||
;
|
||
#nxtchk
|
||
move @create_plyr,a0
|
||
jrn #curok ;did DISALLOWING create plyr logic
|
||
callr check_for_buyins
|
||
move a0,a0
|
||
jrnn #curok ;br=only 1 player in game
|
||
move a0,@create_plyr
|
||
callr create_not_allowed_symbol
|
||
move @cur_pos,a0
|
||
jrnz #curok ;br= cursor isn't on 'create player'
|
||
jruc #j_right
|
||
#curok
|
||
calla get_all_sticks_cur
|
||
cmp a10,a0 ;same as last joystick pos. ?
|
||
jreq #no_change ;yep...ignore
|
||
move a0,a10 ;save NEW joystick position
|
||
cmpi JOY_RIGHT,a0
|
||
jreq #j_right
|
||
cmpi JOY_LEFT,a0
|
||
jrne #no_change
|
||
;
|
||
; Move cursor left (maybe)
|
||
;
|
||
move @cur_pos,a0 ;get current option (0,1 or 2)
|
||
jrle #updateX ;br=cant move left
|
||
cmpi 1,a0 ;on 'Enter Name" ?
|
||
jrne #jlft1
|
||
move @create_plyr,a14
|
||
jrn #no_change ;br='create player' isn't allowed
|
||
#jlft1
|
||
dec a0 ;move cursor 1 left
|
||
move a0,@cur_pos
|
||
SOUND1 opt_scr_cur
|
||
jruc #updateX
|
||
;
|
||
; Move cursor right (maybe)
|
||
;
|
||
#j_right
|
||
move @cur_pos,a0 ;get current option (0,1 or 2)
|
||
cmpi 2,a0
|
||
jrge #updateX ;br=cant move right
|
||
; move @create_plyr,a1
|
||
; jrn #no_change ;br='create player' isn't allowed
|
||
inc a0 ;move cursor 1 right
|
||
move a0,@cur_pos
|
||
SOUND1 opt_scr_cur
|
||
|
||
#updateX
|
||
calla del_create_spotlight
|
||
calla update_bball_palettes
|
||
calla update_bball_text_pals
|
||
#no_change
|
||
SLEEPK 1
|
||
|
||
move @force_selection,a0
|
||
jrz #no_timeout ;timeout yet ?
|
||
|
||
movk 2,a0 ;default to 'team select'
|
||
move a0,@cur_pos
|
||
|
||
calla del_create_spotlight
|
||
calla update_bball_palettes
|
||
jruc #timeout
|
||
|
||
#no_timeout
|
||
calla get_all_buttons_down
|
||
jrz #input_loop
|
||
;
|
||
; Player hit a button...or timer expired
|
||
;
|
||
#timeout
|
||
SOUND1 opt_scr_sel
|
||
|
||
move @cur_pos,a0
|
||
jrnz #tmeout2 ;br=cursor NOT on CREATE PLYR
|
||
|
||
;plyr selected CREATE PLAYER, make sure its what player wants
|
||
|
||
move @bball_1_text_obj_ptr,a8,L
|
||
calla obj_off ;hide ball 1 text
|
||
|
||
callr del_normal_hilited_bball
|
||
calla create_pressed_bball_and_shadow
|
||
|
||
callr print_create_plr_info
|
||
JSRP ask_create_plyr_yes_no
|
||
movk 4,a10
|
||
calla del_yes_no_buttons
|
||
callr del_pressed_bball
|
||
|
||
movi bball_1_obj_ptrs,a9,L
|
||
movi [BALL1X,0],a0,L ;X coor.
|
||
movi [BALL1Y,0],a1,L ;Y coor.
|
||
callr create_normal_bball
|
||
callr create_normal_bball_shadow
|
||
|
||
move @bball_1_text_obj_ptr,a8,L
|
||
calla obj_on ;un-hide ball 1 text
|
||
|
||
move a11,a11 ;did player select 'YES' ?
|
||
jrnz #input_loop ;br=no
|
||
|
||
#tmeout2
|
||
; SOUND1 opt_scr_sel
|
||
|
||
calla kill_countdown_timer
|
||
|
||
calla del_create_spotlight
|
||
calla update_bball_palettes
|
||
|
||
callr del_normal_hilited_bball
|
||
calla create_pressed_bball_and_shadow
|
||
JSRP flash_pressed_bball
|
||
|
||
movi WATCH_FOR_PLAYERS_PID,a0,L
|
||
calla KIL1C
|
||
|
||
move @cur_pos,a0 ;a0=0,1 or 2 (return value)
|
||
RETP
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_winner_stay_free_msg
|
||
|
||
movi WIN_STAY_PID,a0
|
||
movi -1,a1
|
||
calla EXISTP
|
||
move a0,a0 ;find process ?
|
||
jrz dwsf_1 ;br=nope
|
||
|
||
movi WIN_STAY_PID,a0
|
||
calla KIL1C
|
||
movi WIN_STAY_MSG,a0 ;object ID
|
||
calla obj_del1c ;delete text
|
||
dwsf_1 rets
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine creates the images that makeup the spotlights on the
|
||
; options screen
|
||
;-----------------------------------------------------------------------------
|
||
SUBR del_create_spotlight
|
||
|
||
PUSH a7,a10
|
||
;delete all spotlights (and shadows)
|
||
|
||
movi SPOTLIGHT,a0 ;object ID
|
||
calla obj_del1c
|
||
movi BBALL_SHADOW,a0
|
||
calla obj_del1c
|
||
|
||
;create new spotlight
|
||
movi 10,a3 ;z pos (sorting)
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
;; movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
movi SPOTLITE_PARTS,a11 ;count
|
||
|
||
move @cur_pos,a10
|
||
move a10,a14
|
||
sll 6,a10 ;*64
|
||
sll 5,a14 ;*32
|
||
add a14,a10 ;+96
|
||
addi sptlght_img_tbl_ptr_tbl,a10
|
||
move *a10+,a0,L
|
||
move *a10+,a1,L
|
||
move *a10,a9,L ;get table ptr.
|
||
cfsl_1
|
||
move *a9+,a2,L
|
||
PUSH a0,a1
|
||
movi SPOTLIGHT,a5 ;object ID
|
||
calla BEGINOBJ2
|
||
PULL a0,a1
|
||
dsj a11,cfsl_1
|
||
PULL a7,a10
|
||
callr create_normal_bball_shadow
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;create ball shadow
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_normal_bball_shadow
|
||
|
||
PUSH a7,a10,a11
|
||
movi 15,a3 ;z pos (sorting)
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
;; movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi BBALL_SHADOW,a5
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
movi BBALL_SHDW_PARTS,a11 ;2 pieces for shadow
|
||
|
||
move @cur_pos,a10
|
||
move a10,a14
|
||
sll 6,a10 ;*64
|
||
sll 5,a14 ;*32
|
||
add a14,a10 ;+96
|
||
addi sptlght_bball_shadw_img_tbl,a10
|
||
move *a10+,a0,L
|
||
move *a10+,a1,L
|
||
move *a10,a9,L ;get table ptr.
|
||
cnbs_1
|
||
move *a9+,a2,L
|
||
PUSH a0,a1
|
||
calla BEGINOBJ2
|
||
PULL a0,a1
|
||
dsj a11,cnbs_1
|
||
PULL a7,a10,a11
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_normal_bball
|
||
|
||
movi 20,a3 ;z pos (sorting)
|
||
;; movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
movi OPTION_STUFF,a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
cfbb_1
|
||
movi BIGBAL1,a2,L
|
||
calla BEGINOBJ2
|
||
move a8,*a9+,L
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_bball_text_pals
|
||
|
||
movi bball_text_obj_ptrs,a7,L
|
||
clr a2
|
||
ubtp_0
|
||
move @cur_pos,a14,L
|
||
move *a7+,a8,L ;get ptr to obj. ptr
|
||
move *a8,a8,L ;get obj. ptr
|
||
movi FNT_W_P,a0,L
|
||
cmp a14,a2
|
||
jrne ubtp_1
|
||
movi FNT_G_P,a0,L
|
||
ubtp_1 calla pal_getf
|
||
move a0,*a8(OPAL) ;change text palette
|
||
|
||
inc a2
|
||
cmpi bball_text_obj_ptrs_end,a7
|
||
jrlo ubtp_0
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_bball_text
|
||
|
||
movi bball_text_img_setup,a10,L
|
||
movi 80,a3 ;z pos (sorting)
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
;; movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi OPTION_STUFF,a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
cbt_1
|
||
move *a10+,a9,L ;get ptr. to ram location
|
||
move *a10+,a2,L ;get img ptr.
|
||
move *a10+,a0,L ;get X coor.
|
||
move *a10+,a1,L ;get Y coor.
|
||
|
||
calla BEGINOBJ2
|
||
move a8,*a9,L
|
||
|
||
cmpi bball_text_img_setup_end,a10,L
|
||
jrlo cbt_1
|
||
|
||
;; CREATE PAL_CYCLE_PID,cycle_bball_text_pal
|
||
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This process blinks the color of the TEXT on the ball
|
||
;-----------------------------------------------------------------------------
|
||
; SUBRP cycle_bball_text_pal
|
||
;
|
||
; move @cur_pos,a0,L
|
||
; sll 5,a0
|
||
; addi bball_text_obj_ptrs,a0
|
||
; move *a0,a0,L
|
||
; move *a0,a8,L
|
||
;cbtp_1 movi bball_text_cycle_tbl,a10,L
|
||
;cbtp_2
|
||
;; move *a2+,a8,L ;get bball img. obj. ptr
|
||
; move *a10+,a0,L
|
||
; calla pal_getf
|
||
; move a0,*a8(OPAL) ;change button palette
|
||
;; SLEEPK 20
|
||
;
|
||
; move *a10+,a0
|
||
; calla PRCSLP
|
||
;
|
||
; cmpi bball_text_cycle_tbl_end,a10,L
|
||
; jrlo cbtp_2
|
||
; jruc cbtp_1
|
||
; DIE
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_bball_palettes
|
||
|
||
;first ball
|
||
|
||
movi bball_1_obj_ptrs,a2,L
|
||
clr a1
|
||
calla change_bball_pal
|
||
|
||
;second ball
|
||
|
||
movi bball_2_obj_ptrs,a2,L
|
||
movk 1,a1
|
||
calla change_bball_pal
|
||
|
||
;third ball
|
||
|
||
movi bball_3_obj_ptrs,a2,L
|
||
movk 2,a1
|
||
calla change_bball_pal
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine changes the palettes on all the BASKETBALL images during
|
||
; the OPTION screen (not cursor = dim, else bright pal)
|
||
;
|
||
; INPUT: a1: bball nbr. updating (0-2)
|
||
; a2: ptr to ram pointer of obj.
|
||
;-----------------------------------------------------------------------------
|
||
SUBR change_bball_pal
|
||
|
||
movi BIGBLD_P,a0,L ;dim bball pal
|
||
move @cur_pos,a3 ;get current hi-lited option
|
||
cmp a3,a1 ;this one hi-lited ?
|
||
jrne cbpp_1 ;br=nope
|
||
movi BIGBAL_P,a0,L ;bright bball pal
|
||
cbpp_1
|
||
|
||
cbpp_2 move *a2+,a8,L ;get bball img. obj. ptr
|
||
calla pal_getf
|
||
move a0,*a8(OPAL) ;change button palette
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_pressed_bball_and_shadow
|
||
|
||
movi pball_obj_ptrs,a9,L ;ram to save obj ptrs
|
||
movi 21,a3 ;z pos (sorting)
|
||
movi DMAWNZ,a4 ;DMA flags
|
||
;; movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi OPTION_STUFF,a5 ;object ID
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
|
||
;create pressed bball (get X,Y coords. from table)
|
||
move @cur_pos,a2,L
|
||
sll 6,a2
|
||
addi pressed_bball_xys,a2,L
|
||
move *a2+,a0,L ;get X coor.
|
||
move *a2+,a1,L ;get Y coor.
|
||
cpbas_1
|
||
movi SMBAL1,a2,L
|
||
calla BEGINOBJ2
|
||
move a8,*a9+,L
|
||
|
||
;create pressed bball shadow (get X,Y coords. from table)
|
||
|
||
movi BBALL_SHADOW,a5 ;object ID
|
||
movi PBALL_SHDW_PARTS,a11 ;2 pieces for shadow
|
||
move @cur_pos,a10,L
|
||
sll 7,a10
|
||
addi pressed_bball_shadw_tbl,a10,L
|
||
move *a10+,a0,L ;get X coor.
|
||
move *a10+,a1,L ;get Y coor.
|
||
cpbas_2
|
||
move *a10+,a2,L
|
||
PUSH a0,a1
|
||
calla BEGINOBJ2
|
||
; move a8,*a9+,L
|
||
PULL a0,a1
|
||
dsj a11,cpbas_2
|
||
rets
|
||
|
||
|
||
bball_obj_ram_ptrs
|
||
.long bball_1_obj_ptrs
|
||
.long bball_2_obj_ptrs
|
||
.long bball_3_obj_ptrs
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBRP flash_pressed_bball
|
||
|
||
movk 5,a9
|
||
move @pball_obj_ptrs,a8,L ;ram to save obj ptrs
|
||
fpb_1
|
||
;pure white
|
||
movi 0101h,a2
|
||
move a2,*a8(OCONST)
|
||
move *a8(OCTRL),a0
|
||
andni 01111b,a0
|
||
ori M_CONNON,a0 ;Replace all with constant
|
||
move a0,*a8(OCTRL)
|
||
SLEEPK 1
|
||
|
||
;show normal image
|
||
move *a8(OCTRL),a0
|
||
andni 01111b,a0
|
||
ori M_WRNONZ,a0
|
||
move a0,*a8(OCTRL)
|
||
SLEEPK 1
|
||
dsj a9,fpb_1
|
||
RETP
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine checks to see if more than 1 player has bought or a player
|
||
; has bought more than 1 quater of game play.
|
||
; If so, then CREATE PLAYER, is not allowed
|
||
;
|
||
; OUTPUT: reg a0 (if negative, disallow 'create-a-player')
|
||
;-----------------------------------------------------------------------------
|
||
SUBR check_for_buyins
|
||
|
||
movk ADJFREPL,a0
|
||
calla GET_ADJ ;SEE IF FREEPLAY......(Z BIT CLEAR IF SO!)
|
||
jrnz frep1
|
||
; calla CRED_P
|
||
; move a0,a0
|
||
; jrnz w3p_0
|
||
|
||
frep1 move @qtr_purchased,a0
|
||
move @qtr_purchased+16,a14
|
||
add a14,a0
|
||
move @qtr_purchased+32,a14
|
||
add a14,a0
|
||
move @qtr_purchased+48,a14
|
||
add a14,a0
|
||
cmpi 1,a0
|
||
jrls w3p_1
|
||
|
||
; move @PSTATUS,a0 ;a0=players in game (rep. by bits)
|
||
; cmpi 8,a0 ;check for player 4 only
|
||
; jreq w3p_1 ;br=yep
|
||
; cmpi 4,a0 ;check for player 3 only
|
||
; jreq w3p_1 ;br=yep
|
||
; cmpi 2,a0 ;check for player 2 only
|
||
; jreq w3p_1 ;br=yep
|
||
; cmpi 1,a0 ;check for player 1 only
|
||
; jreq w3p_1 ;br=yep
|
||
|
||
w3p_0
|
||
movi -1,a0
|
||
w3p_1 rets
|
||
|
||
|
||
.asg 0,TM_NAME_Y
|
||
.asg 12,TM_NAME_SPC
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine deletes a set of team city names
|
||
;
|
||
; INPUT: a0 - obj. id to delete
|
||
;-----------------------------------------------------------------------------
|
||
SUBR delete_team_city_names
|
||
|
||
clr a1
|
||
calla obj_del1c
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine creates TM_NAMES_ON_SCRN city name objects
|
||
;
|
||
; INPUT: a0 = X coor
|
||
; a5 = obj id
|
||
; a14 = table index
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_team_city_names
|
||
|
||
move a14,a11
|
||
sll 5,a11 ;long
|
||
sll 4,a14 ;word
|
||
add a14,a11
|
||
addi city_table_start,a11
|
||
|
||
movi 1800,a3 ;z pos (sorting)
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
clr a6 ;x vel
|
||
clr a7 ;y vel
|
||
movi TM_NAMES_ON_SCRN,a10 ;nbr. team names to plot
|
||
movi [TM_NAME_Y,0],a1 ;starting Y val
|
||
#ccn_1
|
||
movi BAST_D_P,b0 ;default pal. for city imgs.
|
||
addi [TM_NAME_SPC,0],a1 ;add spacing
|
||
cmpi MIDDLE_TEAM_NAME,a10 ;plotting hi-lighted city ?
|
||
jrne #nhlit2 ;br=nope
|
||
; movi BAST_W_P,b0 ;HILITED middle city name
|
||
movi BAST_Y_P,b0 ;HILITED middle city name
|
||
addi [1,0],a1 ;space around the backplate
|
||
#nhlit2
|
||
cmpi MIDDLE_TEAM_NAME-1,a10 ;1 after hilited city ?
|
||
jrne #nhlit2a ;br=nope
|
||
addi [1,0],a1 ;space around the backplate
|
||
#nhlit2a
|
||
move *a11,a2,L ;get TEAM NAME image ptr
|
||
PUSH a0,a1
|
||
calla BEGINOBJP2
|
||
PULL a0,a1
|
||
|
||
addi OFFSET_NXT_CITY_NAME,a11 ;ptr. next city img. (skip city nbr.)
|
||
dsj a10,#ccn_1
|
||
rets
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; Create both backdrops for TEAM PLAYERS HEADS
|
||
;
|
||
;
|
||
; INPUT: reg a0 - table offset for coor.
|
||
;-----------------------------------------------------------------------------
|
||
SUBR create_player_head_backdrops
|
||
|
||
movi hd_bkdrp_tbl,a9,L
|
||
sll 7,a0
|
||
add a0,a9
|
||
|
||
;left backdrop
|
||
move *a9+,a0,L ;get X coor
|
||
move *a9+,a1,L ;get Y coor
|
||
movi RHEAD,a2,L
|
||
movi 6,a3
|
||
movi DMAWNZ|M_SCRNREL,a4 ;DMA flags
|
||
movi TEAM_SEL_OBJS,a5 ;object ID
|
||
clr a6
|
||
clr a7
|
||
movi HEADW_P,b0,L
|
||
calla BEGINOBJP2
|
||
move a8,@plate1_objs,L
|
||
|
||
;right backdrop
|
||
move *a9+,a0,L ;get X coor
|
||
move *a9+,a1,L ;get Y coor
|
||
movi LHEAD,a2,L
|
||
movi 6,a3
|
||
movi HEADW_P,b0,L
|
||
calla BEGINOBJP2
|
||
move a8,@plate2_objs,L
|
||
rets
|
||
|
||
|
||
hd_bkdrp_tbl
|
||
.long [TM1_X-86,0],[TM1_Y+6,0]
|
||
.long [TM2_X-93,0],[TM2_Y+6,0] ;teamsel page
|
||
|
||
.long [TM1_X-86,0],[TM1_Y-65,0] ;stat page
|
||
.long [TM2_X-93,0],[TM2_Y-65,0]
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This routine changed the image behind the player heads
|
||
; during team select.
|
||
;
|
||
; INPUT: reg. a0 - team nbr (0-1)
|
||
;-----------------------------------------------------------------------------
|
||
SUBR update_player_head_backdrop
|
||
|
||
sll 7,a0
|
||
addi plate_obj_tbl,a0
|
||
move *a0+,a8,L ;get pointer
|
||
move *a8,a8,L ;get OLD img (ptr addr)
|
||
move *a0+,a9,L ;get NEW img. ptr
|
||
|
||
;update palette and bits per pixel
|
||
move *a0,a0,L
|
||
calla pal_getf
|
||
move a0,*a8(OPAL)
|
||
|
||
move *a8(OCTRL),a1
|
||
andi >80ff,a1 ;DMA flags
|
||
move *a9(ICTRL),a14
|
||
andni >80ff,a14 ;DMA flags
|
||
or a14,a1
|
||
move a1,*a8(OCTRL)
|
||
|
||
move a9,a0
|
||
|
||
movi DMAWNZ|M_SCRNREL,a1 ;DMA flags
|
||
calla obj_aniq
|
||
rets
|
||
|
||
|
||
plate_obj_tbl
|
||
; .long plate1_objs,SQUAD1,SQUAD_P,0
|
||
.long plate1_objs,SQUAD1,SQAD_VB_P,0
|
||
.long plate2_objs,SQUAD2,SQAD_VR_P,0
|
||
|
||
|
||
SQUAD_P:
|
||
.word 63
|
||
.word 039ach,05294h,04e73h,04a52h,04631h,04210h,03defh,039ceh
|
||
.word 035adh,0318ch,0316ch,0294ah,02529h,02509h,02108h,020e8h
|
||
.word 01ce7h,01cc7h,018c6h,018a6h,014a5h,01485h,01084h,00c63h
|
||
.word 00842h,00421h,00401h,06a9fh,05e1dh,0559bh,04d3ah,044d8h
|
||
.word 040d7h,03c96h,03876h,03455h,03014h,02c13h,02410h,0200dh
|
||
.word 01c0ch,0180bh,0180ah,01409h,01408h,01006h,00c05h,07fe0h
|
||
.word 07bc0h,077a0h,07380h,06f60h,06b40h,06720h,05ee0h,05ac0h
|
||
.word 056a0h,05280h,04e60h,04620h,03de0h,035a0h,02100h
|
||
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBRP ask_create_plyr_yes_no
|
||
|
||
movk 4,a10 ;a table offset
|
||
calla create_small_yes_no_butns
|
||
|
||
movk 1,a11 ;DEFAULT to 'NO'
|
||
|
||
movi 6*TSEC,a10 ;timeout counter (6 seconds)
|
||
ayn_0
|
||
SLEEPK 1
|
||
|
||
;
|
||
; during option screen, if >1 player buys in while the other player was
|
||
; answering the yes/no question...stop all yes/no processing and return
|
||
;
|
||
calla check_for_buyins
|
||
move a0,a0
|
||
jrnn ayn_1 ;br=only 1 plr. in game...
|
||
|
||
;'CREATE PLAYER' NOT allowed, stop asking yes/no
|
||
movk 1,a11 ;set to 'NO'
|
||
jruc ayn_6
|
||
|
||
;check for timeout
|
||
ayn_1
|
||
dsj a10,ayn_2 ;br=dont time out...yet
|
||
movk 1,a11 ;DEFAULT to 'NO'
|
||
calla reset_yes_no_butn_pals
|
||
jruc ayn_3
|
||
|
||
ayn_2
|
||
calla get_all_sticks_down
|
||
|
||
cmpi JOY_UP,a0 ;joystick up ?
|
||
jrne ayn_1b ;br=nope
|
||
move a11,a11
|
||
jrz ayn_2a ;br=cursor already on 'YES'
|
||
clr a11 ;set to 'YES'
|
||
calla reset_yes_no_butn_pals
|
||
SOUND1 yes_no_cur1
|
||
jruc ayn_2a
|
||
|
||
ayn_1b cmpi JOY_DOWN,a0 ;joystick down ?
|
||
jrne ayn_2a ;br=nope
|
||
move a11,a11
|
||
jrnz ayn_2a ;br=cursor already on 'NO'
|
||
movk 1,a11 ;set to 'NO'
|
||
calla reset_yes_no_butn_pals
|
||
SOUND1 yes_no_cur1
|
||
;
|
||
; Now, read buttons
|
||
;
|
||
ayn_2a
|
||
calla update_yes_no_button_pals
|
||
|
||
calla get_all_buttons_down
|
||
|
||
cmpi TURBO_BUTTON,a0
|
||
jreq ayn_3
|
||
cmpi PASS_BUTTON,a0
|
||
jreq ayn_3
|
||
cmpi SHOOT_BUTTON,a0
|
||
jrne ayn_0
|
||
ayn_3
|
||
SOUND1 yes_no_sel1
|
||
|
||
move a11,a11 ;did player choose 'YES'
|
||
jrnz ayn_3a ;br=no
|
||
|
||
;this is set, so that the START BUTTON can be ignored prior to entering
|
||
; create player mode (so don't eat credits)
|
||
|
||
movi IN_PRE_PLYR_DESIGN,a0
|
||
move a0,@GAMSTATE
|
||
|
||
ayn_3a JSRP flash_pressed_yes_no_button
|
||
ayn_6
|
||
RETP
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR print_subsitution_directions
|
||
|
||
movi substutn_dirs_str_setup,a2
|
||
calla setup_message
|
||
movi HIT_PTS_FRACTION,a0
|
||
move a0,@mess_objid
|
||
movk 12,a0
|
||
move a0,@mess_line_spacing
|
||
movi substutn_dirs_strs,a4,L
|
||
calla print_string_C2
|
||
|
||
movi HIT_PTS_FRACTION,a10,L
|
||
CREATE FLSH_TXT_PID,change_pal_on_text
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
;-----------------------------------------------------------------------------
|
||
SUBR print_subsitution_title
|
||
|
||
movi subsitution_str_setup,a2
|
||
calla setup_message
|
||
clr a0
|
||
move a0,@mess_objid
|
||
movk 10,a0
|
||
move a0,@mess_line_spacing
|
||
movi subsitution_str,a4,L
|
||
calla print_string_C2
|
||
rets
|
||
|
||
;-----------------------------------------------------------------------------
|
||
; This message is displayed when player selects CREATE PLAYER option
|
||
;-----------------------------------------------------------------------------
|
||
SUBR print_create_plr_info
|
||
|
||
movi create_plr_info_setup,a2
|
||
calla setup_message
|
||
movi YES_NO_BUTNS,a0
|
||
move a0,@mess_objid
|
||
movk 10,a0
|
||
move a0,@mess_line_spacing
|
||
movi create_plr_info,a4,L
|
||
calla print_string_C2
|
||
rets
|
||
|
||
|
||
;----------- TABLES ------------
|
||
;----------- TABLES ------------
|
||
;----------- TABLES ------------
|
||
;----------- TABLES ------------
|
||
|
||
PLTF1_B_P:
|
||
.word 58
|
||
.word 04210h,0297fh,0257fh,0255fh,0215fh,0213fh,01d3fh,01d1fh
|
||
.word 0191fh,018ffh,014ffh,010dfh,014dfh,010bfh,010dfh,010bfh
|
||
.word 010dfh,010dfh,010bfh,010bfh,010beh,010bdh,010bch,010bbh
|
||
.word 010bah,010b9h,010b8h,010b7h,010b6h,010b5h,01095h,010b4h
|
||
.word 01094h,010b3h,01093h,010b2h,01092h,01091h,01090h,0108fh
|
||
.word 0108eh,0108dh,0108ch,0108bh,0108ah,01089h,01088h,01087h
|
||
.word 01086h,01085h,01084h,04631h,04e73h,056b5h,06318h,06b5ah
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF2_B_P:
|
||
.word 58
|
||
.word 04210h,039ffh,035ffh,035dfh,031dfh,031bfh,02dbfh,02d9fh
|
||
.word 0299fh,0297fh,0257fh,0215fh,0255fh,0213fh,0215fh,0213fh
|
||
.word 0215fh,0215fh,0213fh,0213fh,0213fh,0213fh,0213fh,0213fh
|
||
.word 0213eh,0213dh,0213ch,0213bh,0213ah,02139h,02119h,02138h
|
||
.word 02118h,02137h,02117h,02136h,02116h,02115h,02114h,02113h
|
||
.word 02112h,02111h,02110h,0210fh,0210eh,0210dh,0210ch,0210bh
|
||
.word 0210ah,02109h,02108h,056b5h,05ef7h,06739h,0739ch,07bdeh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF3_B_P:
|
||
.word 58
|
||
.word 04210h,056dfh,052dfh,052bfh,04ebfh,04e9fh,04a9fh,04a7fh
|
||
.word 0467fh,0465fh,0425fh,03e3fh,0423fh,03e1fh,03e3fh,03e1fh
|
||
.word 03e3fh,03e3fh,03e1fh,03e1fh,03e1fh,03e1fh,03e1fh,03e1fh
|
||
.word 03e1fh,03e1fh,03e1fh,03e1fh,03e1fh,03e1fh,03dffh,03e1fh
|
||
.word 03dffh,03e1eh,03dfeh,03e1dh,03dfdh,03dfch,03dfbh,03dfah
|
||
.word 03df9h,03df8h,03df7h,03df6h,03df5h,03df4h,03df3h,03df2h
|
||
.word 03df1h,03df0h,03defh,0739ch,07bdeh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF4_B_P:
|
||
.word 58
|
||
.word 04210h,06f9fh,06b9fh,06b7fh,0677fh,0675fh,0635fh,0633fh
|
||
.word 05f3fh,05f1fh,05b1fh,056ffh,05affh,056dfh,056ffh,056dfh
|
||
.word 056ffh,056ffh,056dfh,056dfh,056dfh,056dfh,056dfh,056dfh
|
||
.word 056dfh,056dfh,056dfh,056dfh,056dfh,056dfh,056bfh,056dfh
|
||
.word 056bfh,056dfh,056bfh,056dfh,056bfh,056bfh,056bfh,056bfh
|
||
.word 056bfh,056beh,056bdh,056bch,056bbh,056bah,056b9h,056b8h
|
||
.word 056b7h,056b6h,056b5h,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF5_B_P:
|
||
.word 58
|
||
.word 04210h,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF1_Y_P:
|
||
.word 58
|
||
.word 04210h,07fe9h,07fe8h,07fe8h,07fe7h,07fe7h,07fe6h,07fe6h
|
||
.word 07fe5h,07fe5h,07fe4h,07fe3h,07fe4h,07fe3h,07fe3h,07fe3h
|
||
.word 07fe3h,07fe3h,07fe3h,07bc3h,077a3h,07383h,06f63h,06b43h
|
||
.word 06723h,06303h,05ee3h,05ac3h,056a3h,05283h,05283h,04e63h
|
||
.word 04e63h,04a43h,04a43h,04623h,04623h,04203h,03de3h,039c3h
|
||
.word 035a3h,03183h,02d63h,02943h,02523h,02103h,01ce3h,018c3h
|
||
.word 014a3h,01083h,00c63h,04210h,04a52h,05294h,05ef7h,06739h
|
||
.word 07bdeh,07fffh
|
||
|
||
PLTF2_Y_P:
|
||
.word 58
|
||
.word 04210h,07fech,07febh,07febh,07feah,07feah,07fe9h,07fe9h
|
||
.word 07fe8h,07fe8h,07fe7h,07fe6h,07fe7h,07fe6h,07fe6h,07fe6h
|
||
.word 07fe6h,07fe6h,07fe6h,07fe6h,07fe6h,07fe6h,07bc6h,077a6h
|
||
.word 07386h,06f66h,06b46h,06726h,06306h,05ee6h,05ee6h,05ac6h
|
||
.word 05ac6h,056a6h,056a6h,05286h,05286h,04e66h,04a46h,04626h
|
||
.word 04206h,03de6h,039c6h,035a6h,03186h,02d66h,02946h,02526h
|
||
.word 02106h,01ce6h,018c6h,04e73h,056b5h,05ef7h,06b5ah,0739ch
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF3_Y_P:
|
||
.word 58
|
||
.word 04210h,07ff2h,07ff1h,07ff1h,07ff0h,07ff0h,07fefh,07fefh
|
||
.word 07feeh,07feeh,07fedh,07fech,07fedh,07fech,07fech,07fech
|
||
.word 07fech,07fech,07fech,07fech,07fech,07fech,07fech,07fech
|
||
.word 07fech,07fech,07fech,07fech,07bcch,077ach,077ach,0738ch
|
||
.word 0738ch,06f6ch,06f6ch,06b4ch,06b4ch,0672ch,0630ch,05eech
|
||
.word 05acch,056ach,0528ch,04e6ch,04a4ch,0462ch,0420ch,03dech
|
||
.word 039cch,035ach,0318ch,06739h,06f7bh,077bdh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF4_Y_P:
|
||
.word 58
|
||
.word 04210h,07ff6h,07ff5h,07ff5h,07ff4h,07ff4h,07ff3h,07ff3h
|
||
.word 07ff2h,07ff2h,07ff1h,07ff0h,07ff1h,07ff0h,07ff0h,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07bf0h,07bf0h,077d0h,073b0h,06f90h
|
||
.word 06b70h,06750h,06330h,05f10h,05af0h,056d0h,052b0h,04e90h
|
||
.word 04a70h,04650h,04230h,077ddh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF5_Y_P:
|
||
.word 58
|
||
.word 04210h,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07bffh,077ffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF1_G_P:
|
||
.word 58
|
||
.word 04210h,027e9h,023e8h,023e8h,01fe7h,01fe7h,01be6h,01be6h
|
||
.word 017e5h,017e5h,013e4h,00fe3h,013e4h,00fe3h,00fe3h,00fe3h
|
||
.word 00fe3h,00fe3h,00fe3h,00fc3h,00fa3h,00f83h,00f63h,00f43h
|
||
.word 00f23h,00f03h,00ee3h,00ec3h,00ea3h,00e83h,00e83h,00e63h
|
||
.word 00e63h,00e43h,00e43h,00e23h,00e23h,00e03h,00de3h,00dc3h
|
||
.word 00da3h,00d83h,00d63h,00d43h,00d23h,00d03h,00ce3h,00cc3h
|
||
.word 00ca3h,00c83h,00c63h,04210h,04a52h,05294h,05ef7h,06739h
|
||
.word 07bdeh,07fffh
|
||
|
||
PLTF2_G_P:
|
||
.word 58
|
||
.word 04210h,033ech,02febh,02febh,02beah,02beah,027e9h,027e9h
|
||
.word 023e8h,023e8h,01fe7h,01be6h,01fe7h,01be6h,01be6h,01be6h
|
||
.word 01be6h,01be6h,01be6h,01be6h,01be6h,01be6h,01bc6h,01ba6h
|
||
.word 01b86h,01b66h,01b46h,01b26h,01b06h,01ae6h,01ae6h,01ac6h
|
||
.word 01ac6h,01aa6h,01aa6h,01a86h,01a86h,01a66h,01a46h,01a26h
|
||
.word 01a06h,019e6h,019c6h,019a6h,01986h,01966h,01946h,01926h
|
||
.word 01906h,018e6h,018c6h,04e73h,056b5h,05ef7h,06b5ah,0739ch
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF3_G_P:
|
||
.word 58
|
||
.word 04210h,04bf2h,047f1h,047f1h,043f0h,043f0h,03fefh,03fefh
|
||
.word 03beeh,03beeh,037edh,033ech,037edh,033ech,033ech,033ech
|
||
.word 033ech,033ech,033ech,033ech,033ech,033ech,033ech,033ech
|
||
.word 033ech,033ech,033ech,033ech,033cch,033ach,033ach,0338ch
|
||
.word 0338ch,0336ch,0336ch,0334ch,0334ch,0332ch,0330ch,032ech
|
||
.word 032cch,032ach,0328ch,0326ch,0324ch,0322ch,0320ch,031ech
|
||
.word 031cch,031ach,0318ch,06739h,06f7bh,077bdh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF4_G_P:
|
||
.word 58
|
||
.word 04210h,063f9h,05ff8h,05ff8h,05bf7h,05bf7h,057f6h,057f6h
|
||
.word 053f5h,053f5h,04ff4h,04bf3h,04ff4h,04bf3h,04bf3h,04bf3h
|
||
.word 04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h
|
||
.word 04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h
|
||
.word 04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bf3h,04bd3h
|
||
.word 04bb3h,04b93h,04b73h,04b53h,04b33h,04b13h,04af3h,04ad3h
|
||
.word 04ab3h,04a93h,04a73h,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF5_G_P:
|
||
.word 58
|
||
.word 04210h,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF1_R_P:
|
||
.word 58
|
||
.word 04210h,07d28h,07d27h,07d07h,07d06h,07ce6h,07ce5h,07cc5h
|
||
.word 07cc4h,07ca4h,07ca3h,07c82h,07c83h,07c62h,07c82h,07c62h
|
||
.word 07c82h,07882h,07862h,07462h,07062h,06c62h,06862h,06462h
|
||
.word 06062h,05c62h,05862h,05462h,05062h,04c62h,04c42h,04862h
|
||
.word 04842h,04462h,04442h,04062h,04042h,03c42h,03842h,03442h
|
||
.word 03042h,02c42h,02842h,02442h,02042h,01c42h,01842h,01442h
|
||
.word 01042h,00c42h,00842h,03defh,04631h,04e73h,05ad6h,06318h
|
||
.word 077bdh,07fffh
|
||
|
||
PLTF2_R_P:
|
||
.word 58
|
||
.word 04210h,07d8bh,07d8ah,07d6ah,07d69h,07d49h,07d48h,07d28h
|
||
.word 07d27h,07d07h,07d06h,07ce5h,07ce6h,07cc5h,07ce5h,07cc5h
|
||
.word 07ce5h,07ce5h,07cc5h,07cc5h,07cc5h,078c5h,074c5h,070c5h
|
||
.word 06cc5h,068c5h,064c5h,060c5h,05cc5h,058c5h,058a5h,054c5h
|
||
.word 054a5h,050c5h,050a5h,04cc5h,04ca5h,048a5h,044a5h,040a5h
|
||
.word 03ca5h,038a5h,034a5h,030a5h,02ca5h,028a5h,024a5h,020a5h
|
||
.word 01ca5h,018a5h,014a5h,04a52h,05294h,05ad6h,06739h,06f7bh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF3_R_P:
|
||
.word 58
|
||
.word 04210h,07e72h,07e71h,07e51h,07e50h,07e30h,07e2fh,07e0fh
|
||
.word 07e0eh,07deeh,07dedh,07dcch,07dcdh,07dach,07dcch,07dach
|
||
.word 07dcch,07dcch,07dach,07dach,07dach,07dach,07dach,07dach
|
||
.word 07dach,07dach,07dach,07dach,079ach,075ach,0758ch,071ach
|
||
.word 0718ch,06dach,06d8ch,069ach,0698ch,0658ch,0618ch,05d8ch
|
||
.word 0598ch,0558ch,0518ch,04d8ch,0498ch,0458ch,0418ch,03d8ch
|
||
.word 0398ch,0358ch,0318ch,06739h,06f7bh,077bdh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF4_R_P:
|
||
.word 58
|
||
.word 04210h,07fbch,07fbbh,07f9bh,07f9ah,07f7ah,07f79h,07f59h
|
||
.word 07f58h,07f38h,07f37h,07f16h,07f17h,07ef6h,07f16h,07ef6h
|
||
.word 07f16h,07f16h,07ef6h,07ef6h,07ef6h,07ef6h,07ef6h,07ef6h
|
||
.word 07ef6h,07ef6h,07ef6h,07ef6h,07ef6h,07ef6h,07ed6h,07ef6h
|
||
.word 07ed6h,07ef6h,07ed6h,07ef6h,07ed6h,07ed6h,07ed6h,07ed6h
|
||
.word 07ed6h,07ed6h,07ad6h,076d6h,072d6h,06ed6h,06ad6h,066d6h
|
||
.word 062d6h,05ed6h,05ad6h,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
PLTF5_R_P:
|
||
.word 58
|
||
.word 04210h,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh
|
||
|
||
|
||
|
||
|
||
SQDFB1_P:
|
||
.word 63
|
||
.word 039ach,07a1eh,075ddh,071bch,06d7bh,0655ah,06139h,05d18h
|
||
.word 058d7h,054b6h,05095h,04c94h,04873h,04452h,04031h,03c30h
|
||
.word 0382fh,0342eh,0302ch,02c2bh,0242ah,02028h,01c27h,01426h
|
||
.word 01024h,00c23h,00822h,04e7fh,03dffh,0319fh,0211fh,0109fh
|
||
.word 0043fh,0043fh,0043dh,0043bh,0043ah,00438h,00437h,00435h
|
||
.word 00434h,00432h,00431h,0042fh,0042eh,0042ch,0042bh,07fe1h
|
||
.word 07fe1h,07bc1h,077a1h,07381h,06f61h,06b41h,06301h,05ee1h
|
||
.word 05ac1h,056a1h,05281h,04a41h,04201h,039c1h,02521h
|
||
|
||
|
||
SQDFB2_P:
|
||
.word 63
|
||
.word 039ach,07e5fh,07e1fh,079feh,075bdh,06d9ch,0697bh,0655ah
|
||
.word 06119h,05cf8h,058d7h,054d6h,050b5h,04c94h,04873h,04472h
|
||
.word 04071h,03c70h,0386eh,0346dh,02c6ch,0286ah,02469h,01c68h
|
||
.word 01866h,01465h,01064h,056bfh,0463fh,039dfh,0295fh,018dfh
|
||
.word 00c7fh,00c7fh,00c7fh,00c7dh,00c7ch,00c7ah,00c79h,00c77h
|
||
.word 00c76h,00c74h,00c73h,00c71h,00c70h,00c6eh,00c6dh,07fe3h
|
||
.word 07fe3h,07fe3h,07fe3h,07bc3h,077a3h,07383h,06b43h,06723h
|
||
.word 06303h,05ee3h,05ac3h,05283h,04a43h,04203h,02d63h
|
||
|
||
SQDFB3_P:
|
||
.word 63
|
||
.word 039ach,07ebfh,07e7fh,07e5fh,07e1fh,079ffh,075deh,071bdh
|
||
.word 06d7ch,0695bh,0653ah,06139h,05d18h,058f7h,054d6h,050d5h
|
||
.word 04cd4h,048d3h,044d1h,040d0h,038cfh,034cdh,030cch,028cbh
|
||
.word 024c9h,020c8h,01cc7h,0631fh,0529fh,0463fh,035bfh,0253fh
|
||
.word 018dfh,018dfh,018dfh,018dfh,018dfh,018ddh,018dch,018dah
|
||
.word 018d9h,018d7h,018d6h,018d4h,018d3h,018d1h,018d0h,07fe6h
|
||
.word 07fe6h,07fe6h,07fe6h,07fe6h,07fe6h,07fe6h,077a6h,07386h
|
||
.word 06f66h,06b46h,06726h,05ee6h,056a6h,04e66h,039c6h
|
||
|
||
|
||
SQDFB4_P:
|
||
.word 63
|
||
.word 039ach,07f3fh,07effh,07edfh,07e9fh,07e7fh,07e5fh,07e3fh
|
||
.word 07dffh,079dfh,075beh,071bdh,06d9ch,0697bh,0655ah,06159h
|
||
.word 05d58h,05957h,05555h,05154h,04953h,04551h,04150h,0394fh
|
||
.word 0354dh,0314ch,02d4bh,0739fh,0631fh,056bfh,0463fh,035bfh
|
||
.word 0295fh,0295fh,0295fh,0295fh,0295fh,0295fh,0295fh,0295eh
|
||
.word 0295dh,0295bh,0295ah,02958h,02957h,02955h,02954h,07feah
|
||
.word 07feah,07feah,07feah,07feah,07feah,07feah,07feah,07feah
|
||
.word 07feah,07bcah,077aah,06f6ah,0672ah,05eeah,04a4ah
|
||
|
||
SQDFB5_P:
|
||
.word 63
|
||
.word 039ach,07fffh,07fbfh,07f9fh,07f5fh,07f3fh,07f1fh,07effh
|
||
.word 07ebfh,07e9fh,07e7fh,07e7fh,07e5fh,07e3fh,07e1fh,07a1fh
|
||
.word 0761eh,0721dh,06e1bh,06a1ah,06219h,05e17h,05a16h,05215h
|
||
.word 04e13h,04a12h,04611h,07fffh,07bdfh,06f7fh,05effh,04e7fh
|
||
.word 0421fh,0421fh,0421fh,0421fh,0421fh,0421fh,0421fh,0421fh
|
||
.word 0421fh,0421fh,0421fh,0421eh,0421dh,0421bh,0421ah,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,077b0h,06310h
|
||
|
||
SQDFB6_P:
|
||
.word 63
|
||
.word 039ach,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fbfh,07f9fh,07f7fh,07f7fh,07f5fh,07f3fh,07f1fh,07f1fh
|
||
.word 07f1fh,07f1fh,07f1fh,07f1fh,07f1fh,07f1fh,07b1eh,0731dh
|
||
.word 06f1bh,06b1ah,06719h,07fffh,07fffh,07fffh,07fffh,06f7fh
|
||
.word 0631fh,0631fh,0631fh,0631fh,0631fh,0631fh,0631fh,0631fh
|
||
.word 0631fh,0631fh,0631fh,0631fh,0631fh,0631fh,0631fh,07ff8h
|
||
.word 07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h
|
||
.word 07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h
|
||
|
||
SQDFB7_P:
|
||
.word 63
|
||
.word 039ach,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
|
||
|
||
SQDFR1_P:
|
||
.word 63
|
||
.word 039ach,07a1eh,075ddh,071bch,06d7bh,0655ah,06139h,05d18h
|
||
.word 058d7h,054b6h,05095h,04c94h,04873h,04452h,04031h,03c30h
|
||
.word 0382fh,0342eh,0302ch,02c2bh,0242ah,02028h,01c27h,01426h
|
||
.word 01024h,00c23h,00822h,07e73h,07defh,07d8ch,07d08h,07c84h
|
||
.word 07c21h,07821h,07021h,06821h,06021h,05821h,05021h,04c21h
|
||
.word 04421h,03c21h,03421h,02c21h,02421h,01c21h,01421h,07fe1h
|
||
.word 07fe1h,07bc1h,077a1h,07381h,06f61h,06b41h,06301h,05ee1h
|
||
.word 05ac1h,056a1h,05281h,04a41h,04201h,039c1h,02521h
|
||
|
||
SQDFR2_P:
|
||
.word 63
|
||
.word 039ach,07e5fh,07e1fh,079feh,075bdh,06d9ch,0697bh,0655ah
|
||
.word 06119h,05cf8h,058d7h,054d6h,050b5h,04c94h,04873h,04472h
|
||
.word 04071h,03c70h,0386eh,0346dh,02c6ch,0286ah,02469h,01c68h
|
||
.word 01866h,01465h,01064h,07eb5h,07e31h,07dceh,07d4ah,07cc6h
|
||
.word 07c63h,07c63h,07863h,07063h,06863h,06063h,05863h,05463h
|
||
.word 04c63h,04463h,03c63h,03463h,02c63h,02463h,01c63h,07fe3h
|
||
.word 07fe3h,07fe3h,07fe3h,07bc3h,077a3h,07383h,06b43h,06723h
|
||
.word 06303h,05ee3h,05ac3h,05283h,04a43h,04203h,02d63h
|
||
|
||
SQDFR3_P:
|
||
.word 63
|
||
.word 039ach,07ebfh,07e7fh,07e5fh,07e1fh,079ffh,075deh,071bdh
|
||
.word 06d7ch,0695bh,0653ah,06139h,05d18h,058f7h,054d6h,050d5h
|
||
.word 04cd4h,048d3h,044d1h,040d0h,038cfh,034cdh,030cch,028cbh
|
||
.word 024c9h,020c8h,01cc7h,07f18h,07e94h,07e31h,07dadh,07d29h
|
||
.word 07cc6h,07cc6h,07cc6h,07cc6h,074c6h,06cc6h,064c6h,060c6h
|
||
.word 058c6h,050c6h,048c6h,040c6h,038c6h,030c6h,028c6h,07fe6h
|
||
.word 07fe6h,07fe6h,07fe6h,07fe6h,07fe6h,07fe6h,077a6h,07386h
|
||
.word 06f66h,06b46h,06726h,05ee6h,056a6h,04e66h,039c6h
|
||
|
||
SQDFR4_P:
|
||
.word 63
|
||
.word 039ach,07f3fh,07effh,07edfh,07e9fh,07e7fh,07e5fh,07e3fh
|
||
.word 07dffh,079dfh,075beh,071bdh,06d9ch,0697bh,0655ah,06159h
|
||
.word 05d58h,05957h,05555h,05154h,04953h,04551h,04150h,0394fh
|
||
.word 0354dh,0314ch,02d4bh,07f9ch,07f18h,07eb5h,07e31h,07dadh
|
||
.word 07d4ah,07d4ah,07d4ah,07d4ah,07d4ah,07d4ah,0754ah,0714ah
|
||
.word 0694ah,0614ah,0594ah,0514ah,0494ah,0414ah,0394ah,07feah
|
||
.word 07feah,07feah,07feah,07feah,07feah,07feah,07feah,07feah
|
||
.word 07feah,07bcah,077aah,06f6ah,0672ah,05eeah,04a4ah
|
||
|
||
SQDFR5_P:
|
||
.word 63
|
||
.word 039ach,07fffh,07fbfh,07f9fh,07f5fh,07f3fh,07f1fh,07effh
|
||
.word 07ebfh,07e9fh,07e7fh,07e7fh,07e5fh,07e3fh,07e1fh,07a1fh
|
||
.word 0761eh,0721dh,06e1bh,06a1ah,06219h,05e17h,05a16h,05215h
|
||
.word 04e13h,04a12h,04611h,07fffh,07fdeh,07f7bh,07ef7h,07e73h
|
||
.word 07e10h,07e10h,07e10h,07e10h,07e10h,07e10h,07e10h,07e10h
|
||
.word 07e10h,07a10h,07210h,06a10h,06210h,05a10h,05210h,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,07ff0h
|
||
.word 07ff0h,07ff0h,07ff0h,07ff0h,07ff0h,077b0h,06310h
|
||
|
||
SQDFR6_P:
|
||
.word 63
|
||
.word 039ach,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fbfh,07f9fh,07f7fh,07f7fh,07f5fh,07f3fh,07f1fh,07f1fh
|
||
.word 07f1fh,07f1fh,07f1fh,07f1fh,07f1fh,07f1fh,07b1eh,0731dh
|
||
.word 06f1bh,06b1ah,06719h,07fffh,07fffh,07fffh,07fffh,07f7bh
|
||
.word 07f18h,07f18h,07f18h,07f18h,07f18h,07f18h,07f18h,07f18h
|
||
.word 07f18h,07f18h,07f18h,07f18h,07f18h,07b18h,07318h,07ff8h
|
||
.word 07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h
|
||
.word 07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h,07ff8h
|
||
|
||
SQDFR7_P:
|
||
.word 63
|
||
.word 039ach,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
.word 07fffh,07fffh,07fffh,07fffh,07fffh,07fffh,07fffh
|
||
|
||
|
||
CODE_G_P:
|
||
.word 64
|
||
.word 00000h,07fffh,06f7bh,06b5ah,05ef7h,05ad6h,056b5h,04e73h
|
||
.word 04a52h,04631h,04210h,039ceh,035adh,0318ch,02d6bh,0294ah
|
||
.word 02949h,0254ah,0292ah,02529h,02528h,02129h,02508h,02108h
|
||
.word 01ce8h,01ce7h,018c6h,018c5h,014a5h,014a4h,01484h,01085h
|
||
.word 01084h,00c63h,00000h,00320h,00300h,002e0h,002c0h,002c0h
|
||
.word 002a0h,00280h,00280h,00260h,00240h,00220h,00220h,00200h
|
||
.word 001e0h,001c0h,001c0h,001a0h,00180h,00160h,00160h,00140h
|
||
.word 00120h,00100h,000e0h,000e0h,000c0h,000a0h,00080h,00060h
|
||
|
||
CODE_R_P:
|
||
.word 64
|
||
.word 00000h,07fffh,06f7bh,06b5ah,05ef7h,05ad6h,056b5h,04e73h
|
||
.word 04a52h,04631h,04210h,039ceh,035adh,0318ch,02d6bh,0294ah
|
||
.word 02949h,0254ah,0292ah,02529h,02528h,02129h,02508h,02108h
|
||
.word 01ce8h,01ce7h,018c6h,018c5h,014a5h,014a4h,01484h,01085h
|
||
.word 01084h,00c63h,00000h,06800h,06400h,06000h,06000h,05c00h
|
||
.word 05800h,05400h,05000h,04c00h,04c00h,04800h,04400h,04000h
|
||
.word 03c00h,03c00h,03800h,03400h,03000h,03000h,02c00h,02800h
|
||
.word 02400h,02400h,02000h,01c00h,01800h,01800h,01400h,01000h
|
||
|
||
CODE_Y_P:
|
||
.word 64
|
||
.word 00000h,07fffh,06f7bh,06b5ah,05ef7h,05ad6h,056b5h,04e73h
|
||
.word 04a52h,04631h,04210h,039ceh,035adh,0318ch,02d6bh,0294ah
|
||
.word 02949h,0254ah,0292ah,02529h,02528h,02129h,02508h,02108h
|
||
.word 01ce8h,01ce7h,018c6h,018c5h,014a5h,014a4h,01484h,01085h
|
||
.word 01084h,00c63h,00000h,06720h,06300h,06300h,05ee0h,05ac0h
|
||
.word 05ac0h,056a0h,05280h,04e60h,04e60h,04a40h,04620h,04620h
|
||
.word 041e0h,03dc0h,039a0h,03580h,03160h,02d40h,02920h,02900h
|
||
.word 024e0h,020c0h,01ca0h,018a0h,01880h,01460h,01060h,01040h
|
||
|
||
|
||
TUBE_O_P:
|
||
.word 127
|
||
.word 00000h,07f41h,07f20h,07ec0h,07ec0h,07ea0h,07ea0h,07ea0h
|
||
.word 07e80h,07e80h,07e80h,07e60h,07e60h,07e60h,07e60h,07e40h
|
||
.word 07e60h,07e40h,07e20h,07e20h,07e20h,07e20h,07e00h,07e00h
|
||
.word 07e00h,07de0h,07de0h,07dc0h,07dc0h,07de0h,07dc0h,07dc0h
|
||
.word 07dc0h,079c0h,079c0h,07dc0h,079c0h,079c0h,079c0h,075a0h
|
||
.word 075a0h,079c0h,071a0h,075a0h,071a0h,071a0h,075a0h,071a0h
|
||
.word 071a0h,06d80h,06d80h,071a0h,06d80h,06d80h,06980h,06980h
|
||
.word 06560h,06980h,06560h,06560h,06560h,06160h,06160h,06160h
|
||
.word 06160h,05d40h,05d40h,05d40h,05d40h,05940h,05d40h,05520h
|
||
.word 05520h,05940h,05520h,05520h,05940h,05120h,05520h,05120h
|
||
.word 05520h,05120h,05120h,04d00h,04d00h,04d00h,04900h,04900h
|
||
.word 04900h,044e0h,044e0h,044e0h,044e0h,040e0h,040e0h,040e0h
|
||
.word 03cc0h,03cc0h,038c0h,034a0h,038c0h,034a0h,034a0h,030a0h
|
||
.word 034a0h,034a0h,030a0h,02c80h,030a0h,02c80h,030a0h,02c80h
|
||
.word 02880h,02c80h,02460h,02880h,02880h,02460h,02460h,02060h
|
||
.word 02060h,02060h,02060h,01c40h,01840h,01420h,01020h
|
||
|
||
TUBE_R_P:
|
||
.word 127
|
||
.word 0294ah,07ed5h,07e72h,079eeh,075eeh,07dabh,075cdh,079ach
|
||
.word 07d69h,0798bh,0758bh,0718bh,0756ah,07949h,07948h,07548h
|
||
.word 07928h,07927h,07106h,078c5h,06d07h,070e6h,06907h,06ce6h
|
||
.word 06cc5h,07482h,060e6h,05ce6h,060c5h,07062h,06c82h,07061h
|
||
.word 06883h,05cc5h,06882h,07041h,06c61h,06483h,06862h,06482h
|
||
.word 06861h,06c41h,054c5h,06462h,06082h,06461h,06841h,054a5h
|
||
.word 06062h,054a4h,06061h,06441h,05c62h,06041h,05c61h,05862h
|
||
.word 04ca4h,05c41h,05861h,05462h,05841h,05461h,04c83h,05062h
|
||
.word 05441h,05061h,04484h,05041h,04c42h,04c41h,05021h,04861h
|
||
.word 04083h,04842h,04462h,04841h,04c21h,03c83h,04442h,04441h
|
||
.word 04821h,04042h,04421h,04041h,03c42h,04021h,03c41h,03842h
|
||
.word 03c21h,03841h,03063h,03442h,03821h,03441h,03042h,03421h
|
||
.word 02863h,03021h,02c41h,02462h,02c21h,02841h,02822h,02423h
|
||
.word 02442h,02821h,02441h,02023h,02042h,02041h,02421h,01c42h
|
||
.word 01c41h,02021h,01823h,01842h,01c21h,01442h,01821h,01441h
|
||
.word 01422h,01042h,01421h,01021h,00c21h,00821h,00421h
|
||
|
||
|
||
TUBE_Y_P:
|
||
.word 127
|
||
.word 00000h,07fe0h,07fc0h,07fa0h,07f80h,07f80h,07f80h,07f80h
|
||
.word 07f60h,07f80h,07f60h,07f60h,07f60h,07f60h,07f60h,07f60h
|
||
.word 07f60h,07f60h,07f40h,07f40h,07f40h,07f40h,07f20h,07f20h
|
||
.word 07f20h,07f20h,07f00h,07ee0h,07ee0h,07f00h,07ee0h,07ee0h
|
||
.word 07ee0h,07ee0h,07ee0h,07ee0h,07ee0h,07ee0h,07ee0h,07ac0h
|
||
.word 07ac0h,07ee0h,076a0h,07ac0h,076a0h,076a0h,07ac0h,076a0h
|
||
.word 076a0h,07280h,07280h,076a0h,07280h,07280h,06e80h,06e80h
|
||
.word 06a60h,06e80h,06a60h,06a60h,06a60h,06640h,06640h,06640h
|
||
.word 06640h,06220h,06220h,06220h,06220h,05e20h,06220h,05a00h
|
||
.word 05a00h,05e20h,05a00h,05a00h,05e20h,055e0h,05a00h,055e0h
|
||
.word 05a00h,055e0h,055e0h,051c0h,051c0h,051c0h,04da0h,04da0h
|
||
.word 04da0h,049a0h,049a0h,049a0h,049a0h,04580h,04580h,04580h
|
||
.word 04160h,04160h,03d60h,03940h,03d60h,03940h,03940h,03520h
|
||
.word 03940h,03940h,03520h,03100h,03520h,03100h,03520h,03100h
|
||
.word 02ce0h,03100h,028e0h,02ce0h,02ce0h,028e0h,028e0h,024c0h
|
||
.word 024c0h,024c0h,024c0h,020a0h,01c80h,01880h,01460h
|
||
|
||
|
||
TUBE_G_P:
|
||
.word 127
|
||
.word 00000h,063d4h,05bd1h,04bcch,04bcbh,047cah,047cah,047cah
|
||
.word 043c8h,043c9h,043c8h,03fc7h,03fc7h,03fc7h,03bc6h,03bc5h
|
||
.word 03bc6h,03bc5h,033c2h,033c3h,02fc1h,033c2h,02fc1h,02fc1h
|
||
.word 02bc1h,02bc1h,027a1h,02781h,02781h,027a1h,02781h,02781h
|
||
.word 02781h,02361h,02361h,02781h,02361h,02361h,02361h,02341h
|
||
.word 02341h,02361h,02321h,02341h,02321h,02321h,02341h,02321h
|
||
.word 02321h,01f01h,01f01h,02321h,01f01h,01f01h,01ee1h,01ee1h
|
||
.word 01ec1h,01ee1h,01ec1h,01ec1h,01ec1h,01aa1h,01aa1h,01aa1h
|
||
.word 01aa1h,01a81h,01a81h,01a81h,01a81h,01a61h,01a81h,01641h
|
||
.word 01641h,01a61h,01641h,01641h,01a61h,01621h,01641h,01621h
|
||
.word 01641h,01621h,01621h,01601h,01601h,01601h,011e1h,011e1h
|
||
.word 011e1h,011c1h,011c1h,011c1h,011c1h,00da1h,00da1h,00da1h
|
||
.word 00d81h,00d81h,00d61h,00941h,00d61h,00941h,00941h,00921h
|
||
.word 00941h,00941h,00921h,00901h,00921h,00901h,00921h,00901h
|
||
.word 004e1h,00901h,004c1h,004e1h,004e1h,004c1h,004c1h,004a1h
|
||
.word 004a1h,004a1h,004a1h,00481h,00461h,00441h,00421h
|
||
|
||
|
||
|
||
|
||
LOGOB_P:
|
||
.word 30
|
||
.word 00000h,018dfh,00cbfh,00c9fh,0001fh,0001eh,0001ch,0001bh
|
||
.word 0001ah,00019h,00018h,00017h,00016h,00015h,00014h,00013h
|
||
.word 00012h,00011h,00010h,0000fh,0000eh,0000dh,0000ch,0000bh
|
||
.word 0000ah,00009h,00008h,00007h,00006h,00005h
|
||
|
||
|
||
substutn_dirs_str_setup
|
||
PRINT_STR bast8t_ascii,4,0,200,50,BAST_W_P,0
|
||
|
||
substutn_dirs_strs
|
||
.string "PRESS TURBO TO SWAP",1
|
||
.string "PRESS SHOOT TO SELECT",0
|
||
.even
|
||
|
||
|
||
subsitution_str_setup
|
||
PRINT_STR brush20_ascii,4,0,200,7,BRSHGYOP,0
|
||
|
||
subsitution_str
|
||
.string "SUBSTITUTIONS",0
|
||
.even
|
||
|
||
|
||
create_plr_info_setup
|
||
PRINT_STR bast8t_ascii,4,0,BALL1X+52,BALL1Y-34,BAST_W_P,0
|
||
create_plr_info_setup2
|
||
PRINT_STR bast8t_ascii,4,0,BALL1X+52,BALL1Y-24,BAST_W_P,0
|
||
|
||
create_plr_info
|
||
.string "THIS OPTION INVOLVES",1
|
||
.string "NO GAME PLAY.",1
|
||
.string "ARE YOU SURE ?",0
|
||
.even
|
||
|
||
HEADB_P:
|
||
.word 27
|
||
.word 00000h,0001bh,0001ch,0001dh,0001eh,00018h,00019h,0001ah
|
||
.word 00016h,00017h,00015h,00014h,00013h,00011h,00012h,00010h
|
||
.word 0000fh,0000eh,0000dh,0000ch,0000bh,0000ah,00009h,00008h
|
||
.word 00007h,00006h,00005h
|
||
|
||
HEADR_P:
|
||
.word 27
|
||
.word 00000h,06c00h,07000h,07400h,07800h,06000h,06400h,06800h
|
||
.word 05800h,05c00h,05400h,05000h,04c00h,04400h,04800h,04000h
|
||
.word 03c00h,03800h,03400h,03000h,02c00h,02800h,02400h,02000h
|
||
.word 01c00h,01800h,01400h
|
||
|
||
|
||
;
|
||
; This table contains the RAM ptrs. for the TEXT on the balls
|
||
;
|
||
bball_text_obj_ptrs
|
||
.long bball_1_text_obj_ptr
|
||
.long bball_2_text_obj_ptr
|
||
.long bball_3_text_obj_ptr
|
||
bball_text_obj_ptrs_end
|
||
|
||
;
|
||
; This table contains:
|
||
;
|
||
; 1) ram location to save obj ptr
|
||
; 2) img ptr
|
||
; 3) X coor.
|
||
; 4) Y coor.
|
||
;
|
||
bball_text_img_setup
|
||
.long bball_1_text_obj_ptr,FNT_CRE,[BALL1X+46,0],[BALL1Y+40,0]
|
||
.long bball_2_text_obj_ptr,FNT_ENT,[BALL2X+47,0],[BALL2Y+40,0]
|
||
.long bball_3_text_obj_ptr,FNT_SEL,[BALL3X+47,0],[BALL3Y+40,0]
|
||
bball_text_img_setup_end
|
||
|
||
|
||
BIGBLD_P:
|
||
.word 196
|
||
.word 00000h,04210h,00c20h,00820h,00400h,00000h,00800h,00c20h
|
||
.word 01020h,00800h,00400h,00c00h,00820h,01020h,01020h,01420h
|
||
.word 00c01h,01020h,00c00h,01820h,01c20h,01c40h,01c40h,02040h
|
||
.word 01441h,00421h,01820h,02040h,02040h,02040h,01840h,01420h
|
||
.word 00421h,02440h,01840h,01041h,00421h,00c41h,00801h,00802h
|
||
.word 00802h,01844h,03061h,03c80h,03460h,01441h,01841h,03860h
|
||
.word 03881h,018c6h,02041h,03880h,03881h,03c81h,03ca1h,03ca2h
|
||
.word 040a2h,040e3h,040c2h,04104h,040e4h,04105h,034a2h,034c4h
|
||
.word 02ca4h,020a3h,01084h,01064h,00c43h,01441h,02c61h,03480h
|
||
.word 03481h,03060h,03060h,02c60h,02c60h,02840h,01043h,02c60h
|
||
.word 02860h,03460h,030c4h,02861h,03480h,03881h,040c3h,03cc3h
|
||
.word 03ca2h,02ca2h,01c62h,01063h,00842h,02c61h,03061h,03061h
|
||
.word 02441h,01861h,01440h,028e5h,02c81h,01c62h,00841h,00821h
|
||
.word 03081h,01444h,02860h,028e6h,03481h,00c42h,00421h,00821h
|
||
.word 03081h,02c61h,02841h,01841h,01421h,024c5h,03cc3h,03081h
|
||
.word 01441h,01043h,03481h,02461h,020c5h,02460h,02440h,02c40h
|
||
.word 02881h,02461h,02840h,02461h,02861h,02440h,01c41h,00420h
|
||
.word 00c21h,01c44h,02043h,03461h,03461h,02441h,01c41h,01844h
|
||
.word 01064h,04080h,04080h,028a2h,02882h,02861h,02461h,01c62h
|
||
.word 02041h,024a3h,02083h,03481h,01444h,02c82h,01ca4h,01841h
|
||
.word 00c44h,038c3h,01c84h,040a1h,01c63h,034e4h,01883h,04081h
|
||
.word 040a0h,038c3h,02907h,01884h,01065h,03506h,01ce6h,040a1h
|
||
.word 02062h,02460h,01463h,020e7h,01462h,00c42h,02061h,01862h
|
||
.word 030c4h,04105h,02841h,01ce6h,01cc5h,018c6h,014a4h,024a4h
|
||
.word 01ce7h,030e5h,024e7h,03505h
|
||
|
||
|
||
|
||
|
||
pressed_bball_xys
|
||
.long [BALL1X+3,0],[BALL1Y+2,0]
|
||
.long [BALL2X+3,0],[BALL2Y+2,0]
|
||
.long [BALL3X+3,0],[BALL3Y+2,0]
|
||
|
||
|
||
pressed_bball_shadw_tbl
|
||
.long [BALL1X-5,0],[BALL1Y-5,0],SMBALSA1,SMBALSA2
|
||
.long [BALL2X-5,0],[BALL2Y-5,0],SMBALSB1,SMBALSB2
|
||
.long [BALL3X-5,0],[BALL3Y-5,0],SMBALSC1,SMBALSC2
|
||
|
||
|
||
;
|
||
; This table contains:
|
||
; 1) X of SPOTLIGHT
|
||
; 2) Y pf SPOTLIGHT
|
||
; 3) Table addr. of image table ptr.
|
||
;
|
||
sptlght_img_tbl_ptr_tbl
|
||
.long [BALL1X-14,0],[0,0],spotlight_1_imgs
|
||
.long [BALL2X-18,0],[0,0],spotlight_2_imgs
|
||
.long [BALL3X-14,0],[0,0],spotlight_3_imgs
|
||
|
||
;
|
||
; This table contains:
|
||
; 4) X of ball SHADOW
|
||
; 5) Y of ball SHADOW
|
||
; 6) Table addr. of image table ptr.
|
||
;
|
||
sptlght_bball_shadw_img_tbl
|
||
.long [BALL1X-6,0],[BALL1Y+47,0],bball_1_shadow_imgs
|
||
.long [BALL2X-6,0],[BALL2Y+47,0],bball_2_shadow_imgs
|
||
.long [BALL3X-6,0],[BALL3Y+47,0],bball_3_shadow_imgs
|
||
|
||
|
||
spotlight_1_imgs
|
||
.long SPOTLTA1
|
||
.long SPOTLTA2
|
||
.long SPOTLTA3
|
||
.long SPOTLTA4
|
||
.long SPOTLTA5
|
||
|
||
bball_1_shadow_imgs
|
||
.long BGBALSA1,BGBALSA2
|
||
|
||
|
||
spotlight_2_imgs
|
||
.long SPOTLTB1
|
||
.long SPOTLTB2
|
||
.long SPOTLTB3
|
||
.long SPOTLTB4
|
||
.long SPOTLTB5
|
||
|
||
bball_2_shadow_imgs
|
||
.long BGBALSB1,BGBALSB2
|
||
|
||
|
||
spotlight_3_imgs
|
||
.long SPOTLTC1
|
||
.long SPOTLTC2
|
||
.long SPOTLTC3
|
||
.long SPOTLTC4
|
||
.long SPOTLTC5
|
||
|
||
bball_3_shadow_imgs
|
||
.long BGBALSC1,BGBALSC2
|
||
|
||
|
||
|
||
opt_str_setup
|
||
PRINT_STR brush20_ascii,10,0,199,7,BRSHGYOP,0
|
||
; PRINT_STR brush20_ascii,10,0,199,5,BRSHGYO_P,0
|
||
|
||
option_strings
|
||
.string "choose option",0
|
||
.even
|
||
|
||
;;the real version will have two tables...one with all three options and one
|
||
;; with only two options
|
||
;;plate_xys ;create plyr, select teams, and enter inits.
|
||
; .word OPT_PLATE_LX,OPT_PLATE_CX,OPT_PLATE_RX
|
||
;plate_xys2 ;select teams and enter initials
|
||
; .word 135,250
|
||
|
||
******************************************************************************
|
||
.end
|
||
|
||
|