Commenti
discussione: The Surge
Illinois, USACJacobsSA7 years ago

Okay, I've done some testing. I started up the same save file each time in an Ops center, went into the relevant interface for three or four minutes, then left and returned to the Ops center to save the game. Here are my findings:

Loading screens: Timer DOES pause Pause menu (start button): Timer DOES pause Pause menu (inventory): Timer DOES NOT pause Med-Bay interface: Timer DOES NOT pause Crafting interface: Timer DOES NOT pause

So, the game doesn't pause IGT during menus after all. I think that makes my case a lot stronger, personally.

What I think causes the discrepancy is that the game only counts up time when you are alive and in control of Warren, so certain situations like when you flop over after a death, the ensuing loading screen, et cetera stop the timer until you're alive again. I'll see if I can do some more tests or use cheat engine to figure that part out but I don't think it really matters that much since imo that falls under the umbrella as loading screens.

discussione: The Surge
Illinois, USACJacobsSA7 years ago

I'll do some testing to see where the game pauses time and get back to you on it. I'm curious to see where the discrepancy actually happens.

discussione: The Surge
Illinois, USACJacobsSA7 years ago

Hi! I am interested in running this game, and I was thinking that it might be better to measure runs through ingame time rather than realtime. There will be a difference of several hours between the two due to the game not counting time during loading screens, certain menus, and several other small cases. Observe:

https://puu.sh/vZOBq/93244e8c6e.png

This run took me about 4 hours and 30 minutes, give or take. I think this would be a much better way to measure a run for several reasons: First, it costs no time to check it because pausing and quitting out to the main menu stops the timer. Second, it is machine-handled and therefore is independent of load times and so on. And third, it demonstrates only the amount of time the player spent actually playing the game.

Just something to consider, because there are a lot of outside variables that affect realtime but very few that affect ingame time.

Also, the quicksave/quickload category may want to be removed since that functionality was unintentional and was removed in the latest patch.

discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

https://puu.sh/uEm75/a84b74ee51.png

I found a value for the ingame timer using Cheat Engine! Note that this is NOT the NYM HC-specific timer, it's just a float value that determines how long you have been in gameplay. Here are my findings based on some testing:

  • First and most importantly, it automatically stops counting up when you are not in control of Max, in absolutely any situation. And I mean ANY situation: The short transitions from cutscene to gameplay, while doing a scripted melee kill, bullet cams, cutscenes, anything. Basically, it only counts up when your crosshair is visible on the screen and never anywhere else.

  • This specific timer resets to 0 at the start of every level, so it probably couldn't be used for keeping time in a speedrun unfortunately.

  • It is NOT based on your framerate, it is framerate independant.

  • It DOES slow down and speed up with 100% accuracy (I compared it to the NYM ticker to make sure)

So we're one step closer to solving the puzzle. Now that I know there's a gameplay timer, I can search for it while playing New York Minute Hardcore and see if it carries over between levels. Since it's a float value, it changes position when you close/reopen the game, so I'll need to see if there's something I can do to make it stick around as well. Signs are pointing toward the NYM HC timer being 100% accurate to real-time, but we'll see!

JOEdrinksBEER piace questo
discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

It might very well be possible! What I'd need is a memory address that the game uses every time you are in a cutscene, which most likely exists. All I'd need to do then is have it say "when this address is true, pause the timer, and when it's false unpause it". What I could do is use existing load time removal addons (the Dishonored one by Fatalis seems to be a common base?) and just tweak it to use MP3's values instead.

I'll look into it! The only problem is getting Cheat Engine or another memory scanning trainer to work with Max Payne 3. Thanks to Rockstar's kinda-sorta-DRM, the game really really doesn't like code injection. If you try to hook it up to something like cheat engine or another trainer, half the time the game just won't load at all. But I might be able to get around that, unless they've loosened the reins now that the multiplayer is deceased in which case I won't have to!

In NYM HC news, I asked on the OpenIV forums if you can open Max Payne 3's .sco files (scripting files) but there is no decryption method for them yet. Max Payne 3 is kinda low on the OpenIV development totem pole because GTA 4 and 5 are much more popular for modding, so it's not a planned feature right now. So if any of this stuff requires accessing the .sco files, unfortunately we're outta luck I think.

discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

So, a couple of miscellaneous finds so far:

First, here are all the various things you can do in gameplay and how much they slow down time. These values are linear on a 1:1 scale, so 1.0=100% speed, 0.1=10% speed and so on. These values are found in Common.rpf/Data/Tune/Timewarp in Timewarp.xml, as well as Update/Common/Data/Tune/Timewarp (which is a different directory used for pairing DLCs to the game).

http://puu.sh/uxyE1/b207616335.png

However, this is just the flat rate, called 'WarpScale'. These values are modified by a couple different variables further down in the file called 'WarpBlendRate' and 'WarpLifetime'. These two APPEAR to control the ramp down from realtime to the speed set by 'WarpScale' for the various actions you can perform, but I'm not sure. Either way, these values are freely editable including "none" which is just realtime, and you can change them to your liking to affect the game in silly ways.

Next, I found the following references in the various New York Minute UI files that refer to a variable called "Arcade.TotalTime" as well as the ticker itself that displays your time (the one in the top left corner) having a special ID for other things to refer to it by.

https://puu.sh/uwnBz/9bf1f6b6b2.png

https://puu.sh/uwnE3/74f15b882d.png

What I'm hoping this means is that the ticker shown at the END of a chapter has an ID of its own, meaning there will be references to NYM Hardcore to be found pointing toward it.

http://puu.sh/uxzxB/6b13e91405.png

There's also this file in the arcade folder which contains some properties for displaying the timer at the end of the level in NYM mode. The display for the NYM end slate UI contains the following:

http://puu.sh/uxzQh/ae6f3d1eb3.png

So let's run through it part by part. In descending order, the strings are:

  • ArcadeLevelEndHeader & AM_NEW_YORK_MINUTE (AM from hereon stands for 'arcade mode' I assume), which is just the text above the timer that says 'new york minute'.
  • A blank string with no text to display? Could just be filler space.
  • ArcadeLevelEndTime, which is presumably the timer that displays your total time. In NYM this is your time remaining, in NYM HC this is your ingame time.
  • ArcadeLevelEndComp & AM_LEVELCOMP, the text that says 'level complete!' at the end of a normal NYM run.
  • ArcadeLevelEndTimeClock, the little clock graphic that appears next to your time.

Then there's an invisible divider followed by AM_CONGRATS, which appears to refer to the "Congratulations!" that appears when you beat New York Minute Hardcore (and nothing else).

Which we can deduce two things from: First, NYM and NYM HC do use the same file hierarchy since both UIs are here and combined. Second, NYM HC must somehow still use 'ArcadeLevelEndTime' since there is no specific timer block for it in the UI, perhaps it is repurposed in the code only when you're playing NYM HC.

http://puu.sh/uxAFD/075141d814.png

Oh, and there's also this reference to an action called "PauseTime" in the NYM ticker UI file, but I haven't found references to it anywhere else yet.

BigPapi piace questo
discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

Hello, I am CJacobs. I run the game on NYM HC and am an amateur game-popper-opener. I've taken Max Payne 3 apart piece by piece and I can almost put it back together! And maybe you can help me.

New York Minute Hardcore is a relatively unique mode in that it's the only one that measures your ingame time (which it gives to you at the end of the run). I want to figure out how it does that so that we can know what counts as gameplay. The problem is, I'm not very good at reading code, and I think it'll be a lot easier to figure this stuff out if I have more eyes helping me comb through it! The information might be hard coded and thus un-viewable by us, but let's hope it's not!

You can help me by downloading a program called OpenIV, found at OpenIV.com. It's the designated Rockstar Games game dismantler, and while Max Payne 3 is a bit different than GTA 4 it runs on relatively the same engine and so a large portion of the file hierarchy is exactly the same. You'll need the PC version of Max Payne 3 and the current patch (which you should have if you own the game on Steam!) and that's about it.

So far I've found values and references for normal NYM that allow the timer to pause as it does during cutscenes, and I think NYM HC probably doesn't have its own file hierarchy and just piggybacks off of a lot of that code.

edit: As a warning, if you are going to mess with anything, right click on the relevant file and export it to make an easy backup first. Max Payne 3 is a very fickle 40GB beast held together with bubblegum and duct tape and it will collapse under its own celluloid if you poke it too hard.

BigPapi e JOEdrinksBEER ti piace questo
discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

That's fair, I guess my point was that we really have no way of testing if the NYM HC timer actually is accurate to the real time you spent in gameplay or not, but I guess it's safe to assume it is.

Maybe sometime when I have a free afternoon I'll do a run through of NYM HC with no bullet time and then chop it up to be only the various kinds of gameplay (normal gameplay, scripted bullet time sequence, etc) with no cutscenes and see if the timer matches up. What I currently assume is that whenever the NYM timer in the top left is ticking down, the gameplay timer is ticking up, but as taking the game apart to find out is not really feasible I might as well figure it out the hard way!

Before I do that though I'll crowbar the game open with OpenIV and see what I can find re: NYM HC. I assume a lot of the scripting is just gonna be copy/pasted from normal NYM or just reference it altogether.

discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

Just wanted to post to say thanks for doing this. I noticed that it was a bit of a mess but I couldn't fix it up myself, so I just submitted under what was there!

discussione: Max Payne 3
Illinois, USACJacobsSA8 years ago

Hi, hello, I have been doing some testing about this (what testing I can do in NYM HC because it's such a lengthy/difficult run) and it appears that Howhaveyouben is right, going into bullet time does slow down the ingame timer. Here are my fastest two runs, not sure if you can use bbcode tags here:

https://puu.sh/uuTK7/e8d5580d3f.png

The top one read "51:38" on the ingame timer at the end, while the bottom one reads "50:34" despite being a longer video in length by two whole minutes. I had about ~60 minutes left on the NYM timer in the top left corner on both since there's the same amount of enemies no matter what.

There's a lot of uncertainty as to what 'counts' as slowing or stopping the timer, stuff like: whether or not bullet cams slow or stop the timer, or the scripted shooting gallery sequences, as well as other moments where you're not in control of Max but not in a cutscene such as when he falls over after stuff explodes in the burning building chapter or doing a melee kill.

I think these things would be really hard to test in a vacuum given the nature of NYM HC and that it's the only category that even measures ingame time, so I would be in favor of it being switched over to measured in realtime like the rest of the categories if that decision was being voted on. IGT is just too unreliable, I think.

edit: And maybe 'unreliable' is the wrong word since it is computer-measured and all. I just think it's impossible to tell what your time is/will be vs a standard timer, so it makes the run very hard to gauge while you're doing it since a longer run can have a shorter IGT at the end.

Info su CJacobsSA
Iscritto
8 years ago
Online
5 years ago
Runs
2
Giochi corso
Max Payne 3
Max Payne 3
Ultima corsa 6 years ago
6
Runs