Commit Graph

6338 Commits

Author SHA1 Message Date
Lioncash
db4f692482 GCMemcard: Clean up memcard logging messages. 2015-08-25 21:55:52 -04:00
Tillmann Karras
ee50a2ef28 Jit64: fix bugs in the FPSCR instructions 2015-08-25 23:48:14 +02:00
Markus Wick
bd08c1b01a Merge pull request #2901 from Sonicadvance1/aarch64_stfiwx
[AArch64] Implement stfiwx
2015-08-25 22:47:39 +02:00
Markus Wick
24cb650078 Merge pull request #2663 from degasus/dcbx
Jit64: dcbf + dcbi
2015-08-25 12:16:56 +02:00
Ryan Houdek
0666c0750b [AArch64] Implement fdivx/fdivsx/mfcr/mtcrf.
Gets the povray bench to better times than the Wii.
2015-08-24 15:32:19 -05:00
Ryan Houdek
d96be9250c Merge pull request #2899 from Sonicadvance1/aarch64_fctiwzx
[AArch64] Implement fctiwzx
2015-08-24 13:22:27 -05:00
degasus
0d92c8fb89 Jit64: Optimize dcbx 2015-08-24 18:33:23 +02:00
Tillmann Karras
ac84d6d0fa Jit64: some cache flush changes
- dynamically allocate third scratch register instead of forcing ECX
- use LEA as 3 operand add if possible
- use BT,JC instead of SHR,TEST,JNZ
- merge MOV,TEST
- use appropriate ABI function (no asm change)
2015-08-24 18:33:23 +02:00
degasus
6f34b27323 Jit64: implement dcbf + dcbi 2015-08-24 18:33:19 +02:00
Markus Wick
0ad6fa8f62 Merge pull request #2903 from lioncash/cast
Memmap: Remove pointer casts
2015-08-24 15:42:56 +02:00
Lioncash
abd3b124be Memmap: Remove pointer casts 2015-08-24 09:07:09 -04:00
Tillmann Karras
33eefc2d86 Jit64: quickfix for mtfsfx 2015-08-24 12:12:31 +02:00
Ryan Houdek
d3176fe22a [AArch64] Implement stfiwx
Improves povray performance by ~4%
2015-08-24 01:10:55 -05:00
Ryan Houdek
80fa9af9b1 Merge pull request #2898 from degasus/linking
JitArm64: Faster linking of continuous blocks
2015-08-23 18:09:02 -05:00
degasus
7320d519b4 JitArm64: Implement srwx 2015-08-23 23:29:48 +02:00
degasus
4722a69fd0 JitArm64: Implement divwux 2015-08-23 23:29:18 +02:00
degasus
9e4366963c JitArm64: Implement subfic 2015-08-23 23:29:07 +02:00
degasus
95be17772f JitArm64: Implement addex 2015-08-23 23:29:02 +02:00
degasus
025e7c835a JitArm64: Implement subfcx 2015-08-23 23:28:28 +02:00
degasus
550a90e691 JitArm64: Implement subfex 2015-08-23 23:28:24 +02:00
Ryan Houdek
561744819e [AArch64] Implement fctiwzx
Improves the povray benchmark time by 5.6%
2015-08-23 15:35:18 -05:00
degasus
77a6798094 JitArm64: Faster linking of continuous blocks 2015-08-23 14:44:23 +02:00
Markus Wick
73067b1ef1 Merge pull request #2888 from degasus/jit64
Jit64: Faster linking of continuous blocks
2015-08-23 13:24:15 +02:00
Lioncash
2a1abf8dd6 Merge pull request #2896 from lioncash/using
Core: Minor CPU core typedef cleanup
2015-08-22 19:00:23 -04:00
Markus Wick
8b881a6c34 Merge pull request #2891 from Sonicadvance1/aarch64_implement_crxxx
[AArch64] Implement the cr instructions
2015-08-23 00:44:47 +02:00
Lioncash
fdafa5d063 Core: Move includes out of instruction table headers
These aren't necessary (and cause unnecessary indirect inclusions).
2015-08-22 14:15:02 -04:00
Lioncash
a248a4d2ce Jit64/JitIL: Relocate instruction typedefs 2015-08-22 14:15:00 -04:00
Lioncash
c56717e058 Core: Shorten the _interpreterInstruction typedef
The class itself already acts as a namespace trailer, so '_interpreter'
isn't necessary. This also gets rid of a duplicate typedef in the
Interpreter_Tables.
2015-08-22 14:14:49 -04:00
Markus Wick
a39c0910c4 Merge pull request #2893 from Sonicadvance1/aarch64_memory_base_register
[AArch64] Use a register as a constant for the memory base.
2015-08-22 15:41:57 +02:00
Ryan Houdek
dba579c52f [AArch64] Use a register as a constant for the memory base.
Removes a /lot/ of redundant movk operations in fastmem loadstores.
Improves performance of the povray bench by ~5%
2015-08-22 08:36:34 -05:00
Markus Wick
c2f38f1d16 Merge pull request #2892 from Sonicadvance1/aarch64_frsp
[AArch64] Implement frspx
2015-08-22 09:44:14 +02:00
Ryan Houdek
ce32b76be3 [AArch64] Implement frspx
Improves performance in povray bench by 2%
2015-08-22 00:35:30 -05:00
Ryan Houdek
d74eb0ea58 [AArch64] Fix the bugs in the cr instructions
Makes it a bit more efficient in the process.
2015-08-21 23:24:29 -05:00
degasus
e9ade0abe1 JitArm64: implement crXXX 2015-08-21 20:49:08 -05:00
flacs
95d958c03d Merge pull request #2889 from lioncash/interp
Interpreter: Use std::isnan instead of IsNAN
2015-08-21 21:43:08 +02:00
flacs
bb7f3d1822 Merge pull request #2867 from Tilka/mtspr_hid0
Jit64: implement HID0 case of mtspr
2015-08-21 21:04:35 +02:00
flacs
01aea965ba Merge pull request #2864 from Tilka/fpscr
Jit64: implement FPSCR related instructions
2015-08-21 21:04:20 +02:00
Lioncash
18d658df1f Interpreter_FloatingPoint: Use std::isnan instead of IsNAN
Same thing, except one is part of the stdlib.
2015-08-21 15:04:03 -04:00
degasus
78aa01e06e Jit64: Faster linking of continuous blocks
We compile the blocks as they are executed, so it's common
to link them continuously. We end with calling JMP after every
block, but often just with a distance of 0.
So just emitting NOPs instead also "calls" the next block, but
easier for the CPU.
2015-08-21 17:41:53 +02:00
Ryan Houdek
5f628749ff Merge pull request #2886 from Sonicadvance1/aarch64_faster_lfd
[AArch64] Optimize lfd instructions if possible.
2015-08-21 05:38:53 -05:00
Ryan Houdek
df53b37253 [AArch64] Optimize lfd instructions if possible.
If we are going to be using lfd, then chances are it is going to be used in double heavy areas of code.
If we only need to load the lower register, then we should also not worry about having to insert in to the low 64bits of the guest register.
So add a new flag to the backpatching to handle lfd to directly to the destination register.
This gives ~3% performance improvement to Povray.
2015-08-21 04:31:54 -05:00
Markus Wick
4f45d71840 Merge pull request #2760 from Sonicadvance1/aarch64_fcmp
[AArch64] Implement fcmp{u,o}
2015-08-21 11:03:20 +02:00
Markus Wick
6cb87a9227 Merge pull request #2837 from Sonicadvance1/aarch64_faster_nonpaired
[AArch64] Optimize cases when an FPR is only used for non-paired ops.
2015-08-21 09:51:45 +02:00
Ryan Houdek
7ce4c3138e [AArch64] Optimize cases when an FPR is only used for non-paired ops. 2015-08-20 23:36:29 -05:00
Lioncash
95c57fcec1 Jit: Remove unnecessary namespace prefixes 2015-08-20 05:20:19 -04:00
degasus
896a02b3a8 DSP HLE: Remove timing informations from ucodes
On HLE, we don't emulate the timings on HLE, so there is also no need
to setup periods callbacks.
2015-08-19 16:20:17 +02:00
degasus
7277eb0e6c AX-HLE: Call HLE on mailbox write
It was done on Update() which was called exactly every 5ms.
But the game is allowed to use the DSP more often, eg to generate 48kHz audio.
2015-08-19 16:19:06 +02:00
Lioncash
291f857b0e Merge pull request #2859 from lioncash/netplay
NetPlay: Minor cleanup
2015-08-19 04:51:28 -04:00
Tillmann Karras
0f2c656687 Jit64: implement FPSCR related instructions 2015-08-18 18:12:32 +02:00
Tillmann Karras
415ad94dbe Interpreter: fix undefined bits of mffs
Lioncash tested this on hardware.
2015-08-18 15:07:14 +02:00
Lioncash
68c0ec281b NetPlayClient: Correctly free packet data 2015-08-18 08:32:58 -04:00
Lioncash
11f3ded296 NetPlay: Return mapping arrays and player list vectors directly
Simplifies pad map dialog initialization
2015-08-17 21:56:25 -04:00
Ryan Houdek
4baaa3755e Merge pull request #2840 from zeroZshadow/master
Ignore all writes to BBA_TXFIFOCNT
2015-08-17 10:38:00 -05:00
Tillmann Karras
1c78c7b864 Jit64: implement HID0 case of mtspr 2015-08-17 13:31:57 +02:00
Pierre Bourdon
58b4b7edea Merge pull request #2863 from Tilka/fallback
Jit64: load PC only once after fallbacks
2015-08-17 10:29:54 +02:00
Tillmann Karras
fbdc20ac37 Jit64: load PC only once after fallbacks 2015-08-17 06:05:10 +02:00
Tillmann Karras
c4a6612b01 PowerPC: fix typo in FPSCR comment 2015-08-17 06:03:11 +02:00
Tillmann Karras
a9447a8606 PowerPC: drop instructions not supported by GC/Wii 2015-08-17 06:03:11 +02:00
Lioncash
b1af2a6bbc NetPlay: Use std::array for the pad mappings 2015-08-16 00:08:09 -04:00
Lioncash
e3ffb2dd16 NetPlayProto: Minor cleanup 2015-08-16 00:00:59 -04:00
Markus Wick
b8a35f6996 Merge pull request #2856 from mathieui/netplay-free
[netplay] Fix a crash
2015-08-15 23:13:18 +02:00
Markus Wick
b3045f9664 Merge pull request #2852 from aserna3/master
Changed GC adapter "Direct Connect" to false by default
2015-08-15 21:25:23 +02:00
Markus Wick
e60018abd4 Merge pull request #2854 from Tilka/valgrind
Fix some small stuff found with Valgrind
2015-08-15 20:52:12 +02:00
Ryan Houdek
909ab23df5 Merge pull request #2853 from degasus/arm
JitArm64: Fix jit clearing
2015-08-15 13:50:36 -05:00
Markus Wick
b5a5883792 Merge pull request #2851 from JosJuice/unknown-instruction
Restore old assert message for unknown instruction
2015-08-15 20:10:16 +02:00
Markus Wick
3469694b46 Merge pull request #2676 from Stevoisiak/SpellingCorrections
Minor spelling corrections
2015-08-15 18:36:56 +02:00
zeroZshadow
84764db3b2 Rewrite RecvStart error checking as suggested by shuffle2 2015-08-15 16:46:37 +02:00
mathieui
2420004af8 [Netplay] Always set a playerid
And don’t blindly dereference a pointer.
2015-08-15 15:12:20 +02:00
Tillmann Karras
b0cc02658b CachedInterpreter: avoid uninitialized value
(The CachedInterpreter backend does not support block linking yet.)
2015-08-15 13:01:26 +02:00
degasus
9bfff0d461 JitArm64: Fix jit clearing
We have to reset m_lastCacheFlushEnd on clearing.
2015-08-15 11:41:01 +02:00
Anthony Serna
b6da5490c1 Changed GC adapter "Direct Connect" to false by default 2015-08-15 02:09:47 -07:00
JosJuice
c49074742c Restore old assert message for unknown instruction
The assert(0) that was introduced in PR #2811 is not user friendly
since it has no explanation at all about what happened. Regular users
probably won't think of looking at the log to get more information.
2015-08-15 10:00:49 +02:00
Tillmann Karras
dd5cc34951 Jit64: clean up GetAllocationOrder() 2015-08-15 07:25:14 +02:00
flacs
d8d62336b5 Merge pull request #2849 from lioncash/cond
JitInterface: Fix null checking in GetProfileResults
2015-08-15 00:59:19 +02:00
Lioncash
8db43501d5 JitInterface: Fix null checking in GetProfileResults
Technically a null pointer dereference can occur here.
2015-08-14 18:51:54 -04:00
Tillmann Karras
e5a2334744 Jit64: make use of ANDN again
This time, make sure not to use it with immediates.
2015-08-14 21:25:52 +02:00
Ryan Houdek
3bc5505272 Merge pull request #2814 from Sonicadvance1/aarch64_faster_fastmem
[AArch64] Banish slowmem operations to farcode.
2015-08-14 12:03:46 -05:00
Ryan Houdek
f76a30c9fd Merge pull request #2845 from degasus/arm
JitArm64: Implement dcbt
2015-08-14 12:03:25 -05:00
degasus
715802d5aa JitArm64: Move all pointers into the map
And cleanup all of the old code for sharing and generating this pointers.
2015-08-14 11:24:11 -05:00
degasus
878f919f63 JitArm64: Fastmem: fixup map & lookup 2015-08-14 11:24:03 -05:00
flacs
9ef349181e Revert "Jit64: use BMI1's ANDN for andcx" 2015-08-14 18:10:07 +02:00
Pierre Bourdon
86c28bfac6 Bump save state version. 2015-08-14 16:17:28 +02:00
Pierre Bourdon
2d5d203be8 ZeldaHLE: Add UCode version for Pikmin 1 PAL. 2015-08-14 16:01:36 +02:00
Pierre Bourdon
18d0f15885 ZeldaHLE: Fix the AFC remaining samples logic on looping. 2015-08-14 16:01:36 +02:00
Pierre Bourdon
9105a76eb1 ZeldaHLE: Comment on the differences between FSA/ZTP UCodes. 2015-08-14 16:01:36 +02:00
Pierre Bourdon
fcbed7483d ZeldaHLE: Properly read remaining AFC samples when a whole frame is available. 2015-08-14 16:01:36 +02:00
Pierre Bourdon
a602466e4f ZeldaHLE: Implement patterns 2/3 automatic regeneration. 2015-08-14 16:01:35 +02:00
Pierre Bourdon
dd1cb88e9a ZeldaHLE: Add new UCode version for Pikmin 1/2 New Play Control 2015-08-14 16:01:35 +02:00
Pierre Bourdon
c6c0f69c6b ZeldaHLE: really fix the constant pattern variable step computation.
This time tested by comparing pattern indexes across LLE and HLE with the same
inputs. Matches on the 3-4 test cases I made.
2015-08-14 16:01:35 +02:00
Pierre Bourdon
fddb3f0d3c ZeldaHLE: fix the constant pattern variable step computation. 2015-08-14 16:01:35 +02:00
Pierre Bourdon
090723167f ZeldaHLE: Implement constant patterns with variable step (sample source 0A). 2015-08-14 16:01:35 +02:00
Pierre Bourdon
fbe727b0bb ZeldaHLE: Support GBA crypto through command 0C. Reuses the pre-existing GBA crypto code from the separate UCode. 2015-08-14 16:01:35 +02:00
Pierre Bourdon
0b1af50316 ZeldaHLE: Initial support for command 0C in both styles implemented by the light protocol. Logs, but doesn't crash anymore. 2015-08-14 16:01:35 +02:00
Pierre Bourdon
32fcd8ec7c ZeldaHLE: Special case Cmd03 NOP handling to make it clear it shouldn't ever happen on light protocol UCodes. 2015-08-14 16:01:34 +02:00
Pierre Bourdon
bbfa238657 ZeldaHLE: Document that the crashy commands are not actually crashy on light protocol, just never used. 2015-08-14 16:01:34 +02:00
Pierre Bourdon
25430e7923 ZeldaHLE: Add a flag to disable Cmd0D on older UCodes.
Shouldn't really matter -- these NOP commands aren't really used, but since it
reads an argument it's probably better to explicitly NOP it for safety.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
8526a4131c ZeldaHLE: Properly implement light command 03.
On at least one version (AC/Pikmin 1 NTSC) it doesn't even send a sync mail and
just reloops to the dispatcher.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
7f7e036a02 ZeldaHLE: Add a missing game to the list of games to look at. 2015-08-14 16:01:34 +02:00
Pierre Bourdon
cdb1022696 Zelda HLE: Add support for the ZTP Wii UCode. 2015-08-14 16:01:34 +02:00
Pierre Bourdon
5f61ab3e21 Zelda HLE: Update the CRC to games mapping (documentation only). 2015-08-14 16:01:33 +02:00
Pierre Bourdon
addb5cb887 Zelda HLE: Support the per-frame sync protocol used by SMS.
Didn't test if SMS sounds right (travelling with no headphones \o/) but the
waveform looks ok and the mails are flowing as expected.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
89037781e0 Zelda HLE: Make the implementation less strict for recoverable errors.
It kind of sucks that we don't emulate some behaviors properly, but there is
very little ROI for some of these features and I'm not going to spend time
implementing them any time soon. Making the PanicAlerts optional allows for
more testing of the core features on more games while "just" breaking less
important features like reverb.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
837b8041c0 Zelda HLE: Only alert for mixing into back buffers for recent UCode versions.
On older versions there is no such concept of a "back buffer" since positional
audio is not supported. These buffers are just used for temp mixing, and while
it would be really nice if we could support more of that inter-buffer mixing
(TODO :) ) it does not warrant a PanicAlert at this time.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
840a4157b0 Zelda HLE: Properly implement LQ AFC decoding.
Typos and stupid mistakes + untested code = dirty Git history.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
82689677d9 Zelda HLE: Implement LQ AFC decoding (samples source 0005). 2015-08-14 16:01:33 +02:00
Pierre Bourdon
b3a327f02b Zelda HLE: Implement sample source 3.
"Square" wave at a 0.25 duty cycle (25% up 75% down).
2015-08-14 16:01:32 +02:00
Pierre Bourdon
3c2b22bc09 Zelda HLE: Add basic support for Luigi's Mansion.
Fails ingame because it mixes to some buffers that are considered the back
buffers for Dolby games. That check might need to be less restrictive for games
that don't use Dolby mixing.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
a0c318454d Zelda HLE: Log the UCode version being used (CRC/flags).
Also tidy up the versions list a bit.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
2e72c11025 Zelda HLE: Add support for the Pikmin 1 NTSC version of the UCode. 2015-08-14 16:01:32 +02:00
Pierre Bourdon
a8810e8778 Zelda HLE: Add support for the Zelda: FSA UCode. 2015-08-14 16:01:32 +02:00
Pierre Bourdon
01ab40fc6e Zelda HLE: NTSC IPL provides the volume stepping explicitly.
Support that through a new behavior flag. Now the only remaining known bug in
the NTSC IPL is the reverb not fading out.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
43882f3e6e Zelda HLE: Handle the smaller VPBs used by the NTSC IPL.
Damn you, Nintendo.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
1807c113b5 Zelda HLE: Support both NTSC and PAL IPL.
Add a flag for UCodes that only have four non-Dolby mixing destinations
(instead of the standard six destinations).

NTSC IPL is still hopelessly broken.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
4ace79024d Zelda HLE: Add a missing mixing buffer used by GC IPL.
Not completely sure what it's used for yet, but TWW has references to it so
I'll get to it at some point.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
8c85a8c8d9 Zelda HLE: Fix reverb in the GC IPL.
Adds a missing destination buffer, and support post-filtering.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
13ea54628d Zelda HLE: Add support for the light protocol.
Used by a few titles (Luigi's Mansion, Animal Crossing) as well as the GameCube
IPL/BIOS.

Note that the IPL does not work yet because it mixes to unknown buffers.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
c033395e28 Zelda HLE: Introduce behavior flags to handle UCode version differences.
MAKE_DOLBY_LOUDER solves some of the volume issues that were happening in Zelda
Twilight Princess and SMG1.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
8b9b9f033a Zelda HLE: Fix and genericize PCM ARAM loading functions.
Now also handles PCM16, and works for longer sounds. SMG1 main menu outputs
some sensible audio now, though volume seems slightly off.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
0dc5a925b0 Zelda HLE: Add initial support for Wii DAC and SMG1.
SMG1 boots but quickly PanicAlerts due to an unimplemented sample source.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
ea1ac5f596 Zelda HLE: Add save state support.
Also fix an inconsistency in the spelling of "coeffs".
2015-08-14 16:01:30 +02:00
Pierre Bourdon
bfff0a72df Zelda HLE: Implement sample sources 4, 7, 11 and 12.
Just 4 different versions of the same sample source, using a different constant
pattern uploaded to the DSP during command 01.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
6c61ee6278 Zelda HLE: Initial support for Zelda Twilight Princess (GC)
Very close to the TWW version of the UCode, haven't determined any differences
yet (but I'm sure that will come soon). Works well enough to reach ingame
without any errors other than a few volume issues.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
b672788548 Zelda HLE: Skip command words that are not commands.
Zelda Twilight Princess (GC) seems to push null words into the command buffer.
The command handler in the UCode ignores initial command mails that do not have
the MSB set.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
9944731516 Zelda HLE: Add reverb emulation. 2015-08-14 16:01:29 +02:00
Pierre Bourdon
c58aece9ad Zelda HLE: Implement the PCM8 sample source.
Reorder some things in the source code to match the sample source definition
order. Add and remove some TODOs.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
58fd39d57a Zelda HLE: Value-initialize the std::arrays.
I was under the wrong impression that std::array's default constructor
performed value initialization. Turns out it does not, so an array of POD will
not be initialized.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
34341af17d Zelda HLE: Implement saw wave generation (sample source 0001).
Fixes issue 7961.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
91fade5e89 Zelda HLE: Properly implement the square wave generation.
Zelda TWW magic meter works properly now.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
63712e58fd Zelda HLE: Convert some ERROR_LOG to PanicAlert.
While these are not really unrecoverable errors, while Zelda HLE is in a
testing / development phase it is useful to notice these "unexpected" cases (or
expected without known ways to reproduce) by making them as hard as possible to
ignore.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
2bb3daf027 Zelda HLE: Implement square wave sample source.
Also fix Windows build.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
580fe12c5b Zelda HLE: Implement HQ AFC samples decoding. 2015-08-14 16:01:28 +02:00
Pierre Bourdon
33c29d8aab ZeldaHLE: fix windows build again 2015-08-14 16:01:28 +02:00
Pierre Bourdon
b62f1ed453 ZeldaHLE: fix windows build 2015-08-14 16:01:28 +02:00
Pierre Bourdon
e35b83fabf ZeldaHLE: Implement more infrastructure and one sample source.
Now renders some of the cutscene audio in Zelda TWW. Most of the work around
sample sources is in a good enough state, even though it is still missing
features like Dolby mixing, IIR, etc.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
d9188f1245 Zelda HLE: Rewrite the control flow.
Now accurate control flow for DAC. Voice rendering is not implemented yet, but
framing seems correct. Not expected to work for anything than DAC UCode games.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
d5e177d3f9 INIT UCode: reduce DSP initialization time
Push the mail at UCode boot time, not after the first update. This avoids a lot
of crazy busy-looping on the CPU side while waiting for the DSP to be
initialized.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
a770cc0778 DSPHLE MailHandler: Synchronize reads and interrupts
This change is meant to solve the following problem: how to translate the
following snippet to DSPHLE:
    SendInterruptAndWaitRead(MAIL_A);
    SendAndWaitRead(MAIL_B);

    SendInterruptAndWaitRead(MAIL_C);

This should cause the following actions on the CPU side:
    ---> Woken up by interrupt
    Reads MAIL_A
    Reads MAIL_B
    <--- Exits interrupt handler

    ---> Woken up by interrupt
    Reads MAIL_C
    <---

But with the current DSPHLE mail support, the following would happen because
the "AndWaitRead" part is not supported:
    ---> Woken up by interrupt
    Reads MAIL_A
    Reads MAIL_B
    <--- Exits interrupt handler

    [Never gets the second interrupt since it was triggered at the same time as
    the first one! Misses MAIL_C.]

This changes fixes the issue by storing two values in the mail queue on the DSP
side: the value of the mail itself, and whether a read of that mail should
trigger a DSP interrupt. If nothing is in the queue yet and an interrupt is
requested, just trigger the interrupt. In the present example, the queue will
look like this:
    Mail value       Interrupt requested
     MAIL_A                  No           <-- Interrupt was triggered when
                                              pushing the mail to the queue.
     MAIL_B                  Yes
     MAIL_C                  No

When the CPU will read MAIL_B, this will cause MailHandler to trigger the
interrupt, which will be handled by the CPU when coming back from the exception
handler. MAIL_C is then successfully read.
2015-08-14 16:01:27 +02:00
Pierre Bourdon
8f3302419b ZeldaHLE: Rip out more code, only keep normal version support and one CRC 2015-08-14 15:21:08 +02:00
Pierre Bourdon
22ec258194 ZeldaHLE: Rip out the whole voice processing code. Still boots games, but no sound at all. 2015-08-14 15:20:29 +02:00
Pierre Bourdon
a92727e862 DSPHLE: Add a config parameter to dump UCode to disk 2015-08-14 15:19:57 +02:00
degasus
fc23380f6b JitArm64: Implement dcbt
This is a 1:1 copy&paste from Jit64.
2015-08-14 14:47:00 +02:00
Tillmann Karras
f9129c0e08 Jit64: use BMI1's ANDN for andcx 2015-08-14 05:51:31 +02:00
zeroZshadow
8925b828aa Ignore all writes to BBA_TXFIFOCNT 2015-08-13 22:45:29 +02:00
zeroZshadow
798365846d Improve TAP_Win32 error logging 2015-08-13 18:25:17 +02:00
degasus
4ef2962055 JitArm64: optimize addzex
So on the general case, we don't need a tempory register.
2015-08-13 13:40:53 +02:00
degasus
f7fa22a053 JitArm64: fix addzex
CMP don't update the carry flag, so we have to use an addition.
2015-08-13 13:36:21 +02:00
degasus
de3ce74b48 JitArm64: disable addzex 2015-08-13 12:22:48 +02:00
degasus
b9f5bfb2bd JitArm64: zero extend RC for cmpli
Patch written by HdkR
2015-08-13 12:22:48 +02:00
Ryan Houdek
1e024e7011 [AArch64] Implement fcmp{u,o} 2015-08-12 14:44:58 -05:00
Markus Wick
40818c4aad Merge pull request #2835 from degasus/master
Wiimotes: Initialize all atomic<bool> globally.
2015-08-12 21:14:04 +02:00
Ryan Houdek
bb39ba1f3a [AArch64] Banish slowmem operations to farcode.
This improves performance pretty much across the board for games.
The increase in performance is mainly from removing some code from the main JIT blocks of code (pushing and popping millions of registers) and
throwing them in farcode where it doesn't pollute the icache.
2015-08-12 13:57:09 -05:00
shuffle2
90e05f7bea Merge pull request #2832 from zeroZshadow/master
Properly scan for OpenVPN TAP adapters
2015-08-12 10:56:50 -07:00
Rohit Nirmal
703892e845 Fix building with PCH disabled. 2015-08-12 12:01:17 -05:00
degasus
6b9eba5761 Wiimotes: Initialize all atomic<bool> globally.
This fixes an issue with broken real wiimotes on linux.
2015-08-12 18:39:38 +02:00
zeroZshadow
7ed894484e Added for loop end condition 2015-08-12 01:18:27 +02:00
zeroZshadow
8e33891593 Properly scan for OpenVPN TAP adapters
Handle errors correctly in SendFrame
2015-08-11 23:34:49 +02:00
Tillmann Karras
0e725c0860 USBGecko: don't needlessly call StringFromFormat() 2015-08-10 12:33:49 +02:00
Ryan Houdek
cf22d32d0c [AArch64] Don't do an unnecessary 128bit REV64 operation.
We are only using the lower 64bits here, no need to do the full quad register.
2015-08-09 14:56:52 -05:00
Lioncash
ccca2982df Merge pull request #2819 from degasus/fix
PPCAnalyst: Mark function as static
2015-08-09 10:09:15 -04:00
degasus
bceab37801 PPCAnalyst: Mark function as static 2015-08-09 11:15:44 +02:00
comex
e20db1b2e3 Forgot to add a slash in one bit of code I switched from D_WIIUSER_IDX to D_SESSION_WIIROOT_IDX.
Fix that.
2015-08-08 23:16:29 -04:00
Lioncash
a488ab7a70 Merge pull request #2811 from Sonicadvance1/interpreter_dump
On unknown_instruction dump the full guest GPR state.
2015-08-08 14:57:06 -04:00
Tillmann Karras
145494144c Jit64: duplicate fres result into ps1
And since frD is completely overwritten now, avoid loading it at all.
2015-08-08 06:17:47 +02:00
Ryan Houdek
14a0b01854 Merge pull request #2812 from Tilka/typos
Gekko: fix typos in HID2
2015-08-07 10:56:22 -05:00
Markus Wick
59e48e0fcf Merge pull request #2801 from Tilka/stuff
x64Emitter: add MOVSLDUP/MOVSHDUP
2015-08-07 10:37:38 +02:00
Tillmann Karras
829a949708 Gekko: fix typos in HID2 2015-08-07 09:54:13 +02:00
Ryan Houdek
0326bf7164 On unknown_instruction dump the full guest GPR state. 2015-08-07 02:45:05 -05:00
Ryan Houdek
d9037d6c4a Remove perf_dir Dolphin WX option.
Move the option for the directory to the Dolphin.ini
This way more than DolphinWX can take advantage of it.
2015-08-07 01:59:29 -05:00
Ryan Houdek
c5a7243eb2 [AArch64] Add support for JitRegister to the dispatcher and paired loadstores 2015-08-07 01:58:40 -05:00
Tillmann Karras
f5a10bddee Jit64: use overloaded IsSimpleReg() where useful 2015-08-06 10:39:43 +02:00
Tillmann Karras
a3476415f6 JitRegCache: mark derived classes as final 2015-08-06 10:39:43 +02:00
Tillmann Karras
0d3acbd9c7 PPCAnalyst: drop needless forward declarations 2015-08-06 10:39:43 +02:00
Tillmann Karras
8adca82cc6 JitInterface: fix disassembly entry point
This adds the downcount check code to the disassembly text and removes the
bogus instructions at the end.
2015-08-06 10:18:46 +02:00
flacs
0aad44c980 Merge pull request #2753 from Tilka/fix_warnings
Fix some warnings
2015-08-04 18:54:31 +02:00
Markus Wick
972faf42ed Merge pull request #2785 from lioncash/def
GeckoCode: Remove GetAddress function prototype
2015-08-04 17:44:15 +02:00
Tillmann Karras
5a05187b3b Fix some warnings
reorder, sign-compare, pessimizing-move
2015-08-04 10:58:24 +02:00
comex
3ee302df75 Fix wording of invalid read/write message 2015-08-03 01:57:59 -04:00
Scott Mansell
8dd9d35689 Merge pull request #2653 from AdmiralCurtiss/netplay-video-mode-sync
Netplay: Sync Video Mode settings. (Progressive Scan and PAL60)
2015-08-02 12:42:21 +12:00
unknown
739ede2242 Fix code to comply with coding style 2015-07-31 20:00:36 -04:00
mirrorbender
0faba3b018 Changed the aspect ratio settings to account for NTSC/PAL pixel aspect ratios and VI scaling. 2015-07-31 19:58:02 -04:00
Admiral H. Curtiss
244e5224a7 Wiimote: Extend emulated Wiimote reconnect-on-button-press to attachments. 2015-07-30 20:06:27 +02:00
Lioncash
7ee0e75633 Remove unnecessary virtual keywords 2015-07-30 10:33:08 -04:00
Lioncash
44e7a7bf91 GeckoCode: Remove GetAddress function prototype
GetAddress didn't have a definition for its prototype.
Also shortened the construction of the Code struct.
2015-07-28 22:10:39 -04:00
Markus Wick
f800a5b93f Merge pull request #2695 from degasus/jit64
Jit64: Fallback support of branching instructions
2015-07-28 16:37:41 +02:00
Markus Wick
0c4209a0f9 Merge pull request #2716 from degasus/jitgeneric
CachedInterpreter: New kind of jit which always fallback to interpreter.
2015-07-28 16:37:25 +02:00
degasus
ec0582ee5b JitArm64: fix lfd
Bug found by HdkR.
2015-07-28 00:13:50 +02:00
degasus
b7c4886d66 JitArm64: fix stfsux 2015-07-27 23:07:38 +02:00
Anthony Serna
7e8cfff3c0 Optimized addx()
Removed some code duplication

Fixed whitespace

Moved else condition
2015-07-27 11:40:15 -07:00
Jules Blok
3801f89125 Merge branch 'stable' 2015-07-25 14:09:02 +02:00
Jules Blok
3814b5b702 HotkeyManager: Activate hotkey when key is pressed.
As opposed to activating the hotkey when it is released.
2015-07-25 13:53:27 +02:00
Jules Blok
0092f5207b Core: Don't return true on IsRunning() when stopping emulation. 2015-07-25 13:04:37 +02:00
Jules Blok
59eb7a864d Revert "Join the emu thread in Core::Stop. Get rid of Core::Shutdown which did that before."
This reverts commit ba664b3293.

Added documentation to Core::Shutdown() to prevent breaking changes.
2015-07-25 13:04:22 +02:00
degasus
1c9b5efb4c CachedInterpreter: New kind of jit which always fallback to interpreter. 2015-07-22 23:19:20 +02:00
Jules Blok
5535c5c54c Core: Don't return true on IsRunning() when stopping emulation. 2015-07-22 09:44:39 +02:00
Jules Blok
b6c4d5792b Revert "Join the emu thread in Core::Stop. Get rid of Core::Shutdown which did that before."
This reverts commit ba664b3293.

Added documentation to Core::Shutdown() to prevent breaking changes.
2015-07-22 09:15:19 +02:00
Scott Mansell
9ae8e38a8a Merge pull request #2717 from phire/fix-reordering
PPCAnalyst: Don't swap instruction which might cause interrupts.
2015-07-22 05:16:51 +12:00
skidau
654c44b870 Merge pull request #2714 from lioncash/clamp
Core: Use clamps for nunchuk and wiimote x,y,z values
2015-07-20 14:08:00 +10:00
skidau
4b260fbd66 Merge pull request #2724 from AdmiralCurtiss/wiimote-reconnect-on-button-press
Wiimote: Reconnect a disconnected Wiimote when a button is pressed.
2015-07-20 14:06:48 +10:00
Markus Wick
d622ae3e7b Merge pull request #2699 from Tilka/fnma
Interpreter: fix rounding of negating FMA instructions
2015-07-19 17:39:19 +02:00
Markus Wick
b71430723a Merge pull request #2748 from Tilka/drop
Jit64: small cleanup
2015-07-19 08:26:42 +02:00
Tillmann Karras
bcdafc7e34 Interpreter: fix rounding of FNMA instructions
x86:     round(-a*c +/- b)
PowerPC: -round(a*c +/- b)

If the rounding mode is set to +/- infinity, the order of round/negate
matters.
2015-07-18 22:54:15 +02:00
Tillmann Karras
89954d658c Jit64: drop needless casts 2015-07-18 22:33:42 +02:00
Lioncash
35e9ada2b0 Merge pull request #2709 from lioncash/atomic
Core: Change a volatile into an atomic
2015-07-17 10:24:02 -04:00
Tillmann Karras
334c1bfdf6 Jit64[IL]: drop WriteCallInterpreter 2015-07-17 03:25:38 +02:00
Admiral H. Curtiss
e473ebc2e3 Display a message on screen when the emulated software disconnects a Wiimote. 2015-07-16 19:08:25 +02:00
Admiral H. Curtiss
5594b107eb Wiimote: (Re-)Connect a disconnected real Wiimote when a button is pressed.
Where disconnected is defined as: The real physical device is still connected to the PC, but the emulated Wii sees the Wiimote as disconnected.
2015-07-16 02:35:55 +02:00
Ryan Houdek
c0f80ca524 Merge pull request #2736 from degasus/farcache
JitArm64: Farcache
2015-07-15 08:41:58 -05:00
degasus
6f38d1baa1 CodeBlock: Add a shared IsAlmostFull function
This function shall keep care about the low watermark of code space.
If we ran out of space, the JITs shall clear their block cache.
2015-07-15 08:53:05 +02:00
mathieui
cae00254a5 GCAdapter: Only start the thread on startup if direct connect is enabled 2015-07-14 17:15:26 +02:00
mathieui
ac8621ccab GCAdapter: Disable the scanning thread when direct connect is disabled
The goal of this commit is to let people who experience driver issues
with libusb and windows disable the scanning thread (to avoid mouse
issues, keyboard issues, and audio issues).

Also disable the rumble setting when the adapter driver is not detected,
and don’t do anything if libusb can’t init for some reason.
2015-07-14 12:35:40 +02:00
degasus
a5c10ded55 JitArm64: Fix copy&paste issue 2015-07-12 09:41:32 +02:00
degasus
7196901b40 JitArm64: Move all FLUSH_MAINTAIN_STATE to the far cache 2015-07-12 09:41:32 +02:00
degasus
b8dd68beef JitArm64: Far Code Cache 2015-07-12 09:41:32 +02:00
Jeffrey Pfau
fff113b64f Fix 64-bit FreeBSD build 2015-07-11 23:09:11 -07:00
Jeffrey Pfau
2eb553fdb7 Fix FreeBSD build 2015-07-11 23:09:11 -07:00
flacs
b30ae1b9f8 Merge pull request #2730 from lioncash/undef
SI_DeviceGCController: Remedy undefined behavior regarding shifts
2015-07-12 06:30:50 +02:00
skidau
c70f3f4b45 Merge pull request #2731 from skidau/PAL-Progressive
Removed the ability for PAL televisions to be set to progressive mode.
2015-07-10 16:00:23 +10:00
Admiral H. Curtiss
e462422ef7 Wiimote: (Re-)Connect a disconnected emulated Wiimote when a mapped button is pressed. 2015-07-10 04:29:56 +02:00
skidau
6d2f85f183 Removed the ability for PAL televisions to be set to progressive mode. 2015-07-10 10:26:24 +10:00
Lioncash
6e90d1e433 SI_DeviceGCController: Remedy undefined behavior regarding shifts
Left shifting a negative left-hand operand is undefined behavior per section 5.8.2 of the C++11 standard.
2015-07-09 13:08:40 -04:00
Lioncash
5768161052 Core: Pass string by const reference in SaveScreenShot 2015-07-09 07:24:30 -04:00
Ryan Houdek
7b7d1b0dcf Merge pull request #2718 from phire/1way-icache
Interpreter: Fix bug with icache emulation.
2015-07-08 07:29:46 -05:00
Scott Mansell
a31ebb9bcd PPCAnalyst: Don't swap instruction which might cause interrupts.
fcmpo and fcmpu can be matched by the REORDER_CMP pass, as they set CR0
and they can cause interrupts if the fpu is disabled.
So we add an extra check to make sure op a is an integer op too.
2015-07-07 22:37:48 +12:00
Scott Mansell
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
Scott Mansell
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
degasus
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
Lioncash
25bd55b7aa Core: Use clamps for nunchuk and wiimote x,y,z values 2015-07-06 13:34:11 -04:00
Lioncash
e3c6eb2a85 WiimoteEmu: Fix use of spaces.
There should be a tab here instead.
2015-07-06 13:20:24 -04:00
Lioncash
614a656b83 DSPInterpreter: Remove an unused typedef
DSPTables already has an equivalent of this, which it uses.
2015-07-06 06:47:13 -04:00
Markus Wick
b6ee886540 Merge pull request #2708 from lioncash/override
MMIO: Add missing override specifiers
2015-07-06 12:36:37 +02:00
Lioncash
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
Lioncash
c7193fcd41 MMIO: Add missing override specifiers 2015-07-06 06:11:31 -04:00
Scott Mansell
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
Markus Wick
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
Michael Ehrenreich
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
Sintendo
ce10525056 Eliminate branch in GenFres 2015-07-05 11:18:59 +02:00
Scott Mansell
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
Scott Mansell
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
degasus
30869135d5 Jit64: Fallback support of branching instructions 2015-07-04 04:12:25 +02:00
Tillmann Karras
afea72edfe Revert "Interpreter: assign directly instead via variables"
This reverts commit 174ada3a62.
2015-07-03 21:10:18 +02:00
Markus Wick
3fc070c4fc Merge pull request #2680 from degasus/idle
Interpreter: Idle skipping support
2015-07-03 19:52:05 +02:00
Admiral H. Curtiss
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
Jules Blok
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
degasus
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
degasus
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
degasus
dc83c8912f JitArm64: Support branching fallbacks 2015-07-01 17:58:17 +02:00
Ryan Houdek
b174f99b17 Merge pull request #2662 from Tilka/interpreter
Interpreter: turn SNaNs into QNaNs
2015-07-01 01:09:43 -05:00
Ryan Houdek
68d8d784ee Merge pull request #2670 from endrift/dolphinbar-osx
WiimoteReal: Add IOHIDDevice support for OS X
2015-06-30 23:33:13 -05:00
Ryan Houdek
a0f5bd51f1 Merge pull request #2678 from Sonicadvance1/aarch64_implement_rlwimix
[Aarch64] implement rlwimix.
2015-06-30 22:18:00 -05:00
Ryan Houdek
2cddaa09f0 [AArch64] Implement rlwimix. 2015-06-30 19:49:10 -05:00
Admiral H. Curtiss
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
Markus Wick
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
degasus
717d4bfbcc Interpreter: Idle skipping support 2015-06-30 20:11:23 +02:00
Jeffrey Pfau
6f8a38cefb WiimoteReal: Add IOHIDDevice support for OS X 2015-06-29 23:13:18 -07:00
Shane Nelson
388ab13db1 Audio: new dsp_coef.bin with windowed sinc filter coefficients 2015-06-29 22:24:24 -04:00
Stevoisiak
7248f9b524 Minor spelling corrections 2015-06-29 14:51:21 -04:00
Lioncash
daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
Admiral H. Curtiss
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
Jules Blok
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
Admiral H. Curtiss
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
Tillmann Karras
2711d5201b Interpreter: turn SNaNs into QNaNs 2015-06-26 09:29:18 +02:00
Tillmann Karras
174ada3a62 Interpreter: assign directly instead via variables 2015-06-26 08:16:34 +02:00
Tillmann Karras
b2c21e800a Interpreter: drop unused macros 2015-06-26 08:16:34 +02:00
Tillmann Karras
ca36ff0551 Interpreter: consolidate fdiv/fdivs/ps_div 2015-06-26 08:07:46 +02:00
Ryan Houdek
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
Ryan Houdek
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
Tillmann Karras
6d273f6119 Jit64: fix pre-SSE4.1 fallback of ps_sum1 2015-06-24 18:32:10 +02:00
Tillmann Karras
2bd11469a5 Jit64: fix pre-SSE4.1 fallback of ps_sum1 2015-06-24 16:48:26 +02:00
Admiral H. Curtiss
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
Scott Mansell
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
Scott Mansell
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
Eder Bastos
7935c1c57a Android: Ensure that the target folder for screenshots exists before attempting to save. 2015-06-23 23:08:10 -04:00
sigmabeta
8ca620db7f Android: Invalidate Picasso screenshot cache every time a screenshot is displayed. 2015-06-23 22:36:27 -04:00
sigmabeta
a028805626 Android: Save screenshot at end of an emulation session. 2015-06-23 22:22:01 -04:00
Tillmann Karras
c9af7def28 Fix some warnings 2015-06-23 21:11:56 +02:00
comex
afaa0d92df Merge pull request #2613 from AdmiralCurtiss/netplay-sram-sync
Netplay: Sync GameCube SRAM.
2015-06-22 12:48:38 -04:00
skidau
c18662432f Merge pull request #2622 from AdmiralCurtiss/homebrew-video-modes
Fix Homebrew region inconsistency exposed by #2596.
2015-06-20 11:49:57 +10:00
Lioncash
6ca6896b6e JitRegCache: Get rid of an unnecessary cast 2015-06-19 18:10:56 -04:00
Admiral H. Curtiss
7276d80adc Boot: Decide setting.txt's country settings based on the game's video mode when no valid country code is found rather than defaulting to Europe. 2015-06-19 15:09:21 +02:00
Admiral H. Curtiss
1b8b99e9f1 ConfigManager: Set homebrew video mode based on Dolphin's PAL60 config instead of always using 50Hz.
This is a bit indirect, but since homebrew always boots in a European environment the framerate depends on the bPAL60 flag, which is always auto turned off if bNTSC is set to true as of 2e5e724f94. By actually indicating that we're PAL on homebrew boot, the rest just falls into place.
2015-06-19 15:07:19 +02:00
Lioncash
458378528b DolphinWX: Remove the Toggle IR hotkey.
This isn't necessary since Increase IR and Decrease IR are present.
2015-06-19 05:10:40 -04:00
Ryan Houdek
22e7024da5 Merge pull request #2614 from endrift/fix-gdbstub-build
PowerPC: Fix GDBStub build
2015-06-16 02:15:21 -05:00
Jeffrey Pfau
46cf44bcec PowerPC: Fix GDBStub build 2015-06-16 00:10:28 -07:00
skidau
c6f72115e9 Merge pull request #2596 from AdmiralCurtiss/pal60-config-option
PAL60 improvements: Allow setting in GameINI, disable for NTSC games, store in Movie files.
2015-06-16 14:44:31 +10:00
Ryan Houdek
87b45de634 Merge pull request #2606 from Sonicadvance1/aarch64_optimize_psq_st
[AArch64] Optimize paired quantized stores.
2015-06-14 19:03:50 -05:00
Admiral H. Curtiss
277348cd75 Movie: Add the PAL60 setting to Movie files. 2015-06-14 17:10:34 +02:00
Admiral H. Curtiss
2e5e724f94 Boot: Automatically temporarily disable PAL60 for NTSC Wii games.
Fixes issues like https://code.google.com/p/dolphin-emu/issues/detail?id=7714 and https://code.google.com/p/dolphin-emu/issues/detail?id=8036.
2015-06-14 17:10:12 +02:00
Admiral H. Curtiss
f9067cbf38 Boot: Setting overrides should be applied after all settings from ini/movie/netplay/... are read. 2015-06-14 17:03:45 +02:00
Admiral H. Curtiss
abb65515b9 Netplay: Sync GameCube SRAM. 2015-06-14 16:52:08 +02:00
Ryan Houdek
96058c5de1 [AArch64] Reenable psq_l.
The bug was due to issues in the FPR cache.
2015-06-14 04:11:59 -05:00
Ryan Houdek
282282aafc [AArch64] Fix a few bugs in the FPR cache. 2015-06-14 04:11:26 -05:00
Jeffrey Pfau
1b9f55692b Fix 64-bit FreeBSD build 2015-06-13 21:52:47 -07:00
Jeffrey Pfau
7085fcc8d6 Fix FreeBSD build 2015-06-13 21:52:47 -07:00
Ryan Houdek
5ea66369f8 [AArch64] Optimize paired quantized stores.
Uses {S,U}QXTN to saturate the value to the maximum sizes instead of manually clamping using FMIX + FMAX.
2015-06-13 23:16:56 -05:00
Matthew Parlane
f32cede086 Revert "x64: build a Position-Independent Executable (PIE)" 2015-06-14 16:06:26 +12:00
Admiral H. Curtiss
8ffe745c09 Config: Allow PAL60 to be set by ini files.
Fixes issue https://code.google.com/p/dolphin-emu/issues/detail?id=7847.
2015-06-13 02:10:44 +02:00
Admiral H. Curtiss
92447fb052 Config: Add a boolean for PAL60, like the Progressive Scan one.
This decouples the Dolphin PAL60 option from the currently set value in the Wii SYSCONF file.
2015-06-13 02:09:19 +02:00
Ryan Houdek
bcc8c78e4a Merge pull request #2582 from Sonicadvance1/aarch64_fix_thp_videos
[WIP] [AArch64] Clamp quantized store ranges.
2015-06-12 18:07:24 -05:00
degasus
9f929c8593 Hotkeys: Fix translation array 2015-06-12 19:32:50 +02:00
degasus
c375111076 Options: merge SCoreStartupParameter into SConfig 2015-06-12 19:07:45 +02:00