Commit Graph

5964 Commits

Author SHA1 Message Date
4ffeb057cc Interpreter: Fix bug with icache emulation.
The constructor sets up way_from_valid and way_from_plur as fast lookup
tables for implementing the PLRU algrothm. Then the Init function
memsets them to zero, meaning the instruction cache will now always
choose the first way in each set.

This degrades the cache from 128 sets, 8 way to 128 sets, 1 way.

Not only does fixing this bug increase accuracy, but it increases
preformance too, giving a 1% speedup to interpreter.
2015-07-07 22:20:36 +12:00
c54534ee3b Merge pull request #2649 from phire/FileIO_Sanity
IPC_HLE: Don't open/close files for every single file operation.
2015-07-07 17:16:28 +12:00
effb626bef JitArm64: Implement EXCEPTION_FPU_UNAVAILABLE support.
Seems like this flag was missed.
This patch was mostly done by HdkR.
2015-07-06 23:40:20 +02:00
25bd55b7aa Core: Use clamps for nunchuk and wiimote x,y,z values 2015-07-06 13:34:11 -04:00
e3c6eb2a85 WiimoteEmu: Fix use of spaces.
There should be a tab here instead.
2015-07-06 13:20:24 -04:00
614a656b83 DSPInterpreter: Remove an unused typedef
DSPTables already has an equivalent of this, which it uses.
2015-07-06 06:47:13 -04:00
b6ee886540 Merge pull request #2708 from lioncash/override
MMIO: Add missing override specifiers
2015-07-06 12:36:37 +02:00
af4cfd32d4 Core: Change a volatile into an atomic
Also changes s_drawn_video into an atomic, as it's used across threads as well.
2015-07-06 06:25:51 -04:00
c7193fcd41 MMIO: Add missing override specifiers 2015-07-06 06:11:31 -04:00
0b0f70aad4 Revert "Merge pull request #2358 from Tilka/pie"
This reverts commit 0f7f8f8774, reversing
changes made to 9f15054358.
2015-07-06 09:05:25 +12:00
009148d401 Merge pull request #2701 from mickdermack/pr-jitnull
Prevent nullptr dereference on a crash with no JIT present
2015-07-05 16:37:29 +02:00
2b2af12466 Prevent nullptr dereference on a crash with no JIT present
JitInterface::HandleFault would dereference jit which is NULL, causing a stack overflow through infinite exception recursion.
2015-07-05 14:24:51 +02:00
ce10525056 Eliminate branch in GenFres 2015-07-05 11:18:59 +02:00
08fcc7bf84 IPC_HLE: Cleanup device definitions with templates.
Less copy/pasted code will make future modifications easier.
2015-07-05 02:05:39 +12:00
1d5cda9820 IPC_HLE: Reimplement fix for issues 2917/5232 with more sanity.
Instead of opening... and... closing... files... after... every...
file... operation... (which can be slow, especially if a virus scanner
is running), we catch attempts to open the same file twice and
only open one copy of the file.
2015-07-05 02:01:45 +12:00
30869135d5 Jit64: Fallback support of branching instructions 2015-07-04 04:12:25 +02:00
afea72edfe Revert "Interpreter: assign directly instead via variables"
This reverts commit 174ada3a62.
2015-07-03 21:10:18 +02:00
3fc070c4fc Merge pull request #2680 from degasus/idle
Interpreter: Idle skipping support
2015-07-03 19:52:05 +02:00
6a33f174de GC Adapter: Do not attempt to claim_interface when libusb_open() returns an error.
Fixes a crash / nullptr dereference when the adapter is plugged in but
no drivers are installed for it, on Windows.
2015-07-01 23:49:39 +02:00
bee7f19d76 Merge pull request #2682 from AdmiralCurtiss/libusb-fix-win-crash-without-drivers
GC Adapter: Do not attempt to claim_interface when libusb_open() fails.
2015-07-01 23:48:24 +02:00
245a639e2c JitArm64: Partially fallback on bcctrx
No need to assert, fallbacks on branching instructions now works fine.
2015-07-01 17:58:17 +02:00
0054c4e0d9 JitArm64: Drop icbi instruction
It was already just a fallback + exit. Now we emit the exit for all affected fallbacks.
2015-07-01 17:58:17 +02:00
dc83c8912f JitArm64: Support branching fallbacks 2015-07-01 17:58:17 +02:00
b174f99b17 Merge pull request #2662 from Tilka/interpreter
Interpreter: turn SNaNs into QNaNs
2015-07-01 01:09:43 -05:00
68d8d784ee Merge pull request #2670 from endrift/dolphinbar-osx
WiimoteReal: Add IOHIDDevice support for OS X
2015-06-30 23:33:13 -05:00
a0f5bd51f1 Merge pull request #2678 from Sonicadvance1/aarch64_implement_rlwimix
[Aarch64] implement rlwimix.
2015-06-30 22:18:00 -05:00
2cddaa09f0 [AArch64] Implement rlwimix. 2015-06-30 19:49:10 -05:00
08b952ef31 GC Adapter: Do not attempt to claim_interface when libusb_open() returns an error.
Fixes a crash / nullptr dereference when the adapter is plugged in but
no drivers are installed for it, on Windows.
2015-07-01 01:29:04 +02:00
45fde6caf5 Merge pull request #2669 from stgn/new-dsp-coef
Audio: new dsp_coef.bin with windowed sinc filter coefficients
2015-06-30 22:02:05 +02:00
717d4bfbcc Interpreter: Idle skipping support 2015-06-30 20:11:23 +02:00
6f8a38cefb WiimoteReal: Add IOHIDDevice support for OS X 2015-06-29 23:13:18 -07:00
388ab13db1 Audio: new dsp_coef.bin with windowed sinc filter coefficients 2015-06-29 22:24:24 -04:00
daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
69b7296fc2 WiimoteReal: Make sure that Wiimote thread isn't already running before starting it.
This fixes a crash when switching a Wiimote's internal slot or type in the Dolphin config.
2015-06-26 20:48:45 +02:00
cff6d9f922 Merge pull request #2640 from AdmiralCurtiss/real-wiimote-crash-fix
WiimoteReal: Fix crash when switching a real Wiimote to a different slot or type during emulation.
2015-06-26 20:33:50 +02:00
716c54217a WiimoteReal: Make sure that Wiimote thread isn't already running before starting it.
This fixes a crash when switching a Wiimote's internal slot or type in the Dolphin config.
2015-06-26 17:12:18 +02:00
2711d5201b Interpreter: turn SNaNs into QNaNs 2015-06-26 09:29:18 +02:00
174ada3a62 Interpreter: assign directly instead via variables 2015-06-26 08:16:34 +02:00
b2c21e800a Interpreter: drop unused macros 2015-06-26 08:16:34 +02:00
ca36ff0551 Interpreter: consolidate fdiv/fdivs/ps_div 2015-06-26 08:07:46 +02:00
63a2180c1f [AArch64] Implement slwx in the recompiler.
I streamed this implementation earlier today to get people to have a feel for implementing instructions in the AArch64 recompiler.
This one was a fairly simple one to implement.
2015-06-26 00:51:06 -05:00
521f6e89c3 Merge pull request #2624 from sigmabeta/android-save-screenshot
Android: Save screenshot at end of an emulation session.
2015-06-24 21:39:47 -05:00
6d273f6119 Jit64: fix pre-SSE4.1 fallback of ps_sum1 2015-06-24 18:32:10 +02:00
2bd11469a5 Jit64: fix pre-SSE4.1 fallback of ps_sum1 2015-06-24 16:48:26 +02:00
84e42904a2 Netplay: Sync Video Mode settings. (Progressive Scan and PAL60)
Must match so that Wii games don't desync, especially PAL games.
2015-06-24 12:41:10 +02:00
8b4734133e IPC_HLE: Don't open/close file for every single file operation.
On the first boot of Pokemon Snap it copies a 144KB file to the Wii's
NAND, but it only copies 32 bytes per IPC write call.

This was causing dolphin to open and close the same file over 4000
times. This wouldn't usually be a huge issue, except some operating
systems (namely Windows) allow 3rd party programs (namely antivirus
software) to hook all accesses to the filesystem.

This causes the antivirus software to scan the same file for viruses
4000+ times, which is kind of slow.

This fix reduces the initial boot time of pokemon snap from 3+ min
to just a few seconds. Could also improve other games which write
things to NAND.

Will break a few things, see the next commit for an improved fix.
2015-06-24 19:23:10 +12:00
03124ec3f0 IPC_HLE: Simplify lifecycle of devices with shared pointers.
This also fixes a memory/filehandle leak when loading savestates.
2015-06-24 19:22:04 +12:00
7935c1c57a Android: Ensure that the target folder for screenshots exists before attempting to save. 2015-06-23 23:08:10 -04:00
8ca620db7f Android: Invalidate Picasso screenshot cache every time a screenshot is displayed. 2015-06-23 22:36:27 -04:00
a028805626 Android: Save screenshot at end of an emulation session. 2015-06-23 22:22:01 -04:00