Skip to content

Releases: AurieFramework/YYToolkit

v5 open-beta, build A

31 Aug 14:55

Choose a tag to compare

v5 open-beta, build A Pre-release
Pre-release

Beta & unstable release, breaks all v4 mods! FOR TESTING ONLY.

Changelog:

  • Updated for Aurie v2.0.0
  • Removed Print* functions from the module interface
  • Renamed main interface (use YYTK::GetInterface())
  • Sped up RValue initialization
  • Moved RValue-handling code away from plugins, decreasing their size
  • Added type checking to RValue
    • Check for undefined
    • Check for struct
    • Check for generic number
    • Check for string
    • Check for array
  • Added ContainsValue to CInstance to avoid conversion
  • Fixed use-after-free caused by returning address of stack variable
  • Significantly sped-up runner interface lookups
  • Fixed runner interface lookup for 2024.14 builds
  • Fixed function array lookup for 2024.14 builds
  • Added GetMethodParameterCount function
  • Fixed potentially infinite wait when waiting for DX11 initialization
  • Added "object-specific" kind identification (for C#)
  • Added error suppression toggle (don't use in plugins)
  • Removed confusing log messages caused by looking up instance members
  • Disabled callback invocation until the YYTK interface is ready
  • Enabled optimization
  • Fixed RValue indexing by name allocating the variable when it didn't exist
  • Optimized error handler (~1 second of runtime down to ~300 microseconds)
  • Added engine stacktracing on crash
  • Fixed variable existence checks producing errors into the console when used to check for a nonexistent variable
  • Optimized Aurie function calling by using caching

More QoL fixes

13 Mar 16:50

Choose a tag to compare

Developers: Your plugins may be broken!

Changelog

  • Added GetMember, GetRefMember and GetMemberCount to RValues
  • Fixed iteration of EnumInstanceMembers stopping if a member variable has a built-in name
  • Added stacktrace dumping for when a game crashes
  • Extended Print statements to a maximum of 4096 characters
  • Fixed YkExtractFunctionEntry crashing when attempting to get an invalid function
  • Fixed GetInstanceMember failing on variables named the same as built-ins
  • Added support for RC versioning

Utilize midfunction hooks

30 Sep 16:01

Choose a tag to compare

  • Changed the new runner interface algorithm to use midfunction hooks instead of VEH
    • This will hopefully improve game compatibility
  • Updated ExamplePlugin's Aurie headers
  • Added version string to the initial print
  • Fixed heap corruptions (hopefully)
  • Fixed runner not being able to track memory properly

2024.6 room misalignment fixes

21 Sep 17:01

Choose a tag to compare

  • Fixed misalignment of the CRoom structure with ISA enabled
  • Bumped API version from 3.4.2 to 3.4.3

Script access in 2024 builds

21 Sep 14:05

Choose a tag to compare

  • Fixed GetScriptData returning code statics instead of script entries for 2024 runtime games.

More runner interface improvements

19 Sep 05:36

Choose a tag to compare

Only a small hotfix.

  • Fixed extension-less games not hitting the runner interface creation breakpoint
  • Added a print statement to let the user know the game has successfully created a runner interface

2024.6 support, crash fixes

17 Sep 16:06

Choose a tag to compare

  • Added a new pattern-less algorithm for getting the runner interface
    • Fixes #68 (Fields of Mistria, Conscript Demo, etc.)
  • Fixed new runner hangs due to heap validation if using VEH
    • Might not only be restricted to VEH, more testing is needed!
  • Fixed Run_Room not being found in newer runners, preventing the tool from booting
  • Removed useless print statements
  • Published PDBs for both x86 and x64 builds

Defer D3D11 initialization

14 Aug 18:41

Choose a tag to compare

  • Hopefully fixed D3D11 initialization failing on some games that take longer to initialize.

Instance misalignment fixes

20 Jun 07:38

Choose a tag to compare

  • Fixed InvokeWithObject raising warnings in the console due to type confusion.
  • Fixed CInstance::GetMembers() failing silently in some x86 games (mainly Islets, GM 2022.6)

Improved x86 support, direct variable access

09 Apr 11:22

Choose a tag to compare

  • Breaking change: Removed DoCallScript support
    • In YYC, this function was useless to begin with
    • In VM, this function was often not found
  • Fixed direct array access for x86 runners (RValue::operator[](int))
  • Fixed direct object access for x86 runners (RValue::operator[](std::string_view), CInstance::at(), CInstance::operator[](std::string_view))
  • Fixed GetInstanceMember failing if StructGetMember isn't present in the runner interface
  • Fixed EnumInstanceMembers failing if StructGetMember or StructGetKeys isn't present in the runner interface
  • Added several internal methods to YYObjectBase
  • Added a GetVariableSlot function