drogoganor / OpenDR

A work-in-progress recreation of the Auran RTS classic for the OpenRA strategy game engine.
GNU General Public License v3.0
65 stars 1 forks source link

AppImage for commit 365732e8a0a0fcf106e1c8dbca10f4c5fef898e8 crashes after content installer runs #19

Closed fusion809 closed 5 years ago

fusion809 commented 6 years ago

Hi,

I decided to try out this fine project's AppImage, which I made by running:

make
cd packaging/linux
./buildpackage.sh $(git rev-list --count --branches master) .

in this repo, at commit 365732e8a0a0fcf106e1c8dbca10f4c5fef898e8, then launching the resulting AppImage, DarkReign-185.AppImage. The content installer ran fine, but then immediately after it crashed with the error:

        ura-v0.25 Alpha: Red Alert: Unplugged (v0.25 Alpha)
        dr-185: Dark Reign (185)
Loading mod: dr
Loading mod: modcontent
Loading mod: dr
Exception of type `System.ArgumentException`: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
  at System.ThrowHelper.ThrowArgumentException (System.ExceptionResource resource) [0x00000] in /home/abuild/rpmbuild/BUILD/mono-5.10.1.47/mcs/class/referencesource/mscorlib/system/throwhelper.cs:75 
  at System.Collections.Generic.List`1[T].Reverse (System.Int32 index, System.Int32 count) [0x00023] in <be6fee20a4cf451a8bc9b85c19fe2133>:0 
  at OpenRA.Mods.Dr.SpriteLoaders.DrCrsLoader.ParseFrames (System.IO.Stream s) [0x001d7] in /data/GitHub/others/DarkReign/OpenRA.Mods.Dr/SpriteLoaders/DrCrsLoader.cs:149 
  at OpenRA.Mods.Dr.SpriteLoaders.DrCrsLoader.TryParseSprite (System.IO.Stream s, OpenRA.Graphics.ISpriteFrame[]& frames) [0x00017] in /data/GitHub/others/DarkReign/OpenRA.Mods.Dr/SpriteLoaders/DrCrsLoader.cs:162 
  at OpenRA.Graphics.FrameLoader.GetFrames (System.IO.Stream stream, OpenRA.Graphics.ISpriteLoader[] loaders) [0x0000c] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.FrameLoader.GetFrames (OpenRA.FileSystem.IReadOnlyFileSystem fileSystem, System.String filename, OpenRA.Graphics.ISpriteLoader[] loaders) [0x0000a] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.FrameCache+<>c__DisplayClass1_0.<.ctor>b__0 (System.String filename) [0x00000] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Exts.GetOrAdd[K,V] (System.Collections.Generic.Dictionary`2[TKey,TValue] d, K k, System.Func`2[T,TResult] createFn) [0x00011] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Primitives.Cache`2[T,U].get_Item (T key) [0x00001] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.FrameCache.get_Item (System.String filename) [0x00001] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.CursorSequence..ctor (OpenRA.Graphics.FrameCache cache, System.String name, System.String cursorSrc, System.String palette, OpenRA.MiniYaml info) [0x00111] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.CursorProvider..ctor (OpenRA.ModData modData) [0x00225] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.ModData.InitializeLoaders (OpenRA.FileSystem.IReadOnlyFileSystem fileSystem) [0x00021] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.InitializeMod (System.String mod, OpenRA.Arguments args) [0x00227] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Mods.Common.LoadScreens.ModContentLoadScreen+<>c__DisplayClass4_0.<StartGame>b__1 () [0x00000] in /data/GitHub/others/DarkReign/engine/OpenRA.Mods.Common/LoadScreens/ModContentLoadScreen.cs:66 
  at OpenRA.Primitives.ActionQueue.PerformActions (System.Int64 currentTime) [0x00080] in <f74d2f656c914791b58c38a3626e654c>:0 

  at OpenRA.Game.LogicTick () [0x0000d] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.Loop () [0x000d9] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.Run () [0x00044] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00013] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Program.Main (System.String[] args) [0x0004e] in <f74d2f656c914791b58c38a3626e654c>:0 

AL lib: FreeContext: (0x5588bd575520) Deleting 32 Source(s)

My OS is openSUSE Tumbleweed 20180926 (x86-64), with kernel 4.18.8-1-default, Lua 5.1.5 and Mono 5.10.1.47. Here are my logs:

Here's the AppImage: https://drive.google.com/open?id=15k0qxR_VVT2EY4oACzOUu4nhdp9fRkNI.

Thanks for your time, Brenton

fusion809 commented 6 years ago

Oh and running it the old-fashion way, by running "launch-game.sh" in this repo after running make in the repo gives the same error on this platform.

drogoganor commented 6 years ago

Thanks very much, I'll see what I can do about this.

fusion809 commented 6 years ago

Building DarkReign in the openSUSE Build Service is also giving a weird error:

SpriteLoaders/JascPaletteLoader.cs(21,28): error CS0246: The type or namespace name 'IPaletteLoader' could not be found (are you missing a using directive or an assembly reference?)

before the aforementioned commit the build went fine.

EDIT: Also occurs when I build it the ol' fashion way (with make) on openSUSE Tumbleweed.

drogoganor commented 5 years ago

Hi,

Thanks for the feedback. There's been some errors made on my part handling the merging of upstream branches necessary for the cursor palettes. I've made some recent commits which should fix the issue, if you're willing to give it another shot.

I also stress the mod is in an early state and many features are absent. The AI is broken in the current build so there is no skirmish either. :( But there's a couple of demo single player missions if you want to give those a go.

Let me know how you go. Cheers

fusion809 commented 5 years ago

Build succeeds on Fedora 28, with Mono 5.16.0.187, with two warnings, here's my build log. It crashes on startup, with this log.

drogoganor commented 5 years ago

I've made an update now. I'm pretty sure it's because the mod.yaml had the MOUSE.CRS file in upper case, instead of the correct lower case. I also removed the utility project from the solution and addressed the other warning about CodeAnalysis.

Please give it another go. Sorry for all the messing around - I don't have a linux system available to me at the moment.

fusion809 commented 5 years ago

It's OK mate, I'm just grateful you're trying, after all you owe me and other Linux users nothing.

Build went without errors or warnings. Still crashed with the error:

Exception of type `System.ArgumentException`: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
  at System.Collections.Generic.List`1[T].Reverse (System.Int32 index, System.Int32 count) [0x00020] in <3d1438d9da1e4fe0b915f807d1ba56bd>:0 
  at OpenRA.Mods.Dr.SpriteLoaders.DrCrsLoader.ParseFrames (System.IO.Stream s) [0x001d7] in <2b90809c68734787b909ddf8e1bc39ae>:0 
  at OpenRA.Mods.Dr.SpriteLoaders.DrCrsLoader.TryParseSprite (System.IO.Stream s, OpenRA.Graphics.ISpriteFrame[]& frames) [0x00017] in <2b90809c68734787b909ddf8e1bc39ae>:0 
  at OpenRA.Graphics.FrameLoader.GetFrames (System.IO.Stream stream, OpenRA.Graphics.ISpriteLoader[] loaders) [0x0000c] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Graphics.FrameLoader.GetFrames (OpenRA.FileSystem.IReadOnlyFileSystem fileSystem, System.String filename, OpenRA.Graphics.ISpriteLoader[] loaders) [0x0000a] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Graphics.FrameCache+<>c__DisplayClass1_0.<.ctor>b__0 (System.String filename) [0x00000] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Exts.GetOrAdd[K,V] (System.Collections.Generic.Dictionary`2[TKey,TValue] d, K k, System.Func`2[T,TResult] createFn) [0x00011] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Primitives.Cache`2[T,U].get_Item (T key) [0x00001] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Graphics.FrameCache.get_Item (System.String filename) [0x00001] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Graphics.CursorSequence..ctor (OpenRA.Graphics.FrameCache cache, System.String name, System.String cursorSrc, System.String palette, OpenRA.MiniYaml info) [0x00111] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Graphics.CursorProvider..ctor (OpenRA.ModData modData) [0x001ca] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.ModData.InitializeLoaders (OpenRA.FileSystem.IReadOnlyFileSystem fileSystem) [0x00021] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Game.InitializeMod (System.String mod, OpenRA.Arguments args) [0x00227] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x004d8] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00007] in <c3faa956b0d54f20aad0f62b47d52310>:0 
  at OpenRA.Program.Main (System.String[] args) [0x0004e] in <c3faa956b0d54f20aad0f62b47d52310>:0 

AL lib: (WW) FreeContext: (0x1a7b780) Deleting 32 Sources
drogoganor commented 5 years ago

It seems the demo mouse.crs does not include several cursors in the release version. I'm going to find some suitable replacements for the time being.

fusion809 commented 5 years ago

All is good now (as of d4f468d18a7f38f0384a92430aaba38a77890731), thanks mate! It builds and runs without error or warnings. I played a few seconds of a game, creating a few units and it seems fine.