HOW.SRC 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. ;
  2. ;
  3. ; *** 044 HOW TO PLAY ***
  4. ;
  5. ;
  6. XDEF INIT_HOW_TO_STORY,HOW_TO_STORY
  7. XDEF INIT_HOW_TO_VS,HOW_TO_VS
  8. XREF ?A5
  9. ;by MAIN
  10. XREF LP_MAIN
  11. ;by PHASE
  12. XREF ACTIVE_TRIGER
  13. ;by STORY
  14. XREF DEMO_LEVER_SET,GAME_OBJ_MAP,LEVER_SET_GAME
  15. XREF DIST_SET
  16. ;by GAME_SUB
  17. XREF LWORK_DEAD
  18. ;by MESSAGE
  19. XREF MESS_SET,MESS_SET_INNER,FLAME_WRITE,FLAME_CLR
  20. XREF FLAME_WRITED,FLAME_CLRD
  21. ;by LANG
  22. XREF LANG_SET,LANG_SET_INNER
  23. ;by BACK
  24. XREF BACK2_INIT,BACK2_SCROLL_SET
  25. XREF BEFOR_SCROLL
  26. ;by HIT
  27. XREF HERO1_HIT_JUDGE
  28. XREF HERO2_HIT_JUDGE
  29. SECT GAME,,C
  30. INCLUDE SYS.INC
  31. INCLUDE LABEL.INC
  32. INCLUDE NEO_GEO.INC
  33. INCLUDE HERO_TBL.INC
  34. INCLUDE EASY_MAC.INC
  35. INIT_HOW_TO_VS:
  36. INIT_HOW_TO_STORY:
  37. MOVE.W #6*2,D0 ALL EI
  38. JSR.S SET_SOUND
  39. MOVE.W #130H*2,D0 S_PLAYER
  40. JSR.S SET_BGM
  41. JSR.S PWORK_INIT
  42. JSR.S LWORK_DEAD
  43. MOVE.W #31H,D0
  44. JSR.S MESS_SET
  45. TST.B GAME_DIP+SD_HOW_TO_PLAY(A5)
  46. BNE HOW_TO_END
  47. CLR.B BACK2+FLAG(A5)
  48. LEA.L GAME_OBJ_MAP,A0
  49. JSR.S OBJ_MAP_SET
  50. LEA.L MLWORK2(A5),A6
  51. STEP_SAVE 0,HOW_TO_0
  52. AND.B #01111111B,PHASE+1(A5)
  53. RTS
  54. HOW_TO_VS:
  55. HOW_TO_STORY:
  56. LEA.L MLWORK2(A5),A6
  57. MOVEQ.L #DEMO_IN,D0
  58. AND.B DEBUG_DIP1(A5),D0
  59. BNE.S HW_000
  60. JSR.S ACTIVE_TRIGER
  61. BTST.L #B_A_BUTTON,D2
  62. BNE HOW_TO_END
  63. HW_000:
  64. EASY_START
  65. HOW_TO_0:
  66. END_NEXT 0,HOW_TO_01
  67. HOW_TO_01:
  68. END_NEXT 1,HOW_TO_1
  69. HOW_TO_1:
  70. COLOR_COMMAND
  71. PALETTE 000H,00H,PG_SET+BASE_COLOR
  72. PALETTE 020H,02H,PG_SET+BASE_COLOR
  73. PALETTE 030H,03H,PG_SET+BASE_COLOR
  74. PALETTE 040H,31H,PG_SET+BASE_COLOR
  75. PALETTE 080H,20H,PG_SET+BASE_COLOR
  76. PALETTE 090H,21H,PG_SET+BASE_COLOR
  77. PALETTE 0A0H,22H,PG_SET+BASE_COLOR
  78. PALETTE 0B0H,23H,PG_SET+BASE_COLOR
  79. PALETTE 0C0H,24H,PG_SET+BASE_COLOR
  80. PALETTE 0D0H,25H,PG_SET+BASE_COLOR
  81. PALETTE 0E0H,26H,PG_SET+BASE_COLOR
  82. PALETTE 0F0H,27H,PG_SET+BASE_COLOR
  83. PALETTE_END
  84. END_NEXT 2,HOW_TO_2
  85. HOW_TO_2:
  86. PAL_WAIT 0FFH
  87. MOVE.B #1,HOW_TO_FLAG(A5)
  88. MOVE.W #1,STORY_STAGE(A5)
  89. MOVE.W STORY_STAGE(A5),AREA_No(A5)
  90. MOVE.W #180H,REG_D0(A5)
  91. MOVE.W #100H,REG_D1(A5)
  92. JSR BACK2_INIT
  93. MOVE.W #2,LEVEL_TEMP(A5)
  94. MOVE.W #0,ATTACK_MUL(A5)
  95. LEA.L HERO1(A5),A6
  96. MOVE.W #180H-2CH,X_POSITION(A6)
  97. MOVE.W #0,HERO_TYPE(A6)
  98. JSR HERO_1st
  99. MOVE.B #14,STEP1(A6) HERO_STOP_STEP
  100. CLR.B HERO_STATE(A6)
  101. LEA.L HERO2(A5),A6
  102. MOVE.W #180H+2CH,X_POSITION(A6)
  103. MOVE.W #2,HERO_TYPE(A6)
  104. JSR HERO_1st
  105. MOVE.B #14,STEP1(A6) HERO_STOP_STEP
  106. CLR.B HERO_STATE(A6)
  107. LEA.L MLWORK2(A5),A6
  108. MOVE.L #25800H,HERO1+DEMO_LEVER(A5)
  109. MOVE.L #25C00H,HERO2+DEMO_LEVER(A5)
  110. MOVE.W #400H,HERO1+DEMO_LEV_COUNT(A5)
  111. MOVE.W #400H,HERO2+DEMO_LEV_COUNT(A5)
  112. MOVEQ.L #DEMO_IN,D0
  113. AND.B DEBUG_DIP1(A5),D0
  114. BEQ.S DGS_2
  115. ADD.L #200000H,HERO1+DEMO_LEVER(A5)
  116. ADD.L #200000H,HERO2+DEMO_LEVER(A5)
  117. DGS_2:
  118. MOVE.W #2,FLAME_COUNT(A5)
  119. MOVE.W #0,FLAME_TYPE(A5)
  120. MOVE.W #7000H+20H*3+5,FLAME_POS(A5)
  121. MOVE.W #2,FLAME_END(A5)
  122. JSR.S FLAME_WRITED
  123. STEP_SAVE 3,HOW_TO_3
  124. MOVE.L #HOW_TO_SEQ,LW_D0(A6)
  125. JMP HOW_TO_NEXT
  126. HOW_TO_3:
  127. JSR DIST_SET
  128. JSR LEVER_SET_GAME
  129. JSR DEMO_LEVER_SET
  130. MOVE.W PLAYER1+PLAY_LEVER(A5),PLAY_LEVER+HERO1(A5)
  131. MOVE.B PLAYER1+PLAY_LEVER+2(A5),PLAY_LEVER+2+HERO1(A5)
  132. MOVE.W PLAYER2+PLAY_LEVER(A5),PLAY_LEVER+HERO2(A5)
  133. MOVE.B PLAYER2+PLAY_LEVER+2(A5),PLAY_LEVER+2+HERO2(A5)
  134. LEA.L HERO1(A5),A6
  135. JSR PWORK_HIT
  136. LEA.L HERO2(A5),A6
  137. JSR PWORK_HIT
  138. LEA.L HERO1(A5),A6
  139. JSR LM_HERO
  140. LEA.L HERO2(A5),A6
  141. JSR LM_HERO
  142. JSR BEFOR_SCROLL
  143. JSR BACK2_SCROLL_SET
  144. JSR LP_MAIN
  145. JSR HERO1_HIT_JUDGE
  146. JSR HERO2_HIT_JUDGE
  147. LEA.L MLWORK2(A5),A6
  148. SUBQ.W #1,WORD_TIMER(A6)
  149. BEQ.S HOW_TO_NEXT
  150. RTS
  151. HOW_TO_NEXT:
  152. MOVE.L LW_D0(A6),A4
  153. HOW_TO_NEXT_1:
  154. MOVE.W (A4)+,D0
  155. PEA.L HOW_TO_NEXT_1(PC)
  156. JMP HOW_TO_COMMAND(PC,D0.W)
  157. HOW_TO_COMMAND:
  158. JMP HCOMMAND_NEXT(PC) 0
  159. JMP HCOMMAND_MESS(PC) 4
  160. JMP HCOMMAND_LANG(PC) 8
  161. JMP HCOMMAND_OVER(PC) 12
  162. HCOMMAND_NEXT:
  163. MOVE.W (A4)+,WORD_TIMER(A6)
  164. MOVE.L A4,LW_D0(A6)
  165. ADDQ.L #4,SP
  166. RTS
  167. HCOMMAND_MESS:
  168. MOVE.W (A4)+,D0
  169. JSR.S MESS_SET
  170. CMP.W #13,(A4)
  171. BCC.S HCOMMAND_MESS
  172. RTS
  173. HCOMMAND_LANG:
  174. MOVE.W #2,FLAME_COUNT(A5)
  175. JSR.S FLAME_WRITED
  176. MOVE.W (A4)+,D0
  177. JSR.S LANG_SET
  178. RTS
  179. HCOMMAND_OVER:
  180. ADDQ.L #4,SP
  181. HOW_TO_END:
  182. CLR.B HOW_TO_FLAG(A5)
  183. CLR.B BACK2+FLAG(A5)
  184. MOVE.W #0,HERO1+HERO_TYPE(A5)
  185. MOVE.W #1,HERO2+HERO_TYPE(A5)
  186. BTST.B #4,PHASE+1(A5)
  187. BNE.S HOW_VS_END
  188. HOW_STORY_END:
  189. MOVE.B #00100000B,D0
  190. AND.B PHASE+1(A5),D0
  191. OR.B #10000010B,D0 story player select
  192. MOVE.B D0,PHASE+1(A5)
  193. RTS
  194. HOW_VS_END:
  195. MOVE.B #00110000B,D0
  196. AND.B PHASE+1(A5),D0
  197. OR.B #10000010B,D0 vs player select
  198. MOVE.B D0,PHASE+1(A5)
  199. RTS
  200. HOW_TO_SEQ:
  201. DC.W 4,0BCH,0C1H,0C3H,0C5H,0C6H
  202. DC.W 0,15 wait
  203. DC.W 8,97*3 lang
  204. DC.W 4,0C2H BUTTON AP
  205. DC.W 0,140
  206. DC.W 8,98*3
  207. DC.W 4,0C1H,0C4H
  208. DC.W 0,140
  209. DC.W 8,101*3
  210. DC.W 4,0C3H,0BDH
  211. DC.W 0,140
  212. DC.W 8,102*3
  213. DC.W 4,0BEH,0BFH
  214. DC.W 0,140
  215. DC.W 8,103*3
  216. DC.W 4,0C0H,0D4H
  217. DC.W 0,180
  218. DC.W 12
  219. INCLUDE WORK.INC
  220.