diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 9449b70f..caa9399f 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -8,7 +8,7 @@ EMPTY_DISK = ../../empty_disk all: peasant.dsk -peasant.dsk: QBOOT QLOAD INTRO TITLE PEASANT +peasant.dsk: QBOOT QLOAD INTRO TITLE PEASANT ENDING cp $(EMPTY_DISK)/empty.dsk peasant.dsk # $(DOS33) -y peasant.dsk BSAVE -a 0x6000 PEASANT $(DOS33_RAW) peasant.dsk 0 0 QBOOT 0 1 @@ -16,8 +16,9 @@ peasant.dsk: QBOOT QLOAD INTRO TITLE PEASANT $(DOS33_RAW) peasant.dsk 0 4 QBOOT 2 1 $(DOS33_RAW) peasant.dsk 1 0 QLOAD 0 0 $(DOS33_RAW) peasant.dsk 3 0 INTRO 0 0 - $(DOS33_RAW) peasant.dsk 10 0 TITLE 0 0 + $(DOS33_RAW) peasant.dsk 10 0 TITLE 0 0 $(DOS33_RAW) peasant.dsk 17 0 PEASANT 0 0 + $(DOS33_RAW) peasant.dsk 24 0 ENDING 0 0 ### @@ -74,6 +75,17 @@ peasant.o: peasant.s graphics/graphics.inc \ ### +ENDING: ending.o + ld65 -o ENDING ending.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + +ending.o: ending.s graphics_end/end_graphics.inc \ + draw_box.s hgr_rectangle.s hgr_font.s \ + ending.s + ca65 -o ending.o ending.s -l ending.lst + + +### + FONT_TEST: font_test.o ld65 -o FONT_TEST font_test.o -C $(LINKER_SCRIPTS)/apple2_6000.inc @@ -84,5 +96,5 @@ font_test.o: font_test.s hgr_font.s hgr_1x8_sprite.s ### clean: - rm -f *~ *.o *.lst HELLO PEASANT FONT_TEST + rm -f *~ *.o *.lst HELLO INTRO TITLE PEASANT ENDING diff --git a/games/peasant/ending.s b/games/peasant/ending.s index 941f848b..87e1d2c6 100644 --- a/games/peasant/ending.s +++ b/games/peasant/ending.s @@ -1,9 +1,24 @@ ; o/~ Bread is a good time for me o/~ +; by Vince `deater` Weaver vince@deater.net + +.include "hardware.inc" +.include "zp.inc" + + ;************************ ; Ending ;************************ + ending: + + jsr hgr_make_tables + + jsr HGR2 ; Hi-res graphics, no text at bottom + ; Y=0, A=0 after this called + + +trogdor_question: lda #<(trogdor_lzsa) sta getsrc_smc+1 lda #>(trogdor_lzsa) @@ -13,16 +28,10 @@ ending: jsr decompress_lzsa2_fast - lda #peasant_text - sta OUTH - - jsr hgr_put_string - - jsr wait_until_keypress +game_over: + lda #<(game_over_lzsa) sta getsrc_smc+1 lda #>(game_over_lzsa) @@ -38,13 +47,28 @@ ending: sta OUTH jsr hgr_put_string + jsr hgr_put_string jsr wait_until_keypress - rts + +forever: + jmp forever +.include "decompress_fast_v2.s" +.include "wait_keypress.s" +.include "hgr_font.s" +.include "draw_box.s" +.include "hgr_rectangle.s" +.include "graphics_end/end_graphics.inc" + +peasant_text: + .byte 25,2,"Peasant's Quest",0 + +score_text: + .byte 0,2,"Score: 0 of 150",0 diff --git a/games/peasant/graphics/Makefile b/games/peasant/graphics/Makefile index 1b921505..3c2774e8 100644 --- a/games/peasant/graphics/Makefile +++ b/games/peasant/graphics/Makefile @@ -13,17 +13,12 @@ graphics.inc: \ lake_e.lzsa \ lake_w.lzsa \ river.lzsa \ - knight.lzsa \ - trogdor.lzsa \ - game_over.lzsa + knight.lzsa echo "cottage_lzsa: .incbin \"cottage.lzsa\"" > graphics.inc echo "lake_w_lzsa: .incbin \"lake_w.lzsa\"" >> graphics.inc echo "lake_e_lzsa: .incbin \"lake_e.lzsa\"" >> graphics.inc echo "river_lzsa: .incbin \"river.lzsa\"" >> graphics.inc echo "knight_lzsa: .incbin \"knight.lzsa\"" >> graphics.inc - echo "trogdor_lzsa: .incbin \"trogdor.lzsa\"" >> graphics.inc - echo "game_over_lzsa: .incbin \"game_over.lzsa\"" >> graphics.inc - ### diff --git a/games/peasant/graphics_end/Makefile b/games/peasant/graphics_end/Makefile new file mode 100644 index 00000000..f27fdbd6 --- /dev/null +++ b/games/peasant/graphics_end/Makefile @@ -0,0 +1,42 @@ + +PNG2RLE = ../../../utils/gr-utils/png2rle +PNG2GR = ../../../utils/gr-utils/png2gr +PNG2HGR = ../../../utils/hgr-utils/png2hgr +LZSA = ~/research/lzsa/lzsa/lzsa +B2D = ../../../utils/bmp2dhr/b2d + +all: end_graphics.inc + + +end_graphics.inc: \ + trogdor.lzsa \ + game_over.lzsa + echo "trogdor_lzsa: .incbin \"trogdor.lzsa\"" > end_graphics.inc + echo "game_over_lzsa: .incbin \"game_over.lzsa\"" >> end_graphics.inc + + +### + +trogdor.lzsa: trogdor.hgr + $(LZSA) -r -f2 trogdor.hgr trogdor.lzsa + +trogdor.hgr: trogdor.png + $(PNG2HGR) trogdor.png > trogdor.hgr + +### + +game_over.lzsa: game_over.hgr + $(LZSA) -r -f2 game_over.hgr game_over.lzsa + +game_over.hgr: game_over.png + $(PNG2HGR) game_over.png > game_over.hgr + + + + +### + + +clean: + rm -f *~ end_graphics.inc *.lzsa *.gr *.hgr + diff --git a/games/peasant/graphics/game_over.png b/games/peasant/graphics_end/game_over.png similarity index 100% rename from games/peasant/graphics/game_over.png rename to games/peasant/graphics_end/game_over.png diff --git a/games/peasant/graphics/trogdor.png b/games/peasant/graphics_end/trogdor.png similarity index 100% rename from games/peasant/graphics/trogdor.png rename to games/peasant/graphics_end/trogdor.png diff --git a/games/peasant/peasant.s b/games/peasant/peasant.s index a2745651..c35ece71 100644 --- a/games/peasant/peasant.s +++ b/games/peasant/peasant.s @@ -52,11 +52,10 @@ peasant_quest: ; Ending ;************************ - jsr ending + lda #LOAD_ENDING + sta WHICH_LOAD - -forever: - jmp forever + rts .include "decompress_fast_v2.s" @@ -67,7 +66,6 @@ forever: .include "lake_e.s" .include "river.s" .include "knight.s" -.include "ending.s" .include "hgr_font.s" .include "draw_box.s"