diff --git a/games/peasant/Makefile b/games/peasant/Makefile index e9b8cc97..d746f947 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -24,9 +24,10 @@ peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO \ $(DOS33_RAW) peasant.dsk 4 0 VID_LOGO 0 0 $(DOS33_RAW) peasant.dsk 6 0 TITLE 0 0 $(DOS33_RAW) peasant.dsk 9 0 INTRO 0 0 - $(DOS33_RAW) peasant.dsk 13 0 PEASANT1 0 0 - $(DOS33_RAW) peasant.dsk 18 0 PEASANT2 0 0 - $(DOS33_RAW) peasant.dsk 24 0 PEASANT3 0 0 + $(DOS33_RAW) peasant.dsk 14 0 INVENTORY 0 0 + $(DOS33_RAW) peasant.dsk 15 0 PEASANT1 0 0 + $(DOS33_RAW) peasant.dsk 20 0 PEASANT2 0 0 + $(DOS33_RAW) peasant.dsk 25 0 PEASANT3 0 0 $(DOS33_RAW) peasant.dsk 30 0 PEASANT4 0 0 peasant_side2.dsk: WBOOT2 COPY_CHECK TROGDOR ENDING CLIFF GAME_OVER @@ -185,7 +186,8 @@ intro.o: intro.s zp.inc qload.inc music.inc \ wait_a_bit.s draw_peasant.s hgr_text_box.s \ title.s directions.s \ intro_cottage.s intro_lake_w.s intro_lake_e.s \ - intro_river.s intro_knight.s + intro_river.s intro_knight.s \ + new_game.s ca65 -o intro.o intro.s -l intro.lst ### diff --git a/games/peasant/TODO b/games/peasant/TODO index 7ebf6085..4c2438f5 100644 --- a/games/peasant/TODO +++ b/games/peasant/TODO @@ -1,8 +1,10 @@ TODO: -+ animation for game_over ++ print warning message on 48k systems that we need at least 64k + ++ more frames in animation for game_over + hook up game_over for "quit" and "copy" -+ music for game over ++ better music for game over + consolidate the lookup info for message box sizes, as in the end only Y2 is changing diff --git a/games/peasant/intro.s b/games/peasant/intro.s index 37fdbddb..10f8921e 100644 --- a/games/peasant/intro.s +++ b/games/peasant/intro.s @@ -114,57 +114,12 @@ mockingboard_notfound2: ;============================= ; start new game ;============================= -start_new_game: - lda #LOAD_PEASANT2 - sta WHICH_LOAD - ;========================= - ; init peasant position - ; draw at 18,108 + jmp start_new_game - lda #18 - sta PEASANT_X - lda #108 - sta PEASANT_Y - - lda #PEASANT_DIR_RIGHT - sta PEASANT_DIR - - lda #0 - sta PEASANT_XADD - sta PEASANT_YADD - - lda #0 - sta SCORE_HUNDREDS - - lda #$00 - sta SCORE_TENSONES - - lda #4 - sta MAP_X - lda #1 - sta MAP_Y - - lda #$00 - sta INVENTORY_1 - sta INVENTORY_2 - lda #INV3_SHIRT - sta INVENTORY_3 - - ; 1100 1011 - lda #$00 - sta INVENTORY_1_GONE - ; 0001 1101 - lda #$00 - sta INVENTORY_2_GONE - ; - lda #$0 - sta INVENTORY_3_GONE - - rts +.include "new_game.s" -;.include "decompress_fast_v2.s" .include "wait_keypress.s" .include "intro_cottage.s" @@ -175,6 +130,7 @@ start_new_game: .include "draw_peasant.s" +;.include "decompress_fast_v2.s" ;.include "hgr_font.s" ;.include "draw_box.s" ;.include "hgr_rectangle.s" diff --git a/games/peasant/new_game.s b/games/peasant/new_game.s new file mode 100644 index 00000000..97b6ffdc --- /dev/null +++ b/games/peasant/new_game.s @@ -0,0 +1,91 @@ +; Peasant's Quest / New Game + +; included by intro.s + +; by Vince `deater` Weaver vince@deater.net + + ;============================= + ; start new game + ;============================= +start_new_game: + + ;=================================================== + ; load inventory code to language card $d000 bank 2 + + ; switch in language card + ; read/write RAM, $d000 bank 2 + + lda $C083 + lda $C083 + + ; actually load it + lda #LOAD_INVENTORY + sta WHICH_LOAD + + jsr load_file + + + ; start in PEASANT2 file + + lda #LOAD_PEASANT2 + sta WHICH_LOAD + + ;========================= + ; init peasant position + ; draw at 18,108 + + lda #18 + sta PEASANT_X + lda #108 + sta PEASANT_Y + + ; set direction + + lda #PEASANT_DIR_RIGHT + sta PEASANT_DIR + + ; set not walking + + lda #0 + sta PEASANT_XADD + sta PEASANT_YADD + + ; set score to 0 + + lda #0 + sta SCORE_HUNDREDS + + lda #$00 + sta SCORE_TENSONES + + ; map location + + lda #4 + sta MAP_X + lda #1 + sta MAP_Y + + ; inventory is only t-shirt + + lda #$00 + sta INVENTORY_1 + sta INVENTORY_2 + lda #INV3_SHIRT + sta INVENTORY_3 + + ; inventory items gone + + ; 1100 1011 + lda #$00 + sta INVENTORY_1_GONE + ; 0001 1101 +; lda #$00 + sta INVENTORY_2_GONE + ; +; lda #$00 + sta INVENTORY_3_GONE + + + + rts + diff --git a/games/peasant/qload.s b/games/peasant/qload.s index d238ed2b..1440d2bb 100644 --- a/games/peasant/qload.s +++ b/games/peasant/qload.s @@ -196,7 +196,7 @@ which_disk_array: .byte 1,1,1,2 ; VID_LOGO, TITLE, INTRO. COPY_CHECK .byte 1,1,1,1 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 .byte 2,2,1,2 ; TROGDOR, ENDING, MUSIC, CLIFF - .byte 2,1,1,1 ; GAME_OVER + .byte 2,1,1,1 ; GAME_OVER, INVENTORY .byte 1 ; .byte 1,1,1,1,1 ; SAVE1, SAVE2, SAVE3 .byte $f ; disk detect @@ -205,7 +205,7 @@ load_address_array: .byte $60,$60,$60,$60 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte $60,$60,$60,$60 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 .byte $60,$60,$D0,$60 ; TROGDOR, ENDING, MUSIC, CLIFF - .byte $60,$40,$40,$40 ; GAME_OVER + .byte $60,$D0,$40,$40 ; GAME_OVER, INVENTORY .byte $08 ; .byte $BC,$BC,$BC,$0A ; SAVE1, SAVE2, SAVE3 .byte $0A ; @@ -213,9 +213,9 @@ load_address_array: track_array: .byte 4, 6, 9,1 ; VID_LOGO, TITLE, INTRO, COPY_CHECK - .byte 13,18,24,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 + .byte 15,20,25,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 .byte 19,24, 3,29 ; TROGDOR, ENDING, MUSIC, CLIFF - .byte 3,32,28,30 ; GAME_OVER + .byte 3,14,28,30 ; GAME_OVER, INVENTORY .byte 0 ; .byte 0, 0, 0, 0, 0 ; SAVE1, SAVE2, SAVE3 .byte 0 ; disk detect @@ -224,7 +224,7 @@ sector_array: .byte 0, 0, 0, 0 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 0, 0, 0, 0 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 .byte 0, 0, 0, 0 ; TROGDOR, ENDING, MUSIC, CLIFF - .byte 0,13, 0, 1 ; GAME_OVER + .byte 0, 0, 0, 1 ; GAME_OVER, INVENTORY .byte 6 ; .byte 11,12,13,14,15 ; SAVE1, SAVE2, SAVE3 .byte 0 ; disk detect @@ -233,7 +233,7 @@ length_array: .byte 32, 50, 60, 20 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 80, 88, 88, 80 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 .byte 80, 80, 16, 80 ; TROGDOR, ENDING, MUSIC, CLIFF - .byte 16, 33, 27, 78 ; GAME_OVER + .byte 16, 16, 27, 78 ; GAME_OVER, INVENTORY .byte 3 ; .byte 1,1,1,1,1 ; SAVE1, SAVE2, SAVE3 .byte 1 ; disk detect diff --git a/games/peasant/zp.inc b/games/peasant/zp.inc index b98cdb63..b47e3420 100644 --- a/games/peasant/zp.inc +++ b/games/peasant/zp.inc @@ -234,6 +234,7 @@ LOAD_ENDING = 9 LOAD_MUSIC = 10 LOAD_CLIFF = 11 LOAD_GAME_OVER = 12 +LOAD_INVENTORY = 13 LOAD_SAVE1 = 17 LOAD_SAVE2 = 18