Skip to content

Latest commit

 

History

History
451 lines (337 loc) · 21.7 KB

File metadata and controls

451 lines (337 loc) · 21.7 KB

Changelog

This is a changelog for playdate-luacats.

This project is unaffilliated with Panic Inc.

See also: Panic Playdate SDK Changelog

Unreleased

  • Add scraped documentation for playdate.sound.lfo:setOffset() and playdate.sound.lfo:setScale()
  • Remove obsolete playdate.sound.signalvalue:setOffset() and playdate.sound.signalvalue:setScale()

v3.1.0-luacats2 - 2026-07-17

  • Add docs scraped from the ScoreBoard API Docs
  • Fix playdate.graphics.drawPixel(x, y) overload
  • Fix playdate.graphics.setPattern(image, x, y) overload
  • Improved playdate.graphics.sprite.setBackgroundDrawingCallback()
  • Fix for incorrect playdate.network.http:{post,query} signatures leaking through
  • Add parameter to keyboardWillHideCallback(okButtonPressed)

v3.1.0-luacats1 - 2026-07-16

  • Update for PlaydateSDK 3.1.0
  • Add playdate.kLanguageEnglish, playdate.kLanguageJapanese
  • Add playdate.exitToLauncher(), playdate.getLocalizedText(), and playdate.getSystemVolume()
  • Deprecate playdate.graphics.getLocalizedText() in favor of playdate.getLocalizedText()
  • Rename the first playdate.graphics.animation.loop.new() parameter from interval to delay
  • Add optional flip support to playdate.graphics.image:drawFaded()
  • Add pattern phase offsets to playdate.graphics.setPattern(pattern, x, y)
  • Add playdate.graphics.sprite:markDirty
  • Allow playdate.graphics.sprite.setBackgroundDrawingCallback(nil) to remove the background callback
  • Add playdate.network.https.new()
  • Add playdate.network.tcp:getSentBytesPending()
  • Add bitcrusher depth, downsampling, exponential mode, and modulation controls
  • Add playdate.sound.channel:getOutputAsSource() and playdate.sound.fileplayer:setPaused()
  • Add distinct single-note and note-range overloads for playdate.sound.instrument:addVoice()
  • Add playdate.sound.instrument:isPlaying() and stop(), and support scheduled allNotesOff()
  • Add playdate.sound.lfo:setRandomSeed()
  • Add microphone permission support for playdate.sound.micinput.requestAccess() and recordToSample()
  • Add scheduled stopping to playdate.sound.sequence:stop()

v3.0.3-luacats1 - 2026-02-27

  • Updated for PlaydateSDK 3.0.3 (no changes)
  • Support unsetting playdate.sound.sampleplayer:setFinishCallback callback
  • Fixed playdate.restart(arg); takes string not string[]
  • Add secondary return acceleratedChange to playdate.getCrankChange (thanks SquidGodDev).
  • Add return types for playdate.graphics.drawLocalizedTextInRect and playdate.graphics.drawTextInRect (thanks Franchovy)
  • Add optional image for playdate.setMenuImage(image, xOffset) to clear the menu image (thanks Franchovy)
  • Add potential _Track return from playdate.sound.sequence:addTrack (thanks Franchovy)

v3.0.2-luacats2 - 2026-01-04

v3.0.2-luacats1 - 2025-12-12

  • Update for PlaydateSDK v3.0.2
  • Fixed playdate.keyboard.textChangedCallback() (removed ok parameter)
  • Fixed playdate.getServerTime(time, error) (change time to time?)
  • Added :setOffset and :setScale to playdate.sound.controlsignal, playdate.sound.lfo and playdate.sound.signalvalue
  • Fixed return for addWallSprites (thanks Franchovy)

v3.0.1-luacats1 - 2025-11-06

  • Update for PlaydateSDK v3.0.1

v3.0.0-luacats1 - 2025-10-08

  • Update for PlaydateSDK v3.0.0

v2.7.6-luacats1 - 2025-08-17

  • Update for PlaydateSDK v2.7.5
  • Update for PlaydateSDK v2.7.6
  • First parameter toplaydate.graphics.animation.loop.new renamed from delay to interval

v2.7.4-luacats1 - 2025-06-14

  • Update for PlaydateSDK v2.7.4
  • Update for PlaydateSDK v2.7.3-beta2.
  • Update docstring noting argv quoting / space splitting

[v2.7.1.luacats2] - 2025-04-27

  • Fix playdate.sound.twopolefilter:setResonance(r) (thanks @niccowang)

v2.7.1-luacats1 - 2025-04-27

  • Add --deprecated to playdate.graphics.clearStencilImage
  • Remove duplicated playdate.sound.track
  • Add playdate.network.http:query (missing from docs)
  • Fixed playdate.graphics.sprite:setStencilPattern

v2.7.0-luacats6 - 2025-04-13

  • No changes in PlaydateSDK 2.7.1 or 2.7.0
  • Update for PlaydateSDK 2.7.0-beta11
  • Add workspace.preloadFileSize value of 1000 to suggested .luarc.json. The default is 500KB and we now exceed that (v2.7.0-luacats1 was 500024 bytes).

v2.7.0-luacats5 - 2025-04-01

  • Fix various audio rate parameter to use float instead of integer
  • Fix playdate.display.setFlipped to use boolean instead of integer
  • Remove _Menu (it never existed) and fix playdate.menu:removeMenuItem
  • Add #playdate.graphics.imagetable (playdate.graphics.imagetable:__len)

Thanks @ncocchiaro for notpeter/playdate-docdef#9!

v2.7.0-luacats4 - 2025-02-22

  • Update for PlaydateSDK 2.7.0-beta8
  • Add playdate.{mirrorStarted,mirrorEnded}
  • Add playdate.getServerTime
  • Add playdate.graphics.video:getCurrentFrame
  • Add playdate.network.setEnabled

v2.7.0-luacats3 - 2025-02-24

  • Update for PlaydateSDK 2.7.0-beta5
  • Add playdate.network.http:getResponseHeaders()
  • playdate.graphics.animation.loop.new updated

v2.7.0-luacats2 - 2025-02-24

  • Update for PlaydateSDK 2.7.0-beta4
  • playdate.network.{tcp,http}:setReadTimeout uses seconds, not ms
  • Remove playdate.server.* - Was never documented and no longer present in SDK

v2.7.0-luacats1 - 2025-02-10

  • Update for Playdate 2.7.0-beta2
  • Add docs: playdate.network.http
  • Add docs: playdate.network.tcp

v2.6.1-luacats1 - 2024-11-18

  • Add docs: playdate.file.seek
  • Add docs: playdate.graphics.drawPolygon(p)
  • Add docs: playdate.graphics.fillPolygon(p)
  • Remove: playdate.graphics.kWrapTruncateEnd

v2.6.0-luacats2 - 2024-10-27

  • Refinements for PlaydateSDK 2.6.0-beta2
  • Remove kWrapTruncateEnd (not present)
  • Add whence to playdate.file.file:seek(offset, whence)
  • Correct high bits in new constants (playdate.graphics.kAlign* and playdate.graphics.kWrap*)

v2.6.0-luacats1 - 2024-10-10

  • Update for PlaydateSDK 2.6.0-beta2
  • Add playdate.graphics.kAlignLeft, playdate.graphics.kAlignCenter, playdate.graphics.kAlignRight
  • Add playdate.sound.signal:getValue()
  • Add playdate.sound.synth:clearEnvelope()
  • Add playdate.sound.channel:getDryLevelSignal()
  • Add playdate.sound.channel:getWetLevelSignal()
  • Add playdate.sound.signalvalue (undocumented)
  • Document playdate.sound.synth.new sustainStart/sustainEnd introduced in v2.2.0.
  • Add playdate.file.kSeekSet, playdate.file.kSeekFromCurrent, playdate.file.kSeekFromEnd (undocumented)
  • Add playdate.server.createMovie (undocumented)

v2.5.0-luacats1 - 2024-05-16

  • No changes between PlaydateSDK 2.5.0-beta2 and Playdate SDK 2.5.0 final
  • Update for Playdate 2.5.0-beta2
  • Add playdate.restart(arg) to restart the game with an optional argv string[].
  • Add playdate.sound.sample.new(seconds, format)
  • Fix: table.create parameters are optional and will default to 0.

v2.4.2-luacats1 - 2024-05-02

  • No SDK API changes in 2.4.2.
  • Add return types (nil) to callbacks in the _InputHandler table.
  • Remove incorrect leading _ on AButton/BButton on _InputHandler table.

v2.4.1-luacats2 - 2024-04-30

  • Add instructions for NeoVim, Sublime and Zed (in addition to VSCode)
  • Switch suggested config from .vscode/settings.json to .luarc.json
  • Suppress LuaLS suggesting os, package and io which are absent on the playdate. (thanks @thacuber2a03)
  • Make URLs markdown links so they are clickable.

v2.4.1-luacats1 - 2024-03-08

  • Update for PlaydateSDK 2.4.1 (no changes)
  • Remove HTML-like placeholders from markdown output. E.g. /Data/<bundleid> becomes /Data/{bundleid}

v2.4.0-luacats3 - 2024-03-07

  • Add .editorconfig file.
  • Switch from error and errorString to err to avoid conflict with Lua's error function.
  • Cleanup markdown in this changelog (escape certain characters, hanging indent, etc.)

v2.4.0-luacats2 - 2024-03-02

v2.4.0-luacats1 - 2024-02-28

  • Update for PlaydateSDK v2.4.0-beta2
  • Various modulators (setVolumeMod, setPanMod, etc) may be called with nil to reset/remove the signal modulator.
  • easingAmplitude / easingPeriod option on _Animator
  • New keys for playdate.getStats()

v2.3.1-luacats1 - 2024-02-16

  • Update for Playdate SDK v2.3.1
  • Add missing return type for playdate.ui.crankIndicator:resetAnimation().

v2.3.0-luacats1 - 2024-02-05

v2.2.0-luacats1 - 2024-01-11

  • Update for Playdate SDK v2.2.0
  • Fix types for playdate.sound.synth.new sustainStart/sustainEnd bee6e02
  • Fix anchors for doc links
  • sampleplayer:playAt() improvements

v2.1.1-luacats7 - 2024-01-11

  • _FrameTimer and _Timer enhancements.
  • non-integer image scale and rotation (PR#7)
  • non-integer sprite:setCenter (PR#7)

Thanks @ncocchiaro

v2.1.1-luacats6 - 2023-12-29

  • More type fixes.

Thanks ncocchiaro forPR #5

v2.1.1-luacats5 - 2023-12-10

  • Improved Changelog
  • Fixed missing playdate.math.logic
  • Fixed instrument:addVoice param from _Vector2D to _Synth.

Thanks ncocchiaro for PR #3.

Generated with notpeter/playdate-docdef#2ba00c6.

v2.1.1-luacats4 - 2023-11-12

  • Added CHANGELOG.md.
  • Fixed playdate.graphics.sprite.setBackgroundDrawingCallback function return type. Returns the backgroundSprite not nil. (First documented in 2.1.1, behavior was same in older SDKs)
  • Fixed less than an greater than being incorrectly escaped when rendered as markdown.

Generated with notpeter/playdate-docdef#c9ea3bc

v2.1.1-luacats3 - 2023-11-12

  • Added playdate.math.logic.{nand,nor,nxor,xor} (undocumented, requires import "CoreLibs/math")
  • Added playdate.graphics.generateQRCodeSync (undocumented)
  • Fixed playdate.graphics.generateQRCode callback argument types (nilable)
  • Fixed playdate.graphics.imagetable return types (nilable)

v2.1.1-luacats2 - 2023-11-11

  • Fixed playdate.graphics.sprite:setBackgroundDrawingCallback description (reverted changes from PlaydateSDK v2.1.0-beta which weren't in PlaydateSDK v2.1.0 final).
  • Fixed playdate.sound.envelope:setRelease description (changed in PlaydateSDK v2.1.1).
  • Fixed playdate.graphics.imagetable:__index function return type. LuaLS does not correctly use this, use playdate.graphics.imagetable:getImage instead.
  • Added playdate.graphics.setPattern(image, x, y) Present in sdk docs but is incorrectly formatted.

v2.1.1-luacats1 - 2023-11-02

v2.1.0-luacats8 - 2023-10-28

Switched from Playdate SDK v2.1.0-beta1 to v2.1.0 (final).

  • Added README.md section on how to type Object.lua Playdate classes.
  • Fixed README.md playdate.graphics.image example
  • Added playdate.scoreboards.*
    • playdate.scoreboards.addScore
    • playdate.scoreboards.getPersonalBest
    • playdate.scoreboards.getScoreboards
    • playdate.scoreboards.getScores
  • Added playdate.server.* (undocumented)
    • playdate.server.getAvatar
    • playdate.server.setAvatar
    • playdate.server.uploadFile
  • Added playdate.simulator.openURL (undocumented)

v2.1.0-luacats7 - 2023-10-21

  • Fixed Object.lua (Panic Playdate Classes) things
  • Added Object to Global namespace
  • Fixed class()
  • Added _Object

v2.1.0-luacats6 - 2023-10-18

  • Added playdate.geometry.kLineCapStyle* constants:
  • Fixed playdate.sound.twopolefilter (accepts string)
  • Added playdate.sound.kFilter* constants

v2.1.0-luacats5 - 2023-10-14

  • Fixed class().extends() - alterntaively accepts string of varname in global namespace.
  • Fixed playdate.buttonJustPressed (alternatively accepts string)
  • Fixed playdate.buttonIsReleased (alternatively accepts string)
  • Fixed playdate.buttonJustReleased (alternatively accepts string)
  • Updated Suggested .vscode/settings.json in README.md

v2.1.0-luacats4 - 2023-10-10

  • Fixed playdate.graphics.generateQRCode function return type (returns playdate.timer not nil)

v2.1.0-luacats3 - 2023-10-05

  • Added MIT License option.
  • Added PlaydateSDK license text.
  • Updated README.md to reflect MIT license option.
  • Updated README.md image alttexts
  • Added README.md update instructions
  • Added _SystemStats for playdate.getStats()
  • Fixed playdate.datastore.write (pretty is nilable)
  • Added playdate.graphics.generateQRCode callback typing.
  • Fixed playdate.graphics.sprite.setBackgroundDrawingCallback (callback is nilable)
  • Added playdate.ui.crankIndicator:getBounds xOffset/yOffset paramters (Undocumented, new in PlaydateSDK 2.1.0-beta1)
  • Added playdate.graphics.drawLine (second form that accepts lineSegment).

v2.1.0-luacats2 - 2023-09-29

  • Fixed playdate.graphics.setStencilPattern (docs have copy pasta error)
  • Fixed playdate.graphics.sprite:setStencilPattern (docs have copy pasta error)
  • Added class
  • Added playdate.ui.crankIndicator:start (deprecated in 2.1.0-beta1)
  • Added playdate.ui.crankIndicator:update (deprecated in 2.1.0-beta1)

v2.1.0-luacats1 - 2023-09-29

First public release. Run against v2.1.0-beta1 SDK.

  • Added missing types for hundreds of functions. Nearly no untyped (any) remaining.
  • Changed single value function returns to not include named parameters (still named for multi value returns).
  • Added 100% coverage on return types (including explicit return nil)
  • Added inline examples from docs (e.g. playdate.getCrankChange)
  • Added support for translating HTML to Markdown in function descriptions. Preserve *italic*, backtick code fencing.
  • Added paratheses around types for arguments which accept multiple types.
  • Changed class types so we can differentiate between class variables/class functions and instance properties/instance functions. So Playdate Images are now of type _Image rather than of type playdate.graphics.image.
  • Renamed existing duck types to have leading underscore (e.g. _ModTime, _PowerStatus).
  • Added new synthetic types (e.g. _Image, _Sprite, _File) with a parent of their Playdate type names (e.g. playdate.graphics.image, etc).
  • Updated README.md to document Synthetic types.
  • Added playdate.graphics.font.kDitherType* constants
  • Added playdate.graphics.sprite.kCollisionType* constants
  • Changed many #anchor links (to match changes to PlaydateSDK docs)
  • Changed easingFunction arguments type to be less specific (now just function)
  • Remove playdate.frameTimer.timeLeft (my error)
  • Added playdate.frameTimer.frame
  • Fixed playdate.frameTimer callback stuff:
  • Fixed argument name collisions (string to str)
  • Added playdate.sound.lfo:setStartPhase (new in 2.1.0-beta1)
  • Added playdate.sound.synth:setWavetable (new in 2.1.0-beta1)
  • Added playdate.ui.crankIndicator:draw (new in 2.1.0-beta1; xOffset/yOffset undocumented)
  • Added playdate.ui.crankIndicator:getBounds (new in 2.1.0-beta1)
  • Added .luarc.json

v2.0.3-luacats1 - 2023-09-02

Unreleased.

Updated SDK from v2.0.1 to v2.0.3 but docs were unchanged.

No changes from v2.0.1-luacats1

v2.0.1-luacats1 - 2023-09-02

Unreleased.

Initial LuaCATS types for PlaydateSDK.

Version tags explained

We build against the latest version of the PlaydateSDK and this corresponds to the version in the tag. We then add a suffix (starting with -luacats1) and for each iterative improvement of the LuaCATS definitions for that SDK release we increment (e.g. -luacats2, -luacats3, etc) and reset back to -luacats1 whenever Panic makes a new PlaydateSDK release.