(04-22-2019, 07:18 PM)deejus679 Wrote: Thank you for your response.
After clearing the temple which I just did (yay!), I encountered the problem each time there was such a trapped/locked door. Fortunately was able to continue forward with my save state that I created prior to entering the room.
The quickest solution I could come up with was to just delete the config file, get the treasure, unlock the door, save (state), quit, restore the config, and fire it up again. It sounds much involved then what it really is, but disabling the cheats through Dolphin didn't have an impact. Perhaps it was, as you said, something to do with the used RAM/cache. Fortunately I was able to just press forward. I am curious to see if the same workaround will work with having a save state in the same room.
Anyways, thanks again. Have an awesome day!
Disabling a code (when it was enabled during gameplay) does not necessarily reset the game's RAM. Sometimes it does, but it depends on what the game does. Every action performed in the game affects the RAM in some way, such as the position of the cursor in the Pause Menu.
Taking the Pause Menu Cursor as an example. Moving the cursor on a subscreen changes a value in the RAM that determines which item is currently being positioned at (which causes the item text to display). The cursor and the positioned item are however two separate values. Let's say the cursor is at the Ocarina of Time (so that the positioned index has a value of 0). Moving the cursor one position right (Hero's Bow) increases the index value with 1. Moving the cursor one position down (Bombs) increases the index value with 6.
So here comes the fun part. Let's say we modify the RAM index for the currently displayed item in the Pause Menu to 1 (the Hero's Bow) while the cursor still is at position 0 (the Ocarina of Time). Then we disable the code. You would assume that moving the cursor one position to the right would restore the index value (so the cursor and the current displayed item are in sync again). However, the index only increments or decrements. It does not set the index value equal to that of the cursor. So the cursor always stay one position behind the actual displayed item.
This can however easily be restored by swapping sub-screens and then come back, which puts both values in sync again.
So, what's the importance of this example? Applying AR Codes modifies RAM values (which is never as intended by the game itself, hence why it is a modification). If everything goes right we can keep track of it and ensure the proper values are being used. AR Codes can and will mess up the game's RAM, sometimes leading to undesired effects, hence why it is important to know what these codes try to modify.
AR Codes can even affect the save data of your game. Now this seems like a huge red warning. But in reality it is quite easy to figure when it affects the RAM. Most RAM changes don't affect save data. By rebooting Dolphin and the game you restore the RAM as intended by the game (unless you leave codes enabled).
So when does a code affect the save data? Like I mentioned before, everything the game does and keeps track of is stored in the game's RAM, such as obtaining new items, masks, quest items, songs and so on. Majora's Mask saves for example which sword you have in the RAM into the save data. To be safe, codes that modify properties in the Pause Menu likely affect the save data. The code to upgrade your sword or shield does so for example. But that code that lowers the maximum capacity of the quiver and bomb bag does not. We don't actually change which quiver of bomb bag you have (you won't notice any differences in the Pause Menu), but rather the capacity value of each bag is modified (which is not being stored in the save data).
The 30 FPS code does not affect the save data (which it really shouldn't). But enabling the code and then disabling can and will leaves traces in the game's RAM which might not get restored to their intended values unless the game is rebooted. Ideally we would want to prevent that. In most cases it isn't such a big deal, but sometimes it might lead to issues where doors might not unlock (if the 30 FPS is the wrong-doer, I still can not confirm that for sure).
For example in Ocarina of Time there is a code that allows Link to equip any sword or shield at any age. However the code itself causes the game to freeze when in-game, so a check in the code has been put into place to ensure the code that allows to equip any sword or shield is only activated when in the Pause Menu. These checks can not modify the game's RAM, they only allow the RAM altering codes lines to activate when the check is passed. These checks can range from matching a specific value, or between a range of values and some more.