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 48 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 temporary and not final. We need to decide which plugin choices make sense to provide. Given ares64 exists we probably don't need maximum accuracy, but should strive some kind of balance between performance and accuracy. Currently the diff contains the angrylion-plus and GLideN64 RDP plugins and the previously shipped high-level and low-level RSP plugins. I'm not too familiar with the millions of plugins that exist, but maybe paraLLEl could work as well?
  • sync settings for plugins need to be implemented; those are currently all default because no choices exist
  • 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)
  • 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, I haven't tried but that should generally be easy to do as everything is makefile-based
  • 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. Some dlls may be missing from Assets, that will need to be fixed once plugins and compile commands are finalized.

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
@vadosnaprimer
Copy link
Contributor

I feel I should let @Wyst3r know about this.

also rebuilt some other stuff from newer source

it... doesn't really work yet
@Morilli
Copy link
Collaborator Author

Morilli commented Nov 17, 2024

The latest commit adds linux binaries which "work", as in everything loads, but I've experienced freezing after 1-100 frames. It's not a crash, just an unresponsiveness forcing me to close the program. I have no idea how to debug this except by adding dozens of console.writelines and trying to narrow down the place it's getting stuck at.

still same issue as before though
@zeromus zeromus removed their request for review November 18, 2024 07:54
@Spikestuff
Copy link

Spikestuff commented Nov 21, 2024

Just for the sake of re-documenting it here and not like somewhere in the Discord (and it is the first todo point).

better gln64 is a high recommended from Mupen64-rr-lua mainly for it having low hardware requirements and better to TAS with.

The only caveat against it from what I can tell is that it's HLE and not LLE and some glitches with certain titles (which some of the plugins already in Hawk has those issues). So in other words it would be a suitable replacement to Rice (so lowest of the low).

And whilst porting it, it's probably beneficial to disable the texture settings (technically you can hide everything, and make it just the plugin, but some people might benefit from disabling fog).

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.

3 participants