-
Notifications
You must be signed in to change notification settings - Fork 4
/
FIREBAK.ASM
executable file
·813 lines (667 loc) · 17.8 KB
/
FIREBAK.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
**************************************************************
*
* Software: Mike Lynch, Jason Skiles, Mark Turmell
* Initiated: 05/12/95
*
* Modified:
*
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
*
**************************************************************
.file "fireword.asm"
.title "wrestling game program"
.width 132
.option b,d,l,t
.mnolist
.include "macros.h"
.include "mproc.equ" ;Mproc equates
.include "display.equ" ;Display proc equates
.include "gsp.equ" ;Gsp asm equates
.include "sys.equ"
.include "wwfsec.equ"
.include "game.equ"
.include "audit.equ"
.include "plyr.equ"
.include "anim.equ"
.include "sound.h"
.include "ring.equ"
.include "sound.equ"
.include "damage.equ"
.include "jjxm.h"
.include "imgtbl.glo"
.include "fontsimg.glo"
.include "bgndtbl.glo"
.include "miscimg.glo"
.ref RNDRNG0
.ref BEGINOBJP
.ref PRCSLP
.ref DELOBJA8
.ref obj_aniq
.ref flash_white
.ref pal_clean
.ref fade_up
.ref fade_down
.ref BGND_UD1
.ref crowd_anim
.ref crowd_cheer
.ref reduce_bog
.ref is_8_on_1
.ref print_message
.ref wsf14_ascii
.ref royal_rumble
.ref print_string_C2
.ref print_string_C
.ref font9_ascii
.ref setup_message
.ref mess_objid
.ref SNDSND
.bss fizzle_flare,16
.bss pan_down,16
EXP_FW_SND .equ 1252
FLR_FW_SND .equ 1244
#**********************************************************************
*
SUBRP #fwexa_anim
.long FWEXPA01
.long FWEXPA02
.long FWEXPA03
.long FWEXPA04
.long FWEXPA05
.long FWEXPA06
.long FWEXPA07
.long FWEXPA08
.long FWEXPA09
.long FWEXPA10
.long FWEXPA11
.long 0
SUBRP #fwexb_anim
.long FWEXPB01
.long FWEXPB02
.long FWEXPB03
.long FWEXPB04
.long FWEXPB05
.long FWEXPB06
.long FWEXPB07
.long FWEXPB08
.long FWEXPB09
.long FWEXPB10
.long FWEXPB11
.long 0
SUBRP #fwexp_tbl
.long #fwexa_anim
.long #fwexb_anim
SUBRP #flare_anim
.long FWFLAR01
.long FWFLAR02
.long FWFLAR03
.long FWFLAR04
.long FWFLAR05
SUBRP #flare_anim2
.long FWFLAR06
.long FWFLAR07
.long FWFLAR08
.long FWFLAR09
.long FWFLAR10
.long FWFLAR11
.long FWFLAR12
.long FWFLAR13
.long 0
SUBRP #fw_pals
.long FWWHT_P
.long FWBLV_P
.long FWPNK_P
.long FWBLU_P
.long FWYEL_P
EXP_FWY .equ -160
SUBRP #animate_fwexp
; First Get a random position to place the explosion
movi 64,a0 ; Get a random vertical position
calla RNDRNG0
addi EXP_FWY,a0
move a0,a9 ; Save it away
movi 350,a0 ; Get a random horizontal postion
calla RNDRNG0
addi 850,a0
move a0,a10
movi 200h,a0 ; Get a random Zpos
calla RNDRNG0
addi 700h,a0 ; Make sure we can see it
move a0,a3
; Now get a random firework explosion to use
movi 1,a0 ; Get a random explosion to use
calla RNDRNG0
sll 5,a0
addi #fwexp_tbl,a0
move *a0,a11,L ; Get pointer to image table
move *a11+,a2,L ; Get the first image
; Set up some additional object creation junk
movi DMAWNZ|M_3D,a4
movi CLSNEUT,a5 ; Set the Object ID
clr a6 ; Set the X velocity
clr a7 ; Set the Y velocity
; Get a random palette to use
movi 4,a0 ; Get a random palette number
calla RNDRNG0
move a0,b0 ; Get entry from palette table
sll 5,b0
addi #fw_pals,b0
move *b0,b0,L
; Set up the x and y positions for the object
move a9,a1 ; Get saved YPOS
sll 16,a1 ; Shift it for object creation
move a10,a0 ; Get saved XPOS
sll 16,a0 ; Shift it for object creattion
; Now create the first image
calla BEGINOBJP ; Create the object
; Make an explosion sound
movi EXP_FW_SND,a3
calla SNDSND
; And animate the whole works
#animate_loop
SLEEPK 2
move *a11+,a0,L ; Get the next image
jrz #fwanim_done ; Are we done ? - br = yes
move *a8(OCTRL),a1 ; Get the current control
calla obj_aniq ; Change the image
move *a8(OYPOS),a1 ; Make it fall a little
addk 4,a1
move a1,*a8(OYPOS)
jruc #animate_loop ; Go do next image
; We all done - soooo get rid of the object and die
#fwanim_done
calla DELOBJA8 ; Kill off the object
DIE ; And die
SUBRP firework_flare
movk 25,a0
calla RNDRNG0
addk 1,a0
calla PRCSLP
movk 4,a0
calla RNDRNG0
move a0,b0
sll 5,b0
addi #fw_pals,b0
move *b0,b0,L
move a9,a0
srl 16,a0
sll 16,a0
move a9,a1
sll 16,a1
movi #flare_anim,a9
move *a9+,a2,L
movi 810h,a3
movi DMAWNZ|M_3D,a4
movi CLSFRWK,a5
clr a6
clr a7
calla BEGINOBJP
PUSH a0,a1,a2,a3,a4,a5,a6,a7
calla flash_white
movi FLR_FW_SND,a3
calla SNDSND
PULL a0,a1,a2,a3,a4,a5,a6,a7
#flare_loop
SLEEPK 2
#fl_loop
move *a9+,a0,L
jrz #reset_flare
move *a8(OCTRL),a1
calla obj_aniq
jruc #flare_loop
#reset_flare
move @fizzle_flare,a9
jrnz #flare_fizzle
movi #flare_anim2,a9
jruc #fl_loop
#flare_fizzle
movi #flare_anim2,a9
#ff_loop
SLEEPK 4
cmpi #flare_anim,a9
jrz #ff_exit
move -*a9,a0,L
move *a8(OCTRL),a1
calla obj_aniq
jruc #ff_loop
#ff_exit
calla DELOBJA8
DIE
SUBR do_fireworks
; RETP
PUSHP a9,a10
calla pal_clean ; Get rid of extra palettes
clr a10 ; Fade down the lights
move a10,@fizzle_flare
movk 32,a11
CREATE0 fade_down
SLEEPK 30
movi ANNC_PID,a0
calla KIL1C ; Kill off any announcer processes
movi METER_PID,a0
calla KIL1C ; Kill off meter processes
movi TIMER_PID,a0
calla KIL1C ; Kill off match timer process
movi FLASH_PID,a0
calla KIL1C ; Kill off any flasher processes
movi ICON_PID,a0
calla KIL1C ; Kill off any icon flashers
movi SMOVE_PID,a0
calla KIL1C ; Kill off special move processes
movi PINHIM_ANIM_PID,a0
calla KIL1C ; Kill off pin him processes
movi REWIRE_PID,a0
calla KIL1C ; Kill off rewire processes
movi ZSHIFT_PID,a0
calla KIL1C ; Kill off something to do with progress ladder
movi GETUP_PID,a0
calla KIL1C ; Kill off getup meter processes
movi FLASH_COMBO_PID,a0
calla KIL1C ; Kill off any combo flashers
movi CYCPID,a0
calla KIL1C ; Kill any cyclers
movi FX_PID,a0
calla KIL1C ; Kill and FX processes
movi ADD_INIT_PID,a0
calla KIL1C ; Kill any perfect processes
movi OVRHED_PID,a0
calla KIL1C ; Kill any of these that are laying around
.if DEBUG
movi CDEBUG_PID,a0
calla KIL1C ; Kill off collision box debug processes
.endif
movi CLSNEUT|TYPTEXT|SUBMES1,a0
calla obj_del1c ; Kill off any announcer objects
movi CLSNEUT|TYPNEUT|SUBMFRAME,a0
calla obj_del1c ; Kill off the meter objects
movi CLSNEUT|TYPNEUT|SUBLBAR,a0
calla obj_del1c ; Kill off meter bars
movi TYPTIMERDIGIT,a0
calla obj_del1c ; Kill off the match timer objects
movi TYPWWFICON,a0
calla obj_del1c ; Kill off any WWF Icon objects
movi CLSDEAD,a0
calla obj_del1c ; Kill off winstreak number
movi TYPPINHIM,a0
calla obj_del1c ; Kill off any pin him objects
movi TYPPERFECT,a0
calla obj_del1c ; Kill off any perfect objects
clr a0 ; Turn off bog reduction
move a0,@reduce_bog ; Animate the crowd
CREATE CROWD_PID,crowd_anim
calla pal_clean ; Clean any other palettes we freed by
; Getting rid of all of the above shit
; Back of ring flares
movk 12,a10 ; Make 12 flares
movi [798,128],a9 ; [sx,y] of flare positions
#do_flare
CREATE FIREWRK_PID,firework_flare
addi [50,0],a9 ; Increment x position
dsjs a10,#do_flare ; go do next flare
; Left Side flares
movi [770,148],a9
CREATE FIREWRK_PID,firework_flare
movi [753,168],a9
CREATE FIREWRK_PID,firework_flare
movi [736,188],a9
CREATE FIREWRK_PID,firework_flare
movi [719,208],a9
CREATE FIREWRK_PID,firework_flare
movi [702,228],a9
CREATE FIREWRK_PID,firework_flare
; Right Side flares
movi [1372,148],a9
CREATE FIREWRK_PID,firework_flare
movi [1389,168],a9
CREATE FIREWRK_PID,firework_flare
movi [1406,188],a9
CREATE FIREWRK_PID,firework_flare
movi [1423,208],a9
CREATE FIREWRK_PID,firework_flare
movi [1440,228],a9
CREATE FIREWRK_PID,firework_flare
clr a10 ; Lights back on
movi 64,a11
CREATE0 fade_up
SLEEPK 16
calla is_8_on_1
jrc #do_pan
move @royal_rumble,a14
jrz #no_pan
#do_pan
clr a0
move a0,@pan_down
CREATE0 pan_around
jruc #not_1_on_3
#no_pan
; Print 1vs3 congrats message
clr a14
callr print_congrats
jruc #no_exp_fw ; Don't bother with exploders
#not_1_on_3
movi 100,a8 ; Number of exploding fire works to do
#do_exfw_loop
CREATE0 #animate_fwexp ; Create an exploding firework
movk 10,a0 ; Sleep a random amount of time
calla RNDRNG0
addk 1,a0 ; Make sure we sleep at least 1
calla PRCSLP ; Sleep
dsjs a8,#do_exfw_loop
SLEEPK 30
movk 1,a0
move a0,@pan_down
movi TSEC*2,a9
jruc #cheer_lp
#no_exp_fw
movi TSEC*5,a9
#cheer_lp
move a9,a9
jrle #clp_done
PUSH a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
movk 1,a3 ; And make 'em do something
calla crowd_cheer
PULL a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
SLEEPK 15
subk 15,a9
jruc #cheer_lp
#clp_done
movk 1,a0 ; Tell flares to fizzle out
move a0,@fizzle_flare
SLEEP TSEC ; Give flares time to die out
PULLP a9,a10
RETP
.bss pan_status,16
panning_points ; figure 8
.long 15,[850,0],[EXP_FWY+32,0] ;
.long 15,[900,0],[EXP_FWY,0] ;
.long 15,[950,0],[EXP_FWY,0] ; /--\ /--\
.long 15,[1000,0],[EXP_FWY+32,0] ; / \ / \
.long 15,[950,0],[EXP_FWY+64,0] ;< X >
.long 15,[900,0],[EXP_FWY+64,0] ; \ / \ /
.long 30,[800,0],[EXP_FWY,0] ; \--/ \--/
.long 15,[750,0],[EXP_FWY,0] ;
.long 15,[700,0],[EXP_FWY+32,0] ;
.long 15,[750,0],[EXP_FWY+64,0] ;
.long 15,[800,0],[EXP_FWY+64,0] ;
.long 15,[850,0],[EXP_FWY+32,0] ;
.long 0
.bss ticks,32 ; Ticks for this move
.bss dx,32 ; X movement per tick
.bss dy,32 ; Y movement per tick
.bss targ_x,16 ; Target X position
.bss targ_y,16 ; Target Y position
.bss final_x,32 ; Final X position to pan to
.bss final_y,32 ; Final Y position to pan to
.bss p1x,32 ; Start X point
.bss p1y,32 ; Start Y point
.bss p2x,32 ; End X point
.bss p2y,32 ; End Y point
#*************************************************************
*
SUBRP calc_dxdy
PUSH a8,a9,a10,a11
movi p1x,a8 ; Get pointer to start and end points
move @ticks,a10,L ; Get ticks for this move
move *a8,a11,L ; Get start X position
move *a8(64),a9,L ; Get End X position
sub a11,a9 ; Get X difference
divs a10,a9 ; Divide by ticks to get there
move a9,@dx,L ; Store delta X
move *a8(32),a11,L ; Get start Y position
move *a8(96),a9,L ; Get End Y position
sub a11,a9 ; Get Y difference
divs a10,a9 ; Divide by ticks to get there
move a9,@dy,L ; Store delta Y
PULL a8,a9,a10,a11
rets
#*************************************************************
*
SUBRP move_camera
PUSH a0
move @WORLDTLX,a14,L ; Get Current X position
move @dx,a0,L ; Get Delta X
add a0,a14 ; Add to Current X postion
move a14,@WORLDTLX,L ; Write new position
move @WORLDTLY,a14,L ; Get Current Y position
move @dy,a0,L ; Get Delta Y
add a0,a14 ; Add to Current Y position
move a14,@WORLDTLY,L ; Write new Y position
PULL a0
rets
#**************************************************************
*
SUBRP check_camera_position
PUSH a0
move @WORLDTLX,a14,L ; Get current X position
sra 16,a14 ; Get rid of fractional portion
move @targ_x,a0 ; Get current target X position
sub a0,a14 ; Subtract the two
abs a14 ; Make sure it is positive
cmpi 3,a14 ; Are we within 3 ?
jrgt #check_y ; br = no
clr a14
move a14,@dx,L ; Stop X movement
#check_y
move @WORLDTLY,a14,L ; Get current Y position
sra 16,a14 ; Get rid of fractional portion
move @targ_y,a0 ; Get current target Y position
sub a0,a14 ; Subtract the two
abs a14 ; Make sure it is positive
cmpi 3,a14 ; Are we within 3 ?
jrgt #check_done ; br = no
clr a14
move a14,@dy,L ; Stop Y movement
#check_done
PULL a0
rets
#*******************************************************************
*
SUBRP pan_around
SLEEP TSEC/2
clr a14
move a14,@pan_status
move @WORLDTLX,a14,L ; Get current X position
move a14,@final_x,L ; Save off for pan back
move a14,@p1x,L ; Set as the starting X point
move @WORLDTLY,a14,L ; Get current Y position
move a14,@final_y,L ; Save off for pan back
move a14,@p1y,L ; Set as the starting Y point
#pan_again
movi panning_points,a8 ; Get pointer to pan points table
#p1on8_lp
move *a8+,a14,L ; Get Ticks for the move
move a14,@ticks,L ; Set ticks for this move
move *a8+,a14,L ; Get Target X position
move a14,@p2x,L ; Set Ending X position
srl 16,a14 ; Lop off fractional part
move a14,@targ_x ; Store it as the target X position
move *a8+,a14,L ; Get Target Y position
move a14,@p2y,L ; Set Ending Y position
srl 16,a14 ; Lop off fractional part
move a14,@targ_y ; Store it as the target Y position
movk 15,a10 ; Number of ticks for this move
callr calc_dxdy ; Calculate dx and dy
#next_move
callr move_camera ; Move the camera
calla BGND_UD1 ; Update the background
SLEEPK 1 ; Let it actually move
PUSH a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
movk 1,a3
calla crowd_cheer ; Make the crowd cheer
PULL a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
callr check_camera_position ; Adjust dx and dy
move @dx,a14,L ; Get current dx
move @dy,a0,L ; Get current dy
or a0,a14 ; Or 'em together
jrnz #next_move ; Done with this segment ? - br - no
; This is probably where I want to put up different lines of text
move @pan_status,a14
jrnz #text_is_up
SLEEPK 5
movk 1,a14
move a14,@pan_status
move @royal_rumble,a14
jrz #do_8_on_1
; Print 2vs8 congrats message - GAWD IS THIS UUUUGGGLY
movk 2,a14
jruc #pcx
#do_8_on_1
; Print 1vs8 congrats message - GAWD IS THIS UUUUGGGLY
movk 1,a14
#pcx callr print_congrats
SLEEPK 2
#text_is_up
move @p2x,a14,L ; Get Last End X position
move a14,@p1x,L ; Store as new Start X position
move @p2y,a14,L ; Get Last End Y position
move a14,@p1y,L ; Store as new Start Y position
move @pan_down,a14
jrnz #pan_done
move *a8,a14,L ; Get next X target
jrnz #p1on8_lp ; Done ? - br = no
move @pan_down,a14
jrz #pan_again
#pan_done
move @final_x,a14,L ; Get final X position
move a14,@p2x,L ; Store it as new End Y postion
srl 16,a14 ; Lop off fractional part
move a14,@targ_x ; Store it as the target X position
move @final_y,a14,L ; Get final Y position
move a14,@p2y,L ; Store it as new End Y postion
srl 16,a14 ; Lop off fractional part
move a14,@targ_y ; Store it as the target Y position
movk 15,a14
move a14,@ticks,L ; Store ticks for this move
callr calc_dxdy ; Calculate dx and dy
#npb_move
callr move_camera ; Move the camera
calla BGND_UD1 ; Update the background
SLEEPK 1 ; Let it actually move
PUSH a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
movk 1,a3
calla crowd_cheer ; Make the crowd cheer
PULL a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
callr check_camera_position ; Adjust dx and dy
move @dx,a14,L ; Get current dx
move @dy,a0,L ; Get current dy
or a0,a14 ; Or 'em together
jrnz #npb_move ; Done with last segment ? - br = no
movi CLSMK3,a0
calla obj_del1c ; Get rid of the text when we pan back down
DIE
#***************************************
*
SUBRP #c1v3s_tbl
.long #congrat_1v8_1
.long #congrat_1v8_2
.long #congrat_1v8_3
.long #congrat_1v8_4
.long #congrat_1v8_5
.long 0
SUBRP #c1v8s_tbl
.long #congrat_1v8_1
.long #congrat_1v8_2
.long #congrat_1v8_3
.long #congrat_1v8_4
.long #congrat_1v8_5
.long 0
SUBRP #c2v8s_tbl
.long #congrat_1v8_1
.long #congrat_1v8_2
.long #congrat_1v8_3
.long 0
SUBRP #congrats_setup_tbl
.long #c1v3s_tbl
.long #c1v8s_tbl
.long #c2v8s_tbl
SUBRP #c1v3_tbl
.long #congrat_1v8_1_str
.long #congrat_1v3_2_str
.long #congrat_1v3_3_str
.long #congrat_1v3_4_str
.long #congrat_1v8_5_str
SUBRP #c1v8_tbl
.long #congrat_1v8_1_str
.long #congrat_1v8_2_str
.long #congrat_1v8_3_str
.long #congrat_1v8_4_str
.long #congrat_1v8_5_str
SUBRP #c2v8_tbl
.long #congrat_1v8_1_str
.long #congrat_2v8_2_str
.long #congrat_2v8_3_str
SUBRP #congrats_str_tbl
.long #c1v3_tbl
.long #c1v8_tbl
.long #c2v8_tbl
; a14 = 0 - 1v3, 1 - 1vs8, 2 - 2vs 8
SUBRP print_congrats
PUSH a8,a9,a10,a11
sll 5,a14
move a14,a9
move a14,a10
addi #congrats_setup_tbl,a9
addi #congrats_str_tbl,a10
move *a9,a9,L
move *a10,a10,L
#print_clp
move *a9+,a8,L
jrz #c_done
move *a10+,a11,L
move a8,a2
calla setup_message
movi CLSMK3,a4
move a4,@mess_objid
move a11,a4
calla print_string_C2
jruc #print_clp
#c_done
PULL a8,a9,a10,a11
rets
#congrat_1v3_2_str
.string "YOU ARE AN EXCELLENT WRESTLER, BUT...",0
.even
#congrat_1v3_3_str
.string "FOR A REAL CHALLENGE, TRY GOING FOR",0
.even
#congrat_1v3_4_str
.string "THE WORLD WRESTLING FEDERATION BELT!!!",0
.even
#congrat_1v8_1_str
.string "CONGRATULATIONS!!!",0
.even
#congrat_1v8_2_str
.string "YOU HAVE SUCESSFULLY ACHIEVED THE",0
.even
#congrat_1v8_3_str
.string "WORLD WRESTLING FEDERATION CHAMPIONSHIP.",0
.even
#congrat_1v8_4_str
.string "YOU ARE THE GREATEST WRESTLER!!!",0
.even
#congrat_1v8_5_str
.string "...THANK YOU FOR PLAYING...",0
.even
#congrat_2v8_2_str
.string "YOUR WRESTLING TEAM IS ONE OF",0
.even
#congrat_2v8_3_str
.string "THE BEST TEAMS OF ALL TIME!!!",0
.even
#congrat_1v8_1
JAM_STR wsf14_ascii,10,0,200,70,WSF_R_P,print_string_C2
.even
#congrat_1v8_2
JAM_STR font9_ascii,10,0,200,100,FNT9YEL_P,print_string_C2
.even
#congrat_1v8_3
JAM_STR font9_ascii,10,0,200,113,FNT9YEL_P,print_string_C2
.even
#congrat_1v8_4
JAM_STR font9_ascii,10,0,200,126,FNT9YEL_P,print_string_C2
.even
#congrat_1v8_5
JAM_STR font9_ascii,10,0,200,152,FNT9YEL_P,print_string_C2
.even
******************************************************************************
.end