As you are already aware, there are several games where in-game buttons either (a) don't work at all (final fight 2?) or (b) only work on some frames even with an optimized in-game hook (savestates disabled). One solution would be to have a fixes file that maps checksums to WRAM button state addresses which can be read of out of the mirrored WRAM state in PSRAM. The M3 can overwrite the button address when loading the hook handler and starting the game. The downside is this is another file to distribute and it's a hack. You may have other solutions so feel free to close out this issue.
As you are already aware, there are several games where in-game buttons either (a) don't work at all (final fight 2?) or (b) only work on some frames even with an optimized in-game hook (savestates disabled). One solution would be to have a fixes file that maps checksums to WRAM button state addresses which can be read of out of the mirrored WRAM state in PSRAM. The M3 can overwrite the button address when loading the hook handler and starting the game. The downside is this is another file to distribute and it's a hack. You may have other solutions so feel free to close out this issue.