Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Update mupen64plus to latest upstream version #4117

Draft
wants to merge 95 commits into
base: master
Choose a base branch
from

Conversation

Morilli
Copy link
Collaborator

@Morilli Morilli commented Nov 15, 2024

Work in progress update of the mupen64plus core to the latest version. This would ideally improve compatibility and increase accuracy and be a real-time playable alternative to the existing ares64 core.

There's a couple of known TODOs that need to be resolved:

  • RSP and RDP plugin choices are not final. Currently the diff contains the angrylion-plus, GLideN64 and paraLLEl RDP plugins and mupen64plus's HLE and cxd4 RSP plugins and the paraLLEl rsp plugin. Apparently mupen-rr uses better-gln64 which may be worth considering for its high speed.
  • sync settings for plugins need to be implemented; those are currently all default because no choices exist done
  • integrate mupen core and plugin sources and build in the bizhawk repo; I currently build from a fork that is not checked in to bizhawk (https://github.com/Morilli/mupen64plus-core/tree/bizhawk) <-- done, added basic build script. There's still some issues while waiting for upstream commits, but assuming we fork all projects anyway that shouldn't be a blocker
  • IDebuggable functionality is missing, mainly because registers aren't implemented. Registers not being implemented also affects ITraceable impl (why is that required but only exposed in IDebuggable... whatever)
  • the (mupen) debugger has some overhead and should be toggleable
  • compile for linux as well
  • some games have graphical issues with GLideN64, this appears to be a plugin issue that can't be resolved easily
  • lots of testing, I have no test roms or known complex test games so I can't say whether anything is broken beyond simple game boots working

The diff should be relatively clean, the commit history isn't. Best to look at the full diff instead of individual commits.

this is such a great idea
reading systembus currently crashing the emulator, might need to look into that
TODO:
- allow enabling/disabling debugger dynamically, it really doesn't need to be on permanently, requires a mupen-side change tho
- provide registers
- figure out why size of mupen went +800kb, is it just -lopcodes, -lintl, -liberty?
- debugger (trace and debugger itself) doesn't work in dynarec, notify or unregister services accordingly
- figure out why cached interpreter has <60 fps
see TASEmulators#3220, probably fixes some controller and SDL exceptions i've been observing previously
@Morilli
Copy link
Collaborator Author

Morilli commented Jan 31, 2025

Hm, I did a bit of testing with Donkey Kong 64 and it appears to be a GLideN64 plugin issue rather than a fault of anything in BizHawk, so it's unlikely I'll be able to resolve this. I also get broken video output in the old mupen core with gliden64 (in bizhawk), so it's not really a new regression.

@Morilli
Copy link
Collaborator Author

Morilli commented Feb 3, 2025

This is more or less ready from my side. I want to pull a couple more submodules once they're ready and of course this needs to be rebased, but aside from that the diff should be about final.

Mainly needs more testing now, especially on linux and the parallel video plugin (vulkan).

@YoshiRulz YoshiRulz linked an issue Feb 12, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

N64 - Parallel RDP [🐧] Mupen64Plus doesn't work on Linux (Ares64 always used regardless of preference)
5 participants