Author Topic: Dyson does not start because of libSDL_gfx.so.4  (Read 9167 times)

kybalion

  • Guest
Dyson does not start because of libSDL_gfx.so.4
« on: June 22, 2009, 08:43:48 AM »
xxxxx@#####:~/Software/dyson120-linux> mono Dyson.exe

Code: [Select]
Unhandled Exception: System.DllNotFoundException: libSDL_gfx.so.4
  at (wrapper managed-to-native) Tao.Sdl.SdlGfx:zoomSurface (intptr,double,double,int)
  at SdlDotNet.Graphics.Surface.Clone (Boolean doDeepCopy) [0x00000]                 
  at SdlDotNet.Graphics.Surface.Clone () [0x00000]                                   
  at SdlDotNet.Graphics.Surface.CreateStretchedSurface (Size destinationSize) [0x00000]
  at SdlDotNet.Graphics.Surface.CreateResizedSurfaceInternal (Size destinationSize) [0x00000]
  at SdlDotNet.Graphics.Surface.CreateResizedSurface (Size destinationSize) [0x00000]         
  at SdlDotNet.Graphics.Surface.CreateResizedSurface () [0x00000]                             
  at Wuwei.Drawing.GLSurface.TransformSurface (Boolean flipSurface) [0x00000]                 
  at Wuwei.Drawing.GLSurface.Refresh (SdlDotNet.Graphics.Surface surface, Boolean flipSurface) [0x00000]
  at Wuwei.Drawing.GLSprite.Refresh (SdlDotNet.Graphics.Surface surface, Boolean flipSurface) [0x00000] 
  at Wuwei.Drawing.GLSurface.Refresh () [0x00000]                                                       
  at Wuwei.Drawing.GLSurface.Check () [0x00000]                                                         
  at Wuwei.Drawing.Blitter.Draw (Wuwei.Maths.Vector3f[] verts, Wuwei.Maths.Vector2f[] texcoords, ColorF color) [0x00000]                                                                                                                 
  at Wuwei.Drawing.BitmapFont.DrawLineOfText (System.String text, Single scale, Vector3f drawPos, Vector2f bounds, Single lineWidth, Int32 numWords, HorizontalJustification hjustify, Boolean batch, Wuwei.Drawing.FormattingInfo formatInfoAtStartOfLine, Int32 startCharacter, Int32 finalCharacter) [0x00000]
  at Wuwei.Drawing.BitmapFont.DrawProcessText (System.String text, RectangleF bounds, HorizontalJustification hjustify, Single lineHeight, Single z, Single scale, Wuwei.Maths.Vector2f& cursorPosition, System.Int32& numLines, Boolean draw, Boolean batch) [0x00000]
  at Wuwei.Drawing.BitmapFont.Draw (System.String text, RectangleF bounds, HorizontalJustification hjustify, VerticalJustification vjustify, Single z, ColorF colour, Single scale, Boolean batch) [0x00000]
  at Wuwei.Drawing.BitmapFont.PrintString (System.String text, Int32 x, Int32 y, Color color, Boolean dropShadow, Single zoom, Boolean batcher) [0x00000]
  at Dyson.Game.DrawLoadingScreen () [0x00000]
  at Dyson.Game.Go () [0x00000]
  at Dyson.Game.Main () [0x00000]
I already have installed sdl gfx 2.0.17-1.108; running on opensuse 11.1 with an intel 945gm video card with some-kind of shared memory wich I don't understand. Any idea? I will try to run the windows version on wine.

Alex

  • Administrator
  • Ent
  • *****
  • Thank You
  • -Given: 3
  • -Receive: 14
  • Posts: 1,035
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #1 on: June 22, 2009, 08:22:08 PM »
Try changing the manifest to libSDL_gfx.so.0. I will update the archive

kybalion

  • Guest
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #2 on: June 24, 2009, 12:49:37 AM »
How do I do that?

Alex

  • Administrator
  • Ent
  • *****
  • Thank You
  • -Given: 3
  • -Receive: 14
  • Posts: 1,035
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #3 on: June 24, 2009, 03:48:10 PM »
It's in Tao.sdl.dll.config.

I've attached a fixed version.

Vanger

  • Tester
  • Shrub
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 212
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #4 on: June 27, 2009, 09:50:21 PM »
Fixed version is great, but there are some weird libSDL_gfx packages, that, for example, do not create libSDL_gfx.so.0, but libSDL_gfx.so instead.

It is impossible to cover all maintainers' quirks so, I think, it's better to add into system requirements for Linux version something like:

"If you have Unhandled Exception: System.DllNotFoundException: libSDL_gfx.so.0 error, and you are sure that libSDL_gfx package is installed, please, look for libSDL_gfx.so in /usr/lib/ and as a superuser execute <i>ln -s /usr/lib/libSDL_gfx.so /usr/lib/libSDL_gfx.so.0</i>"

Alex

  • Administrator
  • Ent
  • *****
  • Thank You
  • -Given: 3
  • -Receive: 14
  • Posts: 1,035
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #5 on: July 02, 2009, 01:20:07 AM »
Linux is a pain  :-\

Vanger

  • Tester
  • Shrub
  • ****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 212
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #6 on: July 02, 2009, 02:35:47 AM »
Well, as I looked in it, why won't you supply SDL libraries for Linux with the game?
Just as you do with SDL libs Windows.

I've checked, they are 1,2M unpacked and 450K packed, so it won't be a burden.

Alex

  • Administrator
  • Ent
  • *****
  • Thank You
  • -Given: 3
  • -Receive: 14
  • Posts: 1,035
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #7 on: July 02, 2009, 06:22:28 AM »
Yep, sounds like a plan. ATM I just stuff the whole windows build into a zip, it's incredibly unprofessional.

kybalion

  • Guest
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #8 on: July 15, 2009, 02:34:30 AM »
It's in Tao.sdl.dll.config.

I've attached a fixed version.
It works, but the audio sounds with some weird noises. Thanks anyway

blankthemuffin

  • Guest
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #9 on: July 27, 2009, 08:06:46 PM »
Just to let you know, you're kinda doing it wrong with the manifests.
Using the full versioned binary name is destined for trouble like this, it's much easier and cleaner to just use the short binary name in your config files. For example.

<configuration>
   <dllmap dll="SDL.dll">
      <dllentry os="linux" dll="SDL"/>
      <dllentry os="windows" dll="SDL.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/SDL.framework/SDL" />
   </dllmap>
   <dllmap dll="SDL_image.dll">
      <dllentry os="linux" dll="SDL_image" />
      <dllentry os="windows" dll="SDL_image.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/SDL_image.framework/SDL_image" />
   </dllmap>
   <dllmap dll="SDL_mixer.dll">
      <dllentry os="linux" dll="SDL_mixer" />
      <dllentry os="windows" dll="SDL_mixer.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/SDL_mixer.framework/SDL_mixer" />
   </dllmap>
   <dllmap dll="SDL_ttf.dll">
      <dllentry os="linux" dll="SDL_ttf" />
      <dllentry os="windows" dll="SDL_ttf.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/SDL_ttf.framework/SDL_ttf" />
   </dllmap>
   <dllmap dll="SDL_net.dll">
      <dllentry os="linux" dll="SDL_net" />
      <dllentry os="windows" dll="SDL_net.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/SDL_net.framework/SDL_net" />
   </dllmap>
   <dllmap dll="smpeg.dll">
      <dllentry os="linux" dll="smpeg" />
      <dllentry os="windows" dll="smpeg.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/smpeg.framework/smpeg" />
   </dllmap>
   <dllmap dll="SDL_gfx.dll">
      <dllentry os="linux" dll="SDL_gfx" />
      <dllentry os="windows" dll="SDL_gfx.dll"/>
      <dllentry os="osx" dll="/Library/Frameworks/SDL_gfx.framework/SDL_gfx" />
   </dllmap>
</configuration>

If your Tao.Sdl.dll.config file looks like that, mono will have much better luck picking up various versions of the binaries which various distributions might provide. Otherwise you will be fighting a war you cannot win.

Hope this helps.

Alex

  • Administrator
  • Ent
  • *****
  • Thank You
  • -Given: 3
  • -Receive: 14
  • Posts: 1,035
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #10 on: July 28, 2009, 12:00:54 AM »
Thanks!  ;D

blankthemuffin

  • Guest
Re: Dyson does not start because of libSDL_gfx.so.4
« Reply #11 on: July 28, 2009, 12:23:23 AM »
Anything to help games on linux. :D