Staacks/gbinterceptor

[Feature Request] GameShark Firmware for Game Boy Screen Recorder

Closed this issue · 1 comments

Describe the feature
I propose a firmware update or a new firmware module that mimics the functionalities of the GameShark cheat device for the Game Boy series. Given the difficulty of obtaining an original GameShark these days, it would be valuable for many users if the Game Boy screen recorder device, with its RP2040 chip, could also serve as a cheat interface.

Use Case

Insert Game Boy game cartridge into the screen recorder device.
Use the device interface to select desired cheats or input new cheat codes.
Play the game with cheats enabled while also having the ability to record gameplay.
Expected behavior
Once a game is loaded, users should be presented with a list of known cheat codes for that game (if available). Users can toggle cheats on/off or add new ones. Once set, the game should play with the selected cheat functionalities.

Screenshots
While I currently don't have mockup designs, a user interface similar to the original GameShark, but adapted to fit the screen recorder device's display, would be ideal.

Host software (please complete the following information):

OS: All OSs that currently support the screen recorder device (Windows, MacOS, Linux, etc.)
Software: Proprietary software for the Game Boy screen recorder.
Game Boy:

Model: All Game Boy models that are currently compatible with the screen recorder device.
Additional context
The RP2040 chip has the necessary computational power to handle cheat code injections on-the-fly. This would not only serve nostalgia purposes for those who loved the GameShark but would also provide additional utility to the screen recorder device. Furthermore, an added feature could be the ability to take screenshots or record short GIFs using the Game Boy Camera.

Note: This is a hypothetical and generalized feature request. In a real-world scenario, the specifics might need more details, especially technical ones, based on the capabilities and constraints of the device in question.

Well, I see how this would be nice, but the GB Interceptor cannot interfere with the game by design. The address and data lines of the cartridge are directly connected to the Game Boy's cartridge slot and the Interceptor can only read the data. Your suggestion requires a different hardware design - i.e. that would be a different device.

Also, it might not be entirely trivial to do this on the rp2040 alone. Using a shared address block (16 GPIO pins), reading/writing data to the cartridge (8 pins) and sending custom responses to the Game Boy (8 pins) use up all GPIO pins and you still cannot check the R/W or CS pins. So, instead you will want to add at least a bus transceiver that allows the rp2040 to disconnect the cartridge whenever the rp2040 should answer (I wouldn't entirely trust overwriting the high address pin for this at such tight timings), but then you would lose the ability to capture the response from the cartridge. Still, it should not be too difficult, but as I said: That's a different device.