HaloSPV3 / HCE

HCE & SPV3 projects by Miris 'n' Crew.
https://source.n2.network/hce/
14 stars 0 forks source link

Custom Resolution (in Blam Profile) does not work without using VidMode (VidMode forces V-Sync) #148

Closed BinToss closed 3 years ago

BinToss commented 3 years ago

image

BinToss commented 3 years ago

Investigation 1

HXE.HCE.Executable.Start()

All's good here... image

SPV3.Main.MainLoad.Invoke()

I've reverted the DisplayMode assignment, but this just means -vidmode will be used whenever the Framerate/RefreshRate is >0. In essence, V-Sync is still enforced even if unchecked in the launcher. I'll change it back to requiring V-Sync to be checked since reverting solves nothing. image

After un-reverting... image

HXE.Kernel.Invoke().Blam()

Next up, check out the blam.Save() profile patching Given the following... image

The game starts and the profile's settings are default instead of the values we wrote to the blam.sav. haloce 2021-02-21 17-51-43

The file itself has 1920, 1080, 60 at what the offsets specified in profile.cs.

Conclusion

Our values are being written to blam.sav, but Halo isn't reading them if the profile was created by NewProfile.cs. Are we missing data Halo requires for a profile to be valid?

BinToss commented 3 years ago

Interesting fact: If the last profile isn't found, Halo will search in Savegames for a valid profile. In my case, it found %appdata%\savegames\New001 - Copy\blam.sav and wrote it to a new lastprof.txt. The profile's name was still New001. During the procedure, a New001 folder and New001 file were created because "New001 - Copy"'s New001 file contained that path.

BinToss commented 3 years ago

That worked? Awesome.