Hi all. I’m trying to use an emulator frontend for Mupen64Plus called M64Py. I downloaded this from the openSUSE Build Service. It’s pretty neat and I like it a lot (I use it on other distros), but I cannot seem to get it to run on my openSUSE 13.1 PC. It asked for a number of Python Qt4 libraries which I duly installed, but I’m now stumped on the following output:
kinzie@linux:~> m64py
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_|
M64Py - A frontend for Mupen64Plus version 0.1.6
Traceback (most recent call last):
File "/usr/bin/m64py", line 76, in <module>
main()
File "/usr/bin/m64py", line 60, in main
from m64py.frontend.mainwindow import MainWindow
File "/usr/lib/python2.7/site-packages/m64py/frontend/mainwindow.py", line 27, in <module>
from m64py.frontend.worker import Worker
File "/usr/lib/python2.7/site-packages/m64py/frontend/worker.py", line 30, in <module>
from m64py.frontend.settings import Settings
File "/usr/lib/python2.7/site-packages/m64py/frontend/settings.py", line 28, in <module>
from m64py.frontend.input import Input
File "/usr/lib/python2.7/site-packages/m64py/frontend/input.py", line 25, in <module>
from m64py.frontend.joystick import Joystick
File "/usr/lib/python2.7/site-packages/m64py/frontend/joystick.py", line 28, in <module>
from m64py.SDL import *
File "/usr/lib/python2.7/site-packages/m64py/SDL/__init__.py", line 30, in <module>
from .dll import private_function, function
File "/usr/lib/python2.7/site-packages/m64py/SDL/dll.py", line 226, in <module>
_dll = SDL_DLL('SDL', 'SDL_Linked_Version')
File "/usr/lib/python2.7/site-packages/m64py/SDL/dll.py", line 60, in __init__
self._dll = getattr(cdll, library)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 435, in __getattr__
dll = self._dlltype(name)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/libSDL-1.2.so.0.11.4: wrong ELF class: ELFCLASS32
Can anyone offer any help with this? Many thanks in advance.
Looks like the program is looking for 64bit libs in /usr/lib. Which is wrong since openSUSE uses /usr/lib64.
But, also: you say you run openSUSE 13.1, which does not come with this version of libSDL. It has libSDL-1_2-0-1.2.15-10.1.2
This makes me think you’ve already been experimenting, please show output of
And then I had some more looking around, and there is no package built for 13.1, so you must have used the package for an other openSUSE version. Please elaborate.
Hmmm not sure what you’re getting at. I did indeed do a little bit of experimenting, but only insofar as installing 32 bit version of the libsdl packages that are in the repos. I haven’t added anything untoward from any other sources, well, excepting M64Py itself.
I seem to have a version of libsdl-1.2.so.0.11.4 installed from the repos. :? This is a fresh install of 13.1.
Well, libsdl-1.2.so.0.11.4 is exactly the version that’s included in 13.1.
But installing only the 32bit version on a 64bit system will not work in that case, as m64py is a noarch python package and uses the 64bit python that’s installed (so it needs the 64bit version of the libraries).
So please install the 64bit version of libSDL. (as a side note: if you need the 32bit version of a library for some 32bit package, you should install the libxxx-32bit package, not the i586 version of libxxx)
That’s absolutely magic. Works perfectly now. Thanks so much!
I’d installed quite a few of those packages because I do very much enjoy the emulation scene on Linux, and I’d grabbed them because I thought Kega Fusion and Snes9x-Gtk needed them. As it happens, removing them didn’t affect those programs and now my beloved M64Py works. I had to manually tell it where the plugins directory was, but it’s working great now.
Again, thanks so much for your help, and Merry Christmas.
@Kinzie:
What mupen64plus did you install? The only package available at least for 13.1 is Packman’s mupen64plus-ui-console. Because I searched here and there are no repos for 13.1 (but strangely there are repos for Debian!?)
But at least Packman’s seems to work out of the box (mupen64plus itself, without m64py), installing this one just keeps complaining and complaining about missing library versions that are not in any repo for openSUSE, for example libpng15, libminizip. (Yes, I was testing on a 32bit openSUSE 13.1).
But m64py is the same as yours.
That’s not strange. The site reflects the projects in the build service. And the build service can be used to build packages for other distros, even deb based, too.
Well I’m running the 64 bit version, but yes I installed mupen64plus-ui-console from Packman, and then installed M64Py as the front end for it. I did have to add an extra plugin from Packman too, but it’s all working jolly now.
And does someone know by chance why the mentioned problem with mupen64plus from here?
And is there difference between Packman’s and Emulators’ mupen64plus? There’s still no 13.1 for Emulators…