FNA-XNA / FNA

FNA - Accuracy-focused XNA4 reimplementation for open platforms
https://fna-xna.github.io/
2.63k stars 266 forks source link

Gnomoria doesn't find TextureDateFromStreamEXT (OpenBSD) #153

Closed rfht closed 6 years ago

rfht commented 6 years ago

Gnomoria doesn't start on OpenBSD, with errors reading any of the *_WindowPos and a MissingMethodException that 'Microsoft.Xna.Framework.Graphics.Texture2D.TextureDataFromStreamEXT was not found. At least a quick grep suggests that the method is in the FNA.dll, but apparently is not found. Am I missing something that makes this extension work?

Here the console log:

    $ ./Gnomoria
    Audio Engine Driver: FNA AudioDevice
    IGLDevice: OpenGLDevice
    OpenGL Device: Gallium 0.4 on AMD TURKS (DRM 2.29.0 / 6.2)
    OpenGL Driver: 3.0 Mesa 13.0.6
    OpenGL Vendor: X.Org
    MojoShader Profile: glsl120
    EXT_swap_control_tear unsupported. Fall back to standard VSync.
    Error reading Character_WindowPos
    Error reading SendMerchant_WindowPos
    Error reading Faction_WindowPos
    Error reading Butcher_WindowPos
    Error reading MarketStall_WindowPos
    Error reading Workshop_WindowPos
    Error reading Help_WindowPos
    Error reading Kingdom_WindowPos
    Error reading Military_WindowPos
    Error reading Population_WindowPos
    Error reading Notification_WindowPos
    Error reading Stock_WindowPos
    Error reading Stockpile_WindowPos
    [ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method 'Microsoft.Xna.Framework.Graphics.Texture2D.TextureDataFromStreamEXT' not found.      
      at Microsoft.Xna.Framework.Content.ContentTypeReader``1[T].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00003] in <8447c3557eec45c5911d5f3fef8fe117>:0
      at Microsoft.Xna.Framework.Content.ContentReader.InnerReadObject[T] (T existingInstance) [0x00022] in <8447c3557eec45c5911d5f3fef8fe117>:0                   
      at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T] (T existingInstance) [0x00000] in <8447c3557eec45c5911d5f3fef8fe117>:0                        
      at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T] () [0x00000] in <8447c3557eec45c5911d5f3fef8fe117>:0                                          
      at Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[T] () [0x00006] in <8447c3557eec45c5911d5f3fef8fe117>:0                                           
      at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T] (System.String assetName, System.Action``1[T] recordDisposableObject) [0x001ee] in <8447c3557eec45c5911d5f3fef8fe117>:0
      at Microsoft.Xna.Framework.Content.ContentManager.Load[T] (System.String assetName) [0x0005a] in <8447c3557eec45c5911d5f3fef8fe117>:0                        
      at Game.GUI.Controls.Skin.Init () [0x0013d] in <be153375703e40fa8f9e8d76280ab84f>:0                                                                          
      at Game.GUI.Controls.Manager.SetSkin (Game.GUI.Controls.Skin skin) [0x00050] in <be153375703e40fa8f9e8d76280ab84f>:0                                         
      at Game.GUI.Controls.Manager.SetSkin (System.String name) [0x00008] in <be153375703e40fa8f9e8d76280ab84f>:0                                                  
      at Game.GUI.Controls.Manager.Initialize () [0x00061] in <be153375703e40fa8f9e8d76280ab84f>:0                                                                 
      at Game.GUI.GuiManager.Initialize () [0x00000] in <be153375703e40fa8f9e8d76280ab84f>:0                                                                       
      at Game.GUI.GuiManager..ctor () [0x00046] in <be153375703e40fa8f9e8d76280ab84f>:0                                                                            
      at Game.GnomanEmpire.Initialize () [0x0002c] in <be153375703e40fa8f9e8d76280ab84f>:0                                                                         
      at Microsoft.Xna.Framework.Game.DoInitialize () [0x0000d] in <8447c3557eec45c5911d5f3fef8fe117>:0                                                            
      at Microsoft.Xna.Framework.Game.Run () [0x0000e] in <8447c3557eec45c5911d5f3fef8fe117>:0                                                                     
      at Game.Program.Main (System.String[] args) [0x00006] in <be153375703e40fa8f9e8d76280ab84f>:0                                                                
    AL lib: (EE) alc_cleanup: 1 device not closed
flibitijibibo commented 6 years ago

Gnomoria’s FNA build is pretty old so that function is probably mismatched - will either have to update on their end or make a custom DLL with the old function sig.