123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966 |
- ;
- ;
- ; *** 044 ART OF FIGT GAME DISPLAY ***
- ;
- ;
- XDEF GAME_START_DISP,GAME_START_CL
- XDEF GAME_TIME_DISP,TIME_OVER_DISP,TIME_OVER_CL
- XDEF WINNER_DISP,DEMO_TITLE_SET,DKO_DISP
- XDEF PM_HERO_DISP
- XDEF SCORE_DISP
- XDEF INIT_STORY_CONTINUE,STORY_CONTINUE
- XDEF INIT_VS_CONTINUE,VS_CONTINUE
- XDEF INIT_GAME_OVER,GAME_OVER
- XDEF NUMBER_MESS,BCD_BIN
- XDEF PM_FIGHT
- XDEF LM_HITAREA,PM_HITAREA
- XREF ?A5
- ;by GAME_SUB
- XREF LWORK_DEAD
- ;by ACT_SUB
- XREF REDUCTION_MOVE
- ;by MESSAGE
- XREF MESS_SET,MESS_SET_INNER,FLAME_WRITE,FLAME_CLR
- XREF FLAME_WRITED,FLAME_CLRD
- ;by LANG
- XREF LANG_SET,LANG_SET_INNER
- ;by DEMO_CML
- XREF DEMO_OBJ_MAP
- XREF MASTER_CHECK
- ;by PHASE
- XREF ACTIVE_TRIGER
- SECT GAME,,C
- INCLUDE SYS.INC
- INCLUDE NEO_GEO.INC
- INCLUDE LABEL.INC
- INCLUDE EASY_MAC.INC
- INCLUDE MACRO.INC
- INCLUDE HFLAG.INC
- C_SEL_DISP EQU 13H
- C_PLAY_FACE EQU 003BH
- C_FIGHT EQU 60H
- C_HITAREA EQU 0061H
- HA_SET:
- LEA.L MLWORK1(A5),A6
- LCHILD WORK_N3,L_HITAREA,LM_HITAREA1_0
- LCHILD WORK_N3,L_HITAREA,LM_HITAREA2_0
- RTS
- LM_HITAREA:
- EASY_START
- LM_HITAREA1_0:
- MOVE.L #PM_ADRS1,VX(A6)
- MOVE.L #HERO1,VY(A6)
- MOVE.B #P1_START,VZ(A6)
- MOVE.W #97H,AX(A6)
- BRA.S LM_HITAREA_0
- LM_HITAREA2_0:
- MOVE.L #PM_ADRS2,VX(A6)
- MOVE.L #HERO2,VY(A6)
- MOVE.B #P2_START,VZ(A6)
- MOVE.W #98H,AX(A6)
- LM_HITAREA_0:
- BSR HIT_CHILD
- BSR HITN_SET
- END_NEXT 1,LM_HITAREA_1
- LM_HITAREA_1:
- MOVE.L VY(A6),A0
- MOVE.L Y_POSITION(A0),D7
- MOVE.B VZ(A6),D0
- AND.B INPUT_S+1(A5),D0
- BEQ.S LHA_2
- ADDQ.W #1,LW_D0(A6)
- BSR HITN_SET
- LHA_2:
- MOVE.W LW_D0(A6),D0
- ADD.W D0,D0
- ADD.W D0,D0
- MOVE.L VX(A6),A4
- MOVE.L 0(A4,D0.W),A4
- MOVE.L HIT_UPPER(A4),D5
- MOVE.L HIT_LEFT(A4),D6
- SUB_WORK WORK_N0,A1,0
- SUB_WORK WORK_N1,A2,0
- SUB_WORK WORK_N2,A3,0
- SUB_WORK WORK_N3,A0,0
- BTST.B #ACTAT_FLIP,ACT_ATTR(A4)
- BEQ.S LHA_3
- SWAP D6
- EXG.L A1,A2
- EXG.L A3,A0
- LHA_3:
- MOVE.L D7,Y_POSITION(A1)
- MOVE.L D7,Y_POSITION(A2)
- MOVE.L D7,Y_POSITION(A3)
- MOVE.L D7,Y_POSITION(A0)
- MOVE.W D6,X_POSITION(A2)
- MOVE.W D6,X_POSITION(A0)
- SWAP D6
- MOVE.W D6,X_POSITION(A1)
- MOVE.W D6,X_POSITION(A3)
- MOVE.W D5,Z_POSITION(A3)
- MOVE.W D5,Z_POSITION(A0)
- SWAP D5
- MOVE.W D5,Z_POSITION(A1)
- MOVE.W D5,Z_POSITION(A2)
- RTS
- HITN_SET:
- AND.W #111B,LW_D0(A6)
- MOVE.W AX(A6),D0
- JSR.S MESS_SET
- MOVE.W #99H,D0
- ADD.W LW_D0(A6),D0
- JSR.S MESS_SET
- RTS
- HIT_CHILD:
- PCHILD WORK_N0,P_HITAREA,C_HITAREA,0,0,0E4H,0
- PCHILD WORK_N1,P_HITAREA,C_HITAREA,0,0,0E4H,0
- MOVE.B #0,ACT_COUNT(A0)
- PCHILD WORK_N2,P_HITAREA,C_HITAREA,0,0,0E4H,0
- MOVE.B #1,ACT_COUNT(A0)
- PCHILD WORK_N3,P_HITAREA,C_HITAREA,0,0,0E4H,0
- MOVE.B #2,ACT_COUNT(A0)
- RTS
- PM_ADRS1:
- DC.L 109000H G
- DC.L 109100H W
- DC.L 109200H H
- DC.L 109300H B1
- DC.L 109400H B2
- DC.L 109500H A
- DC.L 109600H BS
- DC.L 109600H BS
- PM_ADRS2:
- DC.L 10A000H G
- DC.L 10A100H W
- DC.L 10A200H H
- DC.L 10A300H B1
- DC.L 10A400H B2
- DC.L 10A500H A
- DC.L 10A600H BS
- DC.L 10A600H BS
- PM_HITAREA:
- JSR.S REDUCTION_MOVE
- MOVE.W #0FFFFH,BIG_X(A6)
- JSR.S NEXT_ACTION
- JSR.S SORT_SET
- RTS
- DEMO_TITLE_SET:
- BTST.B #6,PHASE+1(A5)
- BEQ.S DTS_2
- LEA.L MLWORK2(A5),A6
- PCHILD WORK_N0,P_EASY,C_PLAY_FACE,320-68H,48H,0E4H,0
- MOVEQ.L #9,D0
- TST.B COUNTRY_CODE(A5)
- BEQ.S DTS_1
- MOVEQ.L #10,D0
- DTS_1:
- MOVE.B D0,ACT_COUNT(A0)
- DTS_2:
- RTS
- PM_FIGHT:
- JSR MASTER_CHECK
- BSR PM_FIGHT_SUB
- JSR.S GET_REL_POS
- JSR.S NEXT_ACTION
- JSR.S SORT_SET
- RTS
- PM_FIGHT_SUB:
- CMP.B #0FFH,BIG_X(A6)
- BEQ.S PM_FIGHT_2
- ADD.B #10H,BIG_X(A6)
- ADD.B #10H,BIG_Y(A6)
- CMP.B #0FFH,BIG_X(A6)
- BNE.S PM_FIGHT_1
- MOVE.B #30,BYTE_TIMER(A6)
- PM_FIGHT_1:
- RTS
- PM_FIGHT_2:
- SUBQ.B #1,BYTE_TIMER(A6)
- BNE.S PM_FIGHT_1
- ADDQ.L #4,SP
- CLR.W TYPE(A6)
- RTS
- NUMBER_MESS:
- ; in) D0 forward message No
- ; D1 number
- DIVU #10000,D1
- MOVE.B D1,CAL_MESS+80H(A5)
- CLR.W D1
- SWAP D1
- DIVU #1000,D1
- MOVE.B D1,CAL_MESS+81H(A5)
- CLR.W D1
- SWAP D1
- DIVU #100,D1
- MOVE.B D1,CAL_MESS+82H(A5)
- CLR.W D1
- SWAP D1
- DIVU #10,D1
- MOVE.B D1,CAL_MESS+83H(A5)
- SWAP D1
- MOVE.B D1,CAL_MESS+84H(A5)
- NUMBER_MESS_1:
- LEA.L CAL_MESS+80H(A5),A1
- LEA.L CAL_MESS(A5),A0
- MOVE.L #301000AH,(A0)+ FIX_FORMAT.W NUM,10
- MOVE.W #7,(A0)+ FIX_DIRECT_DATA
- MOVEQ.L #0,D1
- MOVEQ.L #4-1,D7
- NUMBER_MESS_2:
- MOVE.B (A1),D1
- BNE.S NUMBER_MESS_10
- MOVE.L #00FF00FFH,(A0)+
- ADDQ.L #1,A1
- DBRA D7,NUMBER_MESS_2
- NUMBER_MESS_10:
- ADDQ.W #1,D7
- NUMBER_MESS_11:
- MOVE.B (A1)+,D1
- ADD.W D1,D1
- MOVE.W KNJ_NUM(PC,D1.W),D2
- MOVE.W D2,(A0)+
- ADDQ.W #1,D2
- MOVE.W D2,(A0)+
- DBRA D7,NUMBER_MESS_11
- MOVE.W #114H,(A0)+ FIX_NEXT 0,1
- MOVE.W #7,(A0)+ FIX_DIRECT_DATA
- LEA.L CAL_MESS+6(A5),A1
- MOVEQ.L #10-1,D7
- NUMBER_MESS_20:
- MOVE.W (A1)+,D1
- CMP.W #0FFH,D1
- BEQ.S NUMBER_MESS_21
- ADD.W #100H,D1
- NUMBER_MESS_21:
- MOVE.W D1,(A0)+
- DBRA D7,NUMBER_MESS_20
- CLR.W (A0)+ FIX_END
- MESS_ON
- JSR.S MESS_SET_INNER
- MOVE.L #CAL_MESS,(A0)+
- MESS_OFF
- RTS
- KNJ_NUM:
- DC.W 2362H,2364H,2366H,2368H,236AH,236CH,236EH,2370H,2372H,2374H
- BCD_BIN:
- MOVE.B BCD_BIN_DATA(PC,D1.W),D1
- RTS
- BCD_BIN_DATA:
- DC.B 00,01,02,03,04,05,06,07,08,09,01,01,01,01,01,01
- DC.B 10,11,12,13,14,15,16,17,18,19,11,11,11,11,11,11
- DC.B 20,21,22,23,24,25,26,27,28,29,21,21,21,21,21,21
- DC.B 30,31,32,33,34,35,36,37,38,39,31,31,31,31,31,31
- DC.B 40,41,42,43,44,45,46,47,48,49,41,41,41,41,41,41
- DC.B 50,51,52,53,54,55,56,57,58,59,51,51,51,51,51,51
- DC.B 60,61,62,63,64,65,66,67,68,69,61,61,61,61,61,61
- DC.B 70,71,72,73,74,75,76,77,78,79,71,71,71,71,71,71
- DC.B 80,81,82,83,84,85,86,87,88,89,81,81,81,81,81,81
- DC.B 90,91,92,93,94,95,96,97,98,99,91,91,91,91,91,91
- KIMURA:
- MOVE.L ANOTHER_PLAYER(A3),A1
- MOVE.W HERO_TYPE+HERO_OFFSET(A3),D0
- CMP.W HERO_TYPE+HERO_OFFSET(A1),D0
- BNE.S KIMURA_1
- TST.W PLAYER_No(A3)
- BEQ.S KIMURA_1
- MOVE.B IRO_ADD(PC,D0.W),PALETTE_ADD(A0)
- KIMURA_1:
- RTS
- IRO_ADD:
- ; 1 2 1 2 3 4 5 6 7 8
- DC.B 1,1,1,1,1,1,1,1,29H,40H
- INIT_VS_CONTINUE:
- BTST.B #5,PHASE+1(A5)
- BNE NO_CONT_OVER_1
- TST.B DRAW_FLAG(A5)
- BNE NO_CONT_OVER_1
- AND.B #10111111B,START_FLAG2(A5)
- JSR.S PWORK_INIT
- JSR.S LWORK_DEAD
- LEA.L MLWORK1(A5),A6
- OBJ_MAP DEMO_OBJ_MAP
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 080H,20H,PG_SET+BASE_COLOR
- PALETTE 090H,21H,PG_SET+BASE_COLOR
- PALETTE 0C0H,24H,PG_SET+BASE_COLOR
- PALETTE 0D0H,25H,PG_SET+BASE_COLOR
- PALETTE 0F0H,27H,PG_SET+BASE_COLOR
- PALETTE_END
- PCHILD WORK_N0,P_EASY,C_SEL_DISP,60H,50H,1,0
- MOVE.L WIN_PLAYER(A5),A3
- BSR KIMURA
- SUB.B D0,D0
- MOVEQ.L #1,D1
- MOVE.B HERO_BEAT+HERO_OFFSET(A3),D0
- ABCD.B D1,D0
- MOVE.B D0,HERO_BEAT+HERO_OFFSET(A3)
- MOVE.W PLAYER_No(A3),OLD_VS(A5)
- MOVE.W HERO_TYPE+HERO_OFFSET(A3),D0
- SUBQ.W #1,D0
- MOVE.B D0,ACT_COUNT(A0)
- MOVE.L ANOTHER_PLAYER(A3),A4
- CLR.B HERO_BEAT+HERO_OFFSET(A4)
- CLR.L HERO_SCORE+HERO_OFFSET(A4)
- MOVE.W PLAYER_No(A4),D0
- LEA.L PLAYER_MODE(A5),A0
- MOVE.B #2,0(A0,D0.W)
- CLR.B PLAYER_STATE(A4)
- BCLR.B D0,PHASE(A5)
- MOVE.W #31H,D0 clear
- JSR.S MESS_SET
- MOVE.W #2,FLAME_COUNT(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
- JSR.S FLAME_WRITED
- MOVE.W #84H,D0
- JSR.S MESS_SET
- MOVE.W #59*3,D0 wait challenger
- JSR.S LANG_SET
- MOVE.W HERO_TYPE+HERO_OFFSET(A3),D0
- ADD.W D0,D0
- ADD.W HERO_TYPE+HERO_OFFSET(A3),D0
- ADD.W #60*3,D0
- JSR.S LANG_SET
- MOVE.W #133H*2,D0
- JSR.S SET_BGM
- SEC_TIMER_SET 9,WORD_TIMER
- BSR CONT_COUNT_DISP
- AND.B #01111111B,PHASE+1(A5)
- END_NEXT 0,VS_CONT_00
- RTS
- VS_CONTINUE:
- LEA.L MLWORK1(A5),A6
- EASY_START
- VS_CONT_00:
- AND.B #00000011B,START_FLAG2(A5)
- JSR ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BEQ.S VS_CONT_1
- MOVE.B #1,WORD_TIMER+1(A6)
- VS_CONT_1:
- MOVE.B WORD_TIMER(A6),D0
- SEC_TIMER WORD_TIMER
- BCS NO_CONT_OVER_VS
- CMP.B WORD_TIMER(A6),D0
- BNE CONT_COUNT_DISP
- RTS
- NO_CONT_OVER_VS:
- MOVE.L WIN_PLAYER(A5),A0
- MOVE.W PLAYER_No(A0),STORY_PLAYER(A5)
- MOVE.L ANOTHER_PLAYER(A0),A1
- TST.B MVS_FLAG(A5)
- BNE.S NCOV_1
- MOVE.W PLAYER_No(A1),D0
- LEA.L PLAYER_MODE(A5),A0
- MOVE.B #0,0(A0,D0.W)
- LEA.L HOME_CREDIT(A5),A0
- TST.B 0(A0,D0.W)
- BNE.S NCOV_1
- BSET.B #BPS_START_DI,PLAYER_STATE(A1)
- NCOV_1:
- MOVE.W #2,FLAME_COUNT(A5)
- JSR.S FLAME_WRITED
- MOVE.W #145*3,D0
- JSR.S LANG_SET
- MOVE.W #60,WORD_TIMER(A6)
- END_NEXT 2,VS_CONT_RET
- VS_CONT_RET:
- SUBQ.W #1,WORD_TIMER(A6)
- BEQ.S VS_RET_ST
- RTS
- VS_RET_ST:
- MOVE.B #00100000B,D0
- AND.B PHASE+1(A5),D0
- OR.B #10000010B,D0 story player select
- MOVE.B D0,PHASE+1(A5)
- RTS
- INIT_STORY_CONTINUE:
- BSR CONT_CHECK
- BEQ NO_CONT_OVER
- JSR.S PWORK_INIT
- JSR.S LWORK_DEAD
- LEA.L MLWORK1(A5),A6
- OBJ_MAP DEMO_OBJ_MAP
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 080H,20H,PG_SET+BASE_COLOR
- PALETTE 090H,21H,PG_SET+BASE_COLOR
- PALETTE 0F0H,27H,PG_SET+BASE_COLOR
- PALETTE_END
- LEA.L PLAYER1(A5),A4
- MOVE.W STORY_PLAYER(A5),D0
- BEQ.S ISC_1
- LEA.L PLAYER2(A5),A4
- ISC_1:
- LEA.L PLAYER_MODE(A5),A0
- MOVE.B #2,0(A0,D0.W)
- CLR.B PLAYER_STATE(A4)
- CLR.B HERO_BEAT+HERO_OFFSET(A4)
- MOVE.L ANOTHER_PLAYER(A4),A0
- OR.B #PS_START_DI,PLAYER_STATE(A0)
- MOVE.W #31H,D0 clear
- JSR.S MESS_SET
- MOVE.W #26H,D0 cont
- JSR.S MESS_SET
- MOVE.W #2,FLAME_COUNT(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
- JSR.S FLAME_WRITED
- BSR HOW_MESS_SET
- PCHILD WORK_N0,P_EASY,C_SEL_DISP,60H,50H,1,0
- MOVE.W HERO_TYPE+HERO_OFFSET(A4),D0
- ADD.W #10-1,D0
- MOVE.B D0,ACT_COUNT(A0)
- MOVE.W #133H*2,D0
- JSR.S SET_BGM
- SEC_TIMER_SET 9,WORD_TIMER
- BSR CONT_COUNT_DISP
- AND.B #01111111B,PHASE+1(A5)
- RTS
- HOW_MESS_SET:
- MOVEQ.L #00001110B,D0
- AND.B HOW_MESS_No(A5),D0
- MOVE.W CONT_HOWD(PC,D0.W),D0
- JSR.S LANG_SET
- ADDQ.B #2,HOW_MESS_No(A5)
- RTS
- CONT_HOWD:
- DC.W 99*3,100*3,104*3,105*3,106*3,107*3,108*3,109*3
- STORY_CONTINUE:
- LEA.L MLWORK1(A5),A6
- AND.B #00000011B,START_FLAG2(A5)
- JSR ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BEQ.S ST_CONT_1
- MOVE.B #1,WORD_TIMER+1(A6)
- ST_CONT_1:
- MOVE.B WORD_TIMER(A6),D0
- SEC_TIMER WORD_TIMER
- BCS NO_CONT_OVER
- CMP.B WORD_TIMER(A6),D0
- BNE.S CONT_COUNT_DISP
- RTS
- CONT_COUNT_DISP:
- MOVEQ.L #27H,D0 cont 0
- ADD.B WORD_TIMER(A6),D0
- JSR.S MESS_SET
- SOUND #1BH*2 ;S_CONTINYU
- RTS
- CONT_CHECK:
- TST.B MVS_FLAG(A5)
- BNE CONT_CHECK_MVS
- MOVE.W STORY_PLAYER(A5),D0
- LEA.L HOME_CREDIT(A5),A0
- TST.B 0(A0,D0.W)
- RTS
- CONT_CHECK_MVS:
- TST.B GAME_DIP+SD_CONTINUE(A5)
- RTS
- NO_CONT_OVER:
- MOVEQ.L #00110000B,D0
- AND.B PHASE+1(A5),D0
- OR.B #10000101B,D0
- MOVE.B D0,PHASE+1(A5)
- OR.B #PS_START_DI,PLAYER_STATE+PLAYER1(A5)
- OR.B #PS_START_DI,PLAYER_STATE+PLAYER2(A5)
- MOVE.W #303H,PLAYER_MODE(A5)
- RTS
- NO_CONT_OVER_1:
- MOVEQ.L #00110000B,D0
- AND.B PHASE+1(A5),D0
- OR.B #10000100B,D0
- MOVE.B D0,PHASE+1(A5)
- OR.B #PS_START_DI,PLAYER_STATE+PLAYER1(A5)
- OR.B #PS_START_DI,PLAYER_STATE+PLAYER2(A5)
- MOVE.W #303H,PLAYER_MODE(A5)
- RTS
- INIT_GAME_OVER:
- MOVE.W #17DH*2,D0 S_OVER
- JSR.S SET_BGM
- OR.B #PS_START_DI,PLAYER_STATE+PLAYER1(A5)
- OR.B #PS_START_DI,PLAYER_STATE+PLAYER2(A5)
- MOVE.W #303H,PLAYER_MODE(A5)
- JSR.S PWORK_INIT
- JSR.S LWORK_DEAD
- LEA.L MLWORK1(A5),A6
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 0F0H,27H,PG_SET+BASE_COLOR
- PALETTE_END
- MOVE.W #31H,D0 clear
- JSR.S MESS_SET
- MOVE.W #32H,D0
- JSR.S MESS_SET
- OBJ_MAP DEMO_OBJ_MAP
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- SEC_TIMER_SET 3,WORD_TIMER
- AND.B #01111111B,PHASE+1(A5)
- RTS
- GAME_OVER:
- LEA.L MLWORK1(A5),A6
- SEC_TIMER WORD_TIMER
- BCC.S GAME_OVER_1
- MOVEQ.L #01110000B,D0
- AND.B PHASE+1(A5),D0
- OR.B #43H,D0
- MOVE.B D0,PHASE+1(A5)
- GAME_OVER_1:
- RTS
- SCORE_DISP:
- BTST.B #4,PHASE+1(A5)
- BNE BEAT_DISP
- LEA.L HERO1(A5),A1
- MOVE.W #54H,D0
- BSR SCORE_DISP_SUB
- LEA.L HERO2(A5),A1
- MOVE.W #55H,D0
- SCORE_DISP_SUB:
- BTST.B #6,PHASE+1(A5)
- BNE HERO_COND_DISP
- BTST.B #BPS_COM_FLAG,PLAYER_STATE+PLAYER_OFFSET(A1)
- BEQ HERO_COND_DISP
- MOVE.L HERO_SCORE(A1),D1
- CMP.L HERO_SCORE_D(A1),D1
- BEQ SDS_2
- MOVE.L D1,HERO_SCORE_D(A1)
- JSR.S MESS_SET
- CMP.L HI_SCORE(A5),D1
- BLS.S SDS_1
- MOVE.L D1,HI_SCORE(A5)
- SDS_1:
- MOVE.W #53H,D0
- JSR.S MESS_SET
- SDS_2:
- RTS
- HERO_COND_DISP:
- BTST.B #6,PHASE+1(A5)
- BNE.S HCD_0
- BTST.B #BPS_START_DI,PLAYER_STATE+PLAYER_OFFSET(A1)
- BNE HERO_COND_OVER
- TST.B START_FLAG2(A5)
- BNE HERO_COND_WAIT
- HCD_0:
- MOVEQ.L #1FH,D0
- AND.W MAIN_COUNT+2(A5),D0
- BNE HCD_END
- CLR.B HERO_STATE_ON(A1)
- MOVE.W PLAYER_No+PLAYER_OFFSET(A1),D1
- BTST.B #5,MAIN_COUNT+3(A5)
- BEQ HCWV
- JSR.S PLAYABLE
- MOVE.B D0,D2
- MOVE.W #89H,D0
- BTST.L D1,D2
- BEQ.S HCD_1
- ADDQ.W #2,D0
- HCD_1:
- ADD.W D1,D0
- JSR.S MESS_SET
- HCD_END:
- RTS
- HCWV:
- MOVE.W #8DH,D0
- ADD.W D1,D0
- JSR.S MESS_SET
- MOVE.W #59*3,D0
- JSR.S LANG_SET
- RTS
- HERO_COND_OVER:
- MOVE.W #85H,D0
- BSR HC_SUB
- RTS
- HERO_COND_WAIT:
- MOVE.W #87H,D0
- HC_SUB:
- MOVEQ.L #1FH,D1
- AND.W MAIN_COUNT+2(A5),D1
- BEQ.S HC_SUB_0
- MOVE.W #93H,D0
- CMP.W #18H,D1
- BEQ.S HC_SUB_1
- RTS
- HC_SUB_0:
- BTST.B #5,MAIN_COUNT+3(A5)
- BEQ.S HC_SUB_1
- MOVE.W #0ABH,D0
- HC_SUB_1:
- ADD.W PLAYER_No+PLAYER_OFFSET(A1),D0
- JSR.S MESS_SET
- RTS
- BEAT_DISP:
- TST.B HERO1+HERO_STATE_ON(A5)
- BNE.S BEAT_DISP_1
- MOVE.B #1,HERO1+HERO_STATE_ON(A5)
- MOVE.B #1,HERO2+HERO_STATE_ON(A5)
- MOVE.W #93*3,D0
- JSR.S LANG_SET
- BEAT_DISP_1:
- RTS
- GAME_START_DISP:
- MESS_ON
- MOVE.W #31H,D0 clear
- JSR.S MESS_SET_INNER
- ; MOVE.W #57H,D0 ready
- ; JSR.S MESS_SET_INNER
- JSR ROUND_DISP(PC)
- MOVE.W #23H,D0 face
- JSR.S MESS_SET_INNER
- MOVE.W #17H,D0
- JSR.S MESS_SET_INNER
- MOVE.W #24H,D0
- JSR.S MESS_SET_INNER
- MOVE.W #17H,D0
- JSR.S MESS_SET_INNER
- MOVE.W HERO1+HERO_TYPE(A5),D0
- ADD.W D0,D0
- ADD.W #0D6H,D0
- JSR.S MESS_SET_INNER
- MOVE.W HERO2+HERO_TYPE(A5),D0
- ADD.W D0,D0
- ADD.W #0D7H,D0
- JSR.S MESS_SET_INNER
- MESS_OFF
- JSR WIN_CUP_DISP(PC)
- JSR GAME_TIME_DISP(PC)
- MOVE.B #HA_ON,D0
- AND.B DEBUG_DIP1(A5),D0
- BEQ.S GSD_1
- BTST.B #4,PHASE+1(A5)
- BNE HA_SET
- GSD_1:
- RTS
- GAME_START_CL:
- MOVE.W #125H*2,D0 FIGHT
- JSR.S SET_SOUND
- MOVE.W #1*2,D0 S_WAIT1
- JSR.S SET_SOUND
- MOVE.W #125H*2,D0 FIGHT
- JSR.S SET_SOUND
- BSR RE_BGM
- MOVE.W #59H,D0
- JSR.S MESS_SET
- PCHILD LW_D7,P_FIGHT,C_FIGHT,160,88H,0E2H,0
- MOVE.W #0F0FH,BIG_X(A0)
- RTS
- RE_BGM:
- MOVE.W AREA_No(A5),D0
- ADD.W D0,D0
- MOVE.W RE_BGMD-2(PC,D0.W),D0
- JSR.S SET_BGM
- RTS
- RE_BGMD:
- DC.W 0DH*2 1
- DC.W 0EH*2 2
- DC.W 0EH*2 2
- DC.W 0FH*2 3
- DC.W 10H*2 4
- DC.W 10H*2 4
- DC.W 11H*2 5
- DC.W 12H*2 6
- DC.W 12H*2 6
- DC.W 13H*2 7
- DC.W 14H*2 8
- GAME_TIME_DISP:
- MESS_ON
- MOVE.W #3EH,D0
- JSR.S MESS_SET_INNER
- MOVE.B STAGE_TIME(A5),D0
- LSR.B #4,D0
- AND.W #0FH,D0
- ADD.W #3FH,D0
- JSR.S MESS_SET_INNER
- MOVEQ.L #0FH,D0
- AND.B STAGE_TIME(A5),D0
- ADD.W #49H,D0
- JSR.S MESS_SET_INNER
- MESS_OFF
- RTS
- TIME_OVER_CL:
- MOVE.W #0D5H,D0
- JSR.S MESS_SET
- RTS
- TIME_OVER_DISP:
- MOVE.W #5AH,D0
- JSR.S MESS_SET
- RTS
- DKO_DISP:
- MOVE.W #58H,D0
- JSR.S MESS_SET
- RTS
- WINNER_DISP:
- MOVE.W #13EH*2,D0
- JSR.S SET_SOUND S_POINT
- JSR WIN_CUP_DISP(PC)
- MOVE.L WIN_PLAYER(A5),A1
- BTST.B #4,PHASE+1(A5)
- BNE WINNER_VS
- MOVE.W #5BH,D0
- BTST.B #BPS_COM_FLAG,PLAYER_STATE(A1)
- BNE.S WINNER_DISP_1
- MOVE.W #83H,D0
- WINNER_DISP_1:
- JSR.S MESS_SET
- RTS
- WINNER_VS:
- MOVE.W #5CH,D0
- ADD.W PLAYER_No(A1),D0
- JSR.S MESS_SET
- RTS
- ROUND_DISP:
- MOVE.W MAX_ROUND(A5),D0
- MOVE.W ROUND_No(A5),D1
- BNE.S ROUND_DISP_1
- CMP.W #1,D0
- BEQ ROUND_DISP_3
- ROUND_DISP_1:
- SUB.W D1,D0
- CMP.W #1,D0
- BHI.S ROUND_DISP_3
- BEQ.S ROUND_DISP_2
- MOVEQ.L #5,D1
- BRA.S ROUND_DISP_3
- ROUND_DISP_2:
- MOVEQ.L #4,D1
- ROUND_DISP_3:
- MOVE.W D1,ROUND_DISP_No(A5)
- MOVE.W #7DH,D0
- ADD.W D1,D0
- JSR.S MESS_SET_INNER
- ADD.W D1,D1
- MOVE.W ROUND_NAME(PC,D1.W),D0
- MOVE.W D0,-(SP)
- JSR.S SET_SOUND
- MOVE.W #1*2,D0 S_WAIT1
- JSR.S SET_SOUND
- MOVE.W (SP)+,D0
- JSR.S SET_SOUND
- RTS
- ROUND_NAME:
- DC.W 13AH*2
- DC.W 13BH*2
- DC.W 13CH*2
- DC.W 13DH*2
- DC.W 10BH*2
- DC.W 10CH*2
- WIN_CUP_DISP:
- LEA.L PLAYER1(A5),A1
- BSR PROUND_DISP_SUB
- LEA.L PLAYER2(A5),A1
- PROUND_DISP_SUB:
- MOVEP.W WORK_N2+HERO_OFFSET(A1),D0
- CLR.B D0
- LEA.L 0(A5,D0.W),A0
- MOVE.W WIN_ROUND(A1),D0
- ADD.W D0,D0
- ADD.W PLAYER_No(A1),D0
- ADD.W D0,D0
- ADD.W D0,D0
- MOVE.W PROUND_MESS(PC,D0.W),REL_X(A0)
- MOVE.B PROUND_MESS+3(PC,D0.W),ACT_COUNT(A0)
- MOVE.B #1,ACT_DEC(A0)
- RTS
- PROUND_MESS:
- DC.W 40H,-1,320-40H,-1
- DC.W 40H,01,320-40H,01
- DC.W 48H,05,320-48H,05
- DC.W 50H,09,320-50H,09
- PM_HERO_DISP:
- TST.B ST_DEMO_IN(A5)
- BNE.S PM_HERO_DISP_1
- TST.B IN_BONUS(A5)
- BNE.S PM_HERO_DISP_1
- JSR.S NEXT_ACTION
- JSR.S SORT_SET
- PM_HERO_DISP_1:
- RTS
- INCLUDE WORK.INC
|