7167 Commits

Author SHA1 Message Date
Hector Martin
90c2dec02d Wii IPC HLE: do not clobber memory when launching a new title
It's questionable whether ES_LAUNCH should write *anything* to the
command structure at all, ever, given that it never actually returns
it back through the mailbox. But it *definitely* shouldn't write
anything to it if it has just launched a DOL, because otherwise it might
clobber code/data from the just-loaded application.
2016-12-01 06:55:15 +09:00
Hector Martin
288e75f672 Wii IPC HLE: Fix IPC missing reply fail 2016-12-01 06:38:51 +09:00
Hector Martin
2b906e3fc4 DOL/ELF loaders: enable HID4.SBE in Wii mode
When booting "cooked" executables, BATs should already be set up and
enabled. They should only really be disabled when booting NAND contents
in real mode.
2016-12-01 06:36:53 +09:00
Hector Martin
a6742d9cf7 ELF boot: scan segments for Wii mode detection, not sections 2016-12-01 06:36:53 +09:00
Hector Martin
3f11879640 ES HLE / WAD boot: hardcode the entrypoint
NAND titles are always started at address 0x3400 with translation off.
The entrypoint in the DOL is ignored.
2016-12-01 06:36:53 +09:00
JosJuice
3cfc49a613 Merge pull request #4472 from JosJuice/revert-absolute-path
IOS HLE: Replace broken path traversal prevention
2016-11-29 18:34:22 +01:00
aldelaro5
f705d8378e Fix the order of the name of the hotkeys 2016-11-29 11:51:55 -05:00
Mat M
eebe4ef1fd Merge pull request #4461 from aldelaro5/hotkey-config-redo
Redo every input configuration dialog
2016-11-29 07:39:28 -05:00
Léo Lam
72e3f1ecec Remove unnecessary ConfigManager includes
Making changes to ConfigManager.h has always been a pain, because
it means rebuilding half of Dolphin, since a lot of files depend on
and include this header.

However, it turns out some includes are unnecessary. This commit
removes ConfigManager includes from files which don't contain
SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the
ConfigManager include is not used).

(I've also had to get rid of some indirect includes.)
2016-11-27 22:38:38 +01:00
JosJuice
7a4f19ed98 IOS HLE: Correct handling of paths that don't start with / 2016-11-27 22:10:41 +01:00
JosJuice
c74c317ab5 IOS HLE: More robust escaping of NAND paths
Prevents path traversal without needing an absolute path
function, and also improves accuracy (character sequences
like ../ appear to have no special meaning in IOS).

This removes the creation and usage of /sys/replace,
because the new escapes are too complicated to all
be representable in its format and because no other
NAND handling software seems to use /sys/replace.
2016-11-26 22:49:46 +01:00
JosJuice
de355a8521 Revert "IOS HLE: Prevent accessing host file system"
This reverts commit 141f3bfb3acee73569486258c21e4ed34fc32327.
The implementation of getting absolute paths wasn't working
on non-Windows systems, which is a huge problem for IOS HLE.
2016-11-26 15:50:28 +01:00
Anthony
c84ab13e81 Merge pull request #4375 from leoetlino/ipc-hle-small-cleanup
IPC_HLE: Small cleanup
2016-11-25 17:50:14 -06:00
aldelaro5
7e99d03b7f Add the ability to get partial input group
For hotkeys, changed HotkeyManager to allow to get and make partial groups of hotkeys.

Also preserved the old configuration naming scheme for the ini, this is done to preserve compatibility with the older groups structure.

Add the ability to get GCPad control groups

Used like the HotkeyManager methods, this is used for the new GCPad configuration dialog.

Add the ability to get groups of Keyboard input

Same reasons as the previous ones.

Add ability to get groups of Wiimote input

Add the ability to get extensions group

This needed to pass to 3 classes.  Will be used for their respective dialogs.
2016-11-25 02:37:22 -05:00
Anthony
11243ac358 Merge pull request #4470 from aldelaro5/fix-slowdown-logs
Change the patch engine log to be debug level log
2016-11-24 16:25:53 -06:00
Léo Lam
5b44b37902 IPC_HLE: USB_KBD: Use the correct log type
Fixes logging to use the correct log type; it was originally STM
(likely an oversight).
2016-11-24 20:23:52 +01:00
Léo Lam
20f2955ad9 IPC_HLE: Remove dead code (Wiimote and emulated BT)
Neither needed or used in the emulated Bluetooth code.
2016-11-24 20:23:52 +01:00
Léo Lam
f82051a365 IPC_HLE: In-class initialise member variables 2016-11-24 20:23:52 +01:00
Léo Lam
3263831928 IPC_HLE: Clean up includes (IWYU)
Apply automated fixes by include-what-you-use (IWYU) (with some minor
changes).

IPC_HLE should now be essentially free of indirect includes.
2016-11-24 20:23:51 +01:00
Léo Lam
1e94fdba3c IPC_HLE: Device: Separate implementation from declaration
I know there is already #3521, but it currently needs a rebase and I
needed to add something to IPC_HLE_Device properly, that is, without
putting everything in the header, so this commit cleans up
IPC_HLE_Device first. (And only IPC_HLE_Device: the rest will still
be handled by #3521.)

Also fixes a few indirect includes (removing unused header includes
from IPC_HLE_Device.h broke building)
2016-11-24 20:19:19 +01:00
Léo Lam
741a638f3e IPC_HLE: USB_VEN: Clean up (includes and naming) 2016-11-24 20:19:18 +01:00
Léo Lam
b0377f02f0 IPC_HLE: Deduplicate syscall reply enqueue function
This is something that was copy-pasted across the IPC_HLE code
(because it's often used). Since all of the duplicated pieces of code
do the same thing as the previous EnqueueReply, except that they also
write to command_address + 0 and + 8 (to write the correct reply type),
this commit changes EnqueueReply to do that instead of having it
duplicated all over IPC HLE.
2016-11-24 20:19:18 +01:00
JosJuice
9bfea4a0f2 Merge pull request #4447 from JosJuice/hthh-hle-issues
Fix exploitable HLE problems reported by hthh
2016-11-24 15:53:23 +01:00
aldelaro5
c6b3c67ea1 Change the patch engine log to be debug level log
It was apparently causing heavy slowdowns on game even though it wouldn't spam much, probably caused by the amount of additional check caused by the logs levels changes.
2016-11-23 00:58:07 -05:00
Ryan Meredith
6d55aebcf7 Typo_Fix 2016-11-21 23:23:48 -05:00
Léo Lam
165e3a9936 IPC_HLE: Fix emulated BT crash (uninitialised memory)
When the emulated BT device is created, m_HCIEndpoint (which is a
CtrlBuffer)'s m_cmd_address is not initialised to 0. So it ends up
being a random value. This is normally not an issue… but the
emulated Bluetooth code relies on m_cmd_address to know whether the
HCI endpoint is still valid.

This is a problem with ES_Launch, because the bt_emu class is
destructed and re-constructed, and while m_cmd_address is still
uninitialised, the ES_Launch code disconnects all Wii remotes,
which triggers a HCI event and hence the bug.
2016-11-19 00:11:41 +01:00
Stenzek
e83bf5705a JitArm64: Don't emit normal block exit for branch-to-self instructions
The normal block exit is redundant as the exception exit will jump out of
the block first, meaning this code is never executed.
2016-11-15 00:28:14 +10:00
Stenzek
c657134c86 Jit64: Treat branch-to-self instruction as an idle loop 2016-11-15 00:26:59 +10:00
JosJuice
141f3bfb3a IOS HLE: Prevent accessing host file system 2016-11-13 10:03:23 +01:00
JosJuice
a79c449493 Avoid buffer over-reads in /dev/net/ip/top
Also fixes the less serious problem of buffer overflows
in emulated memory when BufferOutSize is less than 2.
2016-11-13 08:44:05 +01:00
JosJuice
b47e607105 HLE_OS: More bounds checking in GetStringVA 2016-11-12 19:17:15 +01:00
JosJuice
3d80d454ce HLE_OS: Implement %n in GetStringVA
%n writes to a pointer that's provided as a parameter.
We didn't have a custom implementation of this before,
meaning that %n would trigger a write to the host
memory instead of the emulated memory!
2016-11-12 19:16:55 +01:00
JosJuice
656999d4c2 Correct bounds checking for /dev/sdio/slot0
The bounds checks in IOCtl were using 0x200 as the size of
m_Registers, which is more than the actual size, 0x200 / 4.

This commit turns m_Registers into an std::array to allow
for a correct and obvious way of getting its size.
2016-11-12 19:09:03 +01:00
Jules Blok
0028ee96b3 Host: Remove the Host_RequestFullscreen() method.
No longer needed, since the exclusive mode switch is now handled synchronously on the CPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok
0a194f8a3e VideoConfig: Remove fullscreen flags.
These weren't actually settings, they were used as a bad way to communicate with the GPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok
05a3f927ee CPU: Fix deadlocks by periodically yielding to the UI message pump. 2016-11-11 13:37:03 +01:00
Jules Blok
8203ea929b BlockingLoop: Yield to UI message pump while waiting. 2016-11-11 13:37:02 +01:00
Lioncash
b19842eec3 IPC_HLE: Move NWC24Config and WiiNetConfig to their own source files
Makes for a cleaner separation of functionality, as well as removing
multiple includes from the main header file. It also gets a bunch of
structs and enums out of the global namespace.

Coincidentally, this also gets rid of an indirect include cycle that
could have broken compilation of Core.cpp in the future, since it was
relying on IPC network includes to resolve functions in Common/NandPaths.h.

This makes it easier to separate out the individual net classes in a
follow-up. Separating these out would also make it less of a pain to
figure out what's going on, since you wouldn't need to sift through 1000+
lines of code.i
2016-11-05 03:12:07 -04:00
JosJuice
d88295d5a1 Merge pull request #4421 from Pringo/wiimote-log
Change "Wiimote" to "Wii Remote" in Logs
2016-11-04 17:03:11 +01:00
Markus Wick
234691abf7 Merge pull request #4385 from leoetlino/disable-bt-check
Disable descriptor check for BT passthrough in some cases
2016-11-04 14:38:19 +01:00
Pringo
93bdab64fa Change "Wiimote" to "Wii Remote" in Logs 2016-11-03 17:58:28 -07:00
degasus
abe9c30d3d JitArm64: Also push/pop gpr.R(addr).
This fixes slowmem load instruction with update.
2016-11-02 22:38:03 +01:00
JosJuice
25070d149e Merge pull request #4412 from JosJuice/more-debug-text
More debug text fixes
2016-11-02 17:58:59 +01:00
JosJuice
3c6742f66f More debug text fixes
Also a few small non-debug text changes.
2016-11-02 17:46:52 +01:00
Markus Wick
342c053bf5 Merge pull request #4368 from JosJuice/updatewantdeterminism-loadinput
Movie: Add missing calls to UpdateWantDeterminism
2016-11-02 16:26:48 +01:00
Markus Wick
9ce1cdde98 Merge pull request #4414 from linkmauve/single-newline
Remove double newlines at the end of *_LOG messages
2016-11-02 12:20:46 +01:00
Emmanuel Gil Peyrot
c9e6b05ce9 Core: Remove double newlines at the end of *_LOG messages. 2016-11-02 02:09:33 +00:00
Markus Wick
24fa4c9e57 Merge pull request #4400 from degasus/master
JitArm64: Store the carry flag within the host flag.
2016-11-01 23:29:50 +01:00
Jules Blok
49ac577ac0 Merge pull request #4388 from ligfx/portaudio_static
CMake: build PortAudio as static library
2016-11-01 18:32:12 +01:00
degasus
5a8c52ce3a JitArm64: Fix srawx. 2016-11-01 11:55:06 +01:00