-
Notifications
You must be signed in to change notification settings - Fork 237
Bytecode 17
Liu Wenyuan edited this page Sep 13, 2020
·
6 revisions
Bytecode 17 is a new bytecode version in the GMS2 runtime (2.2.1+).
Huge thanks to @colinator27 and @LinXP for work on researching this.
For discussion, see: https://github.com/krzys-h/UndertaleModTool/issues/70
This is a new chunk that seems to stand for Texture Group INfo. Probably related to performance improvements mentioned in release notes for this runtime. Here is the specification:
TGIN structure - likely stands for Texture Group Info
Chunk introduced in 2.2.1 with new texture functions
---
Int32 - probably chunk format version number, always 1
PointerList<T> structure. Each item represents a texture group:
32-bit string pointer - Name
32-bit pointer #1
32-bit pointer #2
32-bit pointer #3
32-bit pointer #4
32-bit pointer #5
#1 leads here:
SimpleList<int> of texture page IDs the group has
#2 leads here:
SimpleList<int> of sprite IDs the group has
#3 leads here:
SimpleList<int> of Spine sprite IDs (normal sprite ID, just this has Spine sprites separated) the group has
#4 leads here:
SimpleList<int> of font IDs the group has
#5 leads here:
SimpleList<int> of tileset IDs the group has
For discusson, see https://github.com/krzys-h/UndertaleModTool/issues/79
A new int32 value between ScaleY and the Glyphs list
class UndertaleFont
{
// ...
float ScaleX;
float ScaleY;
if (GeneralInfo.BytecodeVersion >= 17)
int AscenderOffset; // NEW
UndertalePointerList<Glyph> Glyphs;
}
YYC games no longer have empty CODE, VARI and FUNC chunks. Instead, these chunks don't exist at all. See https://github.com/krzys-h/UndertaleModTool/issues/89