Releases: AurieFramework/YYToolkit
Releases · AurieFramework/YYToolkit
v5 open-beta, build A
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
- Check for
- Added
ContainsValueto 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
GetMethodParameterCountfunction - 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
Developers: Your plugins may be broken!
- See API changes in v4 for details.
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
- 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
- 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
- Fixed GetScriptData returning code statics instead of script entries for 2024 runtime games.
More runner interface improvements
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
- 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
- Hopefully fixed D3D11 initialization failing on some games that take longer to initialize.
Instance misalignment fixes
- 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)- Closes #69
Improved x86 support, direct variable access
- 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
StructGetMemberisn't present in the runner interface - Fixed EnumInstanceMembers failing if
StructGetMemberorStructGetKeysisn't present in the runner interface - Added several internal methods to
YYObjectBase - Added a GetVariableSlot function