peasant: more work on load/save support

This commit is contained in:
Vince Weaver 2021-09-20 00:08:16 -04:00
parent 4223028a9d
commit 5f023220bd
5 changed files with 146 additions and 31 deletions

View File

@ -9,12 +9,15 @@ EMPTY_DISK = ../../empty_disk
all: peasant.dsk peasant_side2.dsk
peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO COPY_CHECK \
PEASANT1 PEASANT2 PEASANT3 PEASANT4 ENDING TROGDOR
PEASANT1 PEASANT2 PEASANT3 PEASANT4 ENDING TROGDOR \
SAVE1 SAVE2 SAVE3
cp $(EMPTY_DISK)/empty.dsk peasant.dsk
# $(DOS33) -y peasant.dsk BSAVE -a 0x6000 INTRO
$(DOS33_RAW) peasant.dsk 0 0 QBOOT 0 1
$(DOS33_RAW) peasant.dsk 0 2 QBOOT 1 1
$(DOS33_RAW) peasant.dsk 0 4 QBOOT 2 1
$(DOS33_RAW) peasant.dsk 0 11 SAVE1 0 1
$(DOS33_RAW) peasant.dsk 0 12 SAVE2 0 1
$(DOS33_RAW) peasant.dsk 0 13 SAVE3 0 1
$(DOS33_RAW) peasant.dsk 1 0 QLOAD 0 0
$(DOS33_RAW) peasant.dsk 3 0 VID_LOGO 0 0
$(DOS33_RAW) peasant.dsk 5 0 TITLE 0 0
@ -220,6 +223,30 @@ font_test.o: font_test.s hgr_font.s hgr_1x8_sprite.s
ca65 -o font_test.o font_test.s -l font_test.lst
###
SAVE1: save1.o
ld65 -o SAVE1 save1.o -C ../../linker_scripts/apple2_e00.inc
save1.o: save1.s
ca65 -o save1.o save1.s -l save1.lst
###
SAVE2: save2.o
ld65 -o SAVE2 save2.o -C ../../linker_scripts/apple2_e00.inc
save2.o: save2.s
ca65 -o save2.o save2.s -l save2.lst
###
SAVE3: save3.o
ld65 -o SAVE3 save3.o -C ../../linker_scripts/apple2_e00.inc
save3.o: save3.s
ca65 -o save3.o save3.s -l save3.lst
####
graphics_vid/vid_graphics.inc:

29
games/peasant/save1.s Normal file
View File

@ -0,0 +1,29 @@
; SAVE1 -- ??
.include "zp.inc"
; want to load this to address $90
;
.byte LOAD_PEASANT2 ; WHICH_LOAD = $90
.byte 10 ; PEASANT_X = $91
.byte 100 ; PEASANT_Y = $92
.byte PEASANT_DIR_UP ; PEASANT_DIR = $93
.byte 0 ; MAP_X = $94
.byte 1 ; MAP_Y = $95
.byte 5 ; MAP_LOCATION = $96
.byte $ff ; GAME_STATE_0 = $97
.byte $00 ; GAME_STATE_1 = $98
.byte $00 ; GAME_STATE_2 = $99
.byte $00 ; NED_STATUS = $9A
.byte $00 ; BUSH_STATUS = $9B
.byte $00 ; KERREK_STATE = $9C
.byte $00 ; ARROW_SCORE = $9D
.byte $01 ; SCORE_HUNDREDS= $9E
.byte $09 ; SCORE_TENSONES= $9F
.byte $FF ; INVENTORY_1 = $A0
.byte $FF ; INVENTORY_2 = $A1
.byte $FF ; INVENTORY_3 = $A2
.byte $00 ; INVENTORY_1_GONE = $A3
.byte $00 ; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5

29
games/peasant/save2.s Normal file
View File

@ -0,0 +1,29 @@
; SAVE1 -- ??
.include "zp.inc"
; want to load this to address $90
;
.byte LOAD_PEASANT2 ; WHICH_LOAD = $90
.byte 10 ; PEASANT_X = $91
.byte 100 ; PEASANT_Y = $92
.byte PEASANT_DIR_UP ; PEASANT_DIR = $93
.byte 0 ; MAP_X = $94
.byte 1 ; MAP_Y = $95
.byte 5 ; MAP_LOCATION = $96
.byte $ff ; GAME_STATE_0 = $97
.byte $00 ; GAME_STATE_1 = $98
.byte $00 ; GAME_STATE_2 = $99
.byte $00 ; NED_STATUS = $9A
.byte $00 ; BUSH_STATUS = $9B
.byte $00 ; KERREK_STATE = $9C
.byte $00 ; ARROW_SCORE = $9D
.byte $01 ; SCORE_HUNDREDS= $9E
.byte $09 ; SCORE_TENSONES= $9F
.byte $FF ; INVENTORY_1 = $A0
.byte $FF ; INVENTORY_2 = $A1
.byte $FF ; INVENTORY_3 = $A2
.byte $00 ; INVENTORY_1_GONE = $A3
.byte $00 ; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5

29
games/peasant/save3.s Normal file
View File

@ -0,0 +1,29 @@
; SAVE1 -- ??
.include "zp.inc"
; want to load this to address $90
;
.byte LOAD_PEASANT2 ; WHICH_LOAD = $90
.byte 10 ; PEASANT_X = $91
.byte 100 ; PEASANT_Y = $92
.byte PEASANT_DIR_UP ; PEASANT_DIR = $93
.byte 0 ; MAP_X = $94
.byte 1 ; MAP_Y = $95
.byte 5 ; MAP_LOCATION = $96
.byte $ff ; GAME_STATE_0 = $97
.byte $00 ; GAME_STATE_1 = $98
.byte $00 ; GAME_STATE_2 = $99
.byte $00 ; NED_STATUS = $9A
.byte $00 ; BUSH_STATUS = $9B
.byte $00 ; KERREK_STATE = $9C
.byte $00 ; ARROW_SCORE = $9D
.byte $01 ; SCORE_HUNDREDS= $9E
.byte $09 ; SCORE_TENSONES= $9F
.byte $FF ; INVENTORY_1 = $A0
.byte $FF ; INVENTORY_2 = $A1
.byte $FF ; INVENTORY_3 = $A2
.byte $00 ; INVENTORY_1_GONE = $A3
.byte $00 ; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5

View File

@ -58,38 +58,39 @@ ENVELOPE_SHAPE = $7D
PATTERN_L = $7E
PATTERN_H = $7F
WHICH_LOAD = $80
; rest of pt3_player
PT3_TEMP = $81
ORNAMENT_L = $82
ORNAMENT_H = $83
SAMPLE_L = $84
SAMPLE_H = $85
LOOP = $86
MB_VALUE = $87
MB_ADDR_L = $88
MB_ADDR_H = $89
DONE_PLAYING = $8A
DONE_SONG = $8B
APPLEII_MODEL = $8C
ESC_PRESSED = $8D
PT3_TEMP = $80
ORNAMENT_L = $81
ORNAMENT_H = $82
SAMPLE_L = $83
SAMPLE_H = $84
LOOP = $85
MB_VALUE = $86
MB_ADDR_L = $87
MB_ADDR_H = $88
DONE_PLAYING = $89
DONE_SONG = $8A
APPLEII_MODEL = $8B
ESC_PRESSED = $8C
;=======================
; savegame state
;=======================
PEASANT_X = $90
PEASANT_Y = $91
PEASANT_DIR = $92
WHICH_LOAD = $90
PEASANT_X = $91
PEASANT_Y = $92
PEASANT_DIR = $93
PEASANT_DIR_UP = 0
PEASANT_DIR_RIGHT = 1
PEASANT_DIR_LEFT = 2
PEASANT_DIR_DOWN = 3
MAP_X = $93
MAP_Y = $94
MAP_LOCATION = $95
MAP_X = $94
MAP_Y = $95
MAP_LOCATION = $96
GAME_STATE_0 = $96
GAME_STATE_0 = $97
BABY_IN_WELL=$00
TURN_WELL_CRANK=$00
TALK_TO_MENDELEV=$00
@ -98,6 +99,7 @@ GAME_STATE_0 = $96
GARY_SCARED=$00
LADY_GONE=$00
TRINKET_GIVEN=$00
GAME_STATE_1 = $98
FISH_FED=$00 ; also implies man gone and inn open
PUDDLE_WET=$00
HAY_BALE=$00
@ -106,25 +108,24 @@ GAME_STATE_0 = $96
NIGHT=$00
POT_ON_HEAD=$00
WEARING_ROBE=$00
GAME_STATE_2 = $99
ON_FIRE = $00
COTTAGE_ROCK_MOVED=$00
KNUCKLES_BLEED=$00
DRESSER_OPEN=$00
NED_STATUS = $99
BUSH_STATUS = $9A ; status of bush search
NED_STATUS = $9A
BUSH_STATUS = $9B ; status of bush search
KERREK_STATE = $9B
KERREK_STATE = $9C
KERREK_ALIVE = $00
KERREK_DEAD = $01
KERREK_DECOMPOSING = $02
KERREK_SKELETON = $03
ARROW_SCORE = $9C ; bottom=score, top=random num needed 3-5?
SCORE_HUNDREDS = $9D
SCORE_TENSONES = $9E
ARROW_SCORE = $9D ; bottom=score, top=random num needed 3-5?
SCORE_HUNDREDS = $9E
SCORE_TENSONES = $9F
INVENTORY_1 = $A0
INV1_ARROW = $01