INCLUDE command.i
INCLUDE sys.i
INCLUDE scn_lib.i
INCLUDE obj_lib.i
INCLUDE income2.i
INCLUDE player.i
INCLUDE backup.i
INCLUDE color_li.i
XDEF _game_task
XDEF _player_flag
XDEF _roundclrflag
XDEF _round
XDEF _scene
XDEF _win1p,_win2p
XDEF _level_disp
XDEF chckn_LSP
XDEF dia_1p_LSP,dia_2p_LSP
XREF _field_task
XREF _player_task
XREF _player_init_start
XREF _player_init_round
XREF _player_init_continue
XREF _name_regist
XREF _make_rnd
XREF _make_rnd1,_make_rnd2
XREF _win_disp_init
XREF _win_disp_co_task
XREF _player_print
XREF _ending_disp
XREF _lsp_rsv_calc
XREF _draw_disp_init
XREF _draw_disp_co_task
XREF _inst_disp
XREF _card_load
XREF _card_save
XREF _card_test
XREF _object_looking
XREF MVS_FLAG,COUNTRY_CODE
XREF PLAYER_MODE
XREF _debug_flag_2
XREF _game_round
XREF _card_access_ok
XREF _game_condition
XREF _credit_look_1p,_credit_look_2p
XREF _credit_bak
XREF _much
XREF _vs_credit
XREF _intrude_flag
XREF _display_level
XREF _difficulity
XREF _floor_flag
XREF _player_continue
XREF _how_to_play
XREF _select_sw,_select_sw_jst
XREF _ply1_sw_jst,_ply2_sw_jst
XREF _ply1_sw,_ply2_sw
XREF _rnd,_rnd1,_rnd2
XREF _player_work1,_player_work2
XREF _credit_up_flag
XREF _credit_up_1p,_credit_up_2p
XREF _mon,_day,_year
XREF _demo_flag
XREF _user_start
XREF _start_mode
XREF _continue_mode
IFNZ HOMEUSE
XREF _home_credit_1,_home_credit_2
XREF _vs_cont_flag
ENDC
XREF JAPAN,USA,OTHER,ASIA
XREF _credit_mode
xref _game_type
XREF sBGM1,sBGM2,sBGM1N,sBGM2N
XREF sBGMSTOP
XREF sALLSTOP
XREF sCLEAR1
XREF sCLEAR2
XREF sCLEAR2E
XREF sGAMEOVER,sGAMEOV_E
XREF sSESTOP,sREADY,sGO
XREF sOUT,sCONTI,sCONT_E
XREF sKOKE,sKOKE_E
XREF sSP1,sSP1_E1,sSP1_E2,sCD,sCD_E
XREF sPO2,sPO1,sFP1
XREF sSELE_JP,sSELE_US
XREF sPAUSE
XREF _bl_clear
XREF _bl_round
XREF _bl_player
XREF _bl_won,_bl_one,_bl_two
XREF _bl_lost
XREF _bl_draw
XREF _bl_sco_a,_bl_sco_b,_bl_sco_c,_bl_sco_d
XREF _bl_sco_e,_bl_sco_f,_bl_sco_g,_bl_sco_h
XREF _bl_sco_i,_bl_sco_j,_bl_sco_k,_bl_sco_l
XREF _bl_sco_m,_bl_sco_n,_bl_sco_o,_bl_sco_p
XREF _bl_sco_q,_bl_sco_r,_bl_sco_s,_bl_sco_t
XREF _bl_sco_u,_bl_sco_v,_bl_sco_w,_bl_sco_x
XREF _bl_sco_y,_bl_sco_z
XREF _bl_sco_0,_bl_sco_1,_bl_sco_2,_bl_sco_3,_bl_sco_4
XREF _bl_sco_5,_bl_sco_6,_bl_sco_7,_bl_sco_8,_bl_sco_9
XREF _bl_sce_a,_bl_sce_b,_bl_sce_c,_bl_sce_d
XREF _bl_sce_e,_bl_sce_f,_bl_sce_g,_bl_sce_h
XREF _bl_sce_i,_bl_sce_j,_bl_sce_k,_bl_sce_l
XREF _bl_sce_m,_bl_sce_n,_bl_sce_o,_bl_sce_p
XREF _bl_sce_q,_bl_sce_r,_bl_sce_s,_bl_sce_t
XREF _bl_sce_u,_bl_sce_v,_bl_sce_w,_bl_sce_x
XREF _bl_sce_y,_bl_sce_z
XREF _bl_sce_0,_bl_sce_1,_bl_sce_2,_bl_sce_3,_bl_sce_4
XREF _bl_sce_5,_bl_sce_6,_bl_sce_7,_bl_sce_8,_bl_sce_9
XREF _bl_food1,_bl_food2,_bl_food3,_bl_food4
XREF _bl_end_us
XREF _bl_vs_score
XREF _bl_chackn
XREF _bl_chacknf,_bl_chackn1,_bl_chackn2,_bl_chackn3,_bl_chackn4
XREF _bl_chackn5,_bl_chackn6,_bl_chackn7,_bl_chackn8,_bl_chackn9
XREF _bl_chackna,_bl_chacknb,_bl_chacknc,_bl_chacknd,_bl_chackne
XREF _bl_panels,_bl_panels1,_bl_panels2,_bl_panels3
XREF _bl_mekuri1,_bl_mekuri2,_bl_mekuri3
XREF _bl_selewaku,_bl_selescr,_bl_mode,_bl_emode
XREF _bl_e2play,_bl_e1play,_bl_2play,_bl_1play
XREF _bl_buba01,_bl_bubg01,_bl_bubg02
XREF _bl_bubh01,_bl_bubh02
XREF _bl_bubh01,_bl_bubh02
XREF _bl_card1,_bl_card2,_bl_card3,_bl_card4
XREF _bl_card5,_bl_card6,_bl_card7,_bl_card8
XREF _bl_card9,_bl_carda,_bl_cardb,_bl_cardc
XREF _bl_cardd,_bl_carde,_bl_cardf,_bl_cardg
XREF _bl_card1e,_bl_card2e,_bl_card3e,_bl_card4e
XREF _bl_card5e,_bl_card6e,_bl_card7e,_bl_card8e
XREF _bl_card9e,_bl_cardae,_bl_cardbe,_bl_cardce
XREF _bl_cardde,_bl_cardee,_bl_cardfe,_bl_cardge
XREF _mon_tbl
XREF _DcSCE_A
OBJ_MACRO MACRO x_pos,y_pos,bl_addr,mode
MOVE.W x_pos,D0
MOVE.W y_pos,D1
MOVE.W mode,D2
MOVE.L bl_addr,A0
B_OBJ
ENDM
ROUND_SEL EQU TRUE
VS_SCORE_BACKUP EQU FALSE
MODE_NOP EQU 00
MODE_GAME EQU 01
MODE_CONT EQU 02
MODE_OVER EQU 03
BUB_1P EQU 39
BUB_2P EQU 36
OBJ_MOJI_COL EQU 22
OBJ_MOJI_COL2 EQU 24
OBJ_PLATE_COL EQU 28
OBJ_PLATE_COL2 EQU 30
SEL_SCN_COL EQU 4
SEL_SCN_COL2 EQU 01
SEL_OBJ_COL EQU 57
SEL_WAK_COL EQU 34
NEXT_COL EQU 20
BUB_COL EQU 36
BOB_COL EQU 39
WON_COL EQU 40
P1_COL EQU 16
P2_COL EQU 18
GRAY_COL EQU 55
CHACKN_COL EQU 56
DIA_COL EQU 58
END_USA EQU 30
FIX_WON_COL EQU 8
FIX_MOJI_COL EQU 9
FIX_PANEL_COL EQU 11
FIX_RES_COL EQU 12
MAX_ROUND EQU 30
TIMER_BONUS_MAX EQU 50000
SEC_SCORE EQU 840
MINI_HPOS_1P EQU 02
MINI_HPOS_2P EQU 27
MINI_VPOS EQU 01
WORK_RAM: SECTION REF_ONLY
_player_flag DS.W 1
_roundclrflag DS.W 1
_round DS.W 1
_scene DS.W 1
_win1p DS.W 1
_win2p DS.W 1
win1p DS.W 1
win2p DS.W 1
round_bak DS.W 1
score_bak DS.L 1
player_bak DS.W 1
cont_timer DS.W 1
round_timer DS.L 1
timer_bonus DS.L 1
dia_1_timer DS.W 1
dia_1_no DS.W 1
dia_2_timer DS.W 1
dia_2_no DS.W 1
vs_winner DS.W 1
vs_round_bak DS.W 1
IFNZ VS_SCORE_BACKUP
vs_1p_score_bak DS.L 1
vs_2p_score_bak DS.L 1
ENDC
mini_cont_time DS.W 1
mini_cont_sign DS.W 1
anm_timer DS.W 1
col_mode DS.W 1
chckn_timer DS.W 1
chckn_no DS.W 1
chckn_tbl DS.L 1
chckn_LSP DS.W 1
dia_1p_LSP DS.W 1
dia_2p_LSP DS.W 1
challenge_flag DS.W 1
country_type DS.W 1
set_no DS.W 1
set_player DS.B 6
o_XPOS EQU 0000
o_YPOS EQU o_XPOS+WORD
o_BLADDR EQU o_YPOS+WORD
SIZEOFresult EQU o_BLADDR+LONG
result_work DS.B SIZEOFresult*2*5
PROG: SECTION
_game_task
JSR _object_looking
SOUND #sALLSTOP
BCLR.B #GAMEOVER,_game_condition-QA5(A5)
BCLR.B #ROUNDCLR,_game_condition-QA5(A5)
CLR.W challenge_flag-QA5(A5)
CLR.W _roundclrflag-QA5(A5)
CLR.W _player_flag-QA5(A5)
CLR.W _round-QA5(A5)
CLR.W _scene-QA5(A5)
CLR.W win1p-QA5(A5)
CLR.W win2p-QA5(A5)
CLR.W _win1p-QA5(A5)
CLR.W _win2p-QA5(A5)
CLR.W set_no-QA5(A5)
CLR.L set_player-QA5(A5)
CLR.W set_player+LONG-QA5(A5)
CLR.W country_type-QA5(A5)
CLR.W dia_1_timer-QA5(A5)
CLR.W dia_2_timer-QA5(A5)
CLR.W round_bak-QA5(A5)
MOVE.W #01,player_bak-QA5(A5)
CLR.L score_bak-QA5(A5)
CLR.W vs_round_bak-QA5(A5)
IFNZ VS_SCORE_BACKUP
CLR.L vs_1p_score_bak-QA5(A5)
CLR.L vs_2p_score_bak-QA5(A5)
ENDC
CLR.W mini_cont_time-QA5(A5)
CLR.W mini_cont_sign-QA5(A5)
tst.b _game_type-QA5(A5)
beq.s init_100
MOVE.W #01,country_type-QA5(A5)
COLOR_TRANS #_DcSCE_A,#OBJ_MOJI_COL+OBJ_COL_OFS
COLOR_TRANS #_DcSCE_A,#FIX_MOJI_COL
init_100
RETSYS
TST.B _start_mode-QA5(A5)
BEQ one_coin_vs_skip
BSR select_sub
one_coin_vs_skip
BSR start_flag_reset
style_only_1p
BSR round_select
JSR _player_init_start
BRA.S round_init
round_loop
JSR _player_init_round
round_init
CLR.L round_timer-QA5(A5)
CLR.W anm_timer-QA5(A5)
CLR.W chckn_timer-QA5(A5)
CLR.W chckn_no-QA5(A5)
CLR.L chckn_tbl-QA5(A5)
MOVE.L #join_anm_tbl,A4
TST.W country_type-QA5(A5)
BEQ.S round_init_050
MOVE.L #join_anm_tble,A4
round_init_050
JSR _lsp_rsv_calc
START _field_task,#FIELDno
START _player_task,#PLAYERno
TST.W country_type-QA5(A5)
BEQ.S bgm_select050
CMP.W #15,_scene-QA5(A5)
BGE.S bgm_other
SOUND #sBGM1
SOUND #sSP1_E1
BRA bgm_select_end
bgm_other
SOUND #sBGM2
SOUND #sSP1_E2
BRA bgm_select_end
bgm_select050
CMP.W #03,_player_flag-QA5(A5)
BEQ.S bgm_select100
SOUND #sBGM1N
SOUND #sSP1
BRA.S bgm_select_end
bgm_select100
SOUND #sBGM2N
bgm_select_end
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
BSR round_disp
RETSYS
TST.W country_type-QA5(A5)
BNE.S ready_other_sound
SOUND #sSESTOP
SOUND #sREADY
ready_other_sound
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
BSR round_disp
RETSYS
TST.B _display_level-QA5(A5)
BEQ level_mode
round_mode
PRINT 16,27,#GRD_ROUND,#GROUND_WHITE
MOVE.W _round-QA5(A5),D0
EXT.L D0
ADD.W #01,D0
GROUND_DEC 22,27,D0,#02,#GROUND_WHITE
level_mode
round_mode_n
BSR vs_plate_print
CLR.W mini_cont_sign-QA5(A5)
MOVE.W #60*1+29-1,D7
ready_loop
IFNZ HOMEUSE
BSR pause_check
ENDC
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
BSR round_disp
CMP.W #3,_player_flag-QA5(A5)
BEQ.S ready_100
BSR mini_continue
BSR intrude_check
ready_100
RETSYS
DBRA D7,ready_loop
BTST.B #ROUNDCLR,_game_condition-QA5(A5)
BNE start_intrude_ent
TST.W country_type-QA5(A5)
BNE.S go_other_sound
SOUND #sSESTOP
SOUND #sGO
go_other_sound
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
BSR vs_score_disp
CMP.W #1,_player_flag-QA5(A5)
BEQ ?2p_join_in
?1p_join_in
MOVE.B _credit_look_1p-QA5(A5),D0
BRA.S ?thank_you_check
?2p_join_in
MOVE.B _credit_look_2p-QA5(A5),D0
?thank_you_check
TST.B D0
BEQ.S round_init_100
MOVE.L #thk_anm_tbl,A4
TST.W country_type-QA5(A5)
BEQ.S round_init_100
MOVE.L #thk_anm_tble,A4
round_init_100
main_loop
RETSYS
ADD.L #01,round_timer-QA5(A5)
CMP.L #1000*60,round_timer-QA5(A5)
BLT.S checktimer
MOVE.L #999*60,round_timer-QA5(A5)
checktimer
MOVE.W _player_flag-QA5(A5),D0
CMP.W #3,D0
BNE.S main100
BSR double_game
BRA.S main200
main100
BSR mini_continue
BSR single_game
main200
BTST.B #GAMEOVER,_game_condition-QA5(A5)
BEQ.S main300
BRA continue_check
main300
BTST.B #ROUNDCLR,_game_condition-QA5(A5)
BEQ.S main400
start_intrude_ent
STOP #PLAYERno
STOP #FIELDno
BCLR.B #ROUNDCLR,_game_condition-QA5(A5)
RETSYS
ALL_CLEAR
BRA round_loop
main400
BRA main_loop
_level_disp
TST.B _display_level-QA5(A5)
BNE level_disp_end
TST.B _floor_flag-QA5(A5)
BNE level_disp_grd
PRINT 17,27,#STR_LEVEL,#GROUND_WHITE
MOVE.W _difficulity-QA5(A5),D0
ADDQ.W #1,D0
EXT.L D0
PRINT_DEC 22,27,D0,#01,#WHITE
BRA level_disp_end
level_disp_grd
PRINT 17,27,#GRD_LEVEL,#GROUND_WHITE
MOVE.W _difficulity-QA5(A5),D0
ADDQ.W #1,D0
EXT.L D0
GROUND_DEC 22,27,D0,#01,#GROUND_WHITE
level_disp_end
RTS
STR_ROUND ASCII 'ROUND'
GRD_ROUND DC.B $DB,$DC,$DD,$DE,$DF,0
DS.W 0
STR_LEVEL DC.B $F0,$F1,$F2,$F3,$F4,0
DS.W 0
GRD_LEVEL DC.B $E0,$E1,$E2,$E3,$E4,0
DS.W 0
round_clr:
MOVE.W #10-1+30,D7
clr_loop1
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
RETSYS
DBRA D7,clr_loop1
TST.W country_type-QA5(A5)
BNE.S clr_timer_set
SOUND #sALLSTOP
SOUND #sCLEAR2
clr_timer_set
MOVE.W #60*2-8-1,D7
clr_loop
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
LEA.L clear_obj,A3
TST.W country_type-QA5(A5)
BEQ.S clr_obj_100
LEA.L clear_obj_e,A3
clr_obj_100
MOVE.W #10-1,D6
clr_obj_loop
MOVE.W (A3)+,D0
MOVE.W (A3)+,D1
MOVE.L (A3)+,D5
OBJ_MACRO D0,D1,D5,#OBJ_MOJI_COL
DBRA D6,clr_obj_loop
RETSYS
DBRA D7,clr_loop
TST.W country_type-QA5(A5)
BEQ.S clr_disp_end
SOUND #sALLSTOP
SOUND #sCLEAR2E
clr_disp_end
RTS
clear_obj
DC.L (04*16+8)*10000H+5*16,_bl_sco_r
DC.L (05*16+8)*10000H+5*16,_bl_sco_o
DC.L (06*16+8)*10000H+5*16,_bl_sco_u
DC.L (07*16+8)*10000H+5*16,_bl_sco_n
DC.L (08*16+8)*10000H+5*16,_bl_sco_d
DC.L (10*16+8)*10000H+5*16,_bl_sco_c
DC.L (11*16+8)*10000H+5*16,_bl_sco_l
DC.L (12*16+8)*10000H+5*16,_bl_sco_e
DC.L (13*16+8)*10000H+5*16,_bl_sco_a
DC.L (14*16+8)*10000H+5*16,_bl_sco_r
clear_obj_e
DC.L (04*16+8)*10000H+5*16,_bl_sce_r
DC.L (05*16+8)*10000H+5*16,_bl_sce_o
DC.L (06*16+8)*10000H+5*16,_bl_sce_u
DC.L (07*16+8)*10000H+5*16,_bl_sce_n
DC.L (08*16+8)*10000H+5*16,_bl_sce_d
DC.L (10*16+8)*10000H+5*16,_bl_sce_c
DC.L (11*16+8)*10000H+5*16,_bl_sce_l
DC.L (12*16+8)*10000H+5*16,_bl_sce_e
DC.L (13*16+8)*10000H+5*16,_bl_sce_a
DC.L (14*16+8)*10000H+5*16,_bl_sce_r
challenger:
LETWAIT #PLAYER_Bit
OR.W #01,_player_work1+p_BALL_WAIT-QA5(A5)
OR.W #01,_player_work2+p_BALL_WAIT-QA5(A5)
BSR mini_con_erase
SOUND #sALLSTOP
MOVE.W #10-1+30,D7
cha_loop1
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
JSR _player_print
RETSYS
DBRA D7,cha_loop1
TST.W country_type-QA5(A5)
BNE.S cha_other_sound
SOUND #sKOKE
BRA.S cha_sound
cha_other_sound
SOUND #sKOKE_E
cha_sound
XREF _fx_challeng,_fx_challe_e
LEA.L _fx_challeng,A3
TST.W country_type-QA5(A5)
BEQ.S fix_moji_100
LEA.L _fx_challe_e,A3
fix_moji_100
PRINT_BLOCK 08,08,A3,#FIX_MOJI_COL
MOVE.W #60*2-1+30,D7
cha_loop
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
JSR _player_print
RETSYS
DBRA D7,cha_loop
CLR.L D7
RTS
IFNZ HOMEUSE
pause_check:
TST.B MVS_FLAG
BNE pause_skip
CLR.W D1
MOVE.W _player_flag-QA5(A5),D0
BTST #0,D0
BEQ pause_1p_skip
OR.W #1.SHL.PAUSE1,D1
pause_1p_skip:
BTST #1,D0
BEQ pause_2p_skip
OR.W #1.SHL.PAUSE2,D1
pause_2p_skip:
MOVE.B _select_sw_jst-QA5(A5),D0
AND.W D1,D0
BEQ pause_skip
pause_main:
SOUND #sPAUSE
LETWAIT #PLAYER_Bit^FIELD_Bit^OBJ_Bit
PRINT 17,14,#STR_PAUSE,#WHITE
pause_loop:
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
RETSYS
CLR.W D1
MOVE.W _player_flag-QA5(A5),D0
BTST #0,D0
BEQ pause_1p_skip_c
OR.W #1.SHL.PAUSE1,D1
pause_1p_skip_c:
BTST #1,D0
BEQ pause_2p_skip_c
OR.W #1.SHL.PAUSE2,D1
pause_2p_skip_c:
MOVE.B _select_sw_jst-QA5(A5),D0
AND.W D1,D0
BEQ pause_loop
PRINT 17,14,#STR_PAUSE_OFF,#WHITE
SIGNAL #PLAYER_Bit^FIELD_Bit^OBJ_Bit
pause_skip:
RTS
STR_PAUSE:
ASCII 'PAUSE '
STR_PAUSE_OFF:
ASCII ' '
ENDC
round_disp:
CMP.W #03,_player_flag-QA5(A5)
BEQ round_disp_end
TST.W country_type-QA5(A5)
BNE.S round_obj_bb
round_obj_pb
OBJ_MACRO #07*16+8,#03*16+8,#_bl_sco_r,#OBJ_MOJI_COL
OBJ_MACRO #08*16+8,#03*16+8,#_bl_sco_o,#OBJ_MOJI_COL
OBJ_MACRO #09*16+8,#03*16+8,#_bl_sco_u,#OBJ_MOJI_COL
OBJ_MACRO #10*16+8,#03*16+8,#_bl_sco_n,#OBJ_MOJI_COL
OBJ_MACRO #11*16+8,#03*16+8,#_bl_sco_d,#OBJ_MOJI_COL
BRA.S round_obj_end
round_obj_bb
OBJ_MACRO #07*16+8,#03*16+8,#_bl_sce_r,#OBJ_MOJI_COL
OBJ_MACRO #08*16+8,#03*16+8,#_bl_sce_o,#OBJ_MOJI_COL
OBJ_MACRO #09*16+8,#03*16+8,#_bl_sce_u,#OBJ_MOJI_COL
OBJ_MACRO #10*16+8,#03*16+8,#_bl_sce_n,#OBJ_MOJI_COL
OBJ_MACRO #11*16+8,#03*16+8,#_bl_sce_d,#OBJ_MOJI_COL
round_obj_end
MOVEQ.L #000,D6
MOVE.W _round-QA5(A5),D6
ADD.W #01,D6
MOVE.W #09*16,D4
MOVE.W #04*16+8,D1
BSR obj_dec_disp
OBJ_MACRO #06*16,#03*16,#_bl_panels1,#NEXT_COL
RTS
round_disp_end
BSR vs_score_disp
RTS
obj_dec_disp:
LINK A6,#-WORD*2
CLR.W -WORD(A6)
CLR.W -WORD*2(A6)
TST.W country_type-QA5(A5)
BEQ.S obj_dec_disp_010
MOVE.W #01,-WORD*2(A6)
obj_dec_disp_010
EXT.L D6
DIVU #100,D6
MOVE.W D6,D5
BNE.S obj_dec_disp_020
TST.W -WORD(A6)
BEQ.S obj_dec_disp_050
obj_dec_disp_020
MOVE.W #01,-WORD(A6)
LSL.W #2,D5
TST.W -WORD*2(A6)
BNE.S obj_dec_disp_025
LEA.L dec_bl_data,A0
MOVE.L 00(A0,D5.W),D5
BRA.S obj_dec_disp_030
obj_dec_disp_025
LEA.L dec_bl_datae,A0
MOVE.L 00(A0,D5.W),D5
obj_dec_disp_030
OBJ_MACRO D4,D1,D5,#OBJ_MOJI_COL
ADD.W #16,D4
obj_dec_disp_050
SWAP D6
EXT.L D6
DIVU #10,D6
MOVE.W D6,D5
BNE.S obj_dec_disp_070
TST.W -WORD(A6)
BEQ.S obj_dec_disp_100
obj_dec_disp_070
MOVE.W #01,-WORD(A6)
LSL.W #2,D5
TST.W -WORD*2(A6)
BNE.S obj_dec_disp_080
MOVE.L dec_bl_data(PC,D5.W),D5
BRA.S obj_dec_disp_090
obj_dec_disp_080
MOVE.L dec_bl_datae(PC,D5.W),D5
obj_dec_disp_090
OBJ_MACRO D4,D1,D5,#OBJ_MOJI_COL
obj_dec_disp_100
ADD.W #16,D4
SWAP D6
LSL.W #2,D6
TST.W -WORD*2(A6)
BNE.S obj_dec_disp_150
MOVE.L dec_bl_data(PC,D6.W),D6
BRA.S obj_dec_disp_200
obj_dec_disp_150
MOVE.L dec_bl_datae(PC,D6.W),D6
obj_dec_disp_200
OBJ_MACRO D4,D1,D6,#OBJ_MOJI_COL
obj_dec_disp_end
UNLK A6
RTS
dec_bl_data
DC.L _bl_sco_0,_bl_sco_1,_bl_sco_2,_bl_sco_3,_bl_sco_4
DC.L _bl_sco_5,_bl_sco_6,_bl_sco_7,_bl_sco_8,_bl_sco_9
dec_bl_datae
DC.L _bl_sce_0,_bl_sce_1,_bl_sce_2,_bl_sce_3,_bl_sce_4
DC.L _bl_sce_5,_bl_sce_6,_bl_sce_7,_bl_sce_8,_bl_sce_9
fix_res_disp
TST.W country_type-QA5(A5)
BNE.S fix_res_disp_025
LEA.L dec_fx_data,A0
BRA.S fix_res_disp_030
fix_res_disp_025
LEA.L dec_fx_datae,A0
fix_res_disp_030
EXT.L D6
DIVU #10,D6
MOVE.W D6,D5
BNE.S fix_res_disp_070
MOVE.W #10,D5
fix_res_disp_070
LSL.W #2,D5
MOVE.L 00(A0,D5.W),D5
MASK_BLOCK D4,D1,D5,#FIX_RES_COL
fix_res_disp_100
ADD.W #2,D4
SWAP D6
LSL.W #2,D6
MOVE.L 00(A0,D6.W),D5
MASK_BLOCK D4,D1,D5,#FIX_RES_COL
fix_res_disp_end
RTS
XREF _fx_res_0,_fx_res_1,_fx_res_2,_fx_res_3,_fx_res_4
XREF _fx_res_5,_fx_res_6,_fx_res_7,_fx_res_8,_fx_res_9
XREF _fx_res_null
XREF _fx_ees_0,_fx_ees_1,_fx_ees_2,_fx_ees_3,_fx_ees_4
XREF _fx_ees_5,_fx_ees_6,_fx_ees_7,_fx_ees_8,_fx_ees_9
dec_fx_data
DC.L _fx_res_0,_fx_res_1,_fx_res_2,_fx_res_3,_fx_res_4
DC.L _fx_res_5,_fx_res_6,_fx_res_7,_fx_res_8,_fx_res_9
DC.L _fx_res_null
dec_fx_datae
DC.L _fx_ees_0,_fx_ees_1,_fx_ees_2,_fx_ees_3,_fx_ees_4
DC.L _fx_ees_5,_fx_ees_6,_fx_ees_7,_fx_ees_8,_fx_ees_9
DC.L _fx_res_null
obj_dec_disp2:
LINK A6,#-WORD
CLR.W -WORD(A6)
PUSH.L D7
MOVE.W #2,D7
MOVE.W #10000,D5
dec_2_loop
DIVU D5,D6
MOVE.W D6,D3
BNE.S dec_2_disp_020
TST.W -WORD(A6)
BEQ.S dec_2_disp_050
dec_2_disp_020
MOVE.W #01,-WORD(A6)
LSL.W #2,D3
TST.W country_type-QA5(A5)
BNE.S dec_2_disp_025
LEA.L dec_bl_data,A0
MOVE.L 0(A0,D3.W),D3
BRA.S dec_2_disp_030
dec_2_disp_025
LEA.L dec_bl_datae,A0
MOVE.L 0(A0,D3.W),D3
dec_2_disp_030
OBJ_MACRO D4,D1,D3,#OBJ_MOJI_COL
dec_2_disp_050
CMP.W #10,D7
BGE.S dec_2_disp_end
ADD.W #16,D4
SWAP D6
EXT.L D6
MOVE.W dec_tbl(PC,D7.W),D5
ADD.W #02,D7
BRA dec_2_loop
dec_2_disp_end
POP.L D7
UNLK A6
RTS
dec_tbl DC.W 10000,1000,100,10,1
mini_continue
CMP.W #3,_player_flag-QA5(A5)
BEQ mini_con_exit
CMP.W #1,_player_flag-QA5(A5)
BEQ ?2p_join_in
MOVE.W #MINI_HPOS_1P,D2
MOVE.B _credit_look_1p-QA5(A5),D3
MOVE.B _credit_up_1p-QA5(A5),D4
LEA PLAYER_MODE,A0
BRA.S ?join_mess
?2p_join_in
MOVE.W #MINI_HPOS_2P,D2
MOVE.B _credit_look_2p-QA5(A5),D3
MOVE.B _credit_up_2p-QA5(A5),D4
LEA PLAYER_MODE+BYTE,A0
?join_mess
TST.B _continue_mode-QA5(A5)
BNE mini_con_erase_2
TST.W mini_cont_time-QA5(A5)
BEQ mini_con_mess
BMI mini_game_over
?continue_count
IFNZ HOMEUSE
TST.B MVS_FLAG
BNE ?cont_cont
TST.B D3
BNE ?cont_cont
BRA mini_game_over_set
?cont_cont
ENDC
TST.B D4
BEQ ?no_income
MOVE.W #10*60,mini_cont_time-QA5(A5)
?no_income
SUBQ.W #1,mini_cont_time-QA5(A5)
BLE mini_game_over_set
MOVE.W mini_cont_time-QA5(A5),D0
EXT.L D0
DIVU #60,D0
MOVE.L D0,-(SP)
SWAP D0
CMP.W #59,D0
BNE mini_cont_sound_skip
TST.W country_type-QA5(A5)
BNE.S mini_cont_other_sound
SOUND #sCD
BRA.S mini_cont_sound
mini_cont_other_sound
SOUND #sCD_E
mini_cont_sound
mini_cont_sound_skip
MOVE.L (SP)+,D0
EXT.L D0
cmp.w #20,d2
bge ?2p_continue
MASK_STR d2,#MINI_VPOS,#STR_SPACE,#WHITE
addq.w #01,d2
MASK_STR D2,#MINI_VPOS,#STR_CONT_S,#WHITE
ADD.W #09,D2
MASK_DEC D2,#MINI_VPOS,D0,#1,#WHITE
SUB.W #10,D2
BRA mini_con_exit
?2p_continue
MASK_STR D2,#MINI_VPOS,#STR_CONT_S,#WHITE
ADD.W #09,D2
MASK_DEC D2,#MINI_VPOS,D0,#1,#WHITE
addq.w #01,d2
MASK_STR d2,#MINI_VPOS,#STR_SPACE,#WHITE
SUB.W #10,D2
BRA mini_con_exit
mini_game_over_set
CLR.W vs_round_bak-QA5(A5)
IFNZ VS_SCORE_BACKUP
CLR.L vs_1p_score_bak-QA5(A5)
CLR.L vs_2p_score_bak-QA5(A5)
ENDC
CLR.W _win1p-QA5(A5)
CLR.W _win2p-QA5(A5)
MOVE.B #MODE_OVER,(A0)
MOVE.W #-60,mini_cont_time-QA5(A5)
IFNZ HOMEUSE
CLR.B _vs_cont_flag-QA5(A5)
ENDC
mini_game_over
ADDQ.W #1,mini_cont_time-QA5(A5)
BGE ?normal_set
MASK_STR D2,#MINI_VPOS,#STR_OVER_S,#RED
BRA mini_con_exit
?normal_set
MOVE.B #MODE_NOP,(A0)
CLR.W mini_cont_time-QA5(A5)
CLR.W mini_cont_sign-QA5(A5)
mini_con_mess
ANDI.W #$007F,mini_cont_sign-QA5(A5)
SUBQ.W #1,mini_cont_sign-QA5(A5)
BGT ?type_chk
MOVE.W #120,mini_cont_sign-QA5(A5)
?type_chk
CMP.W #45,mini_cont_sign-QA5(A5)
BGE ?display
MASK_STR D2,#MINI_VPOS,#STR_OFF_S,#WHITE
BRA mini_con_exit
?display
TST.B D3
BNE ?push_start
?insert
IFNZ HOMEUSE
TST.B MVS_FLAG
BEQ mini_con_exit
ENDC
MASK_STR D2,#MINI_VPOS,#STR_INSERT_S,#WHITE
BRA mini_con_exit
?push_start
cmp.w #20,d2
bge.s ?2p_push_start
MASK_STR D2,#MINI_VPOS,#STR_PUSH_1P_S,#WHITE
BRA mini_con_exit
?2p_push_start
MASK_STR D2,#MINI_VPOS,#STR_PUSH_2P_S,#WHITE
BRA mini_con_exit
mini_con_erase
CMP.W #3,_player_flag-QA5(A5)
BEQ mini_con_exit
CMP.W #1,_player_flag-QA5(A5)
BEQ ?2p_join_in
MOVE.W #MINI_HPOS_1P,D2
BRA.S ?display
?2p_join_in
MOVE.W #MINI_HPOS_2P,D2
?display
mini_con_erase_2
MASK_STR D2,#MINI_VPOS,#STR_OFF_S,#WHITE
mini_con_exit
RTS
STR_INSERT_S ASCII 'INSERT COIN'
STR_PUSH_1P_S ASCII ' PUSH START'
STR_PUSH_2P_S ASCII 'PUSH START '
STR_CONT_S ASCII 'CONTINUE '
STR_SPACE ASCII ' '
STR_OVER_S ASCII ' GAME OVER '
STR_OFF_S ASCII ' '
CONTINUE_TIMER SET 60*10-1
CANSEL_TIMER SET CONTINUE_TIMER-40
continue_check:
SOUND #sALLSTOP
MOVE.B #2,_continue_mode-QA5(A5)
CMP.W #3,_player_flag-QA5(A5)
BEQ.S ending_skip
BSET.B #ROUNDCLR,_game_condition-QA5(A5)
CMP.W #MAX_ROUND,_round-QA5(A5)
BGE ending
ending_skip
RETSYS
MOVE.W #30-1,D7
cont_loop1
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
RETSYS
DBRA D7,cont_loop1
TST.W country_type-QA5(A5)
BNE.S cont_other_sound
SOUND #sOUT
cont_other_sound
DELAY 60*1
STOP #PLAYERno
STOP #FIELDno
CLR.W _roundclrflag-QA5(A5)
ALL_CLEAR
BSR _level_disp
TST.W country_type-QA5(A5)
BNE.S cont_other_music
SOUND #sCONTI
BRA.S cont_music
cont_other_music
SOUND #sCONT_E
cont_music
CMP.W #03,_player_flag-QA5(A5)
BEQ.S vs_end
p1_end100
JSR _name_regist
LEA PLAYER_MODE,A0
TST.B (A0)
BEQ.S ?1p_skip
CMP.B #MODE_OVER,(A0)
BEQ.S ?1p_clr
MOVE.B #MODE_CONT,(A0)
BRA.S ?1p_skip
?1p_clr
MOVE.B #MODE_NOP,(A0)
?1p_skip
TST.B 1(A0)
BEQ.S ?2p_skip
CMP.B #MODE_OVER,1(A0)
BEQ.S ?2p_clr
MOVE.B #MODE_CONT,1(A0)
BRA.S ?2p_skip
?2p_clr
MOVE.B #MODE_NOP,1(A0)
?2p_skip
CLR.W vs_round_bak-QA5(A5)
IFNZ VS_SCORE_BACKUP
CLR.L vs_1p_score_bak-QA5(A5)
CLR.L vs_2p_score_bak-QA5(A5)
ENDC
CLR.W _win1p-QA5(A5)
CLR.W _win2p-QA5(A5)
CLR.W mini_cont_time-QA5(A5)
CLR.B _continue_mode-QA5(A5)
IFNZ HOMEUSE
CLR.B _vs_cont_flag-QA5(A5)
ENDC
BRA.S vs_end100
vs_end
MOVE.W #MODE_CONT*256+MODE_CONT,PLAYER_MODE
CLR.B _continue_mode-QA5(A5)
CMP.B #1,_vs_credit-QA5(A5)
BNE ?dont_care
MOVE.B #1,_continue_mode-QA5(A5)
?dont_care
IFNZ HOMEUSE
MOVE.B #1,_vs_cont_flag-QA5(A5)
ENDC
vs_end100
ALL_CLEAR
AND.W #$0101,_user_start-QA5(A5)
IFNZ HOMEUSE
TST.B MVS_FLAG
bne.s ?homeuse_end_skip
tst.w _credit_look_1p-QA5(a5)
bne.s ?homeuse_end_skip
tst.w _user_start-QA5(A5)
BEQ game_end
?homeuse_end_skip
ENDC
BSR _level_disp
BCLR.B #GAMEOVER,_game_condition-QA5(A5)
BCLR.B #ROUNDCLR,_game_condition-QA5(A5)
MOVE.W #CONTINUE_TIMER,cont_timer-QA5(A5)
MOVE.W #-1,D6
PRINT 16,16,#STR_TIMER,#YELLOW
cont_loop
RETSYS
TST.W _credit_up_flag-QA5(A5)
BEQ.S c_up_100
MOVE.W #60*10-1,cont_timer-QA5(A5)
c_up_100
TST.W _credit_look_1p-QA5(A5)
BNE pushdisp
insertdisp
PRINT 04,14,#STR_INSERT,#YELLOW
BRA cont_disp_end
pushdisp
IFNZ HOMEUSE
TST.B MVS_FLAG
BEQ.s ?push_1p_2p
ENDC
CMP.B #1,COUNTRY_CODE
BNE ?push_start
?push_1p_2p
TST.B _credit_look_1p-QA5(A5)
BEQ ?push_2p
TST.B _credit_look_2p-QA5(A5)
BEQ ?push_1p
PRINT 04,14,#STR_PUSH_1P_2P,#YELLOW
BRA cont_disp_end
?push_1p
PRINT 04,14,#STR_PUSH_1P,#YELLOW
BRA cont_disp_end
?push_2p
PRINT 04,14,#STR_PUSH_2P,#YELLOW
BRA cont_disp_end
?push_start
PRINT 04,14,#STR_PUSH,#YELLOW
cont_disp_end
LEA _user_start-QA5(A5),A0
MOVEQ #0,D1
TST.B (A0)
BEQ.S ?1p_skip
OR.W #1,D1
?1p_skip
TST.B 1(A0)
BEQ.S ?2p_skip
OR.W #2,D1
?2p_skip
TST.W D1
BEQ disp900
disp100
CMP.W #03,_player_flag-QA5(A5)
BEQ disp_200
BRA.S disp_300
disp_200
MOVE.W #$0101,_user_start-QA5(A5)
disp_300
SOUND #sALLSTOP
ALL_CLEAR
CLR.B _continue_mode-QA5(A5)
IFNZ HOMEUSE
CLR.B _vs_cont_flag-QA5(A5)
ENDC
JSR start_flag_continue
JSR _player_init_continue
IFNZ VS_SCORE_BACKUP
CMP.W #03,_player_flag-QA5(A5)
BNE ?not_vs
MOVE.L vs_1p_score_bak-QA5(A5),_player_work1+p_SCORE-QA5(A5)
MOVE.L vs_2p_score_bak-QA5(A5),_player_work2+p_SCORE-QA5(A5)
?not_vs:
ENDC
BRA round_init
disp900
MOVE.W cont_timer-QA5(A5),D7
EXT.L D7
DIVU #60,D7
EXT.L D7
CMP.W D7,D6
BEQ.S disp_350
TST.W country_type-QA5(A5)
BNE.S disp_912
SOUND #sCD
BRA.S disp_913
disp_912
SOUND #sCD_E
disp_913
MOVE.W D7,D6
disp_350
PRINT_DEC 22,16,D7,#02,#YELLOW
CMP.W #CANSEL_TIMER,cont_timer-QA5(A5)
BGT disp400
CMP.B #1,COUNTRY_CODE
BNE.S ?not_usa_count
?usa_count
MOVEQ #0,D0
LEA PLAYER_MODE,A0
CMP.B #MODE_CONT,(A0)
BNE ?1p_skip
OR.B _ply1_sw_jst-QA5(A5),D0
?1p_skip
CMP.B #MODE_CONT,1(A0)
BNE ?2p_skip
OR.B _ply2_sw_jst-QA5(A5),D0
?2p_skip
BRA.S ?count_chk_end
?not_usa_count
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
?count_chk_end
ANDI.B #(1.SHL.FIRE1^1.SHL.FIRE2^1.SHL.FIRE3^1.SHL.FIRE4),D0
BEQ.S disp400
MOVE.W cont_timer-QA5(A5),D0
EXT.L D0
DIVU #60,D0
MULU #60,D0
MOVE.W D0,cont_timer-QA5(A5)
disp400
SUB.W #01,cont_timer-QA5(A5)
BGT cont_loop
BLT game_end
MOVE.B #2,_continue_mode-QA5(A5)
BRA cont_loop
game_end
MOVE.B #2,_continue_mode-QA5(A5)
AND.W #$0101,_user_start-QA5(A5)
LEA PLAYER_MODE,A0
TST.B (A0)
BEQ ?1p_skip
MOVE.B #MODE_OVER,(A0)
?1p_skip
TST.B 1(A0)
BEQ ?2p_skip
MOVE.B #MODE_OVER,1(A0)
?2p_skip
RETSYS
ALL_CLEAR
CMP.W #03,_player_flag-QA5(A5)
BEQ over150
SOUND #sALLSTOP
JSR _card_save
over150
BSR _level_disp
TST.W country_type-QA5(A5)
BNE.S over_other_music
SOUND #sGAMEOVER
BRA.S over_music
over_other_music
SOUND #sGAMEOV_E
over_music
MOVE.W #60*4+50-1,D7
over_loop
RETSYS
TST.W country_type-QA5(A5)
BNE over_obj_bb
over_obj_pb
OBJ_MACRO #05*16+8,#06*16,#_bl_sco_g,#OBJ_MOJI_COL
OBJ_MACRO #06*16+8,#06*16,#_bl_sco_a,#OBJ_MOJI_COL
OBJ_MACRO #07*16+8,#06*16,#_bl_sco_m,#OBJ_MOJI_COL
OBJ_MACRO #08*16+8,#06*16,#_bl_sco_e,#OBJ_MOJI_COL
OBJ_MACRO #10*16+8,#06*16,#_bl_sco_o,#OBJ_MOJI_COL
OBJ_MACRO #11*16+8,#06*16,#_bl_sco_v,#OBJ_MOJI_COL
OBJ_MACRO #12*16+8,#06*16,#_bl_sco_e,#OBJ_MOJI_COL
OBJ_MACRO #13*16+8,#06*16,#_bl_sco_r,#OBJ_MOJI_COL
BRA over_obj_end
over_obj_bb
OBJ_MACRO #05*16+8,#06*16,#_bl_sce_g,#OBJ_MOJI_COL
OBJ_MACRO #06*16+8,#06*16,#_bl_sce_a,#OBJ_MOJI_COL
OBJ_MACRO #07*16+8,#06*16,#_bl_sce_m,#OBJ_MOJI_COL
OBJ_MACRO #08*16+8,#06*16,#_bl_sce_e,#OBJ_MOJI_COL
OBJ_MACRO #10*16+8,#06*16,#_bl_sce_o,#OBJ_MOJI_COL
OBJ_MACRO #11*16+8,#06*16,#_bl_sce_v,#OBJ_MOJI_COL
OBJ_MACRO #12*16+8,#06*16,#_bl_sce_e,#OBJ_MOJI_COL
OBJ_MACRO #13*16+8,#06*16,#_bl_sce_r,#OBJ_MOJI_COL
over_obj_end
CMP.W #60*2+20-1,D7
BLE.S overskipchk
TST.W _credit_look_1p-QA5(A5)
BEQ.S over100
overskipchk
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
ANDI.B #(1.SHL.FIRE1^1.SHL.FIRE2^1.SHL.FIRE3^1.SHL.FIRE4),D0
BEQ.S over100
CLR.W D7
over100
DBRA D7,over_loop
ALL_CLEAR
over200
over300
MOVE.W #MODE_NOP*256+MODE_NOP,PLAYER_MODE
MOVE.W #00,_player_flag-QA5(A5)
MOVE.B #00,_game_condition-QA5(A5)
EXIT
STR_INSERT ASCII ' INSERT COIN TO CONTINUE '
STR_PUSH ASCII ' PUSH START BUTTON TO CONTINUE '
STR_PUSH_1P ASCII ' PUSH 1P START TO CONTINUE '
STR_PUSH_2P ASCII ' PUSH 2P START TO CONTINUE '
STR_PUSH_1P_2P ASCII 'PUSH 1P OR 2P START TO CONTINUE'
STR_TIMER ASCII 'TIMER '
ending:
STOP #PLAYERno
STOP #FIELDno
ALL_CLEAR
BSR _level_disp
PRINT 06,16,#STR_ALLCLEAR,#WHITE
MOVE.W #60*06-1,D7
congr_loop
RETSYS
LEA.L congr_tbl,A3
TST.W country_type-QA5(A5)
BEQ.S congr_100
LEA.L congr_tbl_e,A3
congr_100
MOVE.W #15-1,D6
congr_obj_loop
MOVE.W (A3)+,D0
MOVE.W (A3)+,D1
MOVE.L (A3)+,D4
OBJ_MACRO D0,D1,D4,#OBJ_MOJI_COL
DBRA D6,congr_obj_loop
DBRA D7,congr_loop
ALL_CLEAR
BSR _level_disp
CMP.W #03,_player_flag-QA5(A5)
BEQ.S vs_ending
p1_ending
TST.W country_type-QA5(A5)
BNE.S ending_200
JSR _ending_disp
SOUND #sALLSTOP
CMP.W #USA,_credit_mode
BNE.S ending_100
BSR pass_word
ending_100
ending_200
BSR _level_disp
JSR _name_regist
vs_ending
vs_ending100
BRA game_end
congr_tbl
DC.L 05*08*10000H+05*16,_bl_sco_c
DC.L 07*08*10000H+05*16,_bl_sco_o
DC.L 09*08*10000H+05*16,_bl_sco_n
DC.L 11*08*10000H+05*16,_bl_sco_g
DC.L 13*08*10000H+05*16,_bl_sco_r
DC.L 15*08*10000H+05*16,_bl_sco_a
DC.L 17*08*10000H+05*16,_bl_sco_t
DC.L 19*08*10000H+05*16,_bl_sco_u
DC.L 21*08*10000H+05*16,_bl_sco_l
DC.L 23*08*10000H+05*16,_bl_sco_a
DC.L 25*08*10000H+05*16,_bl_sco_t
DC.L 27*08*10000H+05*16,_bl_sco_i
DC.L 29*08*10000H+05*16,_bl_sco_o
DC.L 31*08*10000H+05*16,_bl_sco_n
DC.L 33*08*10000H+05*16,_bl_sco_s
congr_tbl_e
DC.L 05*08*10000H+05*16,_bl_sce_c
DC.L 07*08*10000H+05*16,_bl_sce_o
DC.L 09*08*10000H+05*16,_bl_sce_n
DC.L 11*08*10000H+05*16,_bl_sce_g
DC.L 13*08*10000H+05*16,_bl_sce_r
DC.L 15*08*10000H+05*16,_bl_sce_a
DC.L 17*08*10000H+05*16,_bl_sce_t
DC.L 19*08*10000H+05*16,_bl_sce_u
DC.L 21*08*10000H+05*16,_bl_sce_l
DC.L 23*08*10000H+05*16,_bl_sce_a
DC.L 25*08*10000H+05*16,_bl_sce_t
DC.L 27*08*10000H+05*16,_bl_sce_i
DC.L 29*08*10000H+05*16,_bl_sce_o
DC.L 31*08*10000H+05*16,_bl_sce_n
DC.L 33*08*10000H+05*16,_bl_sce_s
STR_ALLCLEAR ASCII 'YOU HAVE CLEARED ALL ROUNDS!!'
intrude_check
LEA _user_start-QA5(A5),A0
MOVE.W #01,D0
MOVE.W #01,D1
MOVE.W #02,D2
CMP.W #1,_player_flag-QA5(A5)
BEQ.S intrude100
MOVE.W #00,D0
MOVE.W #02,D1
MOVE.W #01,D2
intrude100
CMP.B #01,0(A0,D0.W)
BNE.S intrude_end
JSR select_sub_sub(PC)
BSR challenger
CLR.W win1p-QA5(A5)
CLR.W win2p-QA5(A5)
MOVE.W D1,challenge_flag-QA5(A5)
MOVE.W _round-QA5(A5),round_bak-QA5(A5)
MOVE.W _player_flag-QA5(A5),D0
MOVE.W D0,player_bak-QA5(A5)
MOVE.L _player_work1+p_SCORE-QA5(A5),D1
SUB.W #01,D0
BEQ.S score_back_up
MOVE.L _player_work2+p_SCORE-QA5(A5),D1
score_back_up
MOVE.L D1,score_bak-QA5(A5)
IFNZ VS_SCORE_BACKUP
MOVE.L vs_1p_score_bak-QA5(A5),_player_work1+p_SCORE-QA5(A5)
MOVE.L vs_2p_score_bak-QA5(A5),_player_work2+p_SCORE-QA5(A5)
ELSE
CLR.L _player_work1+p_SCORE-QA5(A5)
CLR.L _player_work2+p_SCORE-QA5(A5)
ENDC
MOVE.W vs_round_bak-QA5(A5),D0
MOVE.W D0,_round-QA5(A5)
ADD.W D0,_scene-QA5(A5)
BSR start_flag_intrude
MOVE.W #3,_player_flag-QA5(A5)
BSET.B #ROUNDCLR,_game_condition-QA5(A5)
CLR.W _roundclrflag-QA5(A5)
intrude_end
RTS
single_game
IFNZ HOMEUSE
BSR pause_check
ENDC
BSR intrude_check
TST.W _roundclrflag-QA5(A5)
BEQ single900
BSR mini_con_erase
BSET.B #ROUNDCLR,_game_condition-QA5(A5)
MOVE.B #2,_continue_mode-QA5(A5)
BSR round_clr
BSR timer_bonus_init
MOVE.W #60*2-1,D7
disp_loop
RETSYS
BSR timer_bonus_main
DBRA D7,disp_loop
ADD.W #01,_round-QA5(A5)
ADD.W #01,_scene-QA5(A5)
CLR.W _roundclrflag-QA5(A5)
CMP.W #MAX_ROUND,_round-QA5(A5)
BLT.S single800
BSET.B #GAMEOVER,_game_condition-QA5(A5)
single800
CLR.B _continue_mode-QA5(A5)
single899
RTS
single900
IFNZ HOMEUSE
TST.B MVS_FLAG
BNE.S ?cont_check_off
CMP.W #01,_player_flag-QA5(a5)
BEQ.S ?2p_check
?1p_check
TST.B _credit_look_1p-QA5(A5)
BEQ single899
BRA.S ?cont_check_off
?2p_check
TST.B _credit_look_2p-QA5(A5)
BEQ single899
?cont_check_off
ENDC
CMP.W #03,_player_flag-QA5(A5)
BEQ.S single899
TST.B _continue_mode-QA5(A5)
BNE.S single899
single1000
MOVE.W #04*08,D5
MOVE.W #P1_COL,col_mode-QA5(A5)
CMP.W #01,_player_flag-QA5(A5)
BNE.S single1100
MOVE.W #32*08,D5
MOVE.W #P2_COL,col_mode-QA5(A5)
single1100
TST.W _credit_up_flag-QA5(A5)
BEQ.S single1200
CLR.W anm_timer-QA5(A5)
MOVE.L #thk_anm_tbl,A4
TST.W country_type-QA5(A5)
BEQ.S single1200
MOVE.L #thk_anm_tble,A4
single1200
MOVE.W #000,D0
CMP.W #1,_player_flag-QA5(A5)
BEQ ?2p_join_in
?1p_join_in
TST.B _credit_look_1p-QA5(A5)
BEQ.S ?thank_you_check
MOVE.W #008,D0
BRA.S ?thank_you_check
?2p_join_in
TST.B _credit_look_2p-QA5(A5)
BEQ.S ?thank_you_check
MOVE.W #004,D0
?thank_you_check
single1300
LEA.L anm_data_tbl(PC),A0
TST.W country_type-QA5(A5)
BEQ.S single1400
LEA.L anm_data_tble(PC),A0
single1400
MOVE.L 0(A0,D0.W),D0
MOVE.L D0,-(A7)
JSR anim_sub
ADDQ.W #LONG,A7
RTS
anm_data_tbl
DC.L join_anm_tbl
DC.L push_anm_tbl2
DC.L push_anm_tbl1
anm_data_tble
DC.L join_anm_tble
DC.L push_anm_tbl2e
DC.L push_anm_tbl1e
join_anm_tbl
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card8
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card7
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card8
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card7
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card6
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card5
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card4
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card3
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card2
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card1
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card2
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card1
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card3
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card4
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card5
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card6
DC.L -1
thk_anm_tbl
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardb
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardc
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardb
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardc
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardb
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardc
DC.L -1
push_anm_tbl1
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardd
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_carde
DC.L -1
push_anm_tbl2
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardf
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardg
DC.L -1
join_anm_tble
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card8e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card7e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card8e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card7e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card6e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card5e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card4e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card3e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card2e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card1e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card2e
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_card1e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card3e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card4e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card5e
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_card6e
DC.L -1
thk_anm_tble
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardbe
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardce
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardbe
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardce
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardbe
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardce
DC.L -1
push_anm_tbl1e
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardde
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardee
DC.L -1
push_anm_tbl2e
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardfe
DC.L 080000H+(0.SHL.14+BUB_COL),_bl_cardge
DC.L -1
timer_bonus_init
MOVE.L #TIMER_BONUS_MAX,D0
MOVE.L round_timer-QA5(A5),D6
DIVU #60,D6
EXT.L D6
SUB.W #05,D6
BLE.S bonus_init100
MULU #SEC_SCORE,D6
SUB.L D6,D0
BGT.S bonus_init100
MOVE.L #-1,D0
MOVE.L D0,timer_bonus-QA5(A5)
RTS
bonus_init100
MOVE.L D0,timer_bonus-QA5(A5)
LEA.L _player_work1+p_SCORE-QA5(A5),A0
CMP.W #01,_player_flag-QA5(A5)
BEQ.S bonus_init200
LEA.L _player_work2+p_SCORE-QA5(A5),A0
bonus_init200
ADD.L D0,(A0)
RTS
timer_bonus_main
BSR timer_disp
MOVE.L timer_bonus-QA5(A5),D6
BLT timer_bonus100
MOVE.W #05*16+8,D4
MOVE.W #06*16,D1
BSR obj_dec_disp2
TST.W country_type-QA5(A5)
BNE.S pts_bb
pts_pb
OBJ_MACRO #11*16+8,#06*16,#_bl_sco_p,#OBJ_MOJI_COL
OBJ_MACRO #12*16+8,#06*16,#_bl_sco_t,#OBJ_MOJI_COL
OBJ_MACRO #13*16+8,#06*16,#_bl_sco_s,#OBJ_MOJI_COL
BRA.S pts_end
pts_bb
OBJ_MACRO #11*16+8,#06*16,#_bl_sce_p,#OBJ_MOJI_COL
OBJ_MACRO #12*16+8,#06*16,#_bl_sce_t,#OBJ_MOJI_COL
OBJ_MACRO #13*16+8,#06*16,#_bl_sce_s,#OBJ_MOJI_COL
pts_end
RTS
timer_bonus100
TST.W country_type-QA5(A5)
BNE nobonus_bb
nobonus_pb
OBJ_MACRO #06*16,#06*16,#_bl_sco_n,#OBJ_MOJI_COL
OBJ_MACRO #07*16,#06*16,#_bl_sco_o,#OBJ_MOJI_COL
OBJ_MACRO #09*16,#06*16,#_bl_sco_b,#OBJ_MOJI_COL
OBJ_MACRO #10*16,#06*16,#_bl_sco_o,#OBJ_MOJI_COL
OBJ_MACRO #11*16,#06*16,#_bl_sco_n,#OBJ_MOJI_COL
OBJ_MACRO #12*16,#06*16,#_bl_sco_u,#OBJ_MOJI_COL
OBJ_MACRO #13*16,#06*16,#_bl_sco_s,#OBJ_MOJI_COL
BRA nobonus_end
nobonus_bb
OBJ_MACRO #06*16,#06*16,#_bl_sce_n,#OBJ_MOJI_COL
OBJ_MACRO #07*16,#06*16,#_bl_sce_o,#OBJ_MOJI_COL
OBJ_MACRO #09*16,#06*16,#_bl_sce_b,#OBJ_MOJI_COL
OBJ_MACRO #10*16,#06*16,#_bl_sce_o,#OBJ_MOJI_COL
OBJ_MACRO #11*16,#06*16,#_bl_sce_n,#OBJ_MOJI_COL
OBJ_MACRO #12*16,#06*16,#_bl_sce_u,#OBJ_MOJI_COL
OBJ_MACRO #13*16,#06*16,#_bl_sce_s,#OBJ_MOJI_COL
nobonus_end
RTS
timer_disp
MOVE.L round_timer-QA5(A5),D6
DIVU #60,D6
EXT.L D6
MOVE.W #07*16,D4
MOVE.W #04*16,D1
BSR obj_dec_disp
ADD.W #16*2,D4
TST.W country_type-QA5(A5)
BNE.S sec_bb
sec_pb
OBJ_MACRO D4,#04*16,#_bl_sco_s,#OBJ_MOJI_COL
ADD.W #16,D4
OBJ_MACRO D4,#04*16,#_bl_sco_e,#OBJ_MOJI_COL
ADD.W #16,D4
OBJ_MACRO D4,#04*16,#_bl_sco_c,#OBJ_MOJI_COL
BRA.S sec_end
sec_bb
OBJ_MACRO D4,#04*16,#_bl_sce_s,#OBJ_MOJI_COL
ADD.W #16,D4
OBJ_MACRO D4,#04*16,#_bl_sce_e,#OBJ_MOJI_COL
ADD.W #16,D4
OBJ_MACRO D4,#04*16,#_bl_sce_c,#OBJ_MOJI_COL
sec_end
RTS
double_game
MOVE.W _roundclrflag-QA5(A5),D0
BEQ double900
MOVE.W set_no-QA5(A5),D1
LEA.L set_player-QA5(A5),A0
MOVE.B D0,0(A0,D1.W)
ADD.W #01,set_no-QA5(A5)
BSET.B #ROUNDCLR,_game_condition-QA5(A5)
ADD.W #01,_round-QA5(A5)
ADD.W #01,_scene-QA5(A5)
CMP.W #98,_round-QA5(A5)
BLE ?max_ok
MOVE.W #98,_round-QA5(A5)
?max_ok
CMP.W #03,_roundclrflag-QA5(A5)
BEQ.S draw
CMP.W #01,_roundclrflag-QA5(A5)
BNE.S p2_win
ADD.W #01,win1p-QA5(A5)
ADD.W #01,_win1p-QA5(A5)
MOVE.L #chckn_win_1,chckn_tbl-QA5(A5)
CLR.W chckn_timer-QA5(A5)
CLR.W chckn_no-QA5(A5)
BRA.S double100
p2_win
ADD.W #01,win2p-QA5(A5)
ADD.W #01,_win2p-QA5(A5)
MOVE.L #chckn_win_2,chckn_tbl-QA5(A5)
CLR.W chckn_timer-QA5(A5)
CLR.W chckn_no-QA5(A5)
BRA.S double100
draw
ADD.W #01,win1p-QA5(A5)
ADD.W #01,win2p-QA5(A5)
ADD.W #01,_win1p-QA5(A5)
ADD.W #01,_win2p-QA5(A5)
double100
CMP.W #99,_win1p-QA5(A5)
BLE.S double120
MOVE.W #99,_win1p-QA5(A5)
double120
CMP.W #99,_win2p-QA5(A5)
BLE.S double130
MOVE.W #99,_win2p-QA5(A5)
double130
MOVE.W _much-QA5(A5),D0
MOVE.W D0,D1
ASR.W #01,D0
SUB.W D0,D1
CLR.W D0
CMP.W win1p-QA5(A5),D1
BGT.S double190
ADDQ.W #01,D0
double190
CMP.W win2p-QA5(A5),D1
BGT.S double200
ADDQ.W #02,D0
double200
TST.W D0
BEQ double220
CMP.W #3,D0
BLT double210
MOVE.W player_bak-QA5(A5),D0
BEQ double205
CMP.W #3,D0
BLT double210
double205
MOVE.W #01,D0
double210
MOVE.W D0,vs_winner-QA5(A5)
MOVE.W #-1,set_no-QA5(A5)
BSET.B #GAMEOVER,_game_condition-QA5(A5)
CLR.W win1p-QA5(A5)
CLR.W win2p-QA5(A5)
double220
BSR vs_plate_print
CMP.W #03,_roundclrflag-QA5(A5)
BEQ draw_disp
IFNZ FIX_RESULT
MOVE.W _roundclrflag-QA5(A5),D0
SUB.W #01,D0
MOVE.W D0,-(A7)
JSR _win_disp_init
ADD.W #WORD,A7
SOUND #sCLEAR1
MOVE.W #60*4+00-1,D6
double250
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
PUSH.L D5-D6
BSR vs_score_disp
POP.L D5-D6
RETSYS
JSR _win_disp_co_task
DBRA D6,double250
IFNZ VS_REDUCE
ERASE_BLOCK (2+1),09,#16,#6
ERASE_BLOCK (22-1),09,#16,#6
ELSE
ERASE_BLOCK 2,09,#16,#6
ERASE_BLOCK 22,09,#16,#6
ENDC
ELSE
MOVE.W _roundclrflag-QA5(A5),D0
SUB.W #01,D0
MOVE.W D0,-(A7)
JSR _win_disp_init
ADD.W #WORD,A7
SOUND #sCLEAR1
MOVE.W #60*4+00-1,D6
double250
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
PUSH.L D5-D6
BSR vs_score_disp
POP.L D5-D6
RETSYS
JSR _win_disp_co_task
DBRA D6,double250
ENDC
double270
TST.W set_no-QA5(A5)
BGE double300
BSR result_disp
MOVE.W _round-QA5(A5),vs_round_bak-QA5(A5)
IFNZ VS_SCORE_BACKUP
MOVE.L _player_work1+p_SCORE-QA5(A5),vs_1p_score_bak-QA5(A5)
MOVE.L _player_work2+p_SCORE-QA5(A5),vs_2p_score_bak-QA5(A5)
ENDC
TST.W challenge_flag-QA5(A5)
BEQ double300
MOVE.W #10*60,mini_cont_time-QA5(A5)
CLR.W mini_cont_sign-QA5(A5)
IFNZ HOMEUSE
MOVE.B #1,_vs_cont_flag-QA5(A5)
ENDC
CLR.B _continue_mode-QA5(A5)
BCLR.B #GAMEOVER,_game_condition-QA5(A5)
MOVE.W round_bak-QA5(A5),_round-QA5(A5)
MOVE.W _round-QA5(A5),_scene-QA5(A5)
CLR.L _player_work1+p_SCORE-QA5(A5)
CLR.L _player_work2+p_SCORE-QA5(A5)
CLR.W challenge_flag-QA5(A5)
MOVE.W vs_winner-QA5(A5),D7
MOVE.W D7,_player_flag-QA5(A5)
CMP.W #01,D7
BEQ.S double920
CLR.B _user_start-QA5(A5)
MOVE.B #MODE_CONT,PLAYER_MODE
CMP.W player_bak-QA5(A5),D7
BNE.S double300
MOVE.L score_bak-QA5(A5),_player_work2+p_SCORE-QA5(A5)
BRA.S double300
double920
CLR.B _user_start+BYTE-QA5(A5)
MOVE.B #MODE_CONT,PLAYER_MODE+BYTE
CMP.W player_bak-QA5(A5),D7
BNE.S double300
MOVE.L score_bak-QA5(A5),_player_work1+p_SCORE-QA5(A5)
double300
CLR.W _roundclrflag-QA5(A5)
BRA.S double999
double900
IFNZ HOMEUSE
BSR pause_check
ENDC
BSR vs_score_disp
double999
RTS
draw_disp
SOUND #sCLEAR1
IFNZ FIX_RESULT
JSR _draw_disp_init
MOVE.W #60*4+00-1,D7
double400
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
BSR vs_score_disp
JSR _draw_disp_co_task
RETSYS
DBRA D7,double400
ERASE_BLOCK 12,10,#16,#4
BRA double270
ELSE
MOVE.W #60*4+00-1,D7
double400
MOVE.B #00,_ply1_sw_jst-QA5(A5)
MOVE.B #00,_ply2_sw_jst-QA5(A5)
BSR vs_score_disp
RETSYS
OBJ_MACRO #06*16,#05*16,#_bl_draw,#WON_COL
DBRA D7,double400
BRA double270
ENDC
result_disp
CMP.W #1,_much-QA5(A5)
BEQ result_skip_mode
LEA.L result_work-QA5(A5),A4
MOVE.W #03,D6
MOVE.W #5-1,D7
res_init_loop
IFNZ VS_REDUCE
MOVE.W #02+1,o_XPOS(A4)
ELSE
MOVE.W #02,o_XPOS(A4)
ENDC
MOVE.W D6,o_YPOS(A4)
CLR.L o_BLADDR(A4)
LEA.L SIZEOFresult(A4),A4
IFNZ VS_REDUCE
MOVE.W #22-1,o_XPOS(A4)
ELSE
MOVE.W #22,o_XPOS(A4)
ENDC
MOVE.W D6,o_YPOS(A4)
CLR.L o_BLADDR(A4)
LEA.L SIZEOFresult(A4),A4
ADD.W #04,D6
DBRA D7,res_init_loop
LEA.L result_work-QA5(A5),A3
CLR.W set_no-QA5(A5)
MOVE.W #60*5,D5
MOVE.W #60*5,D7
res_main_loop
RETSYS
PUSH.L D7
PUSH.L D5
BSR vs_score_disp
POP.L D5
CMP.W D7,D5
BLT.S res_main_100
SUB.W #30,D5
MOVE.W set_no-QA5(A5),D0
CMP.W #05,D0
BGE.S res_main_100
ADD.W #01,set_no-QA5(A5)
BRA res_obj_set
res_main_100
POP.L D7
MOVE.B _ply1_sw-QA5(A5),D0
AND.B _ply2_sw-QA5(A5),D0
AND.W #0F0H,D0
CMP.W #0F0H,D0
BEQ.S cansel_050
SUB.W #25,D7
BGE.S cansel_050
CLR.W D7
cansel_050
DBRA D7,res_main_loop
res_disp_skip
ERASE_BLOCK 15,23,#10,#4
MOVE.W win1p-QA5(A5),D0
CMP.W win2p-QA5(A5),D0
BEQ res_main_203
BLE.S res_main_202
res_main_201
MOVE.W #00,D6
BRA.S res_main_209
res_main_202
MOVE.W #04,D6
BRA.S res_main_209
res_main_203
MOVE.W #08,D6
res_main_209
LEA.L player_no_tbl,A0
TST.W country_type-QA5(A5)
BEQ.S res_main_210
LEA.L player_no_tbl_e,A0
res_main_210
MOVE.L 0(A0,D6.W),D6
PRINT_BLOCK 11,24,D6,#FIX_MOJI_COL
MOVE.W #60*2,D7
res_main_loop2
RETSYS
CMP.W #1,_much-QA5(A5)
BEQ res_main_290
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
ANDI.W #0F0H,D0
BEQ.S res_main_290
CLR.W D7
res_main_290
DBRA D7,res_main_loop2
ERASE_BLOCK 11,24,#18,#2
IFNZ VS_REDUCE
ERASE_BLOCK (2+1),3,#16,#20
ERASE_BLOCK (22-1),3,#16,#20
ELSE
ERASE_BLOCK 2,3,#16,#20
ERASE_BLOCK 22,3,#16,#20
ENDC
CLR.W win1p-QA5(A5)
CLR.W win2p-QA5(A5)
CLR.W set_no-QA5(A5)
CLR.L set_player-QA5(A5)
CLR.W set_player+LONG-QA5(A5)
RTS
XREF _fx_winner1p,_fx_winner2p,_fx_drawgame
XREF _fx_einner1p,_fx_einner2p,_fx_erawgame
player_no_tbl
DC.L _fx_winner1p,_fx_winner2p,_fx_drawgame
player_no_tbl_e
DC.L _fx_einner1p,_fx_einner2p,_fx_erawgame
result_skip_mode
LEA.L set_player-QA5(A5),A0
MOVE.B (A0),D1
BEQ ?res_skip_exit
SUBQ.B #1,D1
BEQ ?1p_won
SUBQ.B #1,D1
BEQ ?2p_won
?draw_game
ADD.W #01,win1p-QA5(A5)
ADD.W #01,win2p-QA5(A5)
BRA.S ?res_skip_exit
?1p_won
ADD.W #01,win1p-QA5(A5)
BRA.S ?res_skip_exit
?2p_won
ADD.W #01,win2p-QA5(A5)
?res_skip_exit
BRA res_disp_skip
res_obj_set
LEA.L set_player-QA5(A5),A0
MOVE.B 0(A0,D0.W),D1
EXT.W D1
LSL.W #1,D1
MOVE.W res_obj_tbl(PC,D1.W),D0
JMP res_obj_tbl(PC,D0.W)
res_obj_tbl
DC.W nodata-res_obj_tbl
DC.W p1_wons-res_obj_tbl
DC.W p2_wons-res_obj_tbl
DC.W draws-res_obj_tbl
p1_wons
XREF _fx_won,_fx_lost,_fx_draw
MOVE.L #_fx_won,o_BLADDR(A3)
MOVE.L #_fx_lost,o_BLADDR+SIZEOFresult(A3)
MASK_BLOCK o_XPOS(A3),o_YPOS(A3),o_BLADDR(A3),#FIX_WON_COL
MASK_BLOCK o_XPOS+SIZEOFresult(A3),o_YPOS+SIZEOFresult(A3),o_BLADDR+SIZEOFresult(A3),#FIX_WON_COL
LEA.L SIZEOFresult*2(A3),A3
ADD.W #01,win1p-QA5(A5)
BRA res_main_100
p2_wons
MOVE.L #_fx_lost,o_BLADDR(A3)
MOVE.L #_fx_won,o_BLADDR+SIZEOFresult(A3)
MASK_BLOCK o_XPOS(A3),o_YPOS(A3),o_BLADDR(A3),#FIX_WON_COL
MASK_BLOCK o_XPOS+SIZEOFresult(A3),o_YPOS+SIZEOFresult(A3),o_BLADDR+SIZEOFresult(A3),#FIX_WON_COL
LEA.L SIZEOFresult*2(A3),A3
ADD.W #01,win2p-QA5(A5)
BRA res_main_100
draws
MOVE.L #_fx_draw,o_BLADDR(A3)
MOVE.L #_fx_draw,o_BLADDR+SIZEOFresult(A3)
MASK_BLOCK o_XPOS(A3),o_YPOS(A3),o_BLADDR(A3),#FIX_WON_COL
MASK_BLOCK o_XPOS+SIZEOFresult(A3),o_YPOS+SIZEOFresult(A3),o_BLADDR+SIZEOFresult(A3),#FIX_WON_COL
LEA.L SIZEOFresult*2(A3),A3
ADD.W #01,win1p-QA5(A5)
ADD.W #01,win2p-QA5(A5)
nodata
BRA res_main_100
anim_sub
LINK A6,#00
SUB.W #01,anm_timer-QA5(A5)
BGT.S anim200
MOVE.W (A4),D3
BGT.S anim150
MOVE.L BASE_A6(A6),A4
anim150
MOVE.W (A4)+,anm_timer-QA5(A5)
MOVE.W (A4)+,D3
MOVE.L (A4)+,D3
anim200
OBJ_MACRO D5,#12*16-8,-LONG(A4),col_mode-QA5(A5)
UNLK A6
RTS
vs_score_disp
CMP.W #03,_player_flag-QA5(A5)
BNE vs_score_end
PUSH.L D7
MOVE.W dia_1_timer-QA5(A5),D0
SUB.W #01,D0
BGE.S dia_anm_100
JSR _make_rnd
ANDI.W #1FH,D0
ADD.W #60*1,D0
ADD.W #01,dia_1_no-QA5(A5)
AND.W #03,dia_1_no-QA5(A5)
BEQ.S dia_anm_100
AND.W #07,D0
dia_anm_100
MOVE.W D0,dia_1_timer-QA5(A5)
MOVE.W dia_2_timer-QA5(A5),D0
SUB.W #01,D0
BGE.S dia_anm_200
JSR _make_rnd
ANDI.W #1FH,D0
ADD.W #60*1,D0
ADD.W #01,dia_2_no-QA5(A5)
AND.W #03,dia_2_no-QA5(A5)
BEQ.S dia_anm_200
AND.W #07,D0
dia_anm_200
MOVE.W D0,dia_2_timer-QA5(A5)
IFNZ VS_REDUCE
MOVE.W #12*8,D6
ELSE
MOVE.W #05*8,D6
ENDC
MOVE.W win1p-QA5(A5),D7
BEQ.S dia_100
MOVE.W dia_1_no-QA5(A5),D0
LEA.L dia_tbl,A0
LSL.W #2,D0
MOVE.L 0(A0,D0.W),D5
MOVE.W dia_1p_LSP-QA5(A5),D3
dia_050
IFNZ VS_REDUCE
MOVE.W D6,D0
MOVE.W #00,D1
MOVE.W #DIA_COL,D2
MOVE.L D5,A0
MOVE.W D3,-(SP)
RO_OBJ
MOVE.W (SP)+,D3
ADDQ.W #1,D3
ADD.W #16,D6
ELSE
MOVE.W #18*8,D0
MOVE.W D6,D1
MOVE.W #DIA_COL,D2
MOVE.L D5,A0
MOVE.W D3,-(SP)
RO_OBJ
MOVE.W (SP)+,D3
ADDQ.W #1,D3
ADD.W #-12,D6
ENDC
SUB.W #01,D7
BGT.S dia_050
dia_100
IFNZ VS_REDUCE
MOVE.W #320-(14*8),D6
ELSE
MOVE.W #05*8,D6
ENDC
MOVE.W win2p-QA5(A5),D7
BEQ.S dia_200
MOVE.W dia_2_no-QA5(A5),D0
LEA.L dia_tbl,A0
LSL.W #2,D0
MOVE.L 0(A0,D0.W),D5
MOVE.W dia_2p_LSP-QA5(A5),D3
dia_150
IFNZ VS_REDUCE
MOVE.W D6,D0
MOVE.W #00,D1
MOVE.W #DIA_COL,D2
MOVE.L D5,A0
MOVE.W D3,-(SP)
RO_OBJ
MOVE.W (SP)+,D3
ADDQ.W #1,D3
ADD.W #-16,D6
ELSE
MOVE.W #20*8,D0
MOVE.W D6,D1
MOVE.W #DIA_COL,D2
MOVE.L D5,A0
MOVE.W D3,-(SP)
RO_OBJ
MOVE.W (SP)+,D3
ADDQ.W #1,D3
ADD.W #-12,D6
ENDC
SUB.W #01,D7
BGT.S dia_150
dia_200
TST.W country_type-QA5(A5)
BNE vs_score_100
MOVE.L chckn_tbl-QA5(A5),D0
BEQ.S vs_score_010
SUB.W #01,chckn_timer-QA5(A5)
BGT.S vs_score_050
MOVE.L D0,A0
ADD.W #04,chckn_no-QA5(A5)
MOVE.W chckn_no-QA5(A5),D0
MOVE.L 0(A0,D0.W),D0
BGT.S vs_score_005
CLR.W chckn_no-QA5(A5)
vs_score_005
MOVE.W #04,chckn_timer-QA5(A5)
MOVE.L chckn_tbl-QA5(A5),D0
BRA.S vs_score_050
vs_score_010
TST.W chckn_timer-QA5(A5)
BGT.S vs_score_030
JSR _make_rnd
ANDI.W #3FH,D0
MOVE.W D0,chckn_timer-QA5(A5)
JSR _make_rnd
ANDI.W #0FH,D0
LSL.W #2,D0
MOVE.W D0,chckn_no-QA5(A5)
vs_score_030
MOVE.L #chckn_rnd_tbl,D0
SUB.W #01,chckn_timer-QA5(A5)
vs_score_050
MOVE.L D0,A0
MOVE.W chckn_no-QA5(A5),D0
MOVE.L 0(A0,D0.W),A0
MOVE.W chckn_LSP-QA5(A5),D3
MOVE.W #09*16+8,D0
MOVE.W #12*16+8,D1
MOVE.W #CHACKN_COL,D2
RO_OBJ
vs_score_100
POP.L D7
vs_score_end
RTS
dia_tbl
DC.L _bl_food1
DC.L _bl_food2
DC.L _bl_food3
DC.L _bl_food4
chckn_rnd_tbl
DC.L _bl_chackn
DC.L _bl_chackn1
DC.L _bl_chackn2
DC.L _bl_chackn3
DC.L _bl_chackn4
DC.L _bl_chackn5
DC.L _bl_chackn6
DC.L _bl_chackn7
DC.L _bl_chackn8
DC.L _bl_chackn9
DC.L _bl_chackna
DC.L _bl_chacknb
DC.L _bl_chackn3
DC.L _bl_chackn5
DC.L _bl_chackna
DC.L _bl_chacknb
chckn_win_1
DC.L _bl_chacknc
DC.L _bl_chacknd
DC.L -1
chckn_win_2
DC.L _bl_chackne
DC.L _bl_chacknf
DC.L -1
vs_plate_print
CMP.W #03,_player_flag-QA5(A5)
BNE vs_plate_end
XREF _fx_vs_score
PRINT_BLOCK 15,23,#_fx_vs_score,#FIX_PANEL_COL
MOVE.W _win1p-QA5(A5),D6
MOVE.W #15,D4
MOVE.W #24,D1
BSR fix_res_disp
MOVE.W _win2p-QA5(A5),D6
MOVE.W #21,D4
MOVE.W #24,D1
BSR fix_res_disp
vs_plate_end
RTS
SELECT_TIMER SET 60*10-1
BEGIN_TIMER SET SELECT_TIMER-12
select_sub
JSR select_sub_sub(PC)
TST.W country_type-QA5(A5)
BNE.S sel_euro
SOUND #sSELE_JP
BRA.S sel_jpn
sel_euro
SOUND #sSELE_US
sel_jpn
IFNZ HOMEUSE
level_select
TST.B MVS_FLAG
BNE level_sel_exit
BLOCK_WRITE #_bl_selescr,00,00,SEL_SCN_COL2,00
TST.W country_type-QA5(A5)
BNE level_euro
XREF _fx_lv_sel
XREF _fx_lv_eas
XREF _fx_lv_nor
XREF _fx_lv_har
XREF _fx_lv_mvs
PRINT_BLOCK 08,06,#_fx_lv_sel,#FIX_MOJI_COL
PRINT_BLOCK 15,11,#_fx_lv_eas,#FIX_MOJI_COL
PRINT_BLOCK 15,14,#_fx_lv_nor,#FIX_MOJI_COL
PRINT_BLOCK 15,17,#_fx_lv_har,#FIX_MOJI_COL
PRINT_BLOCK 15,20,#_fx_lv_mvs,#FIX_MOJI_COL
BRA level_jpn
level_euro
XREF _fx_lv_sel_e
XREF _fx_lv_eas_e
XREF _fx_lv_nor_e
XREF _fx_lv_har_e
XREF _fx_lv_mvs_e
PRINT_BLOCK 08,06,#_fx_lv_sel_e,#FIX_MOJI_COL
PRINT_BLOCK 15,11,#_fx_lv_eas_e,#FIX_MOJI_COL
PRINT_BLOCK 15,14,#_fx_lv_nor_e,#FIX_MOJI_COL
PRINT_BLOCK 15,17,#_fx_lv_har_e,#FIX_MOJI_COL
PRINT_BLOCK 15,20,#_fx_lv_mvs_e,#FIX_MOJI_COL
level_jpn
MOVE.W #01,D5
MOVE.W #SELECT_TIMER,D7
level_loop
CLR.B D0
TST.B _user_start-QA5(A5)
BEQ ?1p_sel_skip
OR.B _ply1_sw_jst-QA5(A5),D0
?1p_sel_skip
TST.B _user_start+BYTE-QA5(A5)
BEQ ?2p_sel_skip
OR.B _ply2_sw_jst-QA5(A5),D0
?2p_sel_skip
BTST #UP,D0
BNE.S ?level_up
BTST #DOWN,D0
BNE.S ?level_down
BRA ?level_button_chk
?level_up
SUBQ.W #01,D5
BRA ?level_button_chk
?level_down
ADDQ.W #01,D5
?level_button_chk
AND.W #3,D5
MOVE.W D5,D6
ADD.W D6,D6
ADD.W D5,D6
ADD.W #11,D6
LSL.W #3,D6
CMP.W #BEGIN_TIMER,D7
BGT ?ret
BTST #FIRE1,D0
BEQ.S ?ret
CLR.W D7
?ret
RETSYS
MOVE.W D7,D0
AND.W #$18,D0
LSR.W #1,D0
LEA.L home_jpn_anm1(PC),A0
MOVE.L (A0,D0.W),A0
MOVE.W #02,D2
BSR level_sub
DBRA D7,level_loop
TST.W country_type-QA5(A5)
BNE level_euro_sound
SOUND #sPO2
BRA.S level_sound
level_euro_sound
SOUND #sKOKE_E
level_sound
MOVE.W D5,D0
ADD.W D0,D0
LEA home_level(PC),A0
MOVE.W (A0,D0.W),_difficulity-QA5(A5)
MOVE.W #31,D7
level_loop_2
RETSYS
MOVE.W D7,D0
NOT.W D0
AND.W #$1C,D0
LEA.L home_jpn_anm2(PC),A0
MOVE.L (A0,D0.W),A0
MOVE.W D7,D2
AND.W #7,D2
ADD.W D2,D2
BSR level_sub
DBRA D7,level_loop_2
XREF _mask_clear
JSR _mask_clear
RETSYS
BRA level_sel_exit
home_level
DC.W 01
DC.W 03
DC.W 07
DC.W 05
XREF _bl_chackn,_bl_chackn1,_bl_chackn2
home_jpn_anm1
DC.L _bl_chackn
DC.L _bl_chackn1
DC.L _bl_chackn2
DC.L _bl_chackn1
home_jpn_anm2
DC.L _bl_chackn3
DC.L _bl_chackn
DC.L _bl_chackn9
DC.L _bl_chackna
DC.L _bl_chackna
DC.L _bl_chackna
DC.L _bl_chackn9
DC.L _bl_chackn
level_sub
XREF _bl_chackn8,_bl_b3c1
PUSH D0-D7
TST.W country_type-QA5(A5)
BNE.S ?level_chr_oth
OBJ_MACRO #08*12,D6,A0,#CHACKN_COL
BRA.S ?level_chr_end
?level_chr_oth
OBJ_MACRO #08*12,D6,#_bl_b3c1,D2
?level_chr_end
POP D0-D7
RTS
level_sel_exit
ENDC
BLOCK_WRITE #_bl_selescr,00,00,SEL_SCN_COL,00
BSR _level_disp
MOVE.W #4*16,D6
MOVE.W #4*16+8,D5
LEA.L bub_anm_tbl,A4
MOVE.W (A4)+,anm_timer-QA5(A5)
MOVE.W #BOB_COL,col_mode-QA5(A5)
TST.B _user_start-QA5(A5)
BEQ.S ?bub_col_skip
MOVE.W #BUB_COL,col_mode-QA5(A5)
?bub_col_skip
MOVE.W (A4)+,D3
AND.W #$C000,D3
AND.W #$00FF,col_mode-QA5(A5)
OR.W D3,col_mode-QA5(A5)
MOVE.W #SELECT_TIMER,D7
sel_loop
TST.W country_type-QA5(A5)
BNE.S sel_other
MOVE.W #SEL_WAK_COL,D4
BRA.S sel_ok
sel_other
MOVE.W #SEL_OBJ_COL,D4
sel_ok
BSR animation
MOVE.B _ply1_sw-QA5(A5),D0
AND.B _ply2_sw-QA5(A5),D0
BTST #UP,D0
BEQ.S up
BTST #DOWN,D0
BEQ.S down
BRA.S button_check
up
MOVE.W #04*16+8,D5
MOVE.W #04*16,D6
MOVE.W #01,_player_flag-QA5(A5)
BRA.S button_check
down
MOVE.W #09*16+8,D5
MOVE.W #09*16,D6
MOVE.W #03,_player_flag-QA5(A5)
button_check
CMP.W #BEGIN_TIMER,D7
BGT ret
CMP.W #03,_player_flag-QA5(A5)
BEQ ?double_btn_chk
?single_btn_chk
LEA _user_start-QA5(A5),A0
TST.B (A0)
BEQ ?1p_skip
MOVE.W #01,_player_flag-QA5(A5)
MOVE.B _ply1_sw_jst-QA5(A5),D0
BTST #FIRE1,D0
BNE flag_set
?1p_skip
TST.B 1(A0)
BEQ ?2p_skip
MOVE.W #02,_player_flag-QA5(A5)
MOVE.B _ply2_sw_jst-QA5(A5),D0
BTST #FIRE1,D0
BNE flag_set
?2p_skip
BRA.S ret
?double_btn_chk
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
BTST #FIRE1,D0
BEQ.S ret
flag_set
CLR.W D7
ret
RETSYS
DBRA D7,sel_loop
LEA.L bub_anm_tbl2,A4
MOVE.W (A4)+,anm_timer-QA5(A5)
MOVE.W (A4)+,D3
AND.W #$C000,D3
AND.W #$00FF,col_mode-QA5(A5)
OR.W D3,col_mode-QA5(A5)
TST.W country_type-QA5(A5)
BNE.S kiss_sound_other
SOUND #sPO2
BRA.S kiss_sound
kiss_sound_other
SOUND #sKOKE_E
kiss_sound
MOVE.W #60-1,D7
kiss_loop
TST.W country_type-QA5(A5)
BNE.S selected_other
MOVE.W #SEL_WAK_COL,D4
BRA.S selected_ok
selected_other
LEA selected_color(PC),A0
MOVE.W D7,D4
AND.W #3,D4
ADD.W D4,D4
MOVE.W (A0,D4.W),D4
selected_ok
BSR animation
RETSYS
DBRA D7,kiss_loop
usa_oth_skip
CMP.W #03,_player_flag-QA5(A5)
BEQ.S two_start
BRA.S income_start
two_start
MOVE.W #$0101,_user_start-QA5(A5)
income_start
SOUND #sALLSTOP
ALL_CLEAR
RTS
selected_color
DC.W 34,60,61,62
animation
CMP.W #JAPAN,_credit_mode
BNE sel_english
PUSH D5
PUSH D4
OBJ_MACRO #02*16,#01*16,#_bl_mode,#SEL_OBJ_COL
OBJ_MACRO #06*16,#05*16,#_bl_1play,#SEL_OBJ_COL
MOVE.W #SEL_OBJ_COL,D5
not_play_2p
OBJ_MACRO #06*16,#10*16,#_bl_2play,D5
POP D4
OBJ_MACRO #04*16,D6,#_bl_selewaku,D4
POP D5
tst.b _game_type-QA5(A5)
bne sel_disp_end
PUSH D5
SUB.W #01,anm_timer-QA5(A5)
BGT.S skip100
LEA.L LONG(A4),A4
MOVE.W (A4),D3
BGT.S skip050
LEA.L bub_anm_tbl,A4
skip050
MOVE.W (A4)+,anm_timer-QA5(A5)
MOVE.W (A4)+,D3
AND.W #$C000,D3
AND.W #$00FF,col_mode-QA5(A5)
OR.W D3,col_mode-QA5(A5)
skip100
OBJ_MACRO #08,D5,(A4),col_mode-QA5(A5)
POP D5
BRA sel_disp_end
sel_english
PUSH D5
PUSH D4
OBJ_MACRO #02*16,#01*16,#_bl_emode,#SEL_OBJ_COL
OBJ_MACRO #06*16,#05*16,#_bl_e1play,#SEL_OBJ_COL
MOVE.W #SEL_OBJ_COL,D5
not_play_2pE
OBJ_MACRO #06*16,#10*16,#_bl_e2play,D5
POP D4
OBJ_MACRO #04*16,D6,#_bl_selewaku,D4
POP D5
tst.b _game_type-QA5(A5)
bne.s sel_disp_end
PUSH D5
SUB.W #01,anm_timer-QA5(A5)
BGT.S skip200
LEA.L LONG(A4),A4
MOVE.W (A4),D3
BGT.S skip150
LEA.L bub_anm_tbl,A4
skip150
MOVE.W (A4)+,anm_timer-QA5(A5)
MOVE.W (A4)+,D3
AND.W #$C000,D3
AND.W #$00FF,col_mode-QA5(A5)
OR.W D3,col_mode-QA5(A5)
skip200
OBJ_MACRO #08,D5,(A4),col_mode-QA5(A5)
POP D5
sel_disp_end
RTS
bub_anm_tbl
DC.L 170000H+(1.SHL.14+BUB_COL),_bl_buba01
DC.L 010000H+(0.SHL.14+BUB_COL),_bl_bubg01
DC.L 040000H+(0.SHL.14+BUB_COL),_bl_bubg02
DC.L 020000H+(0.SHL.14+BUB_COL),_bl_bubg01
DC.L 170000H+(1.SHL.14+BUB_COL),_bl_buba01
DC.L -1
bub_anm_tbl2
DC.L 0A0000H+(0.SHL.14+BUB_COL),_bl_bubh01
DC.L 460000H+(0.SHL.14+BUB_COL),_bl_bubh02
DC.L -1
start_flag_reset:
CLR.W _player_flag-QA5(A5)
TST.B _start_mode-QA5(A5)
BNE one_coin_start
BSR start_flag_intrude
CMP.W #3,_player_flag-QA5(A5)
BNE ?rts
MOVE.W #01,challenge_flag-QA5(A5)
?rts
RTS
one_coin_start
start_flag_intrude:
CLR.B _start_mode-QA5(A5)
CLR.B _continue_mode-QA5(A5)
IFNZ HOMEUSE
CLR.B _vs_cont_flag-QA5(A5)
ENDC
LEA _user_start-QA5(A5),A0
CMP.B #1,(A0)
BNE ?1P_not_start
MOVE.B #2,(A0)
OR.W #1,_player_flag-QA5(A5)
MOVE.B #MODE_GAME,PLAYER_MODE
?1P_not_start:
CMP.B #1,1(A0)
BNE ?2P_not_start
MOVE.B #2,1(A0)
OR.W #2,_player_flag-QA5(A5)
MOVE.B #MODE_GAME,PLAYER_MODE+BYTE
?2P_not_start:
RTS
start_flag_continue:
CLR.B _start_mode-QA5(A5)
CLR.B _continue_mode-QA5(A5)
IFNZ HOMEUSE
CLR.B _vs_cont_flag-QA5(A5)
ENDC
LEA _user_start-QA5(A5),A0
CMP.W #1,_player_flag-QA5(A5)
BEQ.S ?1P_cont
CMP.W #2,_player_flag-QA5(A5)
BEQ.S ?2P_cont
BRA.S ?VS_continued
?1P_cont:
TST.B (A0)
BNE.S ?1P_continued
TST.B 1(A0)
BNE.S ?2P_continued
BRA.S ?1P_continued
?2P_cont:
TST.B 1(A0)
BNE.S ?2P_continued
TST.B (A0)
BNE.S ?1P_continued
BRA.S ?2P_continued
?VS_continued:
MOVE.W #$0202,(A0)
MOVE.W #3,_player_flag-QA5(A5)
MOVE.W #MODE_GAME*256+MODE_GAME,PLAYER_MODE
BRA ?end
?1P_continued:
MOVE.B #2,(A0)
MOVE.W #1,_player_flag-QA5(A5)
LEA PLAYER_MODE,A0
MOVE.B #MODE_GAME,(A0)
CMP.B #MODE_CONT,1(A0)
BEQ.S ?1P_play_2p_cont
MOVE.B #MODE_NOP,1(A0)
BRA ?end
?1P_play_2p_cont
MOVE.W #10*60,mini_cont_time-QA5(A5)
CLR.W mini_cont_sign-QA5(A5)
IFNZ HOMEUSE
MOVE.B #1,_vs_cont_flag-QA5(A5)
ENDC
BRA ?end
?2P_continued:
MOVE.B #2,1(A0)
MOVE.W #2,_player_flag-QA5(A5)
LEA PLAYER_MODE,A0
MOVE.B #MODE_GAME,1(A0)
CMP.B #MODE_CONT,(A0)
BEQ.S ?2P_play_1p_cont
MOVE.B #MODE_NOP,(A0)
BRA ?end
?2P_play_1p_cont
MOVE.W #10*60,mini_cont_time-QA5(A5)
CLR.W mini_cont_sign-QA5(A5)
IFNZ HOMEUSE
MOVE.B #1,_vs_cont_flag-QA5(A5)
ENDC
?end
RTS
select_sub_sub:
LEA PLAYER_MODE,A0
LEA _user_start-QA5(A5),A1
TST.B (A1)
BEQ.S ?1p_skip
MOVE.B #MODE_GAME,(A0)
?1p_skip
TST.B BYTE(A1)
BEQ.S ?2p_skip
MOVE.B #MODE_GAME,BYTE(A0)
?2p_skip
RTS
round_select
BTST.B #1,_debug_flag_2-QA5(A5)
BEQ.S not_card_debug
JSR _card_test
not_card_debug
CMP.W #03,_player_flag-QA5(A5)
BNE.S single_load
TST.W challenge_flag-QA5(A5)
BEQ.S load_skip
single_load
JSR _card_load
TST.B _card_access_ok-QA5(A5)
BEQ.S load_skip
MOVE.W _game_round-QA5(A5),_round-QA5(A5)
MOVE.W _round-QA5(A5),_scene-QA5(A5)
MOVE.W _round-QA5(A5),round_bak-QA5(A5)
IFNZ ROUND_SEL
BRA select_exit
load_skip
CMP.W #03,_player_flag-QA5(A5)
BEQ select_exit
BTST.B #0,_debug_flag_2-QA5(A5)
BEQ select_exit
ALL_CLEAR
PRINT 11,07,#STR_DEBUG,#WHITE
PRINT 16,12,#RO,#WHITE
select_loop
RETSYS
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
BTST #RIGHT,D0
BEQ.S select_100
ADD.W #01,_round-QA5(A5)
CMP.W #31,_round-QA5(A5)
BLT.S select_100
MOVE.W #00,_round-QA5(A5)
select_100
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
BTST #LEFT,D0
BEQ.S select_200
SUB.W #01,_round-QA5(A5)
BGE.S select_200
MOVE.W #30,_round-QA5(A5)
select_200
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
BTST #FIRE1,D0
BNE.S select_end
MOVE.W _round-QA5(A5),D0
ADD.W #01,D0
EXT.L D0
PRINT_DEC 22,12,D0,#2,#WHITE
BRA select_loop
select_end
CMP.W #30,_round-QA5(A5)
BLT.S select_end100
SUB.W #01,_round-QA5(A5)
MOVE.W #01,_roundclrflag-QA5(A5)
select_end100
MOVE.W _round-QA5(A5),_scene-QA5(A5)
ALL_CLEAR
select_exit
ELSE
load_skip
ENDC
RTS
STR_DEBUG ASCII 'DEBUG ROUND SELECT'
RO ASCII 'ROUND '
pass_word
ALL_CLEAR
BSR _level_disp
SCN_OFF
BLOCK_WRITE #_bl_end_us,00,00,END_USA,00
SCN_ON
PRINT 29,25,#STR_LIMIT_SLASH,#WHITE
MOVE.W _mon-QA5(A5),D0
SUB.W #01,D0
LSL.W #02,D0
LEA.L _mon_tbl,A0
MOVE.L 0(A0,D0.W),D2
PRINT 25,25,D2,#WHITE
MOVE.W _day-QA5(A5),D2
EXT.L D2
PRINT_DEC 30,25,D2,#02,#WHITE
MOVE.W _year-QA5(A5),D2
EXT.L D2
PRINT_DEC 33,25,D2,#04,#WHITE
XREF _fx_black_b
PRINT_BLOCK 00,00,#_fx_black_b,#0
PRINT_BLOCK 38,00,#_fx_black_b,#0
MOVE.W #60*10-1,D7
timer_loop_s
XREF _bl_end_us_p
MOVE.W #15,D0
MOVE.W #05*16,D1
MOVE.W #END_USA-64,D2
MOVE.W #$1800,D3
MOVE.L #_bl_end_us_p,A0
MOVE.L D7,-(SP)
BZ_OBJ
MOVE.L (SP)+,D7
RETSYS
DBRA D7,timer_loop_s
MOVE.W #60*20-1,D7
timer_loop
MOVE.W #15,D0
MOVE.W #05*16,D1
MOVE.W #END_USA-64,D2
MOVE.W #$1800,D3
MOVE.L #_bl_end_us_p,A0
MOVE.L D7,-(SP)
BZ_OBJ
MOVE.L (SP)+,D7
RETSYS
TST.W _credit_bak-QA5(A5)
BEQ.S timer_100
MOVE.B _ply1_sw_jst-QA5(A5),D0
OR.B _ply2_sw_jst-QA5(A5),D0
BTST #FIRE1,D0
BEQ.S timer_100
CLR.W D7
timer_100
DBRA D7,timer_loop
ALL_CLEAR
RTS
STR_LIMIT_SLASH ASCII '/ /'