-
-
Notifications
You must be signed in to change notification settings - Fork 26
About lag and receiving lossless 60fps
The video encoding of the GB Interceptor has always been lossless. Early versions used an uncompressed format (NV12) and version 1.2.0 introduced MJPEG encoding to improve bandwidth and compatibility. Although MJPEG is a lossy format, the Interceptor scales the original pixels of the Game Boy to align with the 8x8 compression blocks of MJPEG in order to massively simplify the encoding process and making it truly lossless as a side-effect.
The USB Video Class specifications require that MJPEG encoded streams include color information. This pushes the required bandwidth above what the USB controller of the GB Interceptor can handle, so it defaults to sending 30fps. However, if the host software also accepts grayscale MJPEG (like for example OBS does since version 30.0.0), it can achieve true 60fps output. The GB Interceptor allows the host software to pick either 30fps or 60fps, so check the settings for the video source to see if you have an option to request 60fps.
If set to 60fps the standby screen of the Interceptor should show a warning that this might not be compatible. The standby screen should work on every host software and does not run at true 60fps, but as soon as the game starts, the framerate should reach 60fps and if there are incompatibilities with the host software they should show at that point.
The GB Interceptor is primarily designed for streaming and recording, but you may find it acceptable for playing on a larger screen.
Internally the GB Interceptor introduces a lag of two additional frames (33ms at 60fps) as it renders in sync with the Game Boy, but needs one buffer into which it encodes the MJPEG frame and one buffer that holds a fully encoded frame that is being transmitted via USB. The actual delay from Game Boy screen to host screen depends a lot on the host system: Operating system, buffering of the video software, independent refresh and input lag of the screen of the host system. Make sure you disable any buffering options in your host software (enabled by default on VLC and OBS for example).
With optimal settings you should get something between 60ms and 100ms.