Commit Graph

18372 Commits

Author SHA1 Message Date
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 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