What's new

M64Py - Python frontend for Mupen64Plus

gen2brain

New member
Hello,

I started working on this project long time ago, and than took a long break.
But since last mupen64plus version is released I decided to finish what I started, and here is the result so far.

http://m64py.sourceforge.net/

All basic stuff works, input configuration (keyboard/joystick), cheats support, and I also added a ROMs list with preview images.
There are packages available for Ubuntu, Fedora, Windows, MacOSX and Gentoo ebuild.

M64Py has support for all major archive formats: gz, bz2, zip, rar and 7z. You need pylzma and UnRAR2 python libs for 7z/rar,
or on Unix-like systems it is enough to have 7z and rar/unrar in your PATH. If you download Windows combo you don't have to worry about that, all libs are included.
If compressed archive have more than one file inside it, the first one will be picked.

Important to note, on first start frontend will enable video extension, that is, it will embed OpenGL in Qt window. Unfortunately, when you resize window,
content will not scale and for now I don't know what is needed for that to work. I tried with PyOpenGL to override resizeGL method of QGLWidget,
but only with Glide64 plugin I had some success, and only when decreasing window size so that code is commented.

Reason this is default option is because the goal of this project is not to look like a launcher, but to be fully integrated frontend and look like many other frontends/emulators.
You can however disable video extension and then use it normally, it will open SDL window, and you can set resolution in settings, go fullscreen etc.

M64Py comes with title and snapshot preview images, I only did it for (U) [!] ROMSET, and the ones that don't have picture I could not get to work with both rice and glide64
video plugin. In a way you have a picture of which game works and which not. There are hardcoded bindings for save_title/save_snapshot (F3 and F4),
that will save screenshot in UserData dir (on Linux ~/.local/share/mupen64plus/title or snapshot).

Also, MacOSX version is totally untested, I only packed dmg in virtual machine, but I couldn't try it.
And I tested joystick only with one model I have (DragonRise) and only in Linux.

Tell me what you think, all code suggestions or even better patches are welcomed. Issues can be reported on sourceforge project page.

Milan
 

Surkow

Member
Great job, seems like a really complete frontend. It's nice to see input configuration, although a developer was working on a frontend independent solution for that. And many people will be happy with support for archived formats.
 
Last edited:

soued031

New member
Nice GUI, I like it. Your Frontend works perfect on Windows (without counting the fact that the video doesn't adapt to the window, but you certainly already know it). I tried your frontend on Ubuntu (12.10), but I ran into a problem. After installing the package mupen64plus and your frontend, m64py tells me "Mupen64Plus library not found".
 
OP
G

gen2brain

New member
Hi, you can always manually point to mupen64plus library. I don't use Ubuntu and I tried only in 12.04.
There, library is installed in some strange place (/usr/lib/i386-linux-gnu), but m64py will look there too.

Can you try this, install apt-file, sudo apt-file update, and then:
apt-file list mupen64plus | grep libmupen64plus.so
 

yukon

New member
I tried the alternatives. M64Py is the best for me. I've seen several complaints about the deletion of GUI code from mupen64plus, from people who do not understand portibility or code separation and think they see a regression; M64Py is an answer, a complete functioning frontend.

7zip support was crucial, thank you. Please consider supporting multiple revisions per 7zip archive, since that's fashionable.

A log/messages screen would be useful. Errors can go unseen. On Linux, running from a terminal does the same thing.

On linux, I find the gamepad controls revert when launching the game. Changing AutoKeyboard to the gamepad name in the configuration file fixed the problem. I know that's not a M64Py issue, but it was frustrating.

Thank you again for your work.
 

Zandare

New member
M64PY doesn't even start. I don't know where the problem is, because python is preinstalled (running Ubuntu 12.10).

Thanks for any advices. This is my terminal's output:

Code:
alex(at)alex-VGN-Z11MN-B:~$ m64py %f
Can't import m64py modules
Error:No module named m64py.core.defs
 
OP
G

gen2brain

New member
Hello, just a little update. I have added support for multiple files in archives. If you want to test it you will need to grab the code from git repo.
Also, I tried Glide64mk2. Since plugin settings dialogs are dynamically built you can already use Glide64mk2 with M64Py.

Some screenshots:
archive.png


glide64mk2.png
 

qwop22

New member
Hey guys I just installed this and was wondering how I get this to work with my N64 Controller Adapter. Should it automatically detect it?
 
OP
G

gen2brain

New member
Hi,

I just committed some changes to git, window resizing now works with rice video plugin. Aspect ratio will be preserved, but not in fullscreen mode.
Please test and let me know what you think.

Thanks,
Milan
 

V1del

New member
Win7 64bit Home

Code:
Can't import m64py modules
Error:Dynamic library "SDL" was not found

Which seems to be strange, as there's one bundled.

On a related note, this is what i'm getting when trying to launch on Arch Linux 64bit
Code:
Traceback (most recent call last):
 File "/usr/bin/m64py", line 76, in <module>
   main()
 File "/usr/bin/m64py", line 61, in main
   window = MainWindow((opts, args))
 File "/usr/lib/python2.7/site-packages/m64py/frontend/mainwindow.py", line 65, in __init__
   self.worker = Worker(self)
 File "/usr/lib/python2.7/site-packages/m64py/frontend/worker.py", line 43, in __init__
   self.settings.qset.value("enable_vidext", 1)))
ValueError: invalid literal for int() with base 10: 'true'
 
OP
G

gen2brain

New member
For arch, just remove config file ~/.config/m64py/config, for windows I will have to install 64bit version.
 

V1del

New member
Ah yeah, could have guessed that myself. One thing i noticed is that glide64mk2 doesn't quit properly and when fullscreen I always have to switch to another VT to kill m64py. Though I don't know how far this is within your powers to fix, or if this is something mupen64plus devs have to figure out.
 

sinkala

retro junkie
Hi Milan,

are you planning to release a 0.1.4 binary for OS X? It seems that there is only a .exe binary for Windows available on the Sourceforge site :-(

Thanks!
 
OP
G

gen2brain

New member
Hi,

I have released new version. The biggest change is support for SDL2. Windows bundle is now packed with mupen64plus for SDL2, so please test it, I know only how it works in virtual machine.
I will try these days to do the same for OSX.

http://m64py.sourceforge.net/

Milan
 

Top