Skip to content

GameMaker 2024.13 support#2105

Merged
colinator27 merged 10 commits intomasterfrom
2024-13-support
Apr 20, 2025
Merged

GameMaker 2024.13 support#2105
colinator27 merged 10 commits intomasterfrom
2024-13-support

Conversation

@colinator27
Copy link
Copy Markdown
Member

@colinator27 colinator27 commented Apr 17, 2025

Description

Adds support for the new file format changes made in 2024.13, including:

  • Updated room format (weird instance ID list that I don't fully understand the purpose of)
  • Path layer type changed from 0 to 7
  • Sprite vector format (very similar to our existing SWF shape structures)
  • UI layer format
  • Updated sequence format (adds width/height, presumably for ease of use within UI layers)

Caveats

Only tested on some basic games (and my test suite of older games), along with Pixel Descent. Could use some more testing.

There's also no UI support for the new UI layer chunk at the moment. That can probably come in future PRs; I'm not sure how we want to handle it.

Notes

This is a draft currently, as I need to finish documentation of all the properties while allowing for testing. Documentation is now finished.

(Also, this fixes a race condition in GameSpecificResolver that I ran into during testing.)

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 17, 2025

@JeodC
Copy link
Copy Markdown

JeodC commented Apr 18, 2025

This successfully opens Pixel Descent.

image

Good work.

@colinator27 colinator27 marked this pull request as ready for review April 19, 2025 16:15
@suphamster
Copy link
Copy Markdown

suphamster commented Apr 20, 2025

colinator27, does your commit 6c44752 should fix following error since looks like that it's not when using this version https://github.com/UnderminersTeam/UndertaleModTool/actions/runs/14550804640?
Unsupported layer type 7 at 001FA630 while reading object UndertaleModLib.Models.UndertaleRoom+Layer while reading item 31 of 34 in a list of UndertaleModLib.Models.UndertaleRoom+Layer at 001FA630 while reading object UndertaleModLib.UndertalePointerList`1[[UndertaleModLib.Models.UndertaleRoom+Layer, UndertaleModLib, Version=0.7.0.0, Culture=neutral, PublicKeyToken=null]] at 001FA630 while reading object UndertaleModLib.Models.UndertaleRoom while reading item 14 of 50 in a list of UndertaleModLib.Models.UndertaleRoom in chunk ROOM

@colinator27
Copy link
Copy Markdown
Member Author

colinator27, does your commit 6c44752 should fix following error since looks like that it's not when using this version https://github.com/UnderminersTeam/UndertaleModTool/actions/runs/14550804640? Unsupported layer type 7 at 001FA630 while reading object UndertaleModLib.Models.UndertaleRoom+Layer while reading item 31 of 34 in a list of UndertaleModLib.Models.UndertaleRoom+Layer at 001FA630 while reading object UndertaleModLib.UndertalePointerList`1[[UndertaleModLib.Models.UndertaleRoom+Layer, UndertaleModLib, Version=0.7.0.0, Culture=neutral, PublicKeyToken=null]] at 001FA630 while reading object UndertaleModLib.Models.UndertaleRoom while reading item 14 of 50 in a list of UndertaleModLib.Models.UndertaleRoom in chunk ROOM

Thank you for reporting this! It seems that for some unexplainable reason, the type ID for path layers has changed from 0 to 7. Nothing to do with UI layers at all, apparently, but I've just added support for it now.

@colinator27
Copy link
Copy Markdown
Member Author

I think this has been decently tested now (from others and from some extra testing from myself), so I'll merge this in so bleeding edge can get tested before the upcoming 0.8 release.

@colinator27 colinator27 merged commit fee4371 into master Apr 20, 2025
5 checks passed
@colinator27 colinator27 deleted the 2024-13-support branch April 20, 2025 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants