123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176 |
- ************************************************************************
- * *
- * 044 [RYUUKO NO KEN] *
- * BONUS STAGE *
- * by S.OKADA from 92/06/16 Tue 16:30 *
- * *
- ************************************************************************
- XDEF INIT_BONUS_STG0,BONUS_STG
- XDEF ICE_MAKE
- XDEF INIT_BONUS1
- XDEF INIT_BONUS2
- XDEF PM_ICE,PM_BEER
- XDEF BONUS2_LEVEL_JUDGE
- XDEF BEER_NECK
- XREF ?A5
- ;by PHASE
- XREF ACTIVE_TRIGER
- ;by STORY
- XREF STAGE_TIME_DEC
- XREF GAME_OBJ_MAP,LEVER_SET_GAME
- ;by GAME_DSP
- XREF GAME_TIME_DISP
- XREF SCORE_DISP
- ;by DEMO_CML
- XREF DEMO_OBJ_MAP
- XREF MASTER_CHECK
- XREF INIT_TI_DEMO
- ;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 BSEL
- XREF AFTER_BONUS_0
- XREF INIT_BONUS3,START_MAKE
- SECT GAME,,C
- INCLUDE SYS.INC
- INCLUDE NEO_GEO.INC
- INCLUDE LABEL.INC
- INCLUDE HERO_TBL.INC
- INCLUDE ACT_No.INC
- INCLUDE MACRO.INC
- INCLUDE EASY_MAC.INC
- INCLUDE SMACRO.INC
- INCLUDE SCODE.INC
- INIT_BONUS_STG0:
- LEA.L MLWORK1(A5),A6
- MOVE.W BONUS_No(A5),D0
- ADD.W D0,D0
- ADD.W D0,D0
- JMP INIT_BONUS_VECTOR(PC,D0.W)
- INIT_BONUS_VECTOR:
- JMP INIT_BONUS2(PC)
- JMP INIT_BONUS1(PC)
- JMP INIT_BONUS3(PC)
- BONUS_STG:
- MOVE.B #11011111B,D0
- OR.B BONUS_DI(A5),D0
- AND.B D0,START_FLAG2(A5)
- TST.B BONUS_STATE_ON(A5)
- BEQ.S BONUS_STG_1
- JSR SCORE_DISP
- BONUS_STG_1:
- LEA.L MLWORK1(A5),A6
- EASY_START
- INIT_BONUS1:
- MOVE.W #0,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 020H,28H,PG_SET+BASE_COLOR
- PALETTE 0E0H,26H,PG_SET+FADE_COLOR
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- MOVE.W #500H,D0
- MOVE.B LSPC_MODE_STORE+1(A5),D0
- BCLR.L #3,D0 auto action on
- MOVE.W D0,LSPC_MODE_STORE(A5)
- MOVE.W D0,LSPC_MODE
- MOVE.W #31H,D0 clear
- JSR.S MESS_SET
- OBJ_MAP DEMO_OBJ_MAP
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- BTST.B #6,PHASE+1(A5)
- BNE.S INIT_BONUS1_DEMO
- MOVE.W #7FFFH,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- STEP_SAVE 0,BONUS1_0
- RTS
- INIT_BONUS1_DEMO:
- ADDQ.B #1,DEMO_NUMBER(A5)
- BTST.B #0,DEMO_NUMBER(A5)
- BEQ.S INIT_BONUS2_DEMO
- MOVE.W #0,BONUS_HERO(A5)
- STEP_SAVE 0,BONUS1_DEMO_0
- RTS
- INIT_BONUS2_DEMO:
- MOVE.W #1,BONUS_HERO(A5)
- STEP_SAVE 0,BONUS2_DEMO_0
- RTS
- BONUS1_DEMO_0:
- PAL_WAIT 0FFH
- PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
- PCHILD WORK_N1,P_EASY,C_KAKUSI,0,-10H,8,0
- PCHILD WORK_N2,P_EASY,C_BONUS1_DEMO,160,0C0H,3,0
- LEA.L (A0),A2
- PCHILD WORK_N3,P_EASY,C_BONUS1_ICE,160,0C0H,4,0
- MOVE.B WORK_No(A0),WORK_N0(A2)
- COLOR_COMMAND
- PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E2H,00H,FADE_IN+CC_SPEED0
- PALETTE_END
- END_NEXT 2,BONUS1_DEMO_2
- BONUS1_DEMO_2:
- JSR BONUS_HERO_MOVE(PC)
- BCLR.B #5,ACT_FLAG(A0)
- BEQ.S BONUS1_DEMO_201
- MOVE.B #3,STEP1(A0)
- BONUS1_DEMO_201:
- JSR BONUS_BACK_FLASH(PC)
- BTST.B #7,ACT_FLAG(A0)
- NEXT_CHECK BNE,4,BONUS1_DEMO_4
- COLOR_COMMAND
- PALETTE 020H,28H,PG_SET+RGB_OUT+CC_SPEED1
- PALETTE 0E0H,26H,PG_SET+RGB_OUT+CC_SPEED1
- PALETTE 0FFH,00H,RGB_OUT+CC_SPEED1
- PALETTE_END
- RTS
- BONUS1_DEMO_4:
- PAL_WAIT 0EFH
- JSR INIT_TI_DEMO(PC)
- RTS
- BONUS1_LEVEL_SET:
- BSR BONUS1_LEVEL_JUDGE
- SUB_WORK WORK_N2,A0,0
- MOVE.B D2,LEVEL(A0)
- CMP.B #3,D2
- BCS.S B1LS_1
- MOVE.B #2,BONUS_WIN(A5)
- CMP.B #4,D2
- BNE.S B1LS_1
- MOVE.B #0FFH,BONUS_WIN(A5)
- LEA.L STORY_LIFE(A5),A3
- BSR BONUS_UP_SET
- B1LS_1:
- RTS
- BONUS_UP_SET:
- MOVEQ.L #1,D0
- CMP.W #2,BONUS_RANK(A5)
- BCS.S BUS_1
- MOVEQ.L #2,D0
- BUS_1:
- ADD.B (A3),D0
- CMP.B #16,D0
- BLS.S BUS_2
- MOVEQ.L #16,D0
- BUS_2:
- MOVE.B D0,(A3)
- RTS
- BONUS1_LEVEL_JUDGE:
- MOVEQ.L #0,D2
- MOVE.B HERO1+HERO_LIFE(A5),D0
- SUB.B #24,D0
- BCS.S B1LJ_1
- ADDQ.W #1,D2
- SUB.B #40,D0
- BCS.S B1LJ_1
- ADDQ.W #1,D2
- SUB.B #32,D0
- BCS.S B1LJ_1
- ADDQ.W #1,D2
- SUB.B #24,D0
- BCS.S B1LJ_1
- ADDQ.W #1,D2
- B1LJ_1:
- RTS
- BONUS1_WIN_SET:
- SUB_WORK WORK_N2,A0,0
- MOVEQ.L #0,D0
- MOVE.B LEVEL(A0),D0
- ADD.W D0,D0
- ADD.W BONUS_HERO(A5),D0
- ADD.W D0,D0
- MOVE.W BONUS1_WIN_CH(PC,D0.W),ACT_No(A0)
- MOVE.B #-1,ACT_COUNT(A0)
- MOVE.B #-1,ACT_TIMER(A0)
- MOVE.B #1,ACT_DEC(A0)
- MOVE.B #3,STEP1(A0)
- RTS
- BONUS1_WIN_CH:
- DC.W C_BONUS1_1P_LOS
- DC.W C_BONUS1_2P_LOS
- DC.W C_BONUS1_1P_W1
- DC.W C_BONUS1_2P_W1
- DC.W C_BONUS1_1P_W2
- DC.W C_BONUS1_2P_W2
- DC.W C_BONUS1_1P_W3
- DC.W C_BONUS1_2P_W3
- DC.W C_BONUS1_1P_W4
- DC.W C_BONUS1_2P_W4
- BONUS1_GAGE:
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BEQ.S B1G_2
- MOVEQ.L #0,D0
- MOVE.B HERO1+HERO_LIFE(A5),D0
- LSR.W #5,D0
- MOVE.W BONUS_RANK(A5),D1
- ADD.W D1,D1
- ADD.W D1,D1
- ADD.W D0,D1
- ADD.W D1,D1
- MOVE.W B1GUD(PC,D1.W),D0
- ADD.W D0,HERO1+HERO_LIFE(A5)
- BPL.S B1G_1
- MOVE.B #127,HERO1+HERO_LIFE(A5)
- B1G_1:
- CLR.B BONUS_TIMER(A5)
- JSR BONUS_LIFE
- RTS
- B1G_2:
- ADD.B #1,BONUS_TIMER(A5)
- MOVE.W LEVEL_TEMP(A5),D0
- MOVE.B B1GDD(PC,D0.W),D0
- CMP.B BONUS_TIMER(A5),D0
- BHI.S B1G_4
- CLR.B BONUS_TIMER(A5)
- SUBQ.B #1,HERO1+HERO_LIFE(A5)
- BCC.S B1G_3
- CLR.B HERO1+HERO_LIFE(A5)
- B1G_3:
- JSR BONUS_LIFE
- B1G_4:
- RTS
- B1GUD:
- DC.W 300H,280H,200H,100H
- DC.W 280H,200H,180H,100H
- DC.W 200H,1A0H,140H,0C0H
- B1GDD:
- DC.B 12,10,9,8,7,6,5,4
- BONUS_HERO_SET:
- LEA.L HERO1(A5),A0
- TST.W STORY_PLAYER(A5)
- BEQ.S BHS_1
- LEA.L HERO2(A5),A0
- BHS_1:
- MOVE.W HERO_TYPE(A0),BONUS_HERO(A5)
- RTS
- BONUS1_0:
- PAL_WAIT 0FFH
- SOUND #S_KAKIN
- SOUND #S_BONUS2
- MOVE.W #0,D0
- JSR.S MESS_SET
- BSR BONUS_HERO_SET
- SEC_TIMER_SET 2,WORD_TIMER
- END_NEXT 1,BONUS1_1
- BONUS1_1:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,2,BONUS1_2
- MOVE.B #1,BONUS_STATE_ON(A5)
- MOVE.W #0,HERO1+HERO_LIFE(A5)
- MOVE.B #16,HERO1+LIFE_GAGE(A5)
- MOVE.B #9,STAGE_TIME(A5)
- MOVE.B SECOND_VALUE(A5),STAGE_TIME+1(A5)
- MOVE.W #1,D0
- JSR.S MESS_SET
- MOVE.W #6CH,D0
- JSR.S MESS_SET
- JSR GAME_TIME_DISP
- JSR BONUS_LIFE
- 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)
- MOVE.W #0H,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
- PCHILD WORK_N1,P_EASY,C_KAKUSI,0,-10H,8,0
- PCHILD WORK_N2,P_EASY,C_BONUS1_1P,160,0C0H,3,0
- TST.W BONUS_HERO(A5)
- BEQ.S BONUS1_1_1
- MOVE.W #C_BONUS1_2P,ACT_No(A0)
- BONUS1_1_1:
- LEA.L (A0),A2
- PCHILD WORK_N3,P_EASY,C_BONUS1_ICE,160,0C0H,4,0
- MOVE.B WORK_No(A0),WORK_N0(A2)
- COLOR_COMMAND
- PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E2H,00H,FADE_IN+CC_SPEED0
- PALETTE_END
- SEC_TIMER_SET 2,WORD_TIMER
- RTS
- BONUS1_2:
- SEC_TIMER WORD_TIMER
- JSR.S FLAME_WRITE
- NEXT_CHECK BEQ,3,BONUS1_21
- MOVE.W #74*3,D0
- JSR.S LANG_SET
- RTS
- BONUS1_21:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,3,BONUS1_3
- MOVE.W #2,D0
- JSR.S MESS_SET
- JSR START_MAKE(PC)
- MOVE.W #0,FLAME_END(A5)
- RTS
- BONUS1_3:
- TST.W FLAME_COUNT(A5)
- BEQ.S BONUS1_301
- JSR.S FLAME_CLR
- BONUS1_301:
- JSR BONUS1_GAGE(PC)
- JSR BONUS_HERO_MOVE(PC)
- JSR STAGE_TIME_DEC(PC)
- TST.B STAGE_TIME(A5)
- NEXT_CHECK BEQ,4,BONUS1_50
- MOVE.B #00100000B,BONUS_DI(A5)
- BSR BONUS1_LEVEL_SET
- RTS
- BONUS1_50:
- SUB_WORK WORK_N2,A0,0
- BTST.B #0,ACT_FLAG(A0)
- NEXT_CHECK BNE,6,BONUS1_4
- BSR BONUS1_WIN_SET
- RTS
- BONUS1_4:
- JSR BONUS_HERO_MOVE(PC)
- JSR BONUS_BACK_FLASH(PC)
- BTST.B #7,ACT_FLAG(A0)
- BNE BONUS1_5_1
- RTS
- BONUS1_5_1:
- MOVEQ.L #0,D0
- MOVE.B LEVEL(A0),D0
- ADD.W D0,D0
- MOVE.W B1_SM(PC,D0.W),D0
- JSR.S SET_BGM
- MOVEQ.L #0,D0
- MOVE.B LEVEL(A0),D0
- MULU #2500,D0
- MOVE.L D0,SCORE_TOTAL(A5)
- JMP AFTER_BONUS_0(PC)
- B1_SM:
- DC.W S_BONUSLOST
- DC.W S_SYUGYOU
- DC.W S_SYUGYOU
- DC.W S_SYUGYOU
- DC.W S_BONUSWIN
- BONUS_BACK_FLASH:
- BCLR.B #3,ACT_FLAG(A0)
- BNE BBF_1
- BCLR.B #4,ACT_FLAG(A0)
- BNE BBF_2
- RTS
- BBF_1:
- COLOR_COMMAND
- PALETTE 020H,28H,PG_SET+RGB_COLOR
- PALETTE_END
- RTS
- BBF_2:
- COLOR_COMMAND
- PALETTE 020H,28H,PG_SET+BASE_COLOR
- PALETTE_END
- RTS
- BONUS_HERO_MOVE:
- SUB_WORK WORK_N2,A0,0
- MOVEQ.L #0,D0
- MOVE.B STEP1(A0),D0
- ADD.W D0,D0
- ADD.W D0,D0
- JMP BHM_VECTOR(PC,D0.W)
- BHM_VECTOR:
- JMP BHM_PAL_WAIT(PC) 0
- JMP BHM_TO_SMALL(PC) 1
- JMP BHM_NON(PC) 2
- JMP BHM_ICE(PC) 3
- JMP BHM_NON(PC) 4
- JMP BHM_NON(PC) 5
- JMP BHM2_PAL_WAIT1(PC) 6
- JMP BHM2_PAL_WAIT2(PC) 7
- JMP BHM2_BEER(PC) 8
- BHM2_BEER:
- MOVE.B ACT_DEC(A0),D0
- BLE.S BHM2_BEER_1
- MOVE.B ACT_TIMER(A0),D1
- SUB.B D0,D1
- BGT.S BHM2_BEER_1
- MOVEQ.L #00000001B,D0
- AND.B ACT_FLAG(A0),D0
- BNE.S BHM2_BEER_2
- BHM2_BEER_1:
- RTS
- BHM2_BEER_2:
- MOVE.B #5,STEP1(A0)
- CLR.B ACT_FLAG(A0)
- MOVE.L A6,-(SP)
- LEA.L (A0),A6
- MOVEQ.L #0,D0
- MOVE.B LEVEL(A6),D0
- ADD.W D0,D0
- ADD.W D0,D0
- JSR BEER_MAKE(PC,D0.W)
- MOVE.L (SP)+,A6
- RTS
- BEER_MAKE:
- JMP BEER_MAKE1(PC) 0
- JMP BEER_MAKE2(PC) 1
- JMP BEER_MAKE3(PC) 2
- JMP BEER_MAKE4(PC) 3
- JMP BEER_MAKE5(PC) 4
- JMP BEER_MAKE6(PC) 5
- ; BEER_0 kaiten
- ; BEER_1 broke 1
- ; BEER_2 broke 2
- ; BEER_3 broke 3
- BEER_MAKE1:
- SOUND #S_BINROLL
- PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_0
- MOVE.W #10,VX(A0)
- MOVE.W #2,VY(A0)
- MOVE.B #1,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_0
- MOVE.W #7,VX(A0)
- MOVE.W #1,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #3,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_0
- MOVE.W #5,VX(A0)
- MOVE.W #5,VY(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
- MOVE.W #4,VX(A0)
- MOVE.W #0,VY(A0)
- MOVE.B #7,BYTE_TIMER(A0)
- MOVE.B #0,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
- MOVE.W #4,VX(A0)
- MOVE.W #-1,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #9,BYTE_TIMER(A0)
- RTS
- BEER_MAKE2:
- SOUND #S_BINROLL
- PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
- MOVE.W #-8,VX(A0)
- MOVE.W #10,VY(A0)
- MOVE.B #1,BYTE_TIMER(A0)
- MOVE.B #-1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_0
- MOVE.W #10,VX(A0)
- MOVE.W #2,VY(A0)
- MOVE.B #3,BYTE_TIMER(A0)
- MOVE.B #1,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_0
- MOVE.W #7,VX(A0)
- MOVE.W #1,VY(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
- MOVE.W #5,VX(A0)
- MOVE.W #5,VY(A0)
- MOVE.B #0,ACT_COUNT(A0)
- MOVE.B #7,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
- MOVE.W #4,VX(A0)
- MOVE.W #0,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #9,BYTE_TIMER(A0)
- RTS
- BEER_MAKE3:
- SOUND #S_SYAKIN5
- PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
- MOVE.W #-8,VX(A0)
- MOVE.W #12,VY(A0)
- MOVE.B #1,BYTE_TIMER(A0)
- MOVE.B #-1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
- MOVE.W #6,VX(A0)
- MOVE.W #17,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #3,BYTE_TIMER(A0)
- MOVE.B #1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_0
- MOVE.W #10,VX(A0)
- MOVE.W #2,VY(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
- MOVE.W #7,VX(A0)
- MOVE.W #1,VY(A0)
- MOVE.B #0,ACT_COUNT(A0)
- MOVE.B #7,BYTE_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
- MOVE.W #5,VX(A0)
- MOVE.W #5,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #9,BYTE_TIMER(A0)
- RTS
- BEER_MAKE4:
- SOUND #S_SYAKIN5
- PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
- MOVE.W #-8,VX(A0)
- MOVE.W #12,VY(A0)
- MOVE.B #1,BYTE_TIMER(A0)
- MOVE.B #-1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
- MOVE.W #6,VX(A0)
- MOVE.W #17,VY(A0)
- MOVE.B #3,BYTE_TIMER(A0)
- MOVE.B #0,WORD_TIMER(A0)
- MOVE.B #1,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_1
- MOVE.W #2,VX(A0)
- MOVE.W #20,VY(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- MOVE.B #1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_0
- MOVE.W #10,VX(A0)
- MOVE.W #2,VY(A0)
- MOVE.B #7,BYTE_TIMER(A0)
- MOVE.B #0,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
- MOVE.W #7,VX(A0)
- MOVE.W #1,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #9,BYTE_TIMER(A0)
- RTS
- BEER_MAKE5:
- SOUND #S_SYAKIN2
- PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
- MOVE.W #-8,VX(A0)
- MOVE.W #8,VY(A0)
- MOVE.B #1,BYTE_TIMER(A0)
- MOVE.B #-1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
- MOVE.W #6,VX(A0)
- MOVE.W #15,VY(A0)
- MOVE.B #3,BYTE_TIMER(A0)
- MOVE.B #1,WORD_TIMER(A0)
- MOVE.B #1,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_1
- MOVE.W #2,VX(A0)
- MOVE.W #20,VY(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- MOVE.B #0,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_2
- MOVE.W #-6,VX(A0)
- MOVE.W #13,VY(A0)
- MOVE.B #7,BYTE_TIMER(A0)
- MOVE.B #1,WORD_TIMER(A0)
- MOVE.B #0,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_0
- MOVE.W #10,VX(A0)
- MOVE.W #2,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- RTS
- BEER_MAKE6:
- SOUND #S_SYAKIN2
- PCHILD WORK_N0,P_BEER,C_BEER,68H,28H,17,BEER_1
- MOVE.W #-8,VX(A0)
- MOVE.W #10,VY(A0)
- MOVE.B #1,BYTE_TIMER(A0)
- MOVE.B #-1,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,84H,28H,14,BEER_3
- MOVE.W #6,VX(A0)
- MOVE.W #14,VY(A0)
- MOVE.B #3,BYTE_TIMER(A0)
- MOVE.B #1,WORD_TIMER(A0)
- MOVE.B #1,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0A0H,28H,11,BEER_1
- MOVE.W #2,VX(A0)
- MOVE.W #17,VY(A0)
- MOVE.B #5,BYTE_TIMER(A0)
- MOVE.B #0,WORD_TIMER(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0BCH,28H,8,BEER_2
- MOVE.W #-6,VX(A0)
- MOVE.W #13,VY(A0)
- MOVE.B #7,BYTE_TIMER(A0)
- MOVE.B #-1,WORD_TIMER(A0)
- MOVE.B #0,ACT_COUNT(A0)
- PCHILD WORK_N0,P_BEER,C_BEER,0D8H,28H,5,BEER_3
- MOVE.W #8,VX(A0)
- MOVE.W #10,VY(A0)
- MOVE.B #1,ACT_COUNT(A0)
- MOVE.B #9,BYTE_TIMER(A0)
- MOVE.B #1,WORD_TIMER(A0)
- RTS
- BHM2_PAL_WAIT1:
- MOVE.B #7,STEP1(A0)
- RTS
- BHM2_PAL_WAIT2:
- PAL_WAIT 0E3H
- MOVE.B #1,ACT_DEC(A0)
- MOVE.B #5,STEP1(A0)
- RTS
- BHM_PAL_WAIT:
- ; PAL_WAIT 0EFH
- MOVE.B #1,STEP1(A0)
- BHM_NON:
- RTS
- BHM_TO_SMALL:
- MOVEP.W WORK_N0(A0),D0
- CLR.B D0
- LEA.L 0(A5,D0.W),A1
- SUBQ.B #1,BIG_Y(A1)
- SUBQ.B #1,BIG_X(A1)
- SUBQ.B #1,BIG_Y(A0)
- SUBQ.B #1,BIG_X(A0)
- CMP.B #0A6H,BIG_X(A0)
- BNE.S BHM_TO_SMALL_1
- MOVE.B #4,PRIORITY(A0)
- MOVE.B #3,PRIORITY(A1)
- MOVE.B #2,STEP1(A0)
- MOVE.W #0FFFFH,BIG_X(A0)
- MOVE.W #0FFFFH,BIG_X(A1)
- MOVE.B #1,ACT_DEC(A0)
- MOVE.B #1,ACT_DEC(A1)
- BHM_TO_SMALL_1:
- RTS
- BHM_ICE:
- MOVEP.W WORK_N0(A0),D0
- CLR.B D0
- LEA.L 0(A5,D0.W),A1
- MOVE.B ACT_DEC(A0),D0
- BLE.S BHM_ICE_1
- MOVE.B ACT_TIMER(A0),D1
- SUB.B D0,D1
- BGT.S BHM_ICE_1
- BTST.B #0,ACT_FLAG(A0)
- BNE.S BHM_ICE_2
- BTST.B #1,ACT_FLAG(A0)
- BNE.S BHM_ICE_3
- BHM_ICE_1:
- RTS
- BHM_ICE_2:
- MOVE.B #1,ACT_DEC(A1)
- BTST.B #2,ACT_FLAG(A0)
- BNE CRASH_MAKE
- RTS
- BHM_ICE_3:
- MOVE.B PRIORITY(A0),D0
- ADDQ.B #1,D0
- MOVE.B D0,PRIORITY(A1)
- RTS
- CRASH_MAKE:
- MOVEM.L A0-A1,-(SP)
- PCHILD LW_D4,P_EASY,C_ICE_CRASH,160,0B0H,8,0
- MOVEM.L (SP)+,A0-A1
- ICE_MAKE:
- RTS
- PM_ICE:
- RTS
- INIT_BONUS2:
- MOVE.W #7FFFH,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 000H,00H,PG_SET+BASE_COLOR
- PALETTE 020H,28H,PG_SET+BASE_COLOR
- PALETTE 0E0H,26H,PG_SET+FADE_COLOR
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- MOVE.W #500H,D0
- MOVE.B LSPC_MODE_STORE+1(A5),D0
- BCLR.L #3,D0 auto action on
- MOVE.W D0,LSPC_MODE_STORE(A5)
- MOVE.W D0,LSPC_MODE
- MESS_ON
- MOVE.L #M_FIX_CLEAR,(A0)+
- MESS_OFF
- OBJ_MAP DEMO_OBJ_MAP
- CLR.L WINDOW_X(A5)
- CLR.L WINDOW_Y(A5)
- STEP_SAVE 0,BONUS2_0
- RTS
- BONUS2_DEMO_0:
- PAL_WAIT 0FFH
- PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
- PCHILD WORK_N2,P_EASY,C_BONUS2_DEMO,160,0B0H,3,0
- MOVE.B #6,STEP1(A0)
- COLOR_COMMAND
- PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E3H,00H,FADE_IN+CC_SPEED0
- PALETTE_END
- END_NEXT 2,BONUS2_DEMO_2
- BONUS2_DEMO_2:
- JSR BONUS_HERO_MOVE(PC)
- BTST.B #5,ACT_FLAG(A0)
- NEXT_CHECK BNE,3,BONUS2_DEMO_3
- SUB_WORK WORK_N2,A0,0
- MOVE.B #5,LEVEL(A0)
- MOVE.B #8,STEP1(A0)
- RTS
- BONUS2_DEMO_3:
- JSR BONUS_HERO_MOVE(PC)
- JSR BONUS_BACK_FLASH(PC)
- BTST.B #6,ACT_FLAG(A0)
- NEXT_CHECK BNE,4,BONUS2_DEMO_4
- COLOR_COMMAND
- PALETTE 020H,28H,PG_SET+RGB_OUT+CC_SPEED1
- PALETTE 0E0H,26H,PG_SET+RGB_OUT+CC_SPEED1
- PALETTE 0FFH,00H,RGB_OUT+CC_SPEED1
- PALETTE_END
- RTS
- BONUS2_DEMO_4:
- PAL_WAIT 0EFH
- JSR INIT_TI_DEMO(PC)
- RTS
- BONUS2_0:
- PAL_WAIT 0FFH
- SOUND #S_KAKIN
- SOUND #S_BONUS1
- MOVE.W #12H,D0
- JSR.S MESS_SET
- BSR BONUS_HERO_SET
- SEC_TIMER_SET 2,WORD_TIMER
- END_NEXT 1,BONUS2_1
- BONUS2_1:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,2,BONUS2_2
- MOVE.B #1,BONUS_STATE_ON(A5)
- MOVE.W #0,HERO1+HERO_LIFE(A5)
- MOVE.B #16,HERO1+LIFE_GAGE(A5)
- MOVE.B #9,STAGE_TIME(A5)
- MOVE.B SECOND_VALUE(A5),STAGE_TIME+1(A5)
- MOVE.W #13H,D0
- JSR.S MESS_SET
- MOVE.W #6CH,D0
- JSR.S MESS_SET
- JSR GAME_TIME_DISP
- JSR BONUS_LIFE
- 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)
- MOVE.W #0,COLOR_BUFFER+1FFEH(A5)
- COLOR_COMMAND
- PALETTE 0FFH,00H,BASE_COLOR
- PALETTE_END
- PCHILD WORK_N0,P_EASY,C_BONUS1_BACK,0,0,1,0
- PCHILD WORK_N1,P_EASY,C_KAKUSI,0,-10H,8,0
- PCHILD WORK_N2,P_EASY,C_BONUS2_1P,160,0B0H,3,0
- TST.W BONUS_HERO(A5)
- BEQ.S BONUS2_1_1
- MOVE.W #C_BONUS2_2P,ACT_No(A0)
- BONUS2_1_1:
- MOVE.B #5,STEP1(A0)
- COLOR_COMMAND
- PALETTE 0E0H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E1H,00H,FADE_IN+CC_SPEED2
- PALETTE 0E3H,00H,FADE_IN+CC_SPEED0
- PALETTE_END
- SEC_TIMER_SET 2,WORD_TIMER
- RTS
- BONUS2_2:
- SEC_TIMER WORD_TIMER
- JSR.S FLAME_WRITE
- NEXT_CHECK BEQ,3,BONUS2_21
- MOVE.W #72*3,D0
- JSR.S LANG_SET
- RTS
- BONUS2_21:
- SEC_TIMER WORD_TIMER
- NEXT_CHECK BCS,4,BONUS2_30
- MOVE.W #0,FLAME_END(A5)
- RTS
- BONUS2_30:
- JSR.S FLAME_CLR
- NEXT_CHECK BEQ,4,BONUS2_3
- SUB_WORK WORK_N2,A0,0
- MOVE.B #1,ACT_DEC(A0)
- MOVE.W #2,D0
- JSR.S MESS_SET
- JSR START_MAKE(PC)
- RTS
- BONUS2_3:
- JSR BONUS2_GAGE(PC)
- JSR.S ACTIVE_TRIGER
- BTST.L #B_A_BUTTON,D2
- BNE.S BONUS2_303
- JSR BONUS_HERO_MOVE(PC)
- JSR STAGE_TIME_DEC(PC)
- TST.B STAGE_TIME(A5)
- BEQ.S BONUS2_302
- RTS
- BONUS2_302:
- SUB_WORK WORK_N2,A0,0
- MOVE.B #0,LEVEL(A0)
- CLR.W HERO1+HERO_LIFE(A5)
- JSR BONUS_LIFE
- BRA.S BONUS2_304
- BONUS2_303:
- BSR BONUS2_LEVEL_SET
- BONUS2_304:
- MOVE.B #00100000B,BONUS_DI(A5)
- END_NEXT 5,BONUS2_50
- BONUS2_50:
- SUB_WORK WORK_N2,A0,0
- BTST.B #0,ACT_FLAG(A0)
- NEXT_CHECK BNE,6,BONUS2_4
- MOVE.W #C_BONUS2_1P_W,ACT_No(A0)
- TST.W BONUS_HERO(A5)
- BEQ.S BONUS2_3_1
- MOVE.W #C_BONUS2_2P_W,ACT_No(A0)
- BONUS2_3_1:
- MOVE.B #-1,ACT_COUNT(A0)
- MOVE.B #-1,ACT_TIMER(A0)
- MOVE.B #1,ACT_DEC(A0)
- MOVE.B #8,STEP1(A0)
- RTS
- BONUS2_4:
- JSR BONUS_HERO_MOVE(PC)
- JSR BONUS_BACK_FLASH(PC)
- BTST.B #6,ACT_FLAG(A0)
- NEXT_CHECK BNE,5,BONUS2_5
- SEC_TIMER_SET 1,WORD_TIMER
- RTS
- BONUS2_5:
- SEC_TIMER WORD_TIMER
- BCS.S BONUS2_5_1
- RTS
- BONUS2_5_1:
- SUB_WORK WORK_N2,A0,0
- MOVEQ.L #0,D0
- MOVE.B LEVEL(A0),D0
- ADD.W D0,D0
- MOVE.W B2_SM(PC,D0.W),D0
- JSR.S SET_BGM
- MOVEQ.L #0,D0
- MOVE.B LEVEL(A0),D0
- MULU #2000,D0
- MOVE.L D0,SCORE_TOTAL(A5)
- JMP AFTER_BONUS_0(PC)
- B2_SM:
- DC.W S_SYUGYOU
- DC.W S_SYUGYOU
- DC.W S_SYUGYOU
- DC.W S_SYUGYOU
- DC.W S_SYUGYOU
- DC.W S_BONUSWIN
- BONUS2_LEVEL_SET:
- JSR BONUS2_LEVEL_JUDGE(PC)
- SUB_WORK WORK_N2,A0,0
- MOVE.B D2,LEVEL(A0)
- CMP.B #4,D2
- BCS.S B2LS_1
- MOVE.B #2,BONUS_WIN(A5)
- CMP.B #5,D2
- BNE.S B2LS_1
- MOVE.B #0FFH,BONUS_WIN(A5)
- LEA.L STORY_SPIRIT(A5),A3
- BSR BONUS_UP_SET
- B2LS_1:
- RTS
- BONUS2_LEVEL_JUDGE:
- MOVE.W LEVEL_TEMP(A5),D0
- ADD.W D0,D0
- ADD.W D0,D0
- MOVE.L B2LT(PC,D0.W),A0
- MOVEQ.L #0,D2 0
- MOVE.B HERO1+HERO_LIFE(A5),D1
- SUB.B (A0)+,D1
- BCS.S B2LJ_1
- ADDQ.W #1,D2 1
- SUB.B (A0)+,D1
- BCS.S B2LJ_1
- ADDQ.W #1,D2 2
- SUB.B (A0)+,D1
- BCS.S B2LJ_1
- ADDQ.W #1,D2 3
- SUB.B (A0)+,D1
- BCS.S B2LJ_1
- ADDQ.W #1,D2 4
- SUB.B (A0)+,D1
- BCS.S B2LJ_1
- ADDQ.W #1,D2 5
- B2LJ_1:
- RTS
- B2LT:
- DC.L B2L1
- DC.L B2L2
- DC.L B2L3
- DC.L B2L4
- DC.L B2L5
- DC.L B2L6
- DC.L B2L7
- DC.L B2L8
- B2L1: DC.B 24,32,24,20,16,12
- B2L2: DC.B 28,32,24,20,16,08
- B2L3: DC.B 36,32,24,16,12,08
- B2L4: DC.B 44,32,24,16,08,04
- B2L5: DC.B 50,32,20,16,08,04
- B2L6: DC.B 56,24,20,16,08,04
- B2L7: DC.B 68,20,16,12,08,04
- B2L8: DC.B 84,16,12,08,04,04
- BONUS2_GAGE:
- MOVE.W BONUS_RANK(A5),D0
- MOVE.B BONUS2_LIFE_ADD(PC,D0.W),D0
- ADD.B D0,HERO1+HERO_LIFE(A5)
- AND.B #7FH,HERO1+HERO_LIFE(A5)
- JSR BONUS_LIFE
- RTS
- BONUS2_LIFE_ADD:
- DC.B 2,3,4
- DS.W 0
- PM_BEER:
- JSR MASTER_CHECK(PC)
- EASY_CALL
- JSR.S GET_REL_POS
- JSR.S NEXT_ACTION
- JSR.S SORT_SET
- RTS
- BEER_0:
- SUBQ.B #1,BYTE_TIMER(A6)
- BEQ.S BEER_01
- RTS
- BEER_01:
- MOVE.B #1,ACT_DEC(A6)
- MOVE.B #-1,ACT_TIMER(A6)
- END_NEXT 2,BEER_NECK
- BEER_1:
- SUBQ.B #1,BYTE_TIMER(A6)
- BEQ.S BEER_11
- RTS
- BEER_11:
- BSR BEER_SUB
- MOVE.B #-1,ACT_COUNT(A6)
- END_NEXT 1,BEER_BROKE
- BEER_2:
- SUBQ.B #1,BYTE_TIMER(A6)
- BEQ.S BEER_21
- RTS
- BEER_21:
- BSR BEER_SUB
- MOVE.B #1,ACT_COUNT(A6)
- END_NEXT 1,BEER_BROKE
- BEER_3:
- SUBQ.B #1,BYTE_TIMER(A6)
- BEQ.S BEER_31
- RTS
- BEER_31:
- BSR BEER_SUB
- MOVE.B #3,ACT_COUNT(A6)
- END_NEXT 1,BEER_BROKE
- BEER_SUB:
- PCHILD WORK_N0,P_BEER,C_BEER_NECK,60H,58H,9,BEER_NECK
- MOVE.W X_POSITION(A6),X_POSITION(A0)
- MOVE.W Y_POSITION(A6),Y_POSITION(A0)
- ADD.W #38H,Y_POSITION(A0)
- MOVE.B PRIORITY(A6),D0
- ADDQ.B #2,D0
- MOVE.B D0,PRIORITY(A0)
- MOVE.W VX(A6),VX(A0)
- MOVE.W VY(A6),VY(A0)
- PCHILD WORK_N0,P_BEER,C_BEER_AWA,60H,58H,9,BEER_BROKE
- MOVE.W X_POSITION(A6),X_POSITION(A0)
- MOVE.W Y_POSITION(A6),Y_POSITION(A0)
- MOVE.B PRIORITY(A6),D0
- ADDQ.B #1,D0
- MOVE.B D0,PRIORITY(A0)
- MOVE.B WORD_TIMER(A6),ACT_COUNT(A0)
- MOVE.W #C_BEER_BROKE,ACT_No(A6)
- MOVE.B #1,ACT_DEC(A6)
- MOVE.B #-1,ACT_TIMER(A6)
- BEER_BROKE:
- RTS
- BEER_NECK:
- MOVE.W VX(A6),D0
- ADD.W X_POSITION(A6),D0
- CMP.W #-100,D0
- BLE BEER_END
- CMP.W #320+100,D0
- BGE BEER_END
- MOVE.W D0,X_POSITION(A6)
- MOVE.L VY(A6),D0
- ADD.L Y_POSITION(A6),D0
- CMP.L #-800000H,D0
- BLE BEER_END
- MOVE.L D0,Y_POSITION(A6)
- SUB.L #10000H,VY(A6)
- RTS
- BEER_END:
- CLR.W TYPE(A6)
- ADDQ.L #4,SP
- RTS
- INCLUDE WORK.INC
|