Add MMR custom music support to OOTR. .OOTRS file improvements
This PR adds the ability to import MMR's custom music directly into OOTR.
Also updates how custom instruments get added into the .ootrs meta files while remaining backwards compatible with the current format.
As far as I know this is working but I'm not as good at testing this stuff as @owl_is_not_a_cat
I'll squash before marking this as ready 😅
So I'm thinking that this is ready to merge after resolving CI checks + conflicts. A handful of folks have used it on my branch without issues. There are a few things that may be broken but I wouldn't consider them a show-stopper for merging this but wanted to get your thoughts:
- [ ] MMR supports what is known as a "mask form" sequence. Basically it's a single sequence that changes based on whatever mask the player is wearing. We don't really have a way to properly support this in OOTR. I'm not exactly sure how they will sound in OOTR but I think it might play all 3 simultaneously. If anyone knows of a good way to detect this, perhaps we could just do that and ignore the sequence.
- [x] MMR has some .mmrs files with multiple banks. Apparently this carried over from when they had very early support for custom instruments. I don't believe it breaks on our end though I haven't tested it all that much.
- [x] There are a handful of MMR .zseq files that don't conform to any reasonable naming standard. We just don't support those :)
With the last commit this should remain compatible with the new web patcher. Obviously the web patcher won't support the MMR music, but this shouldn't break Dev once it's merged.
@owlisnotacat1 would you be willing to give this a code review?