Cd_intro.asm 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834
  1. include_macros equ 1
  2. include_deb_mac equ 1
  3. include_struc equ 1
  4. include_flags equ 1
  5. include_error_codes equ 1
  6. include include.asm
  7. include cdi_mac.asm
  8. ifdef selective_intro
  9. intro_start equ 80
  10. endif
  11. ifdef short_intro_start
  12. ;virgin_time_1 equ 3
  13. ;virgin_time_2 equ 3
  14. ;rev_time equ 8
  15. gibb_time equ 6
  16. else
  17. ;virgin_time_1 equ 3*50
  18. ;virgin_time_2 equ 3*50+8
  19. ;rev_time equ 8*50+8
  20. gibb_time equ 6*50+8
  21. endif
  22. start32data
  23. extrn temp_pal:dword
  24. extrn work_screen:dword
  25. cd2_seq_data_1 dd ?
  26. cd2_seq_data_2 dd ?
  27. cd_voices dd 0 ;space for voice data
  28. back_voc_space dd 0 ;space for background data
  29. end32data
  30. start32code
  31. extrn show_screen:near
  32. extrn fade_up_esi:near
  33. do_the_cd_intro proc
  34. ; While gibbo is up load in the first sequence stuff
  35. mov eax,65536 ;make up space for backgrounds
  36. call my_malloc
  37. mov [back_voc_space],eax
  38. load_voc 00
  39. load_to_cd cd_pal,[temp_pal]
  40. load_to_cd cd_1_log,[work_screen]
  41. load_seq 1
  42. load_background 59499 ;fire crackle
  43. mov eax,gibb_time ;keep gibbo up for 2 seconds
  44. call wait_relative
  45. jc key_pressed_ebx
  46. ; Fade in and start the first sequence seq 1
  47. cd_fade_down 0
  48. start_voc 0 ;old man was trying
  49. play_background
  50. load_voc 01
  51. wait_voc 0
  52. start_voc 1 ;evil oh i see evil
  53. play_background
  54. call show_screen
  55. mov esi,[temp_pal]
  56. cd_fade_up 1
  57. start_sequence 1 ;start off sequence 1
  58. load_voc 02
  59. wait_voc 1
  60. start_voc 2 ;Evil born beneath the city
  61. play_background
  62. load_seq 2 ;load sequence 2 while 1 running
  63. load_voc 03
  64. ;wait_sequence cd_1
  65. wait_voc 2
  66. start_sequence 2
  67. start_voc 3 ;I see it growing
  68. play_background
  69. load_voc 04
  70. wait_voc 3
  71. start_voc 4 ;Scheming in the dark
  72. play_background
  73. load_seq 3 ;load sequence 3 while 2 running
  74. load_voc 05
  75. wait_sequence cd_2
  76. wait_voc 4
  77. start_voc 5 ;And now the evil spreads
  78. play_background
  79. mov [relative_50hz_count],0 ;Start sequence in middle of voc
  80. mov eax,100
  81. call wait_relative
  82. start_sequence 3
  83. load_voc 06
  84. wait_voc 5
  85. start_voc 6 ;It sends deadly feelers
  86. play_background
  87. load_seq 5 ;load sequence 5 while 3 running
  88. load_voc 07
  89. wait_sequence cd_3
  90. wait_voc 6
  91. start_voc 7 ;Accross the gap
  92. start_sequence 5
  93. play_background
  94. load_voc 08
  95. wait_voc 7
  96. start_voc 8 ;I'd seen him do this a hundred times
  97. play_background
  98. load_voc 09
  99. wait_voc 8
  100. start_voc 9 ;After all, he'd been a father
  101. play_background
  102. load_seq 7 ;load sequence 7 while 5 running
  103. load_voc 10
  104. wait_sequence cd_5
  105. wait_voc 9
  106. start_voc 10 ;And what does this evil want here
  107. start_sequence 7
  108. play_background
  109. load_to_cd cd_11_pal,[temp_pal]
  110. load_to_cd cd_11_log,[work_screen]
  111. load_seq 11 ;load sequence 11 while 10 running
  112. load_voc 11
  113. wait_voc 10
  114. start_voc 11 ;Oh my son I fear
  115. play_background
  116. cd_fade_down 11
  117. call show_screen
  118. mov esi,[temp_pal]
  119. cd_fade_up 11
  120. load_voc 12
  121. wait_sequence cd_7
  122. wait_voc 11
  123. start_voc 12 ;Oh my son I fear
  124. play_background
  125. mov [relative_50hz_count],0 ;Start sequence in middle of voc
  126. mov eax,80
  127. call wait_relative
  128. start_sequence 11
  129. load_voc 13
  130. wait_voc 12
  131. start_voc 13 ;That was when joey piped up
  132. play_background
  133. load_seq 13 ;load sequence 13 while 11 running
  134. load_voc 14
  135. load_background 59498 ;fire crackle to heli start
  136. wait_sequence cd_11
  137. wait_voc 13
  138. start_voc 14 ;Foster sensors detect
  139. start_sequence 13
  140. play_background
  141. load_voc 15
  142. load_to_cd cd_15_pal,[temp_pal]
  143. load_to_cd cd_15_log,[work_screen]
  144. wait_sequence cd_13
  145. wait_voc 14
  146. start_voc 15 ;the evil is nearly here
  147. play_background
  148. cd_fade_down 15
  149. call show_screen
  150. mov esi,[temp_pal]
  151. cd_fade_up 15
  152. load_voc 16
  153. wait_voc 15
  154. start_voc 16 ;It sounded more like a copter
  155. play_background
  156. load_to_cd cd_17_log,[work_screen]
  157. load_seq 17 ;load sequence 17 while 15 running
  158. load_voc 17
  159. wait_voc 16
  160. start_voc 17 ;Next thing all hell let loose
  161. mov [relative_50hz_count],0 ;Start sequence in middle of voc
  162. mov eax,40
  163. call wait_relative
  164. call show_screen
  165. load_voc 18
  166. load_background 59497 ;Loud heli
  167. wait_voc 17
  168. start_sequence 17
  169. start_voc 18 ;Run foster run
  170. play_background
  171. ; load_seq 19 ;load sequence 19 while 18 running
  172. load_voc 19
  173. load_to_cd cd_19_pal,[temp_pal]
  174. load_to_cd cd_19_log,[work_screen]
  175. play_background
  176. load_background 59496 ;loud heli to quiet
  177. wait_sequence cd_17
  178. wait_voc 18
  179. cd_fade_down 17
  180. call show_screen
  181. mov esi,[temp_pal]
  182. cd_fade_up 19
  183. start_voc 19 ;Foster zzzt help
  184. play_background
  185. load_voc 20
  186. load_to_cd cd_20_log,[work_screen]
  187. load_background 59495 ;quiet heli
  188. wait_voc 19
  189. ; start_sequence 19
  190. start_voc 20 ;make my body move faster next time
  191. play_background
  192. cd_fade_down 19
  193. call show_screen
  194. mov esi,[temp_pal]
  195. cd_fade_up 20
  196. ; load_seq 20 ;load sequence 20 while 19 running
  197. load_voc 21
  198. load_to_cd cd_21_log,[work_screen]
  199. play_background
  200. wait_sequence cd_19
  201. wait_voc 20
  202. ; start_sequence 20
  203. start_voc 21 ;He was only a robot but I loved the guy
  204. play_background
  205. cd_fade_down 20
  206. call show_screen
  207. mov esi,[temp_pal]
  208. cd_fade_up 21
  209. ; load_seq 22 ;load sequence 22 while 20 running
  210. load_voc 22
  211. load_background 59494 ;heli whine
  212. wait_sequence cd_20
  213. wait_voc 21
  214. ; start_sequence 22
  215. start_voc 22 ;Then as suddenly
  216. play_background
  217. load_voc 23
  218. ; wait_sequence cd_22
  219. wait_voc 22
  220. start_voc 23 ;moments silence
  221. cd_fade_down 23 ;fudd to black
  222. load_to_cd cd_23_pal,[temp_pal]
  223. ; load_to_cd cd_23_log,[work_screen]
  224. ; load_seq 23
  225. load_to_cd cd_24_log,[work_screen]
  226. load_voc 24
  227. wait_voc 23
  228. call show_screen
  229. mov esi,[temp_pal]
  230. cd_fade_up 23
  231. ; start_sequence 23
  232. ; wait_sequence cd_23
  233. start_voc 24 ;whoever is in charge
  234. call show_screen
  235. load_voc 25
  236. wait_voc 24
  237. start_voc 25 ;Now
  238. load_voc 26
  239. wait_voc 25
  240. start_voc 26
  241. load_seq 27
  242. load_voc 27
  243. load_to_cd cd_27_pal,[temp_pal]
  244. load_to_cd cd_27_log,[work_screen]
  245. wait_voc 26
  246. cd_fade_down 26
  247. call show_screen
  248. mov esi,[temp_pal]
  249. cd_fade_up 27
  250. start_voc 27
  251. ;load_voc 28
  252. ;wait_voc 27
  253. ;start_voc 28
  254. ;load_voc 29
  255. ;wait_voc 28
  256. load_voc 29
  257. wait_voc 27
  258. start_voc 29
  259. load_voc 30
  260. wait_voc 29
  261. start_voc 30
  262. load_voc 31
  263. wait_voc 30
  264. start_sequence 27
  265. start_voc 31
  266. load_voc 32
  267. wait_voc 31
  268. start_voc 32
  269. load_voc 33
  270. wait_voc 32
  271. start_voc 33
  272. load_voc 34
  273. wait_voc 33
  274. start_voc 34
  275. load_voc 35
  276. wait_sequence 27
  277. wait_voc 34
  278. start_voc 35
  279. load_seq 35
  280. load_voc 36
  281. load_to_cd cd_35_pal,[temp_pal]
  282. load_to_cd cd_35_log,[work_screen]
  283. wait_voc 35
  284. start_voc 36
  285. cd_fade_down 34
  286. call show_screen
  287. mov esi,[temp_pal]
  288. cd_fade_up 35
  289. load_voc 37
  290. wait_voc 36
  291. start_sequence 35
  292. start_voc 37
  293. load_seq 37
  294. load_voc 38
  295. wait_sequence 35
  296. wait_voc 37
  297. start_voc 38
  298. start_sequence 37
  299. load_voc 39
  300. wait_sequence 37
  301. wait_voc 38
  302. start_voc 39
  303. load_voc 40
  304. load_to_cd cd_40_pal,[temp_pal]
  305. load_to_cd cd_40_log,[work_screen]
  306. wait_voc 39
  307. cd_fade_down 39
  308. call show_screen
  309. mov esi,[temp_pal]
  310. cd_fade_up 40
  311. start_voc 40
  312. load_voc 41
  313. wait_voc 40
  314. start_voc 41
  315. load_voc 42
  316. wait_voc 41
  317. start_voc 42
  318. load_voc 43
  319. load_to_cd cd_43_pal,[temp_pal]
  320. load_to_cd cd_43_log,[work_screen]
  321. wait_voc 42
  322. cd_fade_down 42
  323. call show_screen
  324. mov esi,[temp_pal]
  325. cd_fade_up 43
  326. start_voc 43
  327. ;load_voc 44
  328. load_seq 43
  329. wait_voc 43
  330. ;start_voc 44
  331. start_sequence 43
  332. load_voc 45
  333. load_to_cd cd_45_pal,[temp_pal]
  334. load_to_cd cd_45_log,[work_screen]
  335. wait_sequence 43
  336. ;wait_voc 44
  337. start_voc 45
  338. cd_fade_down 44
  339. call show_screen
  340. mov esi,[temp_pal]
  341. cd_fade_up 45
  342. load_seq 45
  343. load_voc 46
  344. wait_voc 45
  345. start_sequence 45
  346. start_voc 46
  347. load_voc 47
  348. load_to_cd cd_47_pal,[temp_pal]
  349. load_to_cd cd_47_log,[work_screen]
  350. wait_sequence 45
  351. wait_voc 46
  352. cd_fade_down 46
  353. call show_screen
  354. mov esi,[temp_pal]
  355. cd_fade_up 47
  356. start_voc 47
  357. load_voc 48
  358. load_to_cd cd_48_pal,[temp_pal]
  359. load_to_cd cd_48_log,[work_screen]
  360. wait_voc 47
  361. start_voc 48
  362. cd_fade_down 47
  363. call show_screen
  364. mov esi,[temp_pal]
  365. cd_fade_up 48
  366. load_seq 48
  367. load_voc 49
  368. wait_voc 48
  369. start_sequence 48
  370. start_voc 49
  371. load_voc 50
  372. wait_voc 49
  373. start_voc 50
  374. load_seq 49
  375. load_voc 51
  376. wait_sequence 48
  377. wait_voc 50
  378. start_voc 51
  379. start_sequence 49
  380. load_voc 52
  381. wait_voc 51
  382. start_voc 52
  383. load_voc 53
  384. wait_voc 52
  385. start_voc 53
  386. load_voc 54
  387. load_seq 50
  388. wait_voc 53
  389. wait_sequence 49
  390. start_voc 54
  391. start_sequence 50
  392. load_voc 55
  393. wait_sequence 50
  394. wait_voc 54
  395. start_voc 55
  396. load_to_cd cd_55_pal,[temp_pal]
  397. load_to_cd cd_55_log,[work_screen]
  398. load_voc 56
  399. wait_voc 55
  400. start_voc 56
  401. cd_fade_down 55
  402. call show_screen
  403. mov esi,[temp_pal]
  404. cd_fade_up 55
  405. load_voc 57
  406. wait_voc 56
  407. start_voc 57
  408. load_voc 58
  409. load_to_cd cd_58_pal,[temp_pal]
  410. load_to_cd cd_58_log,[work_screen]
  411. wait_voc 57
  412. cd_fade_down 57
  413. call show_screen
  414. mov esi,[temp_pal]
  415. cd_fade_up 58
  416. start_voc 58
  417. load_voc 59
  418. wait_voc 58
  419. start_voc 59
  420. load_seq 58
  421. wait_voc 59
  422. load_voc 60
  423. start_voc 60
  424. load_voc 61
  425. wait_voc 60
  426. start_voc 61
  427. load_voc 62
  428. wait_voc 61
  429. start_voc 62
  430. start_sequence 58
  431. load_voc 63
  432. wait_voc 62
  433. start_voc 63
  434. load_voc 64
  435. wait_voc 63
  436. start_voc 64
  437. load_voc 65
  438. wait_sequence 58
  439. wait_voc 64
  440. start_voc 65
  441. cd_fade_down 65
  442. load_voc 66
  443. load_to_cd cd_66_pal,[temp_pal]
  444. load_to_cd cd_66_log,[work_screen]
  445. wait_voc 65
  446. call show_screen
  447. mov esi,[temp_pal]
  448. cd_fade_up 66
  449. start_voc 66
  450. load_voc 67
  451. wait_voc 66
  452. start_voc 67
  453. load_to_cd cd_67_pal,[temp_pal]
  454. load_to_cd cd_67_log,[work_screen]
  455. cd_fade_down 66
  456. call show_screen
  457. mov esi,[temp_pal]
  458. cd_fade_up 67
  459. load_voc 68
  460. wait_voc 67
  461. start_voc 68
  462. load_seq 69
  463. load_voc 69
  464. load_to_cd cd_69_pal,[temp_pal]
  465. load_to_cd cd_69_log,[work_screen]
  466. wait_voc 68
  467. start_voc 69
  468. cd_fade_down 68
  469. call show_screen
  470. mov esi,[temp_pal]
  471. cd_fade_up 69
  472. load_voc 70
  473. wait_voc 69
  474. start_sequence 69
  475. start_voc 70
  476. load_voc 71
  477. wait_voc 70
  478. cd_fade_down 71
  479. start_voc 71
  480. load_to_cd cd_72_pal,[temp_pal]
  481. load_to_cd cd_72_log,[work_screen]
  482. wait_voc 71
  483. call show_screen
  484. mov esi,[temp_pal]
  485. call set_palette
  486. load_voc 72
  487. start_voc 72
  488. load_to_cd cd_73_pal,[temp_pal]
  489. load_to_cd cd_73_log,[work_screen]
  490. load_voc 73
  491. wait_voc 72
  492. cd_fade_down 72
  493. call show_screen
  494. mov esi,[temp_pal]
  495. cd_fade_up 73
  496. start_voc 73
  497. load_voc 74
  498. wait_voc 73
  499. start_voc 74
  500. load_voc 75
  501. wait_voc 74
  502. start_voc 75
  503. load_to_cd cd_76_pal,[temp_pal]
  504. load_to_cd cd_76_log,[work_screen]
  505. cd_fade_down 75
  506. call show_screen
  507. mov esi,[temp_pal]
  508. cd_fade_up 76
  509. printf "==============================================================="
  510. load_voc 76
  511. wait_voc 75
  512. start_voc 76
  513. load_voc 77
  514. wait_voc 76
  515. start_voc 77
  516. load_seq 100
  517. load_to_cd cd_78_pal,[temp_pal]
  518. load_to_cd cd_78_log,[work_screen]
  519. load_voc 78
  520. wait_voc 77
  521. cd_fade_down 77
  522. call show_screen
  523. mov esi,[temp_pal]
  524. cd_fade_up 77
  525. start_voc 78
  526. load_voc 79
  527. wait_voc 78
  528. start_voc 79
  529. load_voc 80
  530. wait_voc 79
  531. start_voc 80
  532. start_sequence 100
  533. load_voc 81
  534. wait_voc 80
  535. start_voc 81
  536. load_voc 82
  537. wait_voc 81
  538. start_voc 82
  539. load_voc 83
  540. wait_voc 82
  541. load_to_cd cd_101_log,[work_screen]
  542. load_seq 101
  543. wait_sequence 100
  544. call show_screen
  545. start_sequence 101
  546. start_voc 83
  547. load_voc 84
  548. wait_voc 83
  549. start_voc 84
  550. load_voc 85
  551. wait_voc 84
  552. start_voc 85
  553. load_voc 86
  554. wait_voc 85
  555. load_to_cd cd_102_log,[work_screen]
  556. load_seq 102
  557. wait_sequence 101
  558. call show_screen
  559. start_sequence 102
  560. start_voc 86
  561. load_voc 87
  562. load_to_cd cd_103_pal,[temp_pal]
  563. load_to_cd cd_103_log,[work_screen]
  564. load_seq 103
  565. wait_sequence 102
  566. cd_fade_down 102
  567. call show_screen
  568. mov esi,[temp_pal]
  569. cd_fade_up 103
  570. start_sequence 103
  571. wait_voc 86
  572. start_voc 87
  573. load_to_cd cd_104_pal,[temp_pal]
  574. load_to_cd cd_104_log,[work_screen]
  575. load_seq 104
  576. wait_sequence 103
  577. mov eax,2
  578. call fn_start_music
  579. cd_fade_down 103
  580. call show_screen
  581. mov esi,[temp_pal]
  582. cd_fade_up 104
  583. start_sequence 104
  584. load_seq 105
  585. wait_sequence 104
  586. start_sequence 105
  587. wait_sequence 105
  588. ;--------------------------------------------------------------------------------------------------
  589. clear ebx ;no key was pressed
  590. key_pressed_ebx: ret
  591. key_pressed_eax: mov ebx,eax
  592. ret
  593. do_the_cd_intro endp
  594. end32code
  595. end
  596.