Skip to content

Fix MQ DC Staircase silver rupees shared flag - #2504

Merged
fenhl merged 1 commit into
OoTRandomizer:Devfrom
rrealmuto:mq_dc_silvers_fix
Jul 27, 2026
Merged

fenhl merged 1 commit into
OoTRandomizer: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

GSKirox commented Dec 31, 2025

Copy link
Copy Markdown
Collaborator

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
@cjohnson57 cjohnson57 added Status: Waiting for Author Changes or response requested and removed Status: Needs Testing Probably should be tested labels Apr 4, 2026
@r0bd0g

r0bd0g commented Jul 26, 2026

Copy link
Copy Markdown

I guess I just wanted to say I stumbled into this bug today.

@rrealmuto

Copy link
Copy Markdown
Author

Well maybe it should've been merged like when I PRd it

@r0bd0g

r0bd0g commented Jul 27, 2026

Copy link
Copy Markdown

I think the reviewer might be saying you made a typo, writing 9C instead of 1C in one spot?

@rrealmuto

Copy link
Copy Markdown
Author

That is the correct Door_Shutter actor variable for a door that is trigger by switch flag 0x1C

@fenhl
fenhl requested a review from cjohnson57 July 27, 2026 05:20
@fenhl fenhl added Status: Needs Review Someone should be looking at it and removed Status: Waiting for Author Changes or response requested labels Jul 27, 2026
@GSKirox

GSKirox commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

To expand on Rob's comment :
The Door_shutter actor uses the first 6 bits of its params variable to store which flag it must use, and the next 4 to define its type.
This door in MQ DC has a A5 (10100101) params, which means its type is 0010 and using the flag 100101, which is 0x25, so a temp flag that will be cleared once out of the dungeon.
Changing to 9C (10011100) will preserve its type at 0010, but will switch the flag to 011100, so 0x1C, a permanent scene flag.

@cjohnson57

Copy link
Copy Markdown
Collaborator

Well maybe it should've been merged like when I PRd it

In the PR description it says:

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

But then the code changes it to 0x9C. Kirox's explanation makes sense, but you never explained that, so the comment was never resolved.

@fenhl fenhl removed the Status: Needs Review Someone should be looking at it label Jul 27, 2026
@fenhl fenhl added this to the next milestone Jul 27, 2026
@fenhl
fenhl merged commit 70234cd into OoTRandomizer:Dev Jul 27, 2026
6 checks passed
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 Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants