diff --git a/games/peasant/Makefile b/games/peasant/Makefile index bb7f5c28..82f50cc8 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -128,7 +128,6 @@ qload.inc: generate_common QLOAD ./generate_common -a 0xb00 -s hgr_partial_restore qload.lst >> qload.inc ./generate_common -a 0xb00 -s clear_bottom qload.lst >> qload.inc ./generate_common -a 0xb00 -s hgr_input qload.lst >> qload.inc - ./generate_common -a 0xb00 -s hgr_partial_save qload.lst >> qload.inc ./generate_common -a 0xb00 -s draw_box qload.lst >> qload.inc ./generate_common -a 0xb00 -s disp_put_string qload.lst >> qload.inc ./generate_common -a 0xb00 -s disp_one_line qload.lst >> qload.inc diff --git a/games/peasant/NOTES b/games/peasant/NOTES index 14c5a635..72e51ff7 100644 --- a/games/peasant/NOTES +++ b/games/peasant/NOTES @@ -38,6 +38,7 @@ peasant2 18302 18012 -- hook up more of archery 18120 -- finish hooking up archery 17941 -- after most of text hooked up (more code was moved to qload) + 17929 -- after redoing so background is always in PAGE1 partial save, can we fit in 4k? 102 lines ; inventory was 115? diff --git a/games/peasant/TODO b/games/peasant/TODO index f17dfb7f..6eb1294f 100644 --- a/games/peasant/TODO +++ b/games/peasant/TODO @@ -13,6 +13,7 @@ TODO: General: ~~~~~~~~ ++ wait for screen refresh on IIe/IIc/IIgs + make text every 9th row so descenders don't interfere? + background priority mask not working when at far top of screen + fix issue where walking stops when you cross to screen w priority diff --git a/games/peasant/hgr_partial_save.s b/games/peasant/hgr_partial_save.s index 1a50662d..7c983c2d 100644 --- a/games/peasant/hgr_partial_save.s +++ b/games/peasant/hgr_partial_save.s @@ -4,6 +4,7 @@ ; loads from $40 ; save to $20 ; only save from row in P2 to P2+P4 +.if 0 hgr_partial_save: clc @@ -13,7 +14,6 @@ hgr_partial_save: ldx BOX_Y2 stx SAVED_Y2 -.if 0 partial_save_yloop: lda hposn_low,X @@ -38,9 +38,9 @@ psx_smc2: dex cpx BOX_Y1 bcs partial_save_yloop -.endif - rts + rts +.endif ;======================= diff --git a/games/peasant/hgr_text_box.s b/games/peasant/hgr_text_box.s index 869c8177..454be47d 100644 --- a/games/peasant/hgr_text_box.s +++ b/games/peasant/hgr_text_box.s @@ -38,7 +38,14 @@ skip_box_save_smc: lda #1 beq skip_box_save - jsr hgr_partial_save + lda BOX_Y1 + sta SAVED_Y1 + + ldx BOX_Y2 + stx SAVED_Y2 + +; jsr hgr_partial_save + skip_box_save: jsr draw_box diff --git a/games/peasant/inventory.s b/games/peasant/inventory.s index 9c159c60..fa8eb005 100644 --- a/games/peasant/inventory.s +++ b/games/peasant/inventory.s @@ -15,10 +15,12 @@ show_inventory: lda #20 sta BOX_Y1 + sta SAVED_Y1 lda #135 sta BOX_Y2 + sta SAVED_Y2 - jsr hgr_partial_save +; jsr hgr_partial_save ;==================== diff --git a/games/peasant/loadsave_menu.s b/games/peasant/loadsave_menu.s index 22cce04f..24b7a35e 100644 --- a/games/peasant/loadsave_menu.s +++ b/games/peasant/loadsave_menu.s @@ -159,15 +159,18 @@ save_memset: lda #0 sta INVENTORY_Y - ;================= - ; save bg + ;========================== + ; save bg range to restore lda #20 sta BOX_Y1 + sta SAVED_Y1 + lda #135 sta BOX_Y2 + sta SAVED_Y2 - jsr hgr_partial_save +; jsr hgr_partial_save ;==================== diff --git a/games/peasant/parse_input.s b/games/peasant/parse_input.s index e8e7975b..2ab10ca7 100644 --- a/games/peasant/parse_input.s +++ b/games/peasant/parse_input.s @@ -1150,6 +1150,7 @@ print_text_message: lda #24 ; always 24 sta BOX_Y1 + sta SAVED_Y1 lda #253 ; always 253 sta BOX_X2L @@ -1167,8 +1168,9 @@ print_text_message: adc #46 sta BOX_Y2 + sta SAVED_Y2 - jsr hgr_partial_save +; jsr hgr_partial_save jsr draw_box diff --git a/games/peasant/qload.inc b/games/peasant/qload.inc index f4452a93..f39a6604 100644 --- a/games/peasant/qload.inc +++ b/games/peasant/qload.inc @@ -3,39 +3,38 @@ sector_write =$0c63 requested_sector =$0d17 decompress_lzsa2_fast =$0de6 getsrc_smc =$0edc -hgr2 =$1844 -hgr_make_tables =$15bd +hgr2 =$183f +hgr_make_tables =$15b3 hgr_put_string =$0ee9 save_bg_1x28 =$1421 restore_bg_1x28 =$1442 hgr_draw_sprite_1x28 =$13ba -input_buffer =$1595 -hgr_text_box =$1633 -hgr_text_box_nosave =$16c5 -hgr_partial_restore =$150b -clear_bottom =$1819 -hgr_input =$153b -hgr_partial_save =$1501 +input_buffer =$158b +hgr_text_box =$1629 +hgr_text_box_nosave =$16c0 +hgr_partial_restore =$1501 +clear_bottom =$1814 +hgr_input =$1531 draw_box =$126b -disp_put_string =$1669 -disp_one_line =$167d +disp_put_string =$1664 +disp_one_line =$1678 invert_smc1 =$0f61 -disp_put_string_cursor =$1679 +disp_put_string_cursor =$1674 hgr_put_char_cursor =$0f15 vgi_simple_rectangle =$12ec -peasant_text =$1f77 -save_menu =$18f7 -load_menu =$18ec -location_names_l =$1c23 -location_names_h =$1c42 -wait_until_keypress =$1e62 -random16 =$1e6b -score_points =$1ef0 -print_score =$1ea0 -update_score =$1eab -speaker_beep =$1f5e -speaker_duration =$1f75 -speaker_frequency =$1f76 +peasant_text =$1f73 +save_menu =$18f2 +load_menu =$18e7 +location_names_l =$1c1f +location_names_h =$1c3e +wait_until_keypress =$1e5e +random16 =$1e67 +score_points =$1eec +print_score =$1e9c +update_score =$1ea7 +speaker_beep =$1f5a +speaker_duration =$1f71 +speaker_frequency =$1f72 hposn_high = $BA00 hposn_low = $BB00 driveoff = $A22