Eddio0141 / UniTAS

Tool that lets you TAS unity games
Other
25 stars 2 forks source link

House Flipper, Load Stuck #10

Open HimitsuYuki opened 2 years ago

HimitsuYuki commented 2 years ago

The game will display the company animations, etc. But until the game displays the loading screen it never loads but it is not frozen (house icon will jump forever on bottom right). The game has had a successful launch without errors in an older version of the plugin.

The log spits out InvalidOperationExceptions for getting certain field values, spams "Can't Asset to Guid. Not Initialized", eventually leading to a NullReferenceException at the end.

[Warning: UniTAS] failed to get field value for net.krej.Singleton.Singleton`1.instance, ex: System.InvalidOperationException: Late bound operations cannot be performed on fields with types for which Type.ContainsGenericParameters is true. at System.Reflection.MonoField.CheckGeneric () [0x0000d] in <eae584ce26bc40229c1b1aa476bfa589>:0 at System.Reflection.MonoField.GetValue (System.Object obj) [0x00058] in <eae584ce26bc40229c1b1aa476bfa589>:0 at UniTASPlugin.GameTracker.Init () [0x00358] in <25712758f60946b2aa7d1fe08528c435>:0

The error log does mention "HouseInfo loaded from recording has no base Scene" and does list a directory to "HouseSmallest" so it could be in relation to however loading scenes are handled. There is also one extra error mentioned "Couldn't load modules system". Unsure what this would be related to.

Unity version is 2019.4.30.15255697.

[Info : Unity Log] Setup start house scene: SmallFirstHouse [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object Stack trace: ... (...) (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) ...<AddCompletionListener>b__0 () (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) ... (...) (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) ... (...) (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) ... (...) (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) ...ctor (...٭ loading) (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) ... (...) (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) GameLoader+....MoveNext () (at <5fdf54b14e8446d6b58b57dfd0a80ad9>:0) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <c58bc064d0ed420cb832da9d6d1cf9b6>:0)

LogOutput.log

HimitsuYuki commented 1 year ago

Updating this issue since it has been a while since the game was last checked.

As of the latest master branch, it is still permanently stuck on the first loading screen of the game and throws a NullReferenceException after loading the "SmallFirstHouse" setup start house scene.

Sadly the game's assembly-csharp has obfuscated Arabic (or another language) that it is pretty hard to look into, and even dnSpy does not like the characters. The closest method we can get is the \<AddCompletionListener>b__0 which calls a delegate into another class filled with garbage characters that I can't find.

The error does seem to be similar to Cat Quest II as it also starts up with a SetupCoroutine in its stack trace and Cat Quest II's error is related to async unloads (#240), but this "GameLoader" class uses LoadSceneAsync instead.

So probably in future patches this game can be checked again.

[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
هؘٳٲصع.ڄ٦ٲڇؗـ (ؤٗڇٴإٮ ٗڇأ٘؛ؔ) (at <d1896be25edc471a82147be415031783>:0)
ټرؙؒؠذ+ٯٍ٩٪ڄد.<AddCompletionListener>b__0 () (at <d1896be25edc471a82147be415031783>:0)
ٿظت٤عغ.؟ٓ٢ءلٽ (ٿظت٤عغ+؍ؚٕڈػؽ ؗخّٟىؓ) (at <d1896be25edc471a82147be415031783>:0)
ٿظت٤عغ.ؽؙؖٴنٯ (ٿظت٤عغ ؕ٬ٿٺفـ, ٿظت٤عغ+؍ؚٕڈػؽ ؗخّٟىؓ) (at <d1896be25edc471a82147be415031783>:0)
ټرؙؒؠذ.ٸ١ڂٖصؔ (ٻ؊ډؔنن ؗخّٟىؓ) (at <d1896be25edc471a82147be415031783>:0)
هؘٳٲصع..ctor (٪عٸصَ٭ loading) (at <d1896be25edc471a82147be415031783>:0)
ٷ٧ڀٕ٘؞.ٰٞټؿ؋چ (ٻ؊ډؔنن ؗخّٟىؓ) (at <d1896be25edc471a82147be415031783>:0)
GameLoader+إ؊٭لظً.MoveNext () (at <d1896be25edc471a82147be415031783>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <85d1d3e7744a4a47b5f51883bf40bba2>:0)