Thanks for the reply! I tried what you said above, patching to an entirely fresh ROM (with only the newest AMK patched for song reasons) but the edits throw me an error about !addr not being found.
Looking at other patches, it seems this is an SA-1 check? I'm not using SA-1 so I tried a few different things:
Removing the !addr [with and without ,x], changing it to !base1 or !base2 [with and without ,x] will all patch successfully, but the overworld freezes when it loads. I used !base1 / !base2 because it seems that is what this patch uses for SA-1 check. It doesn't crash, as the graphics remain fine and the music plays, but Mario and the animations are frozen in place (which is progress from before when it would crash entirely).
To be clear, I patched AMK first. Tested ROM. It worked.
Then patched OW Music with the edits you suggested, and the overworld froze.
I also noticed that the OW Speed patch uses address $048246. It uses that address near the bottom of the code, as it JML's to it:
Code.return
LDX #$01 ; \ Restore the hijacked code and return
JML $048246 ; /
I couldn't find any documentation in the ROM/RAM map for that address so I don't know what it's used for (assuming empty). Do you have any other ideas that could make these patches compatible?
I appreciate your assistance Meirdent.