JosJuice
87916fe099
Filesystem: Replace GetFileList()
...
Instead of expecting callers to know how the size of directory file infos
relates to which files are in which directories, filesystems now offer a
GetRoot() method, and file infos offer a way to get their children. As
a bonus, m_FileInfoVector no longer has to be created and kept around
in RAM. Only the file info objects that actually are used are created.
2017-06-14 15:23:48 +02:00
Léo Lam
a9630727fe
Qt: Support custom user profile paths
...
Pretty much the most important option to support, even for a UI
frontend that's still a WIP. It's essential for testing.
2017-06-14 14:31:30 +02:00
Leo Lam
40a9e585a7
Merge pull request #5604 from sepalani/wx-rm-path
...
PathConfigPane: Prevent an invalid index assert
2017-06-14 13:30:15 +02:00
Sepalani
2a349f8e49
PathConfigPane: Prevent an invalid index assert
2017-06-14 12:07:25 +01:00
Leo Lam
c71cb9ac49
Merge pull request #5608 from Starsam80/qt-should-be-like-wx
...
Qt/MappingWindow: Update layout to match WX
2017-06-14 11:14:34 +02:00
Leo Lam
54e882941c
Merge pull request #5600 from leoetlino/xml-library
...
Externals: Add zeux/pugixml@38edf25
2017-06-14 11:13:32 +02:00
Leo Lam
36efcc9f39
Merge pull request #5599 from leoetlino/http-request
...
Common: Add HttpRequest to simplify HTTP requests
2017-06-14 11:12:56 +02:00
Starsam80
e023cc124b
Qt/MappingWindow: Update layout to match WX
2017-06-13 22:42:53 -06:00
JosJuice
ee2b88ebb6
Filesystem: Store pointer to beginning of FST in file infos
...
Needed for the next commit.
2017-06-13 22:44:15 +02:00
JosJuice
1262f08ac1
Filesystem: Better validity checking
...
Now that the FST in read in the constructor, m_Valid
can be set to false when there are errors in the FST.
2017-06-13 22:44:11 +02:00
JosJuice
afe2bc60f6
Filesystem: Initialize everything in constructor
...
Not initializing until the filesystem is used is good when
a filesystem is constructed and then never used, but nobody does that.
This simplifies the code a little and lets all methods be const.
2017-06-13 22:44:07 +02:00
JosJuice
d6ee7ec32c
Filesystem: Read the entire FST in one go
...
Instead of using lots of small scattered reads to read the FST,
only one big read is used, which is more efficient.
This also means that the FST only allocates memory once and stores all
strings close to each other - good for the CPU cache. The file info
objects use pointers to this FST memory of containing data themselves.
Keeping around the big m_FileInfoVector containing objects with only
pointers is a bit unnecessary, but that will be fixed soon.
2017-06-13 22:43:41 +02:00
JosJuice
f49b64caff
Filesystem: Rewrite finding file info by path for performance
...
Instead of calling GetPathFromFSTOffset for every file info, FindFileInfo
now only looks at names in directories that are included in the path.
For the common case of searching for "opening.bnr", this means that
only root-level files and directories have to be searched through.
2017-06-13 22:41:02 +02:00
JosJuice
7c45afecb2
Filesystem: Use file info in arguments instead of path
...
Some callers already have the file info, making the relatively slow
FindFileInfo calls unnecessary. Callers that didn't have the file info
will now need to call FindFileInfo on their own.
2017-06-13 22:40:57 +02:00
JosJuice
3d5ef948d0
Filesystem: Make FindFileInfo public
2017-06-13 22:40:53 +02:00
JosJuice
07d3a39aeb
Filesystem: Replace file info's full path with name
...
Some callers (i.e. ISOProperties) don't want the full path, so giving them
it is unnecessary. Those that do want it can use GetPathFromFSTOffset.
Not storing full paths everywhere also saves a small bit of RAM and is
necessary for a later commit. The code isn't especially pretty right now
(callers need to use FST offsets...) but it'll become better later.
2017-06-13 22:38:31 +02:00
JosJuice
5021b4a567
Filesystem: Replace FileInfo struct with interface
...
GC/Wii filesystem internals shouldn't be exposed to other classes.
This change isn't especially useful by itself, but it opens up the
way for some neat stuff in the following commits.
2017-06-13 22:37:43 +02:00
Leo Lam
38c60156ce
Merge pull request #5479 from spycrab/qt_mapping_io_win
...
Qt: Implement advanced mapping I/O windows
2017-06-13 21:09:45 +02:00
Léo Lam
0d58a0bfe2
HttpRequest: Add support for custom timeouts
2017-06-13 19:17:11 +02:00
spycrab
50c13c1902
Qt: Implement advanced mapping I/O windows
2017-06-13 17:16:41 +02:00
JosJuice
95bc57cff3
DiscScrubber: Use FileInfo::IsDirectory instead of bit magic
2017-06-13 17:01:39 +02:00
Léo Lam
b08201654e
Externals: Add zeux/pugixml@38edf25
...
Along with VS boilerplate to get it to build on Windows.
2017-06-13 14:05:10 +02:00
Léo Lam
ba3f16edbf
HttpRequest: Add support for sending custom headers
2017-06-13 12:52:31 +02:00
Léo Lam
8f87433719
HttpRequest: Log response body on failure
2017-06-13 12:52:31 +02:00
Léo Lam
18678afa6d
Common: Add HttpRequest to simplify HTTP requests
...
Too much boilerplate that is duplicated if we use curl directly.
Let's add a simple wrapper class that hides the implementation details
and just allows to simply make HTTP requests and get responses.
2017-06-13 12:52:31 +02:00
Léo Lam
55916eddda
NoGUI: Fix a missing include for Xlib
2017-06-13 11:46:13 +02:00
Stenzek
8a56ef42dc
Vulkan: Fix image layout assertion failing for palette textures
2017-06-13 14:47:09 +10:00
Leo Lam
73be025847
Merge pull request #5603 from sepalani/png-warn
...
Silent GameList PNG warnings
2017-06-12 23:58:23 +02:00
Leo Lam
3e1a650a3f
Merge pull request #5591 from leoetlino/wii-fix
...
Core: Misc WiiRoot fixes
2017-06-12 23:41:45 +02:00
Sepalani
b7dde796fa
Silent GameList PNG warnings
2017-06-12 22:19:58 +01:00
Léo Lam
4a3537285b
IOSC: Implement ImportCertificate
...
Same as VerifyPublicKeySign, we currently only support RSA keys
(which is all we need right now).
2017-06-12 20:33:54 +02:00
Léo Lam
1a8144c702
IOSC: Fix ImportPublicKey to work with other public key types
2017-06-12 20:33:54 +02:00
Léo Lam
2eccd45f01
IOSC: Implement GetSizeForType
...
Avoids duplicating sizes everywhere.
2017-06-12 20:33:53 +02:00
Léo Lam
965773bf67
IOSC: Implement VerifyPublicKeySign
...
Partial implementation which doesn't support ECC stuff, but good enough
for our purposes.
2017-06-12 18:24:02 +02:00
Léo Lam
a0392db833
IOSC: Add entry for the root key handle
...
It contains a RSA4096 public key used to validate all other
Nintendo certificates.
2017-06-12 18:24:01 +02:00
Léo Lam
8859bc91e2
IOSC: Add storage for key misc data
...
Will be used to store the exponent for RSA keys.
2017-06-12 18:24:01 +02:00
Léo Lam
d4f501bca6
IOSC: Replace direct access to entries with getter
...
Makes it slightly less likely to forget a check and end up doing an
out-of-bounds access. Also makes it obvious that we *are* indeed
checking whether the handle is valid, instead of hiding it in
HasOwnership (which won't handle the root key handle case properly).
2017-06-12 18:24:01 +02:00
Léo Lam
acf150df3f
IOSC: Add structures for certificates and signatures
2017-06-12 18:24:01 +02:00
shuffle2
2b86cf02a8
Merge pull request #5589 from stenzek/vulkan-validation-fixes
...
Vulkan: Don't transition image layouts inside render passes
2017-06-11 16:59:02 -07:00
JosJuice
b3ac6de7f8
Skip GameCube IPL by default
...
See https://github.com/dolphin-emu/dolphin/pull/5492#issuecomment-306988942
I'm also renaming the setting because HLE_BS2 has already
been set to False automatically in existing INIs.
2017-06-11 17:51:01 +02:00
Léo Lam
17ef4c8046
StringUtil: Make SplitString return by value
...
Simpler usage.
2017-06-11 16:48:20 +02:00
MerryMage
a0b41c83e7
VideoConfig: Remove bRunning
...
Value was set but not used.
2017-06-11 15:06:12 +01:00
Leo Lam
eefae402b3
Merge pull request #5593 from leoetlino/legacy-code
...
VideoConfig: Remove useless code
2017-06-10 21:34:56 +02:00
Léo Lam
774587cbd1
VideoConfig: Remove useless header includes
2017-06-10 20:25:27 +02:00
Léo Lam
0e85c47237
VideoConfig: Remove manual panic alert setting load
...
This code hadn't been touched since 2010. Nowadays, the panic alert
setting is loaded by ConfigManager and applied in UICommon.
VideoConfig has no business messing with it.
2017-06-10 20:24:18 +02:00
Leo Lam
f2a6e39722
Merge pull request #5590 from MerryMage/vcd-refresh
...
VideoConfigDiag: Refresh VideoConfig before opening configuration dialog
2017-06-10 20:21:18 +02:00
MerryMage
33879bf611
Config: Remove creation of unnecessary CommandLine layer
2017-06-10 19:07:17 +01:00
Léo Lam
91bcd756ff
Core: Remove useless ShutdownWiiRoot calls
...
I don't see why we need to call ShutdownWiiRoot on InitializeWiiRoot.
Also, atexit? Really? Not only is this unnecessary, it will also cause
ShutdownWiiRoot to be called twice in rapid succession for no reason.
2017-06-10 20:00:43 +02:00
Léo Lam
3eecf67a2a
Core: Remove useless InitializeWiiRoot call
2017-06-10 19:52:54 +02:00
Léo Lam
8b67a3ada3
Core: Only restore config after HW shutdown
...
The config must only be restored after the HW has shut down, not while
it is still running, because the HW can still query the config, which
can lead to inconsistent states.
This fixes WiiRoot not being able to copy back saves on shutdown.
2017-06-10 19:50:43 +02:00
MerryMage
12e9ce47f6
VideoConfigDiag: Refresh VideoConfig before opening configuration dialog
...
If the video configuration dialog is opened before a game was run, VideoConfig::Refresh was never called.
2017-06-10 16:40:10 +01:00
Stenzek
ca55ba6c1d
Vulkan: Transition texture cache entries before usage
2017-06-10 23:52:39 +10:00
Stenzek
8bb6abacf8
Vulkan: Transition EFB/XFB buffers before beginning swap render pass
...
Image layouts shouldn't be changed within a render pass.
2017-06-10 23:52:32 +10:00
JosJuice
2578a3553b
VolumeDirectory: That's not what "4 byte" means
2017-06-09 20:00:36 +02:00
JosJuice
240cb0ca11
VolumeDirectory: Use correct endianness when writing apploader -1
2017-06-09 20:00:17 +02:00
Anthony
20a3cbb8fc
Merge pull request #5587 from JosJuice/volumewii-game-partition-later
...
VolumeWii: Don't set m_game_partition until we know partition is valid
2017-06-09 10:49:50 -07:00
Anthony
c900829eee
Merge pull request #5586 from JosJuice/expand-game-partition
...
FilesystemPanel: Expand game partition rather than second partition
2017-06-09 10:49:12 -07:00
JosJuice
d2b69f963a
VolumeWii: Don't set m_game_partition until we know partition is valid
...
Without this, we can end up in an inconsistent state where
m_game_partition is set to a partition that isn't in the
partition maps.
2017-06-09 18:39:30 +02:00
Leo Lam
1f30bd1f26
Merge pull request #5583 from shuffle2/remove-psapi
...
remove MemUsage, and therefor psapi dependency
2017-06-09 18:10:04 +02:00
Leo Lam
d9e8a2a7e7
Merge pull request #5584 from JosJuice/boot-tmd-valid
...
Boot: Check TMD validity before reading from TMD
2017-06-09 18:07:26 +02:00
JosJuice
025884b688
FilesystemPanel: Expand game partition rather than second partition
...
The game partition is normally the second partition, but not
if the disc has been scrubbed to only contain one partition.
2017-06-09 18:04:58 +02:00
Leo Lam
25850dd366
Merge pull request #5563 from leoetlino/internal-functions
...
IOS/ES: Make NandUtils member functions
2017-06-09 17:52:09 +02:00
JosJuice
fdd197475b
Boot: Check TMD validity before reading from TMD
...
Otherwise Dolphin crashes when trying to boot a Wii game
with an invalid TMD.
2017-06-09 17:44:43 +02:00
Shawn Hoffman
f206a4ea9c
remove MemUsage, and therefor psapi dependency
2017-06-08 22:25:46 -07:00
Leo Lam
9885a2bb28
Merge pull request #5575 from leoetlino/setup-stream-key
...
IOS/ES: Implement ES_SetUpStreamKey
2017-06-08 20:11:14 +02:00
Léo Lam
7b4404c7d5
IOS/ES: Implement ES_SetUpStreamKey
...
This ioctlv is used to get an IOSC decrypt handle for a title.
It is known to be used internally by the WFS modules, but it can also
be used from the PPC under some conditions.
Brings us down to 2 essentially unimplementable ioctlvs (syscalls which
seem to return kernel thread priorities...), and 1 known but
unimplemented ioctlv (VerifySign).
2017-06-08 18:15:03 +02:00
Léo Lam
e240e260d9
IOSC: Fix the SetOwnership implementation
2017-06-08 18:15:03 +02:00
Léo Lam
47e0a1656e
IOS/ES: Make NandUtils member functions
...
In the future, NAND filesystem access will be limited to one IOS
instance, for safety reasons and to make it possible to consider
supporting NAND images. This means that any code accessing the NAND
filesystem must go through the FS device, both for code that is
external to IOS and internal.
Because we don't want to introduce any singleton, this requires
internal IOS code that needs NAND access to be part of an IOS device
class, so they can access the FS device easily.
Making some of the internal ES implementation functions member
functions also prevents them from being (mis)used outside of IOS,
since they cannot be called everywhere anymore.
2017-06-08 17:44:00 +02:00
Shawn Hoffman
55062afea9
move IOS::HLE::WriteReturnValue to .cpp file
2017-06-08 00:07:10 -07:00
shuffle2
ffd8309aca
Merge branch 'master' into fix-unittests
2017-06-07 21:20:06 -07:00
Shawn Hoffman
602b972773
msvc: enable some default-off warnings
2017-06-07 21:07:36 -07:00
shuffle2
327050348c
Merge pull request #5576 from lioncash/filters
...
Core: Move SignatureDB and Config source files into filters
2017-06-07 20:41:06 -07:00
Shawn Hoffman
fd166032ab
msbuild: obey some warnings about missing virtual destructors
2017-06-07 20:20:25 -07:00
Shawn Hoffman
1065dc4438
msbuild: set warning level 4
2017-06-07 20:20:25 -07:00
Shawn Hoffman
5480efdff2
video: change multisample/AA setting to u32
2017-06-07 20:20:25 -07:00
Shawn Hoffman
9357cee2ef
do not assign in conditional statements
2017-06-07 20:09:44 -07:00
Shawn Hoffman
50f34f8b05
jit64: silence signedness comparison warnings
2017-06-07 20:09:44 -07:00
Shawn Hoffman
ef9090d7da
powerpc: silence an int->u32 init warning
2017-06-07 20:09:43 -07:00
Shawn Hoffman
a97d079138
jit64: quiet variable init warnings
2017-06-07 20:09:43 -07:00
Shawn Hoffman
e6c15e993b
quiet some sign-conversion-in-parameter warnings
2017-06-07 20:09:43 -07:00
Shawn Hoffman
ab4a785f1b
d3d: silence variable shadowing warning
2017-06-07 20:09:43 -07:00
Shawn Hoffman
ead4f19654
ios/usbv4: initialize TransferCommand::data_address to 0
2017-06-07 19:52:08 -07:00
Shawn Hoffman
983f70c9ea
ios: treat return values as s32
2017-06-07 19:52:07 -07:00
Shawn Hoffman
5b5c630afb
set underlying type of some enums to quiet warnings
2017-06-07 19:52:07 -07:00
Shawn Hoffman
ebd3d43b7d
ios/es: make fd s32 -> quiets warnings
2017-06-07 19:52:07 -07:00
Shawn Hoffman
8f12d7fb3c
ios/net/ip/top: introduce a helper to write ip addr (quiets warning)
2017-06-07 19:52:07 -07:00
Shawn Hoffman
4a1b32afe4
windows: use proper type/constant for NET_IFINDEX in ios hle
2017-06-07 19:52:07 -07:00
Shawn Hoffman
7e75a052a4
windows/bba: pass c_str() instead of std::string object through a va_list
2017-06-07 19:52:07 -07:00
Shawn Hoffman
90f863a7a3
HLE: fix unreachable code warning
2017-06-07 19:52:07 -07:00
Shawn Hoffman
f730b775b6
quiet warnings about possibly-uninitialized variable usage
2017-06-07 19:52:07 -07:00
Shawn Hoffman
e1a3e41bf3
fix various instances of -1 being assigned to unsigned types
2017-06-07 19:52:07 -07:00
Shawn Hoffman
be7c6a0819
msvc: disable warning about using setjmp w/c++ objects in scope
2017-06-07 19:52:07 -07:00
Lioncash
a093b58aad
Core: Move SignatureDB and Config source files into filters
...
Keeps things organized instead of being in the root of Core's source
tree when using the filter view.
2017-06-07 21:57:49 -04:00
Shawn Hoffman
f7f1d5d2ca
msvc: disable meaningless constant truncation warnings in SDCardUtil
2017-06-07 18:44:03 -07:00
Shawn Hoffman
4f9dd7277b
msvc: disable unused symbol warning in Core/Common/Crypto/ec.cpp
2017-06-07 18:44:03 -07:00
Shawn Hoffman
5dc7318281
msbuild: cleanup some old comments in DolphinQt2.vcxproj
2017-06-07 17:30:05 -07:00
Shawn Hoffman
8d37301b19
msbuild: Remove hack for ObjectFileName (reduces build parallelism).
2017-06-07 17:30:05 -07:00
Shawn Hoffman
1bb26dddb1
msbuild: only set /NODEFAULTLIB in one place
2017-06-07 17:30:05 -07:00
Shawn Hoffman
0594f7db02
msbuild/DolphinQt: remove extra /INCREMENTAL. Already enabled for Debug.
2017-06-07 17:30:05 -07:00
Shawn Hoffman
4371dd201f
msbuild: remove some remnants of Qt .ui/.qrc support
2017-06-07 17:30:05 -07:00