1*e15daa8bSchristos 2*e15daa8bSchristos#------------------------------------------------------------------------------ 3*e15daa8bSchristos# $File: playdate,v 1.1 2022/11/04 13:34:48 christos Exp $ 4*e15daa8bSchristos# 5*e15daa8bSchristos# Various native file formats for the Playdate portable video game console. 6*e15daa8bSchristos# 7*e15daa8bSchristos# These are unofficially documented at 8*e15daa8bSchristos# https://github.com/jaames/playdate-reverse-engineering 9*e15daa8bSchristos# 10*e15daa8bSchristos# The SDK is a source for many test files, and can be used to 11*e15daa8bSchristos# create others. https://play.date/dev/ 12*e15daa8bSchristos 13*e15daa8bSchristos 14*e15daa8bSchristos# pdi: static image 15*e15daa8bSchristos0 string Playdate\ IMG Playdate image data 16*e15daa8bSchristos>12 belong&0x80 0x80 (compressed) 17*e15daa8bSchristos>>20 lelong x %d x 18*e15daa8bSchristos>>24 lelong x %d 19*e15daa8bSchristos>12 belong&0x80 0x00 (uncompressed) 20*e15daa8bSchristos>>16 leshort x %d x 21*e15daa8bSchristos>>18 leshort x %d 22*e15daa8bSchristos 23*e15daa8bSchristos# pdt: multiple static images 24*e15daa8bSchristos0 string Playdate\ IMT Playdate image data set 25*e15daa8bSchristos>12 belong&0x80 0x80 (compressed) 26*e15daa8bSchristos>>20 lelong x %d x 27*e15daa8bSchristos>>24 lelong x %d, 28*e15daa8bSchristos>>28 lelong x %d cells 29*e15daa8bSchristos>12 belong&0x80 0x00 (uncompressed) 30*e15daa8bSchristos>>20 lelong x tile grid %d x 31*e15daa8bSchristos>>24 lelong x %d 32*e15daa8bSchristos 33*e15daa8bSchristos# pds: string tables 34*e15daa8bSchristos0 string Playdate\ STR Playdate localization strings 35*e15daa8bSchristos>12 belong&0x80 0x80 (compressed) 36*e15daa8bSchristos>12 belong&0x80 0x00 (uncompressed) 37*e15daa8bSchristos 38*e15daa8bSchristos# pda: audio 39*e15daa8bSchristos0 string Playdate\ AUD Playdate audio file 40*e15daa8bSchristos>12 lelong&0xffffff x %d Hz, 41*e15daa8bSchristos>15 byte 0 unsigned, 8-bit PCM, 1 channel 42*e15daa8bSchristos>15 byte 1 unsigned, 8-bit PCM, 2 channel 43*e15daa8bSchristos>15 byte 2 signed, 16-bit little-endian PCM, 1 channel 44*e15daa8bSchristos>15 byte 3 signed, 16-bit little-endian PCM, 1 channel 45*e15daa8bSchristos>15 byte 4 4-bit ADPCM, 1 channel 46*e15daa8bSchristos>15 byte 5 4-bit ADPCM, 2 channel 47*e15daa8bSchristos 48*e15daa8bSchristos# pda: video 49*e15daa8bSchristos0 string Playdate\ VID Playdate video file 50*e15daa8bSchristos>24 leshort x %d x 51*e15daa8bSchristos>26 leshort x %d, 52*e15daa8bSchristos>16 leshort x %d frames, 53*e15daa8bSchristos>20 lefloat x %.2f FPS 54*e15daa8bSchristos 55*e15daa8bSchristos# pdz: executable package 56*e15daa8bSchristos# Not a lot we can do, as it's a stream of entries with no summary information. 57*e15daa8bSchristos0 string Playdate\ PDZ Playdate executable package 58