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
UDS: implement deprecated functions #4690
Conversation
b446861
to
9c8213c
Compare
They are really identical in the NWM module code
This partially fixes Slime Mori Mori 3's multiplayer. I can now create a room without erroring out, however when trying to join on a different copy of citra (different directory, user folder, console id) the listed game is constantly blinking in and out - GIF below:
I was told on the Citra Discord that this could be an underlying issue with the UDS implementation, so it might be worth looking at other affected games to see if they are fixed as well. Sadly, this is the only game I have on-hand that I can test. If anyone has any of the below titles it may be worthwhile to test multiplayer in them now and see if they are fixed:
|
The part that introduced the "flickering" was https://github.com/citra-emu/citra/blob/master/src/core/hle/service/nwm/nwm_uds.cpp#L133-L141 . This part was necessary since otherwise a client would show all received beacons as a different host. Most games handled this fine after we added that part but in some games it introduced a flickering. We never fully checked on hardware how the beacons are erased from the buffer, though. We tried to look at the disassembly but didn't came to a conclusion. So a small homebrew might give a better understanding of that part. |
Sonic Generations is working good: |
TODO:
This is reverse-engineered by comparing the two versions of functions (deprecated vs. current). So far it turned out that NWM module parses IPC different params and then forward them to the same base functions.
This change is