Playnite 10 development update
Added 2022-03-31 10:50:15 +0000 UTCHello everyone!
Sorry for the lack of updates, I've been busy with some other things lately but I'll be spending way more time working on Playnite in April and May. You can see the full list of planned and finished features on GitHub.
As always, thank you very much for continued support!
Josef
Here are some highlights of things already done:
Application startup and shutdown scripts
This was already possible, but you had to create custom extension for it. You can now assign these scripts in the same way as global game scripts in application settings.
Ability to auto-fill the Sorting Name field when importing games (contributed by Jeshibu)
You can now configure Playnite to automatically set game's sorting name on import without specified articles.

Play time sync rework (contributed by darklinkpower)
Not so well named "prioritize play time for supported libraries" option has been reworked. It now has three options available:
- always import play time (always overwriting any existing play time)
- only for new games
- never
Filter settings exposed in SDK
Extensions have now full access to filters (create, edit, delete, apply), including filter presets.
Added game tracking mode that only tracks originally started process
Current process tracking option tracks original process and all processes started by it, which can cause issues on rare occasions. This new option will only track game as running as long as originally started process is running, ignoring all child processes.
Quality of life improvements to metadata download configuration window
Metadata download settings got a facelift. There's now an option to apply specific settings to all fields and also an option to select/deselect all fields.

Fullscreen mode fixes
I've made a lot of various fixes related to Fullscreen mode specifically. Some navigation and performance bugs have been squashed out, as well as improvements related to keyboard and mouse support. For example, you can freely just type in search dialog using keyboard without focusing search input box first.
Option to import emulated games under related file paths
Emulated game scanner has now an option to import games using relative paths. What this does in practice is to replace part of a ROM (and installation folder) path with {PlayniteDir} or {EmulatorDir} variables. You can set these variables manually, but scanner will automatically apply them on game import where possible (if relative path import is enabled). This also applies "up the chain" to emulators, so you can define an emulator that points to a path using {PlayniteDir} and then have ROM paths nested using {EmulatorDir} for that emulator.
Option to start interactive PowerShell console with Playnite SDK
Extensions menu now has an option to open PowerShell console connected to Playnite process. This should make it easier for people to experiment with the SDK and to run some simple scripts without need to create an extension first.

"Choose on startup" option for emulator play actions also available on emulator level
Similar to how you could choose this now on emulator profile level. When set, Playnite will give an option to select which emulator should be used to start a game. This is currently based around platforms. So Playnite will only give an option for emulators that has the same platforms set as what is currently assigned to a specific game.
Option for Xbox / Guide controller button to restore Fullscreen mode
When enabled, this will focus Playnite no matter what application is currently in foreground. This should be helpful in cases where Playnite looses focus for some reason or if a user wants to switch back to Playnite while being in some other app.
Technical debt: testing changes
Playnite project has huge technical debt when it comes to automated testing, only very small part of code base is currently covered by automated tests. So I've been making various changes to improve this. It's not something that's directly visible to users (except the fact that I should be able to catch more bugs this way), but it's really important, especially since I'm planning to move Playnite to new .NET runtime later this year which will require a lot of testing.