Commit graph

18397 commits

Author SHA1 Message Date
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
Leo Lam
4d0f458f2f Merge pull request #5494 from leoetlino/file-selector
WX: Minor file selector fixes
2017-05-28 20:24:17 +02:00
Léo Lam
d5e397aa14 WX: Add dff to the file selector filter description 2017-05-28 19:08:24 +02:00
Léo Lam
473f90c08f WX: Remove .tmd from the file selector filter
No idea why it was in the whitelist.
2017-05-28 19:07:12 +02:00
BhaaL
072c161445 upgrade to Windows SDK 10.0.15063.0
this is required for /permissive- to work, because some headers in the
Windows SDK use Microsoft extensions that are not allowed in standards mode
2017-05-28 13:37:31 +02:00
Lioncash
3e7af2a2cd CubebStream: Add missing <vector> include 2017-05-27 23:50:39 -04:00
Michael Maltese
d416cbd9ed Add CubebUtils namespace and hook up cubeb logging 2017-05-27 18:28:57 -07:00
Michael Maltese
34ad1eb547 Externals: remove PortAudio 2017-05-27 18:28:57 -07:00
Michael Maltese
48d6168c99 EXI_DeviceMic: use Cubeb instead of PortAudio 2017-05-27 18:28:56 -07:00
Michael Maltese
f6e1da0dc0 AudioCommon: add Cubeb backend 2017-05-27 18:28:56 -07:00
Michael Maltese
17f4413143 Externals/cubeb: add Visual Studio build files 2017-05-27 18:28:56 -07:00
Mat M
7192226971 Merge pull request #5474 from sepalani/bl-fix
CodeView: Fix missing bl details
2017-05-27 17:40:18 -04:00
Mat M
7b70fce79b Merge pull request #5476 from ligfx/ffmpegbuildcleanup
CMake/MSVC: cleanups around FFMpeg
2017-05-27 17:36:55 -04:00
JosJuice
491b9d2a75 Merge pull request #5491 from ligfx/qtcontrollerremoveicons
DolphinQt2: replace icons in controllers dialog with labels
2017-05-27 10:33:36 +02:00
Leo Lam
6a7c3fcac1 Merge pull request #5487 from ligfx/removetabledelegate
DolphinQt2: don't use custom delegate for GameList
2017-05-27 10:23:40 +02:00
Michael Maltese
c004b59100 DolphinQt2: replace icons with labels in controllers dialog
Icons without labels are bad for usability, so bring this back in line
with how DolphinWX does it.

Some reading:

- https://www.nngroup.com/articles/icon-usability/
  > Summary: A user’s understanding of an icon is based on previous
  > experience. Due to the absence of a standard usage for most icons,
  > text labels are necessary to communicate the meaning and reduce
  > ambiguity.
- http://uxmyths.com/post/715009009/myth-icons-enhance-usability
- http://edwardsanchez.me/blog/13589712
- https://uxdesign.cc/do-icons-need-labels-6cb4f4282c00
2017-05-26 20:09:51 -07:00
Michael Maltese
a936afed9d DolphinQt2: hide GameList vertical header (the one on the left) 2017-05-26 17:43:57 -07:00
Michael Maltese
4e14a6bc96 DolphinQt2: reorder list columns to match DolphinWX 2017-05-26 17:41:35 -07:00
Michael Maltese
c01c66ad4b DolphinQt2: remove unused GameList::TableDelegate 2017-05-26 17:40:51 -07:00
Michael Maltese
e76f5d85b2 DolphinQt2: don't use custom delegate for GameList 2017-05-26 17:40:51 -07:00
JosJuice
aa33fabded Merge pull request #5483 from leoetlino/max-tmd-size
Check TMD sizes using the actual constant
2017-05-26 23:10:31 +02:00
Leo Lam
260fd5e0f8 Merge pull request #5482 from ligfx/cmakeremoved3d12
CMake: remove references to D3D12
2017-05-26 11:30:47 +02:00
Léo Lam
b5a2f34a37 Check TMD sizes using the actual constant
0x49e4 is the actual maximum TMD size (which is checked against in ES).
IsValidTMDSize is added to ESFormats to avoid duplicating the constant.
2017-05-26 11:27:43 +02:00
Leo Lam
f4190ab1c4 Merge pull request #5465 from sepalani/gc-bios
Tools: Load GameCube BIOS added
2017-05-26 10:23:03 +02:00
Leo Lam
933767f1bd Merge pull request #5475 from sepalani/map-vaddr
PPCSymbolDB: Fix LoadMap corrupting virtual addresses
2017-05-26 10:21:38 +02:00
Michael Maltese
e041602416 CMake: remove references to D3D12
It's gone!
2017-05-26 01:16:04 -07:00
Michael Maltese
3ca03373ae MSVC: define HAVE_FFMPEG 2017-05-26 00:53:58 -07:00
Michael Maltese
53acd25de4 Rename define HAVE_LIBAV->HAVE_FFMPEG 2017-05-26 00:53:58 -07:00
Michael Maltese
d951d2e4c4 CMake: libav/ffmpeg cleanups
Use @Orphis's FindFFmpeg module from ppsspp:
2149d3db7f

From that commit:

> This new module should be able to handle both libraries in the regular
> paths and fallback to pkg-config.
> It is also able to find dynamic libraries, not just static libraries.
> It will generate imported targets with the name FFmpeg::<lib> that you
> can use in your scripts.
2017-05-26 00:53:58 -07:00
Pierre Bourdon
d592bdd4d4 Migrate to Visual Studio 2017.
Auto-generated by the IDE, I'll trust it knows what it's doing.
2017-05-25 15:58:59 -07:00
Sepalani
2d75a99426 ConfigManager: GetBootROMPath added 2017-05-25 13:11:12 +01:00
Leo Lam
0f020857c5 Merge pull request #5448 from XeR/master
GeckoCode: install code handler even if no codes are activated
2017-05-25 11:16:16 +02:00
Sepalani
82695ccd99 PPCSymbolDB: Fix LoadMap corrupting virtual addresses 2017-05-24 21:08:15 +01:00
Sepalani
c1afdc6f47 CodeView: Fix missing bl details 2017-05-24 20:34:23 +01:00
Léo Lam
57ce091ef5 IOS/ES: Implement ES_DeleteStreamKey (0x3d) 2017-05-24 18:16:35 +02:00
Léo Lam
90d590d1f3 IOS/ES: Implement ES_DeleteContent (0x3e) 2017-05-24 18:16:35 +02:00
Léo Lam
ced049c5e8 IOS/ES: Prevent usage of ES_DiVerifyWithView for the PPC
ES_DiVerifyWithView (0x3b) is another private ioctlv that can only be
used from DI. Calling it from anywhere else returns -1017.
2017-05-24 18:16:34 +02:00
Leo Lam
98b6446249 Merge pull request #5459 from sepalani/code
PPCSymbolDB: Split SaveMap function
2017-05-24 13:59:28 +02:00
JosJuice
0408c99884 Merge pull request #5472 from leoetlino/formatting
Qt: Fix code formatting
2017-05-24 13:55:14 +02:00
Leo Lam
0d7faf8b61 Merge pull request #5471 from spycrab/qt_crash_gamestart
Qt: Fix games crashing on start
2017-05-24 13:52:00 +02:00
Léo Lam
b6db4f22b5 Qt: Fix code formatting 2017-05-24 13:09:05 +02:00
spycrab
d65006b91b Qt: Fix games crashing on start 2017-05-23 22:12:01 +02:00
Anthony
289005f702 Merge pull request #5379 from Ryanel/qt-settings-cpu
Qt: Copy General Tab from WX
2017-05-23 07:08:21 -07:00
Markus Wick
6a599e2796 Merge pull request #5428 from ligfx/makedspdumpconsistent
Make DSP code dumping consistent between DSP-LLE and DSP-HLE
2017-05-23 14:48:10 +02:00
Markus Wick
e2d4fe6881 Merge pull request #5421 from JosJuice/load-bs2-setupbat
Use SetupBAT in Load_BS2
2017-05-23 14:40:11 +02:00
Markus Wick
4870e4119b Merge pull request #5435 from sepalani/add-function
PPCSymbolDB: Remove biased address check
2017-05-23 14:39:36 +02:00
Markus Wick
e3980d4c22 Merge pull request #5450 from ligfx/dspassemblefreerom
Small cleanups of DSPAssembler and the free DSP ROM code
2017-05-23 14:36:16 +02:00
Markus Wick
3a2ec8c8a1 Merge pull request #5440 from ligfx/axhledelayinterrupt
AX-HLE: delay sending interrupt when done processing command list
2017-05-23 14:29:45 +02:00
Corwin McKnight
07dc2e17f3 Qt: Update General, Interface pane 2017-05-23 00:19:02 -07:00
Mat M
3f437337a1 Merge pull request #5466 from lioncash/db
SignatureDB: Minor cleanup
2017-05-22 21:25:36 -04:00
Mat M
4bfd464b0c Merge pull request #5468 from leoetlino/headers
Fix some header includes
2017-05-22 21:22:04 -04:00
Sepalani
95ea721f06 Tools: Load GameCube BIOS added 2017-05-22 22:44:21 +01:00
Léo Lam
cf0c4455cd Fix indirect includes 2017-05-22 10:39:36 +02:00
Leo Lam
f994538875 Merge pull request #5455 from leoetlino/es-get-ticket-from-view
IOS/ES: Implement ES_GetTicketFromView ioctlvs
2017-05-22 10:11:25 +02:00
Léo Lam
531378e8e6 IOSC: Fix header includes 2017-05-22 02:07:14 +02:00
Léo Lam
7bdf3d7ea7 ESFormats: Fix header includes 2017-05-22 02:06:49 +02:00
Léo Lam
6bc4cc984f TitleDatabase: Fix header includes
Remove unneeded includes, and add missing includes.
2017-05-22 02:02:04 +02:00
Lioncash
73b72c6a62 TitleDatabase: Remove unused <iostream> header
Many implementations of <iostream> inject a static constructor into the
translation unit, it's included in, even if nothing from the header is used.
2017-05-21 17:51:47 -04:00
Lioncash
c3bab0b0e7 SignatureDB: Remove unnecessary header 2017-05-21 17:39:44 -04:00
Lioncash
bbe1e643fb SignatureDB: in-class initialize DBFunc members 2017-05-21 17:39:42 -04:00
Lioncash
d0089191e1 SignatureDB: default the format handler destructor 2017-05-21 17:39:41 -04:00
Lioncash
5301efddd0 SignatureDB: Remove unnecessary qualifiers and virtual keywords 2017-05-21 17:39:40 -04:00
Lioncash
3c94962332 SignatureDB: Move two functions into the cpp file
These are implementation details.
2017-05-21 17:39:34 -04:00
Anthony
e328b13ae2 Merge pull request #5462 from spycrab/qt_refresh_devices
Qt: Fix default device handling
2017-05-21 13:29:11 -07:00
Anthony
1072da11fe Merge pull request #5460 from spycrab/qt_fix_rounding_errors
Qt: Fix rounding errors
2017-05-21 13:28:42 -07:00
Léo Lam
964f546e69 UI: Expose the "show active title" setting 2017-05-21 18:58:32 +02:00
Léo Lam
cfc0cc1453 Add an option to show the active title in the title
This can be useful for figuring out at a glance what title is running,
along with its game ID / title ID.
2017-05-21 18:58:32 +02:00
Léo Lam
2f5f9be9ac WX: Use TitleDatabase for getting title names 2017-05-21 18:57:55 +02:00
Léo Lam
4a55d757dd Add a TitleDatabase
Add a TitleDatabase to allow easily querying a title database to get
a user-friendly string for a game ID.
2017-05-21 18:57:55 +02:00
Léo Lam
ef5ecedded Analytics: Report game start on title change
Otherwise, we may be missing some reports.
2017-05-21 18:53:07 +02:00
spycrab
6370f094ba Qt: Fix default device handling 2017-05-21 14:47:35 +02:00
Silvan Jegen
d8db6a7139 NANDImporter: fix printf warning
gcc complains that the printf %x formatting instruction expects an
'unsigned int' but we pass a 'size_t'.  We add the 'z' length formatting
specifier used for 'size_t'
2017-05-21 13:06:40 +02:00
Léo Lam
48d02f91a8 IOS/ES: Mark ioctlv 0x3f as invalid
It's not used in IOS. Looks like they just decided to skip 0x3f.
2017-05-21 12:28:30 +02:00
Léo Lam
e92308fe7e IOS/ES: Implement ES_GetTicketFromView ioctlvs
This implements ioctlvs 0x40, 0x43, 0x44.
2017-05-21 12:28:30 +02:00
Leo Lam
7af05fd9e6 Merge pull request #5454 from leoetlino/es-delete-shared-content
IOS/ES: Implement ES_DeleteSharedContent
2017-05-21 12:11:48 +02:00
spycrab
e8bfa2273c Qt: Fix rounding errors 2017-05-21 12:03:13 +02:00