Loading video...
Video Failed to Load
GB Interceptor v1.2.0 is out now! - MJPEG encoding - Full MacOS support - 60fps mode (almost the same as the last beta)
74,659 views • 3 years ago •via X (Twitter)
28 Comments

fantastic work! looks like i need to update my video ;)

Woah, real-time 60 FPS MJPEG encoding on the RP2040? That sounds awesome. I didn't really understand the details in the PR discussion though, is it true lossless and used sort of as a container format in order to utilize the bits more efficiently vs. raw NV12?

Yes, it is lossless and abusing JPEG as a container. The trick is to encode the image at 8 times its original size, so each 8x8 unit of the JPEG is just one Game Boy pixel. This way I only need to encode the DC component, can stick to a grayscale channel and use Huffman encoding.

It is mostly about being able to ignore colors and setting up a Huffman table to encode the few shades of gray in four bits. One more bit sets AC components to zero and so the encoding achieves five bits per pixel. (Still annoying as the Game Boy only has 2 bits per pixel.)

That’s clever, I love it!

That's mostly Ikadzuchi's idea from the PR. Oh, and most of the encoding is done by chained DMAs and a few PIO state machines working in parallel to feed the result back into chained DMAs. So, the CPU only takes a few pixels once in a while and shoves them into this pipeline.

Thanks a lot I'll test it as soon as I come black home

Hi Sebastian, I couldn't find this on the readme, website or Reddit so apologies if I missed it: what are the cable requirements for this? I know it is USB-C but my use case needs extra length, is it required that I get an "active" cable for 4k video or is a data cable enough?

The Interceptor uses an rp2040 that only has USB1.1, which is the reason why getting 60fps was so difficult in the first place. The upside is that long or bad cables should not be much of an issue. However, busy hubs and multiple devices on the same bus might be problematic.

Ah that's great news for me, thank you!

@GameTradeGregg another neat project

@KydeandEric supports 60fps and MJPEG now, guess we can IRL stream from a Gameboy camera now :D

That's so fucking cool! (and no, don't excuse my language, because it really is that fucking cool!!!!!)

Do I need a new interceptor to have this version or can I update mine?

Just hold the flash button while plugging it in and it will show up like a USB stick. Drag the uf2 file from GitHub onto that stick and it should reboot with the new version. (Most cases need to be opened to reach the flash button.)

GB Interceptor force dmg mode in games? if my game is optimized for gbc does it run in dmg mode?

The Interceptor does not influence the way the game runs (i.e. it does not force anything), but it is only compatible with DMG mode. Pure GBC games do not work at all, hybrid games only work on grayscale Game Boys and DMG games work on all systems including GBC and GBA.

@Pixel_Devil @Kalisto3000

Audio ? (poke @digitaLumberjak )

Don’t need one, will never use one. Brilliant work

gb interceptor is moving up my wishlist...

@danvasc2 👀

@syrusch That’s cool xD

I need some similar thing on my PlayStation 1!!! 😬😬

If we have a pico W (or 2) can we do wireless transmission?

Do you mean an Interceptor with a Wifi module (the Pico W is just an rp2040 with external module) or attaching the Interceptor to a Pico W? The former probably will lead to the same power problems as my WiFi cartridge. The latter might work if there is USB host code for the UVC.

The latter will most likely increase the size of de adapter even more? Maybe you can make a camera cable to your PCB for the Raspberry Pi Zero W or Zero 2 W. Instead of a camera it has video input. And you can use this:

@4amlaundry

