Pages: 1
Posted on 04-23-12, 06:49 pm
☭ coffee and cream


Karma: 10398
Posts: 273/2766
Since: 06-26-11
All the Linux users will complain about the same problems with SM64DSe. When it runs under Linux Mono, it works fine till you open a level. Then, as soon as there's one or more GLControls, the drawing of the active form is completely screwed up, and the GLControl's output overlaps everything, even forms that should overlap the form the GLControl is on.

(if you wonder, the GLControl is the control SM64DSe uses to display the 3D rendering of the level)

I first figured that the problem could come from running a Windows build through Mono. I tried building SM64DSe's code through Monodevelop under Linux, to produce a 'proper' Linux build. You'd think that that build ran better? Nope. When opening a level, it just floods the console with tons of crap and dies.

Dirbaio suggested that the problem was caused by the usage of Winforms. I made a quick GTK# app with a GLWidget. Same problem as SM64DSe. Runs fine on Windows, redrawing screwed up on Linux.

I have no idea what to do. I also googled several times and got nothing useful.

Am I missing something obvious or does Linux OpenTK just suck?

Any help will be greatly appreciated.
_________________________
Kuribo64 - RH-fucking-cafe - Kafuka

zrghij
Posted on 04-23-12, 09:32 pm
Super Mario
( ͡° ͜ʖ ͡°)

Karma: 9979
Posts: 1646/4456
Since: 06-08-11
I'd guess just try to get some OpenTK example app (I'm sure there are some) and find if it works well in Linux or not, maybe there's something wrong with your code?
Posted on 04-24-12, 06:25 pm
☭ coffee and cream


Karma: 10398
Posts: 274/2766
Since: 06-26-11
I thought about it, I may try it when I get a chance...

About your '3D in VMs is shit', yeah but still... seeing how the GLControl is integrated it just looks like a giant hack, I think the 3D in the VM has to be better... and I don't feel like trying on a real maching, 3D drivers under Linux are a pain in the ass.
_________________________
Kuribo64 - RH-fucking-cafe - Kafuka

zrghij
Posted on 04-27-12, 10:35 am
AxewAxew

Karma: 673
Posts: 190/583
Since: 07-02-11
3D in VirtualBox should suffice for SM64DSe (hell, you can run Minecraft in virtualbox).

Also, the issue in SM64DSe happens on real hardware.
Posted on 04-27-12, 05:06 pm (rev. 1 by  Arisotura on 04-27-12, 06:29 pm)
☭ coffee and cream


Karma: 10398
Posts: 280/2766
Since: 06-26-11
Exactly.

From what I can see, noone is getting the same problem as me. Either noone actually tried, or I'm just missing something obvious.

I don't know what to do. I'd post on the OpenTK forum, but I don't think they feel like getting a SM64DS ROM just to test SM64DSe, so I feel like I'm not going to get any support.

I looked at the files available, and well, everything needed has been included. OpenTK.Compatibility.dll doesn't seem to serve a purpose in my case, and those .config files just seem useless. I tried modifying them to point to files that don't exist, and Mono doesn't seem to give a shit.

Without OpenTK.dll.config, your application will not function correctly on Linux or MacOS.

I didn't try adding the .config file to the project, but I fail to see how that would change anything. All the IDE's gonna do is copy it to the output directory. Or perhaps it is used in some way during the build process, but then why is it required to have it in the output directory? And anyway, if the thing failed to find the right libraries, I'd just get no OpenGL at all, right?

Edit-

I made a little GTK# test app that displays a triangle via a GLWidget. Same problems as SM64DSe, works fine on Windows, fucks up on Linux. Adding OpenTK.dll.config makes things sensibly better, in that the app has a 1/2 chance of working right when you open it, and otherwise freezes or crashes.

I gave it to Nina, and there the thing just outright crashes with an ununderstandable error message.

Long story short, here's what I get from this story:
* .Net isn't actually portable. Mono is a giant hack. That's just 'easy' portability that only works for basic programs.
* 'Real' portability is a giant pain in the ass.
* Linux is random. Each distro on each computer will behave differently.


Prove me wrong.
_________________________
Kuribo64 - RH-fucking-cafe - Kafuka

zrghij
Posted on 04-27-12, 06:51 pm
AxewAxew

Karma: 673
Posts: 191/583
Since: 07-02-11
Here's the error, to be more exact.

The program 'gtk_glcontrol_test' received an X Window System error. This probably reflects a bug in the program. The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 240 error_code 8 request_code 135 minor_code 5) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)
Pages: 1