FPDOOM 1.20241031: DOOM Ports for Button Phones

A new project called fpdoom has been developed, allowing users to run classic doom and other ported games on cheap button phones with the Spreadtrum SC6531 chipset and its variations. Despite the chipset being around ten years old, phones with this chip are still being produced.

The latest release of fpdoom brings a unique feature – support for low-resolution monochrome screens such as 128×64, 96×68, and even 64×48. These screens use 1 bit per pixel, but by quickly flashing pixels, shades of gray can be achieved using a method called “Temporal Dithering”, which is a digital equivalent of Pulse Width Modulation (PWM). The screen update process is controlled by a timer to ensure consistency and uniformity of pixel refresh. Updating the game timer, such as DOOM’s internal limit of 35 frames per second, results in a noisy image.

The release also considers different combinations of screens and controllers, including:

  • 128×64 ST7567A: This driver option supports an increase in the update frequency up to 300 frames per second, making noise barely visible to the eye and undetectable by a smartphone camera. Screens with this resolution have a physical aspect ratio of approximately 7:5, with vertically elongated pixels.
  • 96×68 HX1230: A more basic screen driver that only supports fundamental commands, resulting in a screen that may appear too dark or too light. The update frequency is around 75 frames per second, with noticeable noise.
  • 128×64 ST7565R: This driver does not allow changes to the update frequency, sticking to the standard rate of about 77 frames per second. When hitting the frequency accurately, a black line slowly passes through the screen, while inaccuracies result in constant light noise around the screen.
  • 64×48 SSD1306: An OLED screen with a driver that supports resolutions of up to 128×64 but functions with a 64×48 screen. This screen has a fast response time but produces a very noisy image, especially noticeable on a smartphone camera. The update frequency is just over 150 frames per second.

Additionally, the release includes a demonstration of DOOM running on the ST7567A chip and another on a 64×48 screen. The project is continuously evolving to enable classic games on older and more affordable devices.

/Reports, release notes, official announcements.