Commit Graph

27315 Commits

Author SHA1 Message Date
de15e09a4f Log: Rename IOS_FILEIO to IOS_FS
Let's use the actual name of the system module.

Also, the FS code is not all about files.
2018-03-31 10:58:37 +02:00
5a7b966b6d IOS: Rewrite FS to use FileSystem
This is the large change in the branch.

This lets us use either the host filesystem or (in the future) a NAND
image exactly the same way, and make sure the IPC emulation code
behaves identically. Less duplicated code.

Note that "FileIO" and "FS" were merged, because it actually doesn't
make a lot of sense to split them: IOS handles requests for both
/dev/fs and files in the same resource manager, and as it turns out,
/dev/fs commands can *also* be sent to non /dev/fs file descriptors!
If we kept /dev/fs and files split, there would be no way to
emulate that correctly. I'm not aware of anything that does that (yet?)
but I think it's important to be correct.
2018-03-31 10:58:37 +02:00
78478a651d Boot: Move CreateVirtualFATFilesystem to Boot_WiiWAD
It has nothing to do in the filesystem code.

(It also smells like a workaround for some kind of timing issue.)
2018-03-31 10:58:37 +02:00
fcfe4e2a26 IOS: Change GetFS() to return a FileSystem
Now that we have a proper filesystem interface, it makes more sense
to return it instead of the emulated IOS device (which isn't
really usable for any purpose other than emulated IPC).
2018-03-31 10:45:44 +02:00
1eec459e30 IOS: Extract existing FS code into a host backend
Extract the existing FS code into a HostBackend implementing
the filesystem interface.

Compared to the original code, this uses less static state.
The open host files map is now a member variable
as it should have been. Filesystem handles are now also easier
to savestate. Some variable names and log messages were cleaned up.
Nothing else has been changed.
2018-03-31 10:45:44 +02:00
f1dbb8952c IOS: Introduce a new FileSystem interface
Add a new FileSystem class that can be used to perform operations
on the emulated Wii filesystem.

This will allow separating the IPC code (reading from and writing to
memory to handle IOS FS commands) and the actual filesystem code
in a much better way.

This also paves the way for implementing another filesystem backend
in the future -- NAND images for more complete emulation, including
filesystem metadata like permissions or file orders, which some games
and homebrew actually care about -- without needing to make any more
changes to the other parts of the codebase, in addition to making
filesystem behaviour tests easier to write.
2018-03-31 10:45:44 +02:00
1bdfedf3c6 Common: Add a Result class
This adds a lightweight, easy to use std::variant wrapper intended to
be used as a return type for functions that can return either a result
or an error code.
2018-03-31 10:45:44 +02:00
e93159e54a CMakeLists: Link in system framework libraries explicitly on macOS
Makes our libraries explicitly link in which libraries they need.
This makes our dependencies explicit and removes the reliance on the
LIBS variable to contain the libraries that they need.
2018-03-30 16:14:10 -04:00
7833f1a931 Merge pull request #6558 from lioncash/input
InputCommon/CMakeLists: Link in ForceFeedback library explicitly on macOS
2018-03-30 14:05:36 +02:00
a7ba69e16a Fix loading Wii banners for games that initially were cached without banners
Fixes https://bugs.dolphin-emu.org/issues/10969
2018-03-30 12:04:01 +02:00
c3398c9e2c Merge pull request #6559 from spycrab/qt_crashes
Qt/PatchesWidget: Fix segfault
2018-03-29 18:51:22 -04:00
fc99b21080 Merge pull request #6560 from JosJuice/invalid-games-in-game-list
DolphinQt2: Don't show invalid games in game list
2018-03-29 18:49:38 -04:00
65a1065cde Merge pull request #6561 from JosJuice/uid-version-last-changed
Put a "last changed in PR" comment next to UID cache version
2018-03-29 18:48:12 -04:00
8185b5f1fd Merge pull request #6562 from JosJuice/translate-qos
Translate the netplay chat info message about QoS
2018-03-29 18:47:29 -04:00
b065f86270 Translate the netplay chat info message about QoS 2018-03-29 22:44:23 +02:00
01ea10824d Put a "last changed in PR" comment next to UID cache version
This will create a merge conflict if two PRs try to increment the
cache version at the same time, which makes it noticeable that the
PR that gets merged last needs to increment the cache version again.
We already use this for savestates and the game list cache.
2018-03-29 22:38:37 +02:00
ff2fe73ec9 DolphinQt2: Don't show invalid games in game list
Regression from 1f1dae3.

This problem doesn't happen in DolphinWX as far as I know, but if
you've ran into the problem in DolphinQt2, it will carry over to
DolphinWX because of the shared game list cache.
2018-03-29 21:52:21 +02:00
55d9df379a Qt/PatchesWidget: Fix segfault 2018-03-29 21:33:36 +02:00
b8a4ab23dd InputCommon/CMakeLists: Link in ForceFeedback library explicitly on macOS
Makes an implicit dependency explicit. Also makes the macOS libraries link privately
as they aren't used in the exposed interface.
2018-03-29 11:53:50 -04:00
53b3da7301 Merge pull request #6555 from Ebola16/ASU
Android: Updates for Android Studio 3.1
2018-03-29 15:13:42 +02:00
e4f2ff0f32 Merge pull request #6557 from spycrab/qt_log_font
Qt/LogWidget: Add "Debugger Font" option
2018-03-29 15:12:33 +02:00
c697b7d435 Merge pull request #6556 from lioncash/video-libs
VideoCommon/Vulkan: Explicitly link in xxhash
2018-03-29 13:25:30 +02:00
8cb497cab2 Qt/LogWidget: Add "Debugger Font" option 2018-03-29 03:02:34 +02:00
b818cc682c VideoCommon/Vulkan: Explicitly link in xxhash
Lessens the dependency on the LIBS variable (and also makes the required
libraries explicit).
2018-03-28 17:03:16 -04:00
00db87e304 Android: Updates for Android Studio 3.1 2018-03-28 16:38:22 -04:00
03a6a9b240 Merge pull request #6546 from spycrab/updater_ui
Implement Updater UI
2018-03-28 20:04:32 +02:00
21a2c0284d Merge pull request #6544 from spycrab/qt_fix_general
GeneralPane: Fix settings resetting and improve code
2018-03-28 20:01:57 +02:00
a81c6b0380 Merge pull request #6554 from lioncash/videocommon-cmake
VideoCommon/CMakeLists: Migrate off add_dolphin_library
2018-03-28 19:42:58 +02:00
429dc54159 Updater: Implement UI 2018-03-28 17:59:22 +02:00
f700fcae2e HttpRequest: Add callback option 2018-03-28 17:33:34 +02:00
fd7ac0d4a3 VideoCommon/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-03-28 09:57:50 -04:00
c28850045d Merge pull request #6552 from lioncash/uicommon-cmake
UICommon/CMakeLists: Migrate off of add_dolphin_library
2018-03-28 12:33:24 +02:00
a2a18380a7 UICommon/CMakeLists: Migrate off of add_dolphin_library
Continues the migration work started in
3a4c3bbe01
2018-03-28 06:29:09 -04:00
fc59ec6f13 Merge pull request #6547 from lioncash/dead
PixelShaderGen: Remove dead code in WriteColor()
2018-03-28 10:43:15 +02:00
62e946883c Merge pull request #6553 from JMC47/mtmsrfix2
Fix JIT64 mtsmsr issue after PIE support again.
2018-03-28 10:37:59 +02:00
3cd9465f91 Fix JIT64 mtsmsr issue after PIE support again. 2018-03-28 04:16:41 -04:00
10f198f3cf Merge pull request #6551 from lioncash/qt-misc
DolphinQt: Remove a few unused variables
2018-03-28 07:50:44 +02:00
748ebf6891 Merge pull request #6550 from lioncash/qt
HacksWidget: Remove duplicate AddDescription() calls in AddDescriptions()
2018-03-28 07:33:04 +02:00
d0152ed6a1 Merge pull request #6549 from lioncash/disc
DiscExtractor: Pass partition by reference rather than by value in ExtractDirectory()
2018-03-28 07:32:09 +02:00
df4ca7f05e SearchBar: Remove unused class variables 2018-03-27 22:47:02 -04:00
306d132232 MainWindow: Remove unused std::string variable in NetPlayHost() 2018-03-27 22:47:02 -04:00
833c030496 WiiPane: Remove unused variable in OnUSBWhitelistRemoveButton() 2018-03-27 22:47:01 -04:00
eb8a853d8e Resources: Remove unused string in Init() 2018-03-27 22:47:01 -04:00
568490fdfb MD5Dialog: Call .empty() instead of testing against an empty string 2018-03-27 22:47:01 -04:00
d3283a881f MenuBar: Remove unnecessary c_str() call
Also uses the character overload for find_last_of
2018-03-27 22:47:01 -04:00
b637163704 CodeWidget: Remove unnecessary c_str() calls 2018-03-27 22:46:51 -04:00
4a1123f519 HacksWidget: Remove duplicate AddDescription() call in AddDescriptions() 2018-03-27 22:36:37 -04:00
aa42534fed FilesystemWidget: Pass path QString by const reference instead of by value in ExtractDirectory()
Makes it consistent with the surrounding API.

Also corrects a typo in ExtractFile's parameter list.
2018-03-27 22:00:40 -04:00
fc531993a9 DiscExtractor: Pass partition by reference rather than by value in ExtractDirectory() 2018-03-27 21:49:42 -04:00
ac97f0463f Merge pull request #6548 from lioncash/const
LinearDiskCache: Don't cast away const in Read()
2018-03-28 03:14:38 +02:00