github Moonfin-Client/Smart-TV 2.10.0
v2.10.0

3 hours ago

Moonfin v2.10.0 Release Notes github

Moonfin 2.10.0 brings the app to two new kinds of device: Xbox consoles, with the console's own player behind the interface for HEVC, 4K and HDR, and Fire TV sticks running Vega OS. If your server runs the Achievement Badges plugin you now get friends and chat on the TV, Home gets a seasonal row and seasonal effects, games pick up the arcade core picker, controller remapping and shared save states from Moonfin-Core, and low and mid tier sets navigate faster everywhere. A long list of fixes comes with it, including the right audio track on Samsung direct play, trailers on LG, collection rows on Home, and switching users actually refreshing Home.

What's New

Xbox

  • Moonfin runs on Xbox. Xbox One, One S, One X and the Series X and S all get the same app as the TVs, with the controller as the remote: A selects, B goes back, the d-pad and left stick move, the triggers rewind and fast forward, and holding Start opens the game pause menu. For now it installs on a console in Developer Mode through the Xbox Device Portal, until the app reaches the Microsoft Store.
  • Video plays through the console's own player. HEVC, 4K and HDR10 files play as they are on every console, including the Series X and S, whose browser engine refuses HEVC outright. DTS and TrueHD sound, WebM and MPEG-TS files, MPEG-2, MPEG-4 and VC-1 all play without a transcode, Dolby Vision files with an HDR10 base layer play as HDR10, and the console switches the display to HDR10 for an HDR file and back after. The app's controls and subtitles draw over the picture as on any other set. Console Video Player, under Decoding & Rendering, turns it off and goes back to the web player.
  • A device probe in Settings plays a set of test clips through both players, checks HDR and surround sound, and sends a report to the server, so a console's real capabilities are a button away.
  • Trailers play at full quality from YouTube's manifest, with the console fetching the playlists and segments the browser engine keeps from the page.
  • Typing on the keyboard, X deletes the last character and the Menu button finishes.
  • The console draws every app's interface at 1080p and scales it to the TV, so on a 4K set text and posters look a little softer than the TV's own apps. Video isn't affected.

Fire TV

  • Moonfin runs on Fire TV sticks with Vega OS, the Fire TV Stick 4K Select and newer, as a .vpkg installed through the Vega SDK on a stick in Developer Mode, until the app is in the Amazon Appstore. The stick gets its own device profile, play method and key map, the remote's menu key does the long press action, and a second press of Back from Home exits to the launcher.
  • Playback fits the stick. Transcodes come as fMP4 segments so the server can send HEVC or H.264 by its own encoding setting, direct play bitrates are capped per stick, the system media controls work, and backgrounding the app leaves playback for the details page with the stop report still sent. Live TV works on the sticks too.

Friends and Chat

  • Friends and chat from the Achievement Badges plugin. A Friends button in the navigation opens your friends list, requests and privacy settings, and direct and group chats, with banners when a message comes in. Moonbase isn't needed, and Emby servers don't have it.
  • Unlock notifications. A switch on the achievements screen, backed by the plugin's own setting, shows a banner when you unlock a badge.

Home

  • A seasonal Home row appears around the holidays with titles to match, picked by your region, and Lunar New Year and Diwali are in the calendar alongside the rest.
  • Seasonal effects now match the other clients, with Christmas, spring petals, fireflies and Halloween, and a density setting for how much of the screen they fill.
  • A Library Order screen saves the order of your libraries for each server, and Home redraws as soon as you change the order or hide a library.

Details Screen

  • A Sections screen under Settings > Details Screen hides the parts of the details screen you don't want.
  • Seerr details keep refreshing from the request until the title is done, every fifteen seconds while it downloads and every thirty while it waits, and pause while the app is in the background.

Playback

  • Trickplay settings from the other clients. Single, filmstrip and full screen previews, with settings for the size, the distance from the seek bar and whether the preview follows the scrub, and a live preview of them in Settings.
  • Modern card transition speed, with its curve, under the card settings. It defaults to Off and stays instant on low and mid tier sets.
  • The setup wizard asks about playback on its last step, with optional playback language, subtitle mode and default audio track choices.

Live TV

  • A stalled channel recovers. A reconnecting overlay comes up while the stream is brought back, with a Retry card if it can't be, and a replaced stream is only closed once the new one is playing.
  • Channel cards tune the channel. Outside Search, selecting a channel card starts it instead of opening its details.

Search and Browsing

  • Voice search. A microphone button in Search hands the field to the TV's own keyboard, which is where the remote's microphone lives, and what it hears lands in the field like typed text.
  • Sort & Filter gets a Clear button on each section, and a search box on any list with ten or more values.
  • A long press menu on playlist rows with View Details, Delete from Playlist and entries to move the item, and a press on a row plays the playlist from there.

Games

  • Arcade games get the core picker from the other clients on the game details screen, and EmulatorJS loads its cores from wherever the server hosts them.
  • Holding Start and Select on a gamepad for five seconds opens the pause menu, with the hold pill from the other clients, and the pad moves through the menus like the remote does.
  • Controller settings in the pause menu open EmulatorJS's own mapping screen so the remote can remap buttons, and the emulator settings use the value picker from the other clients, with Left and Right no longer wrapping.
  • Save states carry between Moonfin on TV and Moonfin-Core. They're stored under the same key the other clients use, and a save found under the old key is copied across on first read.
  • The pause menu confirms Exit, says so when saving or loading fails, and matches the other clients' icons and layout. Play on the game details screen waits for the save check to answer, with a Retry save check button when it fails.

Performance

  • Low and mid tier sets navigate faster. Home drops the card focus shadow, the border fade and the info band text shadows, the backdrop crossfade gets its own layer, and transitions are off on the elements that cost the most.
  • Settings, the top navigation bar and sidebar, the details action buttons and the on-screen keyboard all respond faster to the remote.

Bug Fixes

Playback

  • Samsung direct play starts on the audio track you chose. AVPlay can start on the first track even when the file flags another as default, so the app now switches to the chosen one, and only when AVPlay isn't already on it.
  • Samsung sets keep direct playing AC3 and E-AC3 whatever the Audio Passthrough setting is, since the TV decodes them itself, and those two passthrough toggles are hidden there.
  • HDR and 4K are detected on more Samsung sets. The app now loads Samsung's webapis script and reads each TV capability on its own, so one failing call can't hide HDR or the panel size, and 4K sets direct play 10-bit HEVC even when HDR isn't detected.
  • Samsung sets older than Tizen 6.5 play from Jellyfin 10.10 servers again. The container condition that broke them is only sent to Jellyfin 10.11 and newer.
  • Trailers play on LG again. Media bar and details trailers try 1080p through LG's own player, fall back to the 360p file when it's refused or never starts, and a TV that keeps failing is remembered so later trailers start right away.
  • Subtitles no longer hold up playback on LG. The player starts and the subtitle menu closes without waiting on the text track download, which on Emby reads the whole file first.
  • Back during a details trailer closes the trailer instead of leaving to Home.
  • Leaving a channel releases the tuner. The live stream id now goes with the stop reports sent on backgrounding and exit, and transcode preferences are kept when a live stream is requested again.

Home

  • Switching users refreshes Home instead of keeping the previous user's rows.
  • Collection rows show only the collection's own items, in its saved Playlist Order, instead of pulling in every episode under a season.
  • Ratings and the rest of Moonbase show on first sign in. A server running the Moonbase plugin is now enabled even when you have no synced profile yet, which everything else was waiting on.
  • External rows are right on Jellyfin. Owned titles no longer go missing, a movie and a show that share a TMDB id are no longer confused, and TMDB TV chart titles open as series rather than movies.
  • Large custom rows validate. Validation waits 45 seconds and reads the server's cache instead of forcing a refresh, so a list the server finishes after a timed-out attempt validates on the next try.
  • The Emby Next Up row fills, and search shows results without waiting on slow people results.
  • Media bar trailers keep their shape and are cropped by the frame instead of squashed in the Aya and Gallery media bars.

Details

  • A movie lists every collection it belongs to, found on servers older than Jellyfin 12 too, and Seerr only adds a franchise's missing movies to a hand made collection when most of it is that franchise.
  • The Play button no longer carries a permanent accent fill.

Remote Control

  • A press that wakes the screensaver stops there instead of also landing on what's behind it.
  • Phone typing stays active when the TV keyboard opens or closes, Search keeps focus after an edit from the phone, delayed navigation no longer overrides a newer command, and the Home search box closes when it should.

Games

  • The emulator no longer leaks memory on every launch, a game that fails to start says so, and PSP games that can't run on a TV are blocked.
  • Continue resumes a game. The save is handed to EmulatorJS at launch so it loads once the game starts.
  • Exit gives up waiting on the save after three seconds, so a slow server can't leave it stuck on the pause menu.
  • The navbar no longer covers the title on the game details screen, and arcade ROMs keep their real zip name.

Translations

  • German Since You Watched rows show the movie name again, and the placeholders that were lost or renamed in Polish, Finnish, French, Romanian and five other locales are fixed.

Installation

  • The webOS Homebrew Channel checksum error is fixed. The manifest carries the hash of the package on the release, and CI uploads its own manifest from the right folder.

Contributors

Huge thanks to everyone who contributed this release:

Translations were updated through Weblate by mikey (Finnish), Kisnov (Catalan), eliastitecnologia (Portuguese (Brazil) and Arabic), Adrian Szyłak (Polish), SCHIZOPHRENE (French), Lică (Romanian), Benedek Dunavölgyi (Hungarian), and rekiznuh1 (German). If you want to help translate Moonfin into your language, check out our Weblate project.

Full Changelog: 2.9.0...2.10.0

What's Changed

  • fix(remote): preserve navigation order and screensaver wake behavior by @wmurphy126 in #478

Full Changelog: 2.9.0...2.10.0

Don't miss a new Smart-TV release

NewReleases is sending notifications on new releases.