From 3710d954a7f0de4a429f6acea010cfb83e1990a4 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 27 Jan 2019 15:30:00 -0500 Subject: [PATCH] ootw: add some more intro backgrounds --- ootw/Makefile | 15 ++++- ootw/intro.s | 122 +++++++++++++++++++++++++++++++++++++-- ootw/intro_keypad.inc | 30 ++++++++++ ootw/intro_keypad.png | Bin 0 -> 365 bytes ootw/intro_open_soda.inc | 36 ++++++++++++ ootw/intro_open_soda.png | Bin 0 -> 525 bytes ootw/intro_scanner.inc | 41 +++++++++++++ ootw/intro_scanner.png | Bin 0 -> 494 bytes ootw/intro_unzapped.inc | 52 +++++++++++++++++ ootw/intro_unzapped.png | Bin 0 -> 13616 bytes 10 files changed, 289 insertions(+), 7 deletions(-) create mode 100644 ootw/intro_keypad.inc create mode 100644 ootw/intro_keypad.png create mode 100644 ootw/intro_open_soda.inc create mode 100644 ootw/intro_open_soda.png create mode 100644 ootw/intro_scanner.inc create mode 100644 ootw/intro_scanner.png create mode 100644 ootw/intro_unzapped.inc create mode 100644 ootw/intro_unzapped.png diff --git a/ootw/Makefile b/ootw/Makefile index 77e4648a..5312f94b 100644 --- a/ootw/Makefile +++ b/ootw/Makefile @@ -37,7 +37,8 @@ intro.o: intro.s \ gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \ keyboard.s random16.s \ intro_building.inc intro_elevator.inc intro_off_elevator.inc \ - intro_drinking.inc intro_collider_ui.inc \ + intro_keypad.inc intro_scanner.inc intro_unzapped.inc \ + intro_open_soda.inc intro_drinking.inc intro_collider_ui.inc \ intro_tunnel1.inc intro_tunnel2.inc intro_gone.inc ca65 -o intro.o intro.s -l intro.lst #### @@ -79,9 +80,21 @@ intro_elevator.inc: $(PNG2RLE) intro_elevator.png intro_off_elevator.inc: $(PNG2RLE) intro_off_elevator.png $(PNG2RLE) asm intro_off_elevator.png off_elevator_rle > intro_off_elevator.inc +intro_keypad.inc: $(PNG2RLE) intro_keypad.png + $(PNG2RLE) asm intro_keypad.png keypad_rle > intro_keypad.inc + +intro_scanner.inc: $(PNG2RLE) intro_scanner.png + $(PNG2RLE) asm intro_scanner.png scanner_rle > intro_scanner.inc + +intro_open_soda.inc: $(PNG2RLE) intro_open_soda.png + $(PNG2RLE) asm intro_open_soda.png open_soda_rle > intro_open_soda.inc + intro_drinking.inc: $(PNG2RLE) intro_drinking.png $(PNG2RLE) asm intro_drinking.png drinking_rle > intro_drinking.inc +intro_unzapped.inc: $(PNG2RLE) intro_unzapped.png + $(PNG2RLE) asm intro_unzapped.png unzapped_rle > intro_unzapped.inc + intro_gone.inc: $(PNG2RLE) intro_gone.png $(PNG2RLE) asm intro_gone.png gone_rle > intro_gone.inc diff --git a/ootw/intro.s b/ootw/intro.s index df56012c..6ef02ab1 100644 --- a/ootw/intro.s +++ b/ootw/intro.s @@ -135,6 +135,32 @@ off_elevator_loop: ;=============================== ;=============================== + ;============================= + ; Load background to $c00 + + lda #$0c + sta BASH + lda #$00 + sta BASL ; load image off-screen $c00 + + lda #>(keypad_rle) + sta GBASH + lda #<(keypad_rle) + sta GBASL + jsr load_rle_gr + + ;================================= + ; copy $c00 to both pages $400/$800 + + jsr gr_copy_to_current + jsr page_flip + jsr gr_copy_to_current + +keypad_loop: + lda KEYPRESS + bpl keypad_loop + bit KEYRESET + ;=============================== ;=============================== @@ -143,6 +169,33 @@ off_elevator_loop: ;=============================== + ;============================= + ; Load background to $c00 + + lda #$0c + sta BASH + lda #$00 + sta BASL ; load image off-screen $c00 + + lda #>(scanner_rle) + sta GBASH + lda #<(scanner_rle) + sta GBASL + jsr load_rle_gr + + ;================================= + ; copy $c00 to both pages $400/$800 + + jsr gr_copy_to_current + jsr page_flip + jsr gr_copy_to_current + +scanner_loop: + lda KEYPRESS + bpl scanner_loop + bit KEYRESET + + ;=============================== ;=============================== ; Spinny DNA / Key @@ -150,14 +203,43 @@ off_elevator_loop: ;=============================== - ;=============================== - ; Sitting at Desk +;=============================== +; Sitting at Desk +;=============================== - ;=============================== - ; Peanut OS + ;============================= + ; Load background to $c00 - ;=============================== - ; Particle Accelerator Screen + lda #$0c + sta BASH + lda #$00 + sta BASL ; load image off-screen $c00 + + lda #>(unzapped_rle) + sta GBASH + lda #<(unzapped_rle) + sta GBASL + jsr load_rle_gr + + ;================================= + ; copy $c00 to both pages $400/$800 + + jsr gr_copy_to_current + jsr page_flip + jsr gr_copy_to_current + +unzapped_loop: + lda KEYPRESS + bpl unzapped_loop + bit KEYRESET + +;=============================== +; Peanut OS +;=============================== + +;=============================== +; Particle Accelerator Screen +;=============================== ;=============================== ;=============================== @@ -165,7 +247,31 @@ off_elevator_loop: ;=============================== ;=============================== + ;============================= + ; Load background to $c00 + lda #$0c + sta BASH + lda #$00 + sta BASL ; load image off-screen $c00 + + lda #>(open_soda_rle) + sta GBASH + lda #<(open_soda_rle) + sta GBASL + jsr load_rle_gr + + ;================================= + ; copy $c00 to both pages $400/$800 + + jsr gr_copy_to_current + jsr page_flip + jsr gr_copy_to_current + +open_soda_loop: + lda KEYPRESS + bpl open_soda_loop + bit KEYRESET ;=============================== ;=============================== @@ -364,7 +470,11 @@ gone_loop: .include "intro_building.inc" .include "intro_elevator.inc" .include "intro_off_elevator.inc" +.include "intro_keypad.inc" +.include "intro_scanner.inc" +.include "intro_open_soda.inc" .include "intro_drinking.inc" +.include "intro_unzapped.inc" .include "intro_collider_ui.inc" .include "intro_tunnel1.inc" .include "intro_tunnel2.inc" diff --git a/ootw/intro_keypad.inc b/ootw/intro_keypad.inc new file mode 100644 index 00000000..af68149b --- /dev/null +++ b/ootw/intro_keypad.inc @@ -0,0 +1,30 @@ +keypad_rle: .byte $28 ; ysize=48 + .byte $A5,$00, $22, $A5,$00, $44, $A0,$12,$CC, $44, $AE,$00 + .byte $22, $A0,$27,$00, $22, $A8,$00, $06, $26,$26, $66 + .byte $06, $26,$26, $66, $06, $26,$26, $66, $A0,$13,$00 + .byte $22, $A9,$00, $22,$22, $66, $00, $22,$22, $66 + .byte $00, $22,$22, $66, $A0,$13,$00, $22, $A9,$00, $02,$02 + .byte $66, $00, $02,$02, $66, $00, $02,$02, $66 + .byte $A0,$13,$00, $22, $A8,$00, $06, $26,$26, $66, $06 + .byte $26,$26, $66, $06, $26,$26, $66, $A0,$13,$00, $22 + .byte $A9,$00, $22, $32, $66, $00, $22,$22, $66 + .byte $00, $22,$22, $66, $A0,$13,$00, $22, $A9,$00, $33,$33 + .byte $BB, $00, $02,$02, $66, $00, $02,$02, $66 + .byte $A0,$13,$00, $22, $A8,$00, $06, $26, $33,$33, $BB + .byte $26,$26, $66, $06, $26,$26, $66, $A0,$13,$00, $22 + .byte $A9,$00, $22, $A3,$33, $BB, $22, $66, $00 + .byte $22,$22, $66, $A0,$13,$00, $22, $A9,$00, $02, $03 + .byte $33,$33, $BB, $02, $66, $00, $02,$02, $66 + .byte $A0,$13,$00, $22, $A8,$00, $06, $26,$26, $33,$33, $3B + .byte $B6, $33, $BB, $26, $B6, $66, $A0,$13,$00 + .byte $22, $A8,$00, $30, $22,$22, $A3,$33, $BB, $33 + .byte $A3,$BB, $B6, $A0,$13,$00, $22, $A8,$00, $33, $32 + .byte $02, $A3,$33, $BB, $B3, $A4,$BB, $A0,$13,$00, $22 + .byte $A8,$00, $33,$33, $00, $A4,$33, $A6,$BB, $B0, $A0,$11,$00 + .byte $22, $A8,$00, $33,$33, $30, $A5,$33, $A6,$BB, $A0,$11,$00 + .byte $22, $A8,$00, $A6,$33, $B3, $33, $A6,$BB, $A0,$11,$00 + .byte $22, $A8,$00, $03, $A5,$33, $3B, $B3, $33 + .byte $A5,$BB, $A0,$11,$00, $22, $A9,$00, $A6,$33, $3B, $B3 + .byte $33, $A4,$BB, $A0,$11,$00, $22, $A9,$00, $A7,$33, $BB + .byte $33, $3B, $A3,$BB, $A0,$AC,$00 + .byte $A1 diff --git a/ootw/intro_keypad.png b/ootw/intro_keypad.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6e5537bcde8226ac0ed3af807dfb12aeb3d54a GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfP!3-ofTJs(SQpN#3A+A9Bv0Ore-`@W&e;F1h z%$YMs;4+gtSi!vFvOf$Hb>w>1DM&H|6fVg?40 z5(Wm*1jcFMuO|To*-JcqUD+QqN(&1ztUk&z8z>}M;u=xnoS&PUnpeW$T$GwvlA5AW zo>`Ki;O^-g5Z=fq4pg+l)5S5w$S58gXsQ5#ZCrfGb!K>aU zFJ$<1ZT-Ey_;asC`ngM@El(H=tUM04l=(7zDsI>{P4dL~i=SdAaBy9cdT-ruV45;# zj%Cw@pc#KSHDkANMK#bSevUU z6mmX-Ep;F7sdQ#$)tevuHP3S}h2Ab=U3LAv>I6??qfZZYbc#hjG0f~12D+KS)78&q Iol`;+0ASINPyhe` literal 0 HcmV?d00001 diff --git a/ootw/intro_open_soda.inc b/ootw/intro_open_soda.inc new file mode 100644 index 00000000..4a4548d8 --- /dev/null +++ b/ootw/intro_open_soda.inc @@ -0,0 +1,36 @@ +open_soda_rle: .byte $28 ; ysize=48 + .byte $A9,$00, $55, $A5,$00, $55, $A4,$00, $55, $A4,$00 + .byte $55, $A8,$00, $55, $66, $05, $AC,$00, $55 + .byte $A5,$00, $55, $A4,$00, $55, $A4,$00, $55, $A8,$00 + .byte $66, $56, $AD,$00, $55, $A5,$00, $55, $A3,$00 + .byte $50, $55, $A3,$00, $50, $55, $A7,$00, $50 + .byte $66, $AE,$00, $05, $55, $A4,$00, $05, $A3,$00 + .byte $55, $A4,$00, $55, $05, $A7,$00, $65, $56 + .byte $AF,$00, $55, $A8,$00, $55, $A4,$00, $55, $A7,$00 + .byte $50, $66, $A0,$10,$00, $55, $00, $A4,$B0, $A3,$BB + .byte $B5, $00, $B0,$B0, $00, $55, $A7,$00, $65 + .byte $56, $A0,$10,$00, $B0, $A9,$BB, $B0, $BB,$BB, $30 + .byte $BB, $B0, $A5,$00, $50, $66, $AF,$00, $B0 + .byte $A5,$BB, $33, $23,$23, $22, $B2, $23, $0B,$0B + .byte $BB, $33, $BB,$BB, $A5,$00, $65, $56, $AD,$00 + .byte $B0, $A6,$BB, $33, $23, $22,$22, $A3,$BB, $00,$00 + .byte $BB,$BB, $33, $BB, $30, $A3,$00, $50, $66 + .byte $AC,$00, $B0, $A7,$BB, $3B, $33, $A3,$22, $0B + .byte $A3,$BB, $00, $BB,$BB, $33, $BB, $33, $BB,$BB + .byte $00, $65, $56, $A7,$00, $65, $A3,$B0, $AA,$BB + .byte $03, $22,$22, $66, $00, $A4,$BB, $33, $BB + .byte $B3, $BB, $B3, $BB,$BB, $56,$56, $A7,$00, $65 + .byte $66, $AD,$BB, $00, $A3,$22, $00, $0B, $A3,$BB + .byte $33, $A7,$BB, $A7,$00, $65, $66, $05, $A5,$BB + .byte $2B, $22, $2B, $A5,$BB, $00, $A3,$22, $00,$00 + .byte $AB,$BB, $A6,$00, $65, $66, $56, $00, $A5,$BB + .byte $A3,$B3, $A5,$BB, $00, $02, $22,$22, $00,$00, $AB,$BB + .byte $A5,$00, $65, $66, $56, $00,$00, $A4,$BB, $3B,$3B + .byte $A5,$03, $3B, $BB, $00,$00, $02, $20, $A3,$00 + .byte $33, $A9,$BB, $B0, $A3,$00, $65, $66, $56 + .byte $A3,$00, $3B,$3B, $03,$03, $A8,$00, $03, $A7,$00, $33 + .byte $AA,$BB, $00,$00, $50, $66, $56, $A0,$18,$00, $33 + .byte $AA,$BB, $00, $50, $66,$66, $A0,$19,$00, $33, $AA,$BB + .byte $50, $66,$66, $05, $A0,$1A,$00, $33, $A9,$BB, $66,$66 + .byte $05, $A0,$1B,$00, $33, $A9,$BB, $56, $05, $A0,$A7,$00 + .byte $A1 diff --git a/ootw/intro_open_soda.png b/ootw/intro_open_soda.png new file mode 100644 index 0000000000000000000000000000000000000000..e828658ea5a4aec1bf50b809563d5ba02628b65c GIT binary patch literal 525 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 BcAx+N literal 0 HcmV?d00001