'GB Interceptor' that can capture and distribute game images without modifying the Game Boy at all



Developer

Sebastian Starks explains the tool `` GB Interceptor '' that allows you to capture and distribute game images without modifying the Game Boy itself.

There should be a Game Boy capture cartridge.
https://there.oughta.be/a/game-boy-capture-cartridge

Mr. Starks decided to develop GB Interceptor because Tetris enthusiasts contacted him saying, 'I want to distribute how Tetris is played on a Game Boy.'

At the time of writing the article, it is not difficult to stream video from the Game Boy. If you use an emulator, you can easily distribute the state of game play on the Game Boy. Also, you can use a game compatible machine such as Analogue's Pocket and convert the Game Boy video to HDMI output for distribution. Others also remodeled the Game Boy to add an HDMI terminal.

However, a Tetris enthusiast who contacted Mr. Starks wanted to distribute how he was participating in an online Tetris competition. In Tetris competitions, it is important for players to play Tetris with hardware that is familiar to them, so using modified or compatible machines may have a significant impact on the results of the competition. matter. Therefore, it seems that Tetris enthusiasts have contacted Mr. Starks to see if they can deliver the state of the game with an unmodified Game Boy.

It is the Game Boy's cartridge slot that allows you to access game data without modifying the Game Boy itself. Since all of the game data passes through the cartridge slot, Mr. Starks decided to 'create an adapter that has the ability to intercept data from the cartridge slot.'

However, by simply intercepting data from the Game Boy cartridge slot, it is not possible to access the game data at any time, and it is not possible to see the data in the RAM that summarizes the instructions that the Game Boy CPU receives from the game cartridge. In particular, they don't see video RAM, which contains everything needed to draw an image on the screen, so they decided to create their own copy of VRAM instead.

Therefore, Mr. Starks created an emulator to supply data from the cartridge memory bus. In addition, using the Raspberry Pi Pico microcontroller ``rp2040'', the two main processing of the Game Boy, ``recreating a copy of the VRAM by emulating the CPU'' and ``the game boy's graphics unit, the PPU It seems that he decided to divide and process 'processing to emulate'.



Game Boy CPU emulation was the most difficult part of GB Interceptor's development, Starks said. The most difficult reason, Mr. Starks explains, 'because we need to keep up with the memory bus that pushes events at a rate of about 1 MHz.' Delayed PPU emulation will only cause short glitches such as flickering on the screen, but delayed CPU emulation will eventually miss events on the memory bus, causing the RAM copies to go completely out of sync. Not only is there a possibility, but there are also cases where the emulator cannot interpret the next instruction. The Gameboy CPU takes several cycles to execute some instructions, while others complete in one cycle, so events on the memory bus aren't always instructions meant for the CPU. . Therefore, the emulator needs to ignore cycles after certain instructions when the event is considered to be an instruction for the CPU.

In order to solve these problems, Mr. Starks seems to have to overclock the operating frequency of rp2040 from the default '125 MHz' to '225 MHz'.

The GB Interceptor is based on the Raspberry Pi Pico and has a

GPIO port and some bus transceivers to connect to the cartridge path. Of the 32 pins on the bus, 2 are used for power, 1 for analog audio, 1 to control the reset state of the Game Boy, and the remaining 28 are connected to the rp2040. As a result, the rp2040 seems to be able to access 16 address pins, 8 data pins, and 4 bus control pins. This leaves two GPIOs unused, one for voltage monitoring and one for status LED control.



Mr. Starks has published the GB Interceptor's firmware and printed circuit board on GitHub, the related code is distributed under version 3 of the GNU General Public License , and the PCB layout and 3D printable case model are CC-BY It is distributed with 4.0 . In addition, when using GB Interceptor, it is written as a note that a small lag that is not suitable for playing will occur on the screen, and Mr. Starks said, ``It may not be a problem in slow games.GB Interceptor focuses on capture and delivery. It is a tool that puts

GitHub - Staacks/gbinterceptor: Capture or stream Game Boy gameplay footage via USB without modifying the Game Boy.
https://github.com/Staacks/gbinterceptor



In addition, Mr. Starks has released a video summarizing how to order a PCB board for GB Interceptor using the PCB print service JLCPCB and actually assemble the parts.

How to order and build the GB Interceptor-YouTube


in Software,   Hardware,   Video,   Game, Posted by logu_ii