Commit Graph

18971 Commits

Author SHA1 Message Date
Léo Lam 4dcfa5371a IOS/ES: Don't open store in rw mode in WriteNewCertToStore
Causes different issues on different platforms.

r+b is broken on Windows for some reason.
a+b is broken on macOS.
2017-06-28 11:23:08 +02:00
Léo Lam 1a6b5ca36a Qt: Add menu item to perform online update 2017-06-28 11:23:08 +02:00
Léo Lam f06367febc WX: Add menu item to perform online update 2017-06-28 11:22:10 +02:00
Léo Lam 42d217b9a8 WiiUtils: Add an online updater
While setting up a proper NAND for Wii emulation has become much easier
now that disc and online system updates work, they still require users
to have a recent disc game, certificates extracted from IOS or a NAND
dump for online updates to work and to really get all system titles.

This commit adds the ability to do an online update right from
Dolphin itself, which solves that usability issue.
2017-06-28 11:22:10 +02:00
Léo Lam 0c7b9570b4 Move WiiUtils to Core
Allows reusing the WAD import logic more easily, whereas UICommon
code can only be used from UICommon and UI.

And managing what's on the NAND is the Core's responsability, not UI.
2017-06-28 11:22:10 +02:00
Leo Lam 7454a20f4f Merge pull request #5707 from leoetlino/content-table
IOS/ES: Fix content table handling
2017-06-28 10:42:59 +02:00
Leo Lam 72bde53f9f Merge pull request #5713 from Tilka/pool_edge
GameSettings: enforce real XFB for Pool Edge
2017-06-28 10:29:43 +02:00
shuffle2 17fe293981 Merge pull request #5715 from JosJuice/non-ascii-dofilesearch
Fix DoFileSearch for non-ASCII paths on Windows
2017-06-28 01:01:43 -07:00
JosJuice 98b0d8a119 Fix DoFileSearch for non-ASCII extensions on Windows
We don't use non-ASCII extensions for anything right now,
but we might as well fix this.
2017-06-28 09:50:02 +02:00
JosJuice 6f98915c32 Fix DoFileSearch for non-ASCII paths on Windows
It didn't work when there were non-ASCII characters
in the directories argument, but it worked fine with
non-ASCII characters in names of found files and folders.
2017-06-28 09:48:28 +02:00
Tillmann Karras ad51311dbf Fix GCC warnings 2017-06-28 01:12:13 +01:00
Jules Blok 4a7b96c93a FramebufferManager: Fix EFB layers being attached to the wrong FBO.
Fixes typo in commit 56fe938366.
2017-06-27 23:42:42 +02:00
shuffle2 951f6400fb Merge pull request #5706 from JosJuice/more-gamelist-speedup-followup
More follow-up for the gamelist speedup PR
2017-06-27 12:36:16 -07:00
JosJuice 7992c786b9 Fix references to CACHE_REVISION in DiscIO comments
The ISOFile.cpp one has been moved, and the GameFile.cpp one isn't
used for anything because DolphinQt2 doesn't support caching yet.
2017-06-27 21:32:14 +02:00
JosJuice a6471234a2 FileSearch: Use strcasecmp in non-std code
Because why should only Windows get in on the FileSearch speedup fun?
(Not that this fixes the slowness of File::ScanDirectoryTree...)
2017-06-27 21:32:07 +02:00
JosJuice caf6087766 GameListItem: Rename m_banner to m_volume_banner
I want to clarify that it isn't used for PNG banners.
2017-06-27 21:31:37 +02:00
JosJuice 89716025da GameListItem: Reduce levels of indentation 2017-06-27 21:29:56 +02:00
shuffle2 0ea17dafd9 Merge pull request #5710 from leoetlino/more-wiiroot-fixes
Remove unnecessary WiiRoot inits/shutdowns
2017-06-27 12:05:38 -07:00
shuffle2 d19e1ed4bf Merge pull request #5705 from JosJuice/strerror-r-version
Try to make sure that we have the XSI version of strerror_r
2017-06-27 11:49:26 -07:00
shuffle2 f1425a0c60 Merge pull request #5652 from spycrab/qt_audio
Qt/Settings: Implement Audio tab
2017-06-27 11:46:14 -07:00
shuffle2 9e1977e129 Merge pull request #5685 from spycrab/qt_dragndrop
Qt: Implement gamelist drag and drop
2017-06-27 11:44:06 -07:00
Léo Lam ff83b93949 Remove unnecessary WiiRoot inits/shutdowns
* IOS: WiiRoot shutdown was moved to HW.

* Movie: Don't call UpdateWantDeterminism() if we're not running yet,
  because this will automatically be done during the boot process.
  Not doing this will result in two NANDs being created.
2017-06-27 20:43:39 +02:00
shuffle2 ffe4135d77 Merge pull request #5708 from leoetlino/once
Initialise WiiRoot once per emulation session
2017-06-27 11:41:34 -07:00
shuffle2 2579a7c03d Merge pull request #5607 from leoetlino/logging-fix
Logging fixes
2017-06-27 11:40:26 -07:00
shuffle2 ce4d514542 Merge pull request #5631 from LAGonauta/openal-real-latency
Fixed latency setting and cleaned-up OpenAL backend
2017-06-27 11:31:16 -07:00
spycrab ba3df3db05 Qt/Settings: Implement audio pane 2017-06-27 20:25:38 +02:00
spycrab feb67a3953 Qt: Fix emulation not returning to its original state when aborting shutdown 2017-06-27 18:06:27 +02:00
spycrab 15243093c4 Qt: Implement missing settings 2017-06-27 17:32:43 +02:00
Léo Lam f5ef060b21 Initialise WiiRoot once per emulation session
This removes unnecessary initialisations which would cause issues in
determinism mode.
2017-06-27 15:44:17 +02:00
Léo Lam da5a7fcc63 IOS/ES: Fix content table handling
This is larger than I thought I would be, but unfortunately it's quite
hard to split fixes like this when the handling is wrong in tons of
different places.

The content table is limited in size. It can only hold 16 entries.
Three consequences:

* Since the table cannot grow indefinitely, instead of using a std::map
  we use a std::array as we should.

* Remove a hack where the CFD was cleared back to 0 on IPC close (wtf?)

* The CFD now doesn't keep increasing to infinity. It's unknown if this
  would fix anything at all, but some issues in the past were caused
  by CFDs being excessively large.

Other minor changes:

* Simplify save state logic.

* Keep track of the UID like ES does. Not sure how useful this is, but
  we can do this very easily so why not.

* Remove the guesswork and use the actual error codes.

* Add more error checking to make Dolphin less likely to crash.

Something that should be done in the future: deduplicate the filesystem
logic. Something that takes one line in the actual ES code takes
10+ lines in our implementation... while duplicating the FS logic...
This will likely harder to fix though, so I'm leaving that
for another time.
2017-06-27 15:37:00 +02:00
LAGonauta db7bb3bda8 Swapped C-style arrays to std::array
Also changed C-Style casts to static_cast
2017-06-27 07:12:15 -03:00
LAGonauta 9eb209c214 Removed redundant conversion to float when playing back stereo. 2017-06-27 07:10:32 -03:00
lfsafady 75af792070 Swapped out the sound_sync_event.Wait() call by a simple std::sleep_for.
It seems to make no difference besides allowing lower latencies and more
stability on hardware OpenAL cards. Maybe the Wait() call waits for too
long, causing buffers underruns.
2017-06-27 07:08:43 -03:00
lfsafady d9d51fe0c4 Renamed some variables to the current coding standard and some to better
fit what they really are.
2017-06-27 07:08:43 -03:00
JosJuice 5b7f99e57a Try to make sure that we have the XSI version of strerror_r 2017-06-27 11:59:39 +02:00
LAGonauta 8fd1af6783 Changed OpenAL latency setting to really reflect how much time it is.
Before these changes each value of latency were actually 5ms, with a
minimum latency of ~10 ms. If it was set to 4 ms on the UI, the actual
latency was 10 + 5 * 4 = 30 ms.
Now 30 ms on the UI means 30 ms on the backend.
2017-06-27 06:54:28 -03:00
JosJuice b9499441ee GameListItem: Fix comment about PNG banners for volumes
f16599f quietly dropped the ability to set custom banners for volumes.
2017-06-27 11:30:27 +02:00
JosJuice 691b676145 GameListItem: Fix minor naming style violation 2017-06-27 11:28:55 +02:00
JosJuice e73de25a9e GameListCtrl: Put CACHE_REVISION in .cpp file
Reduces the number of files that have to be recompiled
when changing the cache revision.
2017-06-27 11:27:36 +02:00
shuffle2 94ba78d717 Merge pull request #5614 from ligfx/qtinputmappingrandomcleanups
DolphinQt: small input mapping code cleanups and fixes
2017-06-27 01:57:26 -07:00
shuffle2 540ee18966 Merge pull request #5699 from JosJuice/wx-custom-titles
DolphinWX: Sync custom title changes on game list rescan
2017-06-27 01:48:22 -07:00
JosJuice 7d801d61dc DolphinWX: Use std::move when committing in GameListItem 2017-06-27 10:21:33 +02:00
spycrab 2a1d18444f Qt: Implement gamelist drag and drop 2017-06-27 10:18:15 +02:00
shuffle2 599a235a19 Merge pull request #5691 from ligfx/openalonlywindowsdynamic
OpenAL: only enable on Windows + dynamically load DLL
2017-06-27 01:18:06 -07:00
shuffle2 0f3ee2f209 Merge pull request #5700 from leoetlino/title-key
ESFormats: Minor changes
2017-06-27 01:02:42 -07:00
Michael Maltese 749889236d OpenALStream: remove commented-out ALC_REFRESH code 2017-06-27 00:06:14 -07:00
Michael Maltese 8e849b1595 Remove OpenAL DLL from Externals 2017-06-27 00:06:14 -07:00
Michael Maltese c882d52f4a OpenAL: load DLL dynamically 2017-06-27 00:06:14 -07:00
Michael Maltese 18e70cdf91 Only build OpenAL on Windows 2017-06-27 00:06:14 -07:00
Michael Maltese 42ea1c8ecf OpenAL: remove aldlist.cpp 2017-06-27 00:06:13 -07:00
Michael Maltese 32470ef284 clean up OpenALStream::Start() 2017-06-27 00:06:13 -07:00
Michael Maltese 56961f5561 OpenALStream: don't include headers if not building 2017-06-27 00:06:13 -07:00
Michael Maltese 033492717c BlockingLoop: fix unhandled enum value warning
Fixes compiler warning:

```
Source/Core/Common/BlockingLoop.h:212:13: warning: enumeration value 'kNonBlock' not handled in switch [-Wswitch]
    switch (mode)
            ^
```
2017-06-26 23:34:33 -07:00
JosJuice 0ac1562fbd DolphinWX: Load EmuState and custom name for actual discs 2017-06-27 08:29:57 +02:00
JosJuice d5bf6f1bbc DolphinWX: Sync custom title changes on game list rescan 2017-06-27 08:29:48 +02:00
Léo Lam 9f08534a47 IOS: Reuse IOSC instance when possible
Changes ESFormats to take an IOSC instance instead of creating its own
temporary instance unnecessarily.
2017-06-27 00:01:20 +02:00
Léo Lam 6d821de2b9 IOS: Use a std::array for the title key instead of vector
The title key is always 16 bytes, so it doesn't make sense to make it
a std::vector.
2017-06-27 00:01:20 +02:00
Michael Maltese b2c9d6d217 Rename CMixer to Mixer 2017-06-26 15:01:07 -07:00
Leo Lam aa020040f6 Merge pull request #5681 from spycrab/qt_safeshutdown
Qt: Implement safe shutdown
2017-06-26 21:55:27 +02:00
spycrab 6688e66c60 Qt: Implement safe shutdown 2017-06-26 21:47:32 +02:00
shuffle2 7d60f03acb Merge pull request #5687 from shuffle2/wx-cache
DolphinWX: properly sync EmuState and banner changes.
2017-06-26 12:40:40 -07:00
Shawn Hoffman f51df62344 DolphinWX: properly sync EmuState and banner changes. 2017-06-26 12:35:40 -07:00
Leo Lam 0ace7fd8f3 Merge pull request #5694 from leoetlino/dolphin-drm
Refuse to launch the shop with default credentials
2017-06-26 21:31:32 +02:00
Leo Lam f399ca984f Merge pull request #5692 from JosJuice/titledatabase-override
TitleDatabase: Let user files override sys files
2017-06-26 21:30:49 +02:00
shuffle2 02690d5d7c Merge pull request #5693 from JosJuice/filesearch-minor-changes
FileSearch: Minor changes
2017-06-26 11:44:44 -07:00
Léo Lam 70828916e6 IOS/ES: Refuse to launch the shop with default credentials
Prevents... misusing the shop.

We are not legally obliged to do this, but let's not make piracy
any easier.
2017-06-26 20:30:13 +02:00
spycrab 2de31317e9 UICommon: Move TriggerSTMPowerEvent() from Wx 2017-06-26 16:28:39 +02:00
Léo Lam 860f07f5a1 IOS/ES: Expose GetDeviceId 2017-06-26 15:18:01 +02:00
Léo Lam 60c6fbe9cc Add CommonTitles.h for common Wii title IDs 2017-06-26 15:17:55 +02:00
JosJuice 1fc5eae5bd FileSearch: Add a static_assert for the preferred separator 2017-06-26 11:50:10 +02:00
JosJuice 382356627a FileSearch: Check isDirectory in the non-Windows code
c5fa470 made the extension check discard directories, but
only in the new code that currently only is used on Windows.
Let's add an equivalent check in the old code so that the
behavior is consistent across platforms.
2017-06-26 11:44:23 +02:00
JosJuice 642e3db3c5 TitleDatabase: Add more information to a comment 2017-06-26 11:25:58 +02:00
JosJuice ee66c562ab TitleDatabase: Let user files override sys files
This seems like an oversight in the old code, because
what's the point of loading user files if the titles
in them are going to be ignored for nearly all games?

This commit fixes the issue by making the first LoadMap
variant not overwrite entries and making the constructor
do everything in the opposite order. An alternative solution
would be to make the second LoadMap variant overwrite entries.
2017-06-26 11:14:27 +02:00
Markus Wick 99b1735424 Merge pull request #5660 from shuffle2/unblock-blockingloop
Change "blocking" BlockingLoop::Stop to give up and die after a timeout.
2017-06-26 10:23:21 +02:00
Shawn Hoffman ed8f293b4f Change "blocking" BlockingLoop::Stop to give up and die after a timeout.
This fixes the global-static fifo object causing infinite hangs in some
cases. Notably, failure to initialize a graphics backend would result in
BlockingLoop::Prepare being called but never executing Run(), leaving the
object in a bad state.
2017-06-25 20:47:30 -07:00
Shawn Hoffman 1634f0cf5e Use CompareStringOrdinal in DoFileSearch instead of _wcsicmp 2017-06-25 16:47:46 -07:00
shuffle2 88b442e1a8 Merge pull request #5678 from shuffle2/win-qt-vcxproj
Windows/Qt: Make maintaining VS files easier.
2017-06-25 15:10:23 -07:00
JosJuice be162a3316 FileSearch: Remove unnecessary function 2017-06-25 13:21:25 +02:00
shuffle2 991062093b Merge pull request #5682 from MerryMage/SCMRevGen
SCMRevGen: Use DisableFastUpToDateCheck
2017-06-24 10:44:53 -07:00
MerryMage 11a03e7dd2 SCMRevGen: Use DisableFastUpToDateCheck 2017-06-24 17:34:21 +01:00
JosJuice b440dbd998 FileSystemGCWii: Use case insensitive comparison in FindFileInfo
This was a regression in f49b64c. Some games seem to name the
banner file OPENING.BNR instead of opening.bnr.

Should fix https://bugs.dolphin-emu.org/issues/10354
2017-06-24 14:06:31 +02:00
Shawn Hoffman 311740b587 msvc/qt: list missing headers 2017-06-24 01:52:49 -07:00
Shawn Hoffman 2cf4ce1785 msvc\qt: get rid of .filters; just display directory structure. 2017-06-24 01:52:49 -07:00
Tillmann Karras c8255092d7 Fix warnings 2017-06-24 01:41:58 +01:00
Shawn Hoffman a66b747366 DolphinWX: show simple message about scanning in statusbar. 2017-06-23 17:25:53 -07:00
Shawn Hoffman c5fa470ad8 replace DoFileSearch with optimized version 2017-06-23 17:25:53 -07:00
Shawn Hoffman f16599f4a8 DolphinWX: defer gamelist scanning and switch to single-file cache. 2017-06-23 17:25:53 -07:00
Shawn Hoffman 79961b6f76 GameListCtrl: minor cleanup 2017-06-23 17:25:53 -07:00
Shawn Hoffman 668c6b5ce9 DolphinWX: rename CGameListCtrl -> GameListCtrl 2017-06-23 17:25:52 -07:00
shuffle2 1bd177561b Merge pull request #5663 from leoetlino/import-fix
IOS/ES: Fix import sanity check
2017-06-23 17:04:26 -07:00
shuffle2 d715e740b5 Merge pull request #5669 from JosJuice/boottopause-false
Don't enable Boot to Pause by default in the debugger
2017-06-23 17:02:03 -07:00
sephiroth99 22e1a3c09f DolphinQt2: fix compile error with analytics disabled
Some ifdefs were missed around two lines related to analytics in
GeneralPane.
2017-06-23 19:09:45 -04:00
JosJuice 7ebd324fe7 Don't enable Boot to Pause by default in the debugger
This behavior is useful sometimes, but it's not always useful,
and it can be rather confusing if you're not aware of it.
2017-06-23 16:05:27 +02:00
Shawn Hoffman 38b61edaa5 Qt/Windows: Properly link against qtmain. 2017-06-23 00:46:13 -07:00
Léo Lam a3fdda1675 IOS/ES: Fix import sanity check
The sanity check runs *before* finalising the import, so at that time
the whole title directory is still in /import and not in /title.
This means we should check for contents there, not in /title. Whoops.
2017-06-22 23:41:01 +02:00
Niels Boehm 56158ca176 Replace MMU mask tests with dedicated function.
The efficient function (that is nearly the same as
https://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2)
replaces one loop based instance (which also reused the xx variable
afterwards, whereas it should have used htabmask instead) and one
instance using the population count a.k.a. Hamming weigth.
2017-06-22 20:22:53 +02:00
Niels Boehm df82adca43 Add function testing whether a bitmask is valid.
This one verifies bitmasks where low bits are set to 1 (hence the name).
Any stray 0 among the lower ones or any stray 1 among the higher zeros
renders the mask invalid.

The edge cases of all zeros and all ones are considered valid masks.

It uses an efficient implementation. It's the counterpart of
https://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
2017-06-22 20:22:53 +02:00
shuffle2 e30484e8a7 Merge pull request #5653 from Starsam80/qt-remove-settings-warning
Qt: Remove the warning in the settings window
2017-06-21 20:24:31 -07:00
shuffle2 1c741adcc6 Merge pull request #5658 from leoetlino/async
WX: Use std::future for checking disc integrity
2017-06-21 20:22:02 -07:00
shuffle2 09edd62cce Merge pull request #5650 from leoetlino/check-contents
IOS/ES: Add some sanity checks to ImportTitleDone
2017-06-21 20:13:44 -07:00
shuffle2 f65fe3efbd Merge pull request #5646 from Starsam80/cert-import-fixes
NANDImporter: Improve certificate extraction
2017-06-21 20:12:57 -07:00
Léo Lam 9d70b894bf WX: Use std::future for checking disc integrity
Simpler, and puts the call to CheckIntegrity right where it should be,
instead of being hidden somewhere in a thread class.

This also makes it more obvious what we're getting from the async task.

Oh, and coincidentally, this fixes a random crash that could occur
during the check. I'm not sure why.
2017-06-21 11:08:07 +02:00
Tillmann Karras e504da6f04 DSPHLE: add a few comments 2017-06-21 07:07:10 +01:00
Tillmann Karras b2a3827ecb DSPHLE: fix volume in NTSC IPL ucode 2017-06-21 06:57:58 +01:00
Starsam80 74df52fb2c
Qt: Remove the warning in the settings window 2017-06-20 18:58:47 -06:00
Tillmann Karras 578ae3c8a1 DSPHLE: the light protocol has no sine table
The sine table is only used for Dolby mixing which the light protocol
doesn't support.
2017-06-20 22:00:27 +01:00
Tillmann Karras a46430851d DSPHLE: the IPL PAL ucode's 0xC command is a nop 2017-06-20 22:00:27 +01:00
Tillmann Karras 69027bc488 DSPHLE: add another Japanese IPL checksum
I'm not actually sure it's version 1.2 but it doesn't really matter
anyway.
2017-06-20 22:00:11 +01:00
Leo Lam 3fe8e102fc Merge pull request #5648 from leoetlino/qt-shutdown
Qt: Fix emulation stopped signal
2017-06-20 21:14:13 +02:00
Léo Lam 3613f33c9b IOS/ES: Make sure all contents are imported
This adds a check to ImportTitleDone to make sure all required contents
that are listed in the TMD have been imported before allowing to finish
the import. Not checking for this could allow titles to be left in an
inconsistent state.
2017-06-20 20:12:50 +02:00
Léo Lam 4d08e90f26 IOS/ES: Block ImportTitleDone if there's a content import 2017-06-20 11:57:00 +02:00
Anthony b584d2797f Merge pull request #5508 from ligfx/qtresizerenderwidget
DolphinQt2: allow resizing RenderWidget/fix fullscreen
2017-06-19 12:26:18 -07:00
Léo Lam fb135c99e3 Qt: Fix emulation stopped signal
Same old bug as in WX. The core is not shut down until the on stopped
callback is invoked.
2017-06-19 21:24:32 +02:00
shuffle2 74cab88a8c Merge pull request #5618 from lioncash/fifo
FifoRecorder: Don't allocate ~100.7MB on program startup
2017-06-19 08:02:51 -07:00
Leo Lam 1be10e7ebc Merge pull request #4940 from sjnewbury/wiimote-connect
Retry opening of wiimote channels on initial failure
2017-06-19 10:56:09 +02:00
Steven Newbury e9a696b160 Retry opening of wiimote channels on initial failure #5997
There seems to be a race condition between a peripheral device
connecting to the bluetooth controller and it being ready to use.
It's very short and it depends upon the controller, some appear to
connect synchronously and block until the device is ready, others
report the device upon discovery but do not allow communication straight
away. I don't know which is the correct behaviour, or whether it depends
on the peripheral, controller or both. Anyway, Dolphin waits for a
remote to appear and immediately attempts to open the communication
channels, this can fail because the device isn't ready yet, delay, try
again, and it works.

There are other (unlikely) chances the device is busy at random
moments after this initial race condition so it loops around try to
reconnect.

This was inspired by an earlier patch, see here:
https://bugs.dolphin-emu.org/issues/5997#note-20

I can confirm that it works perfectly for me on a bluetooth
controller where otherwise it's impossible to connect (Dell 380
Bluetooth 4.0).
2017-06-19 09:22:04 +01:00
Starsam80 5399311a13
NANDImporter: Improve certificate extraction 2017-06-19 01:23:58 -06:00
Lioncash 82c66e2bab FifoRecorder: Don't allocate ~100.7MB on program startup
So, a FifoRecorder instance is instantiated as a file-local variable and
used as a singleton (ugh). Most users likely don't regularly use the
FIFO player/FIFO recorder, so this is kind of a substantial waste of
memory.

FifoRecorder's internal RAM and ExRAM vectors are 33554432 and 67108864
bytes respectively, which is around 100.66MB in total.

Just on the game list view on a clean build with nothing loaded, this
knocks debug build memory usage down from ~232.4MB to ~137.5MB, and
release build memory usage down from ~101MB to ~5.7MB.
2017-06-19 02:47:26 -04:00
Lioncash 59a947d41d AbstractTexture: Return config by const reference
Returning by const value isn't really necessary (and usually an indicator const reference was intended).
2017-06-18 23:38:42 -04:00
Lioncash 07cddf6f7f AbstractTexture: Add missing includes (and remove unnecessary ones) 2017-06-18 23:29:22 -04:00
Lioncash 0c57543205 VideoCommon: Fix VS filter for AbstractTexture.cpp
This would cause failures when building with VS.
2017-06-18 22:58:02 -04:00
shuffle2 f06e233d49 Merge pull request #5616 from ligfx/qtfocuseventtowindowactivation
DolphinQt2: FocusEventFilter -> WindowActivationEventFilter
2017-06-18 16:34:03 -07:00
shuffle2 b59eb76786 Merge pull request #5641 from leoetlino/analytics-timeout
Analytics: Set the timeout to 5 seconds
2017-06-18 16:33:18 -07:00
Michael Maltese f7e2b8dab7 DSPCore: replace 'GC' with 'GameCube' in messages 2017-06-18 15:43:02 -07:00
Michael Maltese 9de2934aae DSPCore: remove message that the free ROM doesn't work with IPL
The GameCube IPL sounds the same when using the free ROM as it does when
using the official ROM (and in Audacity, I couldn't visually distinguish
between the waveforms). It has a reference to an unimplemented function
at 0x8644 which seems to only be used in an inlined version of the CARD
ucode.
2017-06-18 15:43:02 -07:00
Michael Maltese 84808d2e35 DSPCore: update free DSP ROM message for GBA ucode support
The GBA ucode is supported as of #5524 / d51be94.
2017-06-18 15:43:02 -07:00
shuffle2 98b751f810 Merge pull request #5643 from leoetlino/fix-memcpy
IOS/ES: Fix bug in ImportTicket ioctlv handler
2017-06-18 15:37:08 -07:00
Léo Lam 29e8988c90 Analytics: Set the timeout to 5 seconds
3 seconds is sometimes not enough.
2017-06-18 23:16:03 +02:00
Leo Lam 9a1503a75c Merge pull request #5642 from lioncash/chrono
HttpRequest: Use std::chrono for indicating time periods
2017-06-18 23:13:52 +02:00
Léo Lam 961c85bf7c IOS/ES: Fix bug in ImportTicket ioctlv handler 2017-06-18 23:09:30 +02:00
Léo Lam 7222ce78ff SysConf: Don't set "config done" flags by default
This allows the user to go through the Wii Menu first boot setup
screen when they launch the System Menu for the first time.

Most useful on a clean profile, after doing a full system update,
to configure settings like the console country.
2017-06-18 22:32:56 +02:00
shuffle2 5072f4e5c3 Merge pull request #5638 from leoetlino/sysconf
Rewrite SysConf handling
2017-06-18 13:19:11 -07:00
shuffle2 e63c337830 Merge pull request #5305 from iwubcode/abstract_texture
Abstract Texture
2017-06-18 12:57:05 -07:00
Lioncash 251de89b5c HttpRequest: Use std::chrono for indicating time periods
Allows the use of chrono time points, on top of being more indicative of
time periods used at call sites, if custom timeouts are specified.
2017-06-18 15:48:37 -04:00
Léo Lam d86f020e81 Rewrite SysConf handling
This rewrites the SysConf code for several reasons:

* Modernising the SysConf class. The naming was entirely cleaned up.
  constexpr for constants.

* Exposing less stuff in the header.

* Probably less efficient parsing and writing logic, but much simpler
  to understand and use in my opinion. No more hardcoded offsets.
  No more duplicated code for the initial SYSCONF generation.

* More flexibility. It is now possible to add and remove entries,
  since we rebuild the file. This allows us to stop spamming
  "section not found" panic alerts; we can now use and insert
  default entries.
2017-06-18 16:17:05 +02:00
Tillmann Karras 9a2bef97da JitCache: use SymbolDB names as JIT block names 2017-06-18 06:58:44 +01:00
shuffle2 e9c0535519 Merge pull request #5632 from sepalani/file
File/IOFile: Check _tfopen_s properly
2017-06-17 15:03:10 -07:00
Léo Lam e1990e2645 IOS/ES: Fix title ordering
On a real Wii, the title list is not in any particular order. However,
because of how the flash filesystem works, titles such as 1-2 are
*never* in the first position. We must keep this behaviour, or some
versions of the System Menu may break.
2017-06-17 22:39:08 +02:00
Léo Lam dd8dcdf880 LogManager: Check if listener is valid before using it 2017-06-17 10:39:06 +02:00
Léo Lam a2ad3e14d0 Logging: Remove duplicated code 2017-06-17 10:20:30 +02:00
Léo Lam 100c433261 Logging: Move verbosity setting code to LogManager
No clue why it was in DolphinWX.
2017-06-17 10:20:30 +02:00
Stenzek 68fef47aef Merge pull request #5314 from stenzek/revert-efb-source-truncation
TextureConversionShader: Use integer math for truncating EFB format
2017-06-17 15:21:48 +10:00
Stenzek adebe2239e TextureConversionShader: Use integer math for truncating EFB format 2017-06-17 12:17:09 +10:00
Sepalani b359d82890 File/IOFile: Check _tfopen_s properly 2017-06-17 02:16:58 +01:00
Leo Lam 10beb2aea1 Merge pull request #5628 from JosJuice/updatetitle-encoding
DolphinWX: Fix encoding errors in UpdateTitle
2017-06-16 18:37:59 +02:00
Leo Lam bc9c9b9fe4 Merge pull request #5594 from MerryMage/phack
Cleanup Projection Hack
2017-06-16 18:36:39 +02:00
Leo Lam cc9bd0b0f0 Merge pull request #5625 from leoetlino/fileutil-fixes
FileUtil fixes
2017-06-16 18:31:50 +02:00
JosJuice 4bee7b7605 DolphinWX: Fix encoding errors in UpdateTitle
An implicit conversion from std::string to wxString
was to blame, as usual. Fixes issue 10341.
2017-06-16 17:20:13 +02:00
Léo Lam 6249244c90 IOS/ES: Fix formatting 2017-06-16 16:17:38 +02:00
Léo Lam 6503a9f538 Allow the user to ignore signature issues during WAD import
Improves usability with signature checks.
2017-06-16 16:17:38 +02:00
Léo Lam c08806d107 IOS/ES: Verify containers in GetTMDStoredContents 2017-06-16 16:17:38 +02:00
Léo Lam d77b7ac90e IOS/ES: Verify containers in SetUpStreamKey 2017-06-16 16:17:38 +02:00
Léo Lam 36c5caacf4 IOS/ES: Verify containers in ImportTmd 2017-06-16 16:17:37 +02:00
Léo Lam 54025da00f IOS/ES: Add note about verification in DiVerify
We probably don't want to verify containers there because it might
result in patched/custom games failing the check.
2017-06-16 16:17:37 +02:00
Léo Lam 8a49e1f7db IOS/ES: Verify containers in ImportTitleInit 2017-06-16 16:17:37 +02:00
Léo Lam 719af1aff4 IOS/ES: Verify containers in ImportTicket 2017-06-16 16:17:37 +02:00
Léo Lam 07d83ada39 IOS/ES: Create missing directories at boot
Something that IOS does and that Dolphin doesn't, for whatever reason.
2017-06-16 16:17:37 +02:00
Léo Lam f3bf1d626c IOS/ES: Add helper function ReadCertStore 2017-06-16 16:17:37 +02:00
Léo Lam 88348e2903 IOS/ES: Add VerifyContainer
Will be used from several functions to verify the signatures for
different containers (TMDs, tickets, device signed blobs).

An option was added to disable signature checks, because that could be
useful for people trying to import unsigned stuff.
2017-06-16 16:17:37 +02:00
Léo Lam 34c9bf391e IOS: Correct ES return code names about signatures
-1027 is used when ES cannot find the issuer of a certificate.

-1012 is used when the signature type is invalid.
2017-06-16 15:49:40 +02:00
Shawn Hoffman 1ada68aecd windows: fix handle leak when using continuous scan 2017-06-16 04:00:32 -07:00
Léo Lam 01faa5c852 FileUtil: Use errno for printing errors in IsDirectory
stat() returns an error code in errno on both POSIX compliant
platforms and Windows.

This means we should always use errno instead of GetLastErrorMsg
which uses GetLastError() (Win32) on Windows.
2017-06-16 12:43:41 +02:00
Léo Lam aa63199977 FileUtil: Don't manually strip trailing slashes
POSIX allows one or more trailing slashes for directories.

From POSIX.1-2008, section 3.271 (Base Definitions / Pathname):

> A pathname can optionally contain one or more trailing <slash>
> characters. Multiple successive <slash> characters are considered to
> be the same as one <slash>, except for the case of exactly two
> leading <slash> characters.

On Windows, the extra trailing slashes are ignored for directories too.
2017-06-16 12:31:26 +02:00
Leo Lam 405d2e28ad Merge pull request #5621 from Orphis/d3d_include
d3d: Add missing include
2017-06-16 10:53:56 +02:00
Shawn Hoffman f469d86467 cmake/win32: add CompatPatches 2017-06-15 21:26:40 -07:00
Shawn Hoffman 1210c74955 [windows]: Apply compatibility patches to problematic gamepad vibration drivers.
Move ucrtFreadWorkaround to use the new LdrWatcher.
2017-06-15 21:21:01 -07:00
Florent Castelli 0b504fa046 d3d: Add missing include 2017-06-16 05:52:01 +02:00
Shawn Hoffman e51071a9c5 msbuild: put pugixml in Externals solution filter; fix project reference. 2017-06-15 19:06:16 -07:00
Michael Maltese 7c79673d78 MappingButton: make m_block a Common::Flag 2017-06-15 16:15:07 -07:00
Michael Maltese 5b6c8c3ad0 MappingButton: grab and release mouse and keyboard instead of calling parent SetBlockInputs 2017-06-15 16:15:07 -07:00
Michael Maltese 2188ac785a Move MappingWindow::OnDefaultFieldsPressed() to correct file 2017-06-15 16:15:07 -07:00
Michael Maltese 6c73079011 MappingWidget: fix typo and call Update() on bools 2017-06-15 16:15:07 -07:00
Michael Maltese ef563fc032 MappingWidget: call Clear() on numerics and bools 2017-06-15 16:15:07 -07:00
Michael Maltese 94038a1e03 MappingButton: remove GetFirstButtonPress logic 2017-06-15 16:15:07 -07:00
Michael Maltese 5b3b6b7f3d DolphinQt2: FocusEventFilter -> WindowActivationEventFilter 2017-06-15 16:12:05 -07:00
Lioncash dd4203bec8 Core: Remove unnecessary includes
Also moves a cpp file's related header file to the top of the inclusions if it isn't already there.
2017-06-15 18:52:22 -04:00
Lioncash b003108b8b Core: Add WiimoteCommon headers to the VS project 2017-06-15 18:38:21 -04:00
Leo Lam 8f460a1cda Merge pull request #5611 from JosJuice/reorganize-file-namespace
Reorganize File namespace
2017-06-15 23:28:36 +02:00
JosJuice cf94ce6305 Add a namespace to OpenFStream
For consistency with the other functions in FileUtil.h.
2017-06-15 21:34:04 +02:00
JosJuice f09ceaa735 Move IOFile to a separate file
Reduces the number of files that need to be recompiled
when making changes to FileUtil.h.
2017-06-15 21:33:50 +02:00
Leo Lam 9bc1b652fe Merge pull request #5601 from leoetlino/esformats-additions
ESFormats additions and fixes
2017-06-15 21:32:44 +02:00
Leo Lam 743284d39d Merge pull request #5606 from leoetlino/include
NoGUI: Fix a missing include for Xlib
2017-06-15 21:31:21 +02:00
Leo Lam 09c0a3caaf Merge pull request #2820 from JosJuice/filesystem
Filesystem redesign and performance improvements
2017-06-15 21:24:42 +02:00
MerryMage f8a99ca192 VertexShaderManager: Rename projection hack variables 2017-06-15 16:38:10 +01:00
MerryMage 44f2420517 GraphicsSettings: PH_ZNear and PH_ZFar are std::strings 2017-06-15 16:38:06 +01:00
Léo Lam a370ad5f6d IOS/ESFormats: Fix content map writing
On Windows, this would fail because the file handle wasn't closed.
2017-06-14 23:13:46 +02:00
Léo Lam 8865208571 IOS/ESFormats: Add ParseCertChain
This will be used to avoid duplicating cert chain parsing code.
2017-06-14 22:45:30 +02:00
Léo Lam e29f6e383f IOS/ESFormats: Add CertReader 2017-06-14 22:45:30 +02:00
Léo Lam 90280b3f84 IOS/ESFormats: Remove unused TMDReader function
The ES function that used to make use of it was changed to be more
sane, so GetRawHeader() is now unused and useless.
2017-06-14 22:45:29 +02:00
Léo Lam 6c3069be97 IOS/ESFormats: Use SignedBlobReader for TMDs and tickets 2017-06-14 22:45:29 +02:00
Léo Lam 2ec04675c9 IOS/ESFormats: Add SignedBlobReader
Allows common signature parsing code to not be duplicated.
2017-06-14 22:45:29 +02:00
Anthony 335f54cac6 Merge pull request #5609 from leoetlino/qt-user-path
Qt: Support custom user profile paths
2017-06-14 13:40:37 -07:00
JosJuice 583406d900 Filesystem: Make destructors = default 2017-06-14 15:26:04 +02:00
JosJuice 0b7d2e7c68 Filesystem: Modernize variable names 2017-06-14 15:25:09 +02:00
JosJuice e3a2cd827a Filesystem: Do more validity checking in the constructor
This makes it possible to catch errors earlier so that file systems
simply fail to load instead of behaving oddly. It also makes it possible
to check for errors that weren't checkable before, like the end of a
directory being after the end of the parent directory.
2017-06-14 15:25:05 +02:00
JosJuice ee27be06d7 Filesystem: Add a cache for finding file info by disc offset
FileMonitor calls this every time a read happens, and there's no code that
only calls this a small number of times, so having a cache is worthwhile.
2017-06-14 15:25:02 +02:00
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
iwubcode e4896d39bd Video Backends: Move and rename HostTextureFormat to AbstractTextureFormat 2017-06-13 00:41:56 -05:00
iwubcode 2cdc93f4ab Video Backends: Split texture cache code out into separate files, introduce 'AbstractTexture' 2017-06-13 00:41:51 -05: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
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 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
Léo Lam 0ddb6f9328 DiscIO: Use the correct offset shift for DOL exports 2017-06-07 22:41:00 +02:00
Léo Lam 0b71b60ef0 DiscIO: Fix formatting 2017-06-07 22:40:51 +02:00
Léo Lam 7b490d7cb0 HW/WiiSaveCrypted: Don't use new/delete 2017-06-07 12:49:24 +02:00
Leo Lam 3a83ebcc35 Merge pull request #5567 from lioncash/put_time
Movie: Use std::put_time in GetRTCDisplay()
2017-06-07 10:00:31 +02:00
Leo Lam b3ca876956 Merge pull request #5564 from Starsam80/qt-title-database
Qt: Use TitleDatabase for better names in the game list
2017-06-07 09:58:11 +02:00
Leo Lam 6ee2227ba2 Merge pull request #5568 from lioncash/boot
Boot: Make BootExecutableReader hierarchy constructors explicit
2017-06-07 09:27:04 +02:00
Lioncash d9bb2ce3af DVDInterface: Amend lint formatting issues 2017-06-07 01:20:54 -04:00
Lioncash b676edd80c Core: include what you use
Eliminates a swath of indirectly included standard headers
2017-06-07 01:20:48 -04:00
Lioncash b0427731b3 ElfReader: default the destructor 2017-06-06 23:03:59 -04:00
Lioncash 1af1795695 ElfReader: Make constructors explicit 2017-06-06 23:03:59 -04:00
Lioncash 1876505707 DolReader: Make constructors explicit 2017-06-06 23:03:59 -04:00
Lioncash 927a4a16f8 Boot: Make BootExecutableReader constructors explicit 2017-06-06 22:54:25 -04:00
Starsam80 0c24162928
Qt: Use TitleDatabase for better names in the game list 2017-06-06 19:00:38 -06:00
Lioncash acac2aeb9b Movie: Use std::put_time in GetRTCDisplay()
No need for a fixed buffer.
2017-06-06 20:56:04 -04:00
Lioncash e5260dee6b ec_wii: Add missing <string> header 2017-06-06 20:37:43 -04:00
Lioncash 1ffc311bf3 Core: Fix vcxproj filter
This would cause the core project to fail to load.
2017-06-06 20:29:03 -04:00
shuffle2 03c1a1e392 Merge pull request #5510 from spycrab/qt_hotkeys
Qt: Implement hotkeys
2017-06-06 16:12:52 -07:00
Michael Maltese 60f4f499e8 OpenAL: hardcode that X-Fi supports surround 2017-06-06 15:23:55 -07:00
Michael Maltese 3bfebf396a Fix OpenAL backend on macOS
OpenALStream was querying the backend for AL_EXT_float32 support (which
suceeds), but AL_FORMAT_STEREO_FLOAT32 was defined incorrectly.

Also changes OpenALStream to query for AL_EXT_MCFORMATS (multichannel
support) rather than hard-coding that it doesn't work on macOS.
2017-06-06 15:23:55 -07:00
Leo Lam c07058a4ad Don't show CPU and file related OSD messages on boot (#5533)
They have been broken since 2 years and no one has noticed,
which shows that no one really cares.

And it's arguable whether showing the CPU info is really useful.
2017-06-06 13:14:30 -07:00
shuffle2 bd489008ff Merge pull request #5560 from shuffle2/gh5
Implement slider bar present on GHWT and GH5 controllers
2017-06-06 13:12:02 -07:00
Léo Lam d50b4406a6 Boot: Restore symbol map loading 2017-06-06 16:40:00 +02:00
Léo Lam 9a3fb858f3 EXI: Always try to load IPL in GameCube mode
I don't see any reason to disable loading the IPL if bHLE_BS2 is
disabled. bHLE_BS2 should only cause us not to run the IPL, but not
skip loading it in the first place. More importantly, without always
loading it, this causes issues when trying to launch only the GC IPL
while having bHLE_BS2 = false.
2017-06-06 16:31:17 +02:00
Léo Lam d0169fe8db Boot: Re-use the disc volume
Saves some disc IO.
2017-06-06 16:31:16 +02:00
Léo Lam 6f6a18b1b0 Boot: Remove unneeded manual HLE function scan
Not needed. And the symbols would get overwritten by the symbol map
load that is just below.
2017-06-06 16:30:55 +02:00
Léo Lam 065261dbad Boot: Unify the ELF and DOL code paths
They're essentially the same. To achieve this, this commit unifies
DolReader and ElfReader into a common interface for boot executable
readers, so the only remaining difference between ELF and DOL is
how which volume is inserted.
2017-06-06 16:30:54 +02:00
Léo Lam 22992ae41e Boot: Clean up the boot code
* Move out boot parameters to a separate struct, which is not part
  of SConfig/ConfigManager because there is no reason for it to
  be there.

* Move out file name parsing and constructing the appropriate params
  from paths to a separate function that does that, and only that.

* For every different boot type we support, add a proper struct with
  only the required parameters, with descriptive names and use
  std::variant to only store what we need.

* Clean up the bHLE_BS2 stuff which made no sense sometimes. Now
  instead of using bHLE_BS2 for two different things, both for storing
  the user config setting and as a runtime boot parameter,
  we simply replace the Disc boot params with BootParameters::IPL.

* Const correctness so it's clear what can or cannot update the config.

* Drop unused parameters and unneeded checks.

* Make a few checks a lot more concise. (Looking at you, extension
  checks for disc images.)

* Remove a mildly terrible workaround where we needed to pass an empty
  string in order to boot the GC IPL without any game inserted.
  (Not required anymore thanks to std::variant and std::optional.)

The motivation for this are multiple: cleaning up and being able to add
support for booting an installed NAND title. Without this change, it'd
be pretty much impossible to implement that.

Also, using std::visit with std::variant makes the compiler do
additional type checks: now we're guaranteed that the boot code will
handle all boot types and no invalid boot type will be possible.
2017-06-06 16:27:52 +02:00
Léo Lam 4d2fb9b9ba Core: Replace BOOT_MIOS with an explicit "is MIOS" flag
I didn't know better back then, but the boot type is only supposed to
be used for the actual boot params. It shouldn't be used or changed
after booting.
2017-06-06 16:21:58 +02:00
spycrab 151ae38a56 Qt: Implement hotkeys (+ configuration) 2017-06-06 13:49:49 +02:00
Giancarlo Saraceni ef84e19d55 Implement slider bar present on GHWT and GH5 controllers 2017-06-06 04:38:20 -07:00
shuffle2 096399d371 quick UB fix for 3c0bdd74 2017-06-06 03:49:01 -07:00
Leo Lam c0495d1d11 Merge pull request #5559 from JosJuice/discio-rename
DiscIO: Remove C/I/S prefixes from class names
2017-06-06 12:47:33 +02:00
JosJuice b2af07a7b7 DiscIO: Remove C/I/S prefixes from class names
These prefixes were inconsistent with the rest of Dolphin.

I'm also renaming VolumeWiiCrypted to VolumeWii because of 1113b13.
2017-06-06 12:31:59 +02:00
shuffle2 3c0bdd7473 Merge pull request #5558 from Tilka/fix_warnings
Interpreter: simplify srawx/srawix
2017-06-06 03:28:19 -07:00
shuffle2 3d6c278892 Merge pull request #5556 from shuffle2/jloehr-FixWiimoteReportSizeOnWindows
fix wiimote report size on windows
2017-06-06 03:26:14 -07:00
Tillmann Karras 7702771d61 Interpreter: simplify srawx/srawix
This also avoids -Wint-in-bool-context warnings in GCC 7.
2017-06-06 11:05:33 +01:00
shuffle2 1113b131f2 Merge pull request #5548 from JosJuice/volume-wii-unencrypted
Reimplement support for unencrypted Wii discs
2017-06-06 01:37:52 -07:00
Shawn Hoffman 2b0c600be5 windows: make IORead return number of valid bytes according to ReportID 2017-06-06 01:21:30 -07:00
JosJuice d41bb375f1 Fix UB string comparisons
Also replacing auto& with const char* so that it's easier
to see that these strings aren't std::strings.
2017-06-06 09:02:29 +02:00
shuffle2 367fba8e06 Merge pull request #5199 from ligfx/default_gci_folder
Make EXIDEVICE_MEMORYCARDFOLDER the default for slot A
2017-06-05 21:56:04 -07:00
shuffle2 442e614021 Merge pull request #5536 from sepalani/getstring
HLE: Prevent GetStringVA to strip newlines
2017-06-05 21:31:09 -07:00
shuffle2 c8166951a0 Merge pull request #5418 from MerryMage/config-again-and-again
VideoConfig: Port to layered configuration system
2017-06-05 21:11:04 -07:00
Sepalani f28f23af1d StringUtil: StringPopBackIf added 2017-06-06 05:08:51 +01:00
shuffle2 192fec50b9 Merge pull request #5276 from ligfx/macosheadless
Add headless support on macOS
2017-06-05 20:49:02 -07:00
Sepalani 1209959012 HLE: Prevent GetStringVA to strip newlines 2017-06-06 04:31:01 +01:00
shuffle2 9a9b0eed72 Merge pull request #5552 from sepalani/hle-print-warnings
HLE_OS: Fix missing-declarations warnings
2017-06-05 20:29:31 -07:00
Sepalani 190f7cbc4f HLE_OS: Fix missing-declarations warnings 2017-06-06 04:23:54 +01:00
shuffle2 2d941ad1e7 Merge pull request #5294 from sepalani/mem-view-ascii
MemoryView: Prevent non-ascii characters
2017-06-05 20:21:02 -07:00
shuffle2 2f73bc1735 Merge pull request #5293 from sepalani/mem-ascii
MemoryView: Fix empty string
2017-06-05 20:20:24 -07:00
shuffle2 0b00477c8a Merge pull request #5311 from ligfx/mixerdpl2
AudioCommon: Move DPL2 decoding into Mixer
2017-06-05 20:09:18 -07:00
shuffle2 98eb192226 Merge pull request #5312 from ligfx/cleanupupdatedrawrectangle
RenderBase: clean up UpdateDrawRectangle
2017-06-05 20:03:56 -07:00
shuffle2 3fed604ad9 Merge pull request #4878 from ligfx/geckodownloadcodes
Move GeckoCodeDiag download logic to GeckoCodeConfig (and make it use Curl)
2017-06-05 20:00:30 -07:00
Michael Maltese 97e6ba773b Move DSP::CodesToHeader to DSPTool
It's the only place it's used, and highly-specific to DSPTool's needs.
2017-06-05 19:28:40 -07:00
Michael Maltese 1765e54ab3 DSPCodeUtil: remove GenRandomCode
It was only used in a specific DSPTool test, which was removed because
non-deterministic tests aren't really useful.
2017-06-05 19:28:40 -07:00
shuffle2 b9b3b1dc19 Merge pull request #5347 from JosJuice/do-not-translate-button-names
Don't translate button names
2017-06-05 19:05:09 -07:00
shuffle2 bc8024ed21 Merge pull request #5549 from Starsam80/qt-title
Qt: Add the version to the window title
2017-06-05 18:49:50 -07:00
shuffle2 d51be949a9 Merge pull request #5524 from ligfx/llegba
Update free DSP ROM and coefficients to support GBA ucode
2017-06-05 18:40:20 -07:00
shuffle2 cd78a7249f Merge pull request #5408 from sepalani/assemble
CodeView: Assemble menu item added
2017-06-05 18:26:33 -07:00
shuffle2 065c3d78b7 Merge pull request #5486 from sepalani/hle-print
HLE: More printf logs added
2017-06-05 17:29:13 -07:00
shuffle2 497afbffab Merge pull request #5488 from ligfx/qtreordercolumns
DolphinQt2: reorder list columns to match DolphinWX
2017-06-05 17:17:08 -07:00
shuffle2 10e54c8a8e Merge pull request #5490 from ligfx/qtcontrollergridlayout
DolphinQt2: use GridLayout for ControllersWindow
2017-06-05 17:16:27 -07:00
shuffle2 b8f2e24dd5 Merge pull request #5546 from ligfx/qtdynamicthemes
DolphinQt2: live updates to UI theme
2017-06-05 17:15:17 -07:00
Michael Maltese 6b084e21dc SettingsWindow: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese d6db515165 SettingsWindow: cleanup includes 2017-06-05 17:04:29 -07:00
Michael Maltese 4be07b4eb2 ToolBar: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese 9bdbd02efc GameListModel: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese 5a4ee87d6a DolphinQt2: Settings: emit ThemeChanged signal 2017-06-05 17:04:29 -07:00
Michael Maltese 328333dfb6 RenderWidget: hide cursor 2017-06-05 16:49:28 -07:00
Michael Maltese 833e38ed56 Settings: emit HideCursorChanged() 2017-06-05 16:49:28 -07:00
Michael Maltese 14da8232f6 ConfigManager: remove bAutoHideCursor
It's not used, and sounds like the same thing as `HideCursor`?
2017-06-05 16:49:28 -07:00
Michael Maltese 688f5ed267 DolphinQt2: move Path from toolbar to a pane 2017-06-05 16:46:10 -07:00
Michael Maltese b296393644 GameList: when list is empty, double-click to add path
Simpler than opening the Paths window, and how DolphinWX does it.
2017-06-05 16:46:10 -07:00
Michael Maltese 20f54fd9ed DolphinQt2: add DoubleClickEventFilter
This is an easy way to get a `doubleClicked` signal for any type
of widget without creating custom classes for each one.
2017-06-05 16:46:10 -07:00
Michael Maltese 47e8cb97b4 DolphinQt2: move path signals from PathDialog to Settings 2017-06-05 16:46:10 -07:00
Michael Maltese 548522877a DolphinQt2: make Settings a singleton
With this, we can get signals when properties change.
2017-06-05 16:46:10 -07:00
shuffle2 95ef785b1f Merge pull request #5537 from sepalani/hle-print-addr
HLE: Improve HLE_GeneralDebugPrint detection
2017-06-05 15:06:55 -07:00
Starsam80 e04480e5f5
Qt: Add the version to the window title 2017-06-05 12:36:30 -06:00
JosJuice 69f01bac39 Reimplement support for unencrypted Wii discs
You may want to read the PR #2047 comments before reading this.

Dolphin attempts to support an unencrypted type of Wii discs
that apparently is identified by a 4-byte integer at 0x60
being non-zero. I don't know what discs (if any) would be
using that format, so I haven't been able to test Dolphin's
support for it, but it has probably been broken for a while.

The old implementation is very short but also strange.
In CreateVolumeFromFilename, we read a 4-byte integer from
0x60, and if it's non-zero, we create a CVolumeGC object
instead of a CVolumeWiiCrypted object. This might seem like
it makes no sense, but it presumably worked in the past
because IsVolumeWiiDisc used to check the volume type by
reading the magic word for Wii straight from the disc,
meaning that CVolumeGC objects representing unencrypted Wii
discs would be treated as Wii discs by pretty much all of
Dolphin's code except for the volume implementation code.
(It wasn't possible to simply use CVolumeWiiCrypted, because
that class only handled encrypted discs, like the name says.)

However, that stopped working as intended because of ace0607.
And furthermore, bb93336 made it even more broken by making
parts of Dolphin expect that data read from Wii discs needed
to be decrypted (rather than the volume implementation
implicitly deciding whether to decrypt when Read was called).
Disclaimer: Like I said before, I haven't been able to test
any of this because I don't have any discs that use this
unencrypted Wii disc format, so this is all theoretical.

Later, PR #2047 tried to remove Dolphin's support for
the unencrypted Wii disc format because seemingly no
discs used it, but the PR got closed without being merged.
At the end of that PR, I said that I would make a new PR
with a better implementation for the format after PR #2353
was merged. Now that PR #2353 is merged (two years later...)
and PR #5521 is merged, the new implementation was easy to
make, and here it is!

Untested.
2017-06-05 14:54:37 +02:00
JosJuice c3fa0d6edf DiscIO: Use std::optional in Volume and Blob 2017-06-05 13:26:51 +02:00
Leo Lam e23cfc2965 Merge pull request #5543 from leoetlino/manual-reformat
Fix minor formatting issues
2017-06-05 12:14:22 +02:00
JosJuice 886cb26827 Merge pull request #5523 from dolphin-emu/revert-5448-master
Revert "GeckoCode: install code handler even if no codes are activated"
2017-06-05 09:02:30 +02:00
Léo Lam d9fd056803 Fix minor formatting issues
These were not caught by the lint script while it was broken.
2017-06-05 02:32:19 +02:00
Starsam80 e1ea6805a7
Qt: Remove booting from the last path 2017-06-04 14:43:41 -06:00
Sepalani ba5cb50afc HLE: Improve HLE_GeneralDebugPrint detection 2017-06-04 20:53:14 +01:00
Léo Lam 2e06756f2d Fix SetRunningGameMetadata not being called for GC titles
GC titles don't have a title ID, so this regression would cause
SetRunningGameMetadata to never be called for GC titles.
2017-06-04 18:27:52 +02:00
Leo Lam 4e584ec039 Merge pull request #5534 from JosJuice/dont-bind-no-filesystem
DolphinWX: Don't bind context menu when GC filesystem is invalid
2017-06-04 15:02:32 +02:00
Leo Lam 145483d9a2 Merge pull request #5529 from leoetlino/bios-ipl
WX: Replace 'BIOS' with 'IPL' and 'Main Menu' in user-facing strings
2017-06-04 15:01:49 +02:00
JosJuice d664c454a4 DolphinWX: Don't bind context menu when GC filesystem is invalid
If this isn't done, it's possible to select Extract All Files
and make Dolphin dereference a nullptr m_filesystem.
2017-06-04 14:30:40 +02:00
JosJuice 2ce9281f77 Don't show FST size in game properties
Normal users don't care about it. In fact, people care so
little about it that the Wii implementation of it was broken
starting from when it was implemented (eb65601) to 7 years
later (e0a47c1), apparently without anyone reporting it.
2017-06-04 14:20:20 +02:00
Léo Lam 3daf7c3f8e WX: Change GC IPL to GC "Main Menu"
That is the official term used by Nintendo.
2017-06-04 13:20:37 +02:00
Leo Lam 6065525887 Merge pull request #5521 from JosJuice/check-has-partitions
Check for existance of partitions instead of disc type when appropriate
2017-06-04 10:46:59 +02:00
Leo Lam d90d3d7f3c Merge pull request #5519 from JosJuice/titledatabase-japanese
TitleDatabase: Allow showing Japanese names for Japanese GC games
2017-06-04 10:31:45 +02:00
Léo Lam 94bb55cef0 WX: Replace 'BIOS' with 'IPL'
It's not really a BIOS.
2017-06-04 10:20:16 +02:00
Leo Lam a33d48dd0d Merge pull request #5526 from ligfx/fixqtc++17
CMake: make Qt work when using a manual "-std=c++##" flag
2017-06-04 10:10:54 +02:00
JosJuice 703858e217 Merge pull request #5522 from leoetlino/simpler-gettitleid
DiscIO: Use std::optional for GetTitleID instead of pointer
2017-06-04 08:57:36 +02:00
shuffle2 a2bd95a08e Merge pull request #5432 from sepalani/fd-table
IOS/Network: Emulate socket fd table
2017-06-03 21:58:41 -07:00
Sepalani 140969000e IOS/Network: Fix some error return values 2017-06-04 05:48:41 +01:00
Sepalani 3b217adc5e IOS/Network: Use Wii's fd in logs rather than host's fd 2017-06-04 05:48:40 +01:00
Sepalani 55a59421d9 IOS/Network: Handle SO_ENETRESET 2017-06-04 05:48:38 +01:00
Sepalani 3b48e613e5 IOS/Network: Handle SO_ENOMEM 2017-06-04 05:48:36 +01:00
Sepalani a3c4070d91 IOS/Network: Handle SO_EPROTOTYPE 2017-06-04 05:48:31 +01:00
Sepalani b327fd8b2c IOS/Network: Handle SO_EMFILE 2017-06-04 05:47:56 +01:00
Sepalani ef20e85661 IOS/Network: Handle SO_EPROTONOSUPPORT 2017-06-04 05:47:48 +01:00
Sepalani 1c18dc48c7 IOS/Network: Handle SO_EAFNOSUPPORT 2017-06-04 05:44:48 +01:00
Sepalani 5a9e61997c IOS/Network: Emulate socket fd table 2017-06-04 04:26:25 +01:00
Shawn Hoffman 43dbb635d5 msbuild: remove more meaningless stuff 2017-06-03 18:20:41 -07:00
Shawn Hoffman 09367c8c10 msbuild: remove more duplicate code 2017-06-03 18:20:41 -07:00
Shawn Hoffman 7431dd3dce msbuild: make Externals inclusion methods uniform 2017-06-03 18:20:41 -07:00
Shawn Hoffman a6c102ba5c msbuild: remove extra zlib include from UICommon 2017-06-03 18:20:41 -07:00
Shawn Hoffman a3caa14ade remove duplicate code in msbuild files 2017-06-03 18:20:40 -07:00
Shawn Hoffman 397720a9fe might as well update yet some more pointless version numbers.. 2017-06-03 18:20:40 -07:00
Shawn Hoffman c251311b02 DolphinQt: remove I_AM_BUILDACUS as the buildbot doesn't use it anymore 2017-06-03 18:20:40 -07:00
Shawn Hoffman ddae5058e9 msbuild: increment other version numbers to vs2017 equivalents 2017-06-03 18:20:39 -07:00
Shawn Hoffman b116e05abe [windows] Do not copy cpack_package_description.txt to output dir 2017-06-03 18:20:39 -07:00
Tilka 78c0e8c809 Merge pull request #5513 from leoetlino/dns-timeout
Analytics: Don't crash when a DNS resolve times out
2017-06-04 01:21:44 +01:00
Michael Maltese c520a53b07 CMake: make Qt work when using a manual "-std=c++##" flag
Based on approach in https://gitlab.kitware.com/cmake/cmake/issues/16468
2017-06-03 17:02:54 -07:00
Michael Maltese 14c3d4716f AudioStretcher: split StretchAudio into ProcessSamples / GetStretchedSamples 2017-06-03 16:54:00 -07:00
Michael Maltese 87a467fe42 AudioCommon: extract AudioStretcher class for time-stretching 2017-06-03 16:54:00 -07:00
Michael Maltese a4508e85e8 AudioCommon: move DPL2 decoding into Mixer 2017-06-03 16:53:59 -07:00
Lioncash 5862d1fc41 Device: Provide operator!= counterparts to operator== for DeviceQualifier
Makes comparison logic symmetric
2017-06-03 19:34:35 -04:00
Michael Maltese e3531d17d7 Update free DSP ROM and coefficients to support GBA ucode
- coef: Explicitly set 23 different values that are used by GBA UCode,
  and tweaked overall parameters to more closely match those 23 values.
- irom: Moved a few functions to their proper places, updated BootUCode
  to configure DMA transfers using AX registers as well as IX registers
  (the GBA UCode uses this to do two sequential transfers in one call),
  and added partial functions used by GBA UCode.

All functions were reverse-engineered solely based off of observed
effects on the virtual machine: register states before-and-after, dmem
interactions, and DMA transfers. The specific coefficients were observed
being read from dmem, and must be exactly those values to function
properly. I have no knowledge of how the official ROM implements these
functions, or how it is implemented overall.

Tested with The Legend of Zelda: Four Swords Adventures, Final Fantasy
Crystal Chronicles, and Billy Hatcher and the Giant Egg (to download
ChuChu Rocket!).
2017-06-03 15:16:39 -07:00
Michael Maltese 2267ddeb17 DSPAssembler: fix handling of P_REG1C
`P_REG1C` had the same value as `P_ACCL`, so was causing spurious errors
when used with ACCM registers. Gcdsptool (which calls this `P_ACCLM`)
gives it the value `P_REG | 0x1c10` instead, and handles errors in the
same block as other REG## enums.
2017-06-03 15:16:39 -07:00
Leo Lam dda42c3c92 Revert "GeckoCode: install code handler even if no codes are activated" 2017-06-03 22:52:42 +02:00
Sepalani ac51c80ad0 HLE: Log (v)fprintf messages 2017-06-03 21:05:14 +01:00
Sepalani 2989c0cb61 HLE: Log (v)dprintf messages 2017-06-03 21:05:13 +01:00
Sepalani 9f6d6e6921 HLE: HLE_GeneralDebugVPrint added 2017-06-03 21:03:44 +01:00
Sepalani 061dadbc61 HLE: SVR4 VAList struct added 2017-06-03 21:01:59 +01:00
Sepalani 5a4f085c10 HLE: VAList cleanup and SystemVABI namespace 2017-06-03 21:01:59 +01:00
Sepalani e9dd0072de HLE: Variable Argument Lists support 2017-06-03 21:01:58 +01:00
Leo Lam 4b53093acb Merge pull request #5520 from sepalani/write-console
HLE: Fix __write_console implementation
2017-06-03 22:00:23 +02:00
Léo Lam 1a17c02d6f DiscIO: Use std::optional for GetTitleID instead of pointer
This makes the interface slightly cleaner and a bit more consistent
with the other getters. Still not fully the same, since the others
don't really handle failures with std::optional; but at least the
value is returned by value now, as opposed to having the function
take a pointer to a u64.
2017-06-03 21:56:33 +02:00
Leo Lam 227bc3816f Merge pull request #5517 from leoetlino/more-reliable-shutdown
More reliable shutdown
2017-06-03 21:33:43 +02:00
Leo Lam bcc85f9f4d Merge pull request #5516 from leoetlino/drop-last-filename
Drop m_LastFilename
2017-06-03 21:32:04 +02:00
Sepalani 9b2cc62393 CodeView: Assemble menu item added 2017-06-03 20:21:25 +01:00
JosJuice ce012ee3f4 FilesystemPanel: Remove strange disc type check
I don't know what the point of this was.
(Workaround for some old bug that we don't have anymore?)
2017-06-03 21:19:11 +02:00
JosJuice 24192671f9 DVDInterface: Remove useless disc type check 2017-06-03 21:19:11 +02:00
JosJuice 6661492989 Check for existance of partitions instead of disc type when appropriate
This gets rid of some assumptions that non-DiscIO code was making about
volume types. It's better to encapsulate as many of the volume type
differences as possible in DiscIO.

Made possible by PR #2353.
2017-06-03 21:19:11 +02:00
Leo Lam fbad958f03 Merge pull request #5518 from JosJuice/replace-weird-brace-thingy
Replace {{}} with {}
2017-06-03 21:16:36 +02:00
Sepalani 2afa546551 HLE: Fix __write_console implementation 2017-06-03 20:06:31 +01:00
JosJuice f71fcd38bd TitleDatabase: Check game ID length before reading characters 2017-06-03 20:46:57 +02:00
JosJuice 4493b1324b TitleDatabase: Allow showing Japanese names for Japanese GC games 2017-06-03 20:46:30 +02:00
MerryMage b6a99e1b9c IsSettingSaveable: Allow GFX settings to be saved 2017-06-03 18:13:04 +01:00
MerryMage f5f45855f0 GameConfigLoader: Add GFX Game INI translations 2017-06-03 18:13:02 +01:00
MerryMage d75b536fd7 Config: Add GFX ConfigInfo 2017-06-03 18:11:58 +01:00
MerryMage 332747857e GameConfigLoader: Empty INI to location map 2017-06-03 18:11:57 +01:00
MerryMage 1e766ab490 Config: Add layers CommandLine and CurrentRun 2017-06-03 18:11:57 +01:00
MerryMage 41afe78a44 Config: Integrate 2017-06-03 18:11:57 +01:00
MerryMage 1548a15c68 Config: Implement Get and Set 2017-06-03 18:11:56 +01:00
MerryMage 6151bc1714 Config: Extract layer search order to header 2017-06-03 18:11:56 +01:00
MerryMage 57264022ce ConfigLoaders: Temporarily not save all settings 2017-06-03 18:11:56 +01:00
MerryMage b3197d8dce Config: Extract ConfigLocation 2017-06-03 18:11:56 +01:00
MerryMage 827972b810 Config: Extract ConfigLocation 2017-06-03 18:11:55 +01:00
Léo Lam 546181c457 WX: Clear m_is_game_loading at the proper moment
This should happen after the core has stopped (OnStopped), not when
the user wants to stop (DoStop).
2017-06-03 19:05:35 +02:00
Léo Lam 52f00603e2 Core: Use RAII for EmuThread shutdown
This is more reliable, as this guarantees subsystems will be
shut down in the same order they were initialised (if they were
initialised). It also allows us to stop keeping track of what needs to
be shut down manually and just return in case of errors.

This should prevent the emulator from getting totally stuck when
the boot process does fail.
2017-06-03 19:05:35 +02:00
Leo Lam 5d6074f157 Merge pull request #5366 from sepalani/set-sym-size
CodeView: Set Symbol Size/End Address added
2017-06-03 19:00:45 +02:00
Leo Lam 6d38f153d6 Merge pull request #5515 from leoetlino/import-ticket
IOS/ES: Move ImportTicket write function
2017-06-03 18:40:52 +02:00
JosJuice 1c926dcae2 Replace {{}} with {}
IIRC we were only using {{}} because {} used to cause errors
on the FreeBSD buildbot.
2017-06-03 18:14:22 +02:00
Léo Lam 6e02af1b34 Core: Remove unneeded config save
We don't touch the user config during booting, so there is nothing to
manually save.
2017-06-03 18:08:50 +02:00
Léo Lam 677640ac52 Drop m_LastFilename
This makes it hard to support different boot params for different boot
types. We should not be making the assumption that Dolphin will
always be booting directly from a file (and in particular, only
using a string).

It's incompatible with future changes that will allow Dolphin to boot
a NAND title properly from well, the NAND, as opposed to booting from
WADs. (And no, treating the title TMD as a "bootable" path doesn't
count. Especially when that approach won't work with NAND images
or IOS LLE.)

And it's confusing to expose this functionality from the UI. It's
pretty bad for UX to change the play button's behaviour depending on
whether the user has launched something before, configured a default
file to boot, added a directory to their game paths.
2017-06-03 18:01:25 +02:00
Léo Lam 9d52ab5144 IOS/ES: Move ImportTicket write function
This commit moves the write function to where it should be (IOS),
especially when ES::ImportTicket() is the only place to use it.

Prevents misusing the ticket import function, and removes one unsafe
direct write to the NAND that does not go through IOS.

This also fixes the destination path: the session root is the one which
should be used for determining the ticket path, not the configured one.
2017-06-03 17:43:16 +02:00
JosJuice 1e5c83b3a9 Use std::optional for UpdateRunningGameMetadata 2017-06-03 14:41:09 +02:00
Léo Lam 74f636dfc4 Analytics: Don't crash when a DNS resolve times out 2017-06-03 14:09:14 +02:00
Leo Lam 4af514bb3c Merge pull request #5388 from leoetlino/optional
Add a std::optional and std::variant implementation
2017-06-03 13:21:20 +02:00
Leo Lam ccccb8463d Merge pull request #5503 from ligfx/qtelidedbutton
DolphinQt2: add ElidedButton for controller mapping buttons
2017-06-03 12:47:18 +02:00
Leo Lam 1a983bd357 Merge pull request #5500 from ligfx/qtfixsorting
Qt: fixes to GameList sorting
2017-06-03 12:46:17 +02:00
Léo Lam e38a66fe1b Common: Add a std::variant implementation
Based on https://github.com/mpark/variant (which is based on libc++).
2017-06-03 12:36:24 +02:00
Léo Lam 62d08e2d17 DiscIO: Fix the wrong NAND root being used
The whole NANDContentLoader stuff is truly awful and will be removed
as soon as possible.

For now, this fixes a bug that was exposed by std::optional::operator*.
2017-06-03 12:36:24 +02:00
Léo Lam 545006f666 Use std::optional for ESFormats/SharedContentMap 2017-06-03 12:36:24 +02:00
Léo Lam b08653d69d Common: Add a std::optional implementation
std::optional makes a few things a bit neater and less error prone.
However, we still cannot use C++17 (unfortunately), so this commit
adds an implementation of std::optional that we can use right now.

Based on https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/lib/gtl/optional.h
which seems to be fairly similar to C++17's <optional> and standards
compliant. It's one of the few implementations that handle propagating
type traits like copy constructibility, just like libc++/libstdc++.
2017-06-03 12:36:24 +02:00
shuffle2 3443454ba2 Merge pull request #5271 from JosJuice/allow-aslr
Allow (but don't force) ASLR
2017-06-02 21:53:02 -07:00
shuffle2 0b63fcc78f Merge pull request #5505 from spycrab/wx_stars
Wx: Implement new, themed stars
2017-06-02 18:44:48 -07:00
spycrab 1d8ba6f865 Wx: Implement new, themed stars 2017-06-02 22:38:56 +02:00
Leo Lam 93020f6c1b Merge pull request #5509 from ligfx/qtshutdowncontrollers
MainWindow: shutdown different input interfaces
2017-06-02 22:08:53 +02:00
Sepalani 5e4986d835 IP/Top: Properly fix GetAddrInfo 2017-06-01 17:05:12 +01:00
Sepalani 726d8de16c IP/Top: Fix GetAddrInfo written socket 2017-06-01 15:17:59 +01:00
Michael Maltese 040bddafa6 MainWindow: shutdown different input interfaces
`MainWindow` initializes a number of input interfaces but never shuts
them down. This was causing a crash-after-exit on macOS where the
ControllerInterface backend stores a `std::thread` object in a static
variable and only stops it when ControllerInterface::Shutdown is called.
2017-05-31 21:14:55 -07:00
Michael Maltese 8bbe4a0743 DolphinQt2: allow resizing RenderWidget/fix fullscreen 2017-05-31 21:14:41 -07:00
Michael Maltese 87a74ca3ae MappingButton: remove unused includes 2017-05-31 01:17:33 -07:00
Michael Maltese 046c6f468f MappingButton: derive from ElidedButton 2017-05-31 01:17:33 -07:00
Michael Maltese b378ffb4ec MappingButton: don't set text twice in constructor 2017-05-31 01:17:33 -07:00
Michael Maltese 07c90bed08 DolphinQt2: add QtUtils/ElidedButton 2017-05-31 01:17:33 -07:00
spycrab 118e90ec6e Qt: Use new, themed rating stars 2017-05-31 05:50:37 +02:00
Anthony 25f24d32ff Merge pull request #5463 from spycrab/qt_hidpi
Qt: Fix HiDPI icon scaling
2017-05-30 14:57:05 -07:00
spycrab 1737e81b16 Qt: Fix HiDPI icon scaling 2017-05-30 22:42:21 +02:00
iwubcode 1b685bcde9 Fix for loop in D3D Renderer ApplyState function 2017-05-29 23:32:32 -05:00
Michael Maltese 1a7210aa74 GameListModel: provide Qt::InitialSortOrderRole for sorting
Fixes regression where pixmap columns can't be sorted by default.
2017-05-29 17:32:40 -07:00
Michael Maltese 8bbc31e0a2 GameList: sort case-insensitively 2017-05-29 17:32:40 -07:00
Michael Maltese 051cbf1962 GameListModel: invert role-column choice tree 2017-05-29 17:32:40 -07:00
Michael Maltese 0cc88342d6 DolphinQt2: add indentation back to ControllerWindow 2017-05-29 17:29:04 -07:00
Michael Maltese cb235cf142 DolphinQt2: use GridLayout for ControllersWindow
FormLayout is not intended for this sort of dialog:

> QFormLayout is a convenience layout class that lays out its children
> in a two-column form. The left column consists of labels and the right
> column consists of "field" widgets (line editors, spin boxes, etc.).
2017-05-29 17:29:03 -07:00
Leo Lam 1afb0a134d Merge pull request #5497 from sepalani/getaddrinfo
IP/Top: Use a constant for addrinfo size
2017-05-29 22:39:33 +02:00
Leo Lam c76335eaf1 Merge pull request #5484 from BhaaLseN/permissive
Windows: Enable MSVC Standards Conformance (/permissive-)
2017-05-29 22:29:44 +02:00
Sepalani e90404a4f6 IP/Top: Use a constant for addrinfo size 2017-05-29 21:00:22 +01:00
Leo Lam 5d7f4cb9c8 Merge pull request #5496 from spycrab/qt_fixtheme
Qt: Fix GetThemeDir()
2017-05-29 18:33:56 +02:00
spycrab 845cc68bba Qt: Fix HiDPI icon scaling 2017-05-29 13:52:01 +02:00
shuffle2 c8f9900d26 Merge pull request #5495 from Tilka/gamelist
WX: improve game list reload speed
2017-05-28 22:03:38 -07:00
Lioncash d6b6b070bc D3D/Render: Get rid of undefined behavior in Create3DVisionTexture
pSysMem is of the type const void* -- because of this, it makes the
original delete[] call undefined behavior, as deleting a void pointer is
undefined behavior.

Also punning types into existence, like what was done for the stereo
image header is undefined behavior as well. The proper way to do this is
to either manually add all individual bytes manually, or memcpy the
struct into memory.

As we want to deallocate the memory before returning, and because
pSysMem is a const void*, we keep a unique_ptr to the data and just pass
pSysMem a raw pointer to the data.
2017-05-28 23:28:00 -04:00
Lioncash 278e406f0b D3D/Render: Use std::array where applicable 2017-05-28 23:28:00 -04:00
Lioncash 0c3958bbe5 D3D/Render: Join variable with declaration 2017-05-28 23:27:59 -04:00
Lioncash 3ee447e5f7 D3D/Render: Get rid of unnecessary casts 2017-05-28 23:27:59 -04:00
Lioncash ba5b215c42 D3D/Render: Mark translation unit local variables as static 2017-05-28 23:27:59 -04:00
Tillmann Karras 5c08b1d704 WX: improve game list reload speed
When loading a big game list, this eliminates the long delay after the
progress dialog disappears.
2017-05-28 23:02:03 +01:00
Tillmann Karras 599774aacc Qt2: remove unused variables 2017-05-28 23:01:41 +01:00
Leo Lam 4d0f458f2f Merge pull request #5494 from leoetlino/file-selector
WX: Minor file selector fixes
2017-05-28 20:24:17 +02:00