diff --git a/games/peasant/Makefile b/games/peasant/Makefile index d746f947..c4014d16 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -11,7 +11,7 @@ all: peasant.dsk peasant_side2.dsk peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO \ PEASANT1 PEASANT2 PEASANT3 PEASANT4 ENDING TROGDOR \ - SAVE1 SAVE2 SAVE3 MUSIC INVENTORY + SAVE1 SAVE2 SAVE3 MUSIC INVENTORY DIALOG_PEASANT2.LZSA cp $(EMPTY_DISK)/empty.dsk peasant.dsk $(DOS33_RAW) peasant.dsk 0 0 QBOOT 0 1 $(DOS33_RAW) peasant.dsk 0 2 QBOOT 1 1 @@ -24,6 +24,7 @@ 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 DIALOG_PEASANT2.LZSA 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 diff --git a/games/peasant/new_game.s b/games/peasant/new_game.s index 23992c73..93e33bab 100644 --- a/games/peasant/new_game.s +++ b/games/peasant/new_game.s @@ -29,6 +29,26 @@ start_new_game: lda LCBANK1 lda LCBANK1 + ; load dialog to $20 + + lda #LOAD_DIALOG2 + sta WHICH_LOAD + + jsr load_file + + ; decompress to $E000 + + lda #$00 + sta getsrc_smc+1 + lda #$20 + sta getsrc_smc+2 + + lda #$E0 + + jsr decompress_lzsa2_fast + + + ; start in PEASANT2 file lda #LOAD_PEASANT2 diff --git a/games/peasant/peasant2.s b/games/peasant/peasant2.s index b5c4a221..35f4f8ea 100644 --- a/games/peasant/peasant2.s +++ b/games/peasant/peasant2.s @@ -244,4 +244,5 @@ map_priority_hi: - +;peasant2_text_lzsa: +;.incbin "DIALOG_PEASANT2.LZSA" diff --git a/games/peasant/qload.s b/games/peasant/qload.s index 1440d2bb..cc17c7aa 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, INVENTORY + .byte 2,1,1,1 ; GAME_OVER, INVENTORY, DIALOG2 .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,$D0,$40,$40 ; GAME_OVER, INVENTORY + .byte $60,$D0,$20,$40 ; GAME_OVER, INVENTORY, DIALOG2 .byte $08 ; .byte $BC,$BC,$BC,$0A ; SAVE1, SAVE2, SAVE3 .byte $0A ; @@ -215,7 +215,7 @@ track_array: .byte 4, 6, 9,1 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 15,20,25,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 .byte 19,24, 3,29 ; TROGDOR, ENDING, MUSIC, CLIFF - .byte 3,14,28,30 ; GAME_OVER, INVENTORY + .byte 3,14,13,30 ; GAME_OVER, INVENTORY, DIALOG2 .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, 0, 0, 1 ; GAME_OVER, INVENTORY + .byte 0, 0, 0, 1 ; GAME_OVER, INVENTORY, DIALOG2 .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, 16, 27, 78 ; GAME_OVER, INVENTORY + .byte 16, 16, 16, 78 ; GAME_OVER, INVENTORY, DIALOG2 .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 b47e3420..0fddecfc 100644 --- a/games/peasant/zp.inc +++ b/games/peasant/zp.inc @@ -235,6 +235,7 @@ LOAD_MUSIC = 10 LOAD_CLIFF = 11 LOAD_GAME_OVER = 12 LOAD_INVENTORY = 13 +LOAD_DIALOG2 = 14 LOAD_SAVE1 = 17 LOAD_SAVE2 = 18