123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933 |
- ************************************************************************
- * *
- * 044 [RYUUKO NO KEN] *
- * BONUS STAGE *
- * by S.OKADA from 92/06/16 Tue 16:30 *
- * *
- ************************************************************************
- XDEF INIT_BONUS_STG
- XDEF INIT_BONUS3
- XDEF PM_MATO
- XDEF AFTER_BONUS_0
- XDEF START_MAKE
- XREF ?A5
- ;by BONUS
- XREF INIT_BONUS_STG0,BEER_NECK
- ;by STORY
- XREF STAGE_TIME_DEC
- XREF GAME_OBJ_MAP,LEVER_SET_GAME
- ;by PHASE
- XREF ACTIVE_TRIGER
- ;by GAME_DSP
- XREF GAME_TIME_DISP
- XREF NUMBER_MESS
- ;by DEMO_CML
- XREF DEMO_OBJ_MAP
- ;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 GAME_SUB
- XREF LWORK_DEAD
- SECT GAME,,C
- INCLUDE SYS.INC
- INCLUDE NEO_GEO.INC
- INCLUDE LABEL.INC
- INCLUDE HERO_TBL.INC
- INCLUDE ACT_No.INC
- INCLUDE CTRL_No.INC
- INCLUDE HERO_STP.INC
- INCLUDE MACRO.INC
- INCLUDE EASY_MAC.INC
- INCLUDE SMACRO.INC
- INCLUDE SCODE.INC
- START_MAKE:
- PCHILD LW_D7,P_FIGHT,C_FIGHT,160,80H,020H,0
- MOVE.B #0,ACT_COUNT(A0)
- MOVE.W #0F0FH,BIG_X(A0)
- RTS
- INIT_BONUS3:
- MOVE.W #7FFFH,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- SOUND #S_KAKIN
- SOUND #S_BONUS3
- MOVE.W #31H,D0
- JSR.S MESS_SET clear
- MOVE.W #6EH,D0
- JSR.S MESS_SET title
- SEC_TIMER_SET 2,WORD_TIMER
- END_NEXT 1,BONUS3_0
- BONUS3_0:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,2,BONUS3_1
- MOVE.W #S_HITSAT,D0
- JSR.S SET_BGM
- MOVE.W #6FH,D0
- JSR.S MESS_SET
- CLR.W BONUS3_USE(A5)
- MOVE.W #1,FLAME_COUNT(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*22+6,FLAME_POS(A5)
- JSR.S FLAME_WRITED
- BSR BONUS3_NORMA_GET
- MOVE.W D0,BONUS3_NORMA(A5)
- BSR BONUS3_NORMA_WRITE
- MOVE.B #30H,STAGE_TIME(A5)
- MOVE.B SECOND_VALUE(A5),STAGE_TIME+1(A5)
- JSR GAME_TIME_DISP
- MOVE.W #0,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 020H,28H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 080H,20H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 090H,21H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0A0H,22H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0B0H,23H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0C0H,24H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0D0H,25H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0E0H,26H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0F0H,29H,PG_SET+FADE_IN+CC_SPEED3
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- LEA.L HERO1(A5),A6
- LEA.L HERO2(A5),A0
- TST.W STORY_PLAYER(A5)
- BEQ.S INIT_BONUS3_1
- EXG.L A0,A6
- INIT_BONUS3_1:
- MOVE.W #60H,X_POSITION(A6)
- MOVE.W #280H,X_POSITION(A0)
- JSR HERO_1st
- MOVE.W #70H,Y_POSITION(A6)
- MOVE.W #70H,Y_POSITION(A4)
- BCLR.B #0,ACT_ATTR(A4)
- MOVE.W #190,BACK2+BIG_X(A5) Blim
- MOVE.W #0,BACK2+Wx(A5)
- MOVE.W #200H,BACK2+WxRIGHT(A5)
- MOVE.W #28H,BACK2+Wy(A5)
- CLR.L BACK2+Z_POSITION(A5)
- LEA.L GAME_OBJ_MAP(PC),A0
- JSR.S OBJ_MAP_SET
- LEA.L MLWORK1(A5),A6
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- PCHILD WORK_N0,P_EASY,C_BONUS3_BACK,0,0,1,0
- PCHILD WORK_N1,P_MATO,C_MATO,110H,2FH,2,0
- CLR.W AY(A0)
- MOVE.B #1,BONUS_STATE_ON(A5)
- RTS
- BONUS3_1:
- PAL_WAIT 0FFH
- MOVE.W #0,FLAME_COUNT(A5)
- MOVE.W #3,FLAME_END(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
- SEC_TIMER_SET 2,WORD_TIMER
- END_NEXT 2,BONUS3_2
- BONUS3_2:
- SEC_TIMER WORD_TIMER
- JSR.S FLAME_WRITE
- NEXT_CHECK BEQ,3,BONUS3_3
- MOVE.W #76*3,D0
- JSR.S LANG_SET
- RTS
- BONUS3_3:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,4,BONUS3_5
- ; MOVE.W #0,FLAME_END(A5)
- ; RTS
- BONUS3_4:
- ; JSR.S FLAME_CLR
- ; NEXT_CHECK BEQ,5,BONUS3_5
- MOVE.W #2,D0
- JSR.S MESS_SET
- JSR START_MAKE(PC)
- RTS
- BONUS3_5:
- JSR STAGE_TIME_DEC(PC)
- TST.B STAGE_TIME(A5)
- BEQ BONUS3_TIME_OVER
- JSR LEVER_SET_GAME(PC)
- LEA.L HERO1(A5),A6
- TST.W STORY_PLAYER(A5)
- BEQ.S BONUS3_5_1
- LEA.L HERO2(A5),A6
- BONUS3_5_1:
- MOVE.W PLAY_LEVER+PLAYER_OFFSET(A6),PLAY_LEVER(A6)
- MOVE.B PLAY_LEVER+2+PLAYER_OFFSET(A6),PLAY_LEVER+2(A6)
- JSR LM_HERO
- MOVE.L X_POSITION(A4),D0
- ADD.L VX(A4),D0
- SWAP D0
- CMP.W #40H,D0
- BLE B3_PN
- CMP.W #100H,D0
- BLE B3_PN_1
- B3_PN:
- CLR.L VX(A4)
- B3_PN_1:
- LEA.L (A6),A3
- LEA.L MLWORK1(A5),A6
- MOVEP.W TAMA_No(A3),D0
- CLR.B D0
- LEA.L 0(A5,D0.W),A0
- CMP.W #P_SP2,TYPE(A0)
- BNE.S B3_NEXT
- TST.B HIT_FLAG(A0)
- BMI.S B3_NEXT
- TST.W ACT_No(A0)
- BPL.S B3_NEXT
- CMP.W #108H,REL_X(A0)
- BLT.S B3_NEXT
- JSR B3_HIT(PC)
- B3_NEXT:
- RTS
- BONUS3_TIME_OVER:
- MOVE.B #00100000B,BONUS_DI(A5)
- END_NEXT 61,BONUS3_61
- BONUS3_61:
- JSR B3_HERO_STOP(PC)
- NEXT_CHECK BEQ,71,BONUS3_71
- MOVE.W #3,FLAME_COUNT(A5)
- MOVE.W #0,FLAME_END(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
- LEA.L (A0),A6
- MOVE.W #CTRL_LOS,D4
- JSR CTRL_CHANGE
- LEA.L MLWORK1(A5),A6
- MOVE.W #71H,D0
- JSR.S MESS_SET
- RTS
- BONUS3_6:
- JSR B3_HERO_STOP(PC)
- NEXT_CHECK BEQ,7,BONUS3_7
- MOVE.W #3,FLAME_COUNT(A5)
- MOVE.W #0,FLAME_END(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
- LEA.L (A0),A6
- MOVE.W #CTRL_WIN,D4
- JSR CTRL_CHANGE
- LEA.L MLWORK1(A5),A6
- MOVE.W #70H,D0
- JSR.S MESS_SET
- RTS
- BONUS3_71:
- BONUS3_7:
- JSR B3_HERO_STOP(PC)
- JSR.S FLAME_CLR
- NEXT_CHECK BEQ,7,BONUS3_701
- SEC_TIMER_SET 2,WORD_TIMER
- RTS
- BONUS3_701:
- JSR B3_HERO_STOP(PC)
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,8,BONUS3_8
- MOVE.W #72H,D0
- JSR.S MESS_SET
- BONUS3_8:
- MOVE.W BONUS3_USE(A5),D0
- MULU #1000,D0
- MOVE.L D0,SCORE_TOTAL(A5)
- AFTER_BONUS_0:
- MOVE.L SCORE_TOTAL(A5),D1
- BEQ AFTER_NO_BONUS_0
- MOVE.W #96H,D0
- JSR.S NUMBER_MESS
- MOVE.B #40,BYTE_TIMER(A6)
- END_NEXT 1,AFTER_BONUS_1
- AFTER_BONUS_1:
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BNE.S AFTER_BONUS_1_1
- SUBQ.B #1,BYTE_TIMER(A6)
- BEQ.S AFTER_BONUS_1_1
- RTS
- AFTER_BONUS_1_1:
- AB1_1_2:
- MOVE.L #10000,D0
- MOVE.L #10000H,D3
- MOVE.L SCORE_TOTAL(A5),D1
- CMP.L D0,D1
- BHI TW1_2
- MOVE.L #1000,D0
- MOVE.L #1000H,D3
- CMP.L D0,D1
- BHI TW1_2
- MOVE.L #100,D0
- MOVE.L #100H,D3
- CMP.L D0,D1
- BHI TW1_2
- MOVE.L #10,D0
- MOVE.L #10H,D3
- CMP.L D0,D1
- BHI TW1_2
- MOVE.L #1,D0
- MOVE.L #1,D3
- TW1_2:
- MOVE.L D3,REG_D0(A5)
- SUB.L D0,D1
- MOVE.L D1,SCORE_TOTAL(A5)
- LEA.L HERO1(A5),A0
- TST.W STORY_PLAYER(A5)
- BEQ.S TW1_3
- LEA.L HERO2(A5),A0
- TW1_3:
- LEA.L HERO_SCORE+4(A0),A0
- LEA.L REG_D0+4(A5),A1
- SUB.W D0,D0
- ABCD.B -(A1),-(A0)
- ABCD.B -(A1),-(A0)
- ABCD.B -(A1),-(A0)
- ABCD.B -(A1),-(A0)
- TST.L D1
- BEQ.S TW1_4
- BTST.L #B_A_BUTTON,D2
- BNE AB1_1_2
- TW1_4:
- MOVE.W #96H,D0
- JSR.S NUMBER_MESS
- SOUND #S_COUNT
- MOVE.B #6,BYTE_TIMER(A6)
- TST.L SCORE_TOTAL(A5)
- BEQ SET_AFTER_BONUS_11
- RTS
- AFTER_NO_BONUS_0:
- MOVE.W #95H,D0
- JSR.S MESS_SET
- SEC_TIMER_SET 1,WORD_TIMER
- END_NEXT 10,AFTER_BONUS_10
- AFTER_BONUS_10:
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BNE.S SET_AFTER_BONUS_11
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,11,AFTER_BONUS_11
- MOVE.W #0,FLAME_COUNT(A5)
- MOVE.W #3,FLAME_END(A5)
- MOVE.W #0,FLAME_TYPE(A5)
- MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
- RTS
- AFTER_BONUS_11:
- JSR.S FLAME_WRITE
- NEXT_CHECK BEQ,12,AFTER_BONUS_12
- MOVE.W BONUS_No(A5),D3
- BTST.B #0,BONUS_WIN(A5)
- BNE.S AB11_1
- MOVEQ.L #3,D3
- AB11_1:
- ADD.W D3,D3
- LEA.L HERO1(A5),A0
- TST.W STORY_PLAYER(A5)
- BEQ.S AB11_2
- LEA.L HERO2(A5),A0
- AB11_2:
- ADD.W HERO_TYPE(A0),D3
- ADD.W D3,D3
- ADD.W D3,D3
- MOVE.W AF_MESS(PC,D3.W),D0
- JSR.S LANG_SET
- MOVE.W AF_MESS+2(PC,D3.W),D0
- JSR.S LANG_SET
- SEC_TIMER_SET 2,WORD_TIMER
- RTS
- AF_MESS:
- DC.W 77*3,79*3,94*3,79*3
- DC.W 78*3,79*3,95*3,79*3
- DC.W 80*3,81*3,96*3,81*3
- DC.W 82*3,84*3,83*3,84*3
- AFTER_BONUS_12:
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BNE.S SPA_MESS_0
- SEC_TIMER WORD_TIMER
- BCS.S SPA_MESS_0
- RTS
- SPA_MESS_0:
- BTST.B #1,BONUS_WIN(A5)
- BEQ BONUS_END
- JSR.S PWORK_INIT
- JSR.S LWORK_DEAD
- LEA.L HERO1(A5),A6
- LEA.L HERO2(A5),A0
- TST.W STORY_PLAYER(A5)
- BEQ.S SPA_MESS_000
- EXG.L A0,A6
- SPA_MESS_000:
- MOVE.W HERO_TYPE(A6),BONUS_HERO(A5)
- MOVE.W #160,X_POSITION(A6)
- MOVE.W #280H,X_POSITION(A0)
- JSR HERO_1st
- MOVE.W #0100H,BACK2+BIG_X(A5) Blim
- MOVE.W #0,BACK2+Wx(A5)
- MOVE.W #320,BACK2+WxRIGHT(A5)
- MOVE.W #10H,BACK2+Wy(A5)
- CLR.L BACK2+Z_POSITION(A5)
- LEA.L MLWORK1(A5),A6
- LEA.L DEMO_OBJ_MAP(PC),A0
- JSR.S OBJ_MAP_SET
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 080H,20H,PG_SET+BASE_COLOR
- PALETTE 090H,21H,PG_SET+BASE_COLOR
- PALETTE 0D0H,25H,PG_SET+BASE_COLOR
- PALETTE 0E0H,26H,PG_SET+BASE_COLOR
- PALETTE 0F0H,27H,PG_SET+BASE_COLOR
- PALETTE_END
- MOVE.W #31H,D0
- 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
- JSR SPA_MESS_SET
- MOVE.W #60,WORD_TIMER(A6)
- END_NEXT 1,SPA_MESS_1
- SPA_MESS_1:
- BSR SPA_MESS_CUT
- BSR BONUS_HERO_DISP
- CLR.L VX(A0)
- CLR.L VX(A4)
- SUBQ.W #1,WORD_TIMER(A6)
- NEXT_CHECK BEQ,2,SPA_MESS_2
- LEA.L (A0),A6
- MOVE.W HOW_SPA_No(A5),D0
- ADD.W D0,D0
- MOVE.W BONUS_CTRL(PC,D0.W),D4
- JSR CTRL_CHANGE
- LEA.L MLWORK1(A5),A6
- MOVE.W #65,WORD_TIMER(A6)
- RTS
- BONUS_CTRL:
- DC.W 40H,41H,42H
- SPA_MESS_2:
- BSR SPA_MESS_CUT
- BSR BONUS_HERO_DISP
- CLR.L VX(A0)
- CLR.L VX(A4)
- SUBQ.W #1,WORD_TIMER(A6)
- NEXT_CHECK BEQ,3,SPA_MESS_3
- BTST.B #6,ACT_No(A4)
- BEQ.S SPA_MESS_2_1
- MOVE.L ADRS1(A4),A1
- MOVE.W (A1)+,HERO_ACT_No(A0)
- MOVE.L A1,ADRS1(A4)
- MOVE.B #-1,MASTER_REQUEST(A4)
- CMP.W #2,HOW_SPA_No(A5)
- BNE.S SPA_MESS_2_1
- SOUND #S_100RETU
- SPA_MESS_2_1:
- RTS
- SPA_MESS_3:
- BSR SPA_MESS_CUT
- JSR B3_HERO_STOP(PC)
- NEXT_CHECK BEQ,4,SPA_MESS_4
- MOVE.W #120,WORD_TIMER(A6)
- RTS
- SPA_MESS_4:
- SUBQ.W #1,WORD_TIMER(A6)
- BEQ.S BONUS_END
- RTS
- BONUS_END:
- ADDQ.W #1,STORY_STAGE(A5)
- MOVE.W #0,ROUND_No(A5)
- MOVE.W #0,SUB_STEP(A5)
- MOVE.B #01110000B,D0
- AND.B PHASE+1(A5),D0
- OR.B #10000111B,D0
- MOVE.B D0,PHASE+1(A5)
- RTS
- SPA_MESS_CUT:
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BNE.S SMC_1
- RTS
- SMC_1:
- ADDQ.L #4,SP
- MOVE.W #6FH*2,D0 100RETU_STOP
- JSR.S SET_SOUND
- JMP BONUS_END(PC)
- SPA_MESS_RND:
- DC.B 0,0,0,0,0,0
- DC.B 1,1,1,1,1
- DC.B 2,2,2,2,2
- SPA_MESS_SET:
- JSR.S RAND8
- AND.W #00001111B,D0
- MOVE.B SPA_MESS_RND(PC,D0.W),D0
- MOVE.W D0,HOW_SPA_No(A5)
- ADD.W D0,D0
- ADD.W BONUS_HERO(A5),D0
- ADD.W D0,D0
- ADD.W D0,D0
- MOVE.L CONT_SPAD(PC,D0.W),A2
- SPA_MESS_SET_1:
- MOVE.W (A2)+,D0
- BEQ.S SPA_MESS_SET_2
- JSR.S LANG_SET
- BRA.S SPA_MESS_SET_1
- SPA_MESS_SET_2:
- RTS
- CONT_SPAD:
- DC.L SPA1_P1,SPA1_P2
- DC.L SPA3,SPA3
- DC.L SPA2_P1,SPA2_P2
- SPA1_P1 DC.W 85*3,86*3,0
- SPA1_P2 DC.W 85*3,87*3,0
- SPA2_P1 DC.W 88*3,89*3,0
- SPA2_P2 DC.W 88*3,90*3,0
- SPA3 DC.W 91*3,0
- BONUS_HERO_DISP:
- LEA.L HERO1(A5),A6
- TST.W STORY_PLAYER(A5)
- BEQ.S B3_HERO_STOP_1
- LEA.L HERO2(A5),A6
- B3_HERO_STOP_1:
- CLR.W PLAY_LEVER(A6)
- CLR.B PLAY_LEVER+2(A6)
- JSR LM_HERO
- BSET.B #ACTAT_SET,ACT_ATTR(A4)
- LEA.L (A6),A0
- LEA.L MLWORK1(A5),A6
- RTS
- B3_HERO_STOP:
- BSR BONUS_HERO_DISP
- MOVE.L X_POSITION(A4),D0
- ADD.L VX(A4),D0
- SWAP D0
- CMP.W #40H,D0
- BLE B3_PNS
- CMP.W #100H,D0
- BLE B3_PNS_1
- B3_PNS:
- CLR.L VX(A4)
- B3_PNS_1:
- CMP.B #HERO_STOP_STEP,STEP1(A0)
- RTS
- B3_HIT:
- OR.B #80H,HIT_FLAG(A0)
- AND.W #7FFFH,ACT_No(A0)
- ADDQ.W #1,BONUS3_USE(A5)
- SUBQ.W #1,BONUS3_NORMA(A5)
- BSR BONUS3_NORMA_WRITE
- CMP.W #1,BONUS3_NORMA(A5)
- BNE.S B3_HIT_00
- MOVE.B #2,BONUS_WIN(A5)
- B3_HIT_00:
- SUB_WORK WORK_N1,A0,0
- TST.W BONUS3_NORMA(A5)
- BEQ B3_NORMA_END
- SOUND #S_BIYON
- MOVE.B #1,ACT_DEC(A0)
- MOVE.B #0,ACT_COUNT(A0)
- MOVE.B #-1,ACT_TIMER(A0)
- RTS
- B3_NORMA_END:
- MOVE.B #1,HAOH_USE(A5)
- MOVE.B #0FFH,BONUS_WIN(A5)
- MOVE.W #C_MATOB,ACT_No(A0)
- MOVE.B #1,ACT_DEC(A0)
- MOVE.B #-1,ACT_COUNT(A0)
- MOVE.B #-1,ACT_TIMER(A0)
- MOVE.B #00100000B,BONUS_DI(A5)
- STEP_SAVE 6,BONUS3_6
- RTS
- BONUS3_NORMA_WRITE:
- MOVE.W #92*3,D0
- JSR.S LANG_SET
- MOVE.W BONUS3_NORMA(A5),D0
- ADD.W #34H,D0
- JSR.S MESS_SET
- RTS
- BONUS3_NORMA_GET:
- MOVE.W LEVEL_TEMP(A5),D0
- MOVE.B B3ND(PC,D0.W),D0
- RTS
- B3ND:
- DC.B 5,5,6,6,7,7,8,9
- PM_MATO:
- JSR MATO_SUB(PC)
- JSR.S GET_REL_POS
- JSR.S NEXT_ACTION
- JSR.S SORT_SET
- BCLR.B #7,ACT_FLAG(A6)
- BNE.S MATOB_MAKE
- RTS
- MATOB_MAKE:
- SOUND #S_H_KOWASU
- PCHILD WORK_N0,P_MATO,C_MATOB,110H,2FH+60H,3,0
- MOVE.B #0,ACT_COUNT(A0)
- MOVE.W #5,VX(A0)
- MOVE.W #5,VY(A0)
- PCHILD WORK_N0,P_MATO,C_MATOB,110H+10H,2FH+50H,4,0
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.W #5,VX(A0)
- MOVE.W #0,VY(A0)
- PCHILD WORK_N0,P_MATO,C_MATOB,110H,2FH+30H,5,0
- MOVE.B #2,ACT_COUNT(A0)
- MOVE.W #5,VX(A0)
- MOVE.W #-1,VY(A0)
- PCHILD WORK_N0,P_MATO,C_MATOB,110H+20H,2FH+60H,6,0
- MOVE.B #3,ACT_COUNT(A0)
- MOVE.W #3,VX(A0)
- MOVE.W #6,VY(A0)
- PCHILD WORK_N0,P_MATO,C_MATOB,110H+20H,2FH+40H,7,0
- MOVE.B #3,ACT_COUNT(A0)
- MOVE.W #4,VX(A0)
- MOVE.W #5,VY(A0)
- RTS
- MATO_SUB:
- MOVE.W VX(A6),D0
- ADD.W X_POSITION(A6),D0
- CMP.W #-100,D0
- BLE MATO_END
- CMP.W #320+100,D0
- BGE MATO_END
- MOVE.W D0,X_POSITION(A6)
- MOVE.L VY(A6),D0
- ADD.L Y_POSITION(A6),D0
- CMP.L #-800000H,D0
- BLE MATO_END
- MOVE.L D0,Y_POSITION(A6)
- RTS
- MATO_END:
- CLR.W TYPE(A6)
- ADDQ.L #4,SP
- RTS
- INIT_BONUS_STG:
- CLR.B BONUS_DI(A5)
- CLR.B BONUS_STATE_ON(A5)
- CLR.B BONUS_WIN(A5)
- MOVE.L #1,HERO1+HERO_SCORE_D(A5)
- MOVE.L #1,HERO2+HERO_SCORE_D(A5)
- AND.B #01111111B,PHASE+1(A5)
- MOVE.B #1,IN_BONUS(A5)
- LEA.L MLWORK1(A5),A6
- MOVE.W #3,BONUS_No(A5)
- MOVE.W #0H,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 080H,20H,PG_SET+BASE_COLOR
- PALETTE 0D0H,25H,PG_SET+BASE_COLOR
- PALETTE 0E0H,26H,PG_SET+BASE_COLOR
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- OBJ_MAP DEMO_OBJ_MAP
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- MOVE.W #31H,D0
- JSR.S MESS_SET
- MOVE.W #S_BGM_STOP,D0
- JSR.S SET_BGM
- STEP_SAVE 0,BONUS_SEL_0
- RTS
- BONUS_SEL_0:
- PAL_WAIT 0FFH
- MOVE.W #33H,D0
- JSR.S MESS_SET
- SOUND #S_BONUSGAME
- MOVE.W #S_BONUSME,D0
- JSR.S SET_BGM
- SEC_TIMER_SET 1,WORD_TIMER
- END_NEXT 1,BONUS_SEL_1
- BONUS_SEL_1:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,2,BONUS_SEL_2
- SEC_TIMER_SET 9,WORD_TIMER
- MOVE.W #S_BONUS,D0
- JSR.S SET_BGM
- PCHILD WORK_N0,P_EASY,C_BONUS_SEL,20H,0B8H,1,0
- PCHILD WORK_N1,P_EASY,C_BONUS_SEL,78H,0B8H,1,0
- MOVE.B #0,ACT_COUNT(A0)
- PCHILD WORK_N2,P_EASY,C_BONUS_SEL,0D0H,0B8H,1,0
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.W #31H,D0
- JSR.S MESS_SET
- MOVE.W #64H,D0
- JSR.S MESS_SET
- MOVE.W #6BH,D0
- JSR.S MESS_SET
- TST.B HAOH_USE(A5)
- BEQ.S BONUS_SEL_101
- MOVE.W #6DH,D0
- JSR.S MESS_SET
- BONUS_SEL_101:
- BSR BONUS_SEL_MESS
- MOVE.W BONUS_No(A5),D0
- JSR BONUS_CURSOR_WR(PC)
- RTS
- BONUS_SEL_2:
- MOVE.W #6BH,D0
- JSR.S MESS_SET
- SEC_TIMER WORD_TIMER
- TST.B WORD_TIMER(A6)
- BEQ BONUS_SEL_END
- CMP.B #6,WORD_TIMER(A6)
- BNE.S BSEL_202
- CMP.W #3,BONUS_No(A5)
- BNE.S BSEL_202
- MOVE.W #0,BONUS_No(A5)
- BSR BONUS_SEL_MESS
- BSEL_202:
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BNE BONUS_SEL_END
- AND.W #00001100B,D2
- ADD.W BONUS_No(A5),D2
- ADD.W D2,D2
- TST.B HAOH_USE(A5)
- BEQ.S BONUS_SEL_200
- ADD.W #32,D2
- BONUS_SEL_200:
- MOVE.W BONUS_SEL_MOVE(PC,D2.W),D4
- BMI BONUS_SEL_BLINK
- MOVE.W BONUS_No(A5),D0
- BSR BONUS_CURSOR_CL
- MOVE.W D4,D0
- MOVE.W D4,BONUS_No(A5)
- BSR BONUS_CURSOR_WR
- BSR BONUS_SEL_MESS
- SOUND #S_SENTAKU
- BONUS_SEL_201:
- RTS
- BONUS_SEL_MOVE:
- DC.W -1,-1,-1,-1
- DC.W -1,00,01,-1
- DC.W 01,02,-1,01
- DC.W -1,-1,-1,-1
- DC.W -1,-1,-1,-1
- DC.W -1,00,01,-1
- DC.W 01,-1,-1,01
- DC.W -1,-1,-1,-1
- BONUS_SEL_END:
- SOUND #S_KETTEI
- MOVE.W BONUS_No(A5),D0
- BSR BONUS_CURSOR_WR
- CMP.W #3,BONUS_No(A5)
- BNE.S BONUS_SEL_END_1
- MOVE.W #0,BONUS_No(A5)
- BSR BONUS_SEL_MESS
- BONUS_SEL_END_1:
- MOVE.B #90,BYTE_TIMER(A6)
- END_NEXT 3,BONUS_SEL_3
- BONUS_SEL_3:
- SUBQ.B #1,BYTE_TIMER(A6)
- BNE.S BONUS_SEL_301
- MOVE.W #31H,D0
- JSR.S MESS_SET
- SUB_WORK WORK_N0,A0,0
- CLR.W TYPE(A0)
- SUB_WORK WORK_N1,A0,0
- CLR.W TYPE(A0)
- SUB_WORK WORK_N2,A0,0
- CLR.W TYPE(A0)
- MOVE.W #S_BGM_STOP,D0
- JSR.S SET_BGM
- JSR INIT_BONUS_STG0(PC)
- BONUS_SEL_301:
- RTS
- BONUS_SEL_BLINK:
- MOVE.W BONUS_No(A5),D0
- MOVEQ.L #00000011B,D1
- AND.B MAIN_COUNT+3(A5),D1
- BEQ.S BONUS_CURSOR_CL
- BONUS_CURSOR_WR:
- ADD.W #65H,D0
- JSR.S MESS_SET
- MOVE.W #69H,D0
- JSR.S MESS_SET
- RTS
- BONUS_CURSOR_CL:
- ADD.W #65H,D0
- JSR.S MESS_SET
- MOVE.W #6AH,D0
- JSR.S MESS_SET
- RTS
- BONUS_SEL_MESS:
- 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 BONUS_No(A5),D0
- ADD.W D0,D0
- MOVE.W BONUS_SEL_MD(PC,D0.W),D0
- JSR.S LANG_SET
- CMP.W #2,BONUS_No(A5)
- BNE BONUS_SEL_MESS_1
- BSR BONUS3_NORMA_GET
- ADD.W #34H,D0
- JSR.S MESS_SET
- BONUS_SEL_MESS_1:
- RTS
- BONUS_SEL_MD:
- DC.W 71*3,73*3,75*3,70*3
- INCLUDE WORK.INC
|