Hasty Briefsbeta

Bilingual

Porting Doom to a 20-year-old VoIP phone

a day ago
  • #hardware-hacking
  • #reverse-engineering
  • #doom
  • The author repurposed a Snom 360 VoIP phone from 2005 to run Doom by reverse engineering its firmware and hardware.
  • Initial steps involved upgrading the phone's firmware to the latest available version (V08) and exploring its contents using tools like binwalk.
  • The firmware was found to contain a JFFS2 filesystem, revealing a Linux 2.4.31 OS running on a MIPS chip, which was promising for porting Doom.
  • Key binaries like '1lid' and 'lcs360' were identified as responsible for the phone's audio and web interface functionalities.
  • The author discovered GPL-licensed source code for the phone's components, including the kernel, BusyBox, and a cross-compiler, which significantly aided the project.
  • Custom firmware was built to gain shell access to the phone, involving setting up a TFTP server and flashing the image via a serial connection.
  • Reverse engineering efforts focused on the phone's display and keyboard drivers, utilizing ioctl calls to interact with the hardware.
  • A custom driver was developed to control the phone's display and LEDs, enabling basic graphical output.
  • Doom was ported to the phone using doomgeneric, implementing necessary functions for display output, keyboard input, and timing.
  • The final product successfully runs Doom on the Snom 360, albeit with some limitations like unreadable text and no sound.