But did it break any other save functionality?
I do not believe so. It works like this.
If you've ever messed around with manually editing name tags in Dolphin, you'll notice that the areas where each name tag is stored gets
directly copied to the memory card. Or at least this is what I noticed after some testing (and this is why extended name tags can be saved to mem card and work on vanilla melee).
Well, what I also noticed is that, for whatever reason, there is a bunch of [supposed] free space in between each name tag (0's). And the other day I finally came to the realization that I could use this free space to store the debug menu toggles. So that's no problem...just write a code that copies the debug menu data to that "memory card info" location.
And then all I needed was the right injection point; a line of code that gets executed
after the game has been initially booted and memory card data has been loaded, but
before the game screen actually shows up on the tv. At this point, I just inject custom code to copy the debug toggles saved to the memory card location mentioned above and paste that data over the default debug settings.
So that happens before you can even start playing the game which makes it seem like it is normal memory card data.
Bam.
The only problem is that a few of the toggles (Skip Results, Widescreen, and new feature) won't change their default settings until you go back to the debug menu and exit out of it, like you would currently do - no matter what you have saved to the memory card for those toggles. This is just due to how I coded those changes to take place, combined with the fact that I never thought about saving things to memory cards and how that would affect things. This can be fixed.