I made a GitHub repository to change the banner that is shown in SkyTemple and SkyTemple Randomizer. If you are part of the PMDCollab or SkyTemple community teams, feel free to open a PR there to promote things!
https://github.com/SkyTemple/banner
/capy
I made a little site for playing PMD: Explorers of Sky ROM hacks right in the browser, no download required: https://tech-ticks.github.io/eos-hack-player/
New Pre-Releases: SkyTemple 1.6.0rc1 & Randomizer 1.6.0rc1
Hey! This time I'll keep it short. It's time for another pre-release of SkyTemple. This time the Release Candidate for 1.6.0.
The big new feature this time is the support for the Japanese ROM. A pre-release is also available for the Randomizer:
Please let us know if you experience any issues! For more info about features in 1.6.0 you can see the changelog on the download page and previous posts on our blog.
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
New Pre-Release: SkyTemple 1.6.0a4
Hi everyone!
Before I share today's pre-release, there are two things I want to remind about, in case you missed them:
- We have a wiki now! We still need help from people to actually fill it with content, but some pagres are already there. Thank you everyone that is contributing!
- Yesterday I posted an update on the current state of support for the japanese ROM and what's needed to get it done. You can read that here.
But now let's talk about today's pre-release
SkyTemple 1.6.0a4
This is probably going to be the last alpha pre-release and currently I expect this to be the last release with bigger changes, although you'll come to see that this time the big changes are mostly under the hood.
Dungeon Graphics & Backgrounds: Rust Implementation
SkyTemple is originally written in Python. While Python is a pretty simple and powerful language, it's also pretty slow, due to be interpreted.
Back in SkyTemple 1.4.0 we introduced the concept of "Native File Handlers", which since are enabled by default (but can be disabled in the settings). When enabled SkyTemple uses a alternative implementations for the code that actually manipulates the files in the ROM, written in Rust, a fast compiled programming language.
In SkyTemple 1.4.0 we introduced Rust for dungeon data, map backgrounds, move data, item data, Pokémon data and other small things. This update now also adds implementations for dungeon tilesets, dungeon backgrounds and general backgrounds.
Since it's a new implementation, it might be a little buggy at first. We tested it, but we didn't test every single edge case. So please give it a try and let us know if you run into any issues! If everything works, you should not notice a difference to before, except for editing dungeon graphics and general backgrounds to be a little bit faster, especially when im- and exporting.
FixMemorySoftlock Update
End has updated the FixMemorySoftlock. While this is going to be mostly useful for the upcoming update of the Randomizer, this can also be useful in your own ROMs, as sort of a fail-safe:
Updates the FixMemorySoftlock patch to a new version. The patch will now prevent crashes caused by the game running out of memory by replacing the sprite that can't be loaded with a default preloaded sprite. This should fix all the cutscene crashes caused by memory errors.
Preperations for JP Support
We have updated pmdsky-debug to version v0.7.0+a0aa596e1c which contains a lot of symbols for the japanese ROM of the game, thanks to Laioxy. This brings us a bit closer to supporting the japanese ROM! With your help, maybe we could get JP support ready for version 1.6.0, but there's still a lot to be done, see our previous blog post.
Download and Changelog
You can find the changelog and downloads on our downloads page.
What's ahead?
Thanks everyone for your support and for testing this new pre-release!
For 1.6.0 I at least still want to get the wiki ready so that we can add buttons to the UI that will bring you to a help page in the wiki, based on what page you are on.
There's also a GitHub project for all issues I can fesiably see in 1.6.0. As you can see there are quite a bit of features on there, especially related to hardcoded data tables that aren't editable yet. I don't plan to work on any of these for 1.6.0 yet though. So if you want, why not grab the code and add these yourself? Please comment the GitHub issue if you give it a shot, so we don't accidentally end up working on issues at the same time. Even if you are just trying but ultimatively don't end up finishing it, I invite you to give developing for SkyTemple a try and I'm always happy to lend support, just ask on the GitHub issues.
That's all for today! Until next time!
Capy
Japanese ROM support for SkyTemple - the current state (SkyTempleの日本語ROMサポート - 現状)
DeepLを使ってこのテキストを日本語に翻訳することができる。
Hi!
This is an update post about the current situation with SkyTemple's support for japanese (JP) ROMs.
Currently SkyTemple does not support japanese ROMS. There are a few things needed for that, that I will outline below.
Function and Data Symbols
SkyTemple mods memory locations inside of the ROM files (so called "symbols"). The location of these symbols is different for each version of the ROM. We already have all symbols SkyTemple needs for the EU and NA ROMs but not for the japenese ROMs.
The user Laioxy recently contributed a lot of symbols for JP to pmdsky-debug. SkyTemple uses pmdsky-debug for looking up most symbols.
We need your help to get the rest of the symbols filled! I updated the GitHub issue where we document what symbols are still missing.
ASM Patches
SkyTemple is bundled with a lot of ASM patches. Many of them are needed to modify basic functionality of the ROM, such as the Actor List.
I have created a GitHub issue that lists all patches we at least need to get the Randomizer fully working. Having these patches will also allow for most functionality inside of SkyTemple. Without some of these patches even basic editing functionality would be very limited in SkyTemple.
Text Strings
The ROMs contain files with a lot of text that the game references. This file is just a long list of text strings. The exact order and number of text strings is different between versions. SkyTemple needs to categorize these strings into different sections to be able to display and edit things like Pokémon names. Thankfully the user Darkaim has already contributed a categorization, but you can also find and double-check that here.
UI Localization
Lastly it would also be great to have the SkyTemple UI itself be translated to Japenese. While this isn't strictly neccesary to mod japenese ROMS, this would make it easier for japenese speakers to use SkyTemple.
If you want to help, you can find the translation project here: https://translate.skytemple.org/
What now?
In summary I would really like for SkyTemple to support Japanese ROMs, but I need your help, especially if you speak Japanese and are able to read and research the missing bits. You can contribute via GitHub, ask questions by replying to this post or contact our community Discord server.
New Release: SkyTemple 1.5.5
Hello!
A new bugfix release of SkyTemple has been released: 1.5.5. Download here.
This release fixes some minor annoying bugs and properly marks the Japanese version of the game as unsupported. If you want, we could use your help getting the Japanese ROM supported.
We also have a wiki now! We are still working on writing content for it. You can help too if you want!
Also I'm very excited to learn, that there is now a decompilation project for the game.
Hi! We have a wiki now: https://wiki.skytemple.org/ - It's still empty and I very much need your help to fill it! If you want to help fill it, head over to the project organization discussion (https://wiki.skytemple.org/index.php/SkyTemple_talk:Wiki)!
New Pre-Release: SkyTemple 1.6.0a2
Happy #MysteryDungeon day!
It's time for a new alpha release for the upcoming SkyTemple 1.6. These releases help me test new features and they allow you to use these features before everyone else!
Have a look at the full changelog and download page and see the list of highlights below.
New Emulator Integeration
The highlight of the 1.6. release is going to be a completely rewritten emulator in the Script Engine Debugger. It is still based on the popular DeSmuME, but it's now integerated in a way that allow it to run fast even on lower end machines.
This release additionally fixes an issue that prevented you from saving scripts in 1.6.0a1. Please let us know if you encounter any other issues, but so far it seems pretty stable!
Monster House Spawn Weights
You can now edit the spawn weights for Pokémon in dungeon seperately for the regular spawns outside of monster houses and the spawn rates inside of monster houses. In the base game these were always the same, so we didn't know what/if the second set of spawn weights was used in the game. Now we know and you can edit them! By default the spawn weight inside of Monster Houses will automatically update to be the same as the regular spawn weight, but you can change that.
Mass-Export for Pokémon Data
SkyTemple now gives you the option to export the data of all Pokémon to XML at once. You can find this under the "Pokémon" tab.
I also plan to add a similiar feature for ExplorerScript in the debugger. That feature would allow you to decompile and export all scrripts as ExplorerScript into a directory, where you can then edit them. When you are done SkyTemple would then allow you to re-import and compile all files you changed. This would allow you to edit the scripts more easily with an external editor of your choice. But no promises that this feature will land for 1.6.!
Some minor bugfixes and improvements
We fixed some minor things and added some small improvements. For example there is now a little warning shown for Pokémon entries which can't be used inside of dungeons. We also updated some names and descriptions for move settings that were previously marked as "Unk" (unknown).
All changes from SkyTemple 1.5.2. - 1.5.4.
This new alpha release now also contains all the bugfixes and enhancement of the newest stable SkyTemple release.
That's all for today. If you want to help with development, please report any issues you encounter. Additionally, check this previous post for some GitHub issues where we need some more information to fix the issues. If you can help, that'd be great!
Have a great day!
I did some checking on reported issues with SkyTemple sent via the built-in error reporting (thanks to everyone that opted-in to that!).
I need some help reproducing some of these issues. If you have a hint, let me know by mentioning @skytemple@blog.skytemple.org, @capypara@guild.pmdcollab.org or replying to the GitHub issues:
- https://github.com/SkyTemple/skytemple/issues/579
- https://github.com/SkyTemple/skytemple/issues/580
- https://github.com/SkyTemple/skytemple/issues/581
- https://github.com/SkyTemple/skytemple/issues/582
- https://github.com/SkyTemple/skytemple/issues/583
- https://github.com/SkyTemple/skytemple/issues/584
- https://github.com/SkyTemple/skytemple/issues/585
@PMDCollab and @skytemple have a status page now: https://status.pmdcollab.org
Additionally this account will post status updates, automated and manual. It's hosted on botsin.space, so even if Guild goes down, we'll inform you of updates here.
Contact @capypara for questions, etc - I will sign manual updates with /capy
/capy
The SkyTemple Podcast is back! This time it's hosted by TheSmingle and is all about the hacks submitted to the recent Hack Jam. You can find the first episode here: https://www.youtube.com/watch?v=lqIofwJOoGA - Three episodes are already up.
New Release: SkyTemple 1.5.4, Randomizer 1.5.4
Hey!
Here's another hotfix release:
This release fixes an error when SkyTemple was trying to decompile scripts.
The reason for this error is that something in the dependency igraph
changed.
At the moment SkyTemple is configured to optimistaically pull in new versions of its dependencies. This has the disadvantage of breaking unrelated things even in minor bugfix releases like the last one, but has the advantage that SkyTemple doesn't stick around using ancient versions of it's dependencies for years.
In the next version I still want to define what new versions SkyTemple can pull it's dependencies from though. Sadly in this case it would not have helped, since the version jump in igraph
was from version 0.10.4
to 0.10.5
, so on "patch" level. I would have configured SkyTemple to pull in patches like this anyway.
For more information, see the issue about this on skytemple-files.
We are aware of a regression in SkyTemple 1.5.3 that prevents users from decompiling scripts (https://github.com/SkyTemple/skytemple-files/issues/378) - we are working on fixing this and will release an update soon!
New Release: SkyTemple 1.5.3, Randomizer 1.5.3
Hey!
New releases of SkyTemple and the Randomizer have been published.
The release fixes an issue with the "UnusedDungeonChance" patch. Previously it was possible for the game to crash while attempting to generate a room with mazes in it.
To update and for changelogs, see the download pages:
For more information:
-
You can find the Pull Request by End here: skytemple-files#34
-
You can find the commit in End's patch repository here: EoS-asm-hacks
There's going to be a new bugfix release for SkyTemple and the Randomizer soon, however at the moment the Windows build pipeline is not working, due to issues outside of our control. As soon as it's available again, we'll try to get that update out. It'll fix issues related to crashes when applying the "UnusedDungeonChance" patch.
Hi! For updates, see the "Articles" tab above. I'll post smaller updates as notes, but in general, the "Articles" section will contain important information, such as new release announcement, etc.
New Blog
Hey readers!
You are reading the first post on https://blog.skytemple.org - this is now the new place for new announcements for the SkyTemple project, most notably the app itself and the Randomizer.
I will announce new versions here, including pre-releases and some general updates I and other contributors are working on. And I'm always happy to hear your general feedback.
You can subscribe to this microblog via RSS or any Fediverse (eg. Mastodon account). You can also react and reply using any Fediverse account.
Thanks everyone for using SkyTemple!
Current versions
The current versions as of posting this are:
You can see the current changelogs and downloads by clicking the links.
Current beta
There's currently a beta for a new and improved emulator integeration for the debugger. If you want to help test this one out, you can find that one here. You can let me know of feedback you have by using the comments of this post, or by joining our community Discord server.