Skip to content

2.5.1

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Aug 23:31
· 5 commits to main since this release

Moonfin 2.5.1 Release Notes github

A follow-up to 2.5.0 with a few real additions on top of the fixes. Your server admin can now send you messages that show up in the app instead of a dialog blocking the screen, scrubbing got a proper filmstrip with its own settings and now works on Emby too, retro games gained multi-controller play with a controller test panel, and the Seerr requests screen became a poster grid with live download progress. On the fix side, the Dolby Vision transcode on HDR10 Android TVs is finally gone, the websocket reconnects after a server restart, and artwork looks noticeably sharper.

Features

Messages From Your Server Admin

  • Admin messages now live in a messages window rather than a dialog that blocked the app until you dismissed it. Messages come from Moonbase, keep the order your admin set, and support markdown.
  • An unread badge on the navigation, with a Mark all as read action. On mobile it's a real badge on the tab rather than the tab lighting up as though you were already in it.
  • The messages button is off by default and can be turned on under navigation settings.
  • Links inside a message are held to web addresses before they reach the system launcher.

Scrubbing and Trickplay

  • A filmstrip mode. Trickplay previews can show a single thumbnail as before, a filmstrip of frames either side of where you are, or full screen.
  • Preview size, distance from the seekbar, and whether the preview follows your scrub position are all configurable, with a live preview in settings you can drag to see what you're choosing.
  • Frames are prefetched so scrubbing stops waiting on the network, though the full sheet prefetch holds off until you actually scrub or hover.
  • Trickplay works on Emby servers, using the preview images the server already generates.
  • Apple TV got the same modes, sizing, and pause-then-play scrub session as the other platforms.

Retro Games

  • Multi-controller play. Several controllers can join one game, with player ports assigned per pad and held across a disconnect and reconnect.
  • Analog sticks and triggers work during native gameplay on Android and desktop, and an infrared or TV remote can play too instead of being blocked while a real controller is expected.
  • A controller test panel in the mapping screen, showing live stick positions and button presses so you can see what the app is actually receiving before binding anything.
  • Mapping rows name the key they use, bindings are one to one, and menus always fall back to the default layout so a remapped pad can't lock you out of the pause menu.

Seerr

  • Requests show as a poster grid on desktop and TV instead of a list.
  • A download progress bar that shows how much of a request has come down and how much is left, in real byte counts, with server errors reported rather than swallowed.
  • Media type badges are localized and share one widget, and request and issue cards take a click cursor on desktop and web.

Subtitles

  • Remote subtitle results say what they actually are, with SDH, AI translated, machine translated, and frame rate shown as badges under each row rather than crammed into the name.
  • Searching and downloading say something while they work, instead of leaving you looking at a still screen.

Elsewhere

  • Play and Resume are on the item long press menu, so you can start something without opening it first.
  • Personal ratings write correctly to Emby servers, which had no working path before.
  • A gamepad navigation switch, off by default, that lets a connected controller move focus and select items outside of games.
  • Home rows reorder without the long press delay on desktop, where a click and drag is unambiguous.
  • The theme accent color is used where cyan had been hardcoded, including the Next Up stroke on season cards.

Bug Fixes

Playback

  • Dolby Vision Profile 8.1 no longer transcodes on HDR10 Android TVs. The device profile was corrected in 2.5.0, but the detail screen was still sending any Dolby Vision stream down the fallback path. A Profile 8.1 base layer is plain HDR10, so on a device that decodes and displays HDR10 there is nothing to fall back from.
  • Mid-playback buffering stalls are logged, with Media3's own warnings carried into the diagnostic report and progress posts stopped while stalled, so the freeze people hit on long 4K Dolby Vision playback can be diagnosed from a report.
  • The trickplay frame check stays off the scrub path, so scrubbing no longer stutters on it.
  • Playback starts on a fresh engine when the Android activity would otherwise inherit a headless one left behind.
  • Subtitle settings for HDR are reachable on Android TV, where they had gone missing.

Connections

  • The websocket reconnects after a server restart. A connect attempt that stalled rather than failing ended the socket for good, so the reconnect added in 2.5.0 never got the chance to fire.
  • A busy server no longer reads as a connection timeout. Opening a library or a detail screen while the server was working could surface a timeout error for a request that was fine.
  • Fewer connections are opened at once, and the client stops overwriting the server profile with values it was only echoing back.
  • Raw error pages are kept out of the log rather than filling it.

Interface

  • Escape closes the dialog on top instead of the page behind it, which had been exiting playback and everything else.
  • The admin back button stays put. It now comes from the navigator rather than a list of routes that had to be kept in step.
  • The games library has a back button on web.
  • The login screen's user arrows have their own room in the row, so the clickable area lines up with what's drawn.
  • The shuffle content type picker reacts to its toggle.
  • The tvOS results sheet no longer races the alert it replaces.
  • Posters and artwork are sharper, and Moonfin asks servers for smaller files to get there rather than larger ones.

Retro Games

  • EmulatorJS pause, save, and settings work on web, including across the handoff between the app's controls and the player's own.
  • A raw ROM delivered under a .zip name still plays. Archive handling is decided on the file's signature now rather than its extension.
  • Held buttons are released before a game resumes, so dismissing the pause menu can't press something in the game.
  • Long game detail screens scroll back to the top, and Play or Continue takes focus when one opens.
  • The game card highlight only shows for the input actually in use.
  • Unhelpful internal errors are logged rather than shown to you.

Apple TV

  • Infrared remotes work again. Arrow presses from an IR remote were being caught by the Siri Remote gate.
  • The controller pad touch report is cleared when the app backgrounds or a controller drops.

Contributors

Huge thanks to everyone who contributed this release:

Translations were updated through Weblate by managemygroup, SCHIZOPHRENE (French), Kisnov (Catalan and Spanish), oskarkasprzyk (Polish), idezentas (Turkish), finneus and therealresonix (German), DrPleb (Italian), damecon (Korean), mikey and Vesa-Matti Salminen (Finnish), wabisabi926 (Simplified Chinese), Sergio Suarez (Mexican Spanish), and everyone who translated anonymously. If you want to help translate Moonfin into your language, check out our Weblate project.