diff --git a/demos/trogdor/Makefile b/demos/trogdor/Makefile index 2e762bb0..162611f4 100644 --- a/demos/trogdor/Makefile +++ b/demos/trogdor/Makefile @@ -9,13 +9,14 @@ LINKER_SCRIPTS = ../../linker_scripts/ all: trogdor.dsk trogdor.dsk: QBOOT QLOAD music.inc qload.inc \ - MUSIC TROGDOR + MUSIC TROGDOR TITLE cp $(EMPTY_DISK) trogdor.dsk $(DOS33_RAW) trogdor.dsk 0 0 QBOOT 0 1 $(DOS33_RAW) trogdor.dsk 0 2 QBOOT 1 1 $(DOS33_RAW) trogdor.dsk 0 4 QBOOT 2 1 $(DOS33_RAW) trogdor.dsk 1 0 QLOAD 0 0 $(DOS33_RAW) trogdor.dsk 4 0 MUSIC 0 0 + $(DOS33_RAW) trogdor.dsk 11 0 TITLE 0 0 $(DOS33_RAW) trogdor.dsk 12 0 TROGDOR 0 0 @@ -109,6 +110,7 @@ MUSIC: music.o ld65 -o MUSIC music.o -C $(LINKER_SCRIPTS)/apple2_d000.inc music.o: music.s zp.inc \ + music/trogdor.pt3 \ pt3_lib_core.s \ pt3_lib_mockingboard_detect.s \ pt3_lib_mockingboard.inc \ @@ -119,6 +121,16 @@ music.o: music.s zp.inc \ ### +TITLE: title.o + ld65 -o TITLE title.o -C $(LINKER_SCRIPTS)/apple2_4000.inc + +title.o: title.s \ + zp.inc hardware.inc qload.inc \ + graphics/trogdor.hgr.zx02 + ca65 -o title.o title.s -l title.lst + +### + TROGDOR: trogdor.o ld65 -o TROGDOR trogdor.o -C $(LINKER_SCRIPTS)/apple2_8000.inc diff --git a/demos/trogdor/NOTES b/demos/trogdor/NOTES index c63c36fe..984588d4 100644 --- a/demos/trogdor/NOTES +++ b/demos/trogdor/NOTES @@ -1,32 +1,130 @@ Crop to 635x472 Levels: middle to 0.40 - Scale to: 280x208 - Levels: to 0.35 + Scale to: 280x208 (none) + Levels: to 0.35 Indexed, B+W, Floyd Steinberg Crop to 280x192 with top at 8 pixels down +"A possibly legal program for your Apple II" -+ zoom trogdor right to left -+ blank screen with flames -+ trogdor zoom up from bottom +Play again? Y/N + +Excellent! +Trogdor demands you watch again anyway. + +Scene 1: "TROGDOR!" ++ zoom trogdor scrolls right to left ++ Left / Right / Left Flame ++ trog05 / flames + +Scene 2: "TROGDOR!" ++ main trogdor scroll up from bottom ++ trog00 + +Scene 3: + village scroll from right to left ++ trog01 / trog02 + +Scene 4: "TROGDOR WAS A MAN!" + Man -+ Flames appear -+ Dragon man -+ Dragon -+ Zoom in/out -+ Scroll Down -+ Flames on Dragon Man again -+ Flip rapidly between dragon/man -+ Back to village -+ Flames over village -+ Burning peasant scrolls ++ flames left/right/left ++ "he was a.." ++ trog03 + +Scene 5: "DRAGON MAN" ++ dragonman ++ "maybe just a..." ++ trog04 + +Scene 6: "Dragon" ++ dragon again ++ trog00 (trog06?) ++ "but he was still..." + +Scene 7: "TROGDOR" ++ Zoom in/out rapidly ++ trog05/trog00 ++ Scroll Down off sreen + +Scene 8: "TROGDOR" ++ Dragonman ++ Flames on left and right, animated ++ Then rapidly shift trog04/trog05 ++ trog04 + +Scene 9: "Burninating the countryside" ++ Village ++ on "countrside" two flames ++ Burninating the... + +Scene 10: "Pesants" ++ Burning peasant scrolls rigt/left + +Scene 11: "Burninatng " + dragon up/down -+ Lots of peasants ++ trog08/trog09 + +Scene 12: "All the people " ++ Lots of peasants, appear one by one ++ + 2 4 5 + 3 1 ++ trog10 + +Scece 13: "Thatched roof cottages" + cottage scrolls up -+ back/forth dragon/cottage -+ cottags scrolls in upside down from top? with flames? -+ rapid cut between tilted man/peasant/few others + +Scene 14: "Thatched roof cottages" ++ alternates + trog09 + cottage + trog08 + cottage + trog09 + cottage + trog08 + cottage + trog09 + cottage + white screen, twin flames low +Scene 15: "Thatched root cottages" + two flames, cottage scrolls in upside down + +Scene 16: + Rapid cuts: + + trog down + + man + + peasant + + countryside + + cottage + + trog zoom out + + trog zoom out 2 flames + +Scene 17: "Trogdor comes in the night!" + + Strongbad at computer? + +Space: + $2000-$3FFF = page1 (8k) + $4000-$5fff = page2 (8k) + $6000-$BFFF = 24k + + Language card = 12k (5k by music) so 7k + + + 1499 trog00_trogdor.hgr.zx02 + 4839 trog01_countryside.hgr.zx02 + 1174 trog02_countryside.hgr.zx02 + 1973 trog03_man.hgr.zx02 + 1982 trog04_dragonman.hgr.zx02 + 3525 trog05_zoom.hgr.zx02 + 1665 trog07_peasant.hgr.zx02 + 2814 trog08_close1.hgr.zx02 + 3313 trog09_close.hgr.zx02 + 2817 trog10_peasants.hgr.zx02 + 2680 trog11_cottage.hgr.zx02 + ===== + 28281 = 28k or so + diff --git a/demos/trogdor/graphics/Makefile b/demos/trogdor/graphics/Makefile index 832fe6aa..0ccd78c7 100644 --- a/demos/trogdor/graphics/Makefile +++ b/demos/trogdor/graphics/Makefile @@ -16,7 +16,25 @@ all: \ trog08_close1.hgr.zx02 \ trog09_close.hgr.zx02 \ trog10_peasants.hgr.zx02 \ - trog11_cottage.hgr.zx02 + trog11_cottage.hgr.zx02 \ + a2_strongbad.hgr.zx02 \ + trogdor.hgr.zx02 + +#### + +trogdor.hgr.zx02: trogdor.hgr + $(ZX02) trogdor.hgr trogdor.hgr.zx02 + +trogdor.hgr: trogdor.png + $(PNG_TO_HGR) trogdor.png > trogdor.hgr + +#### + +a2_strongbad.hgr.zx02: a2_strongbad.hgr + $(ZX02) a2_strongbad.hgr a2_strongbad.hgr.zx02 + +a2_strongbad.hgr: a2_strongbad.png + $(PNG_TO_HGR) a2_strongbad.png > a2_strongbad.hgr #### diff --git a/demos/trogdor/graphics/a2_strongbad.png b/demos/trogdor/graphics/a2_strongbad.png new file mode 100644 index 00000000..b8622cd4 Binary files /dev/null and b/demos/trogdor/graphics/a2_strongbad.png differ diff --git a/demos/trogdor/graphics/trogdor.png b/demos/trogdor/graphics/trogdor.png new file mode 100644 index 00000000..b1a4c40e Binary files /dev/null and b/demos/trogdor/graphics/trogdor.png differ diff --git a/demos/trogdor/music.s b/demos/trogdor/music.s index 823db60b..1e8e424b 100644 --- a/demos/trogdor/music.s +++ b/demos/trogdor/music.s @@ -27,4 +27,4 @@ PT3_ENABLE_APPLE_IIC = 1 .align $100 PT3_LOC: -;.incbin "music/Walking_In_The_Air_mA2E.pt3" +.incbin "music/trogdor.pt3" diff --git a/demos/trogdor/music/trogdor.pt3 b/demos/trogdor/music/trogdor.pt3 new file mode 100644 index 00000000..916dee66 Binary files /dev/null and b/demos/trogdor/music/trogdor.pt3 differ diff --git a/demos/trogdor/qload.s b/demos/trogdor/qload.s index 5213ced7..a3bd048a 100644 --- a/demos/trogdor/qload.s +++ b/demos/trogdor/qload.s @@ -24,7 +24,7 @@ qload_start: ; jsr load_file - jmp xmas_start + jmp trogdor_start ; jmp $2000 ; jump to ZW @@ -163,22 +163,22 @@ error_string: .endif which_disk_array: - .byte 1,1 ; MUSIC, XMAS + .byte 1,1,1 ; MUSIC, TROGDOR, TITLE load_address_array: - .byte $D0,$80 ; MUSIC, XMAS + .byte $D0,$80,$40 ; MUSIC, TROGDOR, TITLE start_address: - .byte $D0,$80 ; MUSIC, XMAS + .byte $D0,$80,$40 ; MUSIC, TROGDOR, TITLE track_array: - .byte 4,12 ; MUSIC, XMAS + .byte 4,12,11 ; MUSIC, TROGDOR, TITLE sector_array: - .byte 0,0 ; MUSIC, XMAS + .byte 0,0,0 ; MUSIC, TROGDOR, TITLE length_array: - .byte 32,32 ; MUSIC, XMAS + .byte 32,32 ; MUSIC, TROGDOR, TITLE PT3_ENABLE_APPLE_IIC = 1 diff --git a/demos/trogdor/start.s b/demos/trogdor/start.s index 34584de5..94df1ae2 100644 --- a/demos/trogdor/start.s +++ b/demos/trogdor/start.s @@ -1,11 +1,10 @@ -; XMAS 2023 +; Trogdor -; ; by deater (Vince Weaver) -xmas_start: +trogdor_start: ;===================== ; initializations @@ -15,7 +14,6 @@ xmas_start: jsr hgr_make_tables - ;=================== ; restart? ;=================== @@ -78,6 +76,34 @@ dont_enable_mc: skip_all_checks: + ;============================ + ;============================ + ; load title image from disk + ;============================ + ;============================ + + ; load from disk + + bit SET_GR + bit HIRES + bit TEXTGR + bit PAGE2 + + lda #2 ; TITLE + sta WHICH_LOAD + jsr load_file + + bit PAGE1 + + ; decompress + + lda #<$4000 + sta zx_src_l+1 + lda #>$4000 + sta zx_src_h+1 + lda #$20 + jsr zx02_full_decomp + ;======================= ;======================= ; Print message @@ -116,15 +142,47 @@ done_set_message: jsr move_and_print + ; print title messages + + lda #title_string + sta OUTH + + ; print the text + + jsr move_and_print + jsr move_and_print + + ; wait a bit, then change to credits + + lda #50 + jsr wait_a_bit + + lda #bottom_string1 + sta OUTH + + ; print the text + + jsr move_and_print + + lda #50 + jsr wait_a_bit + jsr move_and_print + + jsr wait_until_keypress + ;======================= ;======================= - ; Load xmas + ; Load TROGDOR ;======================= ;======================= -load_xmas: +load_trogdor: ; load from disk @@ -138,7 +196,7 @@ load_xmas: ;======================= ;======================= -; cli ; start music + cli ; start music jsr $8000 @@ -182,15 +240,24 @@ forever: .include "gs_interrupt.s" -;.include "title.s" +title_string: +.byte 1,20,"NEW FROM VIDELECTRIX: A POSSIBLY LEGAL",0 +.byte 7,21,"PROGRAM FOR YOUR APPLE II!",0 + + +bottom_string1: +.byte 3,23," CODE BY DEATER, MUSIC BY TOM_FJM",0 +bottom_string2: +.byte 3,23," = PRESS ANY KEY TO START = ",0 + ; 0123456789012345678901234567890123456789 mockingboard_string: -.byte 6,22,"MOCKINGBOARD DETECTED SLOT 4",0 +.byte 6,23,"MOCKINGBOARD DETECTED SLOT 4",0 no_mockingboard_string: -.byte 3,22,"NO MOCKINGBOARD, CONTINUING ANYWAY",0 +.byte 3,23,"NO MOCKINGBOARD, CONTINUING ANYWAY",0 .include "pt3_lib_mockingboard_patch.s" diff --git a/demos/trogdor/title.s b/demos/trogdor/title.s new file mode 100644 index 00000000..eedc4846 --- /dev/null +++ b/demos/trogdor/title.s @@ -0,0 +1,2 @@ +.incbin "graphics/trogdor.hgr.zx02" +