Commit graph

17872 commits

Author SHA1 Message Date
spycrab
dd54f3c0c1 Qt: Fix Interface Pane 2017-05-12 20:56:00 +02:00
JosJuice
20f7a7a3e3 Boot: Read apploader trailer for Wii discs too
This was probably an oversight from back when the code
was duplicated between EmulatedBS2_GC and EmulatedBS2_Wii.
2017-05-12 18:49:00 +02:00
JosJuice
22c499aafe Boot: Deduplicate code by creating a RunApploader function 2017-05-12 18:00:17 +02:00
JosJuice
5e1fb1a596 Boot: Deduplicate code by creating a SetupBAT function 2017-05-12 17:53:15 +02:00
Corwin McKnight
e8a214ad14 Qt: Fix how Icons are assigned in Settings Window. 2017-05-11 13:14:47 -07:00
Corwin McKnight
a2d2acf741 Qt: Add General Pane to Settings
Replace SConfig references with Settings()
2017-05-11 12:40:14 -07:00
Anthony
33980d816a Merge pull request #5378 from Ryanel/qt-settings-interface
Qt: Add Interface Pane to Settings
2017-05-11 11:19:27 -07:00
Leo Lam
ade0e51a78 Merge pull request #5403 from leoetlino/formatting
Config: Fix a formatting issue
2017-05-10 20:33:59 +02:00
Anthony
eab243d6ee Merge pull request #5402 from spycrab/qt_gamelist_cfix
Qt: Fix that some columns are not hidden properly
2017-05-10 11:30:52 -07:00
Léo Lam
6185933d18 Config: Fix a formatting issue
Not sure why clang-format did not catch this on the lint builder, but
it definitely doesn't like the lines being too long here.
2017-05-10 17:56:09 +02:00
spycrab
4d4dc03801 Qt: Fix that some columns are not hidden properly 2017-05-10 11:04:21 +02:00
Leo Lam
f1f8beef25 Merge pull request #5397 from MerryMage/do-not-cast-derived-to-base
Config/Layer: Fix accidental cast of RecursiveSection to Section
2017-05-09 23:27:46 +02:00
Léo Lam
6b8cb2ee41 IOS/ES: Handle fake-signed tickets properly
Fake-signed tickets have a bogus common key index, in which case we
must assume and use the normal common key to decrypt contents.
2017-05-09 20:58:20 +02:00
spycrab
c8d0b647ac Qt: Add controller (overview) window 2017-05-09 18:49:10 +02:00
Anthony
f8ca0901a7 Merge pull request #5395 from spycrab/qt_gamelist_columns
Qt: Bring Gamelist up to Wx standards
2017-05-09 08:31:31 -07:00
Douglas
3e1cc46523 Fix for Emulator Issue #10267: Game list column sizes are being incorrectly calculated.
Default column width was being used for  math related to automatic column sizing, in the case of COLUMN_SIZE the default width was -1  which resulted in an issue where an errant scrollbar would appear.
2017-05-08 17:40:42 -07:00
MerryMage
32d9428171 Config/Layer: Fix accidental cast of RecursiveSection to Section 2017-05-09 00:17:00 +01:00
spycrab
6bf7b5ff0f Qt: Bring Gamelist up to Wx standards 2017-05-08 19:03:59 +02:00
Corwin McKnight
8112c736fe Qt: Interface Pane
Adds the interface pane to Qt Settings. Very basic, just some UI
customization options.
2017-05-07 12:57:13 -07:00
Leo Lam
9f39fa2e13 Merge pull request #5380 from JosJuice/minor-text-fixes
Minor text fixes
2017-05-07 21:04:30 +02:00
JosJuice
994b4040bf NetPlaySetupFrame: Remove spaces that shouldn't be present 2017-05-07 20:55:58 +02:00
JosJuice
b8721b6839 Unify memory breakpoint strings
The MemoryWindow.cpp strings should be the same as the
MemoryCheckDlg.cpp strings so that translators don't
have to translate very similar strings twice.

Also adding i18n comments. These strings are *very* easy
to misinterpret in my opinion.
2017-05-07 20:55:34 +02:00
Léo Lam
57f8520242 WX: Don't create data dir if it is missing
This is unsafe, because the NAND should not be accessed and messed with
while it is being used. In fact, this kind of inappropriate behaviour
will not be possible when we get NAND image support.

And even if there were no safety issue, there is still no reason
a *getter* function should *do* something that has lasting effects
on user data. GetWiiFSPath() should *just* return a path!
2017-05-07 18:56:54 +02:00
Léo Lam
eff8c1eb48 Merge pull request #5383 from JosJuice/getwiifspath-condition
ISOFile/GameFile: Correct GetWiiFSPath condition
2017-05-07 18:48:43 +02:00
Léo Lam
71400745cc Merge pull request #5356 from sepalani/hle-app
HLE: Use a proper apploader OSReport
2017-05-07 18:45:58 +02:00
Léo Lam
18b1ee59ed Merge pull request #5389 from leoetlino/delete-title
IOS/ES: Fix DeleteTitle to not use CNANDContentManager
2017-05-07 17:14:04 +02:00
Léo Lam
131aeec580 Boot_WiiWAD: Set the UID and GID on launch
This adds code to update the PPC's UID and GID, which fixes a
regression with the system menu. Ideally, we would simply rely on IOS's
ES_Launch here and not duplicate the logic here, but we cannot do that
properly until the direct WAD launch hack is dropped, *and* until the
IOS changes that would enable internal calls are ready.

Since this fixes a semi-important regression with managing saves from
the SM, and the duplication is not too terrible, I believe it is a good
idea to get this fixed right now to avoid affecting users too much.

I do plan to fix this properly in the future.
2017-05-07 17:02:36 +02:00
Léo Lam
3cdb8fd297 IOS/ES: Fix DeleteTitle to not use CNANDContentManager
* CNANDContentManager does things that are absolutely useless. In
  particular, it parses the ticket, the TMD, reads contents, etc.
  when we only need to remove the title directory.

* This means it will fail if the ticket cannot be found, when that
  should not be the case.

* This also obviously caused DeleteTitle to be incredibly inefficient.

* We are already removing the title directory later in the function,
  as CNANDContentManager does not even delete titles correctly.
  DeleteTitle != DeleteTitleContents.
2017-05-07 16:20:41 +02:00
Léo Lam
cc5b5c15ac IOS/ES: Fix a ticket validity check 2017-05-07 16:16:41 +02:00
Corwin McKnight
24657f557e Qt: Port help menu items. 2017-05-07 03:47:10 -07:00
JosJuice
9b8089bb70 ISOFile: Simplify error handling in GetWiiFSPath 2017-05-07 09:28:20 +02:00
JosJuice
55960f7feb ISOFile/GameFile: Correct GetWiiFSPath condition
This code was originally written when there only were three
possible types, but nowadays we also have the DOL/ELF type.
2017-05-07 09:27:20 +02:00
Sepalani
40c243df28 PPCAnalyst: Fix off by one instruction 2017-05-07 04:56:16 +01:00
Sepalani
93ba6aa9f2 PPCAnalyst: Function calls without link added 2017-05-07 04:55:36 +01:00
Sepalani
95d0a48759 PPCAnalyst: EvaluateBranchTarget improved 2017-05-07 04:55:36 +01:00
Mat M
ef4a1f0ec7 Merge pull request #5384 from leoetlino/disable
WX: Disable NAND import when emulation is running
2017-05-06 19:38:07 -04:00
Léo Lam
6426ea2b1a WX: Disable NAND import when emulation is running
Oversight from the NAND import PR. Allowing this while Wii
emulation is running is a recipe for failure.
2017-05-07 01:30:44 +02:00
JosJuice
71d105e545 DolphinWX: Use title ID from ISOFile when possible
This skips creating volume objects, which can take a while.
2017-05-06 18:39:51 +02:00
JosJuice
40653a6607 NandPaths: Make .h function order match .cpp 2017-05-06 17:51:50 +02:00
JosJuice
36b9e3dd35 Don't duplicate code for getting paths based on title IDs
I've seen the expression (u32)(title_id >> 32), (u32)title_id
a few more times in my life than I would've liked to...
2017-05-06 17:45:08 +02:00
Léo Lam
f4179f45b4 Merge pull request #5373 from leoetlino/delete-ticket
IOS/ES: Fix the implementation of ES_DeleteTicket
2017-05-06 13:59:11 +02:00
Léo Lam
a24ad85463 Merge pull request #5332 from spycrab/wiimote_casts
Clean up Wiimote* code (comments, casts, underscore variable names)
2017-05-06 13:27:04 +02:00
spycrab
c3f435287e Clean up Wiimote* code (comments, casts, variable names) 2017-05-06 12:44:56 +02:00
Markus Wick
b4aaf806ec Merge pull request #5372 from JonnyH/WIP/powervr-fixes
Add a workaround for a PowerVR glsl compiler bug
2017-05-05 12:17:25 +02:00
Michael Maltese
b14466b7e3 Zelda-HLE: set state to waiting when replacing ucode
Part 2/2 of a fix for using multiple GBAs in Four Swords Adventures.
2017-05-05 02:25:42 -07:00
Michael Maltese
01cc36693a Zelda-HLE: run pending commands when replacing ucode
Part 1/2 of a fix for using multiple GBAs in Four Swords Adventures.
2017-05-05 02:24:53 -07:00
Léo Lam
5fb2ad2b3a IOS/ES: Fix the implementation of ES_DeleteTicket
* It should take a ticket view, not a title ID.
* It's missing a lot of checks.
* It's not deleting tickets properly.
* It's not deleting only the ticket it needs to delete.
* It should not return -1017 when the ticket doesn't exist.
* It's not returning the proper error code when a read/write fails.
* It's not cleaning up the ticket directory if there is nothing left.

This commit fixes its implementation.
2017-05-05 00:32:58 +02:00
Léo Lam
a7680a3d1a IOS/ES: Drop code handling non-RSA2048 tickets
* Supporting other ticket types makes the logic slightly more complex.

* There have been no such non-RSA2048 tickets seen during the Wii's
  lifetime.

* The Wii's IOS doesn't even have support for them.
2017-05-05 00:32:57 +02:00
Léo Lam
e9571106c2 Merge pull request #5353 from spycrab/qt_contextmenu
Qt: Add missing gamelist contextmenu options
2017-05-04 23:47:21 +02:00
spycrab
2f523afc41 Qt: Add missing gamelist contextmenu options 2017-05-04 23:01:12 +02:00
Léo Lam
5088fac54b Merge pull request #5354 from leoetlino/iosc
IOS: Implement IOSC-like library (+ bug fixes)
2017-05-04 19:58:47 +02:00
Anthony
dc4f8dd70b Merge pull request #5345 from JosJuice/consistent-controller-translation
Use _trans consistently for controllers
2017-05-04 09:00:41 -07:00
Jonathan Hamilton
35caf48d7d Add a workaround for a PowerVR glsl compiler bug
It seems it doesn't like negating arguments for bitops, so suff like
"var <<= (-othervar);"
fails to compile
2017-05-03 19:33:56 -07:00
Mat M
f3052b7a15 Merge pull request #5318 from ligfx/cmakehidapi
CMake: clean up HIDAPI build
2017-05-03 19:54:06 -04:00
Tilka
2c817545fd Merge pull request #5368 from ligfx/bluezcmake
CMake: only look for Bluez on Linux
2017-05-04 00:32:44 +01:00
Michael Maltese
5230a8c996 CMake: only look for Bluez on Linux
Stops CMake from saying "BlueZ NOT found, disabling bluetooth support"
on other OSes. Windows, macOS, and Android support Bluetooth using other
libraries. I'm not sure if non-Linux, non-Android Unices (like FreeBSD)
need another message?
2017-05-03 15:15:47 -07:00
degasus
7389f0f55e Analytics: Set proper thread name. 2017-05-03 23:59:29 +02:00
degasus
afb0beb9ab OpenGL: Mute nvidia performance warning about stalling the GPU.
They are right, our perf query implementation is terrible.
But raising a warning makes it just even slower.
2017-05-03 23:48:14 +02:00
degasus
90d551e0d1 JitArm64: Drop ps_res.
The accuracy doesn't match ppc, and worse, it doesn't set the error flags if the input is zero.

Lets stop to ship broken instructions, so right now, the interpreter is the closest one.
2017-05-03 23:48:14 +02:00
Markus Wick
eaa4565e63 Merge pull request #5362 from Tilka/hash
Common/Hash: small cleanup
2017-05-03 23:44:48 +02:00
Tillmann Karras
5c93c98c05 JitArm64: fix ps_res 2017-05-03 08:02:35 +01:00
Tillmann Karras
c54c49714d Arm64Emitter: add FRECPE 2017-05-03 08:02:35 +01:00
Tillmann Karras
3a13e1aa7a Common/Hash: small cleanup 2017-05-03 06:40:52 +01:00
Tillmann Karras
25f61f0329 Common/Hash: use __crc32d() intrinsic on ARM64 2017-05-03 06:40:47 +01:00
Anthony
e4e37b3a82 Merge pull request #5255 from MerryMage/latency
ConfigManager: Increase default latency for OpenAL backend to 5
2017-05-02 22:18:58 -07:00
Michael Maltese
89eb019788 SignatureDB: fix prevented copy elision
Clang warning:

```
Source/Core/Core/PowerPC/SignatureDB/SignatureDB.cpp:22:17: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
    : m_handler(std::move(CreateFormatHandler(handler)))
                ^
Source/Core/Core/PowerPC/SignatureDB/SignatureDB.cpp:22:17: note: remove std::move call here
    : m_handler(std::move(CreateFormatHandler(handler)))
                ^~~~~~~~~~                            ~
```
2017-05-02 20:01:32 -07:00
Anthony
ad829ec7a9 Merge pull request #5232 from MerryMage/osx-screensaver
Disable screensaver on OS X
2017-05-02 19:00:21 -07:00
Mat M
7c3905a612 Merge pull request #5140 from sepalani/signature_db
SignatureDB: Rewrite FormatHandler API
2017-05-02 19:23:46 -04:00
Mat M
c51e40f92f Merge pull request #5357 from ligfx/jitintegerwarning
Jit64: fix braces warning in Jit_Integer
2017-05-02 18:44:02 -04:00
Michael Maltese
f04747e910 NANDImporter: fix printf warning
Fixes warning:

```
Source/Core/DiscIO/NANDImporter.cpp:55:17: warning: format specifies type 'unsigned long' but the argument has type 'u64' (aka 'unsigned long long') [-Wformat]
                file.GetSize(), NAND_BIN_SIZE);
                ^~~~~~~~~~~~~~
1 warning generated.

```
2017-05-02 15:13:46 -07:00
Léo Lam
08f6c31287 IOS: Reuse more code for crypto operations
This changes some parts of IOS (actually just ES) to reuse more crypto
code from IOSC or Common::AES.

TicketReader still returns the title key directly as opposed to having
ES use IOSC directly to avoid duplicating the title key IV stuff.

Side effects:

* A nasty unbounded array access bug is now fixed.

* ES_Decrypt/ES_Encrypt now returns sane results for keys other than
  the SD key.

* Titles with a Korean ticket can now be decrypted properly.

And in the future, we can look into implementing ioctlv 0x3c and 0x3d
now that we have the proper "infra" for IOSC calls.
2017-05-02 23:49:22 +02:00
Léo Lam
f8fb9e2d03 IOS: Implement IOSC-like API
This prevents the IOS crypto code and keys from being spread over
the codebase. Things only have to be implemented once, and can be
used everywhere from the IOS code.

Additionally, since ES exposes some IOSC calls directly (DeleteObject
and Encrypt/Decrypt), we need this for proper emulation.

Currently, this only supports AES key objects.
2017-05-02 23:49:22 +02:00
Léo Lam
e01624f64b IOS: Add/move some useful enums/structs 2017-05-02 23:49:21 +02:00
spycrab
f18dd7550a Qt: Fix no games at all showing up all 2017-05-02 23:42:55 +02:00
Michael Maltese
b5223fb15f Jit64: fix braces warning in Jit_Integer
Fixes a warning:

```
Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp:54:45: warning: suggest braces around initialization of subobject [-Wmissing-braces]
  static const std::array<u8, 4> ovtable = {0, 0, XER_SO_MASK, XER_SO_MASK};
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            {                             }
```
2017-05-02 14:30:28 -07:00
Anthony
0031a490c1 Merge pull request #5355 from spycrab/qt_duplicate_entry
Qt: Fix gamelist updating
2017-05-02 12:52:53 -07:00
Sepalani
0f74f1ffb3 HLE: Use a proper apploader OSReport 2017-05-02 20:47:47 +01:00
Anthony
d4e424fad5 Merge pull request #5272 from spycrab/master
Convert VolumeDirectory names back to SHIFT-JIS (issue #9988)
2017-05-02 11:41:53 -07:00
spycrab
7455c9bf51 Qt: Fix gamelist updating 2017-05-02 17:38:47 +02:00
JosJuice
252bb4471d Merge pull request #5350 from lioncash/frame
Frame: Normalize member names
2017-05-02 15:34:50 +02:00
Matthew Parlane
e9ad0ec612 Merge pull request #5322 from ligfx/cleanfifofile
FifoPlayer: replace union structures with explicit byte padding
2017-05-02 13:16:24 +12:00
Anthony
86a8a3f656 Merge pull request #5352 from spycrab/qt_gamelist_icons
Qt: Fix platform icons
2017-05-01 14:02:40 -07:00
Pierre Bourdon
e9349cf029 Merge pull request #5283 from spycrab/issue_9622
Make ENABLE_ANALYTICS=0 do something (Issue #9622)
2017-05-01 21:09:55 +02:00
spycrab
e66ad018f4 Convert VolumeDirectory names back to SHIFT-JIS (issue #9988) 2017-05-01 14:08:47 +02:00
spycrab
13ca98923b Qt: Fix platform icons 2017-05-01 13:40:23 +02:00
Léo Lam
3be987be40 IOS/ES: Extend the "fake IOSes" hack to netplay/TAS
Netplay uses a blank NAND, which means that homebrew launchers like
Gecko will force users to install IOSes.

Expecting netplay users to have a proper NAND setup is unrealistic,
and we don't actually give them a good way of syncing NANDs, so
let's extend the hack to netplay/TAS until we have a better way
of dealing with the issue.
2017-05-01 11:32:27 +02:00
Lioncash
9e71031e23 Frame: Normalize member names 2017-05-01 05:13:19 -04:00
Mat M
1bad3bef4b Merge pull request #5344 from lioncash/table
MemoryWindow: Minor cleanup
2017-04-30 18:32:29 -04:00
Mat M
344767a258 Merge pull request #5336 from JosJuice/memcard-shiftjis
Fix display of Japanese text in the Memory Card Manager
2017-04-30 18:22:47 -04:00
Mat M
d5534e069c Merge pull request #5334 from spycrab/wx_gamelist_cleanup
Refactor GameListCtrl
2017-04-30 18:21:50 -04:00
Mat M
eb8dbe03ad Merge pull request #5349 from JosJuice/more-incorrect-trans
Remove incorrect usage of _trans
2017-04-30 18:20:19 -04:00
Mat M
4f2ecf03b3 Merge pull request #5348 from JosJuice/host-code-ip-address
Mark "Host Code:" and "IP Address:" as translatable
2017-04-30 18:19:21 -04:00
Léo Lam
8e2028e8da Merge pull request #5340 from leoetlino/ios-reorg
IOS: Convert the IOS kernel HLE code to a class
2017-04-30 18:03:32 +02:00
Léo Lam
58fe0f12a4 IOS: Reorder functions in IOS.cpp
Puts them in a more logical order.
2017-04-30 17:18:53 +02:00
Léo Lam
2fc5047d26 IOS: Convert the IOS kernel HLE code to a class
This changes the main IOS code (roughly the equivalent of the kernel)
to a class instead of being a set of free functions + tons of static
variables.

The reason for this change is that keeping tons of static variables
like that prevents us from making an IOS instance and reusing IOS
code easily.

Converting the IOS code to a class also allows us to mostly decouple
IOS from the PPC emulation.

The more interesting changes are in Core/IOS/IOS. Everything else is
mostly just boring stuff required by this change...

* Because the devices themselves call back to the main IOS code
  for various things (getting the current version, replying to a
  request, and other syscall-like functions), just like processes in
  IOS call kernel syscalls, we have to pass a reference to the kernel
  to anything that uses IOS syscalls.

* Change DoState to save device names instead of device IDs to simplify
  AddDevice() and get rid of an ugly static count.

* Change ES_Launch's ack to be sent at IOS boot, now that we can do
  this properly.
2017-04-30 17:18:53 +02:00
JosJuice
8b5980f33e Remove incorrect usage of _trans
It only marks a string for translation. It doesn't actually do anything
at runtime, so the string will always be displayed in English. Even if
we would've had a way to make the translation work, we shouldn't
translate this, because OSD doesn't support non-ASCII characters.
2017-04-30 15:15:08 +02:00
JosJuice
f92331b925 Mark "Host Code:" and "IP Address:" as translatable
Also remove some spaces before colons.
2017-04-30 15:09:57 +02:00
JosJuice
b248016e41 Mark "Recenter" for translation 2017-04-30 14:05:05 +02:00
JosJuice
0e93c18902 Use _trans consistently for controllers
Some strings were marked with _trans in some places but not
others. This commit adds extra _trans markers so that the
usage of _trans is consistent.

This shouldn't have any effect on which strings actually get
translated. (Note that _trans doesn't do anything at runtime.)

I also added a few new i18n comments.
2017-04-30 14:04:21 +02:00
Lioncash
683462679b MemoryWindow: Remove unused member variable 2017-04-30 06:35:59 -04:00