Skip to content

Fix MQ DC Staircase silver rupees shared flag#2504

Open
rrealmuto wants to merge 1 commit intoOoTRandomizer:Devfrom
rrealmuto:mq_dc_silvers_fix
Open

Fix MQ DC Staircase silver rupees shared flag#2504
rrealmuto wants to merge 1 commit intoOoTRandomizer:Devfrom
rrealmuto:mq_dc_silvers_fix

Conversation

@rrealmuto
Copy link
Copy Markdown

Fixes an issue that was introduced with silver rupee shuffle. We changed the flag on the door in the MQ Dodongos Cavern to use a permanent switch flag 0x1F if silver rupees are shuffled. However, flag 0x1F is already in use by the bombable wall that leads to the lower right hallway, before the lower lizalfos. Basically, if you blow up that wall, the silver rupee door will automatically open and stay open regardless of how many silver rupees you have found for that room.

This PR changes that flag to a hopefully unused one - 0x1C

Testing

I ran through MQ DC and did everything that I could to try to set all of the scene flags. I ended up with the scene flags as EF364FFF
so 0x1C should be good but would be good for someone else to confirm. You can inspect the current scene's switch flags at memory address 0x801CA1C8

I didn't test actually collecting the silver rupees :)

@fenhl fenhl added Type: Bug Something isn't working Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Component: Patching Affects the patching of the ROM labels Dec 28, 2025
@GSKirox
Copy link
Copy Markdown
Collaborator

GSKirox commented Dec 31, 2025

I went through MQ DC and also didn't manage to trigger using switch flag 0x1C

@fenhl fenhl removed the Status: Needs Review Someone should be looking at it label Dec 31, 2025
Comment thread Patches.py
if world.dungeon_mq['Dodongos Cavern']: # Patch DC MQ Staircase Transition Actor to use permanent switch flag 0x1F
rom.write_byte(0x1F12190 + 15, 0x9F)
if world.dungeon_mq['Dodongos Cavern']: # Patch DC MQ Staircase Transition Actor to use permanent switch flag 0x1C
rom.write_byte(0x1F12190 + 15, 0x9C)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It says 0x9C in the write_byte call instead of 0x1C

@cjohnson57 cjohnson57 added Status: Waiting for Author Changes or response requested and removed Status: Needs Testing Probably should be tested labels Apr 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: ASM/C Changes some internals of the ASM/C libraries Component: Patching Affects the patching of the ROM Status: Waiting for Author Changes or response requested Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants