GPSaveConverter icon indicating copy to clipboard operation
GPSaveConverter copied to clipboard

Forza Horizon 4 - No Non-Xbox Profile

Open ryangodburn opened this issue 3 years ago • 48 comments

Hi @Fr33dan! I am having an issue where I cannot transfer files for FH4 from the Microsoft to Steam location and it is giving me this error. I have set the save file location manually but I think it also needs a non-Xbox profile. Any help is appreciated. image

ryangodburn avatar May 27 '22 22:05 ryangodburn

You didn't do anything wrong, this is a bug. Even though you set the save location manually, the system is still checking against the database profile. I'll need to fix this, prehaps I'll get some time over this long weekend.

The other problem is that the database profile is incorrect which is why you needed to select the location manually at all. I copied it from FH5 but they are slightly different. The name are the same but FH5 has a folder for each Xbox profile whereas FH4 does not. I've just discovered as I'm attempting to attach it that github doesn't allow .json files as attachments so you'll have to download Forza Horizon 4.txt and rename it changing .txt to .json. Then use File > Load Game Profile within the converter.

Then the converter can find your steam game installs by selecting your profile instead of doing so manually, bypassing the bug getting you up and running for now. Plus it will confirm that this profile works so I can update the library for the next release.

Fr33dan avatar May 28 '22 05:05 Fr33dan

I tried the file and it worked. However, when I transferred over the files, it gave me this ui glitch where everything is doubled. Also when loading into Forza on steam it errored saying the Forza Horizon profile you are trying to load is no longer available. image

ryangodburn avatar May 28 '22 14:05 ryangodburn

That is strange as the UI should be listing the folder contents with no real changes but that would mean multiple files with the same name which doesn't make sense.

What does the steam save location look like in windows explorer?

Fr33dan avatar May 28 '22 14:05 Fr33dan

It looks like this: image

ryangodburn avatar May 28 '22 14:05 ryangodburn

Well this means the UI doubling is a bug I need to investigate, but doesn't explain why the does not like the converted files.

Two things stand out to me about the file listings.

  1. The Xbox versions lack a UserPurchasesTelemetry file. Since we can't conjure up one from nowhere try removing it entirely. If we are lucky it's incompatable as it is now, doing this will make game will rebuild it.
  2. The VersionFlags file still has the 4:27PM timestamp in explorer, it should now match the 4:54 of the xbox version. Change log level to Trace in the preferences and try copying just this file. If it does not update the timestamp please attach your log file here so I can determine why this file isn't getting updated.

Fr33dan avatar May 28 '22 15:05 Fr33dan

Ok. Made the change and tried it again and it worked. The double file bug in the ui is still present. Here is the structure before opening the game on steam now: image After launching the game, it gives me the same error. Here is the file structure after: image What's interesting is that the UserPurchasesTelemetry file still has the old date attached to it even though it was deleted. My guess is steam would be restoring the old file somehow. In the end, it is still giving me the account error when pressing start.

ryangodburn avatar May 28 '22 15:05 ryangodburn

You are right in that it is probably Steam restoring the file. Maybe you could disable Steam cloud saves in the game's properties menu within Steam?

If it's not this telemetry file then I'm afraid I'm out of ideas on what the problem could be with the game. :-(

Fr33dan avatar May 28 '22 15:05 Fr33dan

So I disabled steam cloud saves and deleted the file. Now loading into the game only the 4 other files are in the steam saves folder. Unfortunately, upon pressing start, the error is still there, and the game crashes. Looking back at the steam save folder, a new UserPurchasesTelemetry file was not generated.

ryangodburn avatar May 28 '22 15:05 ryangodburn

I'm sorry but I've exhausted all the ideas I have. The files seem to have been moved/converted correctly, so they must have some internal difference between them. Something one of the entries on this page seems to imply (there is no such entry for FH5 which is known to work)

If this the case then I'm afraid the converter will never work for this game.

I'll post an update here if I have any further ideas. If anyone stubbles across this and has some relevent info, please chime in.

Fr33dan avatar May 28 '22 16:05 Fr33dan

Alright. Thank you for your help.

ryangodburn avatar May 28 '22 16:05 ryangodburn

Hey @Fr33dan I think I found something. Looking at a completed game save file for steam, it looks like all the files from the Xbox save need to be transferred over, not just the user data folder. Here is the completed steam save file structure: image And this is what I get when I try to move all the files from xbox to steam: image This may be the key to why it was not working.

ryangodburn avatar May 28 '22 17:05 ryangodburn

This could be a factor. FH5 didn't need the Liveries/Car configurations to migrate the user profile (which is all that is supported for that game), but maybe FH4 chokes when they don't exist. I'd be shocked if this was the case though.

The error is because there is no file translations for those files. The file translation built into the library purposefully does not support these files because these would only work going from Xbox -> Steam and not from Steam -> Xbox because it would involve the creation of containers which is not supported at this time.

To test your theory try this game profile: Forza Horizon 4.txt. It has with a file translation that should work for all the files. You will need to remove the old file translations as the behavior is to merge translations when a profile is imported (which is intentional as I don't want someone mad their work on a translation disappeared because they tried to import a profile).

Fr33dan avatar May 28 '22 18:05 Fr33dan

I tried it and am getting a new error: image

ryangodburn avatar May 28 '22 18:05 ryangodburn

Your file translation should look like this (The name in the listbox may be different but the conents of the parameter table should match): File Translations matching profile from Forza.Horizon.4.txt

I think your log level is still set to trace from an earlier attempt. If so please attach the log file, otherwise set it to trace and then make the error occur before attaching it.

Fr33dan avatar May 28 '22 19:05 Fr33dan

Here it is: GPSaveConverter.log And these are the translations: image image image

ryangodburn avatar May 28 '22 19:05 ryangodburn

You need to remove all but the last one by using the minus button while they are selected.

Fr33dan avatar May 28 '22 19:05 Fr33dan

I tried and am getting the same error: image

ryangodburn avatar May 28 '22 19:05 ryangodburn

Here is the log file GPSaveConverter.log

ryangodburn avatar May 28 '22 19:05 ryangodburn

Oh butts, I made a stupid tiny mistake. Rather than attach a whole new profile, change the second Named regex (GroupNumber) to add an underscore: (?<GroupNumber>[\w]+) -> (?<GroupNumber>[\w_]+)

Fr33dan avatar May 28 '22 19:05 Fr33dan

Tried it and am still getting an error: image Something i noticed is that you put to change (?<GroupNumber>[\w]+) -> (?<GroupNumber>[\w_]+) but the way it was in my file and the change i made was (?<GroupNumber>[\w]+) -> (?<GroupNumber>[\w_]+) There is an extra slash. image Here are the logs too: GPSaveConverter.log

ryangodburn avatar May 28 '22 19:05 ryangodburn

I was thinking you would be editing it within the converter application, not the file. The extra slash is added when what is in the shown dialog is saved and is removed when the translation is imported. You can see that it is gone in the converter itself.

Ohh I'm a dumb dumb, this file extension includes an underscore, the FileExtension named group doesn't allow for this. Change that one to match. (?<FileExtension>[\w]+) -> (?<FileExtension>[\w_]+)

Fr33dan avatar May 28 '22 19:05 Fr33dan

A bit more of an explanation is that the null error is occuring because a file translation is not matched for that file. So far these have all been regex errors resulting in a match not occurring. (I'm not that fluent in regex, sorry but I'm figuring it out)

Fr33dan avatar May 28 '22 19:05 Fr33dan

Still getting the error: image Logs: GPSaveConverter.log

ryangodburn avatar May 28 '22 20:05 ryangodburn

Lets try a simpler regex pattern: Forza Horizon 4.txt

Fr33dan avatar May 28 '22 20:05 Fr33dan

Still not working: image Logs: GPSaveConverter.log

ryangodburn avatar May 28 '22 20:05 ryangodburn

So I dug into the code and realized there was a problem that was signifigant enough I patched it right away. I'm less confident about the game profile so I'm holding that back until we have something that is known to work so you will need to import that again.

Try the version just released.

Fr33dan avatar May 28 '22 20:05 Fr33dan

New error: image

ryangodburn avatar May 28 '22 21:05 ryangodburn

The text in that error looks like it's not using the most recent simplified file translation correctly as I replaced GroupName and GroupNumber with a unified Group item.

Are you sure you're using the right profile?

The fact that neither have been replaced seems a little odd.

Fr33dan avatar May 28 '22 22:05 Fr33dan

Thats the error I got without the last json you posted. When I use the last profile you made I get this error: image

ryangodburn avatar May 28 '22 23:05 ryangodburn

I don't know if I messed up that file or if it messed to loading it but I'm on my phone right now making it difficult to check but I can see in the screenshot it's not right. In the converter change the non - Xbox file name to ${Group}.${FileExtension}

Fr33dan avatar May 28 '22 23:05 Fr33dan