Official Chasm on Linux Thread

Help and problem reporting for the game.
User avatar
James
Developer
Developer
Posts: 1612
Joined: Fri Feb 15, 2013 5:34 pm

Re: Official Chasm on Linux Thread

Post by James » Tue Apr 16, 2013 12:07 am

flibitijibibo wrote:MonoGame upstream just uses OpenTK, which has approximately long.MaxValue problems on
A couple things worth noting, not sure if these are bugs or not:

- Music doesn't work. For MonoGame Linux, you're going to want to use Ogg Vorbis files. Don't worry about adding the file extension in your game code, we append ".ogg" by default.
- Exiting the game: any way to do it other than closing the window/Ctrl+C?
Sounds cool!

Music works for me in Ubuntu. I had to use uncompressed wav since there's no MP3 playback. We're going to be replacing the audio engine with an openAL/OGG one soon. Renaud Bedard posted about it here.

Also, it's just a tech demo so there's not anyway to exit it from inside.

Xpander
Posts: 3
Joined: Mon Apr 15, 2013 5:37 pm

Re: Official Chasm on Linux Thread

Post by Xpander » Tue Apr 16, 2013 11:47 am

Music worked for me also without any issues.

and exit is alt+f4 :D..its always been so :lol:

johnzo
Posts: 1
Joined: Sat Apr 20, 2013 3:39 pm

Re: Official Chasm on Linux Thread

Post by johnzo » Sat Apr 20, 2013 3:50 pm

I'm running the game in fullscreen and it's super fun! The only issue I see is that my xbox 360 gamepad isn't working, the game does not respond to its input.

I've verified that the gamepad device is correctly created as /dev/input/js0 and using jstest I see that it appears to be working at the device level.

I'm running Ubuntu 12.10-amd64 and using the ChasmDemo103-Linux.tar.gz linked on your kickstarter page. The only change I had to make to your install instructions was to install libopenal1 as libopenal0a isn't a thing in Ubuntu 12.10.

Happy to provide any other information or try different things if that's useful to you.

flibitijibibo
Supporter
Supporter
Posts: 9
Joined: Mon Apr 15, 2013 9:44 pm

Re: Official Chasm on Linux Thread

Post by flibitijibibo » Sat Apr 20, 2013 3:53 pm

Use this patch: http://www.flibitijibibo.com/chasmLinuxPatch.tar.bz2

Then use this config: http://pcgamingwiki.com/wiki/MonoGame#X ... 28wired.29

More info on the config file is on that PCGW page.

flibitijibibo
Supporter
Supporter
Posts: 9
Joined: Mon Apr 15, 2013 9:44 pm

Re: Official Chasm on Linux Thread

Post by flibitijibibo » Sat Apr 20, 2013 4:04 pm

Oh, by the way, here's a Music/ folder that's closer to the XNA content, and uses Ogg rather than mp3:

http://www.flibitijibibo.com/chasmMGMusic.tar.bz2

Extract this from the Chasm root directory via `tar` and it should go in the right spot. You can also delete the mp3/wav files in there as well.

Since this is a patch of content (unauthorized, as well...), I'll keep this separate from the other patch.

For Discord, here's how to make the Music content:

- From the wav masters, convert to Ogg Vorbis. Obvious.
- From the original XNA Content build, take all the XNB files and put them alongside the Ogg Vorbis files.
- With a hex editor (I use GHex), search for the filename in the XNB file. These files are tiny, so it'll probably be in the first screen. Replace the '.wma' extension with '.ogg'.

MonoGame will pick up the XNB file, read it, then open up the Vorbis file as a Song, which will be played back by SDL_mixer. It's more consistent than the mp3 playback, and doesn't have the patent concern. For my MG branch, this works for the Mac version as well.

User avatar
James
Developer
Developer
Posts: 1612
Joined: Fri Feb 15, 2013 5:34 pm

Re: Official Chasm on Linux Thread

Post by James » Sat Apr 20, 2013 6:03 pm

Damn sweet! We've got a new version of the demo in the works, so I will take all this into account for it. What exactly did your patch do to get the 360 gamepad working?

flibitijibibo
Supporter
Supporter
Posts: 9
Joined: Mon Apr 15, 2013 9:44 pm

Re: Official Chasm on Linux Thread

Post by flibitijibibo » Sat Apr 20, 2013 6:19 pm

The current GamePad in upstream MonoGame hardcodes all of the controller input values. My branch allows you to configure it, so anyone with a non-standard controller can bind their SDL joystick values to a virtual 360 controller, which MonoGame then interprets. I think the original hardcoded values are to someone's 360 controller on Windows, so it probably doesn't line up on Linux (may depend on the 360 controller driver too).

I wrote a quick SDL joystick value detector as well: http://www.flibitijibibo.com/files/Mono ... Detector.c

Eventually it'll also do the configuration automatically (via SDL2# GameController and Steam), but the SDL2# backend is still pending.

flibitijibibo
Supporter
Supporter
Posts: 9
Joined: Mon Apr 15, 2013 9:44 pm

Re: Official Chasm on Linux Thread

Post by flibitijibibo » Tue Apr 23, 2013 5:49 am

chasmLinuxPatch was updated just now. Only noticeable change for Chasm is a crash for MediaPlayer when a Song queue loops.

bendmorris
Posts: 1
Joined: Fri Apr 26, 2013 10:51 pm

Re: Official Chasm on Linux Thread

Post by bendmorris » Fri Apr 26, 2013 10:53 pm

Trying to run on Arch Linux 64 bit, here's the stack trace after I run "bash chasm":

Code: Select all

Unhandled Exception: Microsoft.Xna.Framework.Graphics.MonoGameGLException: GL.GetError() returned InvalidEnum
  at Microsoft.Xna.Framework.Graphics.GraphicsExtensions.CheckGLError () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Graphics.Texture2D+<Texture2D>c__AnonStoreyB.<>m__23 () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Threading.BlockOnUIThread (System.Action action) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Graphics.Texture2D..ctor (Microsoft.Xna.Framework.Graphics.GraphicsDevice graphicsDevice, Int32 width, Int32 height, Boolean mipmap, SurfaceFormat format, Boolean renderTarget) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Graphics.Texture2D..ctor (Microsoft.Xna.Framework.Graphics.GraphicsDevice graphicsDevice, Int32 width, Int32 height, Boolean mipmap, SurfaceFormat format) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.Texture2DReader.Read (Microsoft.Xna.Framework.Content.ContentReader reader, Microsoft.Xna.Framework.Graphics.Texture2D existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentTypeReader`1[Microsoft.Xna.Framework.Graphics.Texture2D].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[Texture2D] () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.SpriteFontReader.Read (Microsoft.Xna.Framework.Content.ContentReader input, Microsoft.Xna.Framework.Graphics.SpriteFont existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentTypeReader`1[Microsoft.Xna.Framework.Graphics.SpriteFont].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[SpriteFont] () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[SpriteFont] () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[SpriteFont] (System.String assetName, System.Action`1 recordDisposableObject) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.Load[SpriteFont] (System.String assetName) [0x00000] in <filename unknown>:0 
  at Chasm.ChasmGame.Initialize () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.DoInitialize () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.Run (GameRunBehavior runBehavior) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.Run () [0x00000] in <filename unknown>:0 
  at TestChamber.Program.Main () [0x00000] in <filename unknown>:0 
ALSA lib pcm.c:7820:(snd_pcm_recover) underrun occurred
[ERROR] FATAL UNHANDLED EXCEPTION: Microsoft.Xna.Framework.Graphics.MonoGameGLException: GL.GetError() returned InvalidEnum
  at Microsoft.Xna.Framework.Graphics.GraphicsExtensions.CheckGLError () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Graphics.Texture2D+<Texture2D>c__AnonStoreyB.<>m__23 () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Threading.BlockOnUIThread (System.Action action) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Graphics.Texture2D..ctor (Microsoft.Xna.Framework.Graphics.GraphicsDevice graphicsDevice, Int32 width, Int32 height, Boolean mipmap, SurfaceFormat format, Boolean renderTarget) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Graphics.Texture2D..ctor (Microsoft.Xna.Framework.Graphics.GraphicsDevice graphicsDevice, Int32 width, Int32 height, Boolean mipmap, SurfaceFormat format) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.Texture2DReader.Read (Microsoft.Xna.Framework.Content.ContentReader reader, Microsoft.Xna.Framework.Graphics.Texture2D existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentTypeReader`1[Microsoft.Xna.Framework.Graphics.Texture2D].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[Texture2D] () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.SpriteFontReader.Read (Microsoft.Xna.Framework.Content.ContentReader input, Microsoft.Xna.Framework.Graphics.SpriteFont existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentTypeReader`1[Microsoft.Xna.Framework.Graphics.SpriteFont].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[SpriteFont] () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[SpriteFont] () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[SpriteFont] (System.String assetName, System.Action`1 recordDisposableObject) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.Load[SpriteFont] (System.String assetName) [0x00000] in <filename unknown>:0 
  at Chasm.ChasmGame.Initialize () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.DoInitialize () [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.Run (GameRunBehavior runBehavior) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.Run () [0x00000] in <filename unknown>:0 
  at TestChamber.Program.Main () [0x00000] in <filename unknown>:0 
AL lib: (EE) alc_cleanup: 1 device not closed

Any pointers?

User avatar
James
Developer
Developer
Posts: 1612
Joined: Fri Feb 15, 2013 5:34 pm

Re: Official Chasm on Linux Thread

Post by James » Sat Apr 27, 2013 12:26 am

Do you know if your video card supports Pixel Shader 2.0+? That's the only hardware requirement I know of on the graphics side. I'll take a look though.

Locked