ootw: intro2 working

also split out some common intro code
This commit is contained in:
Vince Weaver 2019-03-20 14:41:31 -04:00
parent c23433f2a0
commit 80b8dad681
14 changed files with 389 additions and 216 deletions

View File

@ -48,10 +48,11 @@ OOTW_C2: ootw_c2.o
ootw_c2.o: ootw_c2.s \
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
keyboard.s sluggy.s \
keyboard.s gr_run_sequence.s \
ootw_graphics/sprites/sprites_physicist.inc \
ootw_c2_cage.s \
ootw_graphics/cage/ootw_c2_cage.inc
ootw_c2_cage.s ootw_c2_intro.s \
ootw_graphics/cage/ootw_c2_cage.inc \
ootw_graphics/l2intro/ootw_l2intro.inc
ca65 -o ootw_c2.o ootw_c2.s -l ootw_c2.lst
@ -62,7 +63,7 @@ INTRO: intro.o
intro.o: intro.s \
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
gr_overlay.s \
gr_overlay.s gr_run_sequence.s \
keyboard.s random16.s text_print.s zp.inc \
intro_graphics/01_building/intro_car.inc \
intro_graphics/01_building/intro_building_car.inc \

View File

@ -121,3 +121,8 @@ ootw memory squeeze:
make transparent overlays: 17821
add in rest of end cutscene 23906
make those transparent 21236
ootw2 memory squeeze:
before intro 3872
after intro 9234

117
ootw/gr_run_sequence.s Normal file
View File

@ -0,0 +1,117 @@
;=====================
; long(er) wait
; waits approximately ?? ms
long_wait:
lda #64
jsr WAIT ; delay
dex
bne long_wait
rts
;=================================
; Display a sequence of images
; pattern is TIME, PTR
; if time==0, then done
; if time==255, reload $C00 with PTR
; if time==0..127 wait TIME, then overlay PTR over $C00
; if time==128..254, wait TIME-128, then overlay GBASL over $C00
run_sequence:
ldy #0
run_sequence_loop:
lda (INTRO_LOOPL),Y ; get time
beq run_sequence_done ; if zero, then done
cmp #$ff ; if $ff, then load image to $c00
bne not_reload
reload_image:
iny
lda (INTRO_LOOPL),Y
sta GBASL
iny
lda (INTRO_LOOPL),Y
sta GBASH
iny
sty INTRO_LOOPER ; save for later
lda #$0c ; load to $c00
jsr load_rle_gr
jmp seq_stuff
not_reload:
tax
cmp #$80 ;if negative, no need to load pointer
bcs no_set_image_ptr ; bge (branch if greater equal)
get_image_ptr:
iny
lda (INTRO_LOOPL),Y
sta GBASL
iny
lda (INTRO_LOOPL),Y
sta GBASH
no_set_image_ptr:
txa
and #$7f
tax
cpx #1
beq seq_no_wait
jsr long_wait
seq_no_wait:
iny
sty INTRO_LOOPER ; save for later
lda #$10 ; load to $1000
jsr load_rle_gr
jsr gr_overlay
jsr page_flip
seq_stuff:
ldy INTRO_LOOPER
jmp run_sequence_loop
run_sequence_done:
rts
;====================================
; Display a sequence of images 40x40
run_sequence_40x40:
ldy #0
run_sequence_40x40_loop:
lda (INTRO_LOOPL),Y ; get time
beq run_sequence_40x40_done
tax
jsr long_wait
iny
lda (INTRO_LOOPL),Y
sta GBASL
iny
lda (INTRO_LOOPL),Y
sta GBASH
iny
sty INTRO_LOOPER ; save for later
lda #$10 ; load to $1000
jsr load_rle_gr
jsr gr_overlay_40x40
jsr page_flip
ldy INTRO_LOOPER
jmp run_sequence_40x40_loop
run_sequence_40x40_done:
rts

View File

@ -1673,124 +1673,7 @@ done_intro:
.include "gr_fast_clear.s"
.include "gr_putsprite.s"
.include "text_print.s"
;=====================
; long(er) wait
; waits approximately ?? ms
long_wait:
lda #64
jsr WAIT ; delay
dex
bne long_wait
rts
;=================================
; Display a sequence of images
; pattern is TIME, PTR
; if time==0, then done
; if time==255, reload $C00 with PTR
; if time==0..127 wait TIME, then overlay PTR over $C00
; if time==128..254, wait TIME-128, then overlay GBASL over $C00
run_sequence:
ldy #0
run_sequence_loop:
lda (INTRO_LOOPL),Y ; get time
beq run_sequence_done ; if zero, then done
cmp #$ff ; if $ff, then load image to $c00
bne not_reload
reload_image:
iny
lda (INTRO_LOOPL),Y
sta GBASL
iny
lda (INTRO_LOOPL),Y
sta GBASH
iny
sty INTRO_LOOPER ; save for later
lda #$0c ; load to $c00
jsr load_rle_gr
jmp seq_stuff
not_reload:
tax
cmp #$80 ;if negative, no need to load pointer
bcs no_set_image_ptr ; bge (branch if greater equal)
get_image_ptr:
iny
lda (INTRO_LOOPL),Y
sta GBASL
iny
lda (INTRO_LOOPL),Y
sta GBASH
no_set_image_ptr:
txa
and #$7f
tax
cpx #1
beq seq_no_wait
jsr long_wait
seq_no_wait:
iny
sty INTRO_LOOPER ; save for later
lda #$10 ; load to $1000
jsr load_rle_gr
jsr gr_overlay
jsr page_flip
seq_stuff:
ldy INTRO_LOOPER
jmp run_sequence_loop
run_sequence_done:
rts
;====================================
; Display a sequence of images 40x40
run_sequence_40x40:
ldy #0
run_sequence_40x40_loop:
lda (INTRO_LOOPL),Y ; get time
beq run_sequence_40x40_done
tax
jsr long_wait
iny
lda (INTRO_LOOPL),Y
sta GBASL
iny
lda (INTRO_LOOPL),Y
sta GBASH
iny
sty INTRO_LOOPER ; save for later
lda #$10 ; load to $1000
jsr load_rle_gr
jsr gr_overlay_40x40
jsr page_flip
ldy INTRO_LOOPER
jmp run_sequence_40x40_loop
run_sequence_40x40_done:
rts
.include "gr_run_sequence.s"
;=================================

View File

@ -23,6 +23,12 @@ ootw_c2:
lda #1
sta DIRECTION
;=======================
; Run the intro
;=======================
jsr ootw_c2_intro
;=======================
; Enter the game
;=======================
@ -63,6 +69,7 @@ end_message:
.byte 11,20,"ACCESS CODE: RAGE",0
.include "ootw_c2_cage.s"
.include "ootw_c2_intro.s"
.include "physicist.s"
.include "text_print.s"
.include "gr_pageflip.s"
@ -72,6 +79,8 @@ end_message:
.include "gr_putsprite.s"
.include "gr_putsprite_flipped.s"
.include "gr_offsets.s"
.include "gr_run_sequence.s"
.include "gr_overlay.s"
.include "random16.s"
.include "keyboard.s"
@ -79,5 +88,7 @@ end_message:
.include "ootw_graphics/cage/ootw_c2_cage.inc"
; sprites
.include "ootw_graphics/sprites/sprites_physicist.inc"
; cutscenes
; intro
.include "ootw_graphics/l2intro/ootw_l2intro.inc"

View File

@ -1,4 +1,4 @@
; Ootw -- Despite all my Rage...
; Ootw Checkpoint2 -- Despite all my Rage...
ootw_cage:
;===========================
@ -35,12 +35,10 @@ ootw_cage:
jsr load_rle_gr
;=================================
; copy to both pages $400/$800
; copy to screen
jsr gr_copy_to_current
jsr page_flip
jsr gr_copy_to_current
;=================================
; setup vars

127
ootw/ootw_c2_intro.s Normal file
View File

@ -0,0 +1,127 @@
; Ootw Checkpoint2 intro movie
ootw_c2_intro:
;===========================
; Enable graphics
bit LORES
bit SET_GR
bit FULLGR
;===========================
; Setup pages (is this necessary?)
lda #0
sta DRAW_PAGE
lda #1
sta DISP_PAGE
lda #<intro2_sequence
sta INTRO_LOOPL
lda #>intro2_sequence
sta INTRO_LOOPH
jsr run_sequence
done_intro2:
rts
;========================
; Gently swinging cage
; remeber, we can auto-increment by oring timeout with 128
intro2_sequence:
.byte 255
.word cage_01_rle
.byte 25
.word cage_01_rle
.byte 25
.word cage_02_rle
.byte 25
.word cage_03_rle
.byte 25
.word cage_04_rle
.byte 75
.word cage_03_rle
.byte 25
.word cage_02_rle
.byte 25
.word cage_01_rle
.byte 75
.word cage_02_rle
.byte 25
.word cage_03_rle
; .byte 25
; .word cage_03_rle
;======================
; eyes opening
.byte 255
.word eyes_bg_rle
.byte 25
.word eyes_01_rle
.byte 25
.word eyes_02_rle
.byte 25
.word eyes_03_rle
.byte 25
.word eyes_02_rle
.byte 25
.word eyes_01_rle
.byte 100
.word eyes_02_rle
.byte 15
.word eyes_03_rle
.byte 15
.word eyes_04_rle
.byte 15
.word eyes_05_rle
.byte 40
.word eyes_04_rle
.byte 40
.word eyes_03_rle
.byte 40
.word eyes_02_rle
.byte 40
.word eyes_01_rle
.byte 80
.word eyes_03_rle
.byte 15
.word eyes_04_rle
.byte 15
.word eyes_05_rle
.byte 15
.word eyes_bg_rle
;=================
; focusing on friend
.byte 100
.word friend_02_rle
.byte 25
.word friend_03_rle
.byte 25
.word friend_04_rle
.byte 25
.word friend_03_rle
.byte 25
.word friend_02_rle
.byte 25
.word friend_03_rle
.byte 25
.word friend_04_rle
.byte 25
.word friend_05_rle
.byte 40
.word friend_06_rle
.byte 40
.word friend_05_rle
.byte 40
.word friend_05_rle
.byte 0

View File

@ -16,6 +16,7 @@ ootw_l2intro.inc: $(PNG2RLE) \
$(PNG2RLE) asm cage_02.png cage_02_rle >> ootw_l2intro.inc
$(PNG2RLE) asm cage_03.png cage_03_rle >> ootw_l2intro.inc
$(PNG2RLE) asm cage_04.png cage_04_rle >> ootw_l2intro.inc
$(PNG2RLE) asm eyes_bg.png eyes_bg_rle >> ootw_l2intro.inc
$(PNG2RLE) asm eyes_01.png eyes_01_rle >> ootw_l2intro.inc
$(PNG2RLE) asm eyes_02.png eyes_02_rle >> ootw_l2intro.inc
$(PNG2RLE) asm eyes_03.png eyes_03_rle >> ootw_l2intro.inc

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -162,6 +162,37 @@ cage_04_rle: .byte $28 ; ysize=48
.byte $A5,$00, $A5,$55, $AD,$00, $03, $A3,$33, $AC,$00, $22
.byte $A5,$00, $A5,$55, $A4,$00
.byte $A1
eyes_bg_rle: .byte $28 ; ysize=48
.byte $22, $AA,$88, $A8,$99, $A0,$11,$33, $A4,$BB, $22,$22, $A9,$88
.byte $A8,$99, $A0,$11,$33, $A4,$BB, $22,$22, $A9,$88, $A8,$99, $A0,$11,$33
.byte $A4,$BB, $22,$22, $A8,$88, $A9,$99, $A0,$11,$33, $A4,$BB, $22,$22
.byte $A8,$88, $A7,$99, $39, $A0,$12,$33, $A4,$BB, $A6,$22, $A0,$1E,$33
.byte $A4,$BB, $A5,$22, $32, $A0,$1E,$33, $3B, $A3,$BB, $A5,$22
.byte $A0,$20,$33, $A3,$BB, $A4,$22, $A0,$10,$33, $B3, $A0,$10,$33, $A3,$BB
.byte $A3,$22, $32, $A0,$10,$33, $BB, $A0,$11,$33, $BB,$BB, $A3,$22
.byte $A0,$11,$33, $BB, $A0,$11,$33, $3B, $BB, $A3,$22, $33,$33
.byte $AE,$03, $A5,$33, $AD,$23, $33,$33, $BB, $22,$22, $33,$33
.byte $AE,$00, $A6,$33, $AE,$22, $23, $BB, $22, $33
.byte $23, $22,$22, $F2, $A3,$FF, $88, $D8, $88
.byte $8F, $A3,$FF, $22,$22, $A7,$33, $22, $A4,$FF, $88
.byte $D8, $88, $8F, $FF,$FF, $F2, $22,$22, $2B
.byte $A4,$22, $F2, $A3,$FF, $88, $D8, $00,$00, $8D
.byte $A3,$FF, $22,$22, $A7,$33, $22, $A3,$FF, $88,$88, $0D
.byte $08, $8D, $A3,$FF, $F2, $A6,$22, $A4,$FF, $F8
.byte $88, $D0, $80, $88, $FF,$FF, $2F, $22
.byte $32, $A7,$33, $22, $A3,$FF, $88, $8D, $00,$00
.byte $88, $A4,$FF, $F2, $A5,$22, $A5,$2F, $A3,$28, $A3,$2F
.byte $22,$22, $A9,$33, $22, $A3,$FF, $88, $8D, $88
.byte $F8, $A5,$FF, $A4,$22, $32, $AB,$33, $22,$22, $A6,$33
.byte $B3, $33,$33, $A9,$32, $A5,$B2, $A3,$22, $AC,$33, $22
.byte $A7,$33, $BB, $AB,$33, $A5,$BB, $A3,$22, $AC,$33, $22
.byte $A7,$33, $BB, $B3, $AA,$33, $3B, $A4,$BB, $A3,$22
.byte $AB,$33, $22, $32, $A7,$33, $3B, $BB, $AA,$33
.byte $B3, $A4,$BB, $A3,$22, $AB,$33, $22, $A9,$33, $BB
.byte $AA,$33, $A5,$BB, $A3,$22, $AA,$33, $22,$22, $A9,$33, $BB
.byte $B3, $A8,$33, $B3, $A5,$BB, $A3,$22, $AA,$33, $22
.byte $32, $A9,$33, $BB,$BB, $B3, $A7,$33, $A6,$BB
.byte $A1
eyes_01_rle: .byte $28 ; ysize=48
.byte $22, $AA,$88, $A8,$99, $A0,$11,$33, $A4,$BB, $22,$22, $A9,$88
.byte $A8,$99, $A0,$11,$33, $A4,$BB, $22,$22, $A9,$88, $A8,$99, $A0,$11,$33
@ -304,119 +335,118 @@ friend_02_rle: .byte $28 ; ysize=48
.byte $55,$55, $A9,$77, $75, $55,$55, $A0,$1A,$00, $55,$55, $AA,$77
.byte $55,$55, $A0,$1A,$00, $55,$55, $AA,$77, $55,$55, $50, $A0,$19,$00
.byte $55,$55, $AB,$77, $55,$55, $A0,$19,$00, $55,$55, $AB,$77, $55,$55
.byte $50, $A0,$18,$00, $55,$55, $AC,$77, $A0,$01,$A5, $55, $A0,$18,$00
.byte $55,$55, $57, $AB,$77, $55,$55, $A0,$18,$00, $05, $55,$55
.byte $AA,$77, $A0,$01,$A7, $55,$55, $A0,$1A,$00, $55,$55, $A8,$A7, $A3,$55
.byte $A0,$14,$00, $A3,$50, $A5,$00, $A6,$55, $A4,$05, $A0,$15,$00, $A4,$55
.byte $A6,$00, $05, $A3,$55, $AA,$00, $50, $55, $A4,$A5
.byte $50, $A7,$00, $50, $A5,$55, $A7,$00, $A3,$55, $A9,$00
.byte $55,$55, $75, $A3,$77, $55,$55, $A7,$00, $A6,$55, $A7,$00
.byte $A3,$55, $A9,$00, $55,$55, $A5,$77, $55, $A7,$00, $A6,$55
.byte $A7,$00, $A3,$55, $A9,$00, $55,$55, $A5,$77, $55, $A7,$00
.byte $A7,$55, $A6,$00, $A3,$55, $A9,$00, $55,$55, $57, $A4,$77
.byte $55, $A7,$00, $A7,$55, $A7,$00, $55,$55, $A9,$00, $A3,$55
.byte $A4,$77, $55, $A7,$00, $A7,$55, $A7,$00, $55, $05
.byte $A9,$00, $A3,$55, $A4,$77, $55, $A7,$00, $A7,$55, $50
.byte $A6,$00, $05, $AA,$00, $A4,$55, $A3,$77, $55, $A8,$00
.byte $A7,$55, $A0,$12,$00, $55,$55, $5A, $77,$77, $57, $55
.byte $A8,$00, $A7,$55, $A0,$12,$00, $55,$55, $A3,$77, $55,$55, $A8,$00
.byte $05, $A6,$55, $A0,$11,$00, $55,$55, $A4,$77, $55,$55, $A9,$00
.byte $A6,$55, $A0,$11,$00, $55,$55, $A4,$77, $55, $05, $A9,$00
.byte $A6,$55, $A0,$11,$00, $55,$55, $A4,$77, $55, $00
.byte $50, $A0,$18,$00, $55,$55, $AC,$77, $55,$55, $A0,$18,$00, $55,$55
.byte $57, $AB,$77, $55,$55, $A0,$18,$00, $05, $55,$55, $AA,$77
.byte $57, $55,$55, $A0,$1A,$00, $55,$55, $A8,$57, $A3,$55, $A0,$14,$00
.byte $A3,$50, $A5,$00, $A6,$55, $A4,$05, $A0,$15,$00, $A4,$55, $A6,$00
.byte $05, $A3,$55, $AA,$00, $50, $A5,$55, $50, $A7,$00
.byte $50, $A5,$55, $A7,$00, $A3,$55, $A9,$00, $55,$55, $75
.byte $A3,$77, $55,$55, $A7,$00, $A6,$55, $A7,$00, $A3,$55, $A9,$00
.byte $55,$55, $A5,$77, $55, $A7,$00, $A6,$55, $A7,$00, $A3,$55
.byte $A9,$00, $55,$55, $A5,$77, $55, $A7,$00, $A7,$55, $A6,$00
.byte $A3,$55, $A9,$00, $55,$55, $57, $A4,$77, $55, $A7,$00
.byte $A7,$55, $A7,$00, $55,$55, $A9,$00, $A3,$55, $A4,$77, $55
.byte $A7,$00, $A7,$55, $A7,$00, $55, $05, $A9,$00, $A3,$55
.byte $A4,$77, $55, $A7,$00, $A7,$55, $50, $A6,$00, $05
.byte $AA,$00, $A4,$55, $A3,$77, $55, $A8,$00, $A7,$55, $A0,$12,$00
.byte $A3,$55, $77,$77, $57, $55, $A8,$00, $A7,$55, $A0,$12,$00
.byte $55,$55, $A3,$77, $55,$55, $A8,$00, $05, $A6,$55, $A0,$11,$00
.byte $55,$55, $A4,$77, $55,$55, $A9,$00, $A6,$55, $A0,$11,$00, $55,$55
.byte $A4,$77, $55, $05, $A9,$00, $A6,$55, $A0,$11,$00, $55,$55
.byte $A4,$77, $55, $00
.byte $A1
friend_03_rle: .byte $28 ; ysize=48
.byte $A0,$10,$00, $50,$50, $A7,$75, $55, $50, $A0,$1D,$00, $55
.byte $A9,$77, $75, $55, $A0,$1C,$00, $55, $AA,$77, $55
.byte $A0,$1C,$00, $55, $AA,$77, $55, $50, $A0,$1B,$00, $55
.byte $77, $55,$55, $77,$77, $5A, $55, $A4,$77, $55
.byte $A0,$1B,$00, $55, $AB,$77, $55, $50, $A0,$1A,$00, $55
.byte $AC,$77, $A0,$01,$A5, $A0,$1A,$00, $55, $57, $AB,$77, $55
.byte $A0,$1A,$00, $05, $55, $AA,$77, $A0,$01,$A7, $05, $A0,$1B,$00
.byte $05, $55, $A8,$A7, $55, $05, $A0,$1D,$00, $05
.byte $A4,$55, $05, $A0,$19,$00, $50, $55,$55, $A8,$00, $A3,$55
.byte $AB,$00, $55, $A4,$A5, $A9,$00, $50, $A3,$55, $A9,$00
.byte $55,$55, $AA,$00, $55, $75, $A3,$77, $55, $50
.byte $A8,$00, $A4,$55, $A9,$00, $55,$55, $AA,$00, $55, $A5,$77
.byte $55, $A8,$00, $A4,$55, $A9,$00, $55,$55, $AA,$00, $55
.byte $A5,$77, $55, $A8,$00, $A4,$55, $50, $A8,$00, $55,$55
.byte $AA,$00, $55, $57, $A4,$77, $55, $A8,$00, $A5,$55
.byte $A8,$00, $55,$55, $AA,$00, $55,$55, $A4,$77, $55, $A8,$00
.byte $A5,$55, $A8,$00, $55, $AB,$00, $55,$55, $A4,$77, $55
.byte $A8,$00, $A5,$55, $A0,$14,$00, $A3,$55, $A3,$77, $55, $A9,$00
.byte $A4,$55, $50, $A0,$13,$00, $05, $75, $5A, $77,$77
.byte $57, $05, $A9,$00, $A5,$55, $A0,$14,$00, $A4,$77, $55
.byte $AB,$00, $A4,$55, $A0,$13,$00, $55, $A4,$77, $55, $AB,$00
.byte $A4,$55, $A0,$13,$00, $55, $A4,$77, $55, $AB,$00, $A4,$55
.byte $A0,$13,$00, $55, $A4,$77, $55, $00
.byte $77, $55,$55, $77,$77, $55,$55, $A4,$77, $55, $A0,$1B,$00
.byte $55, $AB,$77, $55, $50, $A0,$1A,$00, $55, $AC,$77
.byte $55, $A0,$1A,$00, $55, $57, $AB,$77, $55, $A0,$1A,$00
.byte $05, $55, $AA,$77, $57, $05, $A0,$1B,$00, $05
.byte $55, $A8,$57, $55, $05, $A0,$1D,$00, $05, $A4,$55
.byte $05, $A0,$19,$00, $50, $55,$55, $A8,$00, $A3,$55, $AB,$00
.byte $A5,$55, $A9,$00, $50, $A3,$55, $A9,$00, $55,$55, $AA,$00
.byte $55, $75, $A3,$77, $55, $50, $A8,$00, $A4,$55
.byte $A9,$00, $55,$55, $AA,$00, $55, $A5,$77, $55, $A8,$00
.byte $A4,$55, $A9,$00, $55,$55, $AA,$00, $55, $A5,$77, $55
.byte $A8,$00, $A4,$55, $50, $A8,$00, $55,$55, $AA,$00, $55
.byte $57, $A4,$77, $55, $A8,$00, $A5,$55, $A8,$00, $55,$55
.byte $AA,$00, $55,$55, $A4,$77, $55, $A8,$00, $A5,$55, $A8,$00
.byte $55, $AB,$00, $55,$55, $A4,$77, $55, $A8,$00, $A5,$55
.byte $A0,$14,$00, $A3,$55, $A3,$77, $55, $A9,$00, $A4,$55, $50
.byte $A0,$13,$00, $05, $75, $55, $77,$77, $57, $05
.byte $A9,$00, $A5,$55, $A0,$14,$00, $A4,$77, $55, $AB,$00, $A4,$55
.byte $A0,$13,$00, $55, $A4,$77, $55, $AB,$00, $A4,$55, $A0,$13,$00
.byte $55, $A4,$77, $55, $AB,$00, $A4,$55, $A0,$13,$00, $55
.byte $A4,$77, $55, $00
.byte $A1
friend_04_rle: .byte $28 ; ysize=48
.byte $A0,$10,$00, $50,$50, $A7,$75, $55, $A0,$1E,$00, $55, $A9,$77
.byte $75, $50, $A0,$1C,$00, $55, $AA,$77, $55, $A0,$1C,$00
.byte $55, $AA,$77, $55, $A0,$1C,$00, $55, $77, $A3,$55
.byte $7A, $5A, $55,$55, $A3,$77, $55, $A0,$1B,$00, $55
.byte $AB,$77, $55, $A0,$1B,$00, $55, $AC,$77, $A0,$01,$A5, $A0,$1A,$00
.byte $55, $57, $AB,$77, $55, $A0,$1B,$00, $55, $77,$77
.byte $A4,$57, $A4,$77, $A0,$01,$A7, $A0,$1C,$00, $05, $55, $A8,$A7
.byte $55, $A0,$1F,$00, $05, $55,$55, $05,$05, $A0,$1A,$00, $50,$50
.byte $A8,$00, $55,$55, $AC,$00, $50, $A4,$A0, $AA,$00, $A3,$55
.byte $A9,$00, $55, $AB,$00, $50, $75, $A3,$77, $55
.byte $A9,$00, $A4,$55, $A9,$00, $55, $AB,$00, $55, $A5,$77
.byte $55, $A8,$00, $A4,$55, $A9,$00, $55, $AB,$00, $55
.byte $A5,$77, $55, $A8,$00, $A4,$55, $A9,$00, $55, $AB,$00
.byte $55, $57, $A4,$77, $55, $A8,$00, $A5,$55, $A8,$00
.byte $55, $AB,$00, $55,$55, $A4,$77, $55, $A8,$00, $A5,$55
.byte $A8,$00, $55, $AB,$00, $55,$55, $A4,$77, $55, $A8,$00
.byte $05, $A4,$55, $A0,$14,$00, $A3,$55, $A3,$77, $55, $A9,$00
.byte $A4,$55, $A0,$15,$00, $75, $5A, $77,$77, $57, $05
.byte $A9,$00, $05, $A4,$55, $A0,$14,$00, $A4,$77, $55, $AB,$00
.byte $A4,$55, $A0,$13,$00, $50, $A4,$77, $55, $AB,$00, $A4,$55
.byte $A0,$13,$00, $55, $A4,$77, $55, $AB,$00, $A4,$55, $A0,$13,$00
.byte $55, $A4,$77, $55, $00
.byte $75, $A3,$55, $A3,$77, $55, $A0,$1B,$00, $55, $AB,$77
.byte $55, $A0,$1B,$00, $55, $AC,$77, $55, $A0,$1A,$00, $55
.byte $57, $AB,$77, $55, $A0,$1B,$00, $55, $77,$77, $A4,$57
.byte $A4,$77, $57, $A0,$1C,$00, $05, $55, $A8,$57, $55
.byte $A0,$1F,$00, $05, $55,$55, $05,$05, $A0,$1A,$00, $50,$50, $A8,$00
.byte $55,$55, $AC,$00, $A5,$50, $AA,$00, $A3,$55, $A9,$00, $55
.byte $AB,$00, $50, $75, $A3,$77, $55, $A9,$00, $A4,$55
.byte $A9,$00, $55, $AB,$00, $55, $A5,$77, $55, $A8,$00
.byte $A4,$55, $A9,$00, $55, $AB,$00, $55, $A5,$77, $55
.byte $A8,$00, $A4,$55, $A9,$00, $55, $AB,$00, $55, $57
.byte $A4,$77, $55, $A8,$00, $A5,$55, $A8,$00, $55, $AB,$00
.byte $55,$55, $A4,$77, $55, $A8,$00, $A5,$55, $A8,$00, $55
.byte $AB,$00, $55,$55, $A4,$77, $55, $A8,$00, $05, $A4,$55
.byte $A0,$14,$00, $A3,$55, $A3,$77, $55, $A9,$00, $A4,$55, $A0,$15,$00
.byte $75, $55, $77,$77, $57, $05, $A9,$00, $05
.byte $A4,$55, $A0,$14,$00, $A4,$77, $55, $AB,$00, $A4,$55, $A0,$13,$00
.byte $50, $A4,$77, $55, $AB,$00, $A4,$55, $A0,$13,$00, $55
.byte $A4,$77, $55, $AB,$00, $A4,$55, $A0,$13,$00, $55, $A4,$77
.byte $55, $00
.byte $A1
friend_05_rle: .byte $28 ; ysize=48
.byte $A0,$10,$00, $50,$50, $A6,$75, $F5,$F5, $A0,$1E,$00, $55, $A6,$77
.byte $A3,$7F, $77, $50, $A0,$1C,$00, $55, $AA,$77, $55
.byte $A0,$1C,$00, $55, $AA,$77, $75, $A0,$1C,$00, $55, $77
.byte $55, $05, $F5, $7A, $0A, $F5, $A4,$77
.byte $55, $05, $F5, $75, $05, $F5, $A4,$77
.byte $55, $A0,$1B,$00, $55, $A3,$77, $70, $77,$77, $70
.byte $A4,$77, $55, $A0,$1B,$00, $55, $A3,$77, $57, $77
.byte $57, $A6,$77, $A0,$01,$A5, $A0,$1A,$00, $55, $57, $A7,$77
.byte $5A, $A3,$77, $55, $A0,$1B,$00, $55, $77,$77, $A4,$57
.byte $A4,$77, $A0,$01,$A7, $A0,$1C,$00, $05, $57, $A8,$A7, $55
.byte $A0,$1F,$00, $05, $75, $55, $05,$05, $A0,$1A,$00, $50,$50
.byte $A8,$00, $77, $55, $AC,$00, $50, $A4,$A0, $AA,$00
.byte $A3,$55, $A9,$00, $55, $AB,$00, $50, $A5,$77, $A9,$00
.byte $A4,$55, $A9,$00, $55, $AB,$00, $A7,$77, $A8,$00, $A4,$55
.byte $A9,$00, $55, $AB,$00, $A7,$77, $A8,$00, $A4,$55, $A9,$00
.byte $55, $AB,$00, $57, $A6,$77, $A8,$00, $A5,$55, $A8,$00
.byte $55, $AB,$00, $55, $A6,$77, $A8,$00, $A5,$55, $A8,$00
.byte $55, $AB,$00, $55, $A6,$77, $A8,$00, $05, $A4,$55
.byte $A0,$14,$00, $55, $57, $A5,$77, $A9,$00, $A4,$55, $A0,$15,$00
.byte $75, $5A, $A3,$77, $07, $A9,$00, $05, $A4,$55
.byte $A0,$14,$00, $A5,$77, $AB,$00, $A4,$55, $A0,$13,$00, $70, $A5,$77
.byte $AB,$00, $A4,$55, $A0,$13,$00, $A6,$77, $AB,$00, $A4,$55, $A0,$13,$00
.byte $A6,$77, $00
.byte $A1
friend_06_rle: .byte $28 ; ysize=48
.byte $A0,$10,$00, $50,$50, $A6,$75, $F5,$F5, $A0,$1E,$00, $55, $A6,$77
.byte $A3,$7F, $77, $50, $A0,$1C,$00, $55, $AA,$77, $55
.byte $A0,$1C,$00, $55, $AA,$77, $75, $A0,$1C,$00, $55, $77
.byte $A3,$55, $7A, $5A, $55, $A4,$77, $55, $A0,$1B,$00
.byte $55, $77,$77, $70,$70, $77, $70,$70, $A4,$77, $55
.byte $A0,$1B,$00, $55, $A3,$77, $57, $77, $57, $A6,$77
.byte $A0,$01,$A5, $A0,$1A,$00, $55, $57, $A7,$77, $5A, $A3,$77
.byte $55, $A0,$1B,$00, $55, $77,$77, $A4,$57, $A4,$77, $A0,$01,$A7
.byte $A0,$1C,$00, $05, $57, $A8,$A7, $55, $A0,$1F,$00, $05
.byte $75, $55, $05,$05, $A0,$1A,$00, $50,$50, $A8,$00, $77
.byte $55, $AC,$00, $50, $A4,$A0, $AA,$00, $A3,$55, $A9,$00
.byte $57, $A6,$77, $55, $A0,$1A,$00, $55, $57, $A7,$77
.byte $55, $A3,$77, $55, $A0,$1B,$00, $55, $77,$77, $A4,$57
.byte $A4,$77, $57, $A0,$1C,$00, $05, $A9,$57, $55, $A0,$1F,$00
.byte $05, $75, $55, $05,$05, $A0,$1A,$00, $50,$50, $A8,$00
.byte $77, $55, $AC,$00, $A5,$50, $AA,$00, $A3,$55, $A9,$00
.byte $55, $AB,$00, $50, $A5,$77, $A9,$00, $A4,$55, $A9,$00
.byte $55, $AB,$00, $A7,$77, $A8,$00, $A4,$55, $A9,$00, $55
.byte $AB,$00, $A7,$77, $A8,$00, $A4,$55, $A9,$00, $55, $AB,$00
.byte $57, $A6,$77, $A8,$00, $A5,$55, $A8,$00, $55, $AB,$00
.byte $55, $A6,$77, $A8,$00, $A5,$55, $A8,$00, $55, $AB,$00
.byte $55, $A6,$77, $A8,$00, $05, $A4,$55, $A0,$14,$00, $55
.byte $57, $A5,$77, $A9,$00, $A4,$55, $A0,$15,$00, $75, $5A
.byte $57, $A5,$77, $A9,$00, $A4,$55, $A0,$15,$00, $75, $55
.byte $A3,$77, $07, $A9,$00, $05, $A4,$55, $A0,$14,$00, $A5,$77
.byte $AB,$00, $A4,$55, $A0,$13,$00, $70, $A5,$77, $AB,$00, $A4,$55
.byte $A0,$13,$00, $A6,$77, $AB,$00, $A4,$55, $A0,$13,$00, $A6,$77, $00
.byte $A1
friend_06_rle: .byte $28 ; ysize=48
.byte $A0,$10,$00, $50,$50, $A6,$75, $F5,$F5, $A0,$1E,$00, $55, $A6,$77
.byte $A3,$7F, $77, $50, $A0,$1C,$00, $55, $AA,$77, $55
.byte $A0,$1C,$00, $55, $AA,$77, $75, $A0,$1C,$00, $55, $77
.byte $A3,$55, $75, $55,$55, $A4,$77, $55, $A0,$1B,$00, $55
.byte $77,$77, $70,$70, $77, $70,$70, $A4,$77, $55, $A0,$1B,$00
.byte $55, $A3,$77, $57, $77, $57, $A6,$77, $55
.byte $A0,$1A,$00, $55, $57, $A7,$77, $55, $A3,$77, $55
.byte $A0,$1B,$00, $55, $77,$77, $A4,$57, $A4,$77, $57, $A0,$1C,$00
.byte $05, $A9,$57, $55, $A0,$1F,$00, $05, $75, $55
.byte $05,$05, $A0,$1A,$00, $50,$50, $A8,$00, $77, $55, $AC,$00
.byte $A5,$50, $AA,$00, $A3,$55, $A9,$00, $55, $AB,$00, $50
.byte $A5,$77, $A9,$00, $A4,$55, $A9,$00, $55, $AB,$00, $A7,$77
.byte $A8,$00, $A4,$55, $A9,$00, $55, $AB,$00, $A7,$77, $A8,$00
.byte $A4,$55, $A9,$00, $55, $AB,$00, $57, $A6,$77, $A8,$00
.byte $A5,$55, $A8,$00, $55, $AB,$00, $55, $A6,$77, $A8,$00
.byte $A5,$55, $A8,$00, $55, $AB,$00, $55, $A6,$77, $A8,$00
.byte $05, $A4,$55, $A0,$14,$00, $55, $57, $A5,$77, $A9,$00
.byte $A4,$55, $A0,$15,$00, $75, $55, $A3,$77, $07, $A9,$00
.byte $05, $A4,$55, $A0,$14,$00, $A5,$77, $AB,$00, $A4,$55, $A0,$13,$00
.byte $70, $A5,$77, $AB,$00, $A4,$55, $A0,$13,$00, $A6,$77, $AB,$00
.byte $A4,$55, $A0,$13,$00, $A6,$77, $00
.byte $A1