spiritualized1997 / openFPGA-Super-GB

Super Gameboy core for openFPGA on Analogue Pocket
70 stars 3 forks source link

SGB2's L+Left boot combo (to disable SGB enhancements) doesn't work on openFPGA core #9

Open Blaziken257 opened 8 months ago

Blaziken257 commented 8 months ago

Summary

If the SGB2 BIOS (not SGB1) and the GB bootrom is present in the necessary folder, and the user presses and holds L+Left prior to launching a game on SGB2 via openFPGA, it has no effect on this core (even when held while the loading bar is shown). The expected behavior is that the game would act as if it is run on a regular Game Boy, so that SGB enhancements like borders or palettes don't show up. The expected behavior occurs on an actual SGB2 (the buttons must be held prior to powering on the SNES), and also works on bsnes (though you might have to configure the emulator to allow input when the window is out of focus).

Reasoning

There are, in fact, reasons why a user might want to disable SGB features. One use is for games that disable link functionality when an SGB is detected -- the L+Left boot combo resolves this issue. An example is Mole Mania, a game that was released before the SGB2 existed, and doesn't take into account that the SGB2 has a link port:

Mode Title Screen Menu Screen
SGB1/SGB2 Mole Mania (U)  S ! -20231205-220448 Mole Mania (U)  S ! -20231205-220456
GB Mole Mania (U)  S ! -20231205-215720 Mole Mania (U)  S ! -20231205-215551

(Not shown here, but Mole Mania adjusts the music tempo and pitch for SGB1 to compensate for its fast clock speed. As a result, the game's music is too slow and flat on an SGB2, though the openFPGA core at least lets the user use the SGB1 clock speed anyways.)

Another reason is for games that have undesirable color palettes and lock the palette selector so that the user can't change it. All of the Donkey Kong Land games have subjectively questionable color palettes, and DKL2 and DKL3 lock the palette selector. The L+Left boot combo on SGB2 makes it possible for the user to choose their own color palettes:

Mode Title Screen Example Level Screen
SGB1/SGB2 Donkey Kong Land III (U) (V1 1)  S ! -20231205-221040 Donkey Kong Land III (U) (V1 1)  S ! -20231205-222720
GB Donkey Kong Land III (U) (V1 1)  S ! -231206-010905 Donkey Kong Land III (U) (V1 1)  S ! -231206-010526