MOVE.SRC 18 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070
  1. XDEF INIT_MOVING_DEMO,MOVING_DEMO
  2. XDEF INIT_OVER_DEMO,OVER_DEMO
  3. XDEF ALL_COLOR_COM2,END_IN
  4. XREF ?A5
  5. ;by PHASE
  6. XREF ACTIVE_TRIGER
  7. ;by MESSAGE
  8. XREF MESS_SET,MESS_SET_INNER,FLAME_WRITE,FLAME_CLR
  9. XREF FLAME_WRITED,FLAME_CLRD
  10. ;by LANG
  11. XREF LANG_SET,LANG_SET_INNER
  12. ;by BACK
  13. XREF BACK2_CENTOR
  14. ;by GAME_SUB
  15. XREF LWORK_DEAD
  16. ;by DEMO_CML
  17. XREF DEMO_OBJ_MAP
  18. ;by EASY
  19. XREF BASE_MONO_SET
  20. SECT GAME,,C
  21. INCLUDE SYS.INC
  22. INCLUDE NEO_GEO.INC
  23. INCLUDE LABEL.INC
  24. INCLUDE ACT_No.INC
  25. INCLUDE MACRO.INC
  26. INCLUDE EASY_MAC.INC
  27. INCLUDE SMACRO.INC
  28. INCLUDE SCODE.INC
  29. INCLUDE HFLAG.INC
  30. INIT_OVER_DEMO:
  31. ADDQ.W #1,STORY_STAGE(A5)
  32. SOUND #S_FADE_STOP
  33. MOVE.L WIN_PLAYER(A5),A0
  34. BTST.B #BPS_COM_FLAG,PLAYER_STATE(A0)
  35. BNE.S IOD_000
  36. TST.B MAKE_DEMO_CUT(A5)
  37. BNE OVER_DEMO_TO_CONT
  38. MOVE.B #1,MAKE_DEMO_CUT(A5)
  39. BRA.S IOD_001
  40. IOD_000:
  41. CLR.B MAKE_DEMO_CUT(A5)
  42. CLR.B ST_DEMO_ON(A5)
  43. IOD_001:
  44. JSR.S PWORK_INIT
  45. JSR.S LWORK_DEAD
  46. JSR BACK2_CENTOR(PC)
  47. MESS_ON
  48. MOVE.L #M_FIX_CLEAR,(A0)+
  49. MESS_OFF
  50. MOVE.W #25H,D0
  51. JSR.S MESS_SET
  52. MOVE.W LSPC_MODE_STORE(A5),D0
  53. BSET.L #3,D0 auto action on
  54. MOVE.W D0,LSPC_MODE_STORE(A5)
  55. MOVE.W D0,LSPC_MODE
  56. LEA.L MLWORK1(A5),A6
  57. MOVE.W #20H,BYTE_FLAG+80H(A5)
  58. MOVE.W #60H,BYTE_FLAG+82H(A5)
  59. MOVE.W #16H,REG_D0(A5)
  60. MOVE.W #16H,REG_D0+2(A5)
  61. MOVE.W #16H,REG_D0+4(A5)
  62. MOVE.W #08H,REG_D0+6(A5)
  63. MOVE.W #08H,REG_D0+8(A5)
  64. MOVE.W #08H,REG_D0+10(A5)
  65. JSR.S BASE_MONO_SET
  66. MOVE.W #FADE_IN+CC_SPEED3,D0
  67. JSR ALL_COLOR_COM(PC)
  68. PCHILD WORK_N1,P_EASY,C_KAKUSI,0,0,1,0
  69. PCHILD WORK_N0,P_EASY,C_OVER_DEMO,160,50H,0,0
  70. MOVE.W STORY_STAGE(A5),D0
  71. SUBQ.W #1,D0 BAKADANAA!
  72. ADD.W KING_MUNE(A5),D0
  73. ADD.W D0,D0
  74. MOVE.W D0,D1
  75. SUBQ.W #3,D0
  76. SUBQ.W #2,D1
  77. MOVE.L WIN_PLAYER(A5),A1
  78. BTST.B #BPS_COM_FLAG,PLAYER_STATE(A1)
  79. BEQ.S INIT_OVER_DEMO_2
  80. ADDQ.W #1,D0
  81. ADDQ.W #1,D1
  82. INIT_OVER_DEMO_2:
  83. CMP.W #21,D1 to ending
  84. BEQ TO_ENDING
  85. MOVE.B D0,ACT_COUNT(A0)
  86. ADD.W D1,D1
  87. ADD.W D1,D1
  88. MOVE.W D1,LW_D1(A6)
  89. SEC_TIMER_SET 6,WORD_TIMER
  90. BSR OVER_MESS_SET
  91. MOVE.W STORY_STAGE(A5),D0
  92. ADD.W D0,D0
  93. MOVE.W OVER_SOUND-4(PC,D0.W),D0
  94. JSR.S SET_BGM
  95. STEP_SAVE 1,OVER_DEMO_1
  96. RTS
  97. OVER_SOUND:
  98. DC.W S_1STDEMO
  99. DC.W S_2STDEMO
  100. DC.W S_2STDEMO ; bonus
  101. DC.W S_3STDEMO
  102. DC.W S_4STDEMO
  103. DC.W S_4STDEMO ; bonus
  104. DC.W S_5STDEMO
  105. DC.W S_6STDEMO
  106. DC.W S_6STDEMO ; bonus
  107. DC.W S_7STDEMO
  108. DC.W S_8STDEMO
  109. OVER_MESS_SET:
  110. MOVE.W LW_D1(A6),D0
  111. MOVE.B OVER_MESS_D(PC,D0.W),D0
  112. BNE.S OVER_MESS_SET_1
  113. RTS
  114. OVER_MESS_SET_1:
  115. CMP.B #-1,D0
  116. BEQ.S OVER_MESS_SET_2
  117. MOVE.W #2,FLAME_COUNT(A5)
  118. MOVE.W #0,FLAME_TYPE(A5)
  119. MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
  120. JSR.S FLAME_WRITED
  121. MOVE.W LW_D1(A6),D0
  122. MOVE.B OVER_MESS_D(PC,D0.W),D0
  123. JSR.S LANG_SET
  124. OVER_MESS_SET_2:
  125. SEC_TIMER_SET 2,WORD_TIMER
  126. ADDQ.W #1,LW_D1(A6)
  127. RTS
  128. OVER_MESS_D:
  129. DC.B 35*3,00*3,00*3,00*3,36*3,37*3,00*3,00*3 1
  130. DC.B 38*3,00*3,00*3,00*3,39*3,40*3,00*3,00*3 2
  131. DC.B 00*3,00*3,00*3,00*3,00*3,00*3,00*3,00*3 B
  132. DC.B 41*3,00*3,00*3,00*3,42*3,00*3,00*3,00*3 3
  133. DC.B 43*3,00*3,00*3,00*3,45*3,46*3,47*3,00*3 4
  134. DC.B 44*3,00*3,00*3,00*3,48*3,49*3,50*3,00*3 4M
  135. DC.B 51*3,00*3,00*3,00*3,52*3,00*3,00*3,00*3 5
  136. DC.B 53*3,00*3,00*3,00*3,54*3,00*3,00*3,00*3 6
  137. DC.B 00*3,00*3,00*3,00*3,57*3,00*3,00*3,00*3 B
  138. DC.B 55*3,56*3,00*3,00*3,57*3,00*3,00*3,00*3 7
  139. DC.B 58*3,-001,00*3,00*3,58*3,-001,00*3,00*3 8
  140. OVER_DEMO:
  141. MOVE.L WIN_PLAYER(A5),A1
  142. BTST.B #BPS_COM_FLAG,PLAYER_STATE(A1)
  143. BEQ OVER_DEMO_LOS
  144. AND.B #11011111B,START_FLAG2(A5)
  145. OVER_DEMO_LOS:
  146. EASY_START
  147. OVER_DEMO_1:
  148. PAL_WAIT 0DFH
  149. END_NEXT 2,OVER_DEMO_2
  150. OVER_DEMO_2:
  151. BSR OVER_CUT
  152. SEC_TIMER WORD_TIMER
  153. BCC.S OVER_DEMO_2_1
  154. BSR OVER_MESS_SET
  155. BEQ OVER_DEMO_OUT
  156. OVER_DEMO_2_1:
  157. RTS
  158. OVER_DEMO_OUT:
  159. MOVE.W #S_FADESPEED_5,D0
  160. JSR.S SET_BGM
  161. MOVE.W #FADE_OUT+CC_SPEED3,D0
  162. JSR ALL_COLOR_COM(PC)
  163. END_NEXT 3,OVER_DEMO_3
  164. OVER_DEMO_3:
  165. PAL_WAIT 0DFH
  166. SOUND #S_E_DI
  167. SOUND #S_WAIT2
  168. SOUND #S_E_EI
  169. MOVE.L WIN_PLAYER(A5),A1
  170. BTST.B #BPS_COM_FLAG,PLAYER_STATE(A1)
  171. BEQ OVER_DEMO_TO_CONT
  172. OVER_DEMO_OVER:
  173. MOVE.W #0,ROUND_No(A5)
  174. MOVE.W #0,SUB_STEP(A5)
  175. MOVE.B #01110000B,D0
  176. AND.B PHASE+1(A5),D0
  177. OR.B #10000111B,D0
  178. MOVE.B D0,PHASE+1(A5)
  179. RTS
  180. TO_ENDING:
  181. OR.B #10000000B,START_FLAG2(A5)
  182. MOVE.W #S_BGM_STOP,D0
  183. JSR.S SET_BGM
  184. COLOR_COMMAND
  185. PALETTE 0C0H,24H,PG_SET+FADE_COLOR
  186. PALETTE_END
  187. MOVE.B #01110000B,D0
  188. AND.B PHASE+1(A5),D0
  189. OR.B #10000000B,D0 in game
  190. MOVE.B D0,PHASE+1(A5)
  191. MOVE.W #0,SUB_STEP(A5)
  192. CLR.B ST_DEMO_ON(A5)
  193. RTS
  194. OVER_CUT:
  195. JSR.S ACTIVE_TRIGER
  196. AND.B #11110000B,D2
  197. BNE.S OVER_CUT_1
  198. RTS
  199. OVER_CUT_1:
  200. ADDQ.L #4,SP
  201. JMP OVER_DEMO_OUT(PC)
  202. OVER_DEMO_TO_CONT:
  203. SUBQ.W #1,STORY_STAGE(A5)
  204. MOVE.W #0,ROUND_No(A5)
  205. MOVE.W #0,SUB_STEP(A5)
  206. MOVE.B #01110000B,D0
  207. AND.B PHASE+1(A5),D0
  208. OR.B #10000011B,D0
  209. MOVE.B D0,PHASE+1(A5)
  210. RTS
  211. INIT_MOVING_DEMO:
  212. JSR.S PWORK_INIT
  213. LEA.L MLWORK1(A5),A6
  214. CLR.L WINDOW_X(A5)
  215. CLR.L WINDOW_Y(A5)
  216. AND.B #01111111B,PHASE+1(A5)
  217. MOVE.W STORY_STAGE(A5),D0
  218. ADD.W D0,D0
  219. LEA.L HERO1(A5),A0
  220. TST.W STORY_PLAYER(A5)
  221. BEQ.S IMD_1
  222. LEA.L HERO2(A5),A0
  223. IMD_1:
  224. ADD.W HERO_TYPE(A0),D0
  225. ADD.W D0,D0
  226. ADD.W D0,D0
  227. MOVE.L MOVE_START(PC,D0.W),ADRS1(A6)
  228. BPL IMD_3
  229. CLR.B ADRS1(A6)
  230. RTS
  231. IMD_3:
  232. COLOR_COMMAND
  233. PALETTE 000H,00H,PG_SET+BASE_COLOR
  234. PALETTE 0F0H,27H,PG_SET+BASE_COLOR
  235. PALETTE_END
  236. MESS_ON
  237. MOVE.L #M_FIX_CLEAR,(A0)+
  238. MESS_OFF
  239. OBJ_MAP DEMO_OBJ_MAP
  240. RTS
  241. MOVE_START:
  242. DC.L MOVE_NON,MOVE_NON 0
  243. DC.L MOVE_NON,MOVE_NON 1
  244. DC.L MOVE1P_0,MOVE2P_0 2
  245. DC.L MOVE1P_0,MOVE2P_0 3
  246. DC.L MAP_0,MAP_0 B1
  247. DC.L MOVE1P_0,MOVE2P_0 4
  248. DC.L MOVE1P_0,MOVE2P_0 5
  249. DC.L MAP_0,MAP_0 B2
  250. DC.L MOVE1P_0,MOVE2P_0 6
  251. DC.L MOVE1P_0,MOVE2P_0 7
  252. DC.L MAP_0,MAP_0 B3
  253. DC.L MOVE1P_0,MOVE2P_0 8
  254. DC.L END_0+80000000H,END2_0+80000000H 9
  255. END_IN:
  256. JSR BACK2_CENTOR(PC)
  257. LEA.L MLWORK1(A5),A6
  258. CLR.L WINDOW_X(A5)
  259. CLR.L WINDOW_Y(A5)
  260. MOVE.W #BASE_COLOR,D0
  261. JSR ALL_COLOR_COM(PC)
  262. LEA.L HERO1(A5),A0
  263. TST.W STORY_PLAYER(A5)
  264. BEQ.S END_IN_1
  265. LEA.L HERO2(A5),A0
  266. END_IN_1:
  267. TST.W HERO_TYPE(A0)
  268. BNE END2_0
  269. END_0:
  270. PCHILD WORK_N1,P_EASY,C_KAKUSI,0,0,1,0
  271. PCHILD WORK_N0,P_EASY,C_ENDING,0,8,0,0
  272. MOVE.W #27*3,D0
  273. MOVE.B #-1,D1
  274. JMP END_0_1(PC)
  275. END2_0:
  276. PCHILD WORK_N1,P_EASY,C_KAKUSI,0,0,1,0
  277. PCHILD WORK_N0,P_EASY,C_ENDING,0,8,0,0
  278. MOVE.W #28*3,D0 imo
  279. MOVE.B #-1,D1
  280. END_0_1:
  281. MOVE.W #0,FLAME_TYPE(A5)
  282. MOVE.W #3,FLAME_END(A5)
  283. MOVE.W #7000H+20H*3+24,FLAME_POS(A5)
  284. LEA.L END_DATA(PC),A1
  285. MOVE.L A1,ADRS2(A6)
  286. BSR END_SERIF
  287. BRA END_0_21
  288. END_0_2:
  289. MOVE.L A1,ADRS2(A6)
  290. BSR END_SERIF
  291. BSR ALL_FADE_IN
  292. END_0_21:
  293. SEC_TIMER_SET 1,WORD_TIMER
  294. END_0_3:
  295. END_NEXT 1,END_1
  296. END_1:
  297. SEC_TIMER WORD_TIMER
  298. NEXT_CHECK BCS,2,END_2
  299. MOVE.L ADRS2(A6),A1
  300. MOVE.B 3(A1),D0
  301. CMP.B -1(A1),D0
  302. BNE END_1_1
  303. MOVE.W (A1)+,D0
  304. MOVE.W (A1)+,D1
  305. MOVE.L A1,ADRS2(A6)
  306. BSR END_SERIF
  307. SEC_TIMER_SET 2,WORD_TIMER
  308. BRA END_0_3
  309. END_1_1:
  310. BSR ALL_FADE_OUT
  311. RTS
  312. END_2:
  313. PAL_WAIT 0DFH
  314. MOVE.L ADRS2(A6),A1
  315. MOVE.W (A1)+,D0
  316. BEQ INIT_STAFF
  317. MOVE.W (A1)+,D1
  318. JMP END_0_2(PC)
  319. INIT_STAFF:
  320. SUB_WORK WORK_N0,A0,0
  321. CLR.W TYPE(A0)
  322. SUB_WORK WORK_N1,A0,0
  323. CLR.W TYPE(A0)
  324. ; MOVE.W #S_ENDING,D0
  325. ; JSR.S SET_BGM
  326. ;
  327. MOVE.L ADRS2(A6),A1
  328. ADDQ.L #2,A1
  329. MOVE.W (A1)+,D0
  330. END_STAFF_1:
  331. MOVE.L A1,ADRS2(A6)
  332. BSR STAF_SET
  333. BSR FIX_FADE_IN
  334. SEC_TIMER_SET 3,WORD_TIMER
  335. END_NEXT 2,END_STAFF_2
  336. END_STAFF_2:
  337. SEC_TIMER WORD_TIMER
  338. NEXT_CHECK BCS,3,END_STAFF_3
  339. BSR FIX_FADE_OUT
  340. RTS
  341. END_STAFF_3:
  342. PAL_WAIT 00FH
  343. MOVE.L ADRS2(A6),A1
  344. MOVE.W (A1)+,D0
  345. BNE END_STAFF_1
  346. END_STAFF_END:
  347. MOVE.W #21H,D0
  348. BSR STAF_SET
  349. BSR FIX_FADE_IN
  350. SEC_TIMER_SET 6,WORD_TIMER
  351. END_NEXT 5,END_STAFF_5
  352. END_STAFF_5:
  353. SEC_TIMER WORD_TIMER
  354. NEXT_CHECK BCS,6,END_STAFF_6
  355. BSR FIX_FADE_OUT
  356. RTS
  357. END_STAFF_6:
  358. PAL_WAIT 00FH
  359. MOVEQ.L #01110000B,D0
  360. AND.B PHASE+1(A5),D0
  361. OR.B #43H,D0
  362. MOVE.B D0,PHASE+1(A5)
  363. RTS
  364. END_DATA:
  365. DC.W 29*3,0
  366. DC.W 30*3,1
  367. DC.W 31*3,-1
  368. DC.W 32*3,-1,0
  369. ; DC.W 33*3,1
  370. ; DC.W 34*3,0,0
  371. DC.W 22H
  372. DC.W 18H
  373. DC.W 19H
  374. DC.W 1AH
  375. DC.W 1BH
  376. DC.W 1CH
  377. DC.W 1DH
  378. DC.W 1EH
  379. DC.W 1FH
  380. DC.W 20H
  381. DC.W 0
  382. STAF_SET:
  383. MESS_ON
  384. MOVE.L #M_FIX_CLEAR,(A0)+
  385. JSR.S MESS_SET_INNER
  386. MESS_OFF
  387. RTS
  388. END_SERIF:
  389. MOVE.W D0,REG_D0(A5)
  390. SUB_WORK WORK_N0,A0,0
  391. MOVE.B D1,ACT_COUNT(A0)
  392. MOVE.B #-1,ACT_TIMER(A0)
  393. MOVE.B #1,ACT_DEC(A0)
  394. BCLR.B #ACTAT_KEEP,ACT_ATTR(A0)
  395. MOVE.W #2,FLAME_COUNT(A5)
  396. JSR.S FLAME_WRITED
  397. MOVE.W REG_D0(A5),D0
  398. JSR.S LANG_SET
  399. RTS
  400. ALL_COLOR_COM2:
  401. MOVE.L A1,-(SP)
  402. LEA.L AC_PAL2(PC),A1
  403. MOVEQ.L #8-1,D7
  404. BRA.S ACC_1
  405. ALL_FADE_IN:
  406. MOVE.W #FADE_IN+CC_SPEED3,D0
  407. BRA ALL_COLOR_COM
  408. ALL_FADE_OUT:
  409. MOVE.W #FADE_OUT+CC_SPEED3,D0
  410. ALL_COLOR_COM:
  411. MOVE.L A1,-(SP)
  412. LEA.L AC_PAL(PC),A1
  413. MOVEQ.L #8-1,D7
  414. ACC_1:
  415. MOVEQ.L #16-1,D6
  416. MOVE.L (A1)+,A0
  417. ACC_2:
  418. MOVE.W D0,(A0)
  419. LEA.L 20H(A0),A0
  420. DBRA D6,ACC_2
  421. DBRA D7,ACC_1
  422. MOVE.B #1,COLOR_STATE(A5)
  423. MOVE.L (SP)+,A1
  424. RTS
  425. AC_PAL2:
  426. DC.L COLOR_BUFFER+20H*000H
  427. DC.L COLOR_BUFFER+20H*020H
  428. DC.L COLOR_BUFFER+20H*030H
  429. DC.L COLOR_BUFFER+20H*040H
  430. DC.L COLOR_BUFFER+20H*080H
  431. DC.L COLOR_BUFFER+20H*090H
  432. DC.L COLOR_BUFFER+20H*0C0H
  433. DC.L COLOR_BUFFER+20H*0D0H
  434. AC_PAL:
  435. DC.L COLOR_BUFFER+20H*000H
  436. DC.L COLOR_BUFFER+20H*020H
  437. DC.L COLOR_BUFFER+20H*030H
  438. DC.L COLOR_BUFFER+20H*040H
  439. DC.L COLOR_BUFFER+20H*050H
  440. DC.L COLOR_BUFFER+20H*080H
  441. DC.L COLOR_BUFFER+20H*090H
  442. DC.L COLOR_BUFFER+20H*0D0H
  443. FIX_FADE_OUT:
  444. COLOR_COMMAND
  445. PALETTE 000H,00H,PG_SET+FADE_OUT+CC_SPEED1
  446. PALETTE_END
  447. RTS
  448. FIX_FADE_IN:
  449. COLOR_COMMAND
  450. PALETTE 000H,00H,PG_SET+FADE_IN+CC_SPEED1
  451. PALETTE_END
  452. RTS
  453. MOVING_DEMO:
  454. AND.B #11011111B,START_FLAG2(A5)
  455. LEA.L MLWORK1(A5),A6
  456. EASY_START
  457. MOVE1P_0:
  458. JSR IDOU_SOUND(PC)
  459. SOUND #S_HARREY
  460. BSR MOVE_BACK_SET
  461. END_NEXT 1,MOVE1P_1
  462. MOVE1P_1:
  463. BSR MOVE_CUT
  464. BSR MOVE_BACK_BIG
  465. NEXT_CHECK BEQ,101,MOVE1P_101
  466. MOVE.W #60,WORD_TIMER(A6)
  467. RTS
  468. MOVE1P_101:
  469. BSR MOVE_CUT
  470. SUBQ.W #1,WORD_TIMER(A6)
  471. NEXT_CHECK BEQ,2,MOVE1P_2
  472. PCHILD WORK_N2,P_EASY,C_MOVE_BIKE,320,77,2,0
  473. BSET.B #ACTAT_CUT,ACT_ATTR(A0)
  474. RTS
  475. MOVE1P_2:
  476. BSR MOVE_CUT
  477. SUB_WORK WORK_N2,A0,0
  478. SUB.W #8,X_POSITION(A0)
  479. CMP.W #10H,X_POSITION(A0)
  480. NEXT_CHECK BEQ,21,MOVE1P_21
  481. SOUND #S_ENJIN8
  482. RTS
  483. MOVE1P_21:
  484. BSR MOVE_CUT
  485. SUB_WORK WORK_N2,A0,0
  486. ADD.W #2,X_POSITION(A0)
  487. CMP.W #50H,X_POSITION(A0)
  488. NEXT_CHECK BEQ,3,MOVE1P_3
  489. ; SOUND #S_ENJIN8
  490. PCHILD WORK_N3,P_EASY,C_MOVE_1P,248,0B8H,3,0
  491. MOVEQ.L #0,D1
  492. BSR MOVE_FACE
  493. MOVE.W #0,FLAME_COUNT(A5)
  494. MOVE.W #1,FLAME_TYPE(A5)
  495. MOVE.W #7000H+20H*3+8,FLAME_POS(A5)
  496. MOVE.W #3,FLAME_END(A5)
  497. RTS
  498. MOVE1P_3:
  499. BSR MOVE_CUT
  500. JSR.S FLAME_WRITE
  501. NEXT_CHECK BEQ,4,MOVE1P_4
  502. MOVEQ.L #0,D1
  503. BSR MOVE_MESS_GET
  504. JSR.S LANG_SET
  505. SEC_TIMER_SET 3,WORD_TIMER
  506. MOVEQ.L #1,D1
  507. BSR MOVE_MESS_GET
  508. BEQ.S MOVE1P_3_1
  509. MOVE.B #1,WORD_TIMER(A6)
  510. MOVE1P_3_1:
  511. RTS
  512. MOVE1P_4:
  513. BSR MOVE_CUT
  514. SEC_TIMER WORD_TIMER
  515. NEXT_CHECK BCS,5,MOVE1P_5
  516. MOVE.W #0,FLAME_END(A5)
  517. RTS
  518. MOVE1P_5:
  519. BSR MOVE_CUT
  520. JSR.S FLAME_CLR
  521. NEXT_CHECK BEQ,6,MOVE1P_6
  522. MOVEQ.L #1,D1
  523. BSR MOVE_MESS_GET
  524. BEQ SET_MOVE1P_9
  525. MOVE.W #0,FLAME_COUNT(A5)
  526. MOVE.W #1,FLAME_TYPE(A5)
  527. MOVE.W #7000H+20H*3+8,FLAME_POS(A5)
  528. MOVE.W #3,FLAME_END(A5)
  529. RTS
  530. MOVE1P_6:
  531. BSR MOVE_CUT
  532. JSR.S FLAME_WRITE
  533. NEXT_CHECK BEQ,7,MOVE1P_7
  534. MOVEQ.L #1,D1
  535. BSR MOVE_MESS_GET
  536. JSR.S LANG_SET
  537. SEC_TIMER_SET 1,WORD_TIMER
  538. RTS
  539. MOVE1P_7:
  540. BSR MOVE_CUT
  541. SEC_TIMER WORD_TIMER
  542. NEXT_CHECK BCS,8,MOVE1P_8
  543. MOVE.W #0,FLAME_END(A5)
  544. RTS
  545. MOVE1P_8:
  546. BSR MOVE_CUT
  547. JSR.S FLAME_CLR
  548. NEXT_CHECK BEQ,9,MOVE1P_9
  549. ;SET_MOVE1P_9:
  550. SOUND #S_HARREY
  551. MOVE.W #76,WORD_TIMER(A6)
  552. RTS
  553. MOVE1P_9:
  554. BSR MOVE_CUT
  555. SUBQ.W #1,WORD_TIMER(A6)
  556. NEXT_CHECK BEQ,102,MOVE1P_102
  557. RTS
  558. MOVE1P_102:
  559. BSR MOVE_CUT
  560. BSR PAKU_CLOSE
  561. SUB_WORK WORK_N2,A0,0
  562. SUB.W #8,X_POSITION(A0)
  563. CMP.W #-90H,X_POSITION(A0)
  564. NEXT_CHECK BLE,11,MOVE1P_11
  565. CLR.W TYPE(A0)
  566. RTS
  567. MOVE1P_11:
  568. BSR MOVE_CUT
  569. BSR MOVE_BACK_SMALL
  570. NEXT_CHECK BCS,0,MAP_0
  571. ;SET_MAP_0:
  572. JSR.S PWORK_INIT
  573. MESS_ON
  574. MOVE.L #M_FIX_CLEAR,(A0)+
  575. MESS_OFF
  576. LEA.L MLWORK1(A5),A6
  577. RTS
  578. MOVE2P_0:
  579. JSR IDOU_SOUND(PC)
  580. SOUND #S_FERA
  581. BSR MOVE_BACK_SET
  582. END_NEXT 1,MOVE2P_1
  583. MOVE2P_1:
  584. BSR MOVE_CUT
  585. BSR MOVE_BACK_BIG
  586. NEXT_CHECK BEQ,101,MOVE2P_101
  587. MOVE.W #80,WORD_TIMER(A6)
  588. RTS
  589. MOVE2P_101:
  590. BSR MOVE_CUT
  591. SUBQ.W #1,WORD_TIMER(A6)
  592. NEXT_CHECK BEQ,2,MOVE2P_2
  593. PCHILD WORK_N2,P_EASY,C_MOVE_CAR,320,77,2,0
  594. BSET.B #ACTAT_CUT,ACT_ATTR(A0)
  595. RTS
  596. MOVE2P_2:
  597. BSR MOVE_CUT
  598. SUB_WORK WORK_N2,A0,0
  599. SUB.W #8,X_POSITION(A0)
  600. CMP.W #10H,X_POSITION(A0)
  601. NEXT_CHECK BEQ,21,MOVE2P_21
  602. SOUND #S_ENJIN
  603. RTS
  604. MOVE2P_21:
  605. BSR MOVE_CUT
  606. SUB_WORK WORK_N2,A0,0
  607. ADD.W #1,X_POSITION(A0)
  608. CMP.W #30H,X_POSITION(A0)
  609. NEXT_CHECK BEQ,3,MOVE2P_3
  610. ; SOUND #S_ENJIN
  611. PCHILD WORK_N3,P_EASY,C_MOVE_2P,248,0B8H,3,0
  612. MOVEQ.L #1,D1
  613. BSR MOVE_FACE
  614. MOVE.W #0,FLAME_COUNT(A5)
  615. MOVE.W #1,FLAME_TYPE(A5)
  616. MOVE.W #7000H+20H*3+8,FLAME_POS(A5)
  617. MOVE.W #3,FLAME_END(A5)
  618. RTS
  619. MOVE2P_3:
  620. BSR MOVE_CUT
  621. JSR.S FLAME_WRITE
  622. NEXT_CHECK BEQ,4,MOVE2P_4
  623. MOVEQ.L #2,D1
  624. BSR MOVE_MESS_GET
  625. JSR.S LANG_SET
  626. SEC_TIMER_SET 3,WORD_TIMER
  627. MOVEQ.L #3,D1
  628. BSR MOVE_MESS_GET
  629. BEQ.S MOVE2P_3_1
  630. MOVE.B #1,WORD_TIMER(A6)
  631. MOVE2P_3_1:
  632. RTS
  633. MOVE2P_4:
  634. BSR MOVE_CUT
  635. SEC_TIMER WORD_TIMER
  636. NEXT_CHECK BCS,5,MOVE2P_5
  637. MOVE.W #0,FLAME_END(A5)
  638. RTS
  639. MOVE2P_5:
  640. BSR MOVE_CUT
  641. JSR.S FLAME_CLR
  642. NEXT_CHECK BEQ,6,MOVE2P_6
  643. MOVEQ.L #3,D1
  644. BSR MOVE_MESS_GET
  645. BEQ SET_MOVE2P_9
  646. MOVE.W #0,FLAME_COUNT(A5)
  647. MOVE.W #1,FLAME_TYPE(A5)
  648. MOVE.W #7000H+20H*3+8,FLAME_POS(A5)
  649. MOVE.W #3,FLAME_END(A5)
  650. RTS
  651. MOVE2P_6:
  652. BSR MOVE_CUT
  653. JSR.S FLAME_WRITE
  654. NEXT_CHECK BEQ,7,MOVE2P_7
  655. MOVEQ.L #3,D1
  656. BSR MOVE_MESS_GET
  657. JSR.S LANG_SET
  658. SEC_TIMER_SET 1,WORD_TIMER
  659. RTS
  660. MOVE2P_7:
  661. BSR MOVE_CUT
  662. SEC_TIMER WORD_TIMER
  663. NEXT_CHECK BCS,8,MOVE2P_8
  664. MOVE.W #0,FLAME_END(A5)
  665. RTS
  666. MOVE2P_8:
  667. BSR MOVE_CUT
  668. JSR.S FLAME_CLR
  669. NEXT_CHECK BEQ,9,MOVE2P_9
  670. ;SET_MOVE2P_9:
  671. SOUND #S_FERA
  672. MOVE.W #106,WORD_TIMER(A6)
  673. RTS
  674. MOVE2P_9:
  675. BSR MOVE_CUT
  676. SUBQ.W #1,WORD_TIMER(A6)
  677. NEXT_CHECK BEQ,102,MOVE2P_102
  678. RTS
  679. MOVE2P_102:
  680. BSR MOVE_CUT
  681. BSR PAKU_CLOSE
  682. SUB_WORK WORK_N2,A0,0
  683. SUB.W #8,X_POSITION(A0)
  684. CMP.W #-0E0H,X_POSITION(A0)
  685. NEXT_CHECK BLE,11,MOVE2P_11
  686. CLR.W TYPE(A0)
  687. RTS
  688. MOVE2P_11:
  689. BSR MOVE_CUT
  690. BSR MOVE_BACK_SMALL
  691. BCS SET_MAP_0
  692. RTS
  693. MAP_0:
  694. JSR IDOU_SOUND(PC)
  695. PCHILD WORK_N0,P_EASY,C_MAP,20H,098H,0,0
  696. MOVE.B #0FH,BIG_Y(A0)
  697. BSET.B #ACTAT_ERACE,ACT_ATTR(A0)
  698. END_NEXT 1,MAP_1
  699. MAP_1:
  700. ; BSR MAP_CUT
  701. ;
  702. SUB_WORK WORK_N0,A0,0
  703. ADD.B #10H,BIG_Y(A0)
  704. CMP.B #0FFH,BIG_Y(A0)
  705. NEXT_CHECK BEQ,2,MAP_2
  706. BSR MAP_CALL
  707. PCHILD WORK_N1,P_EASY,C_MAP,0,0,1,0
  708. LEA.L MAP_CH(PC),A1
  709. MOVE.W STORY_STAGE(A5),D0
  710. MOVE.B 0(A1,D0.W),ACT_COUNT(A0)
  711. SEC_TIMER_SET 2,WORD_TIMER
  712. RTS
  713. MAP_2:
  714. BSR MAP_CUT
  715. BSR MAP_SOUND
  716. SEC_TIMER WORD_TIMER
  717. NEXT_CHECK BCS,3,MAP_3
  718. ;SET_MAP_3:
  719. COLOR_COMMAND
  720. PALETTE 0F0H,27H,PG_SET+FADE_OUT+CC_SPEED1
  721. PALETTE_END
  722. RTS
  723. MAP_3:
  724. BSR MAP_SOUND
  725. PAL_WAIT 0FFH
  726. SOUND #S_E_DI
  727. SOUND #S_WAIT2
  728. SOUND #S_E_EI
  729. JSR.S PWORK_INIT
  730. MOVE_NON:
  731. MOVE.B #01110000B,D0
  732. AND.B PHASE+1(A5),D0
  733. OR.B #10000000B,D0 in game
  734. MOVE.B D0,PHASE+1(A5)
  735. MOVE.W #0,SUB_STEP(A5)
  736. RTS
  737. ;
  738. ; 移動デモのBGMをならす
  739. ;
  740. IDOU_SOUND:
  741. MOVE.W #S_IDOU,D0
  742. CMP.W #0BH,STORY_STAGE(A5) ; 最終面の手前なら
  743. BNE.S IDOU_SOUND_1
  744. MOVE.W #S_IDOU_END,D0 ; S_IDOU_END
  745. IDOU_SOUND_1:
  746. JSR.S SET_BGM
  747. RTS
  748. MAP_SOUND:
  749. MOVE.W MAIN_COUNT+2(A5),D0
  750. AND.W #1FH,D0
  751. BNE.S MAP_SOUND_1
  752. SOUND #S_MAP
  753. MAP_SOUND_1:
  754. RTS
  755. MAP_CALL:
  756. MOVE.W STORY_STAGE(A5),D0
  757. ADD.W D0,D0
  758. MOVE.W MAP_CALL_D(PC,D0.W),D0
  759. JSR.S SET_SOUND
  760. RTS
  761. MAP_CALL_D:
  762. DC.W S_SEAN_1 0
  763. DC.W S_SEAN_1 1
  764. DC.W S_SEAN_2 2
  765. DC.W S_WAIT1 3
  766. DC.W S_SEAN_3 B
  767. DC.W S_SEAN_4 4
  768. DC.W S_WAIT1 5
  769. DC.W S_SEAN_5 B
  770. DC.W S_SEAN_6 6
  771. DC.W S_WAIT1 7
  772. DC.W S_SEAN_7 B
  773. DC.W S_SEAN_8 8
  774. DC.W S_SEAN_8 8
  775. MAP_CUT:
  776. JSR.S ACTIVE_TRIGER
  777. AND.B #11110000B,D2
  778. BEQ.S MAP_CUT_1
  779. ADDQ.L #4,SP
  780. JMP SET_MAP_3
  781. MAP_CUT_1:
  782. RTS
  783. MAP_CH:
  784. DC.B 0,0,2,16
  785. DC.B 4,6,16
  786. DC.B 8,10,16
  787. DC.B 12,14,16,0
  788. EVEN
  789. MOVE_FACE:
  790. MOVE.W STORY_STAGE(A5),D0
  791. ADD.W D0,D0
  792. ADD.W D0,D1
  793. MOVE.B FACE_DATA(PC,D0.W),ACT_COUNT(A0)
  794. BSET.B #ACTAT_ERACE,ACT_ATTR(A0)
  795. RTS
  796. FACE_DATA:
  797. DC.B -1,-1 0
  798. DC.B -1,-1 1
  799. DC.B -1,-1 2
  800. DC.B 00,-1 3
  801. DC.B 00,00 B
  802. DC.B 00,00 4
  803. DC.B -1,-1 5
  804. DC.B 00,-1 B
  805. DC.B 00,-1 6
  806. DC.B 00,00 7
  807. DC.B -1,-1 B
  808. DC.B -1,-1 8
  809. DC.B -1,-1 9
  810. PAKU_CLOSE:
  811. SUB_WORK WORK_N3,A0,0
  812. TST.W TYPE(A0)
  813. BEQ.S PAKU_CLOSE_1
  814. SUB.W #4,X_POSITION(A0)
  815. SUB.W #2,Y_POSITION(A0)
  816. SUB.B #10H,BIG_X(A0)
  817. SUB.B #10H,BIG_Y(A0)
  818. CMP.B #0FH,BIG_X(A0)
  819. BNE.S PAKU_CLOSE_1
  820. CLR.W TYPE(A0)
  821. PAKU_CLOSE_1:
  822. RTS
  823. MOVE_CUT:
  824. JSR.S ACTIVE_TRIGER
  825. AND.B #11110000B,D2
  826. BEQ.S MOVE_BACK_MOVE
  827. ADDQ.L #4,SP
  828. SOUND #S_E_DI
  829. SOUND #S_WAIT2
  830. SOUND #S_WAIT2
  831. SOUND #S_E_EI
  832. JMP SET_MAP_0(PC)
  833. MOVE_BACK_MOVE:
  834. SUB_WORK WORK_N0,A0,0
  835. SUB_WORK WORK_N1,A1,0
  836. ADD.W #5,X_POSITION(A0)
  837. ADD.W #13,X_POSITION(A1)
  838. RTS
  839. MOVE_BACK_BIG:
  840. ADD.B #10H,BIG_Y(A0)
  841. ADD.B #10H,BIG_Y(A1)
  842. CMP.B #0FFH,BIG_Y(A1)
  843. RTS
  844. MOVE_BACK_SMALL:
  845. SUB.B #10H,BIG_Y(A0)
  846. SUB.B #10H,BIG_Y(A1)
  847. RTS
  848. MOVE_BACK_SET:
  849. PCHILD WORK_N0,P_EASY,C_MOVE_BACK,0,128,0,0
  850. MOVE.B #0FH,BIG_Y(A0)
  851. BSET.B #ACTAT_ERACE,ACT_ATTR(A0)
  852. PCHILD WORK_N1,P_EASY,C_MOVE_BACK,0,128,1,0
  853. MOVE.B #0FH,BIG_Y(A0)
  854. BSET.B #ACTAT_ERACE,ACT_ATTR(A0)
  855. MOVE.B #0,ACT_COUNT(A0)
  856. RTS
  857. MOVE_MESS_GET:
  858. MOVE.W STORY_STAGE(A5),D0
  859. ADD.W D0,D0
  860. ADD.W D0,D0
  861. ADD.W D1,D0
  862. MOVE.B MOVE_MESS(PC,D0.W),D0
  863. RTS
  864. MOVE_MESS:
  865. DC.B 00*3,00*3 0
  866. DC.B 00*3,00*3
  867. DC.B 00*3,00*3 1
  868. DC.B 00*3,00*3
  869. DC.B 05*3,00*3 1-2
  870. DC.B 16*3,00*3
  871. DC.B 06*3,07*3 2-B1
  872. DC.B 17*3,18*3
  873. DC.B 00*3,00*3 B1-3
  874. DC.B 00*3,00*3
  875. DC.B 08*3,09*3 3-4
  876. DC.B 19*3,20*3
  877. DC.B 10*3,00*3 4-B2
  878. DC.B 21*3,00*3
  879. DC.B 00*3,00*3 B2-5
  880. DC.B 00*3,00*3
  881. DC.B 11*3,12*3 5-6
  882. DC.B 22*3,23*3
  883. DC.B 13*3,14*3 6-B3
  884. DC.B 24*3,25*3
  885. DC.B 00*3,00*3 B3-7
  886. DC.B 00*3,00*3
  887. DC.B 15*3,00*3 7-8
  888. DC.B 26*3,00*3
  889. DC.B 00*3,00*3 8-
  890. DC.B 00*3,00*3
  891. INCLUDE WORK.INC