Rogue Legacy > General Discussion > Topic Details
flibitijibibo  [developer] Dec 5, 2013 @ 12:56am
PSA (Dec 5 2013) (Mac/Linux): Major MG-SDL2 Update
I just pushed an update for Rogue Legacy that provides a major update to the audio and rendering subsystems of MonoGame-SDL2.

In terms of rendering, the OpenGL GraphicsDevice was redone to drastically reduce the number of GL calls and improve performance.

In terms of audio, the MonoGame XACT implementation was completely rewritten from scratch, allowing for significantly greater accuracy when compared to the original XNA4 audio engine. Additionally, MSADPCM decoding is now significantly faster, so that initial load time should be a bit shorter now.

The reason for the PSA is because this is a VERY big change to the ports, and while the experience should now be MUCH better, there may be a couple hidden bugs here or there (particularly for the XACT rewrite).

You can definitely expect the audio to sound different, primarily. But, there shouldn't be anything _wrong_ in the new engine, per se... if you find anything outstandingly wrong, let me know. Otherwise, it's generally safe to assume that the differences are likely closer to how the original XNA version does it.

This update was applied to 4 of my ports on Steam (AVNT, Capsized, Escape Goat beta branch, Rogue Legacy), so I appreciate your patience while I knock out any possible problems that arise from the MG-SDL2 update.

Thanks for your patience!

EDIT: Additionally, still trying to figure out that blasted problem with Mac Steam forcequitting on game exit. I've had this problem with MG-SDL2 titles before (involves a Mono SIGUSR1 conflict), and for all the previous titles it just seemed to magically go away after a while. I'll keep digging.

UPDATE (06:30 EST): The VertexAttribDivisor bug for OSX has been fixed.
UPDATE (07:05 EST): libopenal.1.dylib should now target OSX 10.6 and higher.
Last edited by flibitijibibo; Dec 5, 2013 @ 4:40am
Showing 1-15 of 45 comments
< >
onesandzeroes Dec 5, 2013 @ 1:29am 
Seems pretty good so far. Some of the sounds seem a bit crisper or punchier, but that's the only obvious change. The frame rate might be a little smoother, but I never had any particular problems before (haven't really experienced any bugs with the Linux port, actually). Keep up the great work, flibbertijibbet!
Dixie Flatline Dec 5, 2013 @ 1:37am 
Hi there. I'm not sure if this has something to do with the update, but the timing is rather auspicious. My game has been crashing on start when launching through Steam. It was running fine a couple days ago. I am on a Mac running OSX 10.8.5. Again, this could just be random, or exclusive to my machine, but I noticed this PSA, and thought I'd mention it; can also post the error dialog that shows up. Thanx for the awesome game btw!

EDIT:
Duh... I just read your edit mentioning the force quit.
Last edited by Dixie Flatline; Dec 5, 2013 @ 1:38am
flibitijibibo  [developer] Dec 5, 2013 @ 1:44am 
Originally posted by Dixie Flatline:
Hi there. I'm not sure if this has something to do with the update, but the timing is rather auspicious. My game has been crashing on start when launching through Steam. It was running fine a couple days ago. I am on a Mac running OSX 10.8.5. Again, this could just be random, or exclusive to my machine, but I noticed this PSA, and thought I'd mention it; can also post the error dialog that shows up. Thanx for the awesome game btw!

EDIT:
Duh... I just read your edit mentioning the force quit.
The forcequit is still an issue on game exit, but it shouldn't crash on start... did a crash log happen to pop up? The two possible failures are usually managed (messagebox with the Rogue logo) or native (Apple crash report whoosit). If it just plain hangs on start ("MonoGame-SDL2 Window"?), I'm not entirely sure.
Dixie Flatline Dec 5, 2013 @ 1:57am 
Hmm, ok. So first it pops a dialog box that says the last time the program ran, it crashed unexpectedly; something about window size. Then the when the screen switches to the game one of two things happen: blank screen, or the Loading Screen with the door logo, then it force quits.
Dunno if this is the right crash log, but this showed up when i clicked 'report'.

Dyld Error Message:
Symbol not found: ___sincosf_stret
Referenced from: */libopenal.1.dylib
Expected in: /usr/lib/libSystem.B.dylib
flibitijibibo  [developer] Dec 5, 2013 @ 2:03am 
Huh, that suggests that OpenAL Soft went missing, which would be odd...

Try verifying the cache to be sure that libopenal.1.dylib survived (that was one of the updated files in today's update). If it still fails, check the md5sum of these two files (can be done with `md5` command in terminal):

~/Library/Application\ Support/Steam/SteamApps/common/Rogue\ Legacy/Rogue\ Legacy.app/Contents/MacOS/RogueLegacy
~/Library/Application\ Support/Steam/SteamApps/common/Rogue\ Legacy/Rogue\ Legacy.app/Contents/MacOS/osx/libopenal.1.dylib

According to my output, should be...

RogueLegacy: 5be6001b14a6ba5783a7843fb9beeef7
libopenal.1.dylib: 74593f51a84e782121955b6f10e9fc86
Dixie Flatline Dec 5, 2013 @ 2:33am 
O.o ... hmm, so I tried doing that. But I think it went a little over my head. I'm not used to Mac, having just made the switch to one recently for school. I couldn't figure out how to check the cache, but I'll take a look tomorrow. Can't brain at the moment. Thanks a lot for the help! And heard there's going to be an update to the game? This is already the most perfect game loop ever, can't wait to see what's next!!
Soup_Commander Dec 5, 2013 @ 2:37am 
Hi, same problem with the crash on startup. I am on OS X Lion 10.7.5 and the game was running fine until the update tonight. When I start up the game it crashes and has the message box 'Your game has encountered an error and a crash log has been generated. Please view the Readme.txt file for more information.' I checked the crash logs and they are quite large but I can post if necessary.
sunshineal Dec 5, 2013 @ 2:38am 
I am also getting a crash on startup today. I played a very smooth 3-hour session only yesterday. My crash log is showing this.. what does this mean? I should mention I'm also running OS X Lion 10.7.5.

System.DllNotFoundException: opengl32.dll
at (wrapper managed-to-native) OpenTK.Graphics.OpenGL.GL/Core:VertexAttribDivisor (uint,uint)
at OpenTK.Graphics.OpenGL.GL.VertexAttribDivisor (Int32 index, Int32 divisor) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.VertexDeclaration.Apply (Microsoft.Xna.Framework.Graphics.Shader shader, IntPtr offset, Int32 divisor) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawUserIndexedPrimitives[VertexPositionColorTexture] (PrimitiveType primitiveType, Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[] vertexData, Int32 vertexOffset, Int32 numVertices, System.Int16[] indexData, Int32 indexOffset, Int32 primitiveCount, Microsoft.Xna.Framework.Graphics.VertexDeclaration vertexDeclaration) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatcher.FlushVertexArray (Int32 start, Int32 end) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatcher.DrawBatch (SpriteSortMode sortMode) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.FlushIfNeeded () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.DrawInternal (Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector4 destinationRectangle, Nullable`1 sourceRectangle, Color color, Single rotation, Vector2 origin, SpriteEffects effect, Single depth, Boolean autoFlush) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw (Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector2 position, Nullable`1 sourceRectangle, Color color, Single rotation, Vector2 origin, Vector2 scale, SpriteEffects effect, Single depth) [0x00000] in <filename unknown>:0
at DS2DEngine.SpriteObj.Draw (DS2DEngine.Camera2D camera) [0x00000] in <filename unknown>:0
at RogueCastle.LoadingScreen.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at DS2DEngine.ScreenManager.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at RogueCastle.RCScreenManager.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at RogueCastle.Game.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game.DoDraw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game.Tick () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.SDL2_GameWindow.INTERNAL_RunLoop () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.SDL2_GamePlatform.RunLoop () [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 RogueCastle.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
Last edited by sunshineal; Dec 5, 2013 @ 2:38am
Soup_Commander Dec 5, 2013 @ 2:53am 
Originally posted by sunshineal:
I am also getting a crash on startup today. I played a very smooth 3-hour session only yesterday. My crash log is showing this.. what does this mean? I should mention I'm also running OS X Lion 10.7.5.

System.DllNotFoundException: opengl32.dll
at (wrapper managed-to-native) OpenTK.Graphics.OpenGL.GL/Core:VertexAttribDivisor (uint,uint)
at OpenTK.Graphics.OpenGL.GL.VertexAttribDivisor (Int32 index, Int32 divisor) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.VertexDeclaration.Apply (Microsoft.Xna.Framework.Graphics.Shader shader, IntPtr offset, Int32 divisor) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawUserIndexedPrimitives[VertexPositionColorTexture] (PrimitiveType primitiveType, Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[] vertexData, Int32 vertexOffset, Int32 numVertices, System.Int16[] indexData, Int32 indexOffset, Int32 primitiveCount, Microsoft.Xna.Framework.Graphics.VertexDeclaration vertexDeclaration) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatcher.FlushVertexArray (Int32 start, Int32 end) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatcher.DrawBatch (SpriteSortMode sortMode) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.FlushIfNeeded () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.DrawInternal (Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector4 destinationRectangle, Nullable`1 sourceRectangle, Color color, Single rotation, Vector2 origin, SpriteEffects effect, Single depth, Boolean autoFlush) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw (Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector2 position, Nullable`1 sourceRectangle, Color color, Single rotation, Vector2 origin, Vector2 scale, SpriteEffects effect, Single depth) [0x00000] in <filename unknown>:0
at DS2DEngine.SpriteObj.Draw (DS2DEngine.Camera2D camera) [0x00000] in <filename unknown>:0
at RogueCastle.LoadingScreen.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at DS2DEngine.ScreenManager.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at RogueCastle.RCScreenManager.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at RogueCastle.Game.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game.DoDraw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game.Tick () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.SDL2_GameWindow.INTERNAL_RunLoop () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.SDL2_GamePlatform.RunLoop () [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 RogueCastle.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0


This is the log that I am getting as well. BTW I love this game and think that it is amazing! can't wait for more stuff from you guys.
A Hamster Dec 5, 2013 @ 2:59am 
Hi I'm on a macbook 10.8.5 and I can't get the game to launch after this patch.

This is the error message: Rogue Legacy quit unexpectedly. Just a heads up.
flibitijibibo  [developer] Dec 5, 2013 @ 3:06am 
Looking at the logs, it seems that despite the hardware claiming to support a GL extension, when it actually comes time to actually _use_ it, it fails. So I gotta work around that real quick.

Will post again when it's live, should be a few minutes.
flibitijibibo  [developer] Dec 5, 2013 @ 3:31am 
Just pushed the fix to Steam. The VertexAttribDivisor issue should be gone now.
Soup_Commander Dec 5, 2013 @ 3:37am 
Just updated the game and tried it, Game starts up and gets to cellar door games and then 'unexpectedley quits'
flibitijibibo  [developer] Dec 5, 2013 @ 3:39am 
Originally posted by Soup_Commander:
Just updated the game and tried it, Game starts up and gets to cellar door games and then 'unexpectedley quits'
Have a log? Should either be from the Apple reporter or `~/Library/Application Support/RogueLegacyStorageContainer/`.
Soup_Commander Dec 5, 2013 @ 3:41am 
System.DllNotFoundException: opengl32.dll
at (wrapper managed-to-native) OpenTK.Graphics.OpenGL.GL/Core:VertexAttribDivisor (uint,uint)
at OpenTK.Graphics.OpenGL.GL.VertexAttribDivisor (Int32 index, Int32 divisor) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.VertexDeclaration.Apply (Microsoft.Xna.Framework.Graphics.Shader shader, IntPtr offset, Int32 divisor) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawUserIndexedPrimitives[VertexPositionColorTexture] (PrimitiveType primitiveType, Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[] vertexData, Int32 vertexOffset, Int32 numVertices, System.Int16[] indexData, Int32 indexOffset, Int32 primitiveCount, Microsoft.Xna.Framework.Graphics.VertexDeclaration vertexDeclaration) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatcher.FlushVertexArray (Int32 start, Int32 end) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatcher.DrawBatch (SpriteSortMode sortMode) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.FlushIfNeeded () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.DrawInternal (Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector4 destinationRectangle, Nullable`1 sourceRectangle, Color color, Single rotation, Vector2 origin, SpriteEffects effect, Single depth, Boolean autoFlush) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw (Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector2 position, Nullable`1 sourceRectangle, Color color, Single rotation, Vector2 origin, Vector2 scale, SpriteEffects effect, Single depth) [0x00000] in <filename unknown>:0
at DS2DEngine.SpriteObj.Draw (DS2DEngine.Camera2D camera) [0x00000] in <filename unknown>:0
at RogueCastle.LoadingScreen.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at DS2DEngine.ScreenManager.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at RogueCastle.RCScreenManager.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at RogueCastle.Game.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game.DoDraw (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game.Tick () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.SDL2_GameWindow.INTERNAL_RunLoop () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.SDL2_GamePlatform.RunLoop () [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 RogueCastle.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

Here it is :(
Showing 1-15 of 45 comments
< >
Per page: 15 30 50