OpenMW on a Raspberry Pi (?)

Support for running, installing or compiling OpenMW

Before you submit a bug report for the first time, please read: Bug reporting guidelines
mechanizeddeath
Posts: 23
Joined: 16 Dec 2012, 11:26

OpenMW on a Raspberry Pi (?)

Post by mechanizeddeath »

Recently, I had the idea to try and see if it was possible to run OpenMW on a Raspberry Pi. At this point I think most people with a technical background have heard about it, but for anyone who doesn't know, see http://www.raspberrypi.org/

It certainly isn't a speed demon by modern standards, but the 700MHz CPU and 512MB (256MB on early models) of RAM are similar to the first PC I played Morrowind on, which was a 750MHz "Thunderbird" Athlon with 256MB RAM. And Morrowind also ran on the original Xbox, which was a 733MHz machine with just 64MB of RAM, although it certainly wasn't as pretty as the PC version.

However, the Raspberry Pi FAQ compares real world performance to a 300MHz Pentium II, but with graphical power on par with the original Xbox. So maybe it would be a bit too weak for OpenMW, especially in the current unoptimized state, but I wanted to try anyway.

Long story short: I managed to get OpenMW to compile without errors and was able to run omwlauncher, however when I try to actually play this is the error I get:

Code: Select all

ERROR: OGRE EXCEPTION(3:RenderingAPIException): Unexpected failure to determine a GLXFBConfig in GLXWindow::create at /build/ogre-1.8-qV18O7/ogre-1.8-1.8.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXWindow.cpp (line 304)
With so little programming experience, I'm not even sure what this means or how to approach a solution. Google was not very forthcoming with an obvious answer. Also, feel free to tell me that I'm wasting my time and it will never run on such meager hardware, because I didn't have much hope to begin with. Frankly, I'm surprised I made it this far!
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW on a Raspberry Pi (?)

Post by scrawl »

Raspberry pi uses GL ES 2, not desktop GL, therefore no surprise it fails (I believe when you try to use desktop GL it gives you a crappy software rasterizer).

Getting that bit to work should be mostly trivial. Ogre's GL ES 2 render system needs to be loaded and the shaders need to be ported to GLSL ES, which only has very minor differences as opposed to GLSL 1.2.

If you're willing to test out my changes, I could give it a go.
mechanizeddeath
Posts: 23
Joined: 16 Dec 2012, 11:26

Re: OpenMW on a Raspberry Pi (?)

Post by mechanizeddeath »

First of all, thank you for the very prompt response, Scrawl!

That makes a lot of sense now. Being so inexperienced at this, I guess I was confusing the two and thinking they were more or less the same thing. You're also right about the software, while doing a bit of reading trying to solve this puzzle myself, I found some references to a software rasterizer which would be abysmally slow.

I'd absolutely be happy to try out any changes you have time to make. Of course I wouldn't want to pull any resources from the main project, but on the other hand there is a very large community devoted to the Pi which could be helpful to OpenMW in the long run.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW on a Raspberry Pi (?)

Post by scrawl »

Here you go: https://github.com/scrawl/openmw

First, make sure you have ogre built with the GLES2 render system (OGRE_BUILD_RENDERSYSTEM_GLES2 should be checked in cmake-gui).
Then, paste the following into ~/.config/openmw/settings.cfg (or edit that line if it's already there):

Code: Select all

[Video]
render system = OpenGL ES 2.x Rendering Subsystem
mechanizeddeath
Posts: 23
Joined: 16 Dec 2012, 11:26

Re: OpenMW on a Raspberry Pi (?)

Post by mechanizeddeath »

Thanks! Now I'm running into some issues with compiling Ogre, before I was using a .deb that seemed to work aside from the aforementioned error, but obviously didn't have the GLES2 render system. I believe I may have that sorted soon, but if I can't figure it out I'll let you know.

I feel like I've learned more in the past few days than I did in my entire first semester of college. :ugeek:
mechanizeddeath
Posts: 23
Joined: 16 Dec 2012, 11:26

Re: OpenMW on a Raspberry Pi (?)

Post by mechanizeddeath »

Well it took me a few more days than I would have liked, due to the holiday weekend, but I did manage to get Ogre compiled with the GLES2 option.

Previously, I had used an Ogre .deb file which OpenMW apparently liked just fine, but was of course giving me the error from my first post when I tried to run it. With the newly compiled Ogre, trying to compile OpenMW no longer works. I'm not sure if I broke something or am overlooking something very simple due to my inexperience.
Spoiler: Show
Thanks again for all your help! I feel as if success is just around the corner.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW on a Raspberry Pi (?)

Post by scrawl »

You apparently compiled Ogre with double precision mode, which you normally shouldn't do (and OpenMW doesn't support that mode).
Make sure OGRE_CONFIG_DOUBLE is off in cmake.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: OpenMW on a Raspberry Pi (?)

Post by scrawl »

Looks like you might run into a few problems: http://www.ogre3d.org/forums/viewtopic.php?f=1&t=76266
mechanizeddeath
Posts: 23
Joined: 16 Dec 2012, 11:26

Re: OpenMW on a Raspberry Pi (?)

Post by mechanizeddeath »

I see that now. Not sure how I missed that thread in the first place what with all the searching I've been doing. If more experienced people than me are running into issues with Ogre, it's no wonder I'm having problems.

I would absolutely love to see this running though. I'm just starting to think I lack the technical skills to pull it off.
User avatar
psi29a
Posts: 5362
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenMW on a Raspberry Pi (?)

Post by psi29a »

Just ordered my Raspberry Pi B+, should be in soon.

I'll make it my mission to have OpenMW running on ARMv6. ;)

I'll likely be using Raspbian/Jessie.
Locked