Alright, well luckily other people had already been through the trouble of figuring out how the wave RAM tests work so I basically just had to read through some posts to get the right behaviour. That made it much easier.
With this GBHawk is nominally operational.
I integrated it into the Dev Builds for anyone who wants to test. There are still some bugs so if anyone finds anything please report it here.
I also removed BIOS support from Gambatte due to it's bugginess.
I also put a core picker into BizHawk so you can choose between GBHawk and Gambatte.
There is still a long way to go in terms of development, but as it is right now it's already passes almost all the available test roms, which means it's really solid as a baseline model to develop on.
Next steps will be working through mappers, adding link cable support, implementing nitty gritty details of the ppu, and fixing bugs.
Once all that is done I might take a look at cgb.