Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Game Discovery Issue on Steam #93

Closed
Aragas opened this issue Aug 10, 2023 · 2 comments
Closed

Game Discovery Issue on Steam #93

Aragas opened this issue Aug 10, 2023 · 2 comments

Comments

@Aragas
Copy link

Aragas commented Aug 10, 2023

GameFinder failed to discover Bannerlord. Some quick debugging yielded this

Unable to parse value of child object!
______________________________________
System.OverflowException: Value was either too large or too small for an unsigned byte.
   at System.Number.ThrowOverflowException(TypeCode type)
   at System.Byte.Parse(ReadOnlySpan`1 s, NumberStyles style, NumberFormatInfo info)
   at System.Byte.Parse(String s, IFormatProvider provider)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.<>c__DisplayClass2_0`1.ParseChildObjectValue>b__0()
   at FluentResults.Result.Try[T](Func`1 action, Func`2 catchHandler)

The value is StateFlag with value 550. The ValueType was Int32, but the Stacktrace shows Result<byte>
I see that StateFlag is hardcoded as ParseByte, so the parser might be wrong
Btw, it seems that 550 is Update Paused

appmanifest_261550.acf
  "AppState"
  {
	  "appid"		"261550"
	  "universe"		"1"
	  "LauncherPath"		"C:\\Program Files (x86)\\Steam\\steam.exe"
	  "name"		"Mount & Blade II: Bannerlord"
	  "StateFlags"		"550"
	  "installdir"		"Mount & Blade II Bannerlord"
	  "LastUpdated"		"1690015272"
	  "SizeOnDisk"		"53423353739"
	  "StagingSize"		"0"
	  "buildid"		"11757198"
	  "LastOwner"		"76561198003106254"
	  "UpdateResult"		"12"
	  "BytesToDownload"		"3245578720"
	  "BytesDownloaded"		"0"
	  "BytesToStage"		"8912672474"
	  "BytesStaged"		"0"
	  "TargetBuildID"		"11865107"
	  "AutoUpdateBehavior"		"0"
	  "AllowOtherDownloadsWhileRunning"		"0"
	  "ScheduledAutoUpdate"		"1691979122"
	  "SingleFileUpdateMode"		"1"
	  "InstalledDepots"
	  {
		  "261552"
		  {
			  "manifest"		"8815693920949905826"
			  "size"		"4742750445"
		  }
		  "261551"
		  {
			  "manifest"		"2738993997005348582"
			  "size"		"47470544558"
		  }
		  "2240111"
		  {
			  "manifest"		"6194812840481947105"
			  "size"		"1210058736"
			  "dlcappid"		"2240110"
		  }
	  }
	  "SharedDepots"
	  {
		  "228988"		"228980"
		  "229006"		"228980"
	  }
	  "UserConfig"
	  {
		  "language"		"english"
		  "BetaKey"		"v1.2.0"
	  }
	  "MountedConfig"
	  {
		  "language"		"english"
		  "BetaKey"		"v1.2.0"
	  }
  }
  
@Aragas
Copy link
Author

Aragas commented Aug 10, 2023

Also, the discovery error is not somehow propagated to NexusMods.App, so it's not possible to discover such issues without the debugger

@Aragas Aragas changed the title Bannerlord Discovery Issue on Steam Game Discovery Issue on Steam Aug 10, 2023
@erri120
Copy link
Owner

erri120 commented Aug 10, 2023

That is definitely a bug. StateFlags uses uint under the hood:

But the parser uses ParseBytes:

var stateFlagsResult = ParseRequiredChildObject(appState, "StateFlags", ParseByte).Map(x => (StateFlags)x);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants