Skip to content

Releases: avncharlie/spotify3ds

1.5.1

Choose a tag to compare

@github-actions github-actions released this 27 Aug 13:31

What changed

  • Spotify rotated its certificate on accounts.spotify.com. Added the root certificate this host now chains too (Starfield Root Certificate Authority - G2) so we can connect to it.
  • The Spotify3DS Setup app now displays more information when an error happens

Full Changelog: v1.5.0...1.5.1

1.5.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 09:07

What changed

  • Added Spotify3DS Setup, a desktop app for Windows, Mac and Linux to streamline setting up Spotify3DS.
  • The setup app displays a credential QR code, removing the need to create and creds.cfg to the SD card to get Spotify3DS working. You can still use the old bootstrap_auth.py to do this manually if you would like.

Full Changelog: 1.4.0...v1.5.0

1.4.0

Choose a tag to compare

@avncharlie avncharlie released this 19 Aug 02:25

What changed

  • Add synchronized lyrics using LRCLIB
  • Add searching across library and within individual playlists and album. Cache searches (validated against Spotify's snapshot_id) and item count, and rebuilt automatically when either says the playlist changed)
  • Add recent searches: hold the search icon for a panel of the last six queries, tap one to re-run it
  • Add hold-to-seek on the D-pad and buttons: tap to skip a track, hold to seek ten seconds and keep going.
  • Bunch of cosmetic changes, improvements, bug fixes, UI improvements.

Full Changelog: 1.3.1...1.4.0

1.3.1

Choose a tag to compare

@avncharlie avncharlie released this 13 Aug 23:55

What changed

  • Replace the catch-all "Auth failed / Check system date/time" screen with a specific cause and remedy for every startup failure, so a dead network, a bad client_id, a rate limit or a Spotify outage no longer send you to a clock that was already correct (#2).
  • Stop telling users to edit their credentials when Spotify returns a 429 or a 5xx — those now report a rate limit and a service outage respectively.
  • Classify TLS handshake failures separately from certificate rejections, naming the layer that actually failed instead of blaming the console clock.
  • Show the raw underlying error beneath the hint, so a bug report can name the real failure when the suggested remedy turns out to be the wrong guess.
  • Wrap error text across the full screen instead of ellipsising it, which previously cut messages to "Spotify rejected the l.." and hid the actionable half of the advice.

Full Changelog: 1.3.0...1.3.1

1.3.0

Choose a tag to compare

@avncharlie avncharlie released this 11 Aug 12:51

What changed

  • Add global Spotify Connect volume control with L/R in 5% steps, including press-and-hold adjustment and coalesced device-targeted commands.
  • Add a centered fading volume overlay with curved speaker waves, a zero-volume mute icon, ten level bars, and device-specific guidance when remote volume is unavailable.
  • Move Library section jumps and Tracks pagination to ZL/ZR, while preserving touch and D-pad boundary paging on original 3DS/2DS models.
  • Handle Spotify’s six-month refresh-token expiration with actionable reauthorization guidance.
  • Add a verified developer volume utility and safer refresh-token rotation handling.
  • Add the volume overlay screenshot, prominent volume controls, and QR-code update instructions to the README.
  • Make the smoke search fixture wait for album loading instead of failing on network timing.

Full Changelog: 1.2.3...1.3.0

1.2.3

Choose a tag to compare

@avncharlie avncharlie released this 07 Aug 03:18

What changed

  • Raise the incrementally allocated HTTP response ceiling from 256 KiB to 8 MiB so detailed covers such as Currents and Cherry Bomb load correctly.
  • Add a regression test that accepts a complete 6 MiB response while preserving truncation rejection and retry behavior.
  • Move text-width measurement and ellipsis fitting into a separate scratch arena so long track names cannot exhaust the frame text buffer.
  • Make ellipsis truncation UTF-8-safe.
  • Add smoke-test monitoring for frame text-buffer usage; verified peak usage is 264 of 4,096 glyphs.

Full Changelog: 1.2.2...1.2.3

1.2.2

Choose a tag to compare

@avncharlie avncharlie released this 07 Aug 03:00

What changed

  • Reject and retry truncated fixed-length and chunked HTTP responses instead of decoding partial artwork.
  • Reject JPEG recovery warnings that would otherwise fill missing scanlines with gray.
  • Invalidate version-3 artwork cache entries so damaged covers are fetched again.
  • Distribute artwork by the variable hash suffix across all 256 cache shards instead of filling only the shared ab prefix shard.
  • Add deterministic host tests for all 256 shard mappings, the 52,411-entry quota, and complete/truncated HTTP framing.

After updating, you may delete /spotify/artcache once to reclaim old version-3 entries. /spotify/trackcache is also obsolete and safe to delete.

Full Changelog: 1.2.1...1.2.2

1.2.1

Choose a tag to compare

@avncharlie avncharlie released this 06 Aug 02:54

What changed

  • Pressing A on a selected track, playlist, or album now starts it, then toggles pause/resume on subsequent presses.
  • Added an optimistic selected-item target so a fast second A pauses correctly before Spotify finishes polling.
  • Added Player, Library, and Tracks screenshots to the README.

Full Changelog: 1.2.0...1.2.1

1.2.0

Choose a tag to compare

@avncharlie avncharlie released this 06 Aug 00:57

What changed

  • Made the 5 GiB artwork cache initialize without scanning the SD card.
  • Pinned the current collection to the Player shelf with a smoother playback equalizer.
  • Added shelf tap-to-open, hold-to-play, and collection playback from Tracks.
  • Added permanent per-row play/pause controls beside Library chevrons and track queue actions.
  • Made Tracks return to Player or Library based on where it was opened.

Full Changelog: 1.1.1...1.2.0

1.1.1

Choose a tag to compare

@avncharlie avncharlie released this 04 Aug 15:18
ui: tighten library find button