What's new

Mupen64 for x86-64 plugin developers

Iconoclast

New member
I've lost record exactly, but around 3 years ago I started (obviously stopped and napped for 3 years) a 64-bit fork of Mupen64 0.5.
The result is finally available at: https://github.com/cxd4/mupen86

This isn't meant to be an official continuity to Hacktarux's work on either Mupen64 or some other related project, but it is meant to be an end to the lack of ability to develop and confirm valid 64-bit emulation plugins for the N64 RCP. We've lacked a 64-bit emulator for so long; now this fork can be used by developers to verify the portability of their work to 64-bit Unix-based systems. There was Mupen64Plus, but ultimately that project was not successful at fixing the plugin system for 64-bit (even in 1.5 which restyled but didn't fix any of the plugin ABI miscommunications).

The fork otherwise is experimental, but anyone else is welcome to play with it or post patches, PRs or the like. Obviously the x86-32 dynamic re-compiler by Hacktarux was a bit quicker in my interest to just #ifdef out to hurry up and have a stable 64-bit interpreter to test the important stuff out. (Hence the misnomer: "Mupen86", which just means that the interpreter-only state tries to ignore all the x86-specific recompiler stuff intertwined in the source. I figured better to name this "Mupen86" than "Mupen64" and risk confusion with the upstream project.) I believe it should compile for Windows but have not been able to test without MinGW-w64; I know that for MSVC I began writing a WDK batch script to use to build but never ran on Windows for long enough to finish fixing. Otherwise, just compile Project64 on Windows with the x64 configuration to test 64-bit plugins on Win64; the plugin specs allocation has been confirmed as consistent across both.


Now, where to get plugins if you don't feel like writing your own test ones (for all 4 plugin types, at least)?
Here are some 64-bit plugins I have used successfully with this emulator. You will have to build them yourself:

  • purplemarshmallow's z64gl fork with our improvements and fixes
  • Azimer's Audio HLE, but it has no working sound output device for Linux yet. We did get it to compile, though.
  • Rice's Video Plugin 6.1.0 stable, ported to OpenGL but good luck getting it to initialize with Mesa3D
  • a little keyboard input plugin I wrote, featuring rapid automatic control stick rotation and turbo button fire
  • a fast interpreter-only RSP plugin I wrote
  • angrylion's pixel-accurate RDP and VI project, if you port it to OpenGL or whatever
  • dummy audio plugin...included with the old 0.5 mupen64 source archive
  • JttL's SDL audio plugin 1.3...included in Hacktarux's archive, can't remember how I compiled it
  • blight's SDL input plugin...again, included in archive; go compile.
  • experimental software graphics plugin by Hacktarux...again, included in archive
  • Mupen64 RSP HLE plugin with Azimer's audio code...probably works just can't remember running it
  • Glide64 Final? I guess but forgot where to go to try grabbing the zilmar-spec source from to compile it.
 
OP
Iconoclast

Iconoclast

New member
Project64 will be ported to Linux, but I think that having a plugin system is less merited when only one emulator supports 64-bit plugins.

It's a good idea to be able to validate that a plugin's functionality on 64-bit Project64 isn't just dodgy coincidence.
 

Top