SkyTemple

1.6.0

Released on 2023-11-24.

Changelog

SkyTemple 1.6.0 is a big release that brings a lot of improvements and new features.

Please see the SkyTemple blog for more information.

New Features:

  • SkyTemple is now compatible with the Japanese ROM. To make this happen, a lot of people (most notably @Adex-8x and @Laioxy) have put in a lot of work to update symbols, patches and string lists.
    • Not all patches are compatible yet and generally this support is currently considered to have "beta" stability. Please report any issues.
    • "Japanese" can now be selected as localization for the SkyTemple UI. Thank you to our Japanese translators!
  • The spawn weight of monsters inside of Monster Houses can now be specified separately. By default it will be linked to the normal/main spawn weight.
  • Pokémon data can now be exported into XML files all at once.
  • Scenes can now be imported and exported.
  • SkyTemple now has a plugin system. Developers can create their own plugins to extend SkyTemple. See the wiki and blog post for more information.
  • Information on how to edit music in the game via SkySongBuilder has been added.
  • New patches have been added (all thanks to @Adex-8x):
    • AddKeyCheck

      Disallows a party member from using a Key (Item ID 182) in the dungeon menu unless they're standing right below a Key Door.

    • ChangePortraitMidText

      Implements the text tag [FACE:X], where "X" is the new portrait emotion ID to change the currently-loaded portrait to. This works in ground and dungeon mode, and will default to the default (FACE_NORMAL) portrait if the specified portrait emotion cannot be found.

    • DisplayScriptVariable

      Implements the text tag [var:x:y], where "x" is a script variable ID and "y" (optional; will default to 0 if not present) is an index. The text tag will be replaced with the value of the specified script variable.

Improvements:

  • The emulator integration into the Script Engine Debugger has been completely rewritten. It is now much faster than before.
  • Added a hint to all Pokémon entries that do not have stats and/or moves to let the user know that these Pokémon can not safely be used in dungeons.
  • The unknown fields unk13 and unk15 for move data have been renamed to reflect their actual meaning and a description has been added.
    • unk13 is now a toggle that controls if the AI will use the move on frozen targets
    • unk15 is now named to explain that it's value is used to determine what range text to show in the move's description.
  • Tilequant (the tool to convert images) was updated! It now allows more advanced control over color and tile clustering to tweak the result.
  • The dungeon tilesets, dungeon backgrounds and regular backgrounds code has now been migrated to Rust. If you have "Native File handlers" enabled (default) the new Rust implementation is now used. This implementation is much faster than before.
    • If you run into issues, please report them. You can switch to the old implementation by disabling native file handlers in the settings, but this will turn off all fast implementations.
  • pmdsky-debug has been upgraded to v0.8.0+aa4b72a473.
  • The abilities dropdown now allows selecting all theoretically possible abilities, even those not implemented by default (thanks to @ShiningDeneb)
  • The "FixMemorySoftlock" patch has been upgraded to v2.1 (thanks to @End45):
    • 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.

  • Tracking: If you opted into tracking, we now track the number of users actually using each version of SkyTemple. This helps us understand how fast people move to new versions and get a feeling for what versions people may have issues upgrading to, so we can look into potential issues. It also gives us a feeling for how much pre-releases are actually tested.
  • API: Patches can now define parameters what are used only for certain game editions.
  • The debugging flags in the SkyTemple Script Engine Debugger are now properly named to mark that they intend to toggle (thanks to @End45).
  • Abilities and Type names are now always read from the ROM.
  • The "AddTypes" patch was updated so that it now supports setting a type for "Conversion 2" when applying it (thanks to @Adex-8x).
  • The "CompleteTeamControl" patch can now be localized (thanks to @Adex-8x)
  • The "PitfallTrapTweak" patch now hides the UI when going back a floor (thanks to @Adex-8x).
  • The definition of script variables is now read from ROM instead of being hardcoded.
    • Breaking change: If you have modified script variable names in your ROM, loading the ROM in SkyTemple and editing already decompiled and/or modified script might lead to errors on save due to unknown variable names. You need to change the names of the variables to match their new names.
    • There are no plans for this to be editable in SkyTemple, since editing the script variable definitions is likely to just break the existing game scripts and requires much care.
  • When errors occur you can now submit additional information that will help us fix the issue.
  • The arm7 binaries can now be patched (thanks to @adakite1)

Bugfixes:

  • Fixed a uncaught exception in rare circumstances when loading portraits in the editor.
  • Fixed that the dungeon preview feature did not auto-update when changing most text fields.
  • Fixed the Text Strings CSV export file sometimes containing extra line breaks under Windows.
  • Fixed the MacOS version not having background illustrations.
  • Fixed the "Error Details" button not working in some circumstances.
  • Under Windows SkyTemple will now no longer remember the window size when being maximized, which previously resulted in SkyTemple launching in a window that was covering the entire screen but wasn't actually maximized. Thanks to @Emboarger.
  • SkyTemple can now load Pokémon with unused abilities when using the "Native File Handlers".
  • Issues with sprite and portrait downloads under Windows were fixed by changing the download to use HTTP.
  • Patches bundled with SkyTemple now use the same string codec as the game when they manipulate the Text Strings (relevant for JP compatibility).
  • The "AddTypes" patch was fixed to restore the default behaviour of "Normal -> Ghost" and "Fighting -> Ghost" matchups (thanks to @Adex-8x).
  • An issue with a hook address for the "ActorAndLevelLoader" patch for the EU version was fixed (thanks to an anonymous contributor).
  • A rare bug has been fixed that resulted in the level list not being read correctly for ROMs with the "ActorAndLevelLoader" patch
  • Fixed that updating a Pokémon's name always only updated in the UI when the English name was edited, even if the EU/JP ROM was used and the UI was configured to use a language supported by the ROM.
  • Fixed various issues with importing certain Pokémon sprites (thanks to @scbroede).

Internal:

  • The loglevel of SkyTemple can now be adjusted with the environment variable SKYTEMPLE_LOGLEVEL, defaulting to info level.
  • Uses of pkg_resources have been replaced with the new importlib counterparts.
  • Some internal error reporting and the Sentry integration have been improved.
  • Deprecated API functionality that was announced to be removed in SkyTemple 1.6 will now be removed in 1.7 instead.
  • The app is now launched as a proper GtkApplication.
  • In preparation to a future GTK4 migration the view system for modules has been changed and PyGObject typestubs are now properly used and checked. See the blog for more information.
  • We have migrated from setup.py to pyproject.toml for the Python package (PEP 621, PEP 508, PEP 518).

It is recommended that MacOS and Windows users uninstall existing versions of SkyTemple before updating to this version. The same applies for if they decide to downgrade to earlier versions.

Downloads