Skip to content

Fix File::Copy on non-Windows platforms#4

Open
kylewlacy wants to merge 407 commits into
FasterMelee:masterfrom
kylewlacy:unix-copy-fix
Open

Fix File::Copy on non-Windows platforms#4
kylewlacy wants to merge 407 commits into
FasterMelee:masterfrom
kylewlacy:unix-copy-fix

Conversation

@kylewlacy

Copy link
Copy Markdown

I'm on Linux (Linux Mint 18.2 MATE, based on Ubuntu 16.04), and I've been trying to get set up with the new PM build from SmashLadder based on Ishiiruka: PMNetplayV4 (this isn't an officially blessed setup as they only offer downloads and setup instructions for Windows, so I'm flying solo).

After compiling Ishiiruka using FasterMelee-installer, and copying over all of the configuration settings from the Windows PMNetplayV4 download, I was able to load into the game successfully, but would desync whenever I would try to play in Netplay, and the game would even start up differently when I started the game locally versus in a lone Netplay session.

I turned on logging and came across some Dolphin logs like the following:

Common/FileUtil.cpp:347 E[COMMON]: Copy: failed reading from source, $DOLPHIN_CONFIG_DIR/Sys/Wii/title/00010000/52534245/data/$SOME_FILE --> /tmp/DolphinWii.aK5pnK/title/00010000/52534245/data/$SOME_FILE: 

(I believe these file copies are used for temporary Netplay saves? Not 100% sure about that, but they only seem to happen during Netplay sessions)

After some digging, I came across the File::Copy function, which looked... sketchy. strace confirmed that there were no errors while reading the file, but instead File::Copy was returning an "error" because of an unhandled end-of-file.

Fortunately, dolphin-emu/dolphin#5955 happened, which had a much less sketchy implementation! I cherry-picked the commit, tested out Netplay*, and no more desyncs!

(*Since most players on SmashLadder are using a specific Ishiiruka revision, I applied a patch to manually "spoof" my Dolphin commit revision hash, essentially with the same script that FasterMelee-installer uses)

Tinob added 30 commits February 17, 2016 00:01
…kends.

Add a scaling shader to replace the scaling filter in dx11 and ogl. dx12 will have to wait for pp shader ;)
Added new options, more aspect ratio modes and Disable filtering to allow correct output  with scaling shaders.
merge small fix to anisotropic filter
…configuration values in different buffers. parameters change in almost every call, while configuration values change only when user change them.
Tinob and others added 27 commits June 26, 2017 23:23
The old way of doing it is error prone and unnecessarily complex.

(cherry picked from commit 6f923ffae44aa0859530781eaa53bb621dbf8d40)
@FunctionDJ

Copy link
Copy Markdown

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.

6 participants