Can I switch RetroArch's GBC core from gambatte to mednafen?

I've been playing GBC games on my Raspberry Pi using the RetroPie OS. More specifically, I've been playing Shantae using RetroArch's GBC emulator. When I found out that certain features are only available on the Game Boy Advance, I moved the save file to my PC and loaded it into RetroArch.

I'm trying to load my old save file on a GBA core so that I can get the exclusive content, but I can't seem to use any core other than Gambatte. If I load the Mednafen-VBA core and then load the game, it either automatically loads Gambatte (If I use Detect Core) or Shantae doesn't appear in the list of available games (If I use Mednafen VBA-M).

Is it possible to force this file to play under a GBA core and access the hidden content? Failing that, is there any way to apply cheat codes to a GBC game using RetroArch? I was only able to find cheat codes for RetroArch's PSX emulator.

enter image description here


Solution 1:

The way an actual GBA makes GB(C) games work is due to the GBA containing the hardware for both systems (which is why the Game Boy Micro didn't have GBC compatibility; it lacked the extra hardware). Effectively, it's two seperate systems in one.

GBA-enhanced games supposedly work by checking the hardware state on startup and registering this internally, then uses that to make things work differently. The game cannot and does not make any use of the added hardware; it doesn't have access to anything that isn't already on a GBC.

Hence, emulating GBA-enhanced functionality for a GBC-game would be done in a GBC emulator, not a GBA emulator, and it is there an option for GBA enhancements would need to exist.

While VBA-M, which Mednafen is based on, supports both systems, the core used in the RetroArch appears to only contain the GBA-related code, with Gambatte being used for GB/GBC support (as per SevenSidedDie's comment). The fact that Shantae, a GBC game, will not load on the Mednafen core, indicates that this is indeed true.

I am not aware of any emulators that allow these checks. Most games that perform this check do it to change the color palette to make the graphics look better on a GBA, in order to account for the different screens - but for an emulator, that's not normally something you'd want. You'd have to take that up with the emulator developers, though.