ootw: intro: split off scanner

This commit is contained in:
Vince Weaver 2021-03-22 22:48:39 -04:00
parent e54ea9ba69
commit 0d1e97c966
5 changed files with 457 additions and 576 deletions

View File

@ -32,6 +32,7 @@ intro.o: intro.s \
intro_02_outer_door.s \
intro_03_elevator.s \
intro_04_keypad.s \
intro_05_scanner.s \
graphics/01_building/intro_car.inc \
graphics/01_building/intro_building.inc \
graphics/01_building/intro_building_car.inc \

View File

@ -1,7 +1,5 @@
include ../../../../../Makefile.inc
#PNG2RLE = ../../../gr-utils/png2rle
#PNG2LZ4 = ../../../gr-utils/png2lz4
PNG2GR = ../../../../../utils/gr-utils/png2gr
LZSA = ~/research/lzsa/lzsa/lzsa
@ -70,120 +68,7 @@ intro_scanning.inc: \
$(LZSA) -r -f2 $< $@
#####
#
#intro_ai_bg.inc: $(PNG2RLE) ai_background.png
# $(PNG2RLE) asm ai_background.png ai_bg_rle > intro_ai_bg.inc
#####
#intro_ai.inc: $(PNG2RLE) ai01.png ai02.png ai03.png ai04.png ai05.png \
# static01.png static02.png static03.png
# $(PNG2RLE) asm ai01.png ai01_rle > intro_ai.inc
# $(PNG2RLE) asm ai02.png ai02_rle >> intro_ai.inc
# $(PNG2RLE) asm ai03.png ai03_rle >> intro_ai.inc
# $(PNG2RLE) asm ai04.png ai04_rle >> intro_ai.inc
# $(PNG2RLE) asm ai05.png ai05_rle >> intro_ai.inc
# $(PNG2RLE) asm static01.png static01_rle >> intro_ai.inc
# $(PNG2RLE) asm static02.png static02_rle >> intro_ai.inc
# $(PNG2RLE) asm static03.png static03_rle >> intro_ai.inc
#####
#intro_scanner.inc: $(PNG2RLE) intro_scanner.png
# $(PNG2RLE) asm intro_scanner.png scanner_rle > intro_scanner.inc
#####
#intro_scanning.inc: $(PNG2RLE) \
# scan01.png scan02.png scan03.png \
# scan04.png scan05.png scan06.png \
# scan07.png scan08.png scan09.png \
# scan10.png scan11.png scan12.png \
# scan13.png scan14.png scan15.png \
# scan16.png scan17.png scan18.png \
# scan19.png
# $(PNG2RLE) asm scan01.png scan01_rle > intro_scanning.inc
# $(PNG2RLE) asm scan02.png scan02_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan03.png scan03_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan04.png scan04_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan05.png scan05_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan06.png scan06_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan07.png scan07_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan08.png scan08_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan09.png scan09_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan10.png scan10_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan11.png scan11_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan12.png scan12_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan13.png scan13_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan14.png scan14_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan15.png scan15_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan16.png scan16_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan17.png scan17_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan18.png scan18_rle >> intro_scanning.inc
# $(PNG2RLE) asm scan19.png scan19_rle >> intro_scanning.inc
#####
#####
#intro_ai_bg_lz4.inc: $(PNG2LZ4) ai_background.png
# $(PNG2LZ4) asm ai_background.png ai_bg_rle > intro_ai_bg_lz4.inc
#####
#intro_ai_lz4.inc: $(PNG2LZ4) ai01.png ai02.png ai03.png ai04.png ai05.png \
# static01.png static02.png static03.png
# $(PNG2LZ4) asm ai01.png ai01_rle > intro_ai_lz4.inc
# $(PNG2LZ4) asm ai02.png ai02_rle >> intro_ai_lz4.inc
# $(PNG2LZ4) asm ai03.png ai03_rle >> intro_ai_lz4.inc
# $(PNG2LZ4) asm ai04.png ai04_rle >> intro_ai_lz4.inc
# $(PNG2LZ4) asm ai05.png ai05_rle >> intro_ai_lz4.inc
# $(PNG2LZ4) asm static01.png static01_rle >> intro_ai_lz4.inc
# $(PNG2LZ4) asm static02.png static02_rle >> intro_ai_lz4.inc
# $(PNG2LZ4) asm static03.png static03_rle >> intro_ai_lz4.inc
#####
#
#intro_scanner_lz4.inc: $(PNG2LZ4) intro_scanner.png
# $(PNG2LZ4) asm intro_scanner.png scanner_rle > intro_scanner_lz4.inc
#####
#intro_scanning_lz4.inc: $(PNG2LZ4) \
# scan01.png scan02.png scan03.png \
# scan04.png scan05.png scan06.png \
# scan07.png scan08.png scan09.png \
# scan10.png scan11.png scan12.png \
# scan13.png scan14.png scan15.png \
# scan16.png scan17.png scan18.png \
# scan19.png
# $(PNG2LZ4) asm scan01.png scan01_rle > intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan02.png scan02_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan03.png scan03_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan04.png scan04_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan05.png scan05_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan06.png scan06_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan07.png scan07_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan08.png scan08_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan09.png scan09_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan10.png scan10_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan11.png scan11_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan12.png scan12_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan13.png scan13_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan14.png scan14_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan15.png scan15_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan16.png scan16_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan17.png scan17_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan18.png scan18_rle >> intro_scanning_lz4.inc
# $(PNG2LZ4) asm scan19.png scan19_rle >> intro_scanning_lz4.inc
####
clean:
rm -f *~ *.inc *.lzsa *.gr

View File

@ -48,119 +48,10 @@ repeat_intro:
jsr intro_04_keypad
;===============================
; Scanner
;===============================
;===============================
; Scanner
;===============================
;===============================
scanner:
lda #<(intro_scanner_lzsa)
sta getsrc_smc+1 ; LZSA_SRC_LO
lda #>(intro_scanner_lzsa)
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$c ; load to off-screen $c00
jsr decompress_lzsa2_fast
jsr gr_copy_to_current
jsr page_flip
lda #<scanning_sequence
sta INTRO_LOOPL
lda #>scanning_sequence
sta INTRO_LOOPH
jsr run_sequence
;===============================
;===============================
; Spinny DNA / Key
;===============================
;===============================
scanner2:
lda #<(ai_bg_lzsa)
sta getsrc_smc+1 ; LZSA_SRC_LO
lda #>(ai_bg_lzsa)
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$c ; load to off-screen $c00
jsr decompress_lzsa2_fast
jsr clear_bottom
bit TEXTGR ; split graphics/text
jsr gr_copy_to_current_40x40
jsr page_flip
jsr clear_bottom
;=============================
; Identification (nothing)
;=============================
lda #0
sta DNA_OUT
sta DNA_PROGRESS
lda #<ai_sequence
sta INTRO_LOOPL
lda #>ai_sequence
sta INTRO_LOOPH
jsr run_sequence_static
; slices / | - / nothing (pause)
; more slices / | - / nothing (pause)
; small circle / | - / nothing (pause)
; big circle / | - / nothing (pause)
; jsr gr_copy_to_current_40x40
; jsr draw_dna
; jsr page_flip
; approx one rotation until "Good evening"
; two rotation, then switch to key + Ferrari
; three rotations, then done
; - !!! DNA START 1 line
; / !!! DNA start 1 line
; !!! DNA 2 lines
; DNA 5 lines
; Good evening professor.
; DNA all lines
; Triggers:
; + DNA starts midway through big circle
; + Good evening printed at DNA_OUT=5
; + Switch to key, print ferrari
; Key |
; I see you have driven here in your \ Ferrari.
; Key - / nothing (pause)
ldx #35
spin_on_key:
txa
pha
jsr draw_dna
jsr page_flip
pla
tax
lda #250
jsr WAIT
dex
bne spin_on_key
jsr intro_05_scanner
;===============================
@ -1114,201 +1005,6 @@ done_intro:
.include "gr_run_sequence.s"
;=================================
; Display a sequence of images
; with /-|/ static overlay
run_sequence_static:
ldy #0 ; init
run_sequence_static_loop:
lda (INTRO_LOOPL),Y ; draw DNA
sta DNA_OUT
iny
lda (INTRO_LOOPL),Y ; pause for time
beq run_sequence_static_done
tax
lda DNA_OUT
bne pause_draw_dna
jsr long_wait
jmp done_pause_dna
pause_draw_dna:
txa
pha
tya
pha
jsr draw_dna
jsr page_flip
pla
tay
pla
tax
lda #250
jsr WAIT
dex
bne pause_draw_dna
done_pause_dna:
iny ; point to overlay
lda #10 ; set up static loop
sta STATIC_LOOPER
sty INTRO_LOOPER ; save for later
static_loop:
lda (INTRO_LOOPL),Y
sta getsrc_smc+1 ; LZSA_SRC_LO
iny
lda (INTRO_LOOPL),Y
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$10 ; load to $1000
jsr decompress_lzsa2_fast
jsr gr_overlay_40x40
ldy STATIC_LOOPER
lda static_pattern,Y
sta getsrc_smc+1 ; LZSA_SRC_LO
lda static_pattern+1,Y
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$10 ; load to $1000
jsr decompress_lzsa2_fast
; force 40x40 overlay
jsr gr_overlay_40x40_noload
lda DNA_OUT
beq no_dna
jsr draw_dna
no_dna:
jsr page_flip
ldy INTRO_LOOPER
ldx #3
jsr long_wait
dec STATIC_LOOPER
dec STATIC_LOOPER
bpl static_loop
iny
iny
jmp run_sequence_static_loop
run_sequence_static_done:
rts
;====================================
; Draw DNA
;====================================
draw_dna:
lda #0 ; count
sta DNA_COUNT
draw_dna_loop:
clc
lda DNA_COUNT
adc #10
sta YPOS
lda #26
sta XPOS
lda DNA_COUNT ; 0, 4, 8, 12, 16....
lsr
clc
adc DNA_PROGRESS ; 0,2,4,6,8,...
and #$e
tax
lda dna_list,X
sta INL
lda dna_list+1,X
sta INH
jsr put_sprite
lda DNA_COUNT
clc
adc #4
sta DNA_COUNT
; for DNA_PROGRESS 0,2,4,6,8,10,12 we only want to print
; first X lines (gradually fade in)
; after that, draw the whole thing
lda DNA_PROGRESS
cmp #14
bpl dna_full
asl
cmp DNA_COUNT
bpl draw_dna_loop
bmi dna_full_done
dna_full:
lda DNA_COUNT
cmp #28
bne draw_dna_loop
dna_full_done:
inc DNA_PROGRESS
inc DNA_PROGRESS
; see if printing message
lda DNA_PROGRESS
cmp #10
bne no_good_message
lda #<good_evening
sta OUTL
lda #>good_evening
sta OUTH
jsr print_both_pages
jmp no_ferrari_message
no_good_message:
cmp #$30
bne no_ferrari_message
lda #<ferrari
sta OUTL
lda #>ferrari
sta OUTH
jsr print_both_pages
jsr print_both_pages
no_ferrari_message:
rts
;======================
@ -1340,29 +1036,6 @@ plot_particle:
DATA_LOCATION = $9000
; intro4,intro5
.if 0
opening_sequence = (DATA_LOCATION+$204E)
keypad_sequence = (DATA_LOCATION+$1FF3)
keypad_lzsa = (DATA_LOCATION+$0496)
approach_sequence = (DATA_LOCATION+$1FE6)
scanner_door_lzsa = (DATA_LOCATION+$0000)
ferrari = (DATA_LOCATION+$2D47)
good_evening = (DATA_LOCATION+$2D2D)
dna_list = (DATA_LOCATION+$2D77)
static_pattern = (DATA_LOCATION+$2D21)
ai_sequence = (DATA_LOCATION+$2D0B)
ai_bg_lzsa = (DATA_LOCATION+$2744)
scanning_sequence = (DATA_LOCATION+$2CF2)
scanner_lzsa = (DATA_LOCATION+$2063)
.endif
intro4_data_lzsa:
; .incbin "intro_data_04.lzsa"
.include "intro_data_04.s"
; intro6,intro7
.if 0
@ -1436,3 +1109,4 @@ intro9_data_lzsa:
.include "intro_02_outer_door.s"
.include "intro_03_elevator.s"
.include "intro_04_keypad.s"
.include "intro_05_scanner.s"

View File

@ -0,0 +1,451 @@
;=============================
; OOTW -- Intro -- The Scanner
;=============================
intro_05_scanner:
;===============================
;===============================
; Scanner
;===============================
;===============================
scanner:
lda #<(intro_scanner_lzsa)
sta getsrc_smc+1 ; LZSA_SRC_LO
lda #>(intro_scanner_lzsa)
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$c ; load to off-screen $c00
jsr decompress_lzsa2_fast
jsr gr_copy_to_current
jsr page_flip
lda #<scanning_sequence
sta INTRO_LOOPL
lda #>scanning_sequence
sta INTRO_LOOPH
jsr run_sequence
;===============================
;===============================
; Spinny DNA / Key
;===============================
;===============================
scanner2:
lda #<(ai_bg_lzsa)
sta getsrc_smc+1 ; LZSA_SRC_LO
lda #>(ai_bg_lzsa)
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$c ; load to off-screen $c00
jsr decompress_lzsa2_fast
jsr clear_bottom
bit TEXTGR ; split graphics/text
jsr gr_copy_to_current_40x40
jsr page_flip
jsr clear_bottom
;=============================
; Identification (nothing)
;=============================
lda #0
sta DNA_OUT
sta DNA_PROGRESS
lda #<ai_sequence
sta INTRO_LOOPL
lda #>ai_sequence
sta INTRO_LOOPH
jsr run_sequence_static
; slices / | - / nothing (pause)
; more slices / | - / nothing (pause)
; small circle / | - / nothing (pause)
; big circle / | - / nothing (pause)
; jsr gr_copy_to_current_40x40
; jsr draw_dna
; jsr page_flip
; approx one rotation until "Good evening"
; two rotation, then switch to key + Ferrari
; three rotations, then done
; - !!! DNA START 1 line
; / !!! DNA start 1 line
; !!! DNA 2 lines
; DNA 5 lines
; Good evening professor.
; DNA all lines
; Triggers:
; + DNA starts midway through big circle
; + Good evening printed at DNA_OUT=5
; + Switch to key, print ferrari
; Key |
; I see you have driven here in your \ Ferrari.
; Key - / nothing (pause)
ldx #35
spin_on_key:
txa
pha
jsr draw_dna
jsr page_flip
pla
tax
lda #250
jsr WAIT
dex
bne spin_on_key
rts
;=================================
; Display a sequence of images
; with /-|/ static overlay
run_sequence_static:
ldy #0 ; init
run_sequence_static_loop:
lda (INTRO_LOOPL),Y ; draw DNA
sta DNA_OUT
iny
lda (INTRO_LOOPL),Y ; pause for time
beq run_sequence_static_done
tax
lda DNA_OUT
bne pause_draw_dna
jsr long_wait
jmp done_pause_dna
pause_draw_dna:
txa
pha
tya
pha
jsr draw_dna
jsr page_flip
pla
tay
pla
tax
lda #250
jsr WAIT
dex
bne pause_draw_dna
done_pause_dna:
iny ; point to overlay
lda #10 ; set up static loop
sta STATIC_LOOPER
sty INTRO_LOOPER ; save for later
static_loop:
lda (INTRO_LOOPL),Y
sta getsrc_smc+1 ; LZSA_SRC_LO
iny
lda (INTRO_LOOPL),Y
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$10 ; load to $1000
jsr decompress_lzsa2_fast
jsr gr_overlay_40x40
ldy STATIC_LOOPER
lda static_pattern,Y
sta getsrc_smc+1 ; LZSA_SRC_LO
lda static_pattern+1,Y
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #$10 ; load to $1000
jsr decompress_lzsa2_fast
; force 40x40 overlay
jsr gr_overlay_40x40_noload
lda DNA_OUT
beq no_dna
jsr draw_dna
no_dna:
jsr page_flip
ldy INTRO_LOOPER
ldx #3
jsr long_wait
dec STATIC_LOOPER
dec STATIC_LOOPER
bpl static_loop
iny
iny
jmp run_sequence_static_loop
run_sequence_static_done:
rts
;====================================
; Draw DNA
;====================================
draw_dna:
lda #0 ; count
sta DNA_COUNT
draw_dna_loop:
clc
lda DNA_COUNT
adc #10
sta YPOS
lda #26
sta XPOS
lda DNA_COUNT ; 0, 4, 8, 12, 16....
lsr
clc
adc DNA_PROGRESS ; 0,2,4,6,8,...
and #$e
tax
lda dna_list,X
sta INL
lda dna_list+1,X
sta INH
jsr put_sprite
lda DNA_COUNT
clc
adc #4
sta DNA_COUNT
; for DNA_PROGRESS 0,2,4,6,8,10,12 we only want to print
; first X lines (gradually fade in)
; after that, draw the whole thing
lda DNA_PROGRESS
cmp #14
bpl dna_full
asl
cmp DNA_COUNT
bpl draw_dna_loop
bmi dna_full_done
dna_full:
lda DNA_COUNT
cmp #28
bne draw_dna_loop
dna_full_done:
inc DNA_PROGRESS
inc DNA_PROGRESS
; see if printing message
lda DNA_PROGRESS
cmp #10
bne no_good_message
lda #<good_evening
sta OUTL
lda #>good_evening
sta OUTH
jsr print_both_pages
jmp no_ferrari_message
no_good_message:
cmp #$30
bne no_ferrari_message
lda #<ferrari
sta OUTL
lda #>ferrari
sta OUTH
jsr print_both_pages
jsr print_both_pages
no_ferrari_message:
rts
;=================================
;=================================
; Intro Segment 05 Data (Scanner)
;=================================
;=================================
.include "graphics/05_scanner/intro_scanner.inc"
.include "graphics/05_scanner/intro_scanning.inc"
.include "graphics/05_scanner/intro_ai_bg.inc"
.include "graphics/05_scanner/intro_ai.inc"
; Scanning sequence
scanning_sequence:
.byte 15
.word scan01_lzsa
.byte 128+15 ; .word scan02_lzsa
.byte 128+15 ; .word scan03_lzsa
.byte 128+15 ; .word scan04_lzsa
.byte 128+15 ; .word scan05_lzsa
.byte 128+15 ; .word scan06_lzsa
.byte 128+15 ; .word scan07_lzsa
.byte 128+15 ; .word scan08_lzsa
.byte 128+15 ; .word scan09_lzsa
.byte 128+15 ; .word scan10_lzsa
.byte 128+20 ; .word scan11_lzsa
.byte 128+20 ; .word scan12_lzsa
.byte 128+20 ; .word scan13_lzsa
.byte 128+20 ; .word scan14_lzsa
.byte 128+20 ; .word scan15_lzsa
.byte 128+20 ; .word scan16_lzsa
.byte 128+40 ; .word scan17_lzsa
.byte 128+40 ; .word scan18_lzsa
.byte 128+40 ; .word scan19_lzsa
.byte 40
.word scan19_lzsa
.byte 0
; AI sequence
ai_sequence:
.byte 0,50 ; pause at start, no dna
.word ai01_lzsa ; slices
.byte 0,50 ; pause at start, no dna
.word ai02_lzsa ; slices_zoom
.byte 0,50 ; pasue as start, no dna
.word ai03_lzsa ; little circle
.byte 0,50 ; pause at start, no dna
.word ai04_lzsa ; big circle
.byte 1,20 ; pause longer, yes dna
.word ai05_lzsa ; key
.byte 0,0
; .word ai05_lzsa ; key
; .byte 0
static_pattern:
.word nothing_lzsa ; 0
.word nothing_lzsa ; 2
.word static01_lzsa ; 4
.word static03_lzsa ; 6
.word static02_lzsa ; 8
.word static01_lzsa ; 10
; Scanning text
good_evening:
.byte 2,21,"GOOD EVENING PROFESSOR.",0
ferrari:
.byte 2,21,"I SEE YOU HAVE DRIVEN HERE IN YOUR",0
.byte 2,22,"FERRARI.",0
dna_list:
.word dna0_sprite
.word dna1_sprite
.word dna2_sprite
.word dna3_sprite
.word dna4_sprite
.word dna5_sprite
.word dna6_sprite
.word dna7_sprite
dna0_sprite:
.byte $7,$2
.byte $66,$40,$40,$40,$40,$40,$cc
.byte $06,$00,$00,$00,$00,$00,$0c
dna1_sprite:
.byte $7,$2
.byte $00,$66,$40,$40,$40,$cc,$00
.byte $00,$06,$00,$00,$00,$0c,$00
dna2_sprite:
.byte $7,$2
.byte $00,$00,$66,$40,$cc,$00,$00
.byte $00,$00,$06,$00,$0c,$00,$00
dna3_sprite:
.byte $7,$2
.byte $00,$00,$00,$66,$00,$00,$00
.byte $00,$00,$00,$06,$00,$00,$00
dna4_sprite:
.byte $7,$2
.byte $00,$00,$CC,$40,$66,$00,$00
.byte $00,$00,$0C,$00,$06,$00,$00
dna5_sprite:
.byte $7,$2
.byte $00,$CC,$40,$40,$40,$66,$00
.byte $00,$0C,$00,$00,$00,$06,$00
dna6_sprite:
.byte $7,$2
.byte $CC,$40,$40,$40,$40,$40,$66
.byte $0C,$00,$00,$00,$00,$00,$06
dna7_sprite:
.byte $7,$2
.byte $66,$40,$40,$40,$40,$40,$cc
.byte $06,$00,$00,$00,$00,$00,$0c

View File

@ -1,130 +0,0 @@
;=================================
;=================================
; Intro Segment 05 Data (Scanner)
;=================================
;=================================
.include "graphics/05_scanner/intro_scanner.inc"
.include "graphics/05_scanner/intro_scanning.inc"
.include "graphics/05_scanner/intro_ai_bg.inc"
.include "graphics/05_scanner/intro_ai.inc"
; Scanning sequence
scanning_sequence:
.byte 15
.word scan01_lzsa
.byte 128+15 ; .word scan02_lzsa
.byte 128+15 ; .word scan03_lzsa
.byte 128+15 ; .word scan04_lzsa
.byte 128+15 ; .word scan05_lzsa
.byte 128+15 ; .word scan06_lzsa
.byte 128+15 ; .word scan07_lzsa
.byte 128+15 ; .word scan08_lzsa
.byte 128+15 ; .word scan09_lzsa
.byte 128+15 ; .word scan10_lzsa
.byte 128+20 ; .word scan11_lzsa
.byte 128+20 ; .word scan12_lzsa
.byte 128+20 ; .word scan13_lzsa
.byte 128+20 ; .word scan14_lzsa
.byte 128+20 ; .word scan15_lzsa
.byte 128+20 ; .word scan16_lzsa
.byte 128+40 ; .word scan17_lzsa
.byte 128+40 ; .word scan18_lzsa
.byte 128+40 ; .word scan19_lzsa
.byte 40
.word scan19_lzsa
.byte 0
; AI sequence
ai_sequence:
.byte 0,50 ; pause at start, no dna
.word ai01_lzsa ; slices
.byte 0,50 ; pause at start, no dna
.word ai02_lzsa ; slices_zoom
.byte 0,50 ; pasue as start, no dna
.word ai03_lzsa ; little circle
.byte 0,50 ; pause at start, no dna
.word ai04_lzsa ; big circle
.byte 1,20 ; pause longer, yes dna
.word ai05_lzsa ; key
.byte 0,0
; .word ai05_lzsa ; key
; .byte 0
static_pattern:
.word nothing_lzsa ; 0
.word nothing_lzsa ; 2
.word static01_lzsa ; 4
.word static03_lzsa ; 6
.word static02_lzsa ; 8
.word static01_lzsa ; 10
; Scanning text
good_evening:
.byte 2,21,"GOOD EVENING PROFESSOR.",0
ferrari:
.byte 2,21,"I SEE YOU HAVE DRIVEN HERE IN YOUR",0
.byte 2,22,"FERRARI.",0
dna_list:
.word dna0_sprite
.word dna1_sprite
.word dna2_sprite
.word dna3_sprite
.word dna4_sprite
.word dna5_sprite
.word dna6_sprite
.word dna7_sprite
dna0_sprite:
.byte $7,$2
.byte $66,$40,$40,$40,$40,$40,$cc
.byte $06,$00,$00,$00,$00,$00,$0c
dna1_sprite:
.byte $7,$2
.byte $00,$66,$40,$40,$40,$cc,$00
.byte $00,$06,$00,$00,$00,$0c,$00
dna2_sprite:
.byte $7,$2
.byte $00,$00,$66,$40,$cc,$00,$00
.byte $00,$00,$06,$00,$0c,$00,$00
dna3_sprite:
.byte $7,$2
.byte $00,$00,$00,$66,$00,$00,$00
.byte $00,$00,$00,$06,$00,$00,$00
dna4_sprite:
.byte $7,$2
.byte $00,$00,$CC,$40,$66,$00,$00
.byte $00,$00,$0C,$00,$06,$00,$00
dna5_sprite:
.byte $7,$2
.byte $00,$CC,$40,$40,$40,$66,$00
.byte $00,$0C,$00,$00,$00,$06,$00
dna6_sprite:
.byte $7,$2
.byte $CC,$40,$40,$40,$40,$40,$66
.byte $0C,$00,$00,$00,$00,$00,$06
dna7_sprite:
.byte $7,$2
.byte $66,$40,$40,$40,$40,$40,$cc
.byte $06,$00,$00,$00,$00,$00,$0c