New Pre-Release: SkyTemple 1.6.0b1
Hey hello!
It's time for another SkyTemple 1.6 pre-release. This time I present you the first beta release.
SkyTemple 1.6.0b1
Last time I said that there were probably no more bigger features being added, but turns out that isn't true!
Plugins!
SkyTemple now has a plugin system! It was technically already possible to install plugins before with the development version, but now the release version of SkyTemple supports loading plugins as well. You can find more information in our wiki.
Plugin developers will find a guide for writing plugins and an example plugin. Please take this example plugin as reference for extending the UI of SkyTemple, as 1.6.0b1 also changes how the UI is extended from modules, rendering the old mechanisms deprecated. The example plugin already uses the new mechanism, while the majority of bundled module still use the old mechanism. See below for more information.
Preperations for GTK 4
SkyTemple is using a UI toolkit named GTK for its interface. A few years ago GTK 4 released and SkyTemple is still on GTK 3.
GTK 4 is a major release that has greater backwards incompatibilities with GTK 3, but it also has some powerful new features which will improvde the usability of SkyTemple greatly.
As a prepreation some internal changes were made to how the UI is constructed. We require your help to test this release since these changes were pretty intrusive and could potentially break in subtle ways. However we already did some testing and so far everything seems fine, but please report any issues you come across.
Some technical details (feel free to skip):
Previously SkyTemple modules directly modified the tree of items on the left side of the UI (the one where you select what you want to edit). This was directly done through the
Gtk.ListStore
model of theGtk.TreeView
.TreeView
has been deprecated in GTK 4 and been replaced by more modern widgets. In order to prepare for this modules now instead an abstracted API to add views to the UI.Additionally modules previously added classes of type
AbstractController
to the tree. This was quite bulky and usedGtk.Builder
manually to render UI scenes instead of taking advantages of features likeGtk.Template
. This has now been deprecated and modules should directly add subclasses ofGtk.Widget
. Those should preferably been initialized usingGtk.Template
. The only method still works but is expected to be removed with SkyTemple 2.0, which will finalize the GTK 4 migration. At the moment we are slowly migrating every controller to a widget.Plugin authors should make sure to only use widgets present in GTK 4 to prepare for the change and to directly add
Gtk.Widget
s to the UI tree.
As a sneak peak, here's an early preview of the UI of the Randomizer running GTK 4. The Randomizer will get its GTK 4 upgrade first.
GTK 4 and especially the extension "Libadwaita" that SkyTemple and the Randomizer will use support adaptive/responsive window sizes, which will solve a lot of the current window siziing issues SkyTemple and the Randomizer currently use.
JP Support
Adex, Laioxy and others have taken great steps to get more support for the japanese ROM. We now have all symbols needed and Adex is working on getting the patches working. Hopefully we will be able to support the japanese ROM in the next release.
Additionally Laioxy and a few others have started translating the UI of SkyTemple to japanese and japanese can now be selected as language.
Thanks everyone!
Download and Changelog
You can find the changelog and downloads on our downloads page.
The Future
This is now probably really the last features added to the 1.6. release. The only things that I expect to be added is support for the japanese ROM and the buttons to get help from the wiki I mentioned last time. Those things should be in the release candidate, which will likely be the next and final pre-release.
Thanks everyone for making this pre-release possible, especially Adex and Laioxy who have been working hard for getting support for the japenese ROM in the next release!
Capy