forked from bruddog/Tecmo_Super_Bowl_NES_Disassembly
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Bank7_scene_scripts.asm
3512 lines (3039 loc) · 199 KB
/
Bank7_scene_scripts.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
_F{_SCENE_SCRIPT_MACROS
.MACRO SET_BG_SCRIPT_PPU_ADDR_AND_DATA[addr_data] ppuaddr, dataddr
.DB >ppuaddr+$60, <ppuaddr, <dataddr, >dataddr
.ENDM
.MACRO SET_BG_SCRIPT_PPU_ADDR[addr] ppuaddr
.DB >ppuaddr+$68 , <ppuaddr
.ENDM
.MACRO DRAW_LINE_DOWN_AT_PPUADDR[addr_height_tile] ppuaddr, height, tile
.DB >ppuaddr+$70, <ppuaddr, height, tile
.ENDM
.MACRO DRAW_LINE_ACROSS_AT_PPUADDR[addr_width_tile] ppuaddr, width, tile
.DB >ppuaddr+$78, <ppuaddr, width, tile
.ENDM
.MACRO FILL_RECT_AT_PPUADDR[addr_height_width_tile] ppuaddr, height, width, tile
.DB >ppuaddr+$80, < ppuaddr, height, width, tile
.ENDM
.MACRO DRAW_TILE_AT_PPUADDR[addr_tile] ppuaddr, tile
.DB >ppuaddr+$88, < ppuaddr, tile
.ENDM
.MACRO MOVE_DOWN_1_ROW[]
.DB $B0
.ENDM
.MACRO MOVE_DOWN_2_ROWS[]
.DB $B1
.ENDM
.MACRO MOVE_DOWN_3_ROWS[]
.DB $B2
.ENDM
.MACRO MOVE_DOWN_4_ROWS[]
.DB $B3
.ENDM
.MACRO MOVE_DOWN_6_ROWS[]
.DB $B5
.ENDM
.MACRO SET_IRQ_AND_CHR[irq_counter_ch0bk_ch1bk] irq, counter, chr0Bank, chr1Bank ; SET IRQ (IRQ, COUNTER, CHR BANK 0, CHR BANK 1)
.DB $C0, irq, counter, chr0Bank, chr1Bank
.ENDM
.MACRO SET_IRQ_SCROLL[irq_counter_speed] irq, counter, speed ; irq can be 1,2,3 counter value is the scanline count from the last IRQ
.DB $C0, irq+$10 , counter, speed
.ENDM
.MACRO SET_IRQ_SCROLL_AND_CHR[irq_counter_speed_ch0bk_ch1bk] irq, counter, speed,chr0Bank, chr1Bank ; irq can be 1,2,3 counter value is the scanline count from the last IRQ
.DB $C0, irq+$20 , counter, speed, chr0Bank,chr1Bank
.ENDM
.MACRO SET_IRQ_CNTR_PPU_ADDR_AND_CHR[irq_counter_ppu_addr_ch0bk_ch1_bk] irq, counter, ppuaddr, chr0Bank, chr1Bank ; irq can be 1,2? 3? counter value is the scanline count from the last IRQ
.DB $C0, irq+$40 , counter, <ppuaddr, >ppuaddr ,chr0Bank,chr1Bank
.ENDM
.MACRO SET_IRQ_VERTICAL_SCROLL_SPEEED_AND_STOP[yspeed_ystop] y_speed, y_stop
.DB $C0, $51, y_speed, y_stop
.ENDM
.MACRO CHANGE_IRQ_SCROLL_SPEEED[irq_speed] irq, speed
.DB $C0, irq+$60 , speed
.ENDM
.MACRO SET_IRQ_XSCROLL_NAMETABLE[irq_xscroll_curnametable] irq, xscroll, nametable
.DB $C0, irq+$70 , xscroll, nametable
.ENDM
.MACRO CLEAR_IRQS_END_PAL_UPDATE[]
.DB $C1
.ENDM
.MACRO SET_SCROLLING[yspd_xspd_time] yspd, xspd, time
.DB $C3, yspd, xspd, time ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
.ENDM
.MACRO DECREASE_SCROLL_SPEED[yspd_xspd] yspd, xspd
.DB $C4, yspd, xspd
.ENDM
.MACRO INCREASE_SCROLL_SPEED[yspd_xspd] yspd, xspd
.DB $C5, yspd, xspd ; SET SCROLL SPEED INCREASE (Y AMOUNT, X AMOUNT)
.ENDM
.MACRO RESET_X_Y_SCROLL_TO_ZERO[]
.DB $C8 ; SET IRQ0 SPLIT, XSCROLL,SOFT Y SCROLL LOC = 0
.ENDM
.MACRO CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
.DB $CC ;
.ENDM
.MACRO CLEAR_2000_NAMETABLE[]
.DB $CD, $00 ;
.ENDM
.MACRO CLEAR_OFFSCREEN_NAMETABLE_BASED_ON_MIRRORING[]
.DB $CD, $01 ;
.ENDM
.MACRO SET_SPRITES_OFFSCREEN_AND_FILL_ALL_BG_NT_WITH_TILE[tile] tileId
.DB $CD, $04, tileId ;
.ENDM
.MACRO SET_BG_CHR_BANKS[table0_table1] bank0, bank1
.DB $D0, bank0, bank1
.ENDM
.MACRO SWAP_SCROLL_NAMETABLE_ONCE_SPR_DRAW_IS_DONE[]
.DB $D2
.ENDM
.MACRO DRAW_P1_TEAM_ABBREV_[]
.DB $D4
.ENDM
.MACRO DRAW_P2_TEAM_ABBREV_[]
.DB $D5
.ENDM
.MACRO GET_OFFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal] bgPal
.DB $D7, bgPal ; GET OFFENSE SPR PAL (FADE TYPE + BG PAL)
.ENDM
.MACRO GET_DEFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal] bgPal
.DB $D8, bgPal ; GET DEFENSE SPR PAL
.ENDM
.MACRO GET_QB_UNI_COLOR_AND_SKIN_COLOR_SET_BG_AND_SPR_PAL_AND_FADE_IN[bg_pal] bgPal
.DB $D9, bgPal
.ENDM
.MACRO DRAW_CURRENT_TEAM_PPLAYER_NUMBER_NAME[roster_id] roster_id
.DB $DB, roster_id
.ENDM
.MACRO DRAW_CURRENT_TEAM_PLAYER_NAME_LARGE_CENTERED[roster_id] roster_id
.DB $DC, roster_id
.ENDM
.MACRO START_CHANGING_PALLETE[pallete_id] pallete_id
.DB $DD, pallete_id
.ENDM
.MACRO DRAW_NUMBER_FROM_MEMORY_ADDR[mem_addr] memoryLoc
.DB $DE, <memoryLoc, >memoryLoc
.ENDM
.MACRO SET_DRAW_DELAY_FOR_DATA[frames] frames ; sets delay used by FE command in data
.DB $E1, frames
.ENDM
.MACRO CLEAR_OFFSCREEN_BANNER[] ; Used in status updates (fumble, interception, etc)
.DB $E2
.ENDM
.MACRO SET_AND_FADE_IN_BG_PALLETE[BgPal] bgpal
.DB $E3, bgpal
.ENDM
.MACRO SET_AND_FADE_IN_SPR_PALLETE[SprPal] sprpal
.DB $E4, sprpal
.ENDM
.MACRO SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] bgpal, sprpal
.DB $E5, bgpal, sprpal
.ENDM
.MACRO FADE_IN_BG_AND_SPR_PALLETE[]
.DB $E5, $FF
.ENDM
.MACRO END_PAL_TASK_AND_FADE_OUT_BG_PAL[]
.DB $E6
.ENDM
.MACRO END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
.DB $E8
.ENDM
.MACRO SET_BG_PALLETE_FULLY_FADED_IN[BgPal] bgpal
.DB $E9, bgpal
.ENDM
.MACRO SET_SPR_PALLETE_FULLY_FADED_IN[SprPal] sprpal
.DB $EA, sprpal
.ENDM
.MACRO SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] bgpal, sprpal
.DB $EB, bgpal, sprpal
.ENDM
.MACRO FADE_OUT_BG_AND_SPR_PALLETE[]
.DB $ED
.ENDM
.MACRO SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN_CHANGE_PAL_COLOR[BgPal_SprPal_index_color] bgpal, sprpal, index, color
.DB $EE, bgpal, sprpal, index, color
.ENDM
.MACRO RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
.DB $EF
.ENDM
.MACRO SET_SCENE_SIDE_BASED_ON_POSSESSION[]
.DB $F0
.ENDM
.MACRO SET_MIRRORING_TO_HORIZONTAL[]
.DB $F1
.ENDM
.MACRO SET_MIRRORING_TO_VERTICAL[]
.DB $F2
.ENDM
.MACRO PLAY_SOUND_BG[Sound] soundId
.DB $F3, soundId
.ENDM
.MACRO SET_SPRITE_SIZE_8_by_8[]
.DB $F5
.ENDM
.MACRO SET_SPRITE_SIZE_8_by_16[]
.DB $F6
.ENDM
.MACRO DRAW_BACKGROUND[bg_Id] bgID
.DB $F7, bgID
.ENDM
.MACRO DRAW_BACKGROUND_OFFSCREEN[bg_Id] bgID
.DB $F8, bgID
.ENDM
.MACRO DRAW_ONE_METASPRITE[spriteID] spriteID
.DB $F9, $01, spriteID
.ENDM
.MACRO DRAW_TWO_METASPRITES[spID1_sprID2] spriteID_1, spriteID_2
.DB $F9, $02, spriteID_1, spriteID_2
.ENDM
.MACRO DRAW_THREE_METASPRITES[spID1_sprID2_sprID3] spriteID_1, spriteID_2, spriteID_3
.DB $F9, $03, spriteID_1, spriteID_2, spriteID_3
.ENDM
.MACRO DRAW_P1_TEAM_CONF[]
.DB $FA, $00
.ENDM
.MACRO DRAW_P2_TEAM_CONF[]
.DB $FA, $01
.ENDM
.MACRO DRAW_CURRENT_TEAM_CONF[]
.DB $FA, $02
.ENDM
.MACRO DRAW_P1_TEAM_DIVISION[]
.DB $FA, $03
.ENDM
.MACRO DRAW_P2_TEAM_DIVISION[]
.DB $FA, $04
.ENDM
.MACRO DRAW_CURRENT_TEAM_DIVISION[]
.DB $FA, $05
.ENDM
.MACRO DRAW_P1_TEAM_NAME_CENTERED[]
.DB $FA, $06
.ENDM
.MACRO DRAW_P2_TEAM_NAME_CENTERED[]
.DB $FA, $07
.ENDM
.MACRO DRAW_CURRENT_TEAM_NAME_CENTERED[]
.DB $FA, $08
.ENDM
.MACRO DRAW_CURRENT_TEAM_CITY[]
.DB $FA, $0A
.ENDM
.MACRO DRAW_CURRENT_TEAM_MASCOT[]
.DB $FA, $0B
.ENDM
.MACRO DRAW_END_OF_GAME_STATS[]
.DB $FA, $0D
.ENDM
.MACRO SET_SCENE_SIDE_TO_P2[]
.DB $FA, $0E
.ENDM
.MACRO SET_SCENE_SIDE_TO_P1[]
.DB $FA, $0F
.ENDM
.MACRO CHECK_EXIT_SCREEN_IF_PLAY_ALL_GAMES_FLAG_OFF[]
.DB $FA, $10
.ENDM
.MACRO P1_WINS_TOSS_UPDATE_USER_CHOICE_SPRITE[]
.DB $FA, $11
.ENDM
.MACRO P2_WINS_TOSS_UPDATE_USER_CHOICE_SPRITE[]
.DB $FA, $12
.ENDM
.MACRO DRAW_CURRENT_OFF_ICON_NAME_CENTERED[]
.DB $FA, $13
.ENDM
.MACRO DRAW_QB_NAME_CENTERED[]
.DB $FA, $14
.ENDM
.MACRO DRAW_CURRENT_SCORE_LARGE_NUM[]
.DB $FA, $15
.ENDM
.MACRO SET_PLAYER_AND_REF_UNIFORM_COLORS[]
.DB $FA, $17
.ENDM
.MACRO DRAW_CURRENT_TEAM_CONFERENCE_ABREV[]
.DB $FA, $18
.ENDM
.MACRO SET_DIV_CHAMP_SPR_PALLETE[]
.DB $FA, $19
.ENDM
.MACRO SET_CONF_CHAMP_SPR_PALLETE[]
.DB $FA, $1A
.ENDM
.MACRO SET_SUPER_BOWL_SPR_PALLETE[]
.DB $FA, $1B
.ENDM
.MACRO DRAW_CURRENT_DEF_NAME_CENTERED[]
.DB $FA, $1D
.ENDM
.MACRO WAIT_NUMBER_OF_FRAMES_BG[frames] frames
.DB $FB, frames
.ENDM
.MACRO JUMP_TO_SCENE[scene_addr] scene_addr
.DB $FC, <scene_addr, >scene_addr
.ENDM
.MACRO DO_SCENE_SUBROUTINE[] scene_addr
.DB $FD, <scene_addr, >scene_addr
.ENDM
.MACRO RETURN_FROM_BG_SUBSCRIPT[]
.DB $FE
.ENDM
.MACRO END_OF_SCRIPT_OR_DATA[]
.DB $FF
.ENDM
_F}_SCENE_SCRIPT_MACROS
_F{_PPU_DATA_SCRIPT_MACROS
.MACRO MOVE_DOWN_NUM_ROWS_DATA_SCRIPT[num_rows] rows
.DB $A0 + rows
.ENDM
.MACRO WAIT_CURRENT_DELAY_FRAMES_DATA_SCRIPT[]
.DB $FE
.ENDM
_F}_PPU_DATA_SCRIPT_MACROS
.BASE $A000
.ORG $A000
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SCENE SCRIPTS ACTION SCENES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
_F{_SCENE_SCRIPT_POINTER_TABLE
.WORD INTRO_SCENE_SCRIPT ; 0X00 INTRO
.WORD START_SCREEN_SCRIPT ; 0X01 START_SCREEN
.WORD KICKOFF_WITH_KICKER_SCENE_SCRIPT ; 0X02 KICKOFF
.WORD PUNT_SCENE_SCRIPT ; 0X03 PUNT SCREEN
.WORD FG_SCENE_SCRIPT ; 0X04 FG_SCREEN
.WORD DEFENSE_JUMP_MISS_SCENE_SCRIPT ; 0X05 DEFENSE_JUMP_MISS
.WORD DEFENSE_JUMP_TIP_SCENE_SCRIPT ; 0X06 DEFENSE_JUMP_TIPPED
.WORD DEFENSE_JUMP_NORMAL_SCENE_SCRIPT ; 0X07 DEFENSE_TIPPED
.WORD DEFENSE_DIVE_MISS_SCENE_SCRIPT ; 0X08 DEFENSE_DIVE_MISS
.WORD BALL_BLOCK_MISS_SCENE_SCRIPT ; 0X09 BLOCK_MISS
.WORD BLOCKED_PUNT_SCENE_SCRIPT ; 0X0A BLOCK_PUNT
.WORD BLOCKED_FG_SCENE_SCRIPT ; 0X0B BLOCK_FG
.WORD BLOCKED_XP_SCENE_SCRIPT ; 0X0C BLOCK_XP
.WORD BLOCKED_PASS_SCENE_SCRIPT ; 0X0D BLOCK_PASS
.WORD KICK_TOWARDS_UPRIGHTS_SCENE_SCRIPT ; 0X0E KICK_TOWARDS_UPRIGHTS
.WORD P1_KICK_THROUGH_UPRIGHTS_SCENE_SCRIPT ; 0X0F P1_KICK_THROUGH_UPRIGHTS
.WORD P2_KICK_THROUGH_UPRIGHTS_SCENE_SCRIPT ; 0x10 P2_KICK_THROUGH_UPRIGHTS
.WORD FG_GOOD_SCENE_SCRIPT ; 0x11 FG_GOOD
.WORD P2_FG_TOWARDS_UR_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x12 P2 FG GOING TOWARDS UPRIGHTS SIDE VIEW
.WORD P1_FG_TOWARDS_UR_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x13 P1 FG GOING TOWARDS UPRIGHTS SIDE VIEW
.WORD P1_FG_LEFT_UR_GOOD_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x14 P1_LEFT_UPRIGHT_GOOD
.WORD P1_FG_RIGHT_UR_GOOD_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x15 P1_RIGHT_UPRIGHT_GOOD
.WORD P1_FG_LEFT_UR_MISS_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x16 P1_LEFT_UPRIGHT_MISS
.WORD P1_RIGHT_UR_MISS_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x17 P1_RIGHT_UPRIGHT_MISS
.WORD P1_LEFT_UR_WIDE_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x18 P1_LEFT_UPRIGHT_WIDE
.WORD P1_RIGHT_UR_WIDE_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x19 P1_RIGHT_UPRIGHT_WIDE
.WORD P1_FG_SHORT_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x1A P1_SHORT_UPRIGHT
.WORD REF_NO_GOOD_SCENE_SCRIPT ; 0x1B REF_NO_GOOD_SIGNAL
.WORD P2_FG_RIGHT_UR_GOOD_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x1C P2_RIGHT_UPRIGHT_GOOD
.WORD P2_FG_LEFT_UR_GOOD_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x1D P2_LEFT_UPRIGHT_GOOD
.WORD P2_FG_LEFT_UR_MISS_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x1E P2_RIGHT_UPRIGHT_MISS
.WORD P2_LEFT_UR_MISS_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x1F P2_LEFT_UPRIGHT_MISS
.WORD P2_RIGHT_UR_WIDE_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x20 P2_RIGHT_UPRIGHT_WIDE
.WORD P2_LEFT_UR_WIDE_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x21 P2_LEFT_UPRIGHT_WIDE
.WORD P2_FG_SHORT_OVERHEAD_VIEW_SCENE_SCRIPT ; 0x22 P2_SHORT_UPRIGHT
.WORD SUCCESSFUL_TRY_SCENE_SCRIPT ; 0x23 XP_GOOD
.WORD UNUSED1_SCENE_SCRIPT ; 0x24 UNUSED
.WORD UNUSED1_SCENE_SCRIPT ; 0x25 UNUSED
.WORD QB_SACK_SCENE_SCRIPT ; 0x26 QB_SACK
.WORD QB_SACK_SIDE_CHANGE_SCENE_SCRIPT ; 0x27 QB_SACK_SIDE_CHANGE
.WORD QB_SACK_SAFETY_SCENE_SCRIPT ; 0x28 QB_SACK_SAFETY
.WORD QB_PASSING_BALL_SCENE_SCRIPT ; 0x29 PASS
.WORD PLAYER_JUMPING_SCENE_SCRIPT ; 0x2A START OF PLAYER JUMPING UP TO CATCH PASS
.WORD OFF_JUMP_CATCH_SCENE_SCRIPT ; 0x2B OFFENSE_JUMP_CATCH
.WORD OFF_JUMP_MISS_SCENE_SCRIPT ; 0x2C OFFENSE_JUMP_MISS
.WORD OFF_JUMP_TIP_SCENE_SCRIPT ; 0x2D OFFENSE_JUMP_TIPPED
.WORD DOUBLE_JUMP_SCENE_SCRIPT ; 0x2E DOUBLE_JUMP
.WORD OFF_CATCH_SIDE_VIEW_SCENE_SCRIPT ; 0x2F OFFENSE_CATCH_SIDEWAYS
.WORD OFF_DROP_SIDE_VIEW_SCENE_SCRIPT ; 0x30 OFFENSE_TIP_SIDEWAYS
.WORD PASS_HITS_GROUND_SCENE_SCRIPT ; 0x31 WHIFF_INCOMPLETE_PASS
.WORD OFF_DIVING_CATCH_SCENE_SCRIPT ; 0x32 OFFENSE_DIVE_CATCH
.WORD OFF_DIVING_MISS_SCENE_SCRIPT ; 0x33 OFFENSE_DIVE_MISS
.WORD OFF_DIVE_DROP_SCENE_SCRIPT ; 0x34 OFFENSE_DIVE_TIPPED
.WORD UNUSED2_SCENE_SCRIPT ; 0x35 UNUSED
.WORD UNUSED2_SCENE_SCRIPT ; 0x36 UNUSED
.WORD INJURY_SCENE_SCRIPT ; 0x37 INJURY
.WORD RUSHING_TD_SCENE_SCRIPT ; 0x38 RUSHING_TOUCHDOWN
.WORD PASSING_TD_SCENE_SCRIPT ; 0x39 PASSING_TOUCHDOWN
.WORD AFC_CHAMP_SCENE_SCRIPT ; 0x3A AFC_CHAMPION
.WORD SUPER_BOWL_CHAMP_SCENE_SCRIPT ; 0x3B SUPER BOWL CHAMPIONS + ROSTERS
.WORD FIELD_DOUBLE_DECKER_STADIUM_SCENE_SCRIPT ; 0x3C FIELD PLUS DOUBLE DECKER STADIUM LARGE CROWD
.WORD UNUSED3_SCENE_SCRIPT ; 0x3D UNUSED
.WORD REF_ARM_FORWARD_FIRST_DOWN_SCENE_SCRIPT ; 0x3E FIRST DOWN ARM POINTING FORWARD
.WORD REF_FIRST_DOWN_SCENE_SCRIPT ; 0x3F FIRST DOWN
.WORD REF_SECOND_DOWN_SCENE_SCRIPT ; 0x40 SECOND DOWN
.WORD REF_THIRD_DOWN_SCENE_SCRIPT ; 0x41 THIRD DOWN
.WORD REF_FOURTH_DOWN_SCENE_SCRIPT ; 0x42 FOURTH DOWN
.WORD DEF_JUMP_INT_SCENE_SCRIPT ; 0x43 DEFENSE_JUMP_INTERCEPTION
.WORD DOUBLE_JUMP_OFF_CATCH_SCENE_SCRIPT ; 0x44 DEFENDED_JUMP_CATCH
.WORD DOUBLE_JUMP_WHIFF_SCENE_SCRIPT ; 0x45 DEFENDED_JUMP_MISS
.WORD DOUBLE_JUMP_DEF_TIP_SCENE_SCRIPT ; 0x46 DEFENDED_JUMP_TIPPED
.WORD DOUBLE_JUMP_INT_SCENE_SCRIPT ; 0x47 DEFENDED_JUMP_INTERCEPTION
.WORD DEF_INT_SIDE_VIEW_SCENE_SCRIPT ; 0x48 DEFENSE_INTERCEPTION
.WORD HALF_TIME_BLIMP_SCENE_SCRIPT ; 0x49 HALF_TIME_BLIMP
.WORD HALF_TIME_WINKING_GIRL_SCENE_SCRIPT ; 0x4A HALF_TIME_GIRL_WINK
.WORD HALF_TIME_BAND_SCENE_SCRIPT ; 0x4B HALF_TIME_BAND
.WORD HALF_TIME_CHEER_PANTY_SCENE_SCRIPT ; 0x4C HALF_TIME_CHEERLEADER_TOSS
.WORD HALF_TIME_PARACHUTE_WAVE_SCENE_SCRIPT ; 0x4D HALF_TIME_PARACHUTE_WAVE
.WORD PLAYER_PORT_WITH_PASS_STAT_TXT_SCRIPT_UNUSED ; 0x4E DRAW PLAYER PORTAIT WITH SMALL COMP%, YD, TD UNUSED
.WORD HALF_TIME_CHEER_KICK_SCENE_SCRIPT ; 0x4F HALF_TIME_CHEERLEADER_KICK
.WORD HALF_TIME_KISS_SCENE_SCRIPT ; 0x50 HALF_TIME_GIRL_KISS
.WORD DEF_DIVE_MISS_OFF_CATCH_SCENE_SCRIPT ; 0x51 DEFENSE_DIVE_MISS_WR_CATCH
.WORD DEF_JUMP_WHIFF_OFF_CATCH_SCENE_SCRIPT ; 0x52 DEFENSE_JUMP_MISS_WR_CATCH
.WORD DEF_DIVE_MISS_OFF_DROP_SCENE_SCRIPT ; 0x53 DEFENSE_DIVE_MISS_BOUNCE_OFF_WR_HANDS
.WORD DEF_JUMP_WHIFF_OFF_DROP_SCENE_SCRIPT ; 0x54 DEFENSE_JUMP_MISS_B5BOUNCE_OFF_WR_HANDS
.WORD DEF_DIVE_INT_SCENE_SCRIPT ; 0x55 DEFENSE_DIVE_INTERCEPTION
.WORD DIVISION_CHAMP_SCENE_SCRIPT ; 0x56 DIVISION_CHAMP
.WORD FLASH_START_GAME_SCENE_SCRIPT ; 0x57 FLASH_START_GAME
.WORD MIGHTY_BOMBJACK_HALFTIME_SCENE_SCRIPT ; 0x58 MIGHTY_BOMBJACK_HALFTIME
.WORD HALFTIME_SEQ1_SCENE_SCRIPT ; 0x59 HALFTIME 1 (BLIMP, WINK, BAND, KISS)
.WORD HALFTIME_SEQ2_SCENE_SCRIPT ; 0x5A HALFTIME 2 (PARACHUTE, WAVE, KICKING, PANTY)
.WORD HALFTIME_SEQ3_SCENE_SCRIPT ; 0x5B HALFTIME 3
.WORD HALFTIME_SEQ4_SCENE_SCRIPT ; 0x5C HALFTIME 4
.WORD RUSH_YARDS_SCENE_SCRIPT ; 0x5D YARDS RUSH TODAY UNUSED
.WORD YARDS_RETURN_TODAY_SCENE_SCRIPT ; 0x5E YARDS RETURN TODAY UNUSED
.WORD YARDS_RECEIVE_TODAY_SCENE_SCRIPT ; 0x5F YARDS RECEIVE TODAY UNUSED
.WORD INTERCEPTION_TD_SCENE_SCRIPT ; 0x60 INT TD UNUSED
.WORD DEFENSIVE_TD_SCENE_SCRIPT ; 0x61 DEFENSIVE TD UNUSED
.WORD YARDS_RUSH_TODAY_SCENE_SCRIPT ; 0x62 YARDS RUSH TODAY UNUSED
.WORD YARDS_REC_TODAY_SCENE_SCRIPT ; 0x63 YARDS REC TODAY UNUSED
.WORD SACKS_TODAY_SCENE_SCRIPT ; 0x64 SACKS TODAY UNUSED
.WORD INT_TODAY_SCENE_SCRIPT ; 0x65 INT TODAY UNUSED
.WORD BLANK_YARDS_RUSHER_SCENE_SCRIPT ; 0x66 000 YARDS RUSHER UNUSED
.WORD BLANK_YARDS_RECEIVER_SCENE_SCRIPT ; 0x67 000 YARDS RECEIVER UNUSED
.WORD BLANK_YARDS_PASSER_SCENE_SCRIPT ; 0x68 000 YARDS PASSER UNUSED
.WORD FALSE_START_SCENE_SCRIPT ; 0x69 FALSE START
.WORD OFFSIDE_SCENE_SCRIPT ; 0x6A OFFSIDE
.WORD NFC_CHAMPION_SCENE_SCRIPT ; 0x6B CONFERENCE_CHAMPION
.WORD UNUSED4_SCENE_SCRIPT ; 0x6C UNUSED
.WORD UNUSED4_SCENE_SCRIPT ; 0x6D UNUSED
.WORD CREDITS_SCENE_SCRIPT ; 0x6E CREDITS
.WORD SOUND_MODE_SCENE_SCRIPT ; 0x6F SOUND_MODE
.WORD P1_FIRST_DOWN_CHAINS_SCENE_SCRIPT ; 0x70 P1_CHAINS_FIRST_DOWN
.WORD SECOND_DOWN_CHAINS_SCENE_SCRIPT ; 0x71 CHAINS_SECOND_DOWN
.WORD THIRD_DOWN_CHAINS_SCENE_SCRIPT ; 0x72 CHAINS_THIRD_DOWN
.WORD FOURTH_DOWN_CHAINS_SCENE_SCRIPT ; 0x73 CHAINS_FOURTH_DOWN
.WORD CHANGE_SIDE_CHAINS_SCENE_SCRIPT ; 0x74 CHAINS_CHANGE_SIDE
.WORD P2_FIRST_DOWN_CHAINS_SCENE_SCRIPT ; 0x75 P2_CHAINS_FIRST_DOWN
.WORD UNUSED5_SCENE_SCRIPT ; 0x76 UNUSED
.WORD UNUSED5_SCENE_SCRIPT ; 0x77 UNUSED
_F}_SCENE_SCRIPT_POINTER_TABLE
_F{_INTRO_SCRIPT
INTRO_SCENE_SCRIPT: ; 0X01 INTRO
@tecmo_presents:
RESET_X_Y_SCROLL_TO_ZERO[]
SET_MIRRORING_TO_HORIZONTAL[]
DRAW_BACKGROUND[bg_Id] $25 ; (TECMO PRESENTS)
DRAW_ONE_METASPRITE[spriteID] $C2 ; (BUNNY SPRITE)
WAIT_NUMBER_OF_FRAMES_BG[frames] $1E ; WAIT 30 FRAMES = 0.5 SEC
SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] $1A, $4A
WAIT_NUMBER_OF_FRAMES_BG[frames] $B4 ; WAIT 180 FRAMES = 3 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
@nfl_shield
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
DRAW_BACKGROUND[bg_Id] $13 ; (TEAM + NFL SHIELD)
DRAW_ONE_METASPRITE[spriteID] $12 ;(NFL LOGO)
SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] $0E, $01
WAIT_NUMBER_OF_FRAMES_BG[frames] $B4 ; WAIT 180 FRAMES = 3 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
@nfl_pa_football
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
DRAW_BACKGROUND[bg_Id] $12 ;( NFL PA FOOTBALL )
DRAW_ONE_METASPRITE[spriteID] $7F
SET_SPRITE_SIZE_8_by_8[] ; SET TEXT SIZE TO 8 X 8
SET_BG_SCRIPT_PPU_ADDR[addr] $21AD
.DB $40, " 1991" ;
SET_BG_SCRIPT_PPU_ADDR[addr] $21E3
.DB " NATIONAL FOOTBALL LEAGUE" ;
MOVE_DOWN_2_ROWS[]
.DB " PLAYERS ASSOCIATION" ;
MOVE_DOWN_3_ROWS[]
.DB "OFFICIALLY LICENSED PRODUCT" ;
MOVE_DOWN_2_ROWS[]
.DB " OF THE NATIONAL FOOTBALL" ;
MOVE_DOWN_2_ROWS[]
.DB "LEAGUE PLAYERS ASSOCIATION" ;
SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] $0E, $00
WAIT_NUMBER_OF_FRAMES_BG[frames] $B4 ; WAIT 180 FRAMES = 3 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
@city_skyline:
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
DRAW_BACKGROUND[bg_Id] $0F ; (CITY SKYLINE TOP)
DRAW_BACKGROUND_OFFSCREEN[bg_Id] $10 ; (CITY SKYLINE BOTTOM) OFFSCREEN
SET_IRQ_CNTR_PPU_ADDR_AND_CHR[irq_counter_ppu_addr_ch0bk_ch1_bk] $01, $EF, $2940, $78, $00 ; SET IRQ 1 SCROLL START (COUNTER VAL, PPU ADDR , CHR BANK 0, CHR BANK 1)
SET_BG_SCRIPT_PPU_ADDR_AND_DATA[addr_data] $2380, BOTTOM_TWO_ROWS_CITY_INTRO ; BOTTOM ROW OF CITY SKYLINE
SET_BG_SCRIPT_PPU_ADDR_AND_DATA[addr_data] $23F8, BOTTOM_TWO_ROWS_CITY_ATTRIBS_INTRO ; ATTRIB TABLE ATTRIB TABLE BOTTOM 2 ROWS OF CITY SKYLINE
@stadium:
DRAW_THREE_METASPRITES[spID1_sprID2_sprID3] $24, $25, $26 ; (MOVING STADIUM OVERLAY SPRITES)
SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] $0C, $3C
PLAY_SOUND_BG[Sound] $3A ; (PRE-INTRO SONG)
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
SET_SCROLLING[yspd_xspd_time] $F8, $00, $13 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
WAIT_NUMBER_OF_FRAMES_BG[frames] $8F ; WAIT 143 FRAMES = 2.38 SEC
PLAY_SOUND_BG[Sound] $1C ; (CHEER NOISE)
SET_IRQ_VERTICAL_SCROLL_SPEEED_AND_STOP[yspeed_ystop] $F0, $50 ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $B4 ; WAIT 180 FRAMES = 3 SEC
WAIT_NUMBER_OF_FRAMES_BG[frames] $B4 ; WAIT 180 FRAMES = 3 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
@ready_and_lineman:
WAIT_NUMBER_OF_FRAMES_BG[frames] $78 ; WAIT 120 FRAMES = 2 SEC
DRAW_ONE_METASPRITE[spriteID] $80 ;("READY!")
SET_BG_CHR_BANKS[table0_table1] $18, $1A ; SET IRQ 0 BACKGROUND CHR BANKS (CHR BANK 0, CHR BANK 1)
SET_BG_SCRIPT_PPU_ADDR_AND_DATA[addr_data] $218A, READY_LARGE_TILES_INTRO
SET_BG_SCRIPT_PPU_ADDR_AND_DATA[addr_data] $23DA, READY_LARGE_TILES_ATTRIB_INTRO
START_CHANGING_PALLETE[pallete_id] $00
WAIT_NUMBER_OF_FRAMES_BG[frames] $17 ; WAIT 23 FRAMES = 0.38 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
PLAY_SOUND_BG[Sound] $3B ;(INTRO SONG)
SET_SPRITES_OFFSCREEN_AND_FILL_ALL_BG_NT_WITH_TILE[tile] $01
DRAW_BACKGROUND[bg_Id] $0B ; (LINEMAN GETTING READY TO BLOCK)
DRAW_THREE_METASPRITES[spID1_sprID2_sprID3] $50, $51, $52 ; (MOVING LINEMAN ANIMATION)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $09, $1E
WAIT_NUMBER_OF_FRAMES_BG[frames] $37 ; WAIT 55 FRAMES = 0.91 SEC
SET_SCROLLING[yspd_xspd_time] $00, $FC, $01 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
INCREASE_SCROLL_SPEED[yspd_xspd] $00, $04 ; SET AMOUNT TO INCREASE SCROLL SPEED (Y,X)
WAIT_NUMBER_OF_FRAMES_BG[frames] $46 ; WAIT 70 FRAMES = 1.16 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
@sf_qb_dropback:
SET_BG_CHR_BANKS[table0_table1] $18, $30 ; SET IRQ 0 BACKGROUND CHR BANKS (CHR BANK 0, CHR BANK 1)
DRAW_BACKGROUND[bg_Id] $1C ; (STADIUM TOP HALF )
SET_IRQ_SCROLL[irq_counter_speed] $01, $40, $88 ; SET IRQ 1 SCROLLING (SCROLL AMOUNT, COUNTER VAL)
DRAW_TWO_METASPRITES[spID1_sprID2] $18, $17 ; DRAW 2 SPRITES (HAND SNAPPING BALL, BALL LEFT TO RIGHT SNAP)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $00, $00
WAIT_NUMBER_OF_FRAMES_BG[frames] $14 ; WAIT 20 FRAMES = 0.3 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
DRAW_BACKGROUND[bg_Id] $29 ; (BOTTOM OF STADIUM LARGE CROWD SHOT+ SOME FIELD)
SET_IRQ_AND_CHR[irq_counter_ch0bk_ch1bk] $01, $80, $18, $1A ; SET IRQ 1 (IRQ COUNTER, CHR BANK 0, CHR BANK 1)
DRAW_ONE_METASPRITE[spriteID] $9B ;(QB DROPPING BACK)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $32, $1F
SET_SCROLLING[yspd_xspd_time] $00, $08, $10 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
START_CHANGING_PALLETE[pallete_id] $04
WAIT_NUMBER_OF_FRAMES_BG[frames] $28 ; WAIT 40 FRAMES = 0.66 SEC
DECREASE_SCROLL_SPEED[yspd_xspd] $00, $00 ; DECREASE SCROLL SPEED (Y,X) SET SCROLL TIMER TO VERY LONG
WAIT_NUMBER_OF_FRAMES_BG[frames] $1E ; WAIT 30 FRAMES = 0.5 SEC
SET_SPRITE_SIZE_8_by_16[] ; SET TEXT SIZE TO 16 X 16
SET_BG_SCRIPT_PPU_ADDR[addr] $2263
.DB "SAN FRANCISCO" ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $28 ; WAIT 40 FRAMES = 0.66 SEC
SET_BG_SCRIPT_PPU_ADDR[addr] $22CB
.DB "49ERS" ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $78 ; WAIT 120 FRAMES = 2 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
@Barry_Scene:
DRAW_ONE_METASPRITE[spriteID] $9F ;( BARRY CUTTING ACROSS FAST)
SET_SPR_PALLETE_FULLY_FADED_IN[SprPal] $00 ; SET SPR PAL AND SET TO FULLY FADED IN
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
DRAW_BACKGROUND[bg_Id] $16 ; (LARGE RB CUTTING)
SET_IRQ_SCROLL[irq_counter_speed] $01, $32, $E0 ; SET IRQ 1 SCROLLING (COUNTER VAL, SCROLL SPEED)
SET_IRQ_AND_CHR[irq_counter_ch0bk_ch1bk] $02, $50, $18, $1A ; SET IRQ 2 (IRQ COUNTER, CHR BANK 0, CHR BANK 1)
DRAW_ONE_METASPRITE[spriteID] $2A ;(BACK OF DEFNEDER TRYING TO TACKLE BARRY)
SET_SCROLLING[yspd_xspd_time] $00, $10, $05 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] $10, $3B
WAIT_NUMBER_OF_FRAMES_BG[frames] $1A ; WAIT 26 FRAMES = ~0.5 SEC
CHANGE_IRQ_SCROLL_SPEEED[irq_speed] $01, $00 ; STOP SCROLL
WAIT_NUMBER_OF_FRAMES_BG[frames] $1E ; WAIT 30 FRAMES = 0.5 SEC
SET_BG_SCRIPT_PPU_ADDR[addr] $2269
.DB "DETROIT" ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $28 ; WAIT 40 FRAMES = 0.66 SEC
SET_BG_SCRIPT_PPU_ADDR[addr] $22CB
.DB "LIONS" ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $78 ; WAIT 120 FRAMES = 2 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
@LT_Scene:
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
SET_MIRRORING_TO_VERTICAL[]
SET_SPRITES_OFFSCREEN_AND_FILL_ALL_BG_NT_WITH_TILE[tile] $01
DRAW_BACKGROUND[bg_Id] $0A ; DRAW PLAYER COMING FOR TACKLE LEFT SIDE OF SCREEN
DRAW_ONE_METASPRITE[spriteID] $D0 ; DRAW SPRITE( LT SACK MOVING LEFT TO RIGHT)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $08, $20
SET_SCROLLING[yspd_xspd_time] $00, $78, $30 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
WAIT_NUMBER_OF_FRAMES_BG[frames] $0A ; WAIT 10 FRAMES = 0.16 SEC
DO_SCENE_SUBROUTINE[] CYCLE_PAL_COLORS_AFTER_SACK_INTRO ; FLASH BG AND SPR PALLETES AFTER SACK
DO_SCENE_SUBROUTINE[] CYCLE_PAL_COLORS_AFTER_SACK_INTRO
DO_SCENE_SUBROUTINE[] CYCLE_PAL_COLORS_AFTER_SACK_INTRO
DO_SCENE_SUBROUTINE[] CYCLE_PAL_COLORS_AFTER_SACK_INTRO
WAIT_NUMBER_OF_FRAMES_BG[frames] $28 ; WAIT 40 FRAMES = 0.66 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
SET_MIRRORING_TO_HORIZONTAL[] ; SET GAME STATUS AND PPUR MIRRORING TO HORIZONTAL
SET_SPRITES_OFFSCREEN_AND_FILL_ALL_BG_NT_WITH_TILE[tile] $01
DRAW_BACKGROUND[bg_Id] $37 ; (SKY TOP)
DRAW_BACKGROUND_OFFSCREEN[bg_Id] $09 ; (PLAYER LAYING ON GROUND) OFFSCREEN
SET_IRQ_CNTR_PPU_ADDR_AND_CHR[irq_counter_ppu_addr_ch0bk_ch1_bk] $01, $60, $2920, $18, $44
DRAW_THREE_METASPRITES[spID1_sprID2_sprID3] $56, $61, $55 ; (LT STANDING OVER PLAYER)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $07, $21
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
SET_SCROLLING[yspd_xspd_time] $F0, $00, $07 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
WAIT_NUMBER_OF_FRAMES_BG[frames] $96 ; WAIT 150 FRAMES = 2.5 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
DRAW_BACKGROUND[bg_Id] $29 ; (BOTTOM OF STADIUM LARGE CROWD SHOT+ SOME FIELD)
SET_IRQ_AND_CHR[irq_counter_ch0bk_ch1bk] $01, $80, $18, $1A ; SET IRQ 1 (IRQ COUNTER, CHR BANK 0, CHR BANK 1)
DRAW_ONE_METASPRITE[spriteID] $BB ;(LT STANDING UP WITH GLOVES)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $32, $22
SET_SCROLLING[yspd_xspd_time] $00, $08, $10 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
INCREASE_SCROLL_SPEED[yspd_xspd] $00, $FF ; SET AMOUNT TO INCREASE SCROLL SPEED (Y,X)
START_CHANGING_PALLETE[pallete_id] $04
WAIT_NUMBER_OF_FRAMES_BG[frames] $39 ; WAIT 57 FRAMES = ~ 1 SEC
DECREASE_SCROLL_SPEED[yspd_xspd] $00, $00 ; DECREASE SCROLL SPEED (Y,X) SET SCROLL TIMER TO VERY LONG
INCREASE_SCROLL_SPEED[yspd_xspd] $00, $00 ; SET AMOUNT TO INCREASE SCROLL SPEED (Y,X)
WAIT_NUMBER_OF_FRAMES_BG[frames] $1E ; WAIT 30 FRAMES = 0.5 SEC
SET_BG_SCRIPT_PPU_ADDR[addr] $2268
.DB "NEW YORK" ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $28 ; WAIT 40 FRAMES = 0.66 SEC
SET_BG_SCRIPT_PPU_ADDR[addr] $22CA
.DB "GIANTS" ;
WAIT_NUMBER_OF_FRAMES_BG[frames] $78 ; WAIT 120 FRAMES = 2 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
SET_MIRRORING_TO_VERTICAL[]
WAIT_NUMBER_OF_FRAMES_BG[frames] $1E ; WAIT 30 FRAMES = 0.5 SEC
DRAW_BACKGROUND[bg_Id] $21 ; (LARGE FOOTBALL TEXT BLUE LINE)
DRAW_ONE_METASPRITE[spriteID] $7F
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $0A, $00
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN_CHANGE_PAL_COLOR[BgPal_SprPal_index_color] $0A, $00, $0F, $0F ; SET BG AND SPR PAL AND SET TO FULLY FADED IN, SET PAL BUFFER TO COLOR (INDEX, COLOR)
SET_SCROLLING[yspd_xspd_time] $00, $90, $20 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
DECREASE_SCROLL_SPEED[yspd_xspd] $00, $00 ; DECREASE SCROLL SPEED (Y,X) SET SCROLL TIMER TO VERY LONG
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $0E, $00
SET_SCROLLING[yspd_xspd_time] $00, $E0, $60 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
WAIT_NUMBER_OF_FRAMES_BG[frames] $78 ; WAIT 120 FRAMES = 2 SEC
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN_CHANGE_PAL_COLOR[BgPal_SprPal_index_color] $0E, $00, $0F, $15 ; SET BG AND SPR PAL AND SET TO FULLY FADED IN, SET PAL BUFFER TO COLOR (INDEX, COLOR)
WAIT_NUMBER_OF_FRAMES_BG[frames] $87 ; WAIT 135 FRAMES = 2.25 SEC
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $0A, $00
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN_CHANGE_PAL_COLOR[BgPal_SprPal_index_color] $0A, $00, $09, $15 ; SET BG AND SPR PAL AND SET TO FULLY FADED IN, SET PAL BUFFER TO COLOR (INDEX, COLOR)
WAIT_NUMBER_OF_FRAMES_BG[frames] $50 ; WAIT 80 FRAMES = 1.33 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
DO_SCENE_SUBROUTINE[] SCROLL_IN_LARGE_TECMO_SUPER_BOWL_SCENE_SCRIPT
DRAW_ONE_METASPRITE[spriteID] $9D ;(NFL SHILED MOVING DOWN)
SET_AND_FADE_IN_SPR_PALLETE[SprPal] $35 ; SET AND FADE IN SPR PAL (PAL)
WAIT_NUMBER_OF_FRAMES_BG[frames] $FF ; WAIT 255 FRAMES = 4.25 SEC
WAIT_NUMBER_OF_FRAMES_BG[frames] $FF ; WAIT 255 FRAMES = 4.25 SEC
WAIT_NUMBER_OF_FRAMES_BG[frames] $FF ; WAIT 255 FRAMES = 4.25 SEC
WAIT_NUMBER_OF_FRAMES_BG[frames] $64 ; WAIT 100 FRAMES = 1.66 SEC
START_CHANGING_PALLETE[pallete_id] $09
WAIT_NUMBER_OF_FRAMES_BG[frames] $B4 ; WAIT 180 FRAMES = 3 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
SET_BG_CHR_BANKS[table0_table1] $18, $1A ; SET IRQ 0 BACKGROUND CHR BANKS (CHR BANK 0, CHR BANK 1)
SET_SPRITE_SIZE_8_by_8[] ; SET TEXT SIZE TO 8 X 8
SET_BG_SCRIPT_PPU_ADDR[addr] $2144
.DB "TECMO IS A TRADEMARK OF" ;
SET_BG_SCRIPT_PPU_ADDR[addr] $2182
.DB "TECMO INC. SUPER BOWL AND NFL" ;
SET_BG_SCRIPT_PPU_ADDR[addr] $21C2
.DB "SHIELD DESIGN ARE TRADEMARKS" ;
SET_BG_SCRIPT_PPU_ADDR[addr] $2204
.DB "OF THE NATIONAL FOOTBALL" ;
SET_BG_SCRIPT_PPU_ADDR[addr] $2245
.DB "LEAGUE PROPERTIES INC." ;
DRAW_ONE_METASPRITE[spriteID] $7F
SET_AND_FADE_IN_BG_AND_SPR_PALLETE[BgPal_SprPal] $00, $00
WAIT_NUMBER_OF_FRAMES_BG[frames] $F0 ; WAIT 240 FRAMES = 4 SECONDS
WAIT_NUMBER_OF_FRAMES_BG[frames] $F0 ; WAIT 240 FRAMES = 4 SECONDS
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
JUMP_TO_SCENE[scene_addr] INTRO_SCENE_SCRIPT ; JUMP->INTRO SCREEN LOOP
READY_LARGE_TILES_INTRO: ; "READY LARGE TILES"
.DB $08, $94, $A9, $C0, $C1, $90, $91, $94, $91 ; length + tiles
.DB $A1 ; DOWN ONE ROW
.DB $08, $86, $88, $C2, $C3, $86, $87, $96, $93 ; length + tiles
END_OF_SCRIPT_OR_DATA[]
READY_LARGE_TILES_ATTRIB_INTRO: ; "READY LARGE TILES ATRRIB TABLE VALUE"
.DB $03, $00, $09, $03
END_OF_SCRIPT_OR_DATA[]
BOTTOM_TWO_ROWS_CITY_INTRO: ; BOTTOM 2 ROWS OF CITY SKYLINE
; LENGTH, TILES
.DB $20, $8D, $87, $85, $00, $AD, $98, $2A, $00, $B8, $91, $94, $00, $00, $3C, $3C, $3C, $3F, $81, $C4, $CC, $D2, $00, $86, $A5, $90, $98, $DA, $00, $00, $E4, $E5, $00
.DB $A1
.DB $20, $8A, $8B, $8E, $AE, $00, $9A, $00, $00, $00, $93, $94, $95, $00, $78, $3C, $3D, $3C, $81, $00, $00, $A2, $A1, $A6, $AF, $90, $B0, $DA, $00, $00, $E6, $ED, $8F
END_OF_SCRIPT_OR_DATA[]
BOTTOM_TWO_ROWS_CITY_ATTRIBS_INTRO: ; ATTRIB TABLE BOTTOM 2 ROWS OF CITY SKYLINE
.DB $08, $05, $05, $05, $0F, $07, $05, $05, $05
END_OF_SCRIPT_OR_DATA[]
CYCLE_PAL_COLORS_AFTER_SACK_INTRO: ; FLASH BG AND SPR PALLETES INTRO (4 FRAMES)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $19, $3E
WAIT_NUMBER_OF_FRAMES_BG[frames] $01
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $08, $20
WAIT_NUMBER_OF_FRAMES_BG[frames] $01
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $19, $3E
WAIT_NUMBER_OF_FRAMES_BG[frames] $01
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $08, $20
WAIT_NUMBER_OF_FRAMES_BG[frames] $01
RETURN_FROM_BG_SUBSCRIPT[]
SCROLL_IN_LARGE_TECMO_SUPER_BOWL_SCENE_SCRIPT: ; SCROLL IN TECMO SUPER BOWL
DRAW_BACKGROUND_OFFSCREEN[bg_Id] $23 ; (TECMO SUPER BOWL LARGE) OFFSCREEN
SET_BG_PALLETE_FULLY_FADED_IN[BgPal] $1A ; SET BG PAL AND SET TO FULLY FADED IN
SET_SCROLLING[yspd_xspd_time] $00, $A0, $20 ; SET SCROLLING (Y SCROLL SPEED, =/- X SCROLL SPEED, TIME)
SET_IRQ_SCROLL[irq_counter_speed] $01, $36, $88 ;
SET_IRQ_SCROLL[irq_counter_speed] $02, $24, $78 ;
SET_IRQ_SCROLL_AND_CHR[irq_counter_speed_ch0bk_ch1bk] $03, $28, $00, $18, $1A
WAIT_NUMBER_OF_FRAMES_BG[frames] $3C ; WAIT 60 FRAMES = 1 SEC
SET_BG_PALLETE_FULLY_FADED_IN[BgPal] $1F ; SET BG PAL AND SET TO FULLY FADED IN
WAIT_NUMBER_OF_FRAMES_BG[frames] $2C ; WAIT 44 FRAMES = 0.73 SEC
CHANGE_IRQ_SCROLL_SPEEED[irq_speed] $01, $00 ; STOP SCROLL
WAIT_NUMBER_OF_FRAMES_BG[frames] $28 ; WAIT 40 FRAMES = 0.66 SEC
SET_BG_PALLETE_FULLY_FADED_IN[BgPal] $20 ; SET BG PAL AND SET TO FULLY FADED IN
WAIT_NUMBER_OF_FRAMES_BG[frames] $1C ; WAIT 28 FRAMES = ~ 0.5 SEC
CHANGE_IRQ_SCROLL_SPEEED[irq_speed] $02, $00
RETURN_FROM_BG_SUBSCRIPT[]
_F}_INTRO_SCRIPT
_F{_START_SCREEN_SCRIPT
START_SCREEN_SCRIPT: ; START SCREEN
DO_SCENE_SUBROUTINE[] DRAW_TSB_LARGE_START_SCREEN_SCRIPT
SET_BG_SCRIPT_PPU_ADDR[addr] $2247
.DB $1B, $1C, $19 ; COLORED STARS
.DB " START GAME " ;
.DB $19, $1C, $1B ; COLORED STARS
SET_BG_SCRIPT_PPU_ADDR[addr] $22C5
.DB "TM AND @ TECMO", $5C, "LTD.1991"
MOVE_DOWN_3_ROWS[]
.DB "NINTENDO OF AMERICA INC."
SET_BG_SCRIPT_PPU_ADDR[addr] $230B
.DB "LICENSED BY"
DRAW_THREE_METASPRITES[spID1_sprID2_sprID3] $BE, $BF, $C0 ; ( STARS1, STARS2, STARS3)
SET_BG_AND_SPR_PALLETE_FULLY_FADED_IN[BgPal_SprPal] $20, $3F
START_CHANGING_PALLETE[pallete_id] $08
START_SCREEN_LOOP_SCRIPT: ; ENDLESS START SCREEN LOOP
WAIT_NUMBER_OF_FRAMES_BG[frames] $F0 ; WAIT 240 FRAMES = 4 SEC
JUMP_TO_SCENE[scene_addr] START_SCREEN_LOOP_SCRIPT ; JUMP ->ENDLESS START SCREEN LOOP
DRAW_TSB_LARGE_START_SCREEN_SCRIPT: ; CLEAR NAMETABLES AND SPRITES AND DRAW TECMO SUPER BOWL LARGE LETTERS
RESET_X_Y_SCROLL_TO_ZERO[] ; SET IRQ0 SPLIT, XSCROLL,SOFT Y SCROLL LOC = 0
SET_MIRRORING_TO_VERTICAL[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
DRAW_BACKGROUND[bg_Id] $23 ; (TECMO SUPER BOWL LARGE LETTERS)
SET_IRQ_AND_CHR[irq_counter_ch0bk_ch1bk] $01, $90, $18, $1A ; SET IRQ 1 (IRQ COUNTER, CHR BANK 0, CHR BANK 1)
RETURN_FROM_BG_SUBSCRIPT[]
_F}_START_SCREEN_SCRIPT
_F{_KICKOFF_WITH_KICKER_SCENE_SCRIPT
KICKOFF_WITH_KICKER_SCENE_SCRIPT: ; 0x02 KICKOFF
RESET_X_Y_SCROLL_TO_ZERO[]
SET_MIRRORING_TO_HORIZONTAL[]
SET_SCENE_SIDE_BASED_ON_POSSESSION[] ; SET CUTSCENE PLAYER SIDE
DRAW_BACKGROUND[bg_Id] $29 ;( BOTTOM OF STADIUM LARGE CROWD SHOT + SOME FIELD)
SET_IRQ_AND_CHR[irq_counter_ch0bk_ch1bk] $01, $80, $18, $1A ; SET IRQ 1 (IRQ COUNTER, CHR BANK 0, CHR BANK 1)
SET_SPRITE_SIZE_8_by_16[] ; SET TEXT SIZE TO 16 X 16
SET_BG_SCRIPT_PPU_ADDR[addr] $2268
.DB "KICKOFF!" ;
DRAW_ONE_METASPRITE[spriteID] $58 ; DRAW SPRITE( PLAYER KICKOFF ARM IN AIR)
GET_DEFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal] $B2 ; GET SPECIAL TEAMS/DEFENDER PLAYER PALLETE, SET BG PAL AND FADE IN(PAL)
START_CHANGING_PALLETE[pallete_id] $04
WAIT_NUMBER_OF_FRAMES_BG[frames] $50 ; WAIT 80 FRAMES = 1.33 SEC
END_PAL_UPDATE_AND_FADE_OUT_BG_SPR_PAL[]
END_OF_SCRIPT_OR_DATA[]
_F}_KICKOFF_WITH_KICKER_SCENE_SCRIPT
_F{_PUNT_SCENE_SCRIPT
PUNT_SCENE_SCRIPT: ; 0x03 PUNT
RESET_X_Y_SCROLL_TO_ZERO[]
SET_MIRRORING_TO_HORIZONTAL[]
DO_SCENE_SUBROUTINE[] STADIUM_SPLIT_SCREEN_SCROLLING_SCRIPT
DRAW_TWO_METASPRITES[spID1_sprID2] $1D, $1C ; DRAW 2 SPRITES ( BALL TO FOOT, PUNTER SCROLL DOWN)
GET_OFFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal], $84
PLAY_SOUND_BG[Sound] $19 ; (WHOOSHING AIR)
WAIT_NUMBER_OF_FRAMES_BG[frames] $46 ; WAIT 70 FRAMES = 1.16 SECONDS
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
CLEAR_IRQS_END_PAL_UPDATE[] ; CLEAR IRQS AND END PAL UPDATE
DRAW_BACKGROUND[bg_Id] $24 ; (GRASS FOR PUNT/FG)
DRAW_BACKGROUND_OFFSCREEN[bg_Id] $30 ; (STADIUM OFFSCREEN)
DRAW_TWO_METASPRITES[spID1_sprID2] $53, $23 ; DRAW 2 SPRITES ( BIG BALL, FOOT KICKING BALL)
GET_OFFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal], $B2 ; GET P1 OR P2 SPR PALLETE, SET BG PAL AND FADE IN (BG PAL)
WAIT_NUMBER_OF_FRAMES_BG[frames] $05
START_CHANGING_PALLETE[pallete_id] $02 ; (GREEN+ WHITE)
WAIT_NUMBER_OF_FRAMES_BG[frames] $05
PLAY_SOUND_BG[Sound] $17 ; (COLLISION)
WAIT_NUMBER_OF_FRAMES_BG[frames] $09 ; WAIT 9 FRAMES
DRAW_TWO_METASPRITES[spID1_sprID2] $20, $21 ; DRAW 2 SPRITES ( PLAYER KICKING FULL, SMALL BALL SPINNING)
SWAP_SCROLL_NAMETABLE_ONCE_SPR_DRAW_IS_DONE[]
SET_SCROLLING[yspd_xspd_time] $00, $90, $40 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
INCREASE_SCROLL_SPEED[yspd_xspd] $00, $20 ; SET AMOUNT TO INCREASE SCROLL SPEED (Y,X)
WAIT_NUMBER_OF_FRAMES_BG[frames] $05
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
END_OF_SCRIPT_OR_DATA[]
STADIUM_SPLIT_SCREEN_SCROLLING_SCRIPT: ; SET STADIUM SPLIT SCREENS AND SCROLLING
SET_SCENE_SIDE_BASED_ON_POSSESSION[] ; SET CUTSCENE PLAYER SIDE
DRAW_BACKGROUND[bg_Id] $1C ; (STADIUM TOP HALF)
SET_IRQ_SCROLL_AND_CHR[irq_counter_speed_ch0bk_ch1bk] $01, $3C, $78, $18, $30
SET_IRQ_SCROLL[irq_counter_speed] $02, $10, $40 ;
SET_IRQ_SCROLL[irq_counter_speed] $3, $10, $78 ;
RETURN_FROM_BG_SUBSCRIPT[]
_F}_PUNT_SCENE_SCRIPT
_F{_FG_SCENE_SCRIPT
FG_SCENE_SCRIPT: ; 0x04 FG KICK
RESET_X_Y_SCROLL_TO_ZERO[]
SET_MIRRORING_TO_HORIZONTAL[]
SET_SCENE_SIDE_BASED_ON_POSSESSION[] ; SET CUTSCENE PLAYER SIDE
DRAW_BACKGROUND[bg_Id] $24 ; (GRASS FOR PUNT/FG)
DRAW_BACKGROUND_OFFSCREEN[bg_Id] $30 ; (STADIUM OFFSCREEN)
DRAW_TWO_METASPRITES[spID1_sprID2] $53, $23 ; DRAW 2 SPRITES ( BIG BALL, FOOT KICKING BALL)
GET_OFFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal], $B2
WAIT_NUMBER_OF_FRAMES_BG[frames] $05
START_CHANGING_PALLETE[pallete_id] $02
WAIT_NUMBER_OF_FRAMES_BG[frames] $05
PLAY_SOUND_BG[Sound] $17 ; (COLLISION)
WAIT_NUMBER_OF_FRAMES_BG[frames] $09
DRAW_TWO_METASPRITES[spID1_sprID2] $20, $5B ; DRAW 2 SPRITES ( PLAYER KICKING FULL, SMALL BALL FG KICK)
SWAP_SCROLL_NAMETABLE_ONCE_SPR_DRAW_IS_DONE[]
SET_SCROLLING[yspd_xspd_time] $00, $F0, $40 ; SET SCROLLING (Y SCROLL SPEED, X SCROLL SPEED, TIME)
INCREASE_SCROLL_SPEED[yspd_xspd] $00, $10 ; SET AMOUNT TO INCREASE SCROLL SPEED (Y,X)
WAIT_NUMBER_OF_FRAMES_BG[frames] $1E ; WAIT 30 FRAMES = 0.5 SEC
FADE_OUT_BG_AND_SPR_PALLETE[] ; SET BG AND SPR PAL TO FULLY FADED OUT
RESET_X_Y_SCROLL_AND_NAMETABLE_TO_ZERO[]
CLEAR_NAMETABLES_SET_SPRITES_OFFSCREEN_BG[]
END_OF_SCRIPT_OR_DATA[]
_F}_FG_SCENE_SCRIPT
_F{_DEFENSE_JUMP_SCENE_SCRIPTS
DEFENSE_JUMP_MISS_SCENE_SCRIPT: ; 0X05 DEFENSE_JUMP_MISS
DO_SCENE_SUBROUTINE[] PLAYER_JUMP_WHIFF_SCENE_SCRIPT
GET_DEFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal] $85 ; GET SPECIAL TEAMS/DEFENDER PLAYER PALLETE, SET BG PAL AND FADE IN(PAL)
JUMP_TO_SCENE[scene_addr] WAIT_ONE_SEC_THEN_FADE_OUT_SCENE_SCRIPT
DEFENSE_JUMP_TIP_SCENE_SCRIPT: ; 0X06 DEFENSE_JUMP_TIP
DO_SCENE_SUBROUTINE[] PLAYER_JUMPING_SCENE_SCRIPT
GET_DEFENSE_PLAYER_SPR_PALLETE_AND_FADE_IN[bgPal] $85 ; GET SPECIAL TEAMS/DEFENDER PLAYER PALLETE, SET BG PAL AND FADE IN(PAL)