YYToolkit v5 - #77
Draft
Archie-osu wants to merge 16 commits into
Draft
Conversation
* Add a donation clause I'm a poor student, I'm sorry :( * Added Version RC Files Added version files to YYToolkit. * Add stacktraces, fix enumeration being broken - Added stacktrace dumping for when a game crashes - Extended logs to 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 * Fix docs on CallGameScript * DMA for RValues - Add GetMember, GetRefMember, GetMemberCount for RValue, to prevent pointers being restricted to ToMap() * Update version file --------- Co-authored-by: AnnaNomoly <annanomoly@outlook.com>
- Bring in Aurie v2 headers - Remove Print\* functions from module interface - Remove console management functions - Replace Cm\* functions with their DbgPrint\* counterparts where applicable
- Merged YYTK v5 draft - ExamplePlugin has temporarily changed to Time of Mistria - Updated Aurie headers - Split module interface into multiple cpp files - Added private interface to gain control over GM struct operations - Fixed #76 - Fixed #65 maybe? - Reworked interface (DbgPrintEx from Aurie, renamed to ZeusMain) - Removed dead code (TargettedInstruction) - Cleaned up RValue => CInstance relationship - Broke all x86 builds rn
Brought in x86 handlers from v4. Functionality has not been changed. Fixed warnings when compiling on x86 due to size mismatches.
Added some nice-to-have functions for RValues to incentivize not accessing members directly. - Removed internal debugger wait - Added IsUndefined to RValue - Added IsStruct to RValue - Added IsNumberConvertible to RValue - Added IsString to RValue - Added IsArray to RValue - Added ContainsValue to CInstance
- Added the ``RV_GetObjectSpecificKind`` and ``YkSetRuntimeFlags`` methods to the private interface - Added a way to find g_fSuppressErrors for debugging - Removed confusing log message in GetInstanceMember - Disabled callback invocation until interface is ready - Updated ExamplePlugin to current headers - Enabled optimization
- RValue indexers no longer "make up" variables when passed with a non-existent name. This aligns it with the documentation, which has been wrong all this time seemingly.
- Optimized YYError calls from ~1 second to ~300 microseconds - The symbol table is built on YYTK init - Switched from using std::map to a vector for faster building without extra allocations - Added engine stacktracing for YYError - Fixed warning on casting from int64_t to size_t - Updated Aurie headers
- Fixed like 5 warnings - Prevent unnecessary copying of iterator
- Added RV_ContainsNestedValue to the private interface to prevent error printing when ContainsValue is used to check for a variable's existence
- What the actual fuck
- Fixes function array lookup and YYObjectBase::Add lookup on 2024.14 x64 - Fix error when attempting to check for a non-existent variable
- 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
- Added callback as per @PippleCultist request
- Changed RValue offset analysis under YYC to account for two mov instructions that are not adjacent (ie. are broken up) - Fixed #80 properly
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Ultimate Update.
Requires Aurie v2.
Print*functions (moved to Aurie)YYTK::TargettedInstructionZydisDecoderinstead ofZydisDisassembleInstructionvariable_struct_get_hashinsideGetVariableSlotif possiblePpGetCurrentArchitectureinstead of pointer size comparisonMOVduplicatesUNWIND_INFOand make stack tracing available via interface