playdate-reverse-engineering icon indicating copy to clipboard operation
playdate-reverse-engineering copied to clipboard

Panic Playdate reverse-engineering notes/tools - covers file formats, server API and USB commands

Unofficial Playdate reverse-engineering notes/tools - covers file formats, server API and USB serial commands

⚠️ This documentation is unofficial and is not affiliated with Panic. All of the content herein was gleaned from reverse-engineering Playdate tools and game files, and as such there may be mistakes or missing information.

Documentation

  • File Formats
    • Playdate game formats
      • .pdz - Executable file container
      • .pda - Audio file
      • .pdi - Image file
      • .pdt - Imagetable file
      • .pdv - Video file
      • .pds - Strings file
      • .pft - Font file (TODO)
    • Other formats
      • .fnt - Font source file
      • .strings - Strings source file (TODO)
  • Server
    • Playdate API - Main Playdate server API
  • Misc
    • USB - Playdate USB serial interface

Tools

  • pdz.py - Unpacks all files from a .pdz file container
  • pdex2elf.py - Converts a pdex.bin to an ELF file that can be analysed in a decompilation tool such as Ghidra
  • usbeval.py - Uses the Playdate's USB eval command to evaluate a Lua script over USB. Has access to the Lua runtime of the currently loaded game, except for system apps.

Special Thanks


2022 James Daniel

Playdate is © Panic Inc. - this project isn't affiliated with or endorsed by them in any way.