As the standard Retry patch, this Retry includes a built-in SRAM expansion patch that's used by default to save the custom checkpoints and death counter. Differently from the normal Retry, the patch also works on SA-1 (using BW-RAM instead of SRAM, but the result is the same), so this can be effectively used as an alternative to the SRAM/BW-RAM Plus patch and the likes.
If you've already patched SRAM/BW-RAM Plus, this feature will be turned off automatically (they can't coexist). Unlike SRAM Plus, this patch should also work on SNES Classic, so you should use it if you care about compatibility with that console. Also, the maximum amount of bytes you can save per save file is 2389 bytes.
Open retry_config/sram_tables.asm and go to the save
table. There, you can add your own addresses to save (more info in the file). Similarly to SRAM/BW-RAM Plus, for each address you put in the table, you also need to specify its default value(s) for when a new save file is loaded in the sram_defaults
tables.
Some examples of addresses that may be useful (you can find more at SMW Central's RAM Map):
; 1-UP checkpoints flags. dl $7E1F3C : dw 12 ; $401F3C on SA-1. ; 5 Dragon Coins collected flags. dl $7E1F2F : dw 12 ; $401F2F on SA-1. ; Individual Dragon Coin Save patch tables. If you use that patch, you should include these. dl $7E1F2F : dw 12 ; $401F2F on SA-1. dl $7FA660 : dw $0300 ; $40A660 on SA-1.(For all of these, the default values need to be all $00).
A: If you really need to use those, then you can add these to the sram_table
/bw_ram_table
:
dl !ram_checkpoint : dw 192 dl !ram_death_counter : dw 5
Note: to have the Retry ram defines available in the patch, copy the contents of retry_config/ram.asm at the top of the SRAM+/BW-RAM+ table file. Also, if you're not using the death counter, you can omit the second line.
Then add these tables to the sram_defaults
/bw_ram_defaults
:
; Checkpoints. dw $0000,$0001,$0002,$0003,$0004,$0005,$0006,$0007 dw $0008,$0009,$000A,$000B,$000C,$000D,$000E,$000F dw $0010,$0011,$0012,$0013,$0014,$0015,$0016,$0017 dw $0018,$0019,$001A,$001B,$001C,$001D,$001E,$001F dw $0020,$0021,$0022,$0023,$0024,$0101,$0102,$0103 dw $0104,$0105,$0106,$0107,$0108,$0109,$010A,$010B dw $010C,$010D,$010E,$010F,$0110,$0111,$0112,$0113 dw $0114,$0115,$0116,$0117,$0118,$0119,$011A,$011B dw $011C,$011D,$011E,$011F,$0120,$0121,$0122,$0123 dw $0124,$0125,$0126,$0127,$0128,$0129,$012A,$012B dw $012C,$012D,$012E,$012F,$0130,$0131,$0132,$0133 dw $0134,$0135,$0136,$0137,$0138,$0139,$013A,$013B ; Death counter. db $00,$00,$00,$00,$00
Note: if you omitted the death counter in the previous table, then do it here too.