Commit Graph

5406 Commits

Author SHA1 Message Date
Ryan Houdek 631c8a981e [AArch64] Minor performance improvements to paired stores.
We can combine these two ST1 calls in to a single ST1 call.
Saves a few cycles in paired stores
2015-01-29 06:07:00 -06:00
Ryan Houdek 235f6c2445 [AArch64] Don't flush VFP register to stack when not needed. 2015-01-29 06:07:00 -06:00
Ryan Houdek c8c062fa96 [AArch64] Add support for MMIO loads.
Should give a small performance benefit.
2015-01-29 06:06:54 -06:00
Markus Wick 109fa8c2c8 Merge pull request #1800 from randomstuff/jit-register
Add support of more JIT-compiled code for profiling
2015-01-28 13:23:32 +01:00
Gabriel Corona c3777bbd69 JitRegister: TrampolineCache 2015-01-28 10:41:45 +01:00
Gabriel Corona 329834f653 JitRegister: JitAsm 2015-01-28 10:41:03 +01:00
Gabriel Corona 3c14930a0a JitRegister: JitAsmCommon
Allows profiling/debugging tools to know about JITed code.
2015-01-28 10:40:05 +01:00
Gabriel Corona a957f93532 Use printf-like format in JitRegister::Register
The API is cleaner (no more magic default parameter) and more
extensible like this.
2015-01-28 09:47:08 +01:00
Tillmann Karras 257deb7886 CoreTiming: fix warning 2015-01-28 08:27:14 +01:00
Lioncash 7dc5bc622f EXI_DeviceAGP: Pass string by reference 2015-01-27 10:15:27 -05:00
JosJuice 443d371fa3 DVDInterface: Don't use return for ExecuteReadCommand result
There's a small timing change here. If no disc is inserted, the
ticks_until_completion passed to ExecuteReadCommand will be used.
2015-01-27 09:47:02 +01:00
JosJuice de86d539f2 DVDInterface: Move fast disc speed check to ExecuteReadCommand
This breaks the workaround used for Star Wars: Rouge Leader,
but that problem has gotten a more proper solution in 4.0-4889.
2015-01-27 09:46:58 +01:00
Markus Wick 43605f8716 Merge pull request #1948 from magumagu/remove-efb-cache
Remove EFB to RAM cache, and simplify code.
2015-01-27 09:42:15 +01:00
skidau c20ef8bb8c Merge pull request #1919 from skidau/AGP
Added support for AGP. Original patch by GreyRogue.
2015-01-27 13:25:14 +11:00
skidau 61c04de7ee Added the ability to map gamepad buttons to hotkeys. 2015-01-27 12:24:47 +11:00
Ryan Houdek 983c7f4f21 [Android] Select the AArch64 recompiler core by default if shown to support ARMv8. 2015-01-26 00:50:25 -06:00
Ryan Houdek 5ba1319abb Merge pull request #1953 from Sonicadvance1/AArch64_fix_paired_loadstores
[AArch64] Fix all of the paired store instructions.
2015-01-25 23:07:44 -06:00
Ryan Houdek c340a324bc Merge pull request #1947 from Sonicadvance1/AArch64_tu_tl_merge
[AArch64] Implement TU/TL merging.
2015-01-25 23:07:32 -06:00
Rohit Nirmal 51b27c5481 Fix building with PCH disabled. 2015-01-25 21:40:31 -06:00
Ryan Houdek 3274df7158 Merge pull request #1961 from Sonicadvance1/AArch64_game_fixes
[AArch64] Fix a load of games.
2015-01-25 18:26:42 -06:00
Ryan Houdek b1fc18cbaa Merge pull request #1958 from Sonicadvance1/Rearchitect_asmcommon
Rearchitect a bit of our AsmCommon routines.
2015-01-25 18:26:17 -06:00
Ryan Houdek d291148016 [AArch64] Implement TU/TL merging.
Basically stolen from the x86 recompiler. Works well on AArch64 as well!
2015-01-25 18:05:33 -06:00
Ryan Houdek f24c466e7e [AArch64] Fix AArch64 instruction encoding. 2015-01-25 17:26:18 -06:00
Rohit Nirmal d10b4d9b8b Fix building with PCH disabled. 2015-01-25 11:34:22 -06:00
Ryan Houdek e4e08b0596 [AArch64] Make sure to load the full destination register on float instructions.
With the float instructions that only affect the lower 64bits of the destination register, we need to make sure to load the full 128bit register.
This ensures that we aren't saving garbage in to the top 64bits.
2015-01-25 03:17:46 -06:00
Ryan Houdek 2483f7b359 [AArch64] Fix addcx. 2015-01-25 03:17:14 -06:00
Ryan Houdek 6791a808b6 [AArch64] Fix addzex. 2015-01-25 03:16:57 -06:00
Ryan Houdek 84b90ad1c6 [AArch64] Fix cmp 2015-01-25 03:16:29 -06:00
Ryan Houdek 12b9ada268 Rearchitect a bit of our AsmCommon routines.
JitCommon is becoming a cluster of x86 specific things and things that are common to multiple recompilers.
This overlap is beginning to cause us issues.

Begin by breaking out the common ASM arrays to have their own file and move the x86 specific routines to their own folder.
2015-01-24 20:06:15 -06:00
Benjamin Przybocki 4f324ad742 Clean Up 2015-01-24 17:10:21 -06:00
Tony Wasserka 43036af944 Merge pull request #1812 from phire/real_zfreeze
Add proper zfreeze support.
2015-01-24 13:29:57 +01:00
Ryan Houdek 93f3816eae [AArch64] Fix all of the paired store instructions.
These had some minor errors in them that I discovered with the hardware test and Viewtiful Joe.
All work as they should now.
2015-01-23 23:18:49 -06:00
Dolphin Bot 4e9497cdb8 Merge pull request #1057 from phire/IsMMIOAddress2
Further improvements to IsMMIOAddress (Includes tests!)
2015-01-24 05:55:35 +01:00
Scott Mansell fe28d1476a Make the IsMMIOAddress function easier to read, add tests.
This also makes IsMMIOAddress more restrictive.
2015-01-24 17:24:40 +13:00
Ryan Houdek 088b6b2ec3 Merge pull request #1081 from phire/jitil-float-mem-opts
JitIL Float load/store optimizations.
2015-01-23 21:47:03 -06:00
Scott Mansell 5c34766809 Propagate elf loading failure up.
Also fix mistake in error message.
2015-01-24 16:28:34 +13:00
Scott Mansell 3106b20fbe JITIL: Improve address calulation for float loads/stores.
For floating loads with a known address, this eliminates the pattern of:

   mov r12d, 80001014
   mov rdx, r12d
   mov rdx, dword ptr [rbp+rdx]

and generates a nice simple:

   mov rdx, dword ptr [rbp+00001014]
2015-01-24 16:08:50 +13:00
Scott Mansell b7d4ff679a IsWiiElf: Optimise inner loop.
Instead of swaping each word of the elf code section(s) looking
for a match to our pattern, we swap the pattern just once (at
compile  time) and test against our swapped pattern.
2015-01-24 15:41:32 +13:00
Scott Mansell 2bf052d8b9 ElfReader: Clean up elf loader code.
* Don't claim to support any features we don't, like relocation
 * Actually zero-out BSS sections, as memory might not be already
   zeroed.
 * Deleted commented out code.
 * Removed GetPointer, updated to more modern interface methods.
 * Updated pointer types style from "u32 *x" to "u32* x"
2015-01-24 15:41:32 +13:00
Scott Mansell 1e5762b163 BootUp: Clean up elf BootUp code.
* The file already exsists, otherwise we wouldn't have gotten
   this far in the boot.
 * We have already checked if it's a Wii or GameCube elf,
   besides, it's too late to change our minds now anyway.
 * On Wii - Don't call EmulatedBS2, it can never succeed as
   it knows nothing about booting elfs. Just call the
   SetupWiiMemory directly if needed.
 * On GameCube - We still call EmulatedBS2_GC, but we stop
   it from running Apploader, which might boot something
   unexpected from the default iso or DVD root folder.
2015-01-24 15:41:28 +13:00
Scott Mansell 2642c3f73b BootElf: Use unique_ptr<u8 []> instead of vectors. 2015-01-24 15:32:38 +13:00
skidau f1a4b98d36 Merge pull request #1879 from magumagu/idle-exception-check
For idle loops, perform an exception check before CoreTiming::Advance.
2015-01-24 12:28:44 +11:00
skidau 7dafad5a8b On DCBZ, mask the memory address to ensure that the address is within physical memory. The AGP disc DCBZ's against an out of bounds physical address. 2015-01-24 12:19:33 +11:00
skidau 8a561b57c3 Added EEPROM saving to file. 2015-01-24 12:15:48 +11:00
skidau a7299a7fff Added support for AGP. Original patch by GreyRogue. 2015-01-24 12:13:23 +11:00
skidau 18cee2dcc7 Added second parameter for the eject disc via StopMotor DI command. The AGP disc expects the disc to still be readable after sending an eject command. 2015-01-24 12:13:23 +11:00
magumagu 6659c15bed Remove EFB to RAM cache, and simplify code. 2015-01-23 10:48:15 -08:00
skidau 0b1d8fae1b Merge pull request #1926 from skidau/emu-wiimote-speaker-adpcm-sample-rate
Fixed the emulated wiimote speaker's ADPCM sample rate.  Patch by hk.konpie
2015-01-23 12:31:20 +11:00
Ryan Houdek db690a1862 Merge pull request #1936 from lioncash/kb
Minor keyboard-related cleanups.
2015-01-22 16:23:34 -06:00
Ryan Houdek bff230fe2e Merge pull request #1945 from skidau/GCPad-Init
Fixed the GCPad and GCKeyboard getting initialised four times each.
2015-01-22 10:41:43 -06:00
Scott Mansell e88c02dece Ensure that ZSlopes save/restore state correctly.
Had to re-do *ShaderManager so they saved their constant arrays
instead of completly rebuilding them on restore state.
2015-01-23 03:32:31 +13:00
skidau 6ad5d4681a Fixed the GCPad and GCKeyboard getting initialised four times each. 2015-01-23 00:06:54 +11:00
Ryan Houdek 85754c63ca [AArch64] Implement mfspr/mtspr XER routines.
These were fairly simple to implement.
2015-01-21 16:56:27 -06:00
Ryan Houdek e7f2a04699 Merge pull request #1938 from CarlKenner/paddedfunctions
Skip zeroes that sometimes pad function to 16 byte boundary (eg. Donkey Kong Country Returns).
2015-01-21 15:17:31 -06:00
Ryan Houdek 80e6367e46 Merge pull request #1869 from Stevoisiak/GeneralConsistency
Minor consistency changes
2015-01-21 13:46:53 -06:00
Ryan Houdek f9fc9d47c0 Merge pull request #1895 from JosJuice/isvolumewiidisc
Don't read from disk when checking volume type
2015-01-21 13:45:28 -06:00
Ryan Houdek 4c9fd63562 Merge pull request #1932 from Buddybenj/freelook
Fix Default Freelook Hotkey to Match Description (For Real This Time)
2015-01-21 13:41:29 -06:00
Ryan Houdek b8b537d96e Merge pull request #1934 from Buddybenj/change-order
Change Order of Some Hotkeys
2015-01-21 13:38:10 -06:00
Ryan Houdek 41dd0667ed Merge pull request #1930 from Sonicadvance1/AArch64_scalar_ops
[AArch64] Move the 64bit floating point instructions to scalar.
2015-01-21 13:28:53 -06:00
Ryan Houdek d86eaea393 Merge pull request #1935 from Sonicadvance1/AArch64_fix_fp_loadstore
[AArch64] Fix bugs in floating point loadstores.
2015-01-21 13:28:46 -06:00
CarlKenner 0ab1517134 Skip zeroes that sometimes pad function to 16 byte boundary (eg. Donkey Kong Country Returns).
This fixes function detection in the debugger, and prevents functions showing up as four bytes inside another function.
2015-01-22 02:00:35 +10:30
Lioncash 52e74a5070 GCKeyboardEmu: Use range-based for loops for iterating the key arrays 2015-01-20 21:28:40 -05:00
Lioncash b1c1a2cc6f Core: Add the GCKeyboard source files to the GCKeyboard VS filter
Was previously in the GCPad filter.
2015-01-20 21:19:51 -05:00
Lioncash 566a7a4829 SI_DeviceKeyboard: Remove superfluous virtual specifiers.
Removes an unnecessary memset as well.
2015-01-20 21:03:58 -05:00
skidau 5cd8a80553 Merge pull request #1893 from skidau/GCKeyboard
Added GameCube Keyboard support.
2015-01-21 12:43:49 +11:00
Ryan Houdek 32bfccce32 [AArch64] Fix bugs in floating point loadstores.
The Backpatching routines didn't correctly understand where to find the real VFP register from, so in most cases it was using D0.
Fixes bugs in the slowmem loadstore routines as well.
2015-01-20 19:11:04 -06:00
Benjamin Przybocki a25b07ec56 Change Order of Some Hotkeys 2015-01-20 18:16:36 -06:00
Ryan Houdek e3cff625cb Merge pull request #1906 from jefflongo/patch-1
Update NetPlayServer.cpp
2015-01-20 17:13:13 -06:00
Benjamin Przybocki 9291d61d98 Fix Default Freelook Hotkey to Match Description (For Real This Time) 2015-01-20 16:46:38 -06:00
Ryan Houdek 67f2ff2e18 [AArch64] Move the 64bit floating point instructions to scalar.
Instead of doing vector operations and throwing away the top 64bits of each operation, let's instead use scalar operations.
On Cortex-A57 this saves us three cycles per vector operation changed to scalar, so this saves 3-9cycles per instruction emulated.
Also puts one less micro-op in to the vector pipeline there.
On the Nvidia Denver I couldn't see any noticeable performance difference, but it's a quirky architecture so it may be noticing we are throwing away
the top bits anyway and optimizing it. The world may never know what's truly happening there.
2015-01-20 16:35:08 -06:00
Ryan Houdek 7f68a357ad Merge pull request #1914 from Sonicadvance1/AArch64_minor_improvements
[AArch64] Minor Improvements and bug fix.
2015-01-20 16:33:17 -06:00
Ryan Houdek cb967a6ff2 Merge pull request #1911 from Sonicadvance1/AArch64_paired_loadstores
[AArch64] Implements paired loadstores
2015-01-20 16:33:08 -06:00
Ryan Houdek 4262d2199a [AArch64] Implements paired loadstores. 2015-01-20 13:57:14 -06:00
skidau 84848b52e0 Fixed the emulated wiimote speaker's ADPCM sample rate. Patch by hk.konpie. 2015-01-21 00:11:54 +11:00
Tillmann Karras 873902b4a3 VertexLoader: remove non-JIT SSE code 2015-01-20 01:51:07 +01:00
Ryan Houdek 38cb9bbfae Merge pull request #1889 from magumagu/remove-hle-end
Remove HLE_HOOK_END.
2015-01-19 18:16:47 -06:00
jefflongo 6b64c309df Update NetPlayServer.cpp
Update NetPlayServer.cpp
2015-01-19 12:13:23 -08:00
Ryan Houdek 98d99a9eef [AArch64] Optimize loadstores address calculation.
For offsets that fit in the instruction encoding then we should just put it in the instruction encoding.
Saves an instruction in a large amount of loadstores.
2015-01-18 16:45:42 -06:00
Ryan Houdek cfd4348b7a [AArch64] Fully implement cmpl and cmpli. 2015-01-18 16:45:00 -06:00
Ryan Houdek 4547b64959 [AArch64] Fixe a bug in constant propagated ComputeRC.
Must not have been thinking, we do want to sign extend when the highest bit is set.
2015-01-18 16:44:33 -06:00
Ryan Houdek 44405e2ec2 Expose the JIT quantize and dequantize arrays to all the JITs.
Removes the ARMv7 arrays that were being used, and lets it use the common one instead.
2015-01-18 16:20:26 -06:00
Tillmann Karras e80b657cf4 Move MOVBE wrappers directly into XEmitter class 2015-01-18 13:29:34 +01:00
Tillmann Karras eb13aa43fe XEmitter: overload MOVBE() 2015-01-18 12:59:33 +01:00
skidau 37a770bb9f Merge pull request #1896 from johnwchadwick/asmcommon-larger-codespace
Increase AsmCommon code space to fix crashes on Linux systems.
2015-01-18 15:22:31 +11:00
skidau a2d98ced67 Merge pull request #1892 from magumagu/backpatch-padding
JIT: Fix the return pointer for backpatched operations.
2015-01-18 14:20:03 +11:00
JosJuice ace060748b Don't read from disk when checking volume type
Should be faster than relying on the OS to cache the magic words.
Also gets rid of the odd recursive call in VolumeDirectory.
2015-01-17 13:21:02 +01:00
John Chadwick 390ec6977c Increase AsmCommon code space to fix crashes on Linux systems.
Revision b058bbd was causing the AsmCommon routines to overrun the code
buffer allocated for it. According to Fiora, it happens only on Linux
because of the fact that Linux has more caller-save registers than other
platforms.
2015-01-17 01:36:45 -05:00
skidau 5dedf88922 Escaped the backslash character and relabelled the = key to EQUALS so that it gets saved in the ini profile. 2015-01-17 11:46:56 +11:00
skidau 5e8ab05cc0 Added GameCube Keyboard support. 2015-01-17 09:36:05 +11:00
magumagu c09e41d652 JIT: Fix the return pointer for backpatch trampolines.
The key change is that for stores less than 5 bytes, the correct
place for the trampoline to return is immediately after the backpatched jump,
not somewhere inside it.
2015-01-15 19:30:59 -08:00
magumagu e92e1e5873 Remove HLE_HOOK_END.
It isn't used, it isn't implemented in interpreter, and the implementation
in JIT is wrong.
2015-01-15 11:54:20 -08:00
Tillmann Karras 904a1c5558 Jit64: fix psq_l/st regression 2015-01-14 23:36:24 +01:00
Stevoisiak f31b688cf5 More minor consistency changes 2015-01-12 22:28:12 -05:00
Stevoisiak cb86db7b68 Minor consistency changes
Mostly small changes, like capitalization and spelling
2015-01-12 15:18:18 -05:00
Matthew Parlane cf8333abd2 Merge pull request #1876 from Parlane/is_dir_fileio_fix
Don't open a file handle for a directory in FileIO
2015-01-13 08:29:23 +13:00
magumagu 213eb730d0 For idle loops, don't explicitly call CoreTiming::Advance.
This is more consistent with the way Dolphin behaves with idle skipping off.
2015-01-11 20:42:08 -08:00
skidau 7105e5a8f0 Merge pull request #1863 from magumagu/dma-efb
Allow locked L1 DMA to write to the EFB
2015-01-12 12:03:46 +11:00
Matthew Parlane 729a827372 Don't open a file handle for a directory in FileIO 2015-01-12 13:25:39 +13:00
magumagu 90d0096653 JIT: cleanup instrction merging for idle loop and dcbst.
Use MergeAllowedNextInstructions where appropriate, and read from the
instruction buffer rather than poking directly into memory.
2015-01-11 12:53:23 -08:00
Fiora d5e342f229 JIT: fix regression in non-fastmem for psq_st 2015-01-11 11:20:58 -08:00
Fiora e8cfcd3aeb JIT: make instruction merging generic
Now it should be easier to merge more than 2-instruction-long sequences.
Also correct some minor inconsistencies in behavior between instruction
merging cases.
2015-01-11 09:11:18 -08:00
Ryan Houdek 074f246c69 Merge pull request #1868 from rohit-n/sign-compare
Fix -Wsign-compare warnings.
2015-01-11 07:08:55 -06:00
Ryan Houdek 83a415198d Merge pull request #1852 from Sonicadvance1/AArch64_Recompiler_Improvements
Implements a large portion of the recompiler for AArch64
2015-01-11 07:08:16 -06:00
Rohit Nirmal 577af09d1b Fix -Wsign-compare warnings. 2015-01-11 01:38:06 -06:00
Pierre Bourdon 394257f33b Merge pull request #1798 from FioraAeterna/overclock
Support overclocking and underclocking the Gamecube CPU
2015-01-11 06:12:27 +01:00
magumagu 9b0bf34d00 Allow locked L1 DMA to write to the EFB.
I wouldn't have guessed that anyone would do this, but apparently people
who write video codecs love doing weird stuff with the locked L1 cache.
2015-01-10 15:08:21 -08:00
Fiora 8237004448 JIT: optimize for the common case of unquantized psq_l/st
Optimistically assume used GQRs are 0 in blocks that only use one GQR, and
bail at the start of the block and recompile if that assumption fails.

Many games use almost entirely unquantized stores (e.g. Rebel Strike, Sonic
Colors), so this will likely be a big performance improvement across the board
for games with heavy use of paired singles.
2015-01-10 14:14:43 -08:00
Fiora c2c950108d Support overclocking and underclocking the Gamecube CPU
Won't work with all games, but provides a nice way to spend extra CPU to make
a variable framerate game faster (e.g. Spyro or The Last Story), or to make
a game use less CPU at the cost of a lower framerate (e.g. Rogue Leader).
2015-01-10 10:46:38 -08:00
comex e32d63c43d Merge pull request #1865 from magumagu/getpointer-break
Add missing "break" in Memory::GetPointer.
2015-01-10 02:46:42 -05:00
magumagu 5bd3123b2a Add missing "break" in Memory::GetPointer. 2015-01-09 22:47:45 -08:00
Ryan Hitchman 1bd01469c2 WiimoteReal/Linux: log connect failures at WARNING level 2015-01-09 22:45:03 -08:00
Ryan Hitchman 09f71b25b4 WiimoteReal: retry failed connections quickly
Retry a failed connection after a short delay -- hardware sometimes needs some
time to settle, or other Bluetooth programs are attempting to query the
device as well (e.g. blueman-manager).
2015-01-09 22:38:16 -08:00
Ryan Hitchman c1b391d08b WiimoteReal: fix Linux Bluetooth connectivity on Linux >= 3.5
An uninitialized struct member "l2_bdaddr_type" was making most connect calls
fail with "Invalid argument". The connection could succeed if the unitialized
memory happened to have a zero byte in the appropriate location.
2015-01-09 22:38:11 -08:00
skidau 27300d5d59 Merge pull request #1848 from skidau/si-devices-id
Fixed the GC Steering Wheel and Dance Mat identification.
2015-01-10 12:16:36 +11:00
skidau c1962ac9a6 Merge pull request #1842 from magumagu/hle-crash
OSREPORT: Fix out-of-bounds string access.
2015-01-10 12:15:57 +11:00
Fiora 55b509b739 Interpreter: fix slwx 2015-01-09 11:39:41 -08:00
Ryan Houdek 5a28883f9e [AArch64] Implements 15 floating loadstores. 2015-01-08 19:56:47 -06:00
Ryan Houdek 7370473eb3 [AArch64] Implement 19 floating point instructions 2015-01-08 19:56:47 -06:00
Ryan Houdek 6dff4421d3 [AArch64] Implement 24 paired instructions. 2015-01-08 19:56:47 -06:00
Ryan Houdek 602702fdcb [AArch64] Implement three system register instructions. 2015-01-08 19:56:47 -06:00
Ryan Houdek 0dd3804cf7 [AArch64] Implement 13 integer instructions. 2015-01-08 19:56:47 -06:00
Ryan Houdek be0d552d54 [AArch64] Enable the full range of integer loadstores. 2015-01-08 19:56:47 -06:00
Ryan Houdek b1169a9773 [AArch64] Flush FPRs if they won't be used be used the rest of the block. 2015-01-08 19:56:47 -06:00
Ryan Houdek 3fe0b5b969 [AArch64] Add floating point backpatching support. 2015-01-08 19:56:47 -06:00
Ryan Houdek f1443bec1e [AArch64] Add a memory dump routine.
Allows me to easily disassemble a block of code from the Nexus 9 by dumping it to logcat.
2015-01-08 19:56:47 -06:00
Ryan Houdek b3201be95f [AArch64] Add some static_asserts.
Makes sure we have a few PPCState values within range of STRB's range.
2015-01-08 19:56:47 -06:00
Ryan Houdek 74de345b51 [AArch64] Fix loads with update.
Update register wasn't being loaded in to the cache prior pushing the address in to it.
Adds float push and pop routines around the calls that need it as well.
2015-01-08 19:56:47 -06:00
Ryan Houdek 52a532370a [AArch64] Implement FPR Cache. 2015-01-08 19:56:47 -06:00
skidau 25c6f6e6a1 Merge pull request #1782 from FL-dolphinemu/master
Issue 7968: Added keybinds for increasing, decreasing, and muting audio.
2015-01-08 14:09:18 +11:00
Tillmann Karras 4d1face540 Fix indentation 2015-01-07 21:51:47 +01:00
skidau 99ca789b97 Fixed the GC Steering Wheel and Dance Mat identification. 2015-01-07 23:40:41 +11:00
skidau 0d952534c7 Corrects the origin in the case where a GC Controller has been set in the controller properties, but a controller has not been plugged into the adapter. 2015-01-07 17:12:30 +11:00
skidau ab87309917 Merge pull request #1838 from JosJuice/clearcoverinterrupt-timing
DVDInterface: Use default delay for DVDLowClearCoverInterrupt
2015-01-07 12:41:21 +11:00
skidau c0ff677674 Merge pull request #1763 from skidau/GC-Adapter-error-recovery
Added an error recovery mechanism for the GC Adapter.
2015-01-07 12:40:14 +11:00
magumagu f1420472c8 OSREPORT: Fix out-of-bounds string access. 2015-01-06 17:12:31 -08:00
Dolphin Bot 89b7f1057f Merge pull request #1804 from FioraAeterna/fastermmu2_master
MMU: various improvements, bugfixes, optimizations
2015-01-07 00:49:58 +01:00
Markus Wick a2ec4d5f51 Merge pull request #1836 from FioraAeterna/catchillegalinst
JIT: catch illegal instruction errors
2015-01-06 23:10:46 +01:00
JosJuice 5162ed4d5f DVDInterface: Use default delay for DVDLowClearCoverInterrupt
The old delay was probably a hack to make up for the incorrect
disc speeds. Using it with the new disc speeds made
Resident Evil Archives: Resident Evil Zero freeze when starting.
2015-01-06 21:25:17 +01:00
Markus Wick f63361ad26 Merge pull request #1810 from Stevoisiak/FreelookDefaultHotkeyFix
Changed default freelook hotkey to match description
2015-01-06 20:52:00 +01:00
Markus Wick 09a10622dd Merge pull request #1621 from FioraAeterna/pscleanup
JIT: cleanups/optimizations for ps loadstore
2015-01-06 20:12:50 +01:00
Fiora 8f7c799794 JIT: catch illegal instruction errors
Still crash, but at least give a message informing the world that it happened.
2015-01-06 11:06:49 -08:00
Markus Wick 25fac0282c Merge pull request #1764 from Armada651/safe-exclusive
D3D: Only try to apply exclusive mode when the renderer is in focus.
2015-01-06 11:00:47 +01:00
Markus Wick d8d4c94e07 Merge pull request #1819 from Tilka/cmake
CMake: simplify some expressions
2015-01-06 09:27:59 +01:00
Fiora e85f0ff179 MMU: fix problems with blocks that cross vmem page boundaries
In rare cases, this can result in a violation of the JIT block cache constraint
that blocks must end in the same place. This can cause instability, lockups,
due to blocks not properly being invalidated properly.
l Please enter the commit message for your changes. Lines starting
2015-01-05 10:46:04 -08:00
Fiora b058bbd223 JIT: move mfcr code to JitAsmCommon
It's like 80+ instructions, so inlining it on every use of mfcr is probably
not the best for the icache.
2015-01-05 10:46:03 -08:00
Fiora 821db9798c Memmap: clean up function argument names.
To be more consistent overall.
2015-01-05 10:46:02 -08:00
Fiora 3d2492627f Fastmem: increase the size of trampoline cache in MMU mode, check space
Fastmem in MMU mode generates way more trampolines than normal, so we need
a bunch more space too, lest we run out of room.
2015-01-05 10:46:01 -08:00
Fiora 1ee83e332e MMU: optimize PTE lookup code
Pull out calculation of PTE1 instead of comparing the separate parts.
2015-01-05 10:46:01 -08:00
Fiora 16e756cb39 MMU: fix TLB behavior on setting C bit
We shouldn't be updating the TLB when setting the C bit.

Bug reported by tueidj.
2015-01-05 10:45:59 -08:00
Fiora 8903df7300 MMU: simplify code to restore original data register after failed load
Instead of passing the value around constantly, just store it in the regcache,
note where it is, and restore it on the exception path.

This saves a whole bunch of pushing and popping and gives a ~5% speed boost
in Rebel Strike. It's a bit ugly, but it simplifies a lot of code and is
faster, too.
2015-01-05 10:45:59 -08:00