Thread Tools
Posts: 43 | Thanked: 45 times | Joined on May 2010

So close, yet so far!


One of the games from the latest Humble Indie Bundle 6 ( is Wizorb (

When I saw the game the first thing that crossed my mind was "it would be awesome to get this on my N900". After I purchased the bundle, I noticed that the game uses mono to run, and decided to check how mono was doing.

Long story short, I installed mono-runtime, libopenal1, libmono-system-core4.0-cil and libmono-system-drawing4.0-cil, and I can run "mono Wizorb.exe", from the tar.gz version.

The game starts (you might have to switch from the terminal to the window, it doesn't always do that), and I can get to the menu. Physical keyboard doesn't seem to work, and when I try clicking on the screen eventually the game crashes with

/media/mmc1/wizorb/wizorb $ mono Wizorb.exe

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for OpenTK.Input.Mouse ---> System.EntryPointNotFoundException: XISelectEvents
  at (wrapper managed-to-native) OpenTK.Platform.X11.Functions:XISelectEvents (intptr,intptr,OpenTK.Platform.X11.XIEventMask&,int)
  at OpenTK.Platform.X11.Functions.XISelectEvents (IntPtr dpy, IntPtr win, XIEventMask mask) [0x00000] in <filename unknown>:0 
  at OpenTK.Platform.X11.XI2Mouse..ctor () [0x00000] in <filename unknown>:0 
  at OpenTK.Platform.X11.X11Factory.CreateMouseDriver () [0x00000] in <filename unknown>:0 
  at OpenTK.Input.Mouse..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Microsoft.Xna.Framework.Input.Mouse.SetPosition (Int32 x, Int32 y) [0x00000] in <filename unknown>:0 
  at Paris.System.Input.InputManager.Tick (Microsoft.Xna.Framework.GameTime i_gameTime) [0x00000] in <filename unknown>:0 
  at Paris.Paris.Update (Microsoft.Xna.Framework.GameTime gameTime) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.DoUpdate (Microsoft.Xna.Framework.GameTime aGameTime) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.GameWindow.OnUpdateFrame (System.Object sender, OpenTK.FrameEventArgs e) [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) <Module>:invoke_void__this___object_FrameEventArgs (object,OpenTK.FrameEventArgs)
  at OpenTK.GameWindow.OnUpdateFrame (OpenTK.FrameEventArgs e) [0x00000] in <filename unknown>:0 
  at OpenTK.GameWindow.OnUpdateFrameInternal (OpenTK.FrameEventArgs e) [0x00000] in <filename unknown>:0 
  at OpenTK.GameWindow.RaiseUpdateFrame (System.Diagnostics.Stopwatch update_watch, System.Double& next_update, OpenTK.FrameEventArgs update_args) [0x00000] in <filename unknown>:0 
  at OpenTK.GameWindow.DispatchUpdateAndRenderFrame (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
  at OpenTK.GameWindow.Run (Double updates_per_second, Double frames_per_second) [0x00000] in <filename unknown>:0 
  at OpenTK.GameWindow.Run (Double updateRate) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.GameWindow.Run (Double updateRate) [0x00000] in <filename unknown>:0 
  at Microsoft.Xna.Framework.Game.Run () [0x00000] in <filename unknown>:0 
  at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  40 (X_TranslateCoords)
  Resource id in failed request:  0x3600002
  Serial number of failed request:  471
  Current serial number in output stream:  471
AL lib: ALc.c:1640: exit(): closing 1 Device
AL lib: ALc.c:1569: alcCloseDevice(): destroying 1 Context
AL lib: ALc.c:1258: alcDestroyContext(): deleting 77 Source(s)
AL lib: ALc.c:1578: alcCloseDevice(): deleting 77 Buffer(s)
At this point I don't really know how to proceed. It seems to me that maemo 5's libXi might be missing the XISelectEvents symbol (if I do "strings /usr/lib/x86_64-linux-gnu/ | grep XISelectEvents" I get a hit on my desktop but not on maemo).

Does anyone that know a bit more about this care to try debugging this further? I think this game would be awesome on N900.

Update: I've been playing around with the OpenTK library source code (which is used for display and mouse input), and you can both disable the use of SelectEvents, or the use of XInput2 entirely, but while in both cases it still works correctly on my desktop, on maemo the mouse moves unpredictably. As for keyboard, the game doesn't seem to be using the OpenTK facilities for the keyboard.

Maybe someone with more X/Maemo/Mono foo might be able to test further.

Last edited by [Knuckles]; 2012-09-30 at 19:04.

Thread Tools

Forum Jump

All times are GMT. The time now is 18:45.