Skip to content

Commit 674cd82

Browse files
lordlouFlySniper
authored andcommitted
SM: 0.4.2 broken quick save and reload fix (ArchipelagoMW#2204)
1 parent aebce08 commit 674cd82

File tree

5 files changed

+136
-126
lines changed

5 files changed

+136
-126
lines changed
Binary file not shown.

worlds/sm/data/SMBasepatch_prebuilt/multiworld.sym

+126-119
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; generated by asar
33

44
[labels]
5-
82:FA35 :neg_1_1
5+
82:FA40 :neg_1_1
66
B8:83C1 :neg_1_2
77
B8:85DA :neg_1_3
88
B8:85F9 :neg_1_4
@@ -177,7 +177,7 @@ A0:FE00 setup_music
177177
A0:FE0B setup_music_quick
178178
A0:FE94 setup_samus
179179
A0:FEA5 setup_samus_normal
180-
82:FA27 sm_fix_checksum
180+
82:FA2A sm_fix_checksum
181181
B8:8800 sm_item_graphics
182182
B8:882E sm_item_plm_pickup_sequence_pointers
183183
B8:847B sm_save_done_hook
@@ -192,15 +192,15 @@ B8:83F4 write_repeated_memory_loop
192192

193193
[source files]
194194
0000 fe019f55 main.asm
195-
0001 be17692f ../common/fast_reload.asm
195+
0001 62a29254 ../common/fast_reload.asm
196196
0002 06780555 ../common/nofanfare.asm
197197
0003 7a8904b6 ../common/multiworld.asm
198198
0004 f7e9db95 ../common/itemextras.asm
199199
0005 b0dd378a ../common/items.asm
200200
0006 dbfcb38d ../common/startitem.asm
201201

202202
[rom checksum]
203-
979ac031
203+
e50233eb
204204

205205
[addr-to-line mapping]
206206
ff:ffff 0000:00000001
@@ -245,125 +245,132 @@ ce:ff0a 0001:00000013
245245
82:f9e6 0001:00000040
246246
82:f9ea 0001:00000042
247247
82:f9ee 0001:00000043
248-
82:f9f0 0001:00000044
249-
82:f9f1 0001:00000045
250-
82:f9f2 0001:00000046
251-
82:f9f6 0001:00000047
248+
82:f9f1 0001:00000044
249+
82:f9f2 0001:00000045
250+
82:f9f4 0001:00000046
251+
82:f9f5 0001:00000047
252252
82:f9f9 0001:00000048
253-
82:f9fa 0001:00000049
254-
82:f9fb 0001:0000004a
255-
82:f9fc 0001:0000004b
256-
82:f9ff 0001:0000004b
257-
82:fa00 0001:0000004b
258-
82:fa04 0001:0000004c
259-
82:fa05 0001:0000004d
260-
82:fa08 0001:0000004d
261-
82:fa0c 0001:0000004e
262-
82:fa10 0001:00000050
263-
82:fa14 0001:00000051
253+
82:f9fc 0001:00000049
254+
82:f9fd 0001:0000004a
255+
82:f9fe 0001:0000004b
256+
82:f9ff 0001:0000004c
257+
82:fa02 0001:0000004c
258+
82:fa03 0001:0000004c
259+
82:fa07 0001:0000004d
260+
82:fa08 0001:0000004e
261+
82:fa0b 0001:0000004e
262+
82:fa0f 0001:0000004f
263+
82:fa13 0001:00000051
264264
82:fa17 0001:00000052
265-
82:fa1b 0001:00000053
266-
82:fa1f 0001:00000054
265+
82:fa1a 0001:00000053
266+
82:fa1e 0001:00000054
267267
82:fa22 0001:00000055
268268
82:fa25 0001:00000056
269-
82:fa26 0001:00000057
270-
82:fa27 0001:0000005a
271-
82:fa28 0001:0000005b
272-
82:fa29 0001:0000005c
273-
82:fa2a 0001:0000005d
274-
82:fa2b 0000:00000013
275-
82:fa2d 0001:00000061
276-
82:fa2f 0001:00000062
277-
82:fa30 0001:00000063
278-
82:fa32 0001:00000064
279-
82:fa35 0001:00000066
280-
82:fa39 0001:00000067
281-
82:fa3a 0001:00000068
282-
82:fa3c 0001:00000069
283-
82:fa3e 0001:0000006a
284-
82:fa3f 0001:0000006b
285-
82:fa40 0001:0000006c
286-
82:fa43 0001:0000006d
287-
82:fa45 0001:0000006f
288-
82:fa48 0001:00000070
289-
82:fa4a 0001:00000071
290-
82:fa4e 0001:00000072
291-
82:fa52 0001:00000073
292-
82:fa55 0001:00000074
293-
82:fa59 0001:00000075
294-
82:fa5d 0001:00000076
295-
82:fa5e 0001:00000077
296-
82:fa60 0001:00000079
297-
82:fa61 0001:0000007a
298-
82:fa62 0001:0000007b
299-
82:fa63 0001:0000007c
300-
82:fa64 0001:0000007d
301-
80:a088 0001:00000083
302-
80:a08c 0001:00000083
303-
80:a08d 0001:00000083
304-
80:a095 0001:00000086
305-
80:a0ce 0001:00000089
306-
80:a113 0001:0000008c
307-
91:e164 0001:0000008f
308-
91:e168 0001:0000008f
309-
91:e169 0001:0000008f
310-
a0:fe00 0001:00000094
311-
a0:fe03 0001:00000095
312-
a0:fe05 0001:00000096
313-
a0:fe08 0001:00000097
314-
a0:fe0b 0001:00000099
315-
a0:fe0c 0001:0000009c
316-
a0:fe10 0001:0000009d
317-
a0:fe13 0001:0000009e
318-
a0:fe15 0001:0000009f
319-
a0:fe18 0001:000000a0
320-
a0:fe1b 0001:000000a1
321-
a0:fe1f 0001:000000a3
322-
a0:fe23 0001:000000a4
323-
a0:fe27 0001:000000a5
324-
a0:fe2b 0001:000000a6
325-
a0:fe2f 0001:000000a9
326-
a0:fe33 0001:000000aa
327-
a0:fe36 0001:000000ab
328-
a0:fe38 0001:000000ac
329-
a0:fe3c 0001:000000ad
330-
a0:fe40 0001:000000af
331-
a0:fe44 0001:000000b2
332-
a0:fe48 0001:000000b3
333-
a0:fe49 0001:000000b4
334-
a0:fe4c 0001:000000b5
335-
a0:fe4e 0001:000000b6
336-
a0:fe4f 0001:000000b7
337-
a0:fe53 0001:000000b8
338-
a0:fe57 0001:000000ba
339-
a0:fe58 0001:000000bb
340-
a0:fe5c 0001:000000bc
341-
a0:fe5f 0001:000000bd
342-
a0:fe62 0001:000000be
343-
a0:fe65 0001:000000bf
344-
a0:fe67 0001:000000c0
345-
a0:fe6a 0001:000000c1
346-
a0:fe6d 0001:000000c2
347-
a0:fe6f 0001:000000c3
348-
a0:fe73 0001:000000c6
349-
a0:fe76 0001:000000c7
350-
a0:fe79 0001:000000c8
351-
a0:fe7c 0001:000000c9
352-
a0:fe7f 0001:000000cb
353-
a0:fe82 0001:000000cc
354-
a0:fe85 0001:000000cd
355-
a0:fe89 0001:000000ce
356-
a0:fe8c 0001:000000cf
357-
a0:fe90 0001:000000d1
358-
a0:fe94 0001:000000d4
359-
a0:fe97 0001:000000d5
360-
a0:fe99 0001:000000d6
361-
a0:fe9c 0001:000000d7
362-
a0:fe9f 0001:000000d8
363-
a0:fea2 0001:000000d9
364-
a0:fea5 0001:000000db
365-
a0:fea8 0001:000000dc
366-
a0:feab 0001:000000dd
269+
82:fa28 0001:00000057
270+
82:fa29 0001:00000058
271+
82:fa2a 0001:0000005b
272+
82:fa2b 0001:0000005c
273+
82:fa2c 0001:0000005d
274+
82:fa2d 0001:0000005e
275+
82:fa2e 0000:00000013
276+
82:fa30 0001:00000062
277+
82:fa32 0001:00000063
278+
82:fa33 0001:00000064
279+
82:fa35 0001:00000065
280+
82:fa37 0001:00000066
281+
82:fa38 0001:00000067
282+
82:fa3c 0001:00000068
283+
82:fa3d 0001:00000069
284+
82:fa40 0001:0000006b
285+
82:fa44 0001:0000006c
286+
82:fa45 0001:0000006d
287+
82:fa47 0001:0000006e
288+
82:fa49 0001:0000006f
289+
82:fa4a 0001:00000070
290+
82:fa4b 0001:00000071
291+
82:fa4c 0001:00000072
292+
82:fa4d 0001:00000073
293+
82:fa50 0001:00000074
294+
82:fa52 0001:00000076
295+
82:fa54 0001:00000077
296+
82:fa56 0001:00000078
297+
82:fa5a 0001:00000079
298+
82:fa5e 0001:0000007a
299+
82:fa61 0001:0000007b
300+
82:fa65 0001:0000007c
301+
82:fa69 0001:0000007d
302+
82:fa6a 0001:0000007e
303+
82:fa6c 0001:00000080
304+
82:fa6d 0001:00000081
305+
82:fa6e 0001:00000082
306+
82:fa6f 0001:00000083
307+
82:fa70 0001:00000084
308+
80:a088 0001:0000008a
309+
80:a08c 0001:0000008a
310+
80:a08d 0001:0000008a
311+
80:a095 0001:0000008d
312+
80:a0ce 0001:00000090
313+
80:a113 0001:00000093
314+
91:e164 0001:00000096
315+
91:e168 0001:00000096
316+
91:e169 0001:00000096
317+
a0:fe00 0001:0000009b
318+
a0:fe03 0001:0000009c
319+
a0:fe05 0001:0000009d
320+
a0:fe08 0001:0000009e
321+
a0:fe0b 0001:000000a0
322+
a0:fe0c 0001:000000a3
323+
a0:fe10 0001:000000a4
324+
a0:fe13 0001:000000a5
325+
a0:fe15 0001:000000a6
326+
a0:fe18 0001:000000a7
327+
a0:fe1b 0001:000000a8
328+
a0:fe1f 0001:000000aa
329+
a0:fe23 0001:000000ab
330+
a0:fe27 0001:000000ac
331+
a0:fe2b 0001:000000ad
332+
a0:fe2f 0001:000000b0
333+
a0:fe33 0001:000000b1
334+
a0:fe36 0001:000000b2
335+
a0:fe38 0001:000000b3
336+
a0:fe3c 0001:000000b4
337+
a0:fe40 0001:000000b6
338+
a0:fe44 0001:000000b9
339+
a0:fe48 0001:000000ba
340+
a0:fe49 0001:000000bb
341+
a0:fe4c 0001:000000bc
342+
a0:fe4e 0001:000000bd
343+
a0:fe4f 0001:000000be
344+
a0:fe53 0001:000000bf
345+
a0:fe57 0001:000000c1
346+
a0:fe58 0001:000000c2
347+
a0:fe5c 0001:000000c3
348+
a0:fe5f 0001:000000c4
349+
a0:fe62 0001:000000c5
350+
a0:fe65 0001:000000c6
351+
a0:fe67 0001:000000c7
352+
a0:fe6a 0001:000000c8
353+
a0:fe6d 0001:000000c9
354+
a0:fe6f 0001:000000ca
355+
a0:fe73 0001:000000cd
356+
a0:fe76 0001:000000ce
357+
a0:fe79 0001:000000cf
358+
a0:fe7c 0001:000000d0
359+
a0:fe7f 0001:000000d2
360+
a0:fe82 0001:000000d3
361+
a0:fe85 0001:000000d4
362+
a0:fe89 0001:000000d5
363+
a0:fe8c 0001:000000d6
364+
a0:fe90 0001:000000d8
365+
a0:fe94 0001:000000db
366+
a0:fe97 0001:000000dc
367+
a0:fe99 0001:000000dd
368+
a0:fe9c 0001:000000de
369+
a0:fe9f 0001:000000df
370+
a0:fea2 0001:000000e0
371+
a0:fea5 0001:000000e2
372+
a0:fea8 0001:000000e3
373+
a0:feab 0001:000000e4
367374
85:ff00 0002:0000010b
368375
85:ff03 0002:0000010c
369376
85:ff06 0002:0000010d

worlds/sm/data/SMBasepatch_prebuilt/sm-basepatch-symbols.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
"setup_music_quick": "A0:FE0B",
159159
"setup_samus": "A0:FE94",
160160
"setup_samus_normal": "A0:FEA5",
161-
"sm_fix_checksum": "82:FA27",
161+
"sm_fix_checksum": "82:FA2A",
162162
"sm_item_graphics": "B8:8800",
163163
"sm_item_plm_pickup_sequence_pointers": "B8:882E",
164164
"sm_save_done_hook": "B8:847B",
@@ -172,7 +172,7 @@
172172
"write_repeated_memory_loop": "B8:83F4",
173173
"deathhook82": "82:DDC7",
174174
"freespace82_start": "82:F990",
175-
"freespace82_end": "82:FA65",
175+
"freespace82_end": "82:FA71",
176176
"freespacea0": "a0:fe00",
177177
"SRAM_SAVING": "70:2604",
178178
"current_save_slot": "7e:0952",

worlds/sm/docs/en_Super Metroid.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ When the player receives an item, a text box will appear to show which item was
3434

3535
It can happen that a required item is in a place where you cant get back from. While in normal gameplay state, by holding
3636
Start+Select+L+R at the same time, the game will save your progress and put you back at your original starting position.
37-
This can be required by the logic.
37+
This can be required by the logic. Since the addition of that feature, VARIA's automatic backup saves are disabled since
38+
you can't softlock anymore.
3839

worlds/sm/variaRandomizer/rom/rompatcher.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,12 @@ def applyIPSPatches(self):
238238
plms.append('WS_Save_Blinking_Door')
239239
if self.settings["boss"] == True:
240240
stdPatches.append("Phantoon_Eye_Door")
241-
if (self.settings["area"] == True
242-
or self.settings["doorsColorsRando"] == True
243-
or not GraphUtils.isStandardStart(self.settings["startLocation"])):
244-
stdPatches.append("Enable_Backup_Saves")
241+
# rolling saves is not required anymore since the addition of fast_save_reload
242+
# also, both arent completely compatible as-is
243+
#if (self.settings["area"] == True
244+
# or self.settings["doorsColorsRando"] == True
245+
# or not GraphUtils.isStandardStart(self.settings["startLocation"])):
246+
# stdPatches.append("Enable_Backup_Saves")
245247
if 'varia_hud.ips' in self.settings["optionalPatches"]:
246248
# varia hud can make demos glitch out
247249
self.applyIPSPatch("no_demo.ips")

0 commit comments

Comments
 (0)