From 47559c8cf4d0fa8c276235d35c8307fc0901ccce Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 17 Sep 2020 13:34:38 -0400 Subject: [PATCH] monkey: add title overlay makes things a bit hard to see --- monkey/Makefile | 2 +- monkey/gr_overlay.s | 100 +++++++++++++++++++++++++++++++ monkey/graphics_intro/monkey.png | Bin 911 -> 11235 bytes monkey/title.s | 55 ++++++++++++++++- 4 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 monkey/gr_overlay.s diff --git a/monkey/Makefile b/monkey/Makefile index 2e4d172d..4703a0a8 100644 --- a/monkey/Makefile +++ b/monkey/Makefile @@ -38,7 +38,7 @@ TITLE: title.o title.o: title.s \ graphics_intro/title_graphics.inc \ - interrupt_handler.s mockingboard.s ym_play.s + interrupt_handler.s mockingboard.s ym_play.s gr_overlay.s ca65 -o title.o title.s -l title.lst diff --git a/monkey/gr_overlay.s b/monkey/gr_overlay.s new file mode 100644 index 00000000..4f4c266e --- /dev/null +++ b/monkey/gr_overlay.s @@ -0,0 +1,100 @@ + ;========================================================= + ; gr_overlay, 40x40 version + ;========================================================= + ; overlay with 0x4400, treating 0xa as transparent + +gr_overlay_40x40_noload: + lda #40 + sta CH ; xsize is in CH ; 3 + lda #38 + sta CV ; ysize is in CV ; 3 + + + ldy #0 + +gr_overlay_loop: + + ldy CV ; 3 + lda gr_offsets,Y ; lookup low-res memory address ; 4 + sta OUTL ; store out low byte of addy ; 3 + sta INL + lda gr_offsets+1,Y ; look up high byte ; 4 + clc + adc DRAW_PAGE ; ; 3 + sta OUTH ; and store it out ; 3 + + lda gr_offsets+1,Y ; look up high byte ; 4 + clc + adc #$40 ; force to start at $4400 + sta INH + + ; OUTH:OUTL now points at right place + + ldx CH ; load xsize into x ; 3 + ldy #0 +gr_overlay_put_pixel: + lda (INL),Y ; get sprite colors ; 5 + + ; check if completely transparent + ; if so, skip + + cmp #$aa ; if all zero, transparent ; 2 + beq gr_overlay_done_draw ; don't draw it ; 2nt/3 + + sta COLOR ; save color for later ; 3 + + ; check if top pixel transparent + + and #$f0 ; check if top nibble zero ; 2 + cmp #$a0 + bne gr_overlay_bottom ; if not skip ahead ; 2nt/3 + + lda COLOR + and #$0f + sta COLOR + + lda #$f0 ; setup mask ; 2 + sta MASK ; 3 + bmi gr_overlay_mask ; always? ; 3 + + +gr_overlay_bottom: + lda COLOR ; re-load color ; 3 + and #$0f ; check if bottom nibble zero ; 2 + cmp #$0a + bne overlay_put_sprite_all ; if not, skip ahead ; 2nt/3 + ;============= + ; 7/8 + + lda COLOR + and #$f0 + sta COLOR + lda #$0f ; 2 + sta MASK ; setup mask ; 3 + ;=========== + ; 5 + +gr_overlay_mask: + lda (OUTL),Y ; get color at output ; 5 + and MASK ; mask off unneeded part ; 3 + ora COLOR ; or the color in ; 3 + sta (OUTL),Y ; store it back ; 6 + + jmp gr_overlay_done_draw ; we are done ; 3 + +overlay_put_sprite_all: + lda COLOR ; load color ; 3 + sta (OUTL),Y ; and write it out ; 6 + + +gr_overlay_done_draw: + iny + dex ; decrement x counter ; 2 + bne gr_overlay_put_pixel ; if not done, keep looping ; 2nt/3 + + dec CV ; decemenet total y count ; 5 + dec CV + bpl gr_overlay_loop ; loop if not done ; 2nt/3 + + + rts ; return ; 6 diff --git a/monkey/graphics_intro/monkey.png b/monkey/graphics_intro/monkey.png index 1cb03e20baa8d77091bbc0f28bffa9110bce1627..4c2533f5fe6c10c7de28942d94b4a0f4ec8fbf4c 100644 GIT binary patch delta 10780 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 + sta LZSA_SRC_HI + lda #$44 ; load to page $4800-400=$4400 + jsr decompress_lzsa2_fast + + setup_music: ; decompress music @@ -203,6 +215,10 @@ monkey_loop: jsr put_sprite_crop + ; copy title overlay + + jsr gr_overlay_40x40_noload + ; page flip jsr page_flip @@ -260,14 +276,13 @@ done_with_title: ; level graphics .include "graphics_intro/title_graphics.inc" - - .include "text_print.s" .include "gr_offsets.s" .include "gr_fast_clear.s" .include "gr_copy.s" .include "gr_putsprite_crop.s" .include "gr_pageflip.s" + .include "gr_overlay.s" .include "decompress_fast_v2.s" .include "ym_play.s" @@ -390,3 +405,39 @@ mountain_top_sprite: .byte $AA,$2A,$22,$22,$00,$00,$22,$07,$70,$00,$AA .byte $2A,$22,$00,$22,$00,$22,$02,$22,$07,$70,$0A +credits_text: +; DEEP IN THE CARIBBEAN +; ^ , +; THE ISLAND OF MELEE + +; TITLE CARD APPEARS +; TM&(C) 1990 LUCAS ARTS +; ALL RIGHTS RESERVED + +; CREATED AND DESIGNED BY +; RON GILBERT + +; WRITTEN AND PROGRAMMED BY +; RON GILBERT, DAVE GROSSMAN +; AND TIM SCHAFER + +; BACKGROUND ART BY +; STEVE PURCELL, MARK FERRARI +; AND MIKE EBERT + +; ANIMATION BY +; STEVE PURCELL, MIKE EBERT +; AND MARTIN CAMERON AS "BUCKY" + +; ORIGINAL MUSIC BY +; MICHAEL LAND + +; BARNEY JONES AND ANDY NEWELL +; OF EARWAX PRODUCTIONS... + +; ... AND +; PATRICK MUNDY + +; TESTERS, PRODUCER, SCUMM + +