Commit Graph

5680 Commits

Author SHA1 Message Date
Rachel Bryk 3df51e553f Fix crash when server's client disconnects. 2015-03-07 04:40:24 -05:00
JosJuice 4a41ab1715 Fix 4.0-5689 regression (AR codes, patches)
CreateCodeTab, ARCodeAddEdit and PatchAddEdit
need to be able to modify arCodes/onFrame.
2015-03-06 12:26:40 +01:00
magumagu 92ba677371 Merge pull request #2174 from skidau/warning-fix-gc-adapter
Warning fix
2015-03-05 14:56:19 -08:00
skidau ef3fd68603 Warning fix 2015-03-06 09:34:38 +11:00
Tillmann Karras 45dbcf0ed2 Jit64: use MRegSum where appropriate 2015-03-05 21:58:28 +01:00
Tillmann Karras e27fae22d8 Jit64: drop a FIXME that has been fixed for years
See 6cdb40a194.
2015-03-05 21:58:28 +01:00
Lioncash b7514955e5 Merge pull request #2113 from Stevoisiak/VolumeCleanup
Basic volume code cleanup
2015-03-05 12:18:53 -05:00
skidau 203c64e66d Changed the GC Adapter rumble command to work like other controllers. 2015-03-05 23:57:18 +11:00
skidau 4cf4cee30e Removed the GC Adapter "Use Thread" option as it was not useful. 2015-03-05 23:30:43 +11:00
skidau e5277a5f49 Ignore invalid rumble data sent over Netplay to the GC Adapter 2015-03-05 23:11:48 +11:00
skidau dee6a04980 Moved the gcpad calibration from construction to runtime 2015-03-05 23:06:19 +11:00
Lioncash a11bbe6fea PPCTables: Remove FL_OUT_S.
This is unused, and since it had the same value as FL_OUT_D, it was unnecessarily setting the rS register as an output, even on instructions that only have FL_OUT_D set.
2015-03-03 16:23:28 -05:00
Lioncash 139dbcb8e2 Interpreter_Tables: Fix wrong flags and add missing ones 2015-03-03 16:23:21 -05:00
Darius Goad f4750804ab Add various loads and stores to JitIL 2015-03-03 11:17:25 -06:00
Ryan Houdek 81242dd4a7 [AArch64] Allow the other FPR push/pop routines to use a temporary register. 2015-03-02 21:38:09 -06:00
Tillmann Karras a5ea6c6e93 enet: fix Visual Studio files 2015-03-02 22:20:37 +01:00
Ryan Houdek f1a9db9bdc [AArch64] Stop violating the AAPCS64 so much. 2015-03-02 11:21:15 -06:00
skidau 939159cd71 Cleared the status of the GC Adapter before populating it with new data 2015-03-02 11:08:26 +11:00
Tillmann Karras 88264f5712 Fix -Wswitch warning 2015-03-01 16:17:32 +01:00
skidau 4dd0813dcf Merge pull request #2133 from randomstuff/hotkeys
Fix hotkeys for Linux
2015-02-28 10:59:18 +11:00
Markus Wick 4f9fcbaba9 Merge pull request #2120 from JosJuice/show-default-gameini
ISOProperties: Allow opening region-free INIs with "Show Defaults" button
2015-02-27 17:58:42 +01:00
skidau 2a41ac4072 Merge pull request #2123 from RachelBryk/nonmodal-isoprops
Make iso properties non modal.
2015-02-27 13:25:46 +11:00
skidau 85359d5169 Merge pull request #2124 from RachelBryk/framelimit-hotkeys
Fix order of some hotkeys
2015-02-27 13:24:32 +11:00
Stevoisiak 06cb85991e De-capitalized CountryCode 2015-02-26 16:57:31 -05:00
Ziek a629555e6b Added Gui elements in Netplay Setup Diag so a person can choose a traversal server
Fixed bug with UPnP so that it will grab the proper address and protocal
Fixed bug that caused dolphin to freeze when host codes were to large
2015-02-25 18:28:26 -08:00
Ziek 1dea3780a7 Fixed issue where players were not disconnecting correctly 2015-02-25 18:28:26 -08:00
Ziek 074d688884 Change netplay initial gctime to be determined by the hosts initial time 2015-02-25 18:28:26 -08:00
Ziek 4cdc307b87 Moved Traversal Client code over from old netplay
Moved over gui code for copying host code
added gui to netplay diag setup to switch between direct and traversal connection
2015-02-25 18:28:25 -08:00
Ziek 461a54338b Switched tcp over to enet 2015-02-25 18:17:50 -08:00
Gabriel Corona 1cae151c9c Avoid conflicts between hotkeys and global keybindings for Linux
Alt+foo are usually used as global keybindings.
2015-02-26 01:40:06 +01:00
Gabriel Corona 13d43c0cde Fix linux hotkeys
Backticks are necessary when the key is not /^[A-Za-Z]*$/.
2015-02-26 01:29:52 +01:00
Lioncash 7408de7e79 Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2
Basic Formatting/Whitespace Cleanup
2015-02-25 18:07:56 -05:00
Stevoisiak 93b16a4a2d Formatting/Whitespace Cleanup
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
Rachel Bryk 2c54ca0f84 Fix order of some hotkeys 2015-02-25 00:42:40 -05:00
skidau f4e42b394c Merge pull request #2106 from magumagu/elf-translation-registers
Correctly set up MSR and BAT registers for ELF loading.
2015-02-25 12:42:48 +11:00
Rachel Bryk 2df8190e1a Make iso properties non modal. 2015-02-24 19:11:03 -05:00
degasus 967eaad8df VideoCommon: rename efb2tex and efb2ram 2015-02-24 23:10:13 +01:00
degasus 1313d3461f VideoCommon: always enable efb copy 2015-02-24 23:01:01 +01:00
JosJuice a1f0f60a79 CoreParameter: Refactor game INI code 2015-02-24 20:01:11 +01:00
Ryan Houdek 28e55d29f2 Fix a crash with fastmem disabled.
When the core is busy shutting down only uninstall the exception handler if fastmem is actually enabled.
We only install when fastmem is enabled, so only uninstall when it is as well.

Fixes a crash I was getting on ARMv7.
2015-02-24 04:52:37 -06:00
skidau bd0d5c1a22 Merge pull request #2102 from magumagu/ipchle-net-regression
Fix crash in Wii games using IPCHLE networking.
2015-02-24 13:14:48 +11:00
skidau bf61abf22b Merge pull request #2093 from magumagu/gc-bios-hack
Hack around our terrible GC BIOS emulation.
2015-02-24 13:11:25 +11:00
Tillmann Karras f298f00e1b Clean up the intrinsics #ifdef mess 2015-02-24 01:02:36 +01:00
Ryan Houdek 7a61bd5519 Merge pull request #2107 from Sonicadvance1/aarch64_fix_lha
[AArch64] Fix fastmem lha/lhax.
2015-02-23 15:08:42 -06:00
magumagu b9157c5a36 Merge pull request #2090 from magumagu/jit-gatherpipe-address
Refactor gather-pipe address checking.
2015-02-23 12:46:04 -08:00
magumagu 0ff7e20829 Merge pull request #2109 from lioncash/cr
Interpreter: Fix Helper_UpdateCR1
2015-02-23 11:23:21 -08:00
Lioncash 6fe59d82e1 Interpreter: Fix Helper_UpdateCR1
This previously shifted off-by-one
2015-02-23 06:56:01 -05:00
Ryan Houdek 859eeb6d5b [AArch64] Fix fastmem lha/lhax.
When the fastmem loadstore would fail, we would disassemble a few instructions to determine if lhbrx or lhz*
This was failing since I was checking the REV16 instruction that appears after the LDRH. Fixed it to make sure it was checking the correct instruction
which is SXTH.

Fixes an issue where homebrew wouldn't load with fastmem enabled.
2015-02-22 22:58:10 -06:00
magumagu fca5e176b3 Correctly set up MSR and BAT registers for ELF loading. 2015-02-22 20:51:50 -08:00
skidau 793abccb5e Merge pull request #1942 from Buddybenj/No-Intro
Replace Country Names With No-Intro Names
2015-02-23 12:56:28 +11:00
Lioncash 1a913138d5 Interpreter: Uncomment code related to cmp and cmpl
This is actually correct. Also cmpli has this uncommented as well.
2015-02-22 19:07:09 -05:00
magumagu b5020b1675 Fix crash in Wii games using IPCHLE networking.
Address passed from IOS to PowerPC should be in the 0x90000000 range, not
0x10000000.

Issue 8264.
2015-02-22 14:07:05 -08:00
Dolphin Bot 03ffab4249 Merge pull request #2098 from Tilka/fix_warning
Fix -Wmissing-variable-declarations warning
2015-02-22 20:16:11 +01:00
Tillmann Karras 8d19f62b69 Fix -Wmissing-variable-declarations warning 2015-02-22 20:08:28 +01:00
magumagu 917a900ccb Refactor gather-pipe address checking.
The implementation of IsOptimizableGatherPipeWrite is extremely simple
now, but it will get a bit more complicated with dynamic-bat.
2015-02-22 11:01:42 -08:00
magumagu 18ada7a0f5 Merge pull request #2033 from magumagu/mmio-fix-addresses
Fix the addresses of MMIO registers.
2015-02-22 10:58:25 -08:00
Fiora c54a8c54fb Merge pull request #1994 from Tilka/vtune
JitRegister: fix VTune integration
2015-02-22 07:58:12 -08:00
Lioncash bfa5dcc891 Interpreter: Set the FPCC bits correctly for ordered/unordered FP compares
Setting the whole FPRF is slightly incorrect, this should only modify the FPCC bits; the class bit should be preserved.
2015-02-22 02:19:13 -05:00
magumagu 97b7f26d58 Hack around our terrible GC BIOS emulation.
Fixes a crash launching F-Zero GX.
2015-02-21 20:07:54 -08:00
Lioncash 09319a1e11 Interpreter: Rearrange ordered/unordered compares
Comparing floating point numbers with == can trigger warnings (and have static analysis tools complain). So we make it the else case.
This also more closely resembles the Gekko manual.
2015-02-21 22:26:23 -05:00
Lioncash 70e1121b29 Interpreter_Tables: srawix only uses rS, not rS and rB.
srawix's input/output is defined as rA, rS, SH, where SH is an immediate for the shift amount.
2015-02-21 21:20:43 -05:00
Lioncash 7c244766dc Interpreter: Use correct destination for psq_l, psq_lx, psq_lu, and psq_lux.
Gekko manual defines these as storing to rD, not rS.

Also removed FL_OUT_FLOAT_S, since nothing uses it now.
2015-02-21 21:20:41 -05:00
Lioncash 7bc2830520 Interpreter: Use Helper_Get_EA_X() for eciwx and ecowx
Cleans up the functions a little.
2015-02-21 21:20:40 -05:00
Lioncash dc6cc909e5 Interpreter: Use FL_IN_A0B for ecowx
ecowx uses the value zero if rA is zero.
2015-02-21 21:20:39 -05:00
Lioncash a8199a1070 Interpreter: Use correct destination for eciwx
Gekko manual defines the destination as rD. Also, if rA is zero, the
value zero is used, so FL_IN_AB is changed to FL_IN_A0B.
2015-02-21 21:20:38 -05:00
Pierre Bourdon 860c889454 Merge pull request #2076 from tanishalfelven/optimize-IsCPUThread
IsCPUThread() Speed Up
2015-02-22 00:54:55 +01:00
Tanis 568f0dca78 In hope of speeding up ```IsCPUThread()``` got rid of id checking and instead implemented a TLS boolean...
Made initialization of s_tls_is_cpu_key threadsafe
2015-02-21 17:52:49 -06:00
magumagu 9e29154b08 Merge pull request #1988 from magumagu/fast-checkgatherpipe
Use faster CheckGatherPipe from JIT.
2015-02-21 15:07:59 -08:00
Pierre Bourdon e8f37bc3fe Merge pull request #2091 from magumagu/lmw-saved-regs
Fix registersInUse in Jit64::lmw.
2015-02-21 18:42:17 +01:00
magumagu 018a7f1ec9 Fix registersInUse in Jit64::lmw.
Doesn't fix any known issue at the moment, but I ran into this bug with
dynamic-bat.
2015-02-21 09:31:20 -08:00
Markus Wick 95c48b2be7 Merge pull request #2018 from JosJuice/gameini-region-wildcard
Support game INIs that match all regions
2015-02-21 15:47:57 +01:00
magumagu 0360e01eaf Merge pull request #2040 from magumagu/gc-memmap
Try to fix our memory map to match the GameCube.
2015-02-19 15:44:36 -08:00
magumagu 314b241220 Try to fix our memory map to match the GameCube.
This basically just restores the RAM mirroring that existed before PR1856
(address translation).
2015-02-19 15:02:51 -08:00
Pierre Bourdon fbbbad98e9 Merge pull request #2079 from lioncash/tables
PowerPC: Minor cleanups.
2015-02-19 22:51:34 +01:00
magumagu d0c675af83 Merge pull request #2080 from lioncash/interp
Interpreter: Remove unnecessary prototypes and includes
2015-02-19 11:19:20 -08:00
Lioncash 8401b5a1f2 Interpreter: Remove unnecessary prototypes and includes 2015-02-19 13:20:24 -05:00
Lioncash a60d3306b1 PowerPC: Get rid of magic numbers related to interp/JIT initialization. 2015-02-19 12:16:53 -05:00
Lioncash d32359c915 PPCTables: Simplify UsesFPU
We can just retrieve the op info and check if the FPU flag is present
2015-02-19 12:16:44 -05:00
Pierre Bourdon 6a14300c9c Merge pull request #2078 from lioncash/fwd
PPCTables: Remove an unnecessary forward declaration
2015-02-19 15:51:15 +01:00
Lioncash e4df6026c4 PPCTables: Remove an unnecessary forward declaration
This class name isn't used anymore.
2015-02-19 09:08:00 -05:00
Lioncash 0fc3166b2f PPCTables: Correct some flag descriptions 2015-02-19 08:56:18 -05:00
Lioncash c8c61041ba Merge pull request #2007 from lioncash/si
Core: Move several files into the correct VS directory filter.
2015-02-18 21:33:39 -05:00
Ryan Houdek 19f8524304 Fix mulli's flags in the instruction tables.
It doesn't set RC, so this flag is incorrect.
2015-02-18 16:26:12 -06:00
Shawn Hoffman f91e8e9423 make libusb vcxproj use standard dolphin template and don't compile strerror.c. 2015-02-18 13:29:39 -08:00
Pierre Bourdon 8cc6e5cff9 Merge pull request #1854 from JosJuice/read-disc-after-delay
DVDInterface: Read disc after delay, not before
2015-02-18 20:35:07 +00:00
Pierre Bourdon 042fcbcbca Merge pull request #2067 from magumagu/cputhread-assert
Disable an IsCPUThread() assert in Release builds.
2015-02-18 16:22:23 +00:00
Ryan Houdek ef2fba2e85 Merge pull request #2070 from lioncash/unused
PowerPC: Remove unused enum values
2015-02-17 23:42:46 -06:00
Lioncash 78d917b0b3 PowerPC: Remove unused enum values 2015-02-18 00:37:32 -05:00
Lioncash 0b3a2ae4ca PowerPC: Document the instruction table flags
Should make it easier for newcomers to get up to speed.
2015-02-18 00:17:51 -05:00
Buddybenj 265a21a565 Replace Country Names With No-Intro Names 2015-02-17 18:50:10 -06:00
Ryan Houdek 127e742992 Merge pull request #2046 from Mullin/Fix-unsigned/signed-stores
[ARMv7] Fix unsigned/signed stores
2015-02-17 14:38:36 -06:00
Mullin 39aa2432a6 Fix signed/unsigned stores 2015-02-17 21:29:01 +01:00
Fiora 53bf21e15a Merge pull request #2066 from lpereira/regcache-with-variadic-tpl
Jit64: Use variadic templates for RegCache locking
2015-02-17 08:53:07 -08:00
Lioncash 39e121e551 Merge pull request #2064 from magcius/fix-tilt
WiimoteEmu: Add back the calibrated accel data to the EEPROM
2015-02-17 11:14:09 -05:00
JosJuice 3ac0977bc6 DVDInterface: Read disc after delay, not before 2015-02-17 14:57:36 +01:00
Leandro Pereira 1162c5344b Jit64: Use variadic templates for RegCache locking 2015-02-17 10:01:42 -02:00
Ryan Houdek 3aa605236d Merge pull request #2041 from Sonicadvance1/AArch64_vertex_loader
[AArch64] Vertex loader and things
2015-02-17 00:51:51 -06:00
magumagu 77a0bfdd8f Merge pull request #2055 from magumagu/fakevmem-code
Allow executing code out of FakeVMEM.
2015-02-16 19:13:14 -08:00
magumagu cce503c879 Disable an IsCPUThread() assert in Release builds.
IsCPUThread is extremely slow at the moment, and this code runs
frequently.
2015-02-16 19:07:42 -08:00
Jasper St. Pierre e53268be1b WiimoteEmu: Add back the calibrated accel data to the EEPROM
It seems that games actually read this to determine how to act, which
isn't particularly strange. I was imagining it was more for the
Wiimote's internal normalization, but I was wrong.
2015-02-16 15:16:23 -08:00
Ryan Houdek f54a0d3ff4 [AArch64] Minor floating point loadstore improvements.
These use the Vector x Element FMUL instruction to improve speeds slightly.
Should give ~3cycle improvement per quantized loadstore done.
2015-02-16 16:51:39 -06:00
magumagu f316265973 Fix the addresses of MMIO registers.
MMIO registers are located at 0x0C000000 and 0x0D000000, not 0xCC000000.
The 0xCC000000 addresses are just an artifact of address translation.
2015-02-15 18:29:37 -08:00
magumagu 5b6a947e8f Merge pull request #2035 from magumagu/remove-bat-option
Remove the BAT checkbox/setting/implementation.
2015-02-15 17:27:18 -08:00
Markus Wick f38b3ace38 Merge pull request #2038 from magumagu/disable-thread-safety-checks
Disable thread safety assertions added in PR1987.
2015-02-15 10:33:19 +01:00
skidau d601657c99 Merge pull request #2045 from greyrogue/master
Add Datel AGP save commands for SRAM/FRAM.  Improve EEPROM.
2015-02-15 12:57:58 +11:00
greyrogue 2d4aa2a195 Add save commands for SRAM/FRAM. Improve EEPROM.
Handle possible endian file read issues at file access time instead of
using Swap64 on every access.
Code comments and clean up.
2015-02-14 20:36:26 -05:00
skidau 72e8e78ec8 Merge pull request #2037 from magumagu/illegal-inst-handling
Improve illegal instruction handling.
2015-02-15 12:34:08 +11:00
skidau 32d8f887fe Merge pull request #2032 from mathieui/update-libusb-externals
Update the libusb in externals to 1.0.19 (latest)
2015-02-15 12:32:10 +11:00
Pierre Bourdon 3500740dd4 Windows AVIDump: support "silent" frame dumping
When enabled, the silent option will avoid popping up dialog boxes for
overwrite confirmation or codec selection. The codec selection defaults to
uncompressed RGB.

This is required for FifoCI on Windows which needs to drive Dolphin from the
command line exclusively.
2015-02-14 23:38:14 +01:00
magumagu 001bf9152e Allow executing code out of FakeVMEM.
Fixes regression from PR1856 (address translation).
2015-02-14 14:08:46 -08:00
Lioncash e3b9be6dbb Core: Move several files into the correct VS directory filter 2015-02-13 20:57:23 -05:00
Tillmann Karras a7cc36e711 Movie: reintroduce a local variable 2015-02-14 02:27:15 +01:00
Rachel Bryk b66df8424a Remove an unneeded global variable from Movie.cpp. 2015-02-13 20:11:44 -05:00
Ryan Houdek b989c2fd8f [AArch64] Fix another assert in the JIT register cache. 2015-02-13 12:16:06 -06:00
Tillmann Karras d33e760c55 Jit64: turn short jmp into near jmp
Fixes a regression from #1856's ac54c6a.
2015-02-13 07:51:34 +01:00
magumagu f9e8ad39fc Fix typos from PR1856 (address translation). 2015-02-12 12:11:33 -08:00
magumagu 98b809a05e Disable thread safety assertions added in PR1987.
We do a whole bunch of non-threadsafe stuff, especially in the UI, and I'm
probably not going to get around to implementing a threadsafe framework
for interaction between the UI and the CPU thread anytime soon.  See issue
8220.
2015-02-12 11:54:17 -08:00
magumagu 985087c7e2 Make all unknown opcodes behave consistently.
Consistently fall back to the interpreter for unknown instructions, and
make sure GetOpInfo() always returns a non-null pointer.
2015-02-11 22:18:33 -08:00
magumagu e640ef9d7b Improve illegal instruction handling.
This should more reliably show an error message for illegal
instructions.
2015-02-11 21:01:00 -08:00
magumagu aa40f750d4 Remove the BAT checkbox/setting/implementation.
The current version of the setting is useless, and the real implementation
(PR1882) will be always-on, and won't use any of the existing code.
2015-02-11 20:24:51 -08:00
magumagu 49f223a211 Remove setting "BlockMerging".
It isn't hooked up to anything anymore, and it isn't the sort of thing we
want users messing with anyway.
2015-02-11 19:52:48 -08:00
Tillmann Karras 0ec48e0ec9 JitRegister: fix VTune integration 2015-02-12 02:14:49 +01:00
magumagu 0e0a196a1c Merge pull request #1856 from magumagu/correct-translation-disable-2
Make address translation respect the CPU translation mode
2015-02-11 17:04:12 -08:00
Tillmann Karras 4fa38f0c02 Externals: update libusb to version 1.0.19 2015-02-12 01:04:43 +01:00
magumagu 4193350d22 Memmap: add an explanation of Dolphin's memory layout. 2015-02-11 15:22:21 -08:00
skidau 4ff5ec7117 Merge pull request #1984 from mathieui/GCAdapter-fixes
Fix issues with the GC adapter handling code
2015-02-12 09:54:53 +11:00
magumagu aaee23d1b4 Fix ARM64 build for address translation changes. 2015-02-11 13:56:38 -08:00
magumagu e136c8a066 PowerPC: misc cleanup. 2015-02-11 13:56:36 -08:00
magumagu ac54c6a4e2 Make address translation respect the CPU translation mode.
The PowerPC CPU has bits in MSR (DR and IR) which control whether
addresses are translated. We should respect these instead of mixing
physical addresses and translated addresses into the same address space.

This is mostly mass-renaming calls to memory accesses APIs from places
which expect address translation to use a different version from those
which do not expect address translation.

This does very little on its own, but it's the first step to a correct BAT
implementation.
2015-02-11 13:56:22 -08:00
JosJuice f9d6c17c08 Use CoreParameter's game INI functions in more places 2015-02-11 19:01:05 +01:00
JosJuice e186104960 Don't use revision-specific unique ID strings outside of CoreParameter 2015-02-11 19:01:04 +01:00
JosJuice 47e67f9696 CoreParameter: Support game INIs that match all regions 2015-02-11 19:01:03 +01:00
JosJuice 8670f2a627 CoreParameter: Unify LoadDefaultGameIni and LoadLocalGameIni
A side effect of this is that user INIs now can specify revisions.
I don't think anyone will use it, but there's no reason to not allow it.
2015-02-11 19:01:03 +01:00
JosJuice d73a6ea3b7 Move some BootManager game INI code to CoreParameter 2015-02-11 19:01:02 +01:00
magumagu d9988ee9b5 Merge pull request #1987 from magumagu/thread-safety
Cleanup usage of atomic/threadsafe functions
2015-02-10 13:48:12 -08:00
magumagu 0f96a0104e Merge pull request #1752 from Buddybenj/clean-up
Clean Up
2015-02-10 11:39:14 -08:00
Lioncash 07556b4849 WiimoteEmu: Change define into a variable and move it to where it's used. 2015-02-10 11:46:04 -05:00
Markus Wick 2aef84d80c Merge pull request #2025 from phire/be-neobrain
Remove VBeam Speed Hack.
2015-02-09 12:55:58 +01:00
Scott Mansell 4cb01673a0 Remove now useless NumFields Function which always returned 1. 2015-02-10 00:48:06 +13:00
Scott Mansell 8f416821ad Remove VBeam Speedhack. 2015-02-09 23:10:30 +13:00
mr.greywater a1f8c232b2 Fix warning message when loading german discs
Added COUNTRY_GERMANY as EUR_DIR so it will not show the warning message that the GCM/ISO is invalid. Also refactors the code to remove duplicate code.
2015-02-08 16:38:35 +01:00
Lioncash 537b9e507b Merge pull request #1998 from FL-dolphinemu/align_g_HKData_struct
Vertical aligned all members of g_HKData struct.
2015-02-07 21:31:45 -05:00
Fiora 73d65f3ad3 Merge pull request #1874 from magumagu/remove-unchecked-reads
JIT: cleanup instrction merging for idle loop and dcbst.
2015-02-07 13:48:22 -08:00
skidau 8f4bcf3ec3 Merge pull request #2012 from lioncash/memswitch
Memmap: Fix switch fallthroughs
2015-02-06 21:47:24 +11:00
skidau 66d80b75e2 Merge pull request #1939 from Sintendo/dspjit_ccnits
Minor DSP JIT optimizations
2015-02-06 13:53:09 +11:00
JosJuice 3414f818cd DVDInterface: Get rid of DVDCommandResult struct
It's only used in one place and is no longer necesssary.
2015-02-05 15:10:31 +01:00
JosJuice af4f872dfe DVDInterface: Schedule event in ExecuteCommand 2015-02-05 15:10:14 +01:00
mathieui 8e556603af Fix issues with the GC adapter handling code
If we successfully detach the kernel driver from the interface, we
should continue instead of aborting the setup.

And we should not use libusb_handle_events(), as the API says it is only
for backwards compatibility. Additionally, if the adapter thread is not
active, dolphin will take 60 seconds to close because the
libusb_handle_events() timeout is hardcoded to 60 seconds. Instead, use
libusb_handle_events_timeout_completed() with a timeout of 1 second.
Also, cancel the libusb transfers before the join(), to be able to close
the usb device without libusb screaming in the background (and
potentially crashing).

And finally, split the Init() and Shutdown() functions to avoid having
to init and exit libusb every time we neeed to detect the adapter.
2015-02-05 10:03:21 +01:00
Sintendo 46df8a5358 Correct clobber comments 2015-02-04 22:26:40 +01:00
Sintendo ca0790e9c9 Merge Update_SR_Register64_Carry functions 2015-02-04 22:26:40 +01:00
Sintendo 34afe08de9 Minor DSP JIT optimizations 2015-02-04 22:26:39 +01:00
degasus 68c70be960 HotKey: fix warnings 2015-02-04 20:19:16 +01:00
Lioncash e07679114b Use emplace_* functions where in-place construction is preferable 2015-02-04 11:39:08 -05:00
Lioncash d7c6a7522d Memmap: Fix switch fallthroughs
Fixes a bug where out of range MEM2 accesses would hit the locked cache.
2015-02-04 08:28:52 -05:00
skidau 3709a1ce3a Fixed the crash which occurred when opening Wiimote configuration before a game was started. 2015-02-04 18:48:19 +11:00
skidau b9fb6ad3e8 Initialised all controller interfaces together on CFrame construction to fix the crash that would occur if the controller config were opened before a game was started. 2015-02-04 18:05:22 +11:00
skidau 5e645732f2 Merge pull request #1949 from skidau/hotkey-input
Added the ability to map gamepad buttons to hotkeys.
2015-02-04 14:35:03 +11:00
skidau 4e7d2ab893 Merge pull request #1985 from CarlKenner/accelerometers
Fix accelerometer wiimote/nunchuk emulation.
2015-02-02 12:15:43 +11:00
FL.dolphinemu 4f65787888 Vertical aligned all members of g_HKData struct. 2015-02-01 10:07:22 +01:00
Ryan Houdek f9c2d73970 Remove an old comment about stfiwx.
This instruction does exactly what it is supposed to. No need for this comment.
2015-02-01 00:30:53 -06:00
magumagu 30d15b3a32 Clean up usage of PowerPCState::Exceptions.
Accessing any member of ppcState from a thread other than the CPU thread
is not allowed; don't pretend that there's any exception to that rule.
2015-01-31 12:02:45 -08:00
skidau 3b07fe01a2 Merge pull request #1982 from skidau/AGP-hash
Advance Game Port (AGP) fixes
2015-01-31 12:34:01 +11:00
magumagu 5a3f75f5cf Use faster CheckGatherPipe from JIT.
We don't need to profile explicit calls to CheckGatherPipe: we aleady know
where they are. Skip profiling, and explciitly insert an exception check.

While I'm here, get rid of unused code in JitIL.
2015-01-30 17:00:58 -08:00
magumagu 47be9d8e6b Clean up usage of ScheduleEvent_Threadsafe. 2015-01-30 14:48:23 -08:00
Ryan Houdek a277172b49 Merge pull request #1980 from Sonicadvance1/AArch64_more_optimizations
[AArch64] Minor optimizations
2015-01-30 08:33:19 -06:00
Ryan Houdek 7cd80200ed [AArch64] Remove an extraneous nop in 8bit fastmem stores. 2015-01-30 08:30:17 -06:00
Ryan Houdek 4ff2f105cc [AArch64] Implement MMIO Writes. 2015-01-30 08:30:11 -06:00
Lioncash b1547b9c8b Use unique_ptr for some IVolume instances 2015-01-29 21:33:19 -05:00
skidau ccc1e9aa65 Changed the hash array to a CRC8 function. 2015-01-30 13:33:17 +11:00
CarlKenner fb370110dc Fix horribly broken accelerometer emulation.
It now emulates the least significant bits.
And it no longer treats maximum acceleration in one direction as being in the opposite direction.
2015-01-30 12:38:21 +10:30
skidau 855ad6f1d3 Fixed an overflow bug in Jit64. 2015-01-30 13:00:23 +11:00
skidau a42fb80f6a Added a hash key finder.
Fixed the memcard and AGP path parsing in Windows (the code is expecting '/' to be used as the DIR_SEP).
2015-01-30 13:00:23 +11:00
skidau 83a9f1b850 Merge pull request #1972 from lioncash/ref
EXI_DeviceAGP: Pass string by reference
2015-01-30 12:58:26 +11:00
Ryan Houdek 9b4a896353 Remove an old outdated comment that makes no sense.
This comment was left over from a long time ago. It is no longer true.
2015-01-29 09:40:22 -06:00
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