Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 3, 2014 1:43:03 GMT
Despite my terrible programming skills, after talking to DrTChops, I was able to write a component for LiveSplit, which automatically detects whatever the game is loading and if it is - automatically pauses the "Game timer" (LiveSplit has 2 timers Real Time and Game Time). The other thing, I'd recommend is installing a small component called: Alternate Timing Method. It's available on - livesplit.org/components/. * - keep in mind that the Compare Against option may be ignored, if you set other Timing Method in Layout options for your timer. If someone wants to look into a code (for bugs?), it's available at: github.com/SuiMachine/LiveSplit.HitmanAbsolution.
|
|
|
Post by dareka00 on Dec 3, 2014 8:50:50 GMT
Nice job, the component works well on the levels loadings and level-reloads loadings but it doesn't detect in-game hidden loading time, for example the terminus elevator and the train station elevator have a hidden loading time after the cinematic(s) if your computer is really slow it can even show a level loading screen. you can clearly see this on my old runs when i still had a dual core CPU and a hard drive pretty much full here is a direct link to what i'm referring youtu.be/Bk_LMsKTGxQ?t=15m29s If you could fix this small issue it would be perfect.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 3, 2014 15:52:41 GMT
It's all about finding a proper address or a pointer. I'll try to look further for that.
|
|
Kotti
Administrator
Posts: 55
|
Post by Kotti on Dec 6, 2014 2:14:03 GMT
Well damn, that's really cool, thanks for making this. Gotta try this when I want to play Absolution again for whatever reason.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 6, 2014 18:02:59 GMT
Well, I think I've found a more accurate address, which should work for every loading (hopefully). Now I just need to figure out how to write that (since it's not base address + offset).
Scrap that. The address I've found was a bit glitchy. Instead I used 3 different ones. It's still not perfect, because I believe even if a level is loaded but cinematic still plays, the address that I considered to be for loading says it's "true". But oh well - there isn't anything which straight up says whatever there is a loading or not. This is also why, the timer didn't stop in mid-level loading. So, to circumvent that, I found an address which tells whatever the game is in Focus mode or not (when played it's true, when alt tabbed or in menu - it's false). However, I didn't want count out the menu navigation, so again - I found an address which tells whatever the menu is opened or not. And with these 3 bool values wrote when the timer should be paused and when not. It's a bit more heavy on CPU, though, but with all that hopefully mid-level loadings should be counted out now.
I only hope, I haven't created a scenario somewhere else in a game, where the timer will be paused (needs to be tested). Dropbox link and Github were updated.
|
|
|
Post by dareka00 on Dec 8, 2014 9:49:20 GMT
The combo of the 3 different addresses don't work for me i tested the terminus and the train station elevator also i don't see livesplit using a lot of CPU it was using 6% of my i5-4570, i think i updated properly the dll since the timer stop for a very short time when it's loading the end level menu after a level it was not doing that on the 1.0
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 8, 2014 13:29:23 GMT
Weird. Are you running a game in windowed mode? Maybe a behavior changes in fullscreen or even borderless fullscreen windowed mode (I'm currently stuck on one monitor, so I can't check that ) Basically now, it should pause on loading in before mission and each time there is a black screen with a loading mid-mission (it won't pause if the game is loading something in a background during in-game cutscene). Alt tabbing during the mid-level loading and then jumping back into a game will make the timer run again.
|
|
|
Post by dareka00 on Dec 8, 2014 14:02:00 GMT
You are right i misunderstood what the updated component did it's working as intended sorry, if you want me to experiment more stuff feel free to ask
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 8, 2014 17:17:03 GMT
But.... if someone can be prove that it's possible to skip parts of the in-game cutscenes if the game has already loaded the next chunk of a mission (ergo: current method is too inaccurate), I'll look further into it.
|
|
|
Post by dareka00 on Dec 8, 2014 18:21:40 GMT
I don't understand what you are referring to, the only inaccuracy i see is the lack of detection of hidden loadings (terminus elevator, train station elevator, the cut-scene in the third part of the orphanage ( underground), and blackwater elevator) I can record a vid if you want to see how your component behave on my end if you want
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 10, 2014 1:11:10 GMT
OK, so I looked further. There is something in a memory which tells whatever the game is during a cutscene in which the level is loaded, but I can't for the sake of it find a pointer for it (since it's not static).
--EDIT-- I found something else. Got a pointer for that, but I'm not so certain about it. Do we know which cutscene are loading screens? The pointer I've found was for Terminus level 1 elevator, but I really need to test it further. The one at the end of Run for your life for me seems to be of a consistent length (what I say, is that there may be a minimal length for this cutscene, before you can skip and it may be in a moment when the loading screen pops up on slower machines). The one in the elevator in Terminus (part 1) however doesn't seem to have a minimal length and it may be skipped as soon as the 2nd part of a level is loaded).
Could you make a list of cutscenes / places, where you think a game is loading chunks of level in the background? Doesn't have to be a full list - just few more than elevator in Terminus Hotel and the elevator in Run for your life.
And yes, I can clearly see now, that there is at least one place, which the current method doesn't exclude.
|
|
|
Post by dareka00 on Dec 10, 2014 10:41:27 GMT
The three places i'm 100% sure there is a loading are : -terminus elevator -the cut-scene in the third part of the orphanage ( underground) - Blackwater elevator
There are other place i'm not sure : -The cinematic after the library, this one is from what i remember from the time i had my old pc 2 years ago, i remember there was something about that load but there is a good chance i'm wrong about this one -the third part of the first level (manor entrance ) the loading would not be in a cinematic but i feel the door is a bit slow sometimes
I think this list is very likely to be incomplete, i think if you find a pointer for "in level unexpected loading" we will see the timer stop briefly at a lot of places About the run for your life elevator you are right, my memory betrayed me
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 11, 2014 2:53:47 GMT
The three places i'm 100% sure there is a loading are : -terminus elevator -the cut-scene in the third part of the orphanage ( underground) - Blackwater elevator There are other place i'm not sure : -The cinematic after the library, this one is from what i remember from the time i had my old pc 2 years ago, i remember there was something about that load but there is a good chance i'm wrong about this one -the third part of the first level (manor entrance ) the loading would not be in a cinematic but i feel the door is a bit slow sometimes I think this list is very likely to be incomplete, i think if you find a pointer for "in level unexpected loading" we will see the timer stop briefly at a lot of places About the run for your life elevator you are right, my memory betrayed me -the third part of the first level
I compared your old, new run and my loading times - seems consistent - almost exactly 12 seconds. -The cinematic after the library
Yeah. - Terminus ElevatorIs indeed a loading screen and you can skip it as soon as the next floor is loaded. (I have a pointer for that a new version should already exclude it) -the cut-scene in the third part of the orphanage ( underground)
I wonder which. The one where the guy shoots at you - no. But the prerendered obviously is and it seems like a current addresses don't exclude it. So I added another one. - Blackwater elevator Yes. But the thing is - it's a mix of both prerendered cutscene and rendered in real time. Pre-rendered should already be excluded with current addresses. Now I wonder, when it will happen that one of the addresses that I add, ends up being true in some random point of a game and breaks the game. Or maybe I'm dumb, and there really are addresses which say directly whatever the game is loading and I just can't find them and I'm working around them like a retard. As previously - updated both dll and github.
|
|
|
Post by dareka00 on Dec 11, 2014 10:52:27 GMT
Thank you for your hard work i will test everything tomorrow, i will keep you updated.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 12, 2014 9:16:48 GMT
Yeah, so... Rosewood elevator is incorrect.
|
|
|
Post by dareka00 on Dec 12, 2014 22:12:03 GMT
I haven't had the time to test everything but i tested up the end of rosewood and i found some issues : The time don't restart properly after the rosewood underground cinematic (video 1) Also t in the terminus elevator the timer pause itself too early as the first cinematic is unskippable (for my PC at least) and stay paused too long after we can skip the cinematic (video 2) I also already found one unexpected place where the timer is stopping and we didn't know there was a loading in the cinematic where we "kill" diana (video 3) youtu.be/Oi6MVpvJJ6Myoutu.be/PgyTYJGVJPUyoutu.be/67lauVx142s
|
|
|
Post by dareka00 on Dec 13, 2014 0:02:04 GMT
I just noticed something every time there is a loading ~1min before a full level loading the full level loading is a common game-crash -Manor second floor has a small loading during diana cutscene according to the pointer and chinatown is a common game-crash -In chinatown we do a checkpoint loading to gain few seconds, Terminus hotel is a common crash place - Orphanage underground has a small loading during the cinematic, The bar level is a common crash place - The level loading of the bar would be what interfere with the guns store loading ? There is one thing going against this though the tailor level is a ~18Secs split and i don't remember Blackwater being a common game-crash loading but this level also doesn't unlock any gameplay perk By the way if someone i would like to know where the gameplay perks are stored since resetting the save file doesn't reset them
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 13, 2014 0:06:16 GMT
There just must be some way of finding proper loading addressees / pointers to addresses, but everything I try seems to fail.
I know about the issue in "63". "14" is not that much of a loading, as it is an effect of prerendered cutscene that tries to be played (at least I think it is). "32" is weird, because I really thought I found the pointer to a proper address. Turns out it's probably not that - for me it always switches to false and plays the timer in a moment I skip a cutscene, but it seems like it's just some junk that always switches to true during that cutscene and switches to false after X seconds (would make sense, because pretty much all of the loadings I had ended when Birdy said "lion's den". Damn.
I truly hate this game's engine now.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 13, 2014 0:37:44 GMT
I just noticed something every time there is a loading ~1min before a full level loading the full level loading is a common game-crash -Manor second floor has a small loading during diana cutscene according to the pointer and chinatown is a common game-crash -In chinatown we do a checkpoint loading to gain few seconds, Terminus hotel is a common crash place - Orphanage underground has a small loading during the cinematic, The bar level is a common crash place - The level loading of the bar would be what interfere with the guns store loading ? There is one thing going against this though the tailor level is a ~18Secs split and i don't remember Blackwater being a common game-crash loading but this level also doesn't unlock any gameplay perk By the way if someone i would like to know where the gameplay perks are stored since resetting the save file doesn't reset them This is gonna sound dumb, but... hm5 and savedata.dat are indeed storing most of the data (checkpoint, statistics, play styles, challanges). However, entire safehouse section (weapons, assassin techniques, disguises) seems to be taken directly from server (try running it Steam Offline mode, the result should be completely different).
|
|
|
Post by dareka00 on Dec 13, 2014 11:13:18 GMT
There just must be some way of finding proper loading addressees / pointers to addresses, but everything I try seems to fail. I know about the issue in "63". "14" is not that much of a loading, as it is an effect of prerendered cutscene that tries to be played (at least I think it is). "32" is weird, because I really thought I found the pointer to a proper address. Turns out it's probably not that - for me it always switches to false and plays the timer in a moment I skip a cutscene, but it seems like it's just some junk that always switches to true during that cutscene and switches to false after X seconds (would make sense, because pretty much all of the loadings I had ended when Birdy said "lion's den". Damn. I truly hate this game's engine now. The component right now is working very well even if it remove more time than it should if it behave the same way for everyone leaving it this way is fine If you don't feel like searching tenth of hours in this stupid game engine, i understand why and i won't mind at all
|
|