jaames / playdate-reverse-engineering

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
    • Other formats
      • .fnt - Font source file
      • .strings - Strings source file (TODO)
  • Server
  • 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.

Related Projects and Resources

  • pd-usb - JavaScript library for interacting with the Playdate's serial API from a WebUSB-compatible web browser.
  • unluac - Fork of the unluac Lua decompiler, modified to support Playdate-flavoured Lua.
  • lua54 - Fork of Lua that aims to match the custom tweaks that Panic added for Playdate-flavoured Lua.

Special Thanks


2022-2023 James Daniel

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

About

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

License:Creative Commons Zero v1.0 Universal


Languages

Language:Python 100.0%