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.
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.