LIJI32 / SameBoy

Game Boy and Game Boy Color emulator written in C
https://sameboy.github.io/
Other
1.68k stars 211 forks source link

Press all GameBoy buttons at once #378

Open ogamespec opened 3 years ago

ogamespec commented 3 years ago

Hi, how can I press all buttons at once to bring up the save menu in Zelda?

LIJI32 commented 3 years ago

On all Game Boys (except the Super Game Boy, which doesn't have physical buttons) there's a physical mechanism that prevents opposing direction keys from being pressed simultaneously, forcing modification for the shell to perform this action. On the Super Game Boy this is prevented by the SNES-side software. SameBoy follows the original hardware and prevents it similarly. Unless you're referring to something else I don't understand?

jprjr commented 3 years ago

Bringing up the menu in The Legend of Zelda: Link's Awakening requires pressing A+B+Start+Select at the same time.

Tried on the SDL version on Linux, both with a Gamepad (Xbox 360) and a keyboard, I was able to do it.

Don't know if a particular platform/input combo may have issues with sending 4 simultaneous keypresses? Can't think of any of the top of my head.

Maybe double-check keyboard / joypad mappings.

ogamespec commented 3 years ago

I have a standard keyboard mapping (A = X, B = Z, Select = Backspace, Start = Enter), but I can't press them all at once.

meithecatte commented 3 years ago

This might be a problem with rollover on your keyboard. Try remapping to some other keys and see if the problem persists.

LIJI32 commented 3 years ago

This is most likely a rollover issue with your keyboard, either it has very low rollover, or another quirk that prevent certain combinations from working. In addition to trying other key mappings as suggested above (Specifically, try modifier keys as they operate differently from other keys and are not affected by rollover), try checking if this problem happens on other emulators.

ogamespec commented 3 years ago

After I set the A button to Alt, and the B button to Ctrl, I was able to press A + B + Select + Start.

ghost commented 3 years ago

Having a special emulator hotkey mapping could be useful as most games support this 4-button combo. Same with Libretro port as unused shoulder buttons on joypad (L1-R3) would fit.