SM: 0.4.2 broken quick save and reload fix (#2204)

This commit is contained in:
lordlou 2023-09-21 20:49:27 -04:00 committed by GitHub
parent 638d6807db
commit 5e46967b7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 136 additions and 126 deletions

View File

@ -2,7 +2,7 @@
; generated by asar
[labels]
82:FA35 :neg_1_1
82:FA40 :neg_1_1
B8:83C1 :neg_1_2
B8:85DA :neg_1_3
B8:85F9 :neg_1_4
@ -177,7 +177,7 @@ A0:FE00 setup_music
A0:FE0B setup_music_quick
A0:FE94 setup_samus
A0:FEA5 setup_samus_normal
82:FA27 sm_fix_checksum
82:FA2A sm_fix_checksum
B8:8800 sm_item_graphics
B8:882E sm_item_plm_pickup_sequence_pointers
B8:847B sm_save_done_hook
@ -192,7 +192,7 @@ B8:83F4 write_repeated_memory_loop
[source files]
0000 fe019f55 main.asm
0001 be17692f ../common/fast_reload.asm
0001 62a29254 ../common/fast_reload.asm
0002 06780555 ../common/nofanfare.asm
0003 7a8904b6 ../common/multiworld.asm
0004 f7e9db95 ../common/itemextras.asm
@ -200,7 +200,7 @@ B8:83F4 write_repeated_memory_loop
0006 dbfcb38d ../common/startitem.asm
[rom checksum]
979ac031
e50233eb
[addr-to-line mapping]
ff:ffff 0000:00000001
@ -245,125 +245,132 @@ ce:ff0a 0001:00000013
82:f9e6 0001:00000040
82:f9ea 0001:00000042
82:f9ee 0001:00000043
82:f9f0 0001:00000044
82:f9f1 0001:00000045
82:f9f2 0001:00000046
82:f9f6 0001:00000047
82:f9f1 0001:00000044
82:f9f2 0001:00000045
82:f9f4 0001:00000046
82:f9f5 0001:00000047
82:f9f9 0001:00000048
82:f9fa 0001:00000049
82:f9fb 0001:0000004a
82:f9fc 0001:0000004b
82:f9ff 0001:0000004b
82:fa00 0001:0000004b
82:fa04 0001:0000004c
82:fa05 0001:0000004d
82:fa08 0001:0000004d
82:fa0c 0001:0000004e
82:fa10 0001:00000050
82:fa14 0001:00000051
82:f9fc 0001:00000049
82:f9fd 0001:0000004a
82:f9fe 0001:0000004b
82:f9ff 0001:0000004c
82:fa02 0001:0000004c
82:fa03 0001:0000004c
82:fa07 0001:0000004d
82:fa08 0001:0000004e
82:fa0b 0001:0000004e
82:fa0f 0001:0000004f
82:fa13 0001:00000051
82:fa17 0001:00000052
82:fa1b 0001:00000053
82:fa1f 0001:00000054
82:fa1a 0001:00000053
82:fa1e 0001:00000054
82:fa22 0001:00000055
82:fa25 0001:00000056
82:fa26 0001:00000057
82:fa27 0001:0000005a
82:fa28 0001:0000005b
82:fa29 0001:0000005c
82:fa2a 0001:0000005d
82:fa2b 0000:00000013
82:fa2d 0001:00000061
82:fa2f 0001:00000062
82:fa30 0001:00000063
82:fa32 0001:00000064
82:fa35 0001:00000066
82:fa39 0001:00000067
82:fa3a 0001:00000068
82:fa3c 0001:00000069
82:fa3e 0001:0000006a
82:fa3f 0001:0000006b
82:fa40 0001:0000006c
82:fa43 0001:0000006d
82:fa45 0001:0000006f
82:fa48 0001:00000070
82:fa4a 0001:00000071
82:fa4e 0001:00000072
82:fa52 0001:00000073
82:fa55 0001:00000074
82:fa59 0001:00000075
82:fa5d 0001:00000076
82:fa5e 0001:00000077
82:fa60 0001:00000079
82:fa61 0001:0000007a
82:fa62 0001:0000007b
82:fa63 0001:0000007c
82:fa64 0001:0000007d
80:a088 0001:00000083
80:a08c 0001:00000083
80:a08d 0001:00000083
80:a095 0001:00000086
80:a0ce 0001:00000089
80:a113 0001:0000008c
91:e164 0001:0000008f
91:e168 0001:0000008f
91:e169 0001:0000008f
a0:fe00 0001:00000094
a0:fe03 0001:00000095
a0:fe05 0001:00000096
a0:fe08 0001:00000097
a0:fe0b 0001:00000099
a0:fe0c 0001:0000009c
a0:fe10 0001:0000009d
a0:fe13 0001:0000009e
a0:fe15 0001:0000009f
a0:fe18 0001:000000a0
a0:fe1b 0001:000000a1
a0:fe1f 0001:000000a3
a0:fe23 0001:000000a4
a0:fe27 0001:000000a5
a0:fe2b 0001:000000a6
a0:fe2f 0001:000000a9
a0:fe33 0001:000000aa
a0:fe36 0001:000000ab
a0:fe38 0001:000000ac
a0:fe3c 0001:000000ad
a0:fe40 0001:000000af
a0:fe44 0001:000000b2
a0:fe48 0001:000000b3
a0:fe49 0001:000000b4
a0:fe4c 0001:000000b5
a0:fe4e 0001:000000b6
a0:fe4f 0001:000000b7
a0:fe53 0001:000000b8
a0:fe57 0001:000000ba
a0:fe58 0001:000000bb
a0:fe5c 0001:000000bc
a0:fe5f 0001:000000bd
a0:fe62 0001:000000be
a0:fe65 0001:000000bf
a0:fe67 0001:000000c0
a0:fe6a 0001:000000c1
a0:fe6d 0001:000000c2
a0:fe6f 0001:000000c3
a0:fe73 0001:000000c6
a0:fe76 0001:000000c7
a0:fe79 0001:000000c8
a0:fe7c 0001:000000c9
a0:fe7f 0001:000000cb
a0:fe82 0001:000000cc
a0:fe85 0001:000000cd
a0:fe89 0001:000000ce
a0:fe8c 0001:000000cf
a0:fe90 0001:000000d1
a0:fe94 0001:000000d4
a0:fe97 0001:000000d5
a0:fe99 0001:000000d6
a0:fe9c 0001:000000d7
a0:fe9f 0001:000000d8
a0:fea2 0001:000000d9
a0:fea5 0001:000000db
a0:fea8 0001:000000dc
a0:feab 0001:000000dd
82:fa28 0001:00000057
82:fa29 0001:00000058
82:fa2a 0001:0000005b
82:fa2b 0001:0000005c
82:fa2c 0001:0000005d
82:fa2d 0001:0000005e
82:fa2e 0000:00000013
82:fa30 0001:00000062
82:fa32 0001:00000063
82:fa33 0001:00000064
82:fa35 0001:00000065
82:fa37 0001:00000066
82:fa38 0001:00000067
82:fa3c 0001:00000068
82:fa3d 0001:00000069
82:fa40 0001:0000006b
82:fa44 0001:0000006c
82:fa45 0001:0000006d
82:fa47 0001:0000006e
82:fa49 0001:0000006f
82:fa4a 0001:00000070
82:fa4b 0001:00000071
82:fa4c 0001:00000072
82:fa4d 0001:00000073
82:fa50 0001:00000074
82:fa52 0001:00000076
82:fa54 0001:00000077
82:fa56 0001:00000078
82:fa5a 0001:00000079
82:fa5e 0001:0000007a
82:fa61 0001:0000007b
82:fa65 0001:0000007c
82:fa69 0001:0000007d
82:fa6a 0001:0000007e
82:fa6c 0001:00000080
82:fa6d 0001:00000081
82:fa6e 0001:00000082
82:fa6f 0001:00000083
82:fa70 0001:00000084
80:a088 0001:0000008a
80:a08c 0001:0000008a
80:a08d 0001:0000008a
80:a095 0001:0000008d
80:a0ce 0001:00000090
80:a113 0001:00000093
91:e164 0001:00000096
91:e168 0001:00000096
91:e169 0001:00000096
a0:fe00 0001:0000009b
a0:fe03 0001:0000009c
a0:fe05 0001:0000009d
a0:fe08 0001:0000009e
a0:fe0b 0001:000000a0
a0:fe0c 0001:000000a3
a0:fe10 0001:000000a4
a0:fe13 0001:000000a5
a0:fe15 0001:000000a6
a0:fe18 0001:000000a7
a0:fe1b 0001:000000a8
a0:fe1f 0001:000000aa
a0:fe23 0001:000000ab
a0:fe27 0001:000000ac
a0:fe2b 0001:000000ad
a0:fe2f 0001:000000b0
a0:fe33 0001:000000b1
a0:fe36 0001:000000b2
a0:fe38 0001:000000b3
a0:fe3c 0001:000000b4
a0:fe40 0001:000000b6
a0:fe44 0001:000000b9
a0:fe48 0001:000000ba
a0:fe49 0001:000000bb
a0:fe4c 0001:000000bc
a0:fe4e 0001:000000bd
a0:fe4f 0001:000000be
a0:fe53 0001:000000bf
a0:fe57 0001:000000c1
a0:fe58 0001:000000c2
a0:fe5c 0001:000000c3
a0:fe5f 0001:000000c4
a0:fe62 0001:000000c5
a0:fe65 0001:000000c6
a0:fe67 0001:000000c7
a0:fe6a 0001:000000c8
a0:fe6d 0001:000000c9
a0:fe6f 0001:000000ca
a0:fe73 0001:000000cd
a0:fe76 0001:000000ce
a0:fe79 0001:000000cf
a0:fe7c 0001:000000d0
a0:fe7f 0001:000000d2
a0:fe82 0001:000000d3
a0:fe85 0001:000000d4
a0:fe89 0001:000000d5
a0:fe8c 0001:000000d6
a0:fe90 0001:000000d8
a0:fe94 0001:000000db
a0:fe97 0001:000000dc
a0:fe99 0001:000000dd
a0:fe9c 0001:000000de
a0:fe9f 0001:000000df
a0:fea2 0001:000000e0
a0:fea5 0001:000000e2
a0:fea8 0001:000000e3
a0:feab 0001:000000e4
85:ff00 0002:0000010b
85:ff03 0002:0000010c
85:ff06 0002:0000010d

View File

@ -158,7 +158,7 @@
"setup_music_quick": "A0:FE0B",
"setup_samus": "A0:FE94",
"setup_samus_normal": "A0:FEA5",
"sm_fix_checksum": "82:FA27",
"sm_fix_checksum": "82:FA2A",
"sm_item_graphics": "B8:8800",
"sm_item_plm_pickup_sequence_pointers": "B8:882E",
"sm_save_done_hook": "B8:847B",
@ -172,7 +172,7 @@
"write_repeated_memory_loop": "B8:83F4",
"deathhook82": "82:DDC7",
"freespace82_start": "82:F990",
"freespace82_end": "82:FA65",
"freespace82_end": "82:FA71",
"freespacea0": "a0:fe00",
"SRAM_SAVING": "70:2604",
"current_save_slot": "7e:0952",

View File

@ -34,5 +34,6 @@ When the player receives an item, a text box will appear to show which item was
It can happen that a required item is in a place where you cant get back from. While in normal gameplay state, by holding
Start+Select+L+R at the same time, the game will save your progress and put you back at your original starting position.
This can be required by the logic.
This can be required by the logic. Since the addition of that feature, VARIA's automatic backup saves are disabled since
you can't softlock anymore.

View File

@ -238,10 +238,12 @@ class RomPatcher:
plms.append('WS_Save_Blinking_Door')
if self.settings["boss"] == True:
stdPatches.append("Phantoon_Eye_Door")
if (self.settings["area"] == True
or self.settings["doorsColorsRando"] == True
or not GraphUtils.isStandardStart(self.settings["startLocation"])):
stdPatches.append("Enable_Backup_Saves")
# rolling saves is not required anymore since the addition of fast_save_reload
# also, both arent completely compatible as-is
#if (self.settings["area"] == True
# or self.settings["doorsColorsRando"] == True
# or not GraphUtils.isStandardStart(self.settings["startLocation"])):
# stdPatches.append("Enable_Backup_Saves")
if 'varia_hud.ips' in self.settings["optionalPatches"]:
# varia hud can make demos glitch out
self.applyIPSPatch("no_demo.ips")