Legacy UI Style is causing a 3.0s time loss on Mission based runs
1 month ago
Wales
Hilimii
She/Her, They/Them
1 month ago

Hi there!

I’ve been running the Frontline 59 tunnel run category and I think I’ve discovered an issue with UI styles that is affecting times (possibly for runs across all mission based categories too!). Longstory short: Those using legacy UI are suffering a 3.0s time loss at the start of missions because the UI becomes visible 3.0s earlier than those using New UI style. This causes those using legacy UI style to start their timers earlier. I don't believe this would affect campaign runs because the point at which the UI spawns in is irrelevant.

Here’s a video which demonstrates it:

I only noticed this because the tunnel run category is very close and I couldn’t for the life of me work out how I could get a sub 2:31 time, let alone sub 2:29 like FalconLuma. I've been adding 1.60s at the start of my runs to account for untimed acceleration and I figured this might be an issue for other runners too.

Before I discovered this I did some analysis of each run here to try and work out what was going on: https://docs.google.com/spreadsheets/d/e/2PACX-1vQ2DvfbAXI-4Y0BC7Gup30rf-VrxCg9kK3DslBcu_d-PUkm9Uf3sdLIH5PHfQisZTZzsKJX2_OWph1G/pubhtml

My conclusion is that those using New UI style should have +3.0s added to any mission-based runs (such as the tunnel run). There is also a chance that hardware factors in, and we should test this via other runners. Details of which runners in this category need time additions is at the bottom of the sheet link above.

Info: Legacy UI style runs can be identified by their UI spawning in before the world and/or cockpit/plane. New UI style runs can be identified by their UI spawning simultaneously with the world and/or cockpit/plane.

StarPilot87 likes this
Australia

Hi,

Interestingly, I actually was using the legacy UI in my runs - though I do a decent chunk of the run with the HUD turned off and this carries over when restarting the mission, so was behaving more like the new HUD. I did notice that 'sometimes' when restarting with my HUD on, the HUD would flash up early - I just never put 2 and 2 together.

I definitely agree that we need to work out a more consistent point to start timers. In the past - including my obsolete tunnel run - I would start my timer when pressing start on the loading screen. My theory being that since the level is allegedly loaded that any time from there would be consistent across machines, though I've never tested it before as I don't have a second capable machine. I changed my timing method after watching the other runs in the category and seeing everyone else was timing from the first non-black frame.

A quick analysis of my two runs showed the tunnel itself (from 1335km/h to enemy spawn) was virtually identical, yet there is around 4.3 seconds difference.

Below are time measured from pressing start to first non-black frame (new HUD).

Having now done testing, it seems conclusive that these times are consistent, at least on one machine across three completely separate days. With the difference in time between my two runs aligning with the times measured today - all of which was done manually with livesplit so includes my reaction times.

As an interesting result, while it appears the times within a mission is consistent and largely similar within a campaign, it seems the two campaigns have distinctly different times with F59 having a 0.5s shorter black screen than the original campaign.

Obviously, testing on other machines is necessary to confirm whether this is a viable timing method.

Hilimii and StarPilot87 like this
Wales
Hilimii
She/Her, They/Them
1 month ago

Very nice research! Thank you for investigating :)

I've done some more research by timing from the start screen to first visual, results below.

My findings were:

The majority of missions hide the UI at the start to facilitate the title crawl, in these instances, there is no difference between NEW and LEGACY styles. I didn't test every vanilla mission, but for FL59, start to visual is 4.3s on these missions, and in Vanilla is 4.7s-4.8s. Given my reaction time is between 0.2s and 0.30s, this backs up your finding of a 0.4s-0.5s difference between FL59 and Base Game.

For quirky missions where the title crawl appears at some other time, the difference between LEGACY and NEW is able to manifest, but it isn't consistent across missions or DLC/Vanilla. In FL59, missions 4 and 6 are identical, but mission 1 is an outlier. On LEGACY, if the start text isn't allowed to finish before you start, it can add +0.75s, but only on the first couple of loads bizarrely.

The only quirky missions I had time to find in vanilla were Wayback and Kings. There might be more. Wayback shows similar times to FL59 4 & 6, whereas Kings is a unique case because of the fade in from white.

Timing from 'Start' will work I think, there seems to be very little if no variance due to hardware between us. This would also solve the problem of the difference between LEGACY and NEW, because the player should be loaded in and able to accelerate no matter what, the question of when they get visual confirmation of control doesn't matter.

Edited by the author 1 month ago
StarPilot87 likes this
Germany

I am mostly a quiet observer thats just curious whats going on in the PW space so take anything i say with a grain of salt.

I may be a bit biased as the developer of the autosplitter for AC7 but i think there should be a way to figure out precise timing by looking at how the game actually times stuff (by reading out the game's memory). It is a tedious task and its only possible on PC regardless but it may help you guys on establishing a proper guidance for the issue of correct/uniform timing.

Hilimii and StarPilot87 like this
Colorado, USA
Super moderatorStarPilot87
Any/All, He/Him, They/Them
1 month ago

Interesting that there's a time difference. I stick to Legacy since it's nice and flat and makes it easier for me to read at a glance. I do have the capability of running on 2 different machines, my main 9 year old one with a Nvidia 750 Ti and 16GB DDR3 RAM and a 2 year old one that I rarely use that has a Nvidia 3060 and 32GB RAM (don't remember type, probably DDR4). I don't recall there being any noticable differences in load times between the two but this was also in 1.04 so I don't know if 2.0 made anything different. Small differences like these though are usually outside what I perceive so I could be very wrong with system specs having little impact on loading times.

Hilimii likes this
Wales
Hilimii
She/Her, They/Them
1 month ago

I've had a play around with Cheat Engine but I'm a bit out of my depth with the autosplitter scripting sadly. The best I can get is a somewhat promising pointer towards IGT, but I've had no luck beyond that. The pointer isn't perfect, because the 'IGT' counts up during menus and briefings too and tends to keep ticking for a little bit after mission resets. However! It has proved useful for reviewing when the game initialises after 'Start'.

The IGT memory value begins counting at the exact moment LEGACY UI first appears. This varies for some outlier missions like BotB (2.60s) and Kings (2.35s), but otherwise, from what I can tell, loading is finished at 1.30s after 'start', and then gameplay begins, even if we can't see it. Note that these values include my reaction time, so the real value is probably closer to 1.00s (-0.3s). This works even for missions where UI is hidden for a title crawl. IGT pops off at 1.30s after 'start' on Base Game and FL59, regardless of UI type. If this is something that other people are able to use and test, the pointer address I found is (on version 2.1.1.A.24.1208.9439):

"ProjectWingman-Win64-Shipping.exe"+095C0120

And the offsets needed on top (in order of application) are:

70
438
0
1BC

Make sure to set it to a float to see the time value!

My interpretation of the above is that the game should be loaded, logic should be progressing, and acceleration should be possible, all from at least 1.30s after 'Start' (on the vast majority of levels).

It's encouraging that you didn't notice a load time difference between your new and old rig StarPilot. That makes it more hopeful that we don't have anything to worry about by beginning time from 'Start' on missions as FalconLuma suggested. It would ensure fair timing across both UI preferences.

Germany

The time pointer you described resembles something i ran into when doing the AC7 Autosplitter, i believe its some sort of rendering timer by virtue of it not stopping in menus. Nevertheless i'm glad i could help you a bit with figuring this out :)

Wales
Hilimii
She/Her, They/Them
1 month ago

Perhaps the render timer would be useful for a full campaign run since it counts menuing too? I'll leave that to the experts though.

I think that in order to justify beginning the timer on 'Start' on mission categories we need another 1-2 testers to check for hardware differences IMO. Given the previous discovery that Legacy UI and acceleration are possible from 1.3s onwards after 'Start', we should check to see that this is consistent and use it as a basis for measuring if players are gaining control at the same time. I also discovered that pausing becomes possible after this time too, but not before.

The way to measure this is as follows: Load up missions 16 'Wayback' and F59 4 'Express Lane' and switch UI style to Legacy. Record your screen with a timer overlaid on top of the game, and begin the timer when you press 'Start' to initiate the mission. Let the timer run without stopping until you have enough footage to determine when UI becomes visible (first non-black frame). Look back on your recording, find the frame where Legacy UI first pops up, and note down the corresponding time. I record via OBS and look for the right time by advancing frame by frame in VLC.

Going frame by frame, I've found that Legacy UI pops up at 1.10s ± 0.03s from 'Start' in both missions. Add on my reaction time of 0.23s, and we roughly get the 1.30s I quoted at the start.

If other runners get very near to 1.10s, we should be in business and can update the rules for at least the Tunnel Run category.

United States

I just realized I've asked a pretty similar question in another forum post, but another benchmark to reference the start time against is the IntroLength variable defined for each mission intro.

They're accessible as a property of DB_MissionIntros.uasset, and labeled in seconds. From what I've been able to measure, it's the exact number of seconds from when the mission loads and the "Mission Start" UI graphic displays. While it's not exactly useful as a start time, it might be useful to count backwards from that point to determine when the game "began". For reference, the IntroLength for the campaign/MF missions are:

  1. M01 - M16: 15s
  2. M16: 10s
  3. M17 - M22: 15s
  4. MF01 - MF06: 15s
Hilimii likes this
United States

Additionally, and I can track down the pointer/offset this weekend (though the address has remained static for me every time I have launched) I have found that for my 2.0+ game, the address "ProjectWingman-Win64-Shipping.exe"+9124420, seems to indicate in-mission status.

Reliably, it transitions from 0 when in-menus to 1 when in-mission, which happens immediately after start, and before the fade-in even begins.

I can also track down the offset for it, but (again, at least for me) the address "ProjectWingman-Win64-Shipping.exe"+95C00C4, seems to indicate a Pause Menu state. 2 when in-game, but unpaused, and 3 when paused.

Edited by the author 15 days ago
Hilimii likes this
Wales
Hilimii
She/Her, They/Them
15 days ago

Thank you so much for doing this! :)

I tested out how usable DB_MissionIntros.usasset is, and sadly I think it's unreliable. The associated time seems to begin roughly when the screen finishes fading in from black, and ends when 'Mission Start' appears, albeit on most missions (for me). Although as usual, the same missions that were causing issues on legacy UI are causing problems here too. I timed from pressing 'Start' to 'Mission Start' appearing on all missions, results below:

However! The memory address you found for mission status works very well, and it links up perfectly with when the render timer I found is starting to tick, see the image below which shows the moment at which the render timer starts ticking, and the mission status changes to 1. This occurs at roughly 1.00s on most missions after pressing start for me.

I previously thought this occurred at 1.10s, but after changing the update interval in CE from 0.10 to 0.01, I've narrowed it down further. Do note that I run on 60fps, so I've got an error range of about 1/60s (0.017).

I can also confirm that the pause memory address works for me too.

It seems like the moment at which 'In_Mission_Status' changes to true would be a good point for starting runs with the autosplitter if we keep to the current ruleset of 'when the player gains control'.

United States

Perfect! I'm glad I could help with the mission status flag, at least. Now just to track down a flag for 'Mission Complete'....

Wales
Hilimii
She/Her, They/Them
15 days ago

Perhaps something related to the end sequence becoming skippable? The prompt in the pause menu only appears after mission complete.

Wales
Hilimii
She/Her, They/Them
14 days ago

Got something for mission end. It sits on a value of 2 throughout menus, loading screens, and missions. It changes to 3 when 'Mission Complete' appears, and then changes back to 2 when resetting the mission or exiting to menu. It stays at 2 during skippable takeoff sequences. Try:

"ProjectWingman-Win64-Shipping.exe"+093EFDC8

with offsets:

0
438

Edited by the author 14 days ago
United States

Wow, incredible! Just confirmed it works for me!

I spent most of today chasing down missioncomplete and missionfailed flags that ended up being dead-ends because of PW's nativized dynamic classes. I was literally just about to give up, after the PW discord confirmed that fact.

I just made an incredibly minimal autosplitter and tested it on Black Flag and it works perfectly. (Edit: and Valkyrie's Call, run posted with it!)

Edit: I posted the autosplit under Resources/Tools and credited you hilimii

Edited by the author 14 days ago
Hilimii likes this
United States

I guess I'm going to have to go back and redo my runs with it now!

Hilimii likes this
Wales
Hilimii
She/Her, They/Them
14 days ago

Aaaaaa amazing! Glad I could help! I can't wait to test it out :)

Wales
Hilimii
She/Her, They/Them
13 days ago

It works beautifully! I did a bit of learning and added functionality for:

  • An auto reset for missions when the player restarts the mission, only in 'Mission Mode'
  • Option of pausing the timer when the player pauses (only works when livesplit is comparing to IGT)
  • A barebones campaign mode that (optionally) starts upon selecting difficulty (as per the rules) and always splits at the end of every mission. No reset functionality is included in this mode. The auto start can be annoying as it will trigger whenever you leave/reset a mission too, so I added an option to turn it off

File here: https://github.com/Hilimii/ProjectWingman_Autosplitter

I'll DM you about adding you as a collaborator so you can manage it too!

An issue I've noticed is that the lowest level main menu is flagged as inGame = 1, so it triggers an auto split upon starting the game or returning to the main menu. I haven't worked out a way to cull it. On the upside, it does allow us to trigger an auto start in campaign runs when the player leaves the main menu, albeit only for vanilla runs. F59 main menu has the value of inGame = 0.

Sidenote: I almost had my hands on a pointer for load removal last night! It showed a value of 2 in loading screens and 1 otherwise, but unfortunately, it didn't survive when I rebooted the game. I was gutted when I lost it.

Ohio, USA

I'm just now finding out about all this, does it matter if I use New or Legacy UI with the autosplitter? will that screw it up? Just making sure, I don't wanna mess with how it actually functions by accident lol.

Wales
Hilimii
She/Her, They/Them
12 days ago

Nope! The autosplitter will fix any/all issues with differing start times for mission based runs. Every run should start at the same moment, exactly 1.00s after pressing start, regardless of UI type :)

Game stats
Followers
53
Runs
175
Players
32
Latest news
Frontline-59 now on Steam and Leaderboard refinement

Frontline-59 is now available on Steam! This means the campaign is no longer a PS5 exclusive. Patch notes:

I have also just now re

2 months ago