Moonfin 2.8.0 Release Notes 
Moonfin 2.8.0 is a big one, with about 750 commits since 2.7.0 and a whole UI refresh.
Moonfin can now sign in to Plex. On desktop, a new mini player keeps your video going while you browse. Every player can show two subtitles at once, and servers that require a client certificate work now. The music player, the EPUB reader and the admin panel were all rebuilt, and the admin panel works on Emby too. Libraries come in new styles, Live TV can rewind, Apple devices play Dolby Vision Profile 7 FEL, and game libraries can link a RomM account.
There are plenty of fixes too. The server no longer re-encodes 4K HDR just because the audio needs converting. Bitstreamed audio survives a refresh rate switch on Android TV, and artwork keeps loading after a few missing images.
Important
Moonfin 2.8.0 needs iOS or iPadOS 18, tvOS 18 or macOS 15 Sequoia. Devices on iOS 16 or 17, tvOS 17 or macOS 14 Sonoma can't install it and will stay on 2.7.0.
Note
Update the server plugin to v2.5.0 too. It syncs most of the new settings between your devices, like library styles, keyboard style, backdrops, ratings and the new subtitle preferences. Anything marked (Moonbase) below needs it, along with the features whose bullets mention the plugin.
Features
Plex
- Sign in with Plex. Choose Sign in with Plex in Add Server. Then enter the four-character code at plex.tv/link, scan the QR code on TV or open the page right from your phone or desktop. Your Plex email or username and password work too, two-step verification included. Typing a Plex server's address, or picking one found on your network, also takes you to Plex sign-in.
- Plex Home users. Your Plex Home members show up on the server's user screen, and each one signs in with their own access to the server. Members with a PIN are checked against plex.tv.
- The best address, every time. Each time Moonfin starts, it tries every address your server lists at once, local first and relays last. A relay picked at sign-in doesn't stick, so the connection follows you between home and away. If your router blocks plex.direct names, Moonfin falls back to the plain local address.
- Browsing. Home has Continue Watching, Next Up, Latest and Recently Released rows, and libraries have filters. Details pages show HDR, Dolby Vision and frame rate. You can search, browse people, genres and studios, and create and edit collections and playlists.
- Playback. Anything the device can decode plays directly. Everything else goes through Plex's HLS transcoder, with the same device limits Moonfin sends to Jellyfin and Emby. Every audio and subtitle format plays, resume points and watched state sync, and if Plex refuses a stream you'll see its reason on screen. Skip intro and credits, chapter images, seek bar previews, multi-part movies, trailers and extras, series theme songs and Cinema Mode's trailers and pre-roll all come from Plex.
- Music. Artist and album pages are in the right order, and lyrics come from .lrc files and LyricFind. Instant Mix uses Plex's sonic analysis when your server has it, and matching genres when it doesn't.
- Live TV and DVR. The guide and playback cover your server's tuners and Plex's free channels. You can also set one-off and series recordings on your own tuners.
- Downloads come in original quality with subtitles as separate files, and anything you watch offline syncs back to Plex.
- It stays in step with your other Plex apps. When you pause or finish something on another Plex device, resume points, watched marks and unwatched counts update here too.
- And the rest. You also get subtitle search through Plex's OpenSubtitles, Auto quality, and Hide from Continue Watching, which keeps your resume point. Favorites are saved as Plex's loved rating. Server owners get Refresh, Identify and Change artwork, plus Delete if the server allows deleting.
- Plex doesn't get anything that needs the Moonbase plugin, like Settings Sync, Seerr and custom rows. The admin panel and Watch Together aren't available on Plex either.
Desktop Mini Player
- Keep watching while you browse. On macOS, Windows and Linux, a new Minimize player button sits in the player's top bar. It shrinks the video into a bar along the bottom of the app. Click the thumbnail to go back to the full player right where you left off.
- The bar keeps the player's controls. You get a seek bar with trickplay previews on hover, plus previous, seek back, play and pause, seek forward, next and stop. Volume, SyncPlay, intro and credits skipping, and the audio and subtitle pickers with their delays and subtitle downloads are all there too. The title opens the movie, or the series and episode pages.
- HDR stays HDR on Windows. The native HDR window moves behind the thumbnail, so your display stays in HDR mode.
- Autoplay and intro skipping keep working while the player is minimized, and the screensaver stays off. Opening a trailer, photo, book or game pauses the video, and the bar comes back when you're done. Signing out or switching users stops it.
Player
- Browse episodes without leaving the player. The new Episodes button opens season tabs scrolled to the episode you're on, with progress bars and watched checks. Pick one and it plays, or resumes if you'd started it. The rest of its season is queued and your audio and subtitle picks carry over. It shows for series episodes everywhere, Apple TV's own player included. You can hide or move it under Settings > Playback > Player > Player Buttons.
- Line up audio and subtitles without losing the picture. The track pickers now end with an Audio Delay or Subtitle Delay row that shows the current value. Select it and a slim bar opens at the bottom of the screen with minus, Reset and plus in 100 ms steps, so the picture stays in view while you adjust. Subtitle Delay works on web too.
- Hold for 2x speed. On phones and tablets, press and hold the picture while the controls are hidden to play at double speed. Let go to return to normal speed. It works on Android and in both the iPhone and iPad players, but not in Live TV or SyncPlay.
- Click to play or pause on desktop. A click on the video plays or pauses it. A double click toggles fullscreen and cancels out the first click, so playback stays the way it was.
- Keyboard shortcuts. S or Enter skips an intro or credits while the skip button is up. Shift+N and Shift+P jump to the next and previous item. Holding a key no longer repeats them, and the shortcut sheet under ? or F1 lists them all.
- Hide things one layer at a time on desktop. Backspace, Delete or a right-click on the video hides the Next Up card and skip prompts first, then open panels, then the controls. Escape still leaves fullscreen.
- Docked play buttons. Play, skip and seek can move into the bottom bar on phones, tablets and desktop. Find it under Settings > Playback > Player > Player Buttons > Play buttons.
- A light dim behind the controls keeps them readable over bright scenes in the video, Live TV and Apple TV players.
- Playback Information was rebuilt with Playback, Video, Audio, Subtitles, File and Technical sections. It explains the play method in a plain sentence. Transcode reasons become readable lines, like a codec the device can't play or a bitrate over your streaming limit. It also shows what the server converted from, and the channel and program for Live TV.
- Convert just the audio. Pick audio codecs like DTS or Opus, and the server converts only those while the video plays untouched. It helps when a TV or receiver struggles with one format. Music still direct plays. It's under Settings > Playback > Audio > Transcode Audio Codecs, everywhere but web.
- A fix for black screens on Dolby Vision with HDR10+. Some Fire TV 4K and 4K Max models play these files with sound but no picture. A new switch under Settings > Playback > Quality & Decoding > Dolby Vision drops the Dolby Vision layer so the HDR10+ base plays. Turn it on if your Fire TV does this.
- A skip button for pre-rolls. With Cinema Mode on, Cinema Mode Skip Button shows a Skip button for 10 seconds on any pre-roll longer than that. Pressing it jumps to the next pre-roll or the movie. It's off by default, so pre-rolls still play the way they always have. Find it under Settings > Playback > Skipping & Autoplay.
- Keep your thumb off the indicators. Invert Gesture Indicators, under Settings > Playback > Player, draws the brightness and volume indicators on the opposite side from your swipe.
- Play from Server. Downloaded videos get Play from Server in their long-press menu and in Advanced Playback. Use it to stream the server's copy when you want better quality than the download.
- The X on Next Up keeps the episode playing on phones, tablets, desktop and web, so you can sit through the credits and anything after them. Before, it left the player. On TV, Back already worked this way.
- The unlock prompt for a locked player moved to the top corner, out of the middle of the picture.
Apple
- Choose your video player. Settings > Playback > Player > Video player switches between Standard, with Moonfin's controls, and Native Apple style, the system player. iPhone and iPad can now use the native player for video and Live TV. Apple TV keeps native as the default and can switch to Standard. The native player doesn't have casting, audio delay or the PiP button, so Moonfin switches back to the standard player while you're casting.
- Live TV in the native Apple player. Opening the guide keeps the channel playing instead of closing the player and tuning in again. The controls gain Audio, Quality and Record. They also show Reconnecting while a channel recovers and Retry when it can't. On iPhone and iPad you also get drag scrubbing in the rewind window, a landscape lock for Live TV, and volume and brightness swipes in every video.
- Dolby Vision Profile 7 FEL. AetherEngine 7.50.0 decodes both layers of Profile 7 FEL files, the dual-layer Dolby Vision you find on UHD Blu-ray remuxes. It combines them at 12-bit instead of throwing the enhancement layer away. This only applies when the file direct plays, and then AirPlay gets sound only and Atmos plays as its channel bed.
- No more silent playback when AetherEngine drops an audio track. If it can't deliver a track, Moonfin now asks the server for an audio transcode.
- HEVC on Apple TV HD. Direct Play HEVC (Software Decode), under Settings > Playback > Quality & Decoding, lets the Apple TV HD play HEVC up to 1080p from the original file. Otherwise, the server has to transcode it. The option is off by default, since heavy 10-bit or high-bitrate files may stutter in software.
Subtitles
- Dual subtitles on every player. You can now show two subtitle tracks at once with Media3 and mpv on Android, mpv on Windows and Linux, both Apple players and web. Turn on Secondary Subtitles under Settings > Playback > Subtitles. The subtitle menu then asks whether you're picking the primary or the secondary track. Until you turn it on, the menu stays a single list.
- The secondary track gets separate controls for delay, size, color and spacing. Preferred Secondary Subtitle Language puts a language at the top of the list. The secondary has to be an SRT or WebVTT track, external or embedded, and its positioning is honored. The primary can be anything, PGS and ASS included, and the secondary stays clear of ASS signs. Your pick is remembered per title through a resume, an audio change or a download.
- Change subtitle size and position without leaving playback. Subtitle Size and Vertical Offset sit under the track list whenever there's a text track. Vertical Offset also runs from 0 to 36% in 2% steps.
- Prefer text or external subtitles. Two new switches under Settings > Playback > Subtitles change how Moonfin picks a track for you. Prefer Text Subtitles ranks SRT, VTT, ASS and other text tracks above PGS and VobSub. Prefer External Subtitles ranks external files above embedded tracks. Forced tracks still rank below full ones, and both switches start off.
- Search in several languages at once. Subtitle Download Languages, under Settings > Playback > Subtitles, searches up to five languages when you download a subtitle and groups the results by language. Auto keeps the old single guess.
- A Fetching subtitles indicator shows while a subtitle you picked is still loading, like while the server is extracting it. It waits half a second so cached subtitles don't make it flash, and it stays in the corner after the controls hide. It's on every platform but web.
Crop Black Bars
- Crop Black Bars follows the picture. A new Recrop Interval under Settings > Playback > Player rescans every 1, 5 or 10 seconds, so a film that changes aspect ratio stays cropped. Once at start is still the default. While Crop Black Bars is on, the zoom button becomes a recrop button, and B recrops from the keyboard. This works on Android, Windows and Linux.
- Bars on all four sides get cropped. A one-time crop is also checked over a few reads, so a title card can't fool it.
- Better cropping on desktop. Scans no longer restart the hardware decoder. The cropped picture fits any window and only fills the screen in fullscreen. Subtitles move inside the cropped picture. On 21:9 and 32:9 monitors, the crop fits the height instead of cutting off the top and bottom.
- Auto Crop is now called Zoom to Fill. That mode only ever zoomed to cover the screen and never looked for bars, so the new name says what it actually does. Your saved choice carries over.
Live TV
- Rewind and Jump to Live. Some channels' streams keep at least a minute of rewind window. On those, the player gets Seek back, Seek forward and Jump to Live buttons, with a timeline showing how far behind live you are. Left and Right scrub on a remote, and holding them scrubs faster. This works with Media3 on Android and on iOS, macOS and Apple TV. A tuner's raw stream keeps no rewind window, so those channels can't rewind.
- Record from the player. The Live TV overlay has a record button for the program that's airing or its whole series. It can cancel either one too, and it turns red while recording.
- Choose which episodes a series records. Record Series asks for All Episodes, Episodes Not Already Recorded or New Episodes Only. You can change that later with Series Settings from the guide, the player or the Series Recordings tab. Before, Jellyfin decided on its own based on whether the airing you picked was new or a repeat.
- Series recordings are marked in the guide, the channel carousel and the player. The mark is red when that showing will record, and gray when the rule will skip it. After a change, the guide and Recordings screen update in place and keep your spot.
- Incomplete recordings. A recording that missed part of its airing gets an Incomplete badge. A line says how much was recorded and whether a complete showing is scheduled. Live TV managers can choose Keep as Complete. (Moonbase)
- Record now, later or both. Press Record on something that's already started, and Moonfin shows what's airing now next to a future showing the plugin found. It also shows how closely the two match and whether the future showing is already booked. Record either one or both. It works for movies and shows without episode numbers too. (Moonbase)
- Episode titles in the guide. Guide cells lead with the episode title and its S1:E5 number. The phone Now and Next list shows it next to the program name, and program search results use it as their subtitle.
- A standalone On Now section. Settings > Appearance > Home Screen > Rows has an On Now section with just what's airing, with its own position and image type. It's off by default and hidden when the server has no channels. When both are on, the Live TV section drops its own On Now row.
- Volume control for Live TV on desktop and web, with a mute button and a slider that starts at your saved volume.
- Send only Live TV to your external player. Player Routing, under Settings > Playback > Advanced Playback, has a new Live TV Only choice. It's handy if you want VLC's audio track picker for live channels.
- Live TV Direct is now called Live TV Direct Play.
Home
-
A redesigned Classic info area. Classic home rows show a bigger title or logo, and Continue Watching and Next Up get logos too. An episode shows its series up top. The info line under it leads with the season, episode and name, and it stays on one line. Ratings sit on a single row, and the description runs up to three lines. The titles under Classic row cards got bigger to match.
-
Separate ratings for Home and the media bar. Settings > Appearance > Home Screen and its Media Bar page each get a Ratings section. Each has Additional Ratings, Rating Sources, Rating Labels and Rating Badges, and Home also gets Episode Ratings. Before, both followed the Details Page settings. The new sections start from the defaults, so if you'd turned on Additional Ratings before, turn it on again here. The media bar's section shows for the Moonfin, MakD, Gallery and Banner styles.
-
Peek Home Rows. On TV and desktop, the top half of your first row can peek out along the bottom of the media bar. It fades away while a trailer plays. Find it under Settings > Appearance > Home Screen > Media Bar.
-
Trailer Preview. Media Preview is now a choice between Off, Media Preview and Trailer Preview. Trailer Preview plays the title's full trailer on the focused card, using the series trailer for episodes. Titles from outside your library, like Seerr, IMDb and TMDB, play their TMDB trailer either way.
-
Set how loud trailers and previews play. Trailer Volume and Preview Volume, under Settings > Appearance > Home Screen, control media bar trailers and card previews. Both start at 100%.
-
External Lists in the media bar. Mix titles from the IMDb and TMDB charts and your custom rows into the media bar, or let them fill it on their own. They follow your parental rating, type and genre filters, and they open in Seerr. Find it under Settings > Appearance > Home Screen > Media Bar > External Lists. (Moonbase)
-
Sort IMDb, TMDB and Seerr rows by Name, Release Date, Rating, Popularity or Shuffle, ascending or descending. Each row's section in Home Screen settings has the option. Seerr rows sort each new page as it loads, so cards already on screen stay put.
-
Separate backdrop settings. Background Backdrops is now three settings under Settings > Appearance:
- Home Screen Backdrop, in Home Screen
- Details Screen Backdrop, in Details Page
- Library Backdrops, in Libraries
On TV and desktop, Home Screen Backdrop can be Off, Full Screen, Corner or Top. Corner sits in the top right and fades to the left and bottom, like the Google TV home screen. Top keeps only the top half, fading out toward the middle of the screen.
-
The Home Rows editor splits Enabled and Disabled. Disabled rows are grouped by kind under collapsible headers like Collections, Genres and Studios, Playlists, Seerr and External Lists. Rows that can't show, like Live TV on a server without channels, are hidden.
-
Play straight from Continue Watching and Next Up. A new Default Action under Settings > Appearance > Home Screen > Row Options makes selecting a card start playback right away. Go to Details then moves to the top of the long-press menu.
-
Custom rows in your language. MDBList, TMDB and Letterboxd rows ask Moonbase for titles and artwork in the app's language, so Spirited Away becomes Le Voyage de Chihiro in French. IMDb, TMDB and custom list cards also get descriptions, genres and runtime. (Moonbase)
-
Collections from every server as Home rows. With Multi-Server Libraries on, the row list offers collections from every signed-in server, and each one loads from the server it lives on.
-
Image Type per Row syncs through Moonbase. Defaults an admin sets on the Moonbase page reach Moonfin, and the rows you set yourself follow you between devices.
-
Pull to refresh on phones. Pull Home down to reload it. On every platform, tapping Home while you're already there also loads a fresh set of media bar items.
-
Banner art in the Banner media bar. Items with banner art show the whole banner over a blurred copy instead of a cropped backdrop, and the title isn't repeated. Phones keep the backdrop.
-
A Grandparents card size for home rows, about 40% bigger than Extra Large on Classic rows. Modern rows treat it as Extra Large.
-
Media bar trailers hide the toolbar and sidebar on desktop, like they do on TV. Move the mouse to bring them back.
-
Tighter Home spacing. The info overlay is shorter, and Classic rows sit closer together. Modern rows default to the smallest padding.
Seasonal Effects
- Five new seasonal effects. Valentine's Day hearts, painted Easter eggs, Pride confetti, Lunar New Year lanterns and Diwali lights join the list under Settings > Appearance > Seasonal Effects.
- Effects that follow your focus on TV Home. While its effect is on, a little companion follows the focused card. It's a Halloween planchette, Cupid's arrow, a fireworks sparkler, Santa's sleigh, Easter bunny ears, a lantern, a diya or a rainbow underline. They respect reduce motion and the screensaver.
Libraries
- Classic, Modern and Docked library styles. Video Library Style, under Settings > Appearance > Libraries, changes the header on your movie, show and playlist grids. Each kind of device can keep its own style.
- Classic is the original.
- Modern puts Home, a wide search and labeled Sort, Group and Show pills in one bar, with chips under the search on phones.
- Docked moves everything into a side panel with a letter grid on TV and desktop, and into a floating bottom bar on phones.
- An A to Z scrub rail on phones replaces the letter row in every style. Slide along it to jump to a letter.
- Folder View in every library. Each library's Sort & Filter has a Folder View checkbox for browsing one folder at a time, so you can browse Movies and TV by folder too. Home Videos and mixed libraries start with it on, like before. It replaces the Folders button and the Enable Folder View switch.
- Cleaner library grids. Turn off Titles Under Posters, under Settings > Appearance > Libraries, to hide the title and details under each card.
- Every library on the navigation bar. Show Libraries Individually, under Settings > Appearance > Navigation Bar, gives each library its own button in the top bar and side rail. They're no longer tucked into the Libraries menu.
- Multi-part movies. When a movie is split across files, its details page lists the other files under Additional Parts. Play queues them after the first part.
- Sort and filter playlists. Classic and Modern playlist pages get Sort and Filter pills. You can sort by name, date added, release date, ratings, runtime, last played, play count or at random. You can filter by played status, favorites or type. Play, Shuffle and Download act on what's shown, and the playlist's order on the server never changes.
Music
- The music player was rebuilt. On phones, the album art fills the screen and fades into the title and controls, with Lyrics, Up Next, Add to Playlist and Cast buttons underneath. On TV, desktop and in landscape, the art sits beside the lyrics or Up Next. Every control is in one dock row, so a remote only needs Left and Right. Long names scroll. Up Next shows the whole queue, played tracks included, scrolled to what's playing.
- Three music library styles. Pick one under Settings > Appearance > Libraries > Music Library Style:
- Classic is the original screen.
- Quick Access adds a Jump Back In grid of recent albums and playlists.
- Immersive, the new default, has a full-width hero of what you're listening to and a Browse by Genre grid.
- Music categories open full screens. Albums show their songs right under the row. Artists have a letter rail and an Album Artists toggle, and Songs starts with four one-tap mixes. Genres play as stations, and Playlists and Favorites get full pages, each in the style you picked.
Books
- The EPUB reader was rebuilt on epub.js, the same engine jellyfin-web uses. It's on Android, iOS, macOS and Windows.
- Books turn pages instead of scrolling a whole chapter. You can turn them with arrow keys, swipes, taps or the mouse wheel.
- Right-to-left books work, and the reader shows how many minutes are left in the chapter.
- A Scroll switch in the reader settings brings back continuous scrolling.
- Highlighting works on Android and iOS.
- Your position syncs with Jellyfin in the same format jellyfin-web uses, and finishing a book marks it played.
- Comic and PDF progress syncs with your server. The reader saves your page to the server whenever it changes, and it opens on whichever save is newer. Reaching the last few pages marks the book played. Pages use the same scale as jellyfin-web, and anything you read offline in a downloaded book syncs once you're back online.
- Three book library styles. Pick one under Settings > Appearance > Libraries > Book Library Style:
- Classic is the original screen.
- Bookstore, the new default, has a format rail, a Continue shelf and a paged cover grid with search and sort.
- Reading Room has large Continue Reading cards, a fanned Series shelf, authors and genres.
- Book categories open full screens. Titles, Series, Authors, Genres, Collections, Favorites and Discover each get a page. Genres has a Surprise Me pick, and Bookstore opens straight to Titles.
- Book titles open their details page in every style. The play button on a Continue tile still takes you straight into the reader.
- Book series. A folder with two or more comics shows as one series that opens its volumes. Ebooks group by series name, and See All on the Series row opens the folder view.
- Book file details. The Modern and Nouveau details styles show the file name, format and date added.
- Comic reader controls hide on their own a few seconds after they appear, and they come back when you move the mouse. The eye button keeps them up. While they're hidden on TV, the D-pad turns pages in your reading direction.
- Apple TV now explains that books can't be read there and that audiobooks still play.
Details
-
Reviews. Movies and series show TMDB user reviews after More Like This:
- as a row on Classic
- as a tab on Modern
- as a card on Spotlight
- as a rail on Nouveau
Open one to read it in full. Off TV, there's also a Read on TMDB link. Reviews come in your app's language when there are any, and fall back to English otherwise. They need a TMDB key in the plugin, and you can turn them off under Details Page > Sections > Reviews. (Moonbase)
-
A trailer picker. When a title has more than one trailer, the Trailer button opens a list with thumbnails, durations and channel names. The server's own trailers come first. Trailers on the details screen also follow the Trailer Captions setting, which you'll now find under Settings > Appearance > Details Page as well.
-
Collections and missing titles in every style. Spotlight already did this, and now Modern, Classic and Nouveau show a movie's collection the same way. A card opens the collection, followed by the titles you own and, with Seerr connected, the ones you don't. Nouveau gets a row per collection that you can move or turn off under Sections.
-
Collections default to Server Order, the order your server returns, which matches jellyfin-web. The release order sorts are still there. Spotlight's Playlist Order card gets the same sort button, with drag and drop in Custom order.
-
Person pages show each role under the movies and series they were in, like Bender (voice).
-
Links on person pages. Person pages get IMDb and TMDB buttons. When Moonbase has a TMDB key, you also get Instagram, X, Facebook, TikTok, YouTube and the person's website. The links show on phones and desktop, and there's a Links switch under Details Page > Sections. On phones, the Modern, Spotlight and Minimalist styles also get a Seerr button for the person.
-
Where to stream it. Seerr titles show the logos of subscription services streaming them in your Seerr region. There's a Streaming services switch for it under Details Page > Sections.
-
Extras on Minimalist. Movies with extras get an Extras button after Play that opens them by category.
-
Spotlight File Details and a version badge. The Spotlight style gets a File Details card that opens the full file information. A badge also shows beside the logo when there's more than one version. Both follow the Media info and Version badge switches under Details Page > Sections.
-
The episode you're viewing is outlined in its season's list on every details style. In Modern, focus lands on it.
-
Fit the whole backdrop on phones. Backdrop Size, under Settings > Appearance > Details Page, can fit the backdrop under the toolbar instead of filling the screen.
-
Arrows on Spotlight's summary cards on desktop, so you can scroll the row with a mouse.
-
A smaller Nouveau logo on phones, with the hero moved down toward the first row.
-
Shorter anime markers. Server admins can switch the Subbed and Dubbed pills to Sub and Dub in the Moonbase plugin.
Downloads
- Keep the next episodes downloaded on phones and tablets. Turn on Download Next Episodes under Settings > Storage & Downloads > Smart downloads. Moonfin then keeps the next episodes of a show you're watching on your device, and deletes each downloaded episode once it's watched. Episodes to Keep Downloaded goes from 1 to 10.
- Smart downloads follow your watching anywhere. Each series gets topped back up when you finish an episode here or on another device, when you open the app, or during a background refresh. It uses your default download quality and your Wi-Fi only and storage limits. Only episodes you watch after turning it on count. It only swaps out episodes it downloaded itself, and it never deletes the episode that's playing. It's set per account on each device.
- Clean up watched downloads. Remove Watched Downloads, under Settings > Storage & Downloads > Storage, deletes movies and episodes you downloaded yourself after you watch them. It can delete them right away, a day later or a week later, and it's set to Never by default. A Keep Downloaded switch on the download sheet protects a title or a whole series.
- Downloads follow the version you picked on the details page, with its size, codecs and subtitles, on Jellyfin and Emby.
- Skip intro and credits work offline. Downloads now save the server's intro and credits markers. Existing downloads pick theirs up the next time the app reconnects.
Seerr
- Your Seerr Discover sliders. An admin can add sliders to Seerr's Discover page by keyword, genre, studio, network, streaming service or search. Those sliders now show on Moonfin's Discover, after its built-in rows. You can also add any of them to Home from Settings > Appearance > Home Screen > Seerr Rows.
- Modern rows on Seerr Discover when your Row Type is Modern. Seerr cards can also show Moonbase's titled TMDB artwork.
Retro Games
- Link your RomM account. When a server admin backs a game library with RomM through the Moonbase plugin, the library gets a RomM account button. It shows a code to approve in RomM, with an Open RomM button on phones and computers and a QR code on TV. Once you're linked, you browse with your own RomM account and saves for RomM games go there. Your progress carries over to and from RomM's own player.
- Battery saves sync for every game, not just save states, on both the native player and EmulatorJS. EmulatorJS needs the Moonbase plugin for this. If a save never reached the server, it's uploaded the next time you play instead of being overwritten.
- A redesigned game details screen. The in-game snapshot leads, and the title drops tags like (USA). A line under it shows the year, genre and number of players. There's one Play or Continue button with Start fresh beside it, and a line saying whether a save was found. You also get a player button that names the core, an About section with Read more, and a facts grid with developer, publisher, region, rating, size and BIOS.
- Box art in its real shape. Each system's grid takes the shape of its box art instead of cropping everything to a portrait card. Art that doesn't fit is shown whole over a blurred copy. (Moonbase)
- Page through the game grid with fast forward and rewind or Page Up and Page Down, like the Live TV guide.
- Play in portrait on phones. Game orientation, under Settings > Playback > Games, picks Landscape, Portrait or Auto. Orientation in the game menu switches it while you play.
- Touch controls for each console. The native player's touch pad now has a layout per console. That adds analog sticks for PS1, N64 and PSP, the N64 C buttons and Z, L2 and R2, and the DS lower touchscreen.
Sign-in and Accounts
-
A redesigned Add Server. One Add Server button asks how you'd like to connect: by address, with Plex or with Emby Connect. While connecting, it shows what it's checking and explains any failure in plain words. A Server found step then shows the server's name, type and version before you continue.
-
Client certificates (mTLS). Servers that require a client certificate work now.
- Add a .p12 or .pfx for a server under Settings > Account > Servers > Client certificates. Add Server and sign-in also prompt you when a server asks for one.
- On Android TV, Fire TV and Apple TV, Send from phone shows a QR code for a one-time page on your local network. There you pick the file and type its password. That page is plain HTTP and takes one file. It closes after the upload or after 10 minutes.
- The certificate goes with every API call, image, player and download, and the book and game web views.
- On web, the browser handles it.
-
A Quick Connect QR code. Quick Connect sign-in on TV, desktop and web shows a QR code. It opens your server's approval page with the code filled in, so a signed-in phone can approve in one tap. On desktop, you can click the code to approve in the browser. This needs Jellyfin 10.9 or later.
-
Access schedules are enforced. When a Jellyfin user's allowed hours end, playback stops and a Time's up screen covers the app. It says when they can come back and offers Switch User. The screen clears on its own when the schedule opens again. The server decides when that is, not the device clock.
-
Sign-in PINs from the server. With Moonbase, a PIN set under Settings > Account > PIN Code follows you to your other devices. Each device keeps a copy for when the server can't be reached. Wrong guesses are now slowed down after five tries, up to 15 minutes, like Kids Mode.
-
Four keyboard styles on TV. Pick one under Settings > General > Input > Keyboard Style:
- Native is the TV's own keyboard.
- Classic is the original Moonfin keyboard.
- Glass is a frosted panel with bigger keys.
- Docked, the new default, fills the bottom of the screen and shows what you type above it.
A key on the keyboard itself switches styles on the spot.
-
Search links.
moonfin://search?query=opens Search with the text filled in, everywhere but Apple TV and web.
Settings
-
Settings were reorganized into Account, General, Appearance, Playback, Storage & Downloads, Integrations and About. Every setting now lives on the screen for what it changes:
- The home screen, libraries and details page are under Appearance.
- Quality and decoding got their own screen under Playback.
- Downloads sit with the image cache.
Plenty of labels got shorter too.
-
Settings Sync follows the profile you pick. Settings > Account > Settings Sync shows the Moonbase connection, a sync switch and cards for Global, Desktop, Mobile and TV. This device keeps syncing with the profile you pick until you pick another. Before, picking a profile only changed which one the Load, Save and Reset buttons used.
Administration
- The admin panel was rebuilt around five groups: Overview, Library, Playback, People and System. Wide windows get a group rail and a page list, and phones get a bottom bar. Admins can use it on phones, tablets, desktop and web, with Jellyfin or Emby 4.9 and later.
- Search every admin setting. Unsaved edits get a Save and Discard bar, and you're asked before you leave the page with them. The Dashboard shows sessions and tasks live, and Activity can filter by user, severity and date.
- More of the server can be managed from Moonfin, including:
- Live TV tuners, guide providers like Schedules Direct and XMLTV, channel mapping and recording defaults
- the full networking page
- user access schedules, and channel and device access
- full options when adding a library
- backup restore progress
- a Watch mode in Logs
- Emby-only pages cover Live TV channels, Cinema Intros, Conversions, Camera Upload, DLNA, Database and Emby Premiere. Emby's transcoding, Backup & Restore and Emby Connect options are there too. Admins also get Identify, Edit Metadata and Change Artwork on Emby details pages.
- Analytics was rebuilt around each library. It covers counts, runtimes, ratings, release years, containers, codecs, top genres and top artists. Tap any tile or bar to see the matching items and edit them.
Platforms
- Impeller on capable Android TV boxes. Impeller is now used on boxes running Android 12 or later with Vulkan and a GPU that Impeller handles well, like Mali-G, recent PowerVR and Adreno above 650. Shield, Fire TV and everything else stay on Skia. You can force Skia under Settings > General > Performance > Renderer. The diagnostic report shows which renderer is in use and why.
- A new Video Renderer setting on Windows. Every title now plays in mpv's own window by default. That ends the judder SDR video had when it was drawn inside the app. Video Renderer, under Settings > Playback > Quality & Decoding, replaces Native HDR output with three choices: Native window, Native window for HDR only and In-app. Everyone starts on Native window, so try another choice if video misbehaves.
- The Flatpak is ready for Flathub.
- It registers under the ID it's installed with.
- It runs in a tighter sandbox, without full home or session bus access.
- It keeps its offline database in its own data folder. The database is copied over once, so your downloads survive.
- It supports gamepads.
- A new search bar. Search is a centered pill on every platform, with the mic inside it. On TV, Right moves from the field to the mic.
- Menus show focus as a solid highlight instead of a dimmed tint.
Bug Fixes
Playback
- Your audio and subtitle picks stick. The details page was wiping them as it finished loading, so a pick only lasted until you left the page.
- The server copies HEVC instead of re-encoding it when only the audio needs converting. Before, a DTS track on a stereo setup could turn 4K HDR into washed-out H.264. On Apple devices, the copy keeps Dolby Vision, and falls back to HDR10 for Profile 7.
- The next episode no longer gets marked watched or skipped by mistake. Right after an auto-advance, and between episodes on Media3, the new episode got the old one's end position.
- Refresh rate switching no longer renegotiates HDMI on every change. Each new channel, episode or playlist item used to put the TV back in its default mode and then switch again. The screen blinked twice and HDMI audio dropped. Now a video keeps the current mode when it fits, and stopping hands the mode back a couple of seconds later.
- Player controls respond to taps right away on phones and tablets. Every tap used to wait out the double-tap timeout first. A pause now shows immediately.
- Casting takes over the player's controls. After you hand a video to a Chromecast or DLNA device, the controls drive the receiver from a casting screen. Before, they kept controlling the paused copy on your phone. Stop now ends the Cast session.
- The paused description card no longer sits under the controls. After you pause, the controls hide after two seconds and the card fades in. Seeking with the arrow keys keeps the controls hidden.
- Auto quality measures the server you're signed in to. With more than one saved server, it used to time whichever one was added last.
- Transcoded downloads keep the audio track you picked. Season and automatic downloads also follow your audio language settings instead of taking the file's first track.
- A failed playback request shows an error instead of nothing at all.
- Picking the episode you're already on from its list plays it. Opening another episode from an episode's page also replaces that page, so Back goes wherever you came in from.
- Up on the TV seek bar reaches the Skip button above it.
- Web plays the audio track you pick. Browsers always play a file's first audio track, so the server now remuxes when you pick another one.
- An audiobook file plays even when the rest of its folder can't be looked up, instead of closing the player.
Subtitles
- A forced track no longer wins over the full one when only its title marks it forced, like English (Forced). Moonfin only checked the forced flag, so a track like that could win just by being listed first. That left you with only the foreign-language lines. It also no longer replaces the full track Moonfin remembers from the last episode.
- Forced and Flagged modes skip forced tracks in languages you don't read, so an English setup no longer gets forced Japanese lines. A forced track has to match your subtitle language, its fallback or the audio that's playing.
- Older language codes match their modern ones, like ger and deu or fre and fra. A German preference now finds a track tagged ger. This covers audio and subtitle preferences and the secondary subtitle pick.
- Embedded subtitles turn on when the player finds them late. With subtitles set to Always, a track picked before the player had read it stayed off. On mpv, an external subtitle picked before its file was added is now held and applied too.
- Subtitle backgrounds draw a box on mpv instead of just a shadow.
- Text subtitles on widescreen films are the same size as on 16:9 titles with mpv.
- Web subtitles no longer show a second language in Chrome and Edge, and they stay off when you pick Off. The browser was turning on one of the attached tracks by itself.
- Admins can download subtitles on Jellyfin, even though Jellyfin leaves that permission off for admin accounts.
- Trailer captions on Windows and Linux follow the Trailer Captions setting. Before, mpv turned on any caption track a YouTube trailer carried.
Live TV and Recordings
- Live TV starts on iPhone, iPad, Mac and Apple TV. Jellyfin and Emby cut 6-second segments for Apple devices and waited for three of them. On a real-time tuner, that ran past the player's 20-second timeout. Moonfin now asks for 3-second segments and starts after two.
- Emby Live TV plays. Channels spun forever unless transcoding was turned off. On Apple devices, Emby's fMP4 live playlists come without an init section and with empty segments. Moonfin now asks Emby for MPEG-TS on live channels instead.
- Live TV on mpv no longer gives up on slow channels. They now get the full 30 seconds to show a first frame. Before, an 8-second stall timer ran out and burned through every retry. This affected Windows, Linux and Android.
- Recordings still in progress play instead of failing with no compatible stream.
- Canceling a recording from Schedule works. Before, every cancel failed. Scheduled recordings are also grouped by your local day now, so an evening recording no longer shows under Tomorrow.
- Scheduled in Next 24 Hours and the Schedule tab hide canceled, completed and failed timers.
- The Sonarr calendar shows evening episodes on the right day instead of the next one.
- Today and Tomorrow stay right across a daylight saving change on upcoming episodes and the schedule.
- Moving up through the Recordings and Schedule rows shows each row's title, and the first row no longer hides under the buttons.
- Live TV goes to your external player when Always Use External Player is on. VLC's live stream stays open until you come back to Moonfin.
- Play and pause on the remote work in Live TV.
- Left on a guide channel jumps up to the genre filters instead of making you scroll back to the first channel.
- A second Up on the channel strip no longer leaves Left, Right and OK doing nothing until you press Back.
- The Live TV landing page has the navigation bar off TV, so backing out of the guide on web no longer strands you there.
- The channel changer's description scrolls at half the speed, slow enough to read.
- Turning off Volume and Brightness Swipes works in the Live TV player on phones and tablets.
Apple
- Apple TV keeps TrueHD and DTS-HD lossless. When your HDMI or eARC route takes more than two channels, they go out as multichannel PCM instead of being converted to Dolby Digital Plus 5.1. Max Audio Channels is also respected on every Apple platform now.
- 4K and HDR10 AV1 direct plays with software decoding on Apple Silicon Macs and M1 and M2 iPads. Before, it transcoded to 1080p SDR. Stream info also shows Jellyfin's transcode reasons instead of Unknown. Other iPhones and iPads can opt in with Direct Play 4K AV1 (Software Decode) under Settings > Playback > Quality & Decoding.
- AirPods and Control Center keep controlling video on iPhone and iPad. Video now gets its own Now Playing session, rebuilt on every load and when Picture in Picture closes. Play and pause keep working after PiP, and Control Center keeps up with the next video. Checking the volume no longer hands Now Playing to another app.
- The first song shows in Control Center and on the lock screen on iPhone and Apple TV. Its info used to arrive before the music session opened and get dropped.
- YouTube trailers play on macOS instead of showing a black, silent screen. On macOS and iOS, a trailer the embed can't play now falls back to Moonfin's own player.
- The play and pause key on a Mac keyboard controls Moonfin.
- External ASS subtitles keep their styling on iPhone, iPad, Apple TV and Mac instead of showing as plain text.
- SRT and WebVTT subtitles placed at the top or middle stay there on iPhone, iPad, Mac and Apple TV. They're no longer forced to the bottom.
- iPad subtitles should no longer blink out in fullscreen. iPadOS could drop the subtitle layer when the video was the only other thing on screen. Now the subtitles get a nearly invisible backing while they're on.
- The picture no longer flashes on every subtitle change in fullscreen on macOS.
- 1080p H.264 with more than four reference frames direct plays instead of transcoding.
- Apple TV Home previews no longer leave transcodes running on the server. The server kept restarting the transcode right after Moonfin stopped it.
- Playback Information on Apple TV splits Source Format and Output Format. HDR and Dolby Vision no longer look like they're going out as SDR. When tvOS doesn't report the output, it says so.
- Apple TV can pick subtitles on live channels.
- Theme Store themes survive Apple TV updates. They were stored in a folder tvOS clears on every update.
- Text no longer breaks in the middle of words on macOS.
- Long checklists scroll in the Apple interface style. Some, like the media bar's Source Libraries picker, were squeezed too short to scroll.
- The Apple TV icon fills its width instead of showing black bars on each side.
Android
- Bitstreamed audio survives a refresh rate switch. With Refresh Rate Switching and passthrough on, the HDMI link renegotiated a moment after the audio started. That dropped the audio and left playback stuck buffering. Moonfin now switches the display first and waits up to 7 seconds for it to settle. Video Start Delay, under Settings > Playback > Quality & Decoding, now actually does something too. It adds its time to that wait when the mode changes.
- App (IEC) bitstreams TrueHD and DTS-HD on Fire TVs that say they can't but play it fine, like the Fire TV Cube. Moonfin now tries a test track instead of falling back to PCM.
- Audiobooks and music start on Android TV. Audio offload left some TVs buffering forever with no error, so it's now off on Android TV and Fire TV.
- VC-1 direct plays on MediaTek TVs that name their decoder differently, like some TCL models. Video that can't play now stops with a message instead of playing audio over a black screen.
- Fullscreen video is centered on phones with a camera cutout on Android 14 and older.
- Back closes Settings the second time you open it on Android 14 TVs.
Windows and Linux
- Video on Linux with X11 no longer stutters. It was falling back to software rendering, and now it plays on the GPU.
- Linux passthrough no longer leaves the audio silent. Moonfin asked for exclusive audio whenever a passthrough codec was on, and PipeWire refuses that while other audio is playing. Only Windows asks for it now.
- No more banding in dark gradients on Windows and Linux. mpv's dithering, scaling and tone mapping only applied to the native window, and now they apply everywhere.
- Windows treats SDR displays as SDR when Auto Color Management or wide color gamut is on. They were read as HDR, which threw off Auto HDR Switching.
- Moving an HDR window between monitors no longer blanks the picture. The short stall going from an HDR screen to an SDR one no longer pauses a SyncPlay group either.
- Going fullscreen from a maximized window no longer shrinks and regrows it on Windows. On macOS, a zoomed window stays zoomed through fullscreen.
- Moonfin no longer opens as a blank white window on Windows.
- Controllers work on desktop with the TV layout. Presses no longer reach Moonfin while the Steam overlay is open.
- The Linux packages depend on xdg-user-dirs, which Moonfin can't start without. The tarball launcher also explains a glibc mismatch in plain words.
- The AppImage and tarball start on NixOS. The launcher's library check didn't look in nix-ld's path, so it reported every library as missing.
- The installed package shows in your app menu again after you delete an AppImage you'd run. The AppImage's leftover entry was hiding it.
Home
- Home no longer lags with lots of collections. Every collection, genre and playlist row used to load up front, sometimes twice. Rows now load as they get close to the screen. When Seerr signs in, only its own rows load.
- Artwork keeps loading after a few missing images. After a handful of 404s, every image used to wait and time out for the rest of the session. This affected every platform but web.
- Up and Down on TV Home never drop a press. Presses during a scroll, or within 140 ms of the last one, used to be ignored. So a quick press or a held key skipped rows. Every press moves focus now, and the scroll follows your Navigation Speed.
- Next Up and Continue Watching load more pages properly. Cards no longer repeat, and hidden items no longer come back as you scroll.
- The media bar loads faster. It reads six libraries at a time and stops once it has enough titles.
- The media bar pauses behind the screensaver on TV. It no longer flips slides and loads backdrops nobody can see.
- The Home trailer only plays on TV while the media bar has focus, so it can't cover the navigation bar while you're up there.
- The Home backdrop blurs once when it loads instead of on every frame. That smooths the crossfade and row scrolling on TV boxes.
- The focused card stays put on a fast Left or Right hold. Modern cards that grow on focus could leave the row parked with the focused card out of place.
- Back returns Home to exactly where you left the row.
- Empty sections no longer flash their titles at startup and when the window gets focus back.
- Media Bar Item Count works with Settings Sync off. It was stuck at 5. The default is 10.
- Ratings under a focused Modern card stay on one line, and the description runs across the row.
- Custom chart rows are cached per account. A child signed in on the same device could see an adult's unfiltered row for up to a day.
- Image Type per Row reaches every row. That includes Seerr, IMDb charts, the Radarr and Sonarr calendar, Live TV favorites, audio, Since You Watched and Rewatch.
- Dragging rows in the Home Rows editor works on phones and desktop. On phones, long-press to reorder.
- Hiding from Continue Watching or Next Up on Emby keeps your progress. It uses Emby's own hide, so every Emby app drops the item.
Navigation and Sign-in
- Voice search starts and stops on every tap. After your first visit to Search, the mic lost track of when it stopped listening. It got stuck, and errors went silent. Now it shows a pulsing red ring while listening and tells you what went wrong.
- Back on the sign-in, Who's watching and Emby Connect screens goes back instead of offering to exit or closing the app. On sign-in, Back goes to the server list when the server has no users to pick from, instead of looping.
- Forgot PIN clears the PIN once you sign in with your password, instead of asking for it again.
- A refused sign-in explains itself instead of showing "Connection failed (badResponse): HTTP 403".
- Servers behind a proxy that relabels the ping reply stay reachable. Moonfin couldn't read the reply and showed an empty Home.
- Servers with international domain names show as you typed them instead of in Punycode.
- The left sidebar opens on the first Left press after you back out of a screen you opened from it.
- The sidebar no longer pops open on Seerr Requests and Issues or on desktop details pages.
- The side menu works from the keyboard on web and desktop, with a focus highlight that only keyboard users see.
- The now playing card in the TV sidebar works with a remote and opens the music player.
- The Libraries label stays open while its dropdown is open, so the list no longer slides out from under your mouse.
- Hovering a user card highlights it on the user picker and in the user switcher. Avatars in the user switcher are sharp now too.
- Music stops when you sign out, switch users or open a trailer.
Libraries and Details
- Mixed libraries list shows and movies together. Folders First counted a series as a folder, so every show came before every movie. Now only plain folders go first.
- Back and Up reach the alphabet bar in TV libraries instead of leaving the library or jumping to Home. A second Back leaves.
- You're no longer stuck in Home Videos libraries on TV with the A-Z bar on. The bar now shows for the Folders First sort too.
- Favorites, All Genres and Seerr browse keep their own poster size instead of resizing every library.
- Playing a collection follows its order. Play used to queue the movies by name, so a Harry Potter collection went from Chamber of Secrets straight to Deathly Hallows. Playing one movie from a collection now queues the rest from there.
- The Playlist tab on Modern and Playlist Order on Spotlight always show when that section is on. Collections of single episodes, or ones whose scan came back empty, had neither. Duplicates are gone, and items added after you saved a custom order now show at the end. Spotlight's two collection cards no longer share the same art.
- The collection sort dialog opens on the active option and gives focus back when it closes. A spinner shows while a new sort loads.
- Person page sorting and grouping work on Spotlight. In Seerr credits, a movie and a show that share a TMDB ID are no longer merged.
- Specials and extras are in order. Minimalist's Specials tab sorts by episode number. Extras sort by index and then name on every layout.
- Missing dates no longer show as Dec 31, 0. Jellyfin and Emby send year one for a date they don't have, and Moonfin was reading it as a real date.
- Action Buttons on Screen applies to series and seasons. The buttons follow your Action Buttons order once you've arranged it, so moved buttons no longer fall behind More. SyncPlay and Watch with group are now marked as only showing while you're in a group.
- The Play button keeps its label on phones in landscape on the Modern, Spotlight and Minimalist detail screens.
- Detail rows line up with the page margin. More Like This, Special Features, Chapters and Seasons sat a few pixels off.
- Classic action tiles line up by their icons. A two-line label like Cancel Request no longer sits higher than the tiles beside it.
- Playlists show their items in the Nouveau style. Nouveau now uses Modern for them, like Spotlight and Minimalist do.
- Horizontal playlists follow Group by type and the type filters.
- Nouveau's season row scrolls to the focused season.
- Spotlight cards stay 16:9 and the row scrolls instead of squashing four or more cards. Cast & Crew no longer reuses the hero image.
Playlists
- New playlists are private on Jellyfin. Before, every playlist Moonfin created was public. Creating and renaming playlists on Emby works again too.
- Renaming a playlist no longer crashes after you press Save.
Downloads
- Transcoded downloads keep embedded PGS subtitles, saved as .pgssub from Jellyfin and .sup from Emby.
- Downloads grab their subtitles before the artwork, since iOS can suspend the app before the last steps run. If subtitle files are missing, they're fetched when the download plays while you're online.
- Deleting a download removes the right files. A renamed item used to leave its file behind. Deleting a movie could also take another server's copy in the same folder with it.
- The Download button flips back as soon as a download is deleted.
- Movies whose name already ends in the year no longer get folders like Title (2020) (2020).
- Comics with # in the file name download as comics. Before, the name was cut off at the # and the file was saved as .mkv.
- The offline player shows the title logo.
Books
- A TV remote can reach the comic reader's controls. You can change layout or reading direction, add a bookmark or pick a page from the thumbnails. Back hides the controls before it leaves.
- Arrow keys follow right-to-left reading in the comic reader.
- Comics and PDFs open in the web reader instead of failing with an unsupported operation error.
- Invert Colors only inverts the page. The reader bars stay dark, and the comic background stays black.
- The sidebar no longer covers the book library and folder screens or steals focus from them on TV and desktop. Shelf rows no longer clip posters.
Seerr
- A Seerr page switches to the library title once it's available, so Play shows up without leaving the page.
- Request tiles are the same height and fit on a TV screen, with approve and decline on the poster. Season packs count once, and held-back releases are left out of download progress.
- Seerr cards no longer use their poster as a backdrop. Their ratings no longer ask your server for a title it doesn't have.
- The Seerr collection page clears the left sidebar, so you can reach Request and the movies with a remote.
Emby
- Emby channel libraries play, like HyperMS. Previews and downloads of those items work now too, and their details page shows the real file.
- Home media previews play on Emby. Emby was refusing the preview stream's subtitle option and token parameter.
Administration
- Saving a user's permissions keeps the rest of their policy. Access schedules, allowed tags and blocked unrated items used to get reset.
Retro Games
- PlayStation cue/bin games load.
- With Plugin 2.5.0, a loose cue/bin shows up in the library.
- A zipped or 7z disc over 512 MB no longer fails with a 413 error, and 7z games load on Jellyfin now too.
- The native player loads the disc's .cue instead of its biggest track. It tells you when a zip has no disc image in it.
- EmulatorJS opens .pbp games.
- Save & exit keeps the app open on Android. It saves once instead of twice and shows Saving while it works.
- N64 runs on Windows. Native N64 no longer crashes at launch, and EmulatorJS no longer waits for a click a controller can't send.
- PSP games render on the GPU on Android instead of falling back to software.
- DS games take touches on the lower screen in EmulatorJS on iPhone and iPad.
- Game artwork no longer flickers on focus in themes with a focus glow.
- Focus stays on screen in large retro libraries.
Contributors
Huge thanks to everyone who contributed to this release:
- @mattsigal
- @jmawet
- @WizardOfYendor1
- @Kisnov
- @KevOutIngs
- @Roboatlas21
- @benklop
- @selmant
- @rochdev
- @bientavu
- @ollivv-hash
- @Rani-Wehbe
- @edgarjc
- @sitieqiang
- @IanHollow
- @spikewombat
- @DavidDotCheck
- @ferges123
- @mike-echo-oscar-whiskey
- @idontwantfame
- @Brady3035
- @zeisscai
- @OneHotTake
- @mptorz
- @MasterOfKay
- @JorisM
- @chiphead2332
- @BinSlayer01
- @IfSugar
- @cowboydaniel
Translations were updated through Weblate by mikey (Finnish), Kisnov (Catalan), SCHIZOPHRENE and Donovan Winter (French), Miloš (Serbian), damecon (Korean), Benedek Dunavölgyi (Hungarian), oskarkasprzyk (Polish), eliastitecnologia (Brazilian Portuguese), BlackSpirits (European Portuguese), Thurion Helsing (Spanish), rekiznuh1, finneus and Bananaoverflow (German), and everyone who translated anonymously. If you'd like to help translate Moonfin into your language, check out our Weblate project.