Capture or stream Game Boy gameplay footage via USB without modifying the Game Boy.
This open source and open hardware Game Boy adapter uses an rp2040 to capture the communication on the cartridge bus. This data is fed into an emulator, rendered and then offered as a USB video class device.
*The plastic transparent case is processed with pliers.
Therefore, the cut surface is not beautiful.
Data for 3D printing
-
-
This video provides an overview.
Warnings
Please make sure to understand what this device does and what its limitations are. Most importantly, there is a little lag which will make it unsuitable for playing on a bis screen. It might be ok for slow games, but its focus is on recording and streaming.
Also check out the compatibility tables for host software (for example OBS) and particular games. In principle this is a USB video class device and does not require drivers, but not all software supports the unsusual video format of the Interceptor. Similarly, games should usually work, but sometimes there are some details that the Interceptor does not yet support properly and some rare things that cannot work based on the principle of this device.
Usage
Simply plug the Interceptor into your Game Boy and the Game into the Interceptor. Connect the Interceptor to your computer before turning on the Game Boy. It should show up as a webcam in any software that supports USB Video devices (for example OBS Studio). Note that some software is not entirely happy with the exotic format, but it should work in most cases (see Host software compatibility).
Then just turn on the Game Boy and play.
Note that you do not need to open the video stream first. The only important step is that the Interceptor is powered via USB before the Game Boy is turned on.
Buttons
The [Mode] button (next to the LEDs) allows to switch between grayscale/green colors and toggle frame blending. Each press switches colors and frame blending is toggled each time it returns to grayscale.
The [Flash] button (near the center, usually inside the case) is only used to flash a new firmware version. Simply hold it while plugging in the USB cable. The Interceptor should appear as a storage device (like a USB stick) and you can simply drag the new firmware file (a uf2 file) into it.
LEDs
The red LED indicates that the Interceptor is powered.
The blue LED stays on as long as the Interceptor is in sync with the game. (It may shortly turn off for a fraction of a second when the Game Boy turns the display off, i.e. when loading a level.)
Support
While I do not give any guarantees I (and probably others too) am happy to help if I have the time.
If you are having difficulties to order, build or use your Interceptor, please do not contact me directly but use r/thereoughtabe on reddit as this allows others to help and the answer might help others, too.
If you found a bug and in particular if you find glitches in a game, please check the compatibility lists in the Wiki first to see if it is a known problem and open an issue here on Github otherwise.
Building the firmware
Most users should just install the latest release uf2 as described in the Build guide, but if you want to build it yourself, you will need the Raspberry Pi Pico SDK. Don't forget to set PICO_SDK_PATH accordingly.
Make sure to check out the submodules too and specifically make sure that the TinyUSB submodule is at least on version 0.14.0 as the Pico SDK currently references an older version. (Also see #3)
License
The code is released under the GNU General Public Licence 3 and the design files (PCB layout and 3d printed case) are released under the Creative Commons licence CC-BY 4.0.
--
Linux
It seems like every single software is happy to accept the GB Interceptor. Of course, glitches can be expected in some cases when the software did not expect a 160x144 resolution.
Software |
Status |
Note |
ffmpeg |
✔️ |
|
OBS |
✔️ |
|
VLC |
✔️ |
You might want to reduce VLC's default 300ms buffer to reduce latency. |
Zoom |
✔️ |
|
Windows
Software |
Status |
Note |
OBS |
✔️ |
|
VLC |
❌ |
Seems to have trouble with the format and throws an error. |
Windows Camera |
✔️ |
Interceptor needs at least firmware 1.0.3 |
Zoom |
✔️ |
Note that Zoom tends to hang if the Interceptor does not react properly. Unplugging and reconnecting can help. |
MacOS
Software |
Status |
Note |
Face Time |
✔️⚠️ |
See remark below |
OBS |
✔️⚠️ |
See remark below |
Photo Booth |
✔️⚠️ |
See remark below |
VLC |
✔️⚠️ |
See remark below |
Works on MacOS since Interceptor firmware 1.0.1. This has been successfully tested on a MacBook Pro with Intel CPU and Ventura 13.1. Unfortunately, the image is distorted and green on an M2 Macbook Air and I suspect that it is a bug in the driver for Apple CPUs, probably related to the Interceptors NV12 color format as other cameras work. Also see #1
Android
USB video class devices are supported when the Android device supports USB OTG (pretty much all devices with USB-C). However, few apps support the video format of the GB Interceptor.
Software |
Status |
Note |
USB Camera (com.shenyaocn.android.usbcamera) |
✔️ |
Note that this app hangs in version 1.0.1 and 1.0.2 of the Interceptor firmware. Fixed in version 1.0.3 |
USB Camera Viewer (com.homesoft.usb.camera) |
❌ |
Reports that the format is not supported. |
USB OTG camera, Endoscope app (net.usb.usby) |
❌ |
No image |
iOS
There is no general support for the USB video class on iOS. Maybe Apple will add this in the future...