ABrandau / Shattered-Paradise-SDK

Shattered Paradise's main repository and installation Kit.
GNU General Public License v3.0
58 stars 9 forks source link

Crash at start with new Playtest #60

Closed NetBLOKS closed 4 months ago

NetBLOKS commented 5 months ago

Hi,

just installed the new playtest. The game loads, a short sound is played and then the game crashes shortly before the main menu. Tried reinstalling, clearing AppDAta folder etc.

graphics.log is empty.

debug.log:

conquer.mix: failed to resolve filenames for 1 unknown hashes ecache01.mix: failed to resolve filenames for 1 unknown hashes

exception.log:

OpenRA engine version 233aa77405c91a10751a25b58b834ae1f4283d62 OpenRA Language: en Shattered Paradise mod version playtest-20240315 on map 7794df3defa538d607a7bd7ab389eaa0e8d1bf2e (Enter the Hivemind by Westwood Studios). Date: 2024-03-28 22:13:33Z Operating System: Windows (X64, Microsoft Windows NT 10.0.22631.0) Runtime Version: .NET CLR 6.0.27 Installed Language: de (Installed) de (Current) de (Current UI) Exception of type System.IO.InvalidDataException: Non-power-of-two array 1025x1024 at OpenRA.Platforms.Default.Texture.SetData(Byte[] colors, Int32 width, Int32 height) at OpenRA.Platforms.Default.ThreadedTexture.<>cDisplayClass12_0.<.ctor>b5(Object tuple) at OpenRA.Platforms.Default.ThreadedTexture.<>cDisplayClass12_0.<.ctor>b6(Object tuple) at OpenRA.Platforms.Default.ThreadedGraphicsContext.Message.Execute() --- End of stack trace from previous location --- at OpenRA.Platforms.Default.ThreadedGraphicsContext.Message.Result() at OpenRA.Platforms.Default.ThreadedGraphicsContext.RunMessage(Message message) at OpenRA.Platforms.Default.ThreadedGraphicsContext.Send[T](Func2 method, Object state) at OpenRA.Platforms.Default.ThreadedTexture.SetData(Byte[] colors, Int32 width, Int32 height) at OpenRA.Graphics.Sheet.GetTexture() at OpenRA.Graphics.Sheet.ReleaseBuffer() at OpenRA.Graphics.Sheet..ctor(SheetType type, Stream stream) at OpenRA.Graphics.ChromeProvider.SheetForCollection(Collection c) at OpenRA.Graphics.ChromeProvider.TryGetImage(String collectionName, String imageName) at OpenRA.Mods.Common.Widgets.WidgetUtils.<>c__DisplayClass1_0.<GetCachedStatefulImage>b__0(ValueTuple5 args) at OpenRA.Mods.Common.Widgets.CachedTransform`2.Update(T input) at OpenRA.Mods.Common.Widgets.DropDownButtonWidget.Draw() at OpenRA.Widgets.Widget.DrawOuter() at OpenRA.Widgets.Widget.DrawOuter() at OpenRA.Widgets.Widget.DrawOuter() at OpenRA.Widgets.Widget.DrawOuter() at OpenRA.Widgets.Ui.Draw() at OpenRA.Game.RenderTick() at OpenRA.Game.Loop() at OpenRA.Game.Run() at OpenRA.Game.InitializeAndRun(String[] args) at OpenRA.WindowsLauncher.WindowsLauncher.RunGame(String[] args)

Really love the game and cannot play now :-(

Screenshot shortly before crash crash

After looking at the screenshot, I can see the irony in the message at the bottom right :-D

dnqbob commented 5 months ago

Hi, I think I need more message in "exception.log", I find the graphic card and OpenGL messages are missing here.

OpenRA engine version 233aa77405c91a10751a25b58b834ae1f4283d62
OpenRA Language: en
Shattered Paradise mod version playtest-20240315
on map 7794df3defa538d607a7bd7ab389eaa0e8d1bf2e (Enter the Hivemind by Westwood Studios).
Date: 2024-03-28 22:13:33Z
Operating System: Windows (X64, Microsoft Windows NT 10.0.22631.0)
Runtime Version: .NET CLR 6.0.27
Installed Language: de (Installed) de (Current) de (Current UI)

This is mine:

Platform is Windows (X64)
Engine version is 233aa77405c91a10751a25b58b834ae1f4283d62
Runtime: .NET CLR 6.0.11
Using SDL 2 with OpenGL (ANGLE) renderer
Desktop resolution: 1600x900
Using resolution: 1590x810
Using window scale 1.00
OpenGL renderer: ANGLE (Intel, Intel(R) UHD Graphics Direct3D11 vs_5_0 ps_5_0, D3D11-30.0.101.1122)
OpenGL version: OpenGL ES 3.0.0 (ANGLE 2.1.20989 git hash: 5c0b4251bd2c)

It should be a graphic problem, from the message of

Exception of type System.IO.InvalidDataException: Non-power-of-two array 1025x1024
at OpenRA.Platforms.Default.Texture.SetData(Byte[] colors, Int32 width, Int32 height)
at OpenRA.Platforms.Default.ThreadedTexture.<>c__DisplayClass12_0.<.ctor>b__5(Object tuple)
at OpenRA.Platforms.Default.ThreadedTexture.<>c__DisplayClass12_0.<.ctor>b__6(Object tuple)
at OpenRA.Platforms.Default.ThreadedGraphicsContext.Message.Execute()

One of the guessing is your graphic card is no longer support OpenRA's developing version (our engine based on that, for bug fix), would you mind to send me your graphic card message and:

  1. tell me if OpenRA's release version work out for you? https://www.openra.net/download/ (This is a basic comfirm that your PC has no problem on old OpenRA)
  2. if you can compile .Net project, try compile https://github.com/OpenRA/OpenRA/ and run the game, select TS in game mod. That will be in great help for our trouble shooting, because it is the OpenRA's developing version.
NetBLOKS commented 5 months ago

Hi,

thanks a lot for the fast reply. That was my full exception log.

OpenRA works, I´ve also tested the new Romanovs Vengance. It´s just shattered paradise for me and just on this PC.

But I found the solution while writing: I´ve got a zoom leven on the Windows desktop of 250% (4K Monitor/ TV Screen) Every zoom level below 250% and the game starts without problem. Every Zoomlevel 250% or above an the game crashes. The old SP and every other mod ran on 250% without problem, so it seems like a bug or limitation in the new engine.

NetBLOKS commented 5 months ago

So, I fouund the culprit: It´s th UI size. On 200% the game starts and works normally. But as soon, as I increase the UI size to 125%, it crashes. On 100% everything works fine with 200% Windows zoom. Here is the full exception log:

OpenRA engine version 233aa77405c91a10751a25b58b834ae1f4283d62
OpenRA Language: en
Shattered Paradise mod version playtest-20240315
on map 7794df3defa538d607a7bd7ab389eaa0e8d1bf2e (Enter the Hivemind by Westwood Studios).
Date: 2024-03-29 12:24:24Z
Operating System: Windows (X64, Microsoft Windows NT 10.0.22631.0)
Runtime Version: .NET CLR 6.0.27
Installed Language: de (Installed) de (Current) de (Current UI)
Exception of type `System.IO.InvalidDataException`: Non-power-of-two array 1025x1024
   at OpenRA.Platforms.Default.Texture.SetData(Byte[] colors, Int32 width, Int32 height)
   at OpenRA.Platforms.Default.ThreadedTexture.<>c__DisplayClass12_0.<.ctor>b__6(Object tuple)
   at OpenRA.Platforms.Default.ThreadedGraphicsContext.Message.Execute()
--- End of stack trace from previous location ---
   at OpenRA.Platforms.Default.ThreadedGraphicsContext.Message.Result()
   at OpenRA.Platforms.Default.ThreadedGraphicsContext.RunMessage(Message message)
   at OpenRA.Platforms.Default.ThreadedTexture.SetData(Byte[] colors, Int32 width, Int32 height)
   at OpenRA.Graphics.Sheet.GetTexture()
   at OpenRA.Graphics.Sheet.ReleaseBuffer()
   at OpenRA.Graphics.Sheet..ctor(SheetType type, Stream stream)
   at OpenRA.Graphics.ChromeProvider.SheetForCollection(Collection c)
   at OpenRA.Graphics.ChromeProvider.TryGetImage(String collectionName, String imageName)
   at OpenRA.Mods.Common.Widgets.WidgetUtils.<>c__DisplayClass1_0.<GetCachedStatefulImage>b__0(ValueTuple`5 args)
   at OpenRA.Mods.Common.Widgets.CachedTransform`2.Update(T input)
   at OpenRA.Mods.Common.Widgets.DropDownButtonWidget.Draw()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Mods.Common.Widgets.ScrollPanelWidget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Widgets.Widget.DrawOuter()
   at OpenRA.Game.RenderTick()
   at OpenRA.Game.Loop()
   at OpenRA.Game.Run()
   at OpenRA.Game.InitializeAndRun(String[] args)
   at OpenRA.WindowsLauncher.WindowsLauncher.RunGame(String[] args)
dnqbob commented 5 months ago

Hi, thanks for your information and

 at OpenRA.Graphics.ChromeProvider.SheetForCollection(Collection c)
   at OpenRA.Graphics.ChromeProvider.TryGetImage(String collectionName, String imageName)
   at OpenRA.Mods.Common.Widgets.WidgetUtils.<>c__DisplayClass1_0.<GetCachedStatefulImage>b__0(ValueTuple`5 args)
   at OpenRA.Mods.Common.Widgets.CachedTransform`2.Update(T input)
   at OpenRA.Mods.Common.Widgets.DropDownButtonWidget.Draw()
   at OpenRA.Widgets.Widget.DrawOuter()

is the key to the problem.

The crash happens because the height and width of "glyphs-3x.png" is 1025x1024, which contains UI buttons images.

dnqbob commented 5 months ago

I have made a patch for you: Patch-FixUICrash-SP playtest20240315.zip

Could you please patch this to your SP and see if the crash is fixed?

dnqbob commented 5 months ago

P.S. there is another bug that the Nod's blue fire is glitched, we should have a patch on Discord but in case you didn't find that, I will also put it here: Patch-FixBlueFire-SP playtest20240315.zip

NetBLOKS commented 5 months ago

Wow, what a service! Thanks a lot, I´ve checked 250%, 300% Windows Scale and SP UI Scale in all variations: Works like a charm! I also installed the blue flame patch. I´ve seen the strange flames but thought it was a new feature :-) Which channel is for patches etc. in Discord?

One more thing: Is there a donation link or something like that for you guys? I could also help, translate the game to german if there is need for something like that.

dnqbob commented 5 months ago

Our Discord is https://discord.gg/hk428Wk.

I also installed the blue flame patch. I´ve seen the strange flames but thought it was a new feature :-)

There is a very rare bug in compressing function of Git, which makes the flame file not what it was in my repo, and then the online repo. Strangely, the file comparer of git think those two files are indentical.

I did a test in my workspace when the players reported this bug: fire

Then I found this problem when I tried to delete the file and recover it from Git.

Is there a donation link or something like that for you guys?

Idk, maybe you can ask other devs to see if there is any plan about that.

I could also help, translate the game to german if there is need for something like that

We need to wait some issues (or maybe more issues in the future) mentioned in https://github.com/OpenRA/OpenRA/issues/21264 solved

Otherwise, the localization will be very hard to maintain and becomes a standalone version and player cannot join mutiplayer by using that.

dnqbob commented 5 months ago

Oh, and our mission&minigame really need some testers but our players in Discord are busy with PvP gameplay. You can help us with that :)

NetBLOKS commented 5 months ago

OK, I will have a look at the missions. Already played through the training mission without issues, but will dive a bit deeper and check out the other missions and the minigame :)