Raspberry Pi single-board computers (SBCs) are very popular for gaming, particularly for emulating retro consoles and arcade games. A Raspberry Pi 3B +, for example, should be able to run most games from the 16-bit era or earlier. Systems like RetroPie make it easy to turn your Raspberry Pi into a gaming machine. But, while most people will use the default HDMI connection for their display, some might choose SPI. That can severely limit the refresh rate, but the fbcp-ili9341 display driver can push it up to 60 FPS.
SPI displays are popular for microcontroller GUIs, but the nature of the connection means they can be too slow for gaming. They only update one bit per clock cycle of the serial data bus, so for a 320x240x16bpp to run at 60 FPS the clock speed needs to be at least 73.728MHz. Most SPI display controllers operate well under 50MHz, which means you’ll only get 40 FPS at most. The fbcp-ili9341 display driver provides a workaround that can potentially increase that to 60 FPS without any additional hardware.
The library works by only updating the pixels that have actually changed between frames. For a lot of games, that can dramatically improve the frame rate. When you play Quake, for instance, only about 46% of the pixels change between frames, on average. That’s because the UI remains fairly constant, and because the environment doesn’t have much variation. The driver also utilizes techniques like dynamic interlacing to keep the frame rate up. If you want to play 60 FPS games on your Raspberry Pi with an SPI display, you should give this driver a try.