-
Notifications
You must be signed in to change notification settings - Fork 21
ASC 3.0 Compatibilizations for HCMv2 #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v2.x
Are you sure you want to change the base?
Conversation
I checked in my proposal for the In general:
In detail:
I hope, you can agree with these changes or let me know, what you think about it? |
During testing of v2 I found some interessting things with AutoSplitterCore:
|
1. Regarding the Trojan detection in SoulMemory.dllIt is most likely a false positive. The creator of SoulMemory faced a similar issue before: GitHub Issue. He may have resolved it for most antivirus software, but the issue might still persist for certain definitions. You could try excluding the file from scanning. 2. Issues with the AutoSplitter formLiveSplit.Core and LiveSplit.ScriptableAutoSplit depend on libraries like System.CodeDom and System.Web, which only work on .NET Framework 4.8, not on .NET 7/8. Porting them would be a major challenge and could be counterproductive if we aim for compatibility with future LiveSplit versions. The UI will open correctly, but when attempting to fetch the game list from SpeedrunComSharp, it will enter an infinite loop for the same reason. 3. Null pointer exception in CompositeGameList.csI changed the game to an existing one. The variable itself is not actually used, but it must be set for other LiveSplit functions. Changing it replaces the original error with a new exception in System.Web, which is caused by the same issue described in point Here’s the new error:
4. Changes in AutoSplitterMainModule.csDid you already test these changes? I might have overlooked updating that part. |
|
Updates about takings Souls Memory is still getting flagged by Windows Defender. Someone already opened an issue about it: FrankvdStam/SoulSplitter#99. The maintainer mentioned it's mitigated, but not for Defender. Looks like Windows wants you to pay something extra to avoid this. I'm currently working on a bridge to fix the ASL method in HCMv2. After a whole month of trial and error (and a bunch of headaches), I managed to isolate the logic into a new program. It communicates with ASC using Named Pipes and fixes the compatibility issues between .NET 7/8, web, and CodeDom. Honestly, a big achievement! Check out this commit (everything works fine here): 8197819 As for the last point about implementing property change triggers (like INotifyPropertyChanged), I don't think it's necessary at this stage. I don’t see the project growing that much to make it worth it. The unit tests are minimal anyway, and as long as it works for one, it should work for all. [PS] I'm doing some translation adjustments in the app, and probably tomorrow I’ll start tweaking the main page to prepare for the open beta. The site is built with React and hosted on GitHub Pages — check it out if you want: https://neimex23.github.io/AutoSplitterCore/ |
Hey Peter, what’s up? I’m having some trouble with the timer and maybe you can help. A user reported that when the IGT timer is enabled, the HCM timer’s icon animation starts and stops—it’s not the values, they keep updating correctly, but the icon switches between active and inactive states. I’m worried this might be a bug that’s causing the internal timer to actually start and stop. Interestingly, this doesn’t happen on HCMv1 with the current solution. Remember IGT is take it by this function when HCM timer is started |
Hi, I'm fine thanks... regarding your issue, hmm.. The button updates the state in de UI depending on the HitCounterManager/Source/HitCounterManager/Views/MainPage.xaml Lines 161 to 163 in 6daab9d
The data binding is populated by the ProfileViewViewModel here:HitCounterManager/Source/HitCounterManager/Controls/ProfileView.xaml Lines 32 to 34 in 6daab9d
So it all comes down to this logic: HitCounterManager/Source/HitCounterManager/ViewModels/ProfileViewViewModel.cs Lines 516 to 541 in 6daab9d
Which can be modified via the ASC interface by calling StartStopTimer :
In V1 the HitCounterManager/Source/HitCounterManager/Common/App.axaml.cs Lines 186 to 208 in 6daab9d
Therefore I do not expect that multiple timers are running in the background or anything might asynchonously modify the TimerRunning .[Edit1] Just found out that V1 is also calling UpdateDurationInternal when a timer gets disabled, so when enabling or disabling the timer, it should never be necessary to call UpdateDuration manually, in both V1 and V2 versions.
But even when ASC is optimized for the new V2 timer behavior (basically just sparing some Maybe as a test: Remove all So, I do not have a direct answer yet, but I will think myself through it again and I'll let you know when I noticed anything of importance. |
Hey, quick update on this: I simplified the logic in the functions, as seen here: Also, I’ve removed the UpdateDuration calls as we previously discussed. The animation issue is now resolved. I’ve adjusted the polling interval from 1000ms to 100ms in the named pipe client: This helped reduce the delay noticeably. Setting it to 0ms would be too resource-intensive, so 100ms seems like a good balance for now. |
Hey, sounds great. Not sure if this matter, so just for information: In HCMv2 the timer that is updating the label of the timer value is refreshing the text every 300ms - Also just an artificial number that just felt "right".
I think one have to see and maybe adjust it later a little bit when further feedback is collected. So, sounds like a good start to me. If i am not mistaken, you already adjusted ASC to use the latest HCM code (ASC interface), right? Do we still have anything else, we need to look into? |
The initial tests conducted over the past few months have yielded positive results on this end. I still need to continue bug fixing as the beta versions progress, but so far, no issues have emerged regarding the interface between HCM and ASC, for both HCMv1 and HCMv2 |
Compatibility Updates for HCMv2 to Work with ASC v3.0
Summary
This pull request introduces compatibility improvements to ensure HitCounterManager v2 (HCMv2) works seamlessly with ASC v3.0. The modifications address API changes, dependency updates, and ensure backward compatibility where necessary.
Changes Implemented
Testing and Validation
Notes
References:
#36