Name: | Retry System (+ Multiple Checkpoints) v2.06c |
Authors: | Kevin, lx5, worldpeace |
Added: | |
Version History: | View |
Tool: | Asar |
Requires Free Space: | Yes |
Bug Fix: | No |
Featured: | No |
Description: | This patch creates a prompt that lets players choose whether to quickly restart a level without visiting the overworld after dying. Probably useful for hard or kaizo-light difficulty hacks. Now compatible with Lunar Magic 3.00! Features: - fast reset - easily configurable multiple checkpoints Note: LM's level transition hack is required in order to make this patch work properly. It's silently installed to your ROM when you check the "Use separate settings for Midway Entrance" option for a midway entrance in any level and save the ROM with LM. lx5's edit: - It's now compatible with Ladida's Mario DMA patches (this also includes Custom Powerups) - Removed some window garbage that may appear upon closing the retry prompt - Fixed communication with Individual Dragon Coin Save patch (requires using my update) GitHub KevinM's edit: - Updated Sprite Initial Facing fix to fix an issue when using entrance method 2, to reflect the update to the standalone patch. Thanks to Darolac for reporting this. - Fixed bugs when dying to the intro level, where sometimes the player would get warped from C5 to 1C5 when using LM's sprite 19 fix (and it's now compatible with the new fix introduced in LM 3.20). - Added compatibility with SA-1 pack v1.35+, by automatically remapping the windowing channel and fixing garbage tiles from appearing in the prompt when using SA-1 v1.40+ (MaxTile). - Added defines to easily change the palettes used by the letters and cursor in the retry prompt. - Changed SA-1 freeram from $40B4XX to $40C0XX to avoid conflicts with MaxTile. - Fixed game crash with the erase file menu when using !midway_sram = 1 on lorom (thanks worldpeace for the fix!). |
Tags: | kaizo light lorom midway point retry sa-1 toolless |
Comments: | 82 (jump to comments) |
Download
175.44 KiB | 4,873 downloads
Comments (82)
Rom Size: 8mb
I applied the BWRAM patch with the table included in this and then the retry patch and both player 1 and 2's lives are broken they are stuck at 99 and won't go down on death or exceed it. I tested BWRAM with the table without the actual retry patch and it was fine.
Other patches I used was SA1-Pack-140, tolerance-timer.asm, savepromptselect.asm, PlayerXSpeedFix.asm
Edit: tested it without any of the other patches besides SA-1 and same issue.
Asar 1.33b, by Alcaro
Enter patch name: retry.asm
Enter ROM name: MYROMHACK.smc
retry.asm:62: error: Unknown command. [while read1($00A304+0) != $60]
retry.asm:2677: error: Misplaced endif [endif]
Errors were detected while assembling the patch. Assembling aborted. Your ROM ha
s not been modified.
Press any key to continue . . .
retry.asm:23: error: (E5039): SNES address 00FFD5 in read function out of bounds. [if read1($00FFD5) == $23]
retry.asm:40: error: (E5039): SNES address 01E762 in read function out of bounds. [if read2($01E762) == $EAEA && read1($009EF0) != $00]
retry.asm:48: error: (E5039): SNES address 05DAA3 in read function out of bounds. [if read1($05DAA3) == $5C]
Errors were detected while assembling the patch. Assembling aborted. Your ROM has not been modified.
Press any key to continue. . .
I think the file is corrupt. Try redownloading. Or, there are patches incompatible with the retry patch installed on your rom.
retry.asm:23: error: (E5039): SNES address 00FFD5 in read function out of bounds. [if read1($00FFD5) == $23]
retry.asm:40: error: (E5039): SNES address 01E762 in read function out of bounds. [if read2($01E762) == $EAEA && read1($009EF0) != $00]
retry.asm:48: error: (E5039): SNES address 05DAA3 in read function out of bounds. [if read1($05DAA3) == $5C]
Errors were detected while assembling the patch. Assembling aborted. Your ROM has not been modified.
Press any key to continue. . .
1. Mario dies
2. Choose retry/restart
3. Coin sound/fireball sound
4. Black screen.
1. Mario dies
2. Choose retry/restart
3. Coin sound/fireball sound
4. Black screen.
1. Mario dies
2. Choose retry/restart
3. Coin sound/fireball sound
4. Black screen.
1. Mario dies
2. Choose retry/restart
3. Coin sound/fireball sound
4. Black screen.
retry.asm:23: error: (E5039): SNES address 00FFD5 in read function out of bounds. [if read1($00FFD5) == $23]
retry.asm:40: error: (E5039): SNES address 01E762 in read function out of bounds. [if read2($01E762) == $EAEA && read1($009EF0) != $00]
retry.asm:48: error: (E5039): SNES address 05DAA3 in read function out of bounds. [if read1($05DAA3) == $5C]
Errors were detected while assembling the patch. Assembling aborted. Your ROM has not been modified.
Press any key to continue. . .
- Lunar Magic 3.30
- Asar 1.81 + Mario's 8x8 Tiles DMA-er
- SA-1 Pack 1.40 (also tested without)
- Snes9x v1.60, bsnes-plus v05
There was a bug with the table used with the 8x8 tile DMAer patch, but Kevin sent over a fix for it and that has been uploaded. Also works with the newest SA-1 patch.
assuming you're using uberasm, have you tried just resetting the flipped gravity flag to zero in the
I am getting this graphical glitch even after moving Mario and saving the OW as instructed. Not sure how I would be doing a step wrong, but I can't seem to figure out why it won't work properly.
https://www.smwcentral.net/?p=section&a=details&id=20295
The patch now works with the latest version of Individual dragon coins save, also on SA-1, and as far as my testing went, it's also compatible with the various Mario DMA patches, including the Custom Powerups. Good job in adding support to these patches, it's very much appreciated.
One small note: now the custom midway object option is turned off by default, if you need it then change the appropriate define in "retry.asm" to 1.
Edit: I turned the option back on by default, since it caused confusion among people.
I also had this problem. Upon investigation, it was the save code I was using that was buggy. I am using this block, and had to remove the SRAM+ check from it for it to work correctly (i.e. I removed the "if" and "endif" lines).
EDIT: I found the solution to this problem. You need to put the patch on a fresh rom
Yo voy a tratar. Pero se ve chido cuando usted actualizasteis el arreglo.
- It's now compatible with Ladida's Mario DMA patches (this also includes Custom Powerups)
- Removed some window garbage that may appear upon closing the retry prompt
- Fixed communication with Individual Dragon Coin Save patch (requires using my update)
retry.asm:29: error: (E5039): SNES address 00FFD5 in read1() out of bounds. [if read1($00FFD5) == $23]
retry.asm:40: error: (E5039): SNES address 05DAA3 in read1() out of bounds. [if read1($05DAA3) == $5C]
Errors were detected while assembling the patch. Assembling aborted. Your ROM has not been modified.
What should I do?
maybe delete the sram of your rom
Thanks in advance! I just started messing with ROM hacks and patches last night, and I've learned a ton.
This is probably just me, but I'm getting this error when installing retry.asm
Enter patch name: retry.asm
Enter ROM name: Redux World.smc
retry.asm:799: error: (E5016): File 'letters.bin' wasn't found. [incbin letters.bin]
Errors were detected while assembling the patch. Assembling aborted. Your ROM has not been modified.
0009:fixme:ver:GetCurrentPackageId (0x32fe94 0x0): stub
To resolve this, you need to remove the old save data. You could use the erase data menu in the titlescreen, or remove the save file from your system.
The game boots fine and the text box appears with the option to retry, but selecting it makes the screen fade and the game crashes.
when you are climbing a rope mechanism and die precioned against a muncher the retry does not work correctly
Fixed now.
Go to Lunar Magic and restore your rom to a previous state before you implemented the patch.
e: ok just checked stuffs. I will add a function that allows to reset custom ram to this patch. Despite that, for the sake of maximum abstraction, I suggest you to modify your pipe code so that the gamemode routine resets those free ram addresses used by pipe when mario's dying, i.e., $71 is set to $09. Preferably .ResetStatus could be called (except for STZ $71).
This could also fix the reset issue which could happen even if you don't use retry, when you die in a pipe(then exit to the overworld) and use $7Fxxxx as freeram for the pipe.
After that but before the RTS, place this:
It might also wise to be sure that some RAM address to be reset or set to a certain value when the player dies, as not all RAM addresses for those patches will be set when the player dies and respawn.
It's almost same as the version in kldc base rom which had a number of testers, so I guess it's safe to replace the old one right now.
- no yoshi entrance glitch which MarioFanGamer mentioned
- a glitch that restarting a level sometimes skips loading music sample when it's not supposed to do
- a way of escaping levels when you use the "no window" option (start+select)
- some minor inconsistency with pipe entrances
- other things I cannot remember
Response to MarioFanGamer:
- About the glitch that always brings you to the main entrance, if I remember correctly, that happens only when the level is unchanged vanilla, which might not be the case any hack encounters. However I might as well check this again when time allows.
- I found it is easier to manage midways with Kaijyuu's version, especially when I had to handle a huge project. It's because I could edit the midway positions by just dragging the entrances in LM, which is more efficient and intuitive than editing a text of coordinates. I also believe that all of 512 secondary entrances won't be used in most cases. (But I agree Kaijyuu's version could have been better by not using the table of a fixed length)
- I made the sprite initial facing routine work like that because I wanted this patch could be applied to hacks in progress, without corrupting existing levels (levels which might exploit the initial facing bug, and levels where the sprite initial patch was already inserted conversely)
But first we come to the negative points:
Because of the windowing/ masking and layer 3 stuff a la message boxes, it naturally has got a couple problems with these (though layer 3 just disappear" but also Mode 7 (and technically the other BGM but they're rare, the tilemap also disappear similar to layer 3) and some kinds of colour maths (e.g. these in the dark rooms in Bowser's Castle). But these are comparably minor, since they only disappear for a short time anyway.
There is a different story regarding the midway points: If you restart a level, you will be put to the main entrance regardless on whether you passed the midpoint or not. The only way to fix that is to give the midway point seperate attributes in Lunar Magic. You don't need to make every midway and main entrance seperated, only the hijacks are required since the.
It also hijacks the routine which branches to the message box messages. That is a problem since patches which modifies the message system (e.g. message box expansion) uses the same hijack. It'll be nice if you've found a workaround for that.
Speaking of incompatibility: I personally find imamelia's MMP better so it's a pity that you can only use Kajyuu's version.
Now we come to the two bigger problems:
Both only appear if one doesn't use MMP.
I also am not really happy about the included sprite init facing fix since you have literally put the whole patch in the retry patch with the exception that you added checks that this fix only applies if you use the restart. Very unecessary, especially since you can easily remove the conditions. Either have this included with the patch or leave it out but please, don't do this (at least I wouldn't do this).
However, the most impressive point is on how the code reads from the ROM itself and not with the Asar-conditions. That way, you don't have to repatch the retry patch everytime you use the other patches or tools, though I would have used Asar conditions at some places instead.
I know, using Asar condition reduces the user-frendliness a bit but saves a couple of ROM space, not to mention that it makes sense at some places.
All in together, I went to accept it but keep the two major problems in mind.
But it's not recomended use this on hacks that use Layer 3 or hdma because the prompt make them disapear.
But of course you can use the option that automatically respawn Mario from the last checkpoint, but I'd like to hear the death jingle for that option too.