Skip to content

Releases: AurieFramework/YYToolkit

v5 open beta, build B

03 Mar 17:01

Choose a tag to compare

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

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

  • Updated Aurie headers to v2.0.2
    • Enabled function caching
    • Added MmEnableHook / MmDisableHook, MmGetRegistersForHook
    • Removed nonexistent functions
  • Added a three-stage init format
    • Enables intercepting globalscripts
  • Added detailed message for when a PI function is called before it's init to aid in debugging
  • Marked a few functions in PI as safe to call before init
  • Fixed Code_Execute pattern on 2024.14+ VM
  • Fixed bug that prevented RValue array accesses under VM
  • Fixed 2024.2+ room accesses #67
  • Improved algorithm for finding RValue array offsets (#80)
  • Added a RUNNER_INIT callback

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