Skip to content

Releases: UnderminersTeam/UndertaleModTool

0.2.0

12 May 11:42
Compare
Choose a tag to compare

This is a big update brought to you mostly be @Kneesnap with some help from @colinator27. It includes a ton of decompiler improvements that make the decompiled code fully compatible with GMS syntax and more readable than ever before. This update is so big that I decided to call it 0.2.0, increasing that number for the first time ever.

Here is the full changelog:

  • Make the decompiler output syntax fully GMS compatible - @Kneesnap
  • Add support for while(condition), do...while, for and repeat loops - @Kneesnap
  • Collapse complex conditions using || and && - @Kneesnap
  • Support for "else if" - @Kneesnap
  • Support for ternary operator "x ? y : z" - @Kneesnap
  • Fix problems with decompiling increments and decrements when return value is used somewhere - @Kneesnap * Fix problems with string quoting in the decompiler and assembler - @Kneesnap
  • GMS 2.2.2+ support - @colinator27
  • Fix bugs that caused stack variables to desynchronize sometimes and cause decompilation failures - @colinator27
  • Fix dup.l 0 decompilation - @colinator27
  • Rewrite the sprite import/export code to be less buggy and allow usage from scripts - @Kneesnap
  • Allow access from scripts to some more useful namespaces - @Kneesnap
  • Allow script access to JSON serialization - @Kneesnap
  • Add a progress bar for scripts - @Kneesnap
  • Fix incorrect extension filter when importing sounds - @krzys-h

0.1.25

01 Mar 22:43
Compare
Choose a tag to compare
  • Fix problems with SampleScripts crashing when launched from different working directory, add error messages in case it happens again
  • Set up file associations
  • Add regex support in scripts (#122)
  • Better handling of corrupted or not fully supported files (#141)
  • Implement runtime picker, support for GMS2 runners
  • Remove bytecode 17 warning
  • Fix os_switch constant value
  • Add GamepadButton enum to the decompiler
  • Fix problems with decompiling scr_84_debug from Deltarune on Switch

0.1.24

15 Jan 20:36
Compare
Choose a tag to compare
  • Add support for the swap.e instruction (#108)
  • Multithreaded batch decompilation
  • Add error detection for pointer problems (related: #80)
  • Add room PNG export option
  • Fix possible room editor crash
  • Fix a crash when saving audiogroup*.dat (#137)

0.1.23

17 Dec 18:38
Compare
Choose a tag to compare
  • Fix save error when adding new glyphs (#107)
  • Add placeholder editors for TGIN and EMBI (#86)
  • Improve YYC game support (#89)
  • Fix issues preventing saving of new, empty games (#102, #87)
  • Some improvements to the font format (#102)
  • Fix the back button being active even when there is nothing in selection history

0.1.22

29 Nov 19:09
Compare
Choose a tag to compare
  • Make the visual room editor work on GMS2 games (finally!)
  • Remove GMS2 warning messages (it's stable enough already, I guess)
  • Make scaled objects look better in the editor, and fix pixel snapping problems on tiles
  • Now the path to opened file is displayed on the title bar (#81)
  • HeCanBeEverywhere Version 2
    • Make the carousel spin very fast if you have multiple Jevils on screen
    • Fix a bug that caused the "Jevil was defeated" flag getting set by overworld Jevils, blocking you out of the triple Jevil cell and breaking the shopkeeper interaction

0.1.21

23 Nov 22:04
Compare
Choose a tag to compare
  • Make is possible to use asset names directly in the assembler, which greatly simplifies writing scripts
  • Add support for the weirdly encoded popenv to the assembler and decompiler (#90, #95)
  • Support boolean negation properly in the decompiler (#93)
  • Remove unnecessary type casts for one argument expressions
  • Fix a bug causing decompilation of gml_Object_obj_vaporized_new_Draw_0 in Undertale to fail (#85)
  • Add the HeCanBeEverywhere mod to the scripts

0.1.20

19 Nov 21:30
Compare
Choose a tag to compare
  • Fix a bug causing the switch() decompiler to break if the "default" block starts with a condition - @colinator27, #63
  • GMS2 room layers can now be created in the editor
  • os_type constants now get automatically resolved in the decompiler
  • All constants will now be highlighted in the decompiled code view, and their value shown on mouse-over
  • Fix "permission denied" error on opening files in Program Files (permissions are needed only for writing)
  • A bunch of corrections to the data.win format from @colinator27 and @LinXP, and starting work on bytecode 17 (see #70)
    • Fix some of the GEN8 and OPTN format, including the options flags
    • Fix potential crash in EXTN
    • Implement EMBI
    • Implement TGIN (bytecode 17)
    • FontKerning structure, UndertaleEmbeddedTexture unknown variable names, minor corrections to various other tiny details
  • Some code cleanup regarding resources addressed by IDs
  • Add some semi-automated testing code to make sure I don't break stuff going forward

0.1.19

13 Nov 21:22
Compare
Choose a tag to compare
  • A lot of work bringing the room editor up to date with GMS2. The preview doesn't work yet, but everything else should - feel free to start datamining the Deltarune rooms! :D
  • Most of the new GMS2 functions are now named and added to editors thanks to @colinator27
  • Added the ability to sort font glyphs, since they need to be specified in ascending order (#60)
  • The decompiler will now resolve the constants passed to draw_text_halign and draw_text_valign
  • I think I've seen Gaster playing with my keyboard but I'm not sure what he added

0.1.18

12 Nov 13:52
Compare
Choose a tag to compare

Work on the decompiler continues!

  • switch statements now get decompiled properly (finally!) - #6
  • 2D array accesses are decompiled now as well
  • Keys passed as arguments to keyboard functions will be resolved to actual characters or vk_ constants
  • e__VM and e__BG constants in GMS2 compatibility scripts __view_get etc. are now resolved for readability as well
  • Added some more functions I missed earlier to builtin type database (mostly collisions and path planning)
  • Temp var IDs will now properly reset between decompilation of different scripts, giving reproducible output every time
  • Reduce the amount of unnecessary tempvars in the decompiler

0.1.17

11 Nov 22:56
Compare
Choose a tag to compare

Big decompiler update. Please report if you run into any bugs.

  • Add support for resolving of numeric IDs (oh, finally!) - #16
    • This includes even things that are assigned to variables before being used in functions or are passed as arguments to custom scripts
    • As part of this change, arguments that are colors will now be automatically be represented as more meaningful hex numbers
  • Fix the 'dup' instruction with tempvars reversing argument order - #54
  • Reduce the amount of unnecessary tempvars slightly
  • Add automatic translation string resolving for Deltarune - #39