-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathRBOSS2.ASM
2287 lines (1912 loc) · 45.4 KB
/
RBOSS2.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
**************************************************************
*
* Orcus software: Eugene Jarvis, Shawn Liptak
* Initiated: 7/12/91 from RBOSS SMASH TV
*
* Modified: Shawn Liptak, 9/25/91 -Started big fix
* Shawn Liptak, 11/7/91 -Done??
*
**************************************************************
*
* AFDM software: Shawn Liptak
* Initiated: 11/17/91
*
* Modified: !
*
**************************************************************
*
* COPYRIGHT (C) 1991 WILLIAMS ELECTRONICS GAMES, INC.
*
*.Last mod - 11/23/91 17:38
**************************************************************
; .include "mproc.equ"
; .include "disp.equ"
; .include "\video\sys\sys.inc"
; .include "\video\sys\gsp.inc"
; .include "game.equ"
; .include "imgtbl.glo"
; .include "audit.equ"
; .include "shawn.hdr" ;My macros
; .include "orcus.tbl"
; .include "akhbship.tbl"
;
;
; .ref puffsnd
; .ref abossaballnum
; .ref BCURRENT
; .ref missilev_t
; .ref FRANIMQ
; .ref boss_scorehit
; .ref msllnchsnd
; .ref HALT
; .ref anim_script
; .ref seekob_dir32la
; .ref rocket_fireab
; .ref TARGET
; .ref abossseektop_dir32
; .ref boss_addrndxy
; .ref OUT_FLG
; .ref bossram
; .ref FLASHME
; .ref mslnofuel_l
; .ref missile_fireab
; .ref getplyr
; .ref ahkbang
; .ref getcloseplyr
; .ref PCNT
; .ref rndrng0
; .ref musicsnd
; .ref rcktlnchsnd
; .ref COLCYC
; .ref mslexpsnd
; .ref BOOM3
; .ref cycmem
; .ref bodystat
; .ref ahkb1
; .ref ahkb2
; .ref FADEIN
; .ref ahkb3
; .ref HZSPD
; .ref vel_set
; .ref abossseeko_dir32
; .ref aboss_smoketrail
; .ref WAVE
; .ref rnd
; .ref bloflg
; .ref ONESNDOVR
; .ref mk_objfranim
; .ref ahkbsta
; .ref abossshld
; .ref XBOOM2
; .ref TTORSO
; .ref doorsldsnd
; .ref bossramend
; .ref exp1snd
; .ref boss_addxy
; .ref PLYRPRCS
; .ref exp2snd
; .ref rocketv_t
; .ref CURRENT
; .ref bossd_t
**************************************************************
*
* Orcus software: Eugene Jarvis, Shawn Liptak
* Initiated: 7/12/91 from RBOSS SMASH TV
*
* Modified: Shawn Liptak, 9/25/91 -Started big fix
* Shawn Liptak, 11/7/91 -Done??
*
**************************************************************
*
* AFDM software: Shawn Liptak
* Initiated: 11/17/91
*
* Modified: !
*
**************************************************************
*
* COPYRIGHT (C) 1991 WILLIAMS ELECTRONICS GAMES, INC.
*
*.Last mod - 11/23/91 17:38
**************************************************************
;Sound headers
.ref LOVEIT
musicsnd .word >f3fe,10,>8009,0 ;Boss music
landsnd .word >fc88,30,>8030,0 ;Land from a jump
laughsnd .word >f194,30,>80f2,0 ;When plyr dies
exp1snd .word >fc80,7,>803e,0 ;Explosion
exp2snd .word >fd80,10,>80d9,0 ;^
;pain1snd .word >f985,20,>80f6,0 ;
;pain2snd .word >f985,20,>80f9,0 ;
groansnd .word >f985,20,>8113,0 ;Groan
groanlndsnd .word >f185,20,>8113,0 ;^ interruptable
oofsnd .word >f985,20,>8114,0 ;Oof
yowl1snd .word >f985,30,>8115,0 ;
yowl2snd .word >f985,30,>8116,0 ;
roarsnd .word >f990,40,>8117,0 ;Roar
roarlongsnd .word >f990,120,>8117,0 ;Roar
houchsnd .word >f985,20,>8120,0 ;
hyowlsnd .word >f985,20,>8122,0 ;
stvpainsnd .word >f985,30,>8123,0 ;
bubl1snd .word >f5e5,20,>8131,0 ;Blood bubbling
bubl2snd .word >f0e5,20,>8130,0 ;^
myeyesnd .word >f9e0,110,>8118,0 ;
myarmsnd .word >f9e0,120,>8119,0 ;
myheadsnd .word >f9e0,70,>8121,0 ;
msllnchsnd .word >f290,10,>80b6,0 ;Missile launch
mslexpsnd .word >f470,10,>8048,0 ;Missile explosion
* Aboss
ahkb1 .word >f9a0,60,>80eb,0 ;Akhboob speech
ahkb2 .word >f9a0,60,>80ec,0 ;^
ahkb3 .word >f9a0,60,>80ed,0 ;^
ahkbsta .word >f9a0,60,>80ee,0 ;^ start angry
ahkbang .word >f9a0,60,>80ef,0 ;^ angry
doorsldsnd .word >f480,2,>804c,0 ;Door slides
rcktlnchsnd .word >f290,10,>812c,0 ;Rocket launch
puffsnd .word >f280,10,>8085,0 ;Attack balls puffing
********************************
* Animation scripts
*ANIMATION NUMBERS
MOUTHCL .set 1 ;MOUTH CLOSED
MOUTHOP1 .set 2 ;MOUTH OPENING
MOUTHOP2 .set 3
MOUTHOP3 .set 4
EYEBLD .set 5
EYECNT .set 6 ;EYES CENTER
EYECL1 .set 7 ;EYES CLOSING
EYECL2 .set 8
EYEBUG .set 9 ;BUG EYES
EYERT1 .set 10 ;EYES RIGHT
EYERT2 .set 11
EYELFT1 .set 12 ;EYES LEFT
EYELFT2 .set 13
SIDE .set 14
SHOULDER .set 15
ARMDN .set 16 ;ARM DOWN
ARMDN1 .set 17 ;ARM DOWN RECOIL
ARMDN2 .set 18
ARML1 .set 19 ;ARM ROTATING TO LEFT
ARML2 .set 20
ARML3 .set 21
ARML4 .set 22
ARMR1 .set 23 ;ARM ROTATING TO RIGHT
HDST .set 24 ;LITTLE HEAD STRAIGHT
HDFROWN .set 25
HDROAR .set 26
HDOOOH .set 27
HDGRIN .set 28
HDL1NT .set 29 ;LIL HEAD SLIGHT LEFT W/TEETH
HDL1T .set 30
HDL2NT .set 31
HDL2T .set 32
HDL3 .set 33
HDL4 .set 34
HDL5 .set 35
NUSHD .set 36
;free .set 37
NULLOBJ .set 38
TNG1 .set 39
TNG2 .set 40
TNG3 .set 41
TNG4 .set 42
TNG5 .set 43
TNGL .set 44
TNGR .set 45
NULLOBJ1 .set 46
ARMDNPT .set 47
ARML1PT .set 48
ARML2PT .set 49
ARML3PT .set 50
ARML4PT .set 51
ARMR1PT .set 52
THRUST1 .set 53
THRUST2 .set 54
HDRIPL .set 55
TOPRIPL .set 56
THRUSTNULL .set 57
BASERIPA .set 58
LSTANI .set 58
MOUTHL .set 1 ;Part numbers
MOUTHR .set 2
SIDEL .set 3
SIDER .set 4
EYEL .set 5
EYER .set 6
SHLDRL .set 7
SHLDRR .set 8
LILHD .set 9 ;LIL HEAD
ARML .set 10
ARMR .set 11
LILHDF .set 14 ;FLIPPED LIL HEAD
TONGUE .set 15
THRUSTL .set 16
THRUSTR .set 17
*ANIANITB
*SEQ(32),TIME(16)
hddam_t .long frowner,frowner,frowner,frowner
.long grimmr,grimmr,grimmr,grimmr
.long oooher,oooher,oooher,oooher
.long oooher,oooher,oooher,oooher
grinner LW HDGRINA,15
LW HDGRINA,15
LWL0 HDGRINA,15
frowner LW HDFRWNA,10
LW HDFRWNA,10
LWL0 HDFRWNA,10
oooher LW HDOOOHA,30
LWL0 HDOOOHA,20
grimmr LW HDGRIM,1
LW HDGRIM,1
LW HDGRIM,1
LWL0 HDGRIM,1
eyequad_t ;Eyeball table
.long EYESCNT,EYESCNT,EYESCNT,EYESRT1
.long EYESRT1,EYESRT1,EYESRT2,EYESRT2
.long EYESRT2,EYESRT2,EYESRT2,EYESRT1
.long EYESRT1,EYESRT1,EYESCNT,EYESCNT
.long EYESCNT,EYESCNT,EYESCNT,EYESLFT1
.long EYESLFT1,EYESLFT1,EYESLFT2,EYESLFT2
.long EYESLFT2,EYESLFT2,EYESLFT2,EYESLFT1
.long EYESLFT1,EYESLFT1,EYESCNT,EYESCNT
hdquad_t ;Lil head table
.long HEAD225,HEAD225,HEAD225,HEAD225
.long HEAD225,HEAD270,HEAD270,HEAD270
.long HEAD270,HEAD270,HEAD300,HEAD300
.long HEAD330,HEAD330,HEAD330,HEAD0
.long HEAD0,HEAD0,HEAD30,HEAD30
.long HEAD30,HEAD60,HEAD60,HEAD90
.long HEAD90,HEAD90,HEAD90,HEAD90
.long HEAD135,HEAD135,HEAD135,HEAD135
eyedam_t
.long bugger,bugger,bugger,bugger
.long bugger,bugger,bugger,bugger
.long blinker,blinker,blinker,blinker
.long blinker,blinker,blinker,blinker
bugger LW EYESBLNK,1
LW EYESBUG,15
LW EYESBLNK,1
LWL0 EYESBUG,15
blinker LW EYESBLNK,2
LW EYESBLNK,2
LW EYESBLNK,2
LW EYESBLNK,2
LW EYESBLNK,2
LWL0 EYESBLNK,2
mouthrnd_t
LW TNGSTIKA,7
LW bite_seq,10
LW CHOMP3,2
LW CHOMP2,3
LW TNGSTIKA,7
LW bite_seq,10
LW CHOMP3,5
LW CHOMP2,1
LW TNGSTIKA,7
LW bite_seq,10
LW CHOMP3,5
LW CHOMP2,3
LW TNGSTIKA,7
LW bite_seq,10
LW TNGSTIKA,7
LW bite_seq,10
*ANIMATION TABLE
*PART #, ANI FRAME
*-=End of frame
*Thrust sequences
thrusthi_seq .byte THRUSTL,THRUST2,THRUSTR,-THRUST2
thrustlo_seq .byte THRUSTL,THRUST1,THRUSTR,-THRUST1
thrustnull_seq .byte THRUSTL,THRUSTNULL,THRUSTR,-THRUSTNULL
*OPEN MOUTH
bite_seq
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP3,MOUTHR,-MOUTHOP3
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
BITECL .byte MOUTHL,MOUTHCL,MOUTHR,-MOUTHCL
.word 0
CHOMP3 .byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP3,MOUTHR,-MOUTHOP3
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHCL,MOUTHR,-MOUTHCL
CHOMP2 .byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP3,MOUTHR,-MOUTHOP3
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHCL,MOUTHR,-MOUTHCL
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP3,MOUTHR,-MOUTHOP3
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHCL,MOUTHR,-MOUTHCL
.word 0
*EYE ANIMATIONS
EYESBLNK
.byte EYEL,EYECL1,EYER,-EYECL1 ;EYES HALF CLOSED
.byte EYEL,EYECL2,EYER,-EYECL2 ;EYES CLOSED
.byte EYEL,EYECL2,EYER,-EYECL2 ;EYES CLOSED
.byte EYEL,EYECL1,EYER,-EYECL1 ;EYES HALF CLOSED
.byte EYEL,EYECNT,EYER,-EYECNT ;EYES CENTERED
.word 0
EYESCNT .byte EYEL,EYECNT,EYER,-EYECNT ;EYES CENTERED
EYESLFT1
.byte EYEL,EYELFT1,EYER,-EYERT1 ;EYES LEFT
EYESLFT2
.byte EYEL,EYELFT2,EYER,-EYERT2 ;EYES LEFT EXTREME
.byte EYEL,EYELFT1,EYER,-EYERT1 ;EYES LEFT
.byte EYEL,EYECNT,EYER,-EYECNT ;EYES CENTERED
EYESRT1 .byte EYEL,EYERT1,EYER,-EYELFT1 ;EYES RIGHT
EYESRT2 .byte EYEL,EYERT2,EYER,-EYELFT2 ;EYES RIGHT EXTREME
.byte EYEL,EYERT1,EYER,-EYELFT1 ;EYES RIGHT
.byte EYEL,EYECNT,EYER,-EYECNT ;EYES CENTERED
.word 0
EYESLT3 .byte EYEL,EYELFT1,EYER,-EYERT1 ;EYES LEFT
.byte EYEL,EYELFT2,EYER,-EYERT2 ;EYES LEFT EXTREME
.byte EYEL,EYELFT1,EYER,-EYERT1 ;EYES LEFT
.byte EYEL,EYECNT,EYER,-EYECNT ;EYES CENTERED
.word 0
*BUGEYES
EYESBUG .byte EYEL,EYEBUG,EYER,-EYEBUG ;EYES BUGGED
.byte EYEL,EYECNT,EYER,-EYECNT ;EYES CENTERED
.word 0
hdblo_seq ;Little head blown
.byte LILHD,HDRIPL,LILHDF,-NULLOBJ
shldrblo_seq ;Shoulders blown
.byte LILHD,NULLOBJ,LILHDF,NULLOBJ
.byte SHLDRL,TOPRIPL,SHLDRR,-TOPRIPL
bodyblo_seq
.byte ARML,NULLOBJ,ARMR,NULLOBJ
.byte EYEL,NULLOBJ,EYER,NULLOBJ
.byte SIDEL,NULLOBJ,SIDER,NULLOBJ
.byte TONGUE,NULLOBJ
.byte THRUSTL,THRUSTNULL,THRUSTR,THRUSTNULL
.byte SHLDRL,NULLOBJ,SHLDRR,NULLOBJ
.byte MOUTHL,BASERIPA,MOUTHR,-BASERIPA
*LITTLE HEAD ROTATE
HEAD30 .byte LILHD,HDL1NT,LILHDF,-NULLOBJ
HEAD60 .byte LILHD,HDL2NT,LILHDF,-NULLOBJ
HEAD90 .byte LILHD,HDL3,LILHDF,-NULLOBJ
HEAD135 .byte LILHD,HDL4,LILHDF,-NULLOBJ
HEAD225 .byte LILHD,NULLOBJ,LILHDF,-HDL4
HEAD270 .byte LILHD,NULLOBJ,LILHDF,-HDL3
HEAD300 .byte LILHD,NULLOBJ,LILHDF,-HDL2NT
HEAD330 .byte LILHD,NULLOBJ,LILHDF,-HDL1NT
HEAD0 .byte LILHD,HDST,LILHDF,-NULLOBJ
.word 0
HDGRIM .byte LILHD,HDL1T,LILHDF,-NULLOBJ
.byte LILHD,HDL2T,LILHDF,-NULLOBJ
.byte LILHD,HDL3,LILHDF,-NULLOBJ
.byte LILHD,HDL2T,LILHDF,-NULLOBJ
.byte LILHD,HDL1T,LILHDF,-NULLOBJ
.byte LILHD,HDST,LILHDF,-NULLOBJ
.byte LILHD,NULLOBJ,LILHDF,-HDL1T
.byte LILHD,NULLOBJ,LILHDF,-HDL2T
.byte LILHD,NULLOBJ,LILHDF,-HDL3
.byte LILHD,NULLOBJ,LILHDF,-HDL2T
.byte LILHD,NULLOBJ,LILHDF,-HDL1T
.byte LILHD,HDST,LILHDF,-NULLOBJ
.word 0
*HEAD GRIN
HDGRINA .byte LILHD,HDGRIN,LILHDF,-NULLOBJ
.byte LILHD,HDST,LILHDF,-NULLOBJ
.word 0
*HEAD OOOH
HDOOOHA .byte LILHD,HDOOOH,LILHDF,-NULLOBJ
.byte LILHD,HDST,LILHDF,-NULLOBJ
.word 0
*HEAD FROWN
HDFRWNA .byte LILHD,HDFROWN,LILHDF,-NULLOBJ
.byte LILHD,HDST,LILHDF,-NULLOBJ
.word 0
*LEFT ARM FIRE POS. 1
LARMF1
.byte ARML,-ARMDN1
.byte ARML,-ARMDN
.word 0
*LEFT ARM FIRE POS. 2
LARMF2
.byte ARML,-ARML1PT
.byte ARML,-ARML1
.word 0
*LEFT ARM FIRE POS. 3
LARMF3
.byte ARML,-ARML2PT
.byte ARML,-ARML2
.word 0
*LEFT ARM FIRE POS. 4
LARMF4
.byte ARML,-ARML3PT
.byte ARML,-ARML3
.word 0
*LEFT ARM FIRE POS. 5
LARMF5
.byte ARML,-ARML4PT
.byte ARML,-ARML4
.word 0
*LEFT ARM FIRE POS. 6
LARMF6
.byte ARML,-ARMR1PT
.byte ARML,-ARMR1
.word 0
*RT ARM FIRE POS. 1
RARMF1
.byte ARMR,-ARMDN1
.byte ARMR,-ARMDN
.word 0
*RT ARM FIRE POS. 2
RARMF2
.byte ARMR,-ARML1PT
.byte ARMR,-ARML1
.word 0
*RT ARM FIRE POS. 3
RARMF3
.byte ARMR,-ARML2PT
.byte ARMR,-ARML2
.word 0
*RT ARM FIRE POS. 4
RARMF4
.byte ARMR,-ARML3PT
.byte ARMR,-ARML3
.word 0
*RT ARM FIRE POS. 5
RARMF5
.byte ARMR,-ARML4PT
.byte ARMR,-ARML4
.word 0
*RT ARM FIRE POS. 6
RARMF6
.byte ARMR,-ARMR1PT
.byte ARMR,-ARMR1
.word 0
*ARM FIRE SEQUENCE
ARMFIRE
.byte ARML,ARMR1,ARMR,-ARMR1
.byte ARML,ARMR1PT,ARMR,-ARMR1PT
.byte ARML,ARMR1,ARMR,-ARMR1
.byte ARML,ARMDN,ARMR,-ARMDN
.byte ARML,ARMDNPT,ARMR,-ARMDNPT
.byte ARML,ARMDN,ARMR,-ARMDN
.byte ARML,ARML1,ARMR,-ARML1
.byte ARML,ARML1PT,ARMR,-ARML1PT
.byte ARML,ARML1,ARMR,-ARML1
.byte ARML,ARML2,ARMR,-ARML2
.byte ARML,ARML2PT,ARMR,-ARML2PT
.byte ARML,ARML2,ARMR,-ARML2
.byte ARML,ARML3,ARMR,-ARML3
.byte ARML,ARML3PT,ARMR,-ARML3PT
.byte ARML,ARML3,ARMR,-ARML3
.byte ARML,ARML4,ARMR,-ARML4
.byte ARML,ARML4PT,ARMR,-ARML4PT
.byte ARML,ARML4,ARMR,-ARML4
.byte ARML,ARML3,ARMR,-ARML3
.byte ARML,ARML2,ARMR,-ARML2
.byte ARML,ARML1,ARMR,-ARML1
.byte ARML,ARMDN,ARMR,-ARMDN
.word 0
*TONGUE STICK OUT
TNGSTIKA
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP3,MOUTHR,-MOUTHOP3
.byte TONGUE,-TNG1
.byte TONGUE,-TNG2
.byte TONGUE,-TNG3
.byte TONGUE,-TNG4
.byte TONGUE,-TNG5
.byte TONGUE,-TNGL
.byte TONGUE,-TNGR
.byte TONGUE,-TNGL
.byte TONGUE,-TNGR
.byte TONGUE,-TNG5
.byte TONGUE,-TNG4
.byte TONGUE,-TNG3
.byte TONGUE,-TNG2
.byte TONGUE,-TNG1
.byte TONGUE,-NULLOBJ1
.byte MOUTHL,MOUTHOP2,MOUTHR,-MOUTHOP2
.byte MOUTHL,MOUTHOP1,MOUTHR,-MOUTHOP1
.byte MOUTHL,MOUTHCL,MOUTHR,-MOUTHCL
.word 0
********************************
* Boss damage table
* 0-255
BDAMSIZE .equ 32*3
bossdam_t
.long OMTH1,OMTH1A,OMTH1B ;1 MOUTH CLOSED
.long OMTH2,OMTH2A,OMTH2B ;2 MOUTH SLIGHTLY OPEN
.long OMTH3,OMTH3A,OMTH3B ;3 MOUTH MORE OPEN
.long OMTH4,OMTH4A,OMTH4B ;4 MOUTH MORE OPEN
.long OEYES1C,OEYES1C,OEYES1C ;5 BLOODY EYE
.long OEYES1,OEYES1A,OEYES1C ;6 EYE CENTERED
.long OEYES1A,OEYES1A,OEYES1C ;7 EYE HALF CLOSED
.long OEYES1B,OEYES1A,OEYES1C ;8 EYE CLOSED
.long OEYES2,OEYES1A,OEYES1C ;9 EYE BUGGED OPEN CENTERED
.long OEYES3,OEYES1A,OEYES1C ;10 EYE HALF RIGHT
.long OEYES4,OEYES1A,OEYES1C ;11 EYE RIGHT
.long OEYES3A,OEYES1A,OEYES1C ;12 EYE HALF LEFT
.long OEYES4A,OEYES1A,OEYES1C ;13 EYE LEFT
.long SIDEPC,SIDEPC,SIDEPC ;14 SIDE OF CHEEK
.long SHLDR,SHLDR,SHLDR ;15 SHOULDER STRAP
.long OARM1,ARMRIP,NULO ;16 ARM DOWN
.long OARM1A,ARMRIP,NULO ;17 ARM DOWN PARTIAL RECOIL
.long OARM1B,ARMRIP,NULO ;18 ARM DOWN FULL RECOIL
.long OARM2,ARMRIP,NULO ;19 ARM SLIGHT ANGLE LEFT
.long OARM3,ARMRIP,NULO ;20 ARM MORE ANGLE LEFT
.long OARM4,ARMRIP,NULO ;21 ARM EVEN MORE ANGLE LEFT
.long OARM5,ARMRIP,NULO ;22 ARM FULL LEFT HORIZONTAL
.long OARM6,ARMRIP,NULO ;23 ARM SLIGHT ANGLE RIGHT
.long ORCHD1,ORCHD1,ORCHD1 ;24 LITTLE HEAD STRAIGHT FACE
.long ORCHD1A,ORCHD1A,ORCHD1A ;25 LITTLE HEAD FROWN FACE
.long ORCHD1B,ORCHD1B,ORCHD1B ;26 LITTLE HEAD ROAR FACE
.long ORCHD1C,ORCHD1C,ORCHD1C ;27 LITTLE HEAD OOOOHHH FACE
.long ORCHD1D,ORCHD1D,ORCHD1D ;28 LITTLE HEAD TOOTHY GRIN FACE
.long ORCHD2,ORCHD2,ORCHD2 ;29 LITTLE HEAD SLIGHTLY LEFT FACE (NO TEETH)
.long ORCHD2A,ORCHD2A,ORCHD2A ;30 LITTLE HEAD SLIGHTLY LEFT FACE (TEETH)
.long ORCHD3,ORCHD3,ORCHD3 ;31 LITTLE HEAD 45 LEFT FACE (NO TEETH)
.long ORCHD3A,ORCHD3A,ORCHD3A ;32 LITTLE HEAD 45 LEFT FACE (TEETH)
.long ORCHD4,ORCHD4,ORCHD4 ;33 LIL HEAD 60
.long ORCHD5,ORCHD5,ORCHD5 ;34 LIL HEAD 90
.long ORCHD6,ORCHD6,ORCHD6 ;35 LIL HEAD 135
.long NUSHAD,NUSHAD,NUSHAD ;36 SHADOW
.long NULO,NULO,NULO ;37 SIDE SHADOW was> OSHAD2,OSHAD2,OSHAD2
.long NULO,NULO,NULO ;38 NULL OBJECT
.long TUNG1D,TUNG1D,TUNG1D ;39 TONGUE SMALLEST
.long TUNG1C,TUNG1C,TUNG1C ;40 TONGUE NEXT SMALLEST
.long TUNG1B,TUNG1B,TUNG1B ;41 TONGUE NEXT SMALLEST
.long TUNG1A,TUNG1A,TUNG1A ;42 TONGUE NEXT SMALLEST
.long TUNG1,TUNG1,TUNG1 ;43 TONGUE FULL SIZE
.long TUNG2,TUNG2,TUNG2 ;44 TONGUE FULL SIZE CURVE TO LEFT
.long TUNG3,TUNG3,TUNG3 ;45 TONGUE FULL SIZE CURVE TO RIGHT
.long NULO1,NULO1,NULO1 ;46 TONGUE NULL
.long OARM1PT,OARM1PT,ARMRIP ;47 ARM1 FIRE ANI
.long OARM2PT,OARM2PT,ARMRIP ;48 ARM2 FIRE ANI
.long OARM3PT,OARM3PT,ARMRIP ;49 ARM3 FIRE ANI
.long OARM4PT,OARM4PT,ARMRIP ;50 ARM4 FIRE ANI
.long OARM5PT,OARM5PT,ARMRIP ;51 ARM5 FIRE ANI
.long OARM6PT,OARM6PT,ARMRIP ;52 ARM6 FIRE ANI
.long ORCFLM1,ORCFLM1,ORCFLM1 ;53 FLAME 1
.long ORCFLM2,ORCFLM2,ORCFLM2 ;54 FLAME 2
.long HDRIP,HDRIP,HDRIP ;55 HEAD RIPPED LEFT
.long TOPRIP,TOPRIP,TOPRIP ;56 TOP (SHOULDERS) RIPPED OFF
.long THRSTNL,THRSTNL,THRSTNL ;57 Thrust null
.long BASERIP,BASERIP,BASERIP ;58 BASE RIP
* Boss initial data table
boss_t
*PART 1 LEFT MOUTH
.word DMAWNZ+M_PIXSCAN ;Flags
.word CLSENMY|TYPFACE|SUBMTHL ;Type
.byte -1,MOUTHCL ;Damage resistance, Ani#
.word 159 ;Z
*PART 2 RIGHT MOUTH
.word DMAWNZ+M_PIXSCAN+M_FLIPH
.word CLSENMY|TYPFACE|SUBMTHR
.byte -1,MOUTHCL
.word 159
*PART 3 LEFT SIDE PIECE
.word DMAWNZ+M_PIXSCAN
.word CLSENMY|TYPFACE|SUBSIDEL
.byte 0,SIDE
.word 159
*PART 4 RT SIDE PIECE
.word DMAWNZ+M_PIXSCAN+M_FLIPH
.word CLSENMY|TYPFACE|SUBSIDER
.byte 0,SIDE
.word 159
*PART 5 LEFT EYE
.word DMAWNZ
.word CLSENMY|TYPFACE|SUBEL
.byte 0,EYECNT
.word 160
*PART 6 RIGHT EYE
.word DMAWNZ+M_FLIPH
.word CLSENMY|TYPFACE|SUBER
.byte 0,EYECNT
.word 160
*PART 7 LEFT SHOULDER
.word DMAWNZ
.word CLSENMY|TYPFACE|SUBSHLDL
.byte 0,SHOULDER
.word 163
*PART 8 RT SHOULDER
.word DMAWNZ+M_FLIPH
.word CLSENMY|TYPFACE|SUBSHLDR
.byte 0,SHOULDER
.word 163
*PART 9 LIL HEAD
.word DMAWNZ
.word CLSENMY|TYPFACE|SUBHD
.byte 0,HDST
.word 163
*PART 10 LEFT ARM
.word DMAWNZ+M_PIXSCAN
.word CLSENMY|TYPFACE|SUBARML
.byte -1,ARMDN
.word 160
*PART 11 RIGHT ARM
.word DMAWNZ+M_PIXSCAN+M_FLIPH
.word CLSENMY|TYPFACE|SUBARMR
.byte -1,ARMDN
.word 160
*PART 12 LEFT SHADOW
.word DMACNZ+M_NOCOLL
.word CLSNEUT
.byte 0,NUSHD
.word 150
*PART 13 RIGHT SHADOW
.word DMACNZ+M_NOCOLL+M_FLIPH
.word CLSNEUT
.byte 0,NUSHD
.word 150
*PART 14 LIL HEAD FLIPPED
.word DMAWNZ+M_FLIPH
.word CLSENMY|TYPFACE|SUBHD
.byte 0,NULLOBJ
.word 162
*PART 15 TONGUE
.word DMAWNZ
.word CLSENMY|TYPFACE|SUBTUNG
.byte 0,NULLOBJ1
.word 160
*PART 16 LEFT FLAME
.word DMAWNZ
.word CLSENMY|TYPFACE|SUBFLAM
.byte 0,THRUSTNULL
.word 158
*PART 17 RT FLAME
.word DMAWNZ+M_FLIPH
.word CLSENMY|TYPFACE|SUBFLAM
.byte 0,THRUSTNULL
.word 158
.word 0
;Null object definition
;Lil head null
NULO .word 1,1,22,-8
.long IROM+3*32
.long ORCP1
;Tung null
NULO1 .word 1,1,11,-118
.long IROM+3*32
.long RIPAL
;Thrust null
THRSTNL .word 1,1,11,-118
.long IROM+3*32
.long BLUBOOM
****************************************************************
* Akhboob's flying death machine (Process)
****************************************************************
;Boss data struct
ABDOBJ .set >0 ;*Parts obj
ABDXO .set >20 ;X offset from ani pt
ABDSHLD .set >30 ;Shield, 0=Dead, +=OK
ABXO .equ 24 ;Obj 1 offsets for center
ABYO .equ 40
ABWRLDTY .set 249 ;Bkgnd world top Y for end of scroll
WORDPD abmode ,0 ;Mode, -=At top, 0=Msl mania,
; 1=Chase plyr, 2=Balls
WORDPD absko ,1 ;Seek offset -1/1
WORDPD abdrag ,2 ;Drag shift
; WORDPD abgunstat ,3 ;Guns stat, 0=OK, 1=Blown
SUBR aboss
clr a0 ;>Clear out boss variables
movi bossram,a1
abossc move a0,*a1+
cmpi bossramend,a1
jrlo abossc
movi bossrise_as,a8
CREATE ANIMPID,anim_script ;P1
SLEEP 356
movi abosspal_t,a0
movk 2,a1
calla FADEIN
SLEEPK 4+6*3
move @WORLDTLX+16,a0 ;Get starting coord
addi 200,a0
sll 16,a0
move @WORLDTLY+16,a1
addi SHPY,a1
sll 16,a1
callr aboss_init
movi BBSHPAL,a8
movi cycmem,a9 ;Ram area
movi [60,64],a10 ;Begin/end color #
movk 3,a11 ;Rate in ticks
CREATE CYCPID,COLCYC ;Color cycler on
move @bossd_t,a8,L ;A8=*1st obj
move a13,a11
CREATE BOSSPID,ab_scrollstrt
CREATE BOSSPID,ab_gunturrets
CREATE BOSSPID,ab_msllauncher
CREATE BOSSPID,ab_akhboobani
CREATE BOSSPID,plyr_shoeson
clr a10 ;A10=Dir 0-31
movk 1,a0
move a0,*a13(absko) ;-1 or 1
movi -4,a0 ;Normal speed
move a0,*a13(abdrag)
move a0,*a13(abmode) ;Neg
movi 60*15,a11 ;A11=Mode cnt down (Chase time)
abosslp
SLEEPK 1
move *a13(abmode),a0 ;>Mode change
jrle abl200 ;Guns still good?
subk 1,a11
jrgt abl200 ;Still counting?
movi 60*60*20,a11 ;Ball time
abl150 addk 1,a0
move a0,*a13(abmode)
subk 2,a0
jrne abl200 ;!Ball time?
movi bossd_t+BLPART,a9 ;*Left ball data
CREATE BOSSPID,ab_atkball
movi bossd_t+BRPART,a9 ;*Rgt ball data
CREATE BOSSPID,ab_atkball
movk 2,a0
move a0,@abossaballnum
abl200 movk 1,a0
callr rnd
jrnz abl230 ;No smoke?
CREATE0 aboss_smoketrail
abl230 movk 3,a0 ;>Turn
callr rnd
jrz abl500 ;Skip seek?
move *a13(abmode),a7
subk 1,a7
jrne abl250 ;Go top?
calla getcloseplyr ;>Chase plyr
jrz abl250 ;No player?
callr abossseeko_dir32
jruc abl300
abl250 movk 32,a0 ;Y
subk 2-1,a7
jrne abl260 ;!Ball time?
addk 22,a0 ;Lower
move @abossshld,a3
jrge abl260 ;!Docking?
movk 10,a0
abl260 callr abossseektop_dir32
abl300 sub a10,a0 ;A0=Difference
jrz abl500
move a0,a1
abs a0
cmpi 2,a0
jrle abl340 ;In seeker view?
move *a13(abmode),a7
subk 2,a7
jreq abl340 ;Ball time?
move *a13(absko),a2
movk >f,a0
callr rnd
jrnz abl320 ;No dir change?
neg a2
move a2,*a13(absko)
abl320 add a2,a10
jruc abl400
abl340 subk 16,a0
jrle abl350
neg a1
abl350 move a1,a1
jrnn abl360
subk 2,a10 ;-1
abl360 addk 1,a10 ;+1
abl400 ANDK >1f,a10 ;Make 0-31
abl500 move a10,a0 ;>Thrust
sll 4,a0 ;*16
addi missilev_t,a0
move *a0(8*16),a6 ;XV
move *a0,a7 ;YV
move *a13(abdrag),a2
move *a8(OXVEL),a0,L
move a0,a3
sra a2,a3
sub a3,a0 ;-Drag
add a6,a0 ;+Vel
move *a8(OYVEL),a1,L
move a1,a3
sra a2,a3
sub a3,a1 ;-Drag
add a7,a1 ;+Vel
move a8,a6
movi bossd_t,a8 ;A8=*Boss data struct
callr vel_set
move a6,a8
abl700
callr ab_keeponscrn
jruc abosslp
move @abossshld,a3
jrge abosslp ;OK?
SLEEP 60*5
DIE
abosspal_t
.long BBSHPAL,0
********************************
* Anim script for aboss flying out of pit
bossrise_as
ASNEW bossrisenew_t ;>Ship in pit and sliding door
ASSLP 60
ASRUN doorsnd_as
ASLAB 27 ;>Slide door up
ASXY >10,>f,0,-1
ASDSJS1
ASHIDE >10
ASLAB 33
ASXY >10,>f,0,-1
ASDSJS1
ASHIDE >11
ASLAB 33
ASXY >10,>f,0,-1
ASDSJS1
ASHIDE >12
ASLAB 27
ASXY >10,>f,0,-1
ASDSJS1
ASSLP 180
ASSND rcktlnchsnd
ASXY >20,3,-400,0 ;>Ship rises
ASXYV >20,3,0,->18000
ASSLP 6
ASANI LILBBSHP2,>20
ASANI LILBBSHP2A,>21
ASSLP 6
ASANI LILBBSHP3,>20
ASANI LILBBSHP3A,>21
ASSLP 6
ASDELM >20,1
ASLAB 27 ;>Slide door down
ASXY >10,>f,0,1
ASDSJS1
ASSHOW >12
ASLAB 33
ASXY >10,>f,0,1
ASDSJS1
ASSHOW >11
ASLAB 33
ASXY >10,>f,0,1
ASDSJS1
ASSHOW >10
ASLAB 27
ASXY >10,>f,0,1
ASDSJS1
ASSLP 60*120
ASDELM 0,>ff
ASASM
abas100 SLEEPK 10
move @WORLDTLY+16,a0
cmpi ABWRLDTY+90,a0