Joined: 6/25/2023
Posts: 2
Hello, I'm trying to figure out how to run Game Boy games in BizHawk using Super Game Boy 2. I have the SGB2 ROM and see that it can be dropped in as a firmware, which I have done. I also see that under "Preferred Cores", there is a "GB in SGB" option, which I have selected. When I launch a Game Boy ROM it does seem to add a border but still loads in Gambatte or other GB core, where I would expect it to load BSNES or other SNES core with the SGB2 ROM playing the GB ROM. When I launch the SGB2 ROM directly the border loads but seems to freeze up immediately. What am I doing wrong? I'm using Bizhawk 2.9.1 for reference. Also, my main goal with being able to launch games in this way is just so I can use the RAM watch to try to find out where the controller inputs go and how GB memory is mapped to SNES memory for the purposes of creating input viewer and autosplit files, but information on this seems to be scarce so if anyone has general info on how this works that would be really helpful too. Thanks!
YoshiRulz
Any
Editor, Emulator Coder
Joined: 8/30/2020
Posts: 111
Location: Sydney, Australia
SGB + link cable isn't supported in 2.9.1. There is an open PR for it courtesy of Fortranm, which you can test by downloading this build. edit: I wasn't aware of any other reason you'd want the SGB2 specifically, guess I shouldn't have assumed.
I contribute to BizHawk as Linux/cross-platform lead, testing and automation lead, and UI designer. This year, I'm experimenting with streaming BizHawk development on Twitch. nope Links to find me elsewhere and to some of my side projects are on my personal site. I will respond on Discord faster than to PMs on this site.
Hey look buddy, I'm an engineer. That means I solve problems. Not problems like "What is software," because that would fall within the purview of your conundrums of philosophy. I solve practical problems. For instance, how am I gonna stop some high-wattage thread-ripping monster of a CPU dead in its tracks? The answer: use code. And if that don't work? Use more code.
Emulator Coder, Judge, Experienced player (732)
Joined: 2/26/2020
Posts: 790
Location: California
You have to change the SGB preferred core in the config from Gambatte to one of the BSNESes. By default it's set to Gambatte, which is an HLE SGB emulator.
LeadOstrich wrote:
where the controller inputs go
Controller inputs might have some buffer in SNES RAM somewhere (although this is possibly going to depend on the exact SGB rom you used; SGB2 only has one version so that's probably not an issue unless you want SGB1 support?). For how it works regardless of the SNES ROM: it's just MMIO at 0x6004-0x6007 in the I/O Map. It's not mapped to SNES RAM.
LeadOstrich wrote:
how GB memory is mapped to SNES memory
GB memory is not mapped to SNES memory. The SNES cannot directly see GB memory at all. For an autosplit file etc, you have to find wherever the emulator is storing GB memory.
Emulator Coder, Judge, Experienced player (732)
Joined: 2/26/2020
Posts: 790
Location: California
YoshiRulz wrote:
SGB + link cable isn't supported in 2.9.1.
They are not asking for SGB + link cable?
Joined: 6/25/2023
Posts: 2
Ah, thank you, I overlooked the SGB item in the Preferred Cores menu. I appreciate the help!