skidau
4570dd7eeb
Fixed a crash that would occur if a new watch were added by entering a watch name.
...
Code style updates.
2014-10-26 23:23:45 +11:00
skidau
2a3a8520a2
Removed the EXRAM_MASK from the safe address check as it was causing invalid accesses on Wii games in DEBUGFAST builds
2014-10-26 14:56:03 +11:00
skidau
290e1bed37
Disable block linking while debugger stepping or if there are breakpoints
2014-10-26 14:56:02 +11:00
skidau
613cae613a
Added a RAM Watch window to the debugger
...
Conflicts:
Source/Core/Core/HW/Memmap.cpp
Source/Core/Core/HW/Memmap.h
Source/Core/DolphinWX/Debugger/CodeWindow.h
2014-10-26 14:56:02 +11:00
skidau
df37649b9f
Changed the step over routine to a single stepping version that steps until a blr is encountered.
...
Cleared out all temporary breakpoints on each step to prevent phantom breakpoints from stopping the debugger.
2014-10-26 14:56:02 +11:00
skidau
b331ec96a3
Made the "continue", "stepover" and "stepout" functions work when the PC is at a breakpoint
2014-10-26 14:56:02 +11:00
Ryan Houdek
0fbd5248ca
Fixes a potential crash on the ARMv7 JIT if someone disables the entire JIT in the debugger.
...
We can't disable branches in the JITs. Make sure they don't become disabled if someone tries to disable the full JIT.
2014-10-25 20:38:44 -05:00
Ryan Houdek
17f352e2aa
Fixes some overzealous optimizations from ARMv7 BindToRegister.
...
We can't do it in rlw and friends.
subfx had an inccorect check.
Minor whitespace and reordering.
2014-10-25 20:36:29 -05:00
Ryan Houdek
484fc392d6
Fixes minor bug in the ARMv7 register cache.
...
Makes sure our register we are binding doesn't get unloaded immediately.
2014-10-25 20:34:11 -05:00
Rachel Bryk
f07d3be502
Fix acceleration emulation for wiimote and nunchuk.
...
The 1-2 least significant bits were missing.
2014-10-25 19:49:42 -04:00
comex
eb7f4dac50
Convert registersInUse to BitSet.
2014-10-25 16:57:25 -04:00
comex
b6a7438053
Add BitSet and, as a test, convert some JitRegCache stuff to it.
...
This is a higher level, more concise wrapper for bitsets which supports
efficiently counting and iterating over set bits. It's similar to
std::bitset, but the latter does not support efficient iteration (and at
least in libc++, the count algorithm is subpar, not that it really
matters). The converted uses include both bitsets and, notably,
considerably less efficient regular arrays (for in/out registers in
PPCAnalyst).
Unfortunately, this may slightly pessimize unoptimized builds.
2014-10-25 16:56:51 -04:00
comex
275755aaaf
Merge pull request #1381 from skidau/Remove-false-ext-exception-error
...
Added a check for external exceptions that have been set
2014-10-25 16:48:44 -04:00
comex
b7cb5b69c4
Merge pull request #1387 from RachelBryk/radius
...
Change default gcpad radius to 100.
2014-10-25 16:46:06 -04:00
Ryan Houdek
e780a49a06
Merge pull request #1375 from Sonicadvance1/ARMv7-optimizations
...
Minor ARMv7 JIT recompiler optimizations.
2014-10-25 08:28:10 -05:00
Rachel Bryk
c5fc3dd80f
Change default gcpad radius to 100.
...
Official gc controllers need it to be 100 to work properly, and it is
better to have it set too high than too low.
See issue 7762.
2014-10-24 15:35:44 -04:00
skidau
2c8e77dcc0
Added a check for external exceptions that have been set. Prevents a false positive log message.
2014-10-24 13:23:21 +11:00
skidau
3ab921d5b0
Merge pull request #1363 from lioncash/init-order
...
CoreParameter: Fix initializer list order
2014-10-24 13:03:38 +11:00
comex
1f5b1001ce
Merge pull request #1342 from phire/lessGetPointer
...
Eliminate getPointers which are memcpyed or memset.
2014-10-23 14:42:37 -04:00
Ryan Houdek
5bb19426b3
Optimizes instructions in ARMv7's JIT inside of the arith function.
...
For instructions where the second immediate value fits within an instruction encoding, just encode it directly in to the instruction.
2014-10-23 15:42:57 +00:00
Ryan Houdek
6743d6ef1f
Adds support back for non-immediate cmp/cmpi to ARMv7 JIT.
2014-10-23 15:39:09 +00:00
Ryan Houdek
0253c35d3a
Adds support to ARMv7's register cache for not loading a destination register prior to overwriting.
...
This extends the register cache's BindToRegister function with a doLoad argument just like x86's.
The speedup is minor for these implemented integer instructions.
2014-10-23 15:38:56 +00:00
Lioncash
a9f0bd72d2
Merge pull request #1369 from Sonicadvance1/enable-profiling
...
Enables block profiling in the UI on non x86 targets.
2014-10-23 08:09:39 -04:00
Ryan Houdek
2a1d4a7245
Removes some terrible printf debugging that was left over in the ARMv7 JIT.
2014-10-23 06:08:49 -05:00
Ryan Houdek
50135a988e
Enables block profiling in the UI on non x86 targets.
...
ARMv7 supports block profiling as well. So let's stop artificially limiting here.
2014-10-23 05:59:14 -05:00
Lioncash
5bb6f515d8
CoreParameter: Fix initializer list order
2014-10-22 23:38:13 -04:00
comex
00c6ec97a6
Merge pull request #1347 from comex/header-hygiene
...
Add missing includes where headers depend on other headers having been included first.
2014-10-22 23:23:58 -04:00
skidau
684cb658e2
Merge pull request #1354 from Sonicadvance1/ARMv7-stepping
...
Adds support for stepping in the ARMv7 JIT.
2014-10-23 13:31:17 +11:00
skidau
9836ce23e6
Merge pull request #1353 from Sonicadvance1/block-debugging
...
Don't enable stepping on ARMv7 JIT core if just in the debugger.
2014-10-23 13:30:04 +11:00
comex
6e774f1b64
Add missing includes where headers depend on other headers having been included first.
...
This is good hygiene, and also happens to be required to build Dolphin
using Clang modules.
(Under this setup, each header file becomes a module, and each #include
is automatically translated to a module import. Recursive includes
still leak through (by default), but modules are compiled independently,
and can't depend on defines or types having previously been set up. The
main reason to retrofit it onto Dolphin is compilation performance - no
more textual includes whatsoever, rather than putting a few blessed
common headers into a PCH. Unfortunately, I found multiple Clang bugs
while trying to build Dolphin this way, so it's not ready yet, but I can
start with this prerequisite.)
2014-10-21 21:22:16 -04:00
comex
9adf608f38
Merge pull request #1355 from FioraAeterna/fixmmuoff
...
MMU: allow page-table loads/stores if MMU is off
2014-10-21 14:55:18 -04:00
Ryan Houdek
a22fcf152d
Disable the fake vmem hack on 32bit targets.
...
This hack is incompatible with these targets due to how much memory space we allocate.
2014-10-21 12:56:28 +00:00
Fiora
f4fa8d0b83
MMU: allow page-table loads/stores if MMU is off
...
Fixes regressions in some games that apparently required this to work, but
don't really require full MMU emulation (e.g. with exceptions and all).
2014-10-21 05:55:56 -07:00
Ryan Houdek
77da164fe2
Adds support for stepping in the ARMv7 JIT.
2014-10-21 12:53:59 +00:00
Ryan Houdek
85605389d7
Don't enable stepping on ARMv7 JIT core if just in the debugger.
...
Also makes sure we aren't profiling CPU run times unless we are actually profiling.
2014-10-21 07:51:25 -05:00
Fiora
d7ff482618
Fix FPRF flag setting
...
Looks like I didn't quite change every place it needed to be renamed.
2014-10-21 04:56:35 -07:00
comex
c048691a57
Merge pull request #1292 from FioraAeterna/enablebats
...
Make EnableBATs an option instead of disabling it entirely
2014-10-21 02:26:49 -04:00
comex
24e72cd064
Merge pull request #991 from phire/dsi_should_crash
...
Panic if game does an invalid memory access.
2014-10-21 01:53:08 -04:00
skidau
305d2e1863
Merge pull request #1337 from skidau/AX-volume-clamp
...
Clamp the AX Volume to prevent clipping. Patch by hk.konpie. Fixes issue 7519.
2014-10-21 13:43:56 +11:00
skidau
3022da5d9f
Merge pull request #1318 from RachelBryk/disable-bios
...
Disable skip bios option if no bios files exists.
2014-10-21 13:23:23 +11:00
Scott Mansell
4fb6ab40a1
Eliminated getPointers which are memcpyed or memset.
...
Removes 12 getPointers.
2014-10-21 12:18:54 +13:00
Scott Mansell
d77e01e6c4
IPC_HLE: Replace (const char *)GetPointer(x) with GetString(x)
...
Removes 20 instances of GetPointer.
2014-10-21 11:10:34 +13:00
Stevoisiak
7f66344b64
Updated GCM references to ISO
2014-10-20 17:49:33 -04:00
Rachel Bryk
a67b9a4f52
Disable skip bios option if no bios files exists.
2014-10-20 14:17:19 -04:00
skidau
a4be65094f
Merge pull request #1314 from FioraAeterna/fixprofiler
...
JIT: fix profiler on non-Windows OSs
2014-10-20 14:37:32 +11:00
skidau
81efd0e87f
Merge pull request #1315 from RisingFog/movie-menu-input-display
...
Moved Input Display to Movie Menu
2014-10-20 14:34:02 +11:00
comex
4af98d63bc
Merge pull request #1344 from comex/mem-tools-testing
...
MemTools testing
2014-10-19 22:20:30 -04:00
comex
6a7cff02b8
Merge pull request #1343 from comex/yet-another-stupid-branch
...
Rename the poorly named {Read,Write}BigEData to Copy{From,To}Emu -
2014-10-19 22:18:57 -04:00
comex
c5c4dd49e6
Add a define to use sigaction on OS X instead of OS-specific page fault handling.
...
The latter was introduced last year in order to allow debugging without
turning off Fastmem; I wanted to see if the old way was faster. In
fact, it is not, but may as well keep the define around in case future
testing is necessary.
2014-10-19 20:41:54 -04:00
comex
f8dfb2ec90
Rename the poorly named {Read,Write}BigEData to Copy{From,To}Emu -
...
and change argument order to match memcpy.
Oh, and fix a lulzy buffer overflow in IOS emulation while I'm at it.
2014-10-19 19:34:38 -04:00
skidau
f9d9257c57
Fixed typo in the MEM2 handling.
2014-10-19 21:25:43 +11:00
skidau
990697bcbb
Clamp the AX Volume to prevent clipping. Patch by hk.konpie. Fixes issue 7519.
2014-10-19 21:20:33 +11:00
skidau
033a349444
Merge pull request #1299 from comex/blr-opt-infinite-loop
...
If the stack overflow trap region has already been tripped, don't continue to ignore faults there.
2014-10-19 15:22:42 +11:00
skidau
615ebe7b67
Merge pull request #1298 from RachelBryk/netplay
...
Get rid of netpad and just send the GCPadStatus in netplay.
2014-10-19 15:20:38 +11:00
Fiora
719326df65
Make EnableBATs an option instead of disabling it entirely
2014-10-17 19:05:01 -07:00
Fog
467ab1a629
Moved Input Display to Movie Menu
2014-10-17 21:08:34 -04:00
Fiora
99169eb620
JIT: fix profiler on non-Windows OSs
...
Still doesn't support timing code (since that's Windows-only), but run counts
will at least work without crashing.
2014-10-17 16:48:09 -07:00
skidau
73590b1323
Merge pull request #1266 from skidau/mmu-exram
...
Corrected the physical memory access to MEM2 via the MMU. Fixes Toy Story 3.
2014-10-17 17:10:51 +11:00
comex
4c2a542f1e
Revert "FastMem: don't let the backpatcher hit the same location twice"
2014-10-16 21:39:15 -04:00
comex
67088a1834
Fix signed/unsigned comparison and unused variable warnings.
2014-10-16 17:03:49 -04:00
Rachel Bryk
0f3194abc3
Get rid of netpad and just send the GCPadStatus in netplay.
2014-10-16 13:20:00 -04:00
comex
c5247673cd
If the stack overflow trap region has already been tripped, don't continue to ignore faults there.
...
In the unlikely case that it tripped and then, due to a bug, some other
fault occurred (e.g. stack misalignment), Dolphin would go into an
infinite loop rather than crashing.
2014-10-16 02:14:02 -04:00
skidau
f27aabd411
Merge pull request #1278 from lioncash/controller
...
ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()
2014-10-16 14:02:56 +11:00
skidau
002b9f7acd
Merge pull request #1222 from FioraAeterna/backpatchchanges
...
FastMem: don't let the backpatcher hit the same location twice
2014-10-16 14:00:29 +11:00
Lioncash
b7b2074cc2
ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()
...
Initialize now just takes the handle directly. Reinitialize is added because it is much more straightforward in comparison to doing the Shutdown-Initialize manually.
2014-10-15 09:29:25 -04:00
skidau
8ef21bc5e2
Merge pull request #1272 from RisingFog/sconfig-dump-frames
...
Move bDumpFrames to SConfig (and it's references)
2014-10-15 13:42:37 +11:00
comex
8f61c6f239
Merge pull request #1243 from comex/warning-fixes
...
Misc / warning fixes
2014-10-14 01:14:26 -04:00
comex
6650f8922d
Merge pull request #1283 from FioraAeterna/removebats
...
MMU: disable BAT resolution
2014-10-14 01:14:14 -04:00
comex
d4e8e3a6a3
Properly handle the Wiimote speaker data format being unknown.
2014-10-14 01:10:35 -04:00
comex
47faf7c4fd
Merge branch 'Remove-MMU-Speed-Hack-option' of https://github.com/skidau/dolphin into skidau-Remove-MMU-Speed-Hack-option
...
Conflicts:
Source/Core/Core/PowerPC/Jit64/JitAsm.cpp
2014-10-14 01:08:20 -04:00
Fiora
6ac2fcca61
MMU: disable BAT resolution
...
No known games, not even Wii MMU games like Cars 2 and Toy Story 3, use custom
BATs. This makes BAT resolution a waste of time. BAT handling could be
optimized significantly, but as long as nothing uses it, it's easier to just
disable it.
Should significantly improve performance in MMU-heavy games.
2014-10-13 22:04:03 -07:00
skidau
e50dad67ce
Merge pull request #1252 from FioraAeterna/regallocator
...
JIT: add basic register allocation heuristics
2014-10-14 12:45:48 +11:00
skidau
b4e82a5b9b
Merge pull request #1192 from skidau/dsp-acc-loop-adpcm
...
Fixed the step_size_bytes in the ADPCM Accelerator loop
2014-10-14 12:38:54 +11:00
skidau
ce35cd301b
Merge pull request #1169 from lioncash/cpu-core
...
Core: Use an enum for indicating CPU cores
2014-10-14 12:36:02 +11:00
skidau
96a2b74c02
Merge pull request #846 from lioncash/fpscr-enum
...
Core: Move FPSCR exception flags to a typed enum
2014-10-14 12:33:57 +11:00
Lioncash
9f2b48ab07
Core: Use an enum for indicating CPU cores
2014-10-13 10:35:31 -04:00
skidau
32dbdbe92f
Corrected the step size bytes for the start of the DSP accelerator chunk. Patch by hk.konpie
2014-10-13 22:10:37 +11:00
skidau
711a8aa6ad
Fixed the step_size_bytes in the ADPCM Accelerator loop taking into account the varying number of bytes that ADPCM steps by.
2014-10-13 22:10:37 +11:00
skidau
7b44e79356
Changed the FAST_TLB_CACHE to update its state only if the TLB cache is accessed by the game (not by Dolphin). The FAST_TLB_CACHE (written by booto) is faster and accurate to the hardware. Enabled the FAST_TLB_CACHE by default.
2014-10-13 18:00:45 +11:00
skidau
69a2d0cb96
Corrected the physical memory access to MEM2 via the MMU. Fixes Toy Story 3.
2014-10-13 16:01:02 +11:00
skidau
9551650c42
Merge pull request #1095 from crudelios/sw-bbox
...
Reimplement Bounding Box calculation using the software renderer.
2014-10-13 15:57:11 +11:00
Fog
8d424b114a
Move bDumpFrames to SConfig (and it's references)
2014-10-12 23:56:16 -04:00
skidau
a00ad6871c
Merge pull request #1220 from RisingFog/avsync
...
Proper Audio/Video Dumping
2014-10-12 14:04:45 +11:00
skidau
7443a07f6e
Merge pull request #1253 from lioncash/jitcache
...
JitCache: Use std::array to back the arrays within it.
2014-10-12 13:59:37 +11:00
skidau
9ddbdeb39f
Merge pull request #995 from FioraAeterna/fma
...
Add FMA support to emitter and use it in the JIT
2014-10-12 13:56:18 +11:00
skidau
8738b1879c
Removed the MMU Speed Hack option. The TLBHack is now enabled if the MMU option is disabled. This will help catch cases where a game requires the TLBHack but the option has not been set in the game ini. It also removes the possibility to mistakenly enable both the MMU and TLBHack.
2014-10-11 11:31:16 +11:00
crudelios
47c67f014f
Fix linux build and various warnings.
...
Increase savestate version.
2014-10-10 12:28:13 +01:00
Lioncash
8b831c9483
JitCache: Use std::array to back the arrays within it.
...
Cleans up some of the allocation process.
2014-10-10 00:22:09 -04:00
Fiora
7ba9a8537b
JIT: add basic register allocation heuristics
...
Should be at least a bit better than the previous LRU approach. Currently
has two basic components: whether a register is dirty (dirty registers need
to be stored, so clobbering them hurts more) and how many other registers will
be used between now and the next time a register gets used.
Also don't pre-load values that don't need to be in registers.
2014-10-09 20:09:14 -07:00
skidau
b7aed97508
Merge pull request #1239 from FioraAeterna/updatetables
...
CPU: improve instruction table flags for RC bits
2014-10-10 13:04:57 +11:00
Lioncash
560f180ea4
Merge pull request #1251 from lioncash/cast
...
PPCAnalyst: Remove unnecessary casts
2014-10-09 20:26:32 -04:00
Lioncash
bb377d0fc3
PPCAnalyst: Remove unnecessary casts
2014-10-09 20:19:01 -04:00
Fiora
9d45f51459
JIT: fix accidental disabling of block linking by default
...
Oops.
2014-10-09 12:00:40 -07:00
Fog
fc4125cdd1
Proper Audio/Video Dumping
2014-10-09 00:06:04 -04:00
skidau
86b81c55bf
Merge pull request #1226 from skidau/emu-wiimote-speaker-sample-rate
...
Hooked up the emulated wiimote speaker's sample rate and volume set by the game
2014-10-09 14:11:21 +11:00
Fiora
8bf2cf0641
Debug: fix disable block linking option
...
Previously it did the opposite of what it was supposed to; when checked, it'd
turn block linking on, and when unchecked, it'd turn it off.
Also update JITIL's block linking disabling in debug mode to match the behavior
of the regular JIT.
2014-10-08 19:03:25 -07:00
Fiora
75a1310ba9
CPU: improve instruction table flags for RC bits
2014-10-08 11:44:37 -07:00
Fiora
9734f0c834
JIT64: use FMA instructions
2014-10-07 21:41:01 -07:00
Ryan Houdek
5f0011d065
Fix ARMv7 JIT from XER optimization.
...
This was a subtle bug I introduced since I removed a LDR in one of the ComputeCarry functions.
Basically since I wasn't loading the XER value prior to operations when I did a BIC tmp, tmp, 1 it would clear the first bit in our temp register but
retain the rest of the "random" data from that temp register. This would then save in to xer_ca, which the Interpreter will use later without any
masking to generate the XER value. Our XER generation helper functions don't do any masking since they were only expecting a single bit worth of data
in xer_ca with the rest being zero.
So now we only have one bit of data being stored in xer_ca from the ARMv7 JIT recompiler, and also a slight optimization in the ComputeCarry function
that is used on the immediate path. There wasn't any reason to load xer_ca since it only contains one bit of data now.
2014-10-07 21:43:15 -05:00
skidau
38b64fd077
Merge pull request #1213 from RachelBryk/wii-tas-input
...
Add wiimote tas input.
2014-10-08 13:15:43 +11:00
skidau
f5b23834b5
Hooked up the emulated wiimote speaker's sample rate and volume set by the game.
2014-10-07 21:43:32 +11:00
comex
85086e1e6c
Merge pull request #1224 from FioraAeterna/profile
...
JIT: re-add profiling support on x86_64
2014-10-07 02:31:04 -04:00
Fiora
5919d0962f
JIT: re-add profiling support on x86_64
...
Still gives rather inaccurate results with conditional continue and/or
branch merging on, so those should probably be turned off when using it.
2014-10-06 20:26:58 -07:00
comex
9d059d1d2f
Merge pull request #1221 from LPFaint99/memcard
...
Fix endian error. allows loading of current games save even if the memca...
2014-10-06 23:21:36 -04:00
skidau
b3b34d16e6
Merge pull request #1218 from hthh/trampolinecaching
...
JIT: reuse trampolines when possible
2014-10-07 13:26:23 +11:00
skidau
8fdf43109f
Merge pull request #1216 from FioraAeterna/movoptimizations
...
Add more AVX support, refactor emitter, reduce redundant XMM moves
2014-10-07 13:25:28 +11:00
LPFaint99
5dec943762
Fix endian error. allows loading of current games save even if the memcard is mostly full
2014-10-06 18:43:59 -07:00
skidau
a0a64369fc
Merge pull request #1211 from skidau/remaining-block-count-zero
...
Re-added the change to make the dsp remaining block count zero-based.
2014-10-06 13:35:46 +11:00
Fiora
9b29fe8aed
WIP: don't let the backpatcher hit the same location twice
...
If a location is hit by the backpatcher, don't fastmem it when recompiling the
block unless the block has actually been invalidated.
2014-10-04 21:28:21 -07:00
hthh
c7208318fb
JIT: Reuse trampolines when possible
2014-10-05 15:03:11 +11:00
comex
47bf698b70
Merge pull request #1217 from lioncash/tcast
...
TrampolineCache: Remove unnecessary cast
2014-10-04 00:19:08 -04:00
comex
7bce3fcdf9
Merge pull request #1174 from FioraAeterna/fifowriteaddrfix
...
JIT: properly remove FIFO write addresses when code is invalidated
2014-10-04 00:18:58 -04:00
comex
1af4043f14
Merge pull request #1219 from FioraAeterna/fixclearcache
...
JIT: set clear_cache_asap to false when clearing the cache
2014-10-04 00:14:30 -04:00
skidau
0c4739eead
Merge pull request #1202 from FioraAeterna/fixstartupbats
...
Fix BAT register initial values in bootcode
2014-10-04 13:10:47 +10:00
skidau
d0ea2ad6dc
Merge pull request #1198 from lioncash/crypt
...
WiiSaveCrypted: Move some function params over to std::string
2014-10-04 13:10:28 +10:00
Fiora
17c56b58ab
JIT: set clear_cache_asap to false when clearing the cache
...
Would probably result in continual cache-clearing if the stack overflow code
in the BLR optimizations triggers.
2014-10-03 20:08:27 -07:00
Lioncash
eb1ddb886e
TrampolineCache: Remove unnecessary cast
2014-10-03 20:46:44 -04:00
Fiora
bf014636c8
JIT: add more AVX support, reduce redundant XMM moves
...
10-20% reduction in typical compiled block size for float-heavy JIT blocks.
2014-10-03 16:17:08 -07:00
Fiora
8fe730194b
JIT: load registers if they're going to be used later in the block
2014-10-03 11:58:04 -07:00
Fiora
6bff99fa75
JitAsmCommon: remove a few redundant moves
2014-10-03 10:05:42 -07:00
Rachel Bryk
c41b31d3ff
Add wiimote tas input.
2014-10-03 12:02:52 -04:00
skidau
30c8de495e
Re-added the change to make the dsp remaining block count zero-based. Fixes Dream Mix TV World Fighters.
2014-10-03 21:30:09 +10:00
skidau
16d3604211
Merge pull request #1196 from RachelBryk/framecount
...
Add on screen frame counter.
2014-10-03 13:31:52 +10:00
Rohit Nirmal
3b25c88736
Change another NULL to nullptr.
2014-10-01 23:38:42 -05:00
Lioncash
54c454fc82
Jit64: Change a NULL to nullptr
2014-10-02 00:05:27 -04:00
skidau
68edddf10e
Merge pull request #1193 from RachelBryk/ir-input-display
...
Fix IR input display.
2014-10-02 13:48:17 +10:00
skidau
50bf30111c
Merge pull request #1189 from RachelBryk/nunchuck-input-display
...
Add support for cc and nunchuck in input display.
2014-10-02 13:47:35 +10:00
skidau
11126f0bfc
Merge pull request #1155 from booto/dsp-int-fix
...
dsp int timing tweak
2014-10-02 13:46:03 +10:00
Fiora
1bce0a847b
Fix BAT register initial values in bootcode
...
Probably won't affect any real things for now, since these BATs are already
hardcoded into the memory handling functions.
2014-10-01 12:54:06 -07:00
Rachel Bryk
4280d9777a
Add support for cc and nunchuck in input display.
2014-10-01 03:51:49 -04:00
skidau
ffe160ad81
Merge pull request #1187 from lioncash/global
...
AudioCommon: Prefix soundStream global with g_
2014-10-01 13:23:11 +10:00
skidau
19fbefd9bd
Merge pull request #1176 from FioraAeterna/pagecrossings
...
MMU: support loads/stores that cross page boundaries
2014-10-01 13:22:52 +10:00
Lioncash
0d8b34612e
WiiSaveCrypted: Move some function params over to std::string
2014-09-30 20:31:59 -04:00
Rachel Bryk
f6c6f03cce
Add on screen frame counter.
2014-09-30 18:49:44 -04:00
Rachel Bryk
f7a993a853
Fix IR input display.
2014-09-30 08:24:18 -04:00
Fiora
85547d94be
JIT: properly remove FIFO write addresses when code is invalidated
...
Fixes a bug caused by interaction with carry optimizations; might fix other
issues too.
2014-09-30 01:00:23 -07:00
Lioncash
7f7fb5e70c
AudioCommon: Prefix soundStream global with g_
2014-09-30 03:06:16 -04:00
comex
a9b4016cd3
Merge pull request #1166 from FioraAeterna/flaglocking
...
JIT+Emitter: support locking flags
2014-09-30 02:57:53 -04:00
comex
58a29ec0cd
Merge pull request #1177 from lioncash/array
...
DSPJitRegCache: Use std::array to represent the register arrays
2014-09-30 02:50:53 -04:00
comex
4edc7fbf85
Merge pull request #1190 from comex/stackalign
...
Remove useless STACKALIGN macro.
2014-09-30 01:54:38 -04:00
comex
ac1f9f950f
Merge pull request #1186 from lioncash/macro
...
NetPlayClient: Remove unused macro
2014-09-30 01:52:01 -04:00
comex
2eebdff01b
Remove useless STACKALIGN macro.
...
It only ever did anything on 32-bit OS X.
Anyway, it wasn't even on the right functions, and these days
ABI_PushRegistersAndAdjustStack should handle maintaining the ABI
correctly.
2014-09-30 01:42:47 -04:00
Fiora
22f087275c
MMU: support loads/stores that cross page boundaries
...
Fixes some strange issues with Rogue Squadron 3 in JIT mode.
2014-09-29 21:19:21 -07:00
skidau
63cee3328f
Merge pull request #1167 from FioraAeterna/fixdebugwindow
...
Debug: fix display of instructions in virtual memory in MMU games
2014-09-30 13:28:41 +10:00
skidau
f675b33640
Merge pull request #1164 from FioraAeterna/bpcarry
...
JIT: fix carry merging across breakpoints
2014-09-30 13:25:24 +10:00
skidau
9d9984e96f
Merge pull request #1159 from FioraAeterna/blocklinkdebug
...
JIT: enable block linking and idle skipping in debug mode
2014-09-30 13:24:16 +10:00
skidau
7828ddd542
Merge pull request #1150 from FioraAeterna/extsmerge
...
JIT: merge lbz + extsb
2014-09-30 13:19:45 +10:00
skidau
da221e3d9c
Merge pull request #1018 from zhuowei/elf_map_basename_only
...
When loading the map file for a DOL/ELF file, extract only the filename from the DOL/ELF's path
2014-09-30 13:17:29 +10:00
Lioncash
05a8d9d54a
NetPlayClient: Remove unused macro
2014-09-29 08:42:18 -04:00
Lioncash
843a3f6c15
Core: Move FPSCR exception flags to a typed enum
2014-09-29 00:46:15 -04:00
comex
4c031bed4b
Merge pull request #1179 from lioncash/casts
...
Jit_Integer: Get rid of some cast noise in boolX
2014-09-28 23:58:09 -04:00
skidau
8ae2152093
Merge pull request #1168 from lioncash/unique
...
CoreParameter: Use unique_ptrs over raw pointers.
2014-09-29 13:55:00 +10:00
skidau
c7f3858379
Merge pull request #1138 from FioraAeterna/arithetweak
...
JIT: a small optimization for subfex and friends
2014-09-29 13:51:44 +10:00
comex
6c0a68d507
Add the override config option.
...
I hate the config code, but now is not the time to fix it...
2014-09-28 21:34:31 -04:00
comex
3a2048ea57
Add a central variable g_want_determinism which controls whether to try to make things deterministic.
...
It now affects the GPU determinism mode as well as some miscellaneous
things that were calling IsNetPlayRunning. Probably incomplete.
Notably, this can change while paused, if the user starts recording a
movie. The movie code appears to have been missing locking between
setting g_playMode and doing other things, which probably had a small
chance of causing crashes or even desynced movies; fix that with
PauseAndLock.
The next commit will add a hidden config variable to override GPU
determinism mode.
2014-09-28 21:34:31 -04:00
Lioncash
7e825fdca5
Jit_Integer: Get rid of some cast noise in boolX
2014-09-28 13:28:16 -04:00
Lioncash
ab639b41ab
DSPJitRegCache: Use std::array to represent the register arrays
2014-09-28 03:02:29 -04:00
Lioncash
ee076453ce
Merge pull request #1171 from lioncash/loop
...
DSPJitRegCache: Merge two loops in popRegs.
2014-09-28 02:07:44 -04:00
skidau
6bea53ab11
Clean-up the leftover dspARAMAddresses code that was no longer needed.
2014-09-28 15:38:35 +10:00
skidau
baeca3e03b
Merge pull request #1170 from lioncash/bounds
...
SI: Fix bounds check in GetDeviceType
2014-09-28 14:57:38 +10:00
skidau
afccf2276d
Merge pull request #1012 from skidau/aram-dma-exceptions
...
Compile the ARAM DMA exception checks into the JIT block
2014-09-28 14:48:38 +10:00
Fiora
3878187721
Interpreter: remove debug printf in psq_l
2014-09-27 20:44:45 -07:00
skidau
7184019090
Increased the savestate internal version.
...
Added a small note for instant dma.
2014-09-28 11:51:14 +10:00
Lioncash
8b578c7ba3
DSPJitRegCache: Merge two loops in popRegs.
2014-09-27 18:33:48 -04:00
Lioncash
1c42fd9928
SI: Fix bounds check in GetDeviceType
2014-09-27 16:44:21 -04:00
Lioncash
a8d8c9230b
CoreParameter: Kill off an snprintf usage
2014-09-27 14:45:03 -04:00
Lioncash
2f4d3961b3
CoreParameter: Use unique_ptr in place of raw pointers
2014-09-27 14:42:59 -04:00
skidau
86b6dfe4b3
Added a instant ARAM DMA mode which is enabled automatically when required.
...
Detects a situation where the game is writing to the dcache at the address being DMA'd. As we do not have dcache emulation, invalid data is being DMA'd causing audio glitches. The following code detects this and enables the DMA to complete instantly before the invalid data is written.
Added accurate ARAM DMA transfer timing.
Removed the addition of DSP exception checking.
2014-09-27 20:47:29 +10:00
skidau
4b37fdfa45
Added a CompileExceptionCheck function to the JitInterface and re-routed the existing code to utilise the interface.
2014-09-27 20:16:26 +10:00
skidau
945d431171
Added OPTYPE_LOADPS and OPTYPE_STOREPS instruction types to the PPC table.
...
Updated ARAM DMA and FIFO write exception checking to uses these types.
Conflicts:
Source/Core/Core/PowerPC/Interpreter/Interpreter_Tables.cpp
Source/Core/Core/PowerPC/PPCTables.h
2014-09-27 20:16:26 +10:00
skidau
0f256715e0
Re-added the ARAM DMA exception check. This fixes the audio cutting in and out of Resident Evil 2 and 3. Removed the special case for short transfers as it is no longer required.
2014-09-27 20:16:26 +10:00
skidau
d09e2abb0d
Compile the ARAM DMA exception checks into the JIT block in a similar style to FIFO writes. This ensures that the ARAM DMA is handled soon after the DMA completes. Fixes issue 7122 and issue 7342.
2014-09-27 20:16:25 +10:00
Fiora
fbbe9605a9
Debug: fix display of instructions in virtual memory in MMU games
2014-09-27 01:07:37 -07:00
Fiora
ac1fc9ad03
JIT+Emitter: support locking flags
...
This helps us avoid accidentally clobbering flags between two instructions
when the flags are expected to be maintained. Dolphin will of course crash
immediately, but at least it will crash loudly and alert us of the mistake,
instead of forcing hours of bisecting to find the subtle way in which the JIT
has managed to sneak a flag-modifying instruction where there shouldn't be one.
2014-09-26 20:47:06 -07:00
skidau
f5bbfa139d
Merge pull request #1146 from RachelBryk/netplay-input-display
...
Make input display work properly with netplay.
2014-09-27 13:25:01 +10:00
Fiora
39d4306a2e
JIT: fix carry merging across breakpoints
...
More precisely, don't do it.
2014-09-26 13:21:01 -07:00
Fiora
ba39c35f24
JIT: fix branch merging, take 2
...
NOT doesn't set flags.
2014-09-25 22:33:40 -07:00
skidau
30d77b38c5
Merge pull request #1127 from Sonicadvance1/QGR-BitField
...
Change the QGR union over to a BitField union.
2014-09-26 14:53:24 +10:00
skidau
9d746b89a2
Merge pull request #1162 from FioraAeterna/fixmerges
...
JIT: fix bugs with ComputeRC in branch merging patch
2014-09-26 14:46:53 +10:00
Fiora
f9ab25152c
JIT: fix bugs with ComputeRC in branch merging patch
...
We really, really need to be sure the input to ComputeRC is a register.
2014-09-25 21:45:25 -07:00
skidau
146725f64a
Merge pull request #1125 from Sintendo/fresjumps
...
Change fres/frsqrte jumps
2014-09-26 14:45:19 +10:00
comex
9cdd842080
Add a fake SContext definition for _M_GENERIC.
2014-09-25 18:47:34 -04:00
Fiora
23fbcecf13
JIT: enable block linking and idle skipping in debug mode
...
They can still be turned off, just don't force them off.
Also remove some dated comments.
2014-09-25 07:12:10 -07:00
comex
8dccb0c743
Fix fastmem in JitIL after 755bd2c4
.
...
That commit reorganized fastmem a bit; I wrote it before the patch to
support fastmem in JitIL landed, and forgot to edit it to account for
the fact. Since JitILBase now derives from Jitx86Base, the HandleFault
override can just be removed.
2014-09-25 01:15:58 -04:00
Sintendo
29cca5c84f
Change fres/frsqrte jumps
2014-09-24 21:58:01 +02:00
Fiora
bfab5f1e91
JIT: generic branch merging
...
Why merge just cmps and rlwinm when we can merge ALL the branches?
2014-09-24 12:34:18 -07:00
Ryan Houdek
76697922b4
Implement XER optimization on ARMv7 JIT core
...
Not completely optimized; there's room for improvement here.
2014-09-24 12:27:54 -07:00
Fiora
5fce109ce1
Reorganize carry to store flags separately instead of part of XER
...
Also correct behavior with regards to which bits in XER are treated as zero
based on a hwtest (probably doesn't affect any real games, but might as well
be correct).
2014-09-24 12:27:47 -07:00
skidau
788a719718
Merge pull request #1153 from skidau/twx-bindtoreg
...
Replaced KillImmediate with BindToRegister in the tw instruction.
2014-09-24 13:31:44 +10:00
skidau
a83792e914
Merge pull request #1074 from FioraAeterna/earlyflush
...
JIT: flush a register if it won't be used for the rest of the block
2014-09-24 13:30:02 +10:00
booto
7f76ad3edb
dsp int timing tweak
...
this fixes a bug in GE9E5D that caused hangs on boot
2014-09-24 00:50:46 +08:00
skidau
65eb0ff2fe
Replaced KillImmediate with BindToRegister in the tw instruction. Fixes the error "WriteNormalOp - a1 and a2 cannot both be memory" which appeared on starting Monopoly Streets.
2014-09-23 18:00:41 +10:00
skidau
cbf102794e
Merge pull request #1130 from Sonicadvance1/AArch64-jit-extXx
...
[AArch64] Implement instructions.
2014-09-23 13:52:30 +10:00
skidau
fb18d5376f
Merge pull request #1142 from lioncash/linucks
...
Fix some warnings on Linux
2014-09-23 13:43:18 +10:00
Fiora
88f2fbe1a4
JIT: fix merged bclr with comex's BLR optimizations
2014-09-22 18:22:31 -07:00
Fiora
f103234e2b
JIT: flush a register if it won't be used for the rest of the block
...
This should dramatically reduce code size in the case of blocks with
lots of branches, and certainly doesn't hurt elsewhere either.
This can probably be improved a good bit through smarter tracking of register
usage, e.g. discarding registers that are going to be overwritten, but this
is a good start and should help reduce code size and register pressure.
Unlike that sort of change, this is a "safe" patch; it only flushes registers,
which can't affect correctness, unlike actually discarding data.
As part of this, refactor PPCAnalyst to support distinguishing between
float and integer registers (to properly handle instructions that access
both, like floating-point loads and stores).
Also update every instruction in the interpreter flags table I could find
that didn't have all the correct flags.
2014-09-22 16:00:25 -07:00
Fiora
de86d2003a
JIT: merge lbz + extsb
...
PPC has no 8-bit sign-extended load, so this instruction pair is very common.
x86 can do it in one op (movsx), so merge them when possible.
2014-09-22 15:41:54 -07:00
Ryan Houdek
7f1185b941
Merge pull request #1140 from lioncash/android
...
Android: Silence a few warnings
2014-09-22 16:20:53 -05:00
Rachel Bryk
e4d71f36b1
Make input display work properly with netplay.
2014-09-22 12:56:35 -04:00
shuffle2
c617f324b2
Merge pull request #1143 from lioncash/exi
...
Core: Fix SIGABRT possibility in EXI_DeviceGecko
2014-09-22 00:16:34 -07:00
Lioncash
858d18a67e
Core: Fix SIGABRT possibility in EXI_DeviceGecko
...
Fixes issue 7586
2014-09-21 21:50:30 -04:00
Lioncash
836ff6d506
Fix some warnings on Linux
2014-09-21 20:13:22 -04:00
Lioncash
ea40fdf21c
Merge pull request #1132 from lioncash/osx
...
Fix building Dolphin on OSX without precompiled headers
2014-09-21 20:02:59 -04:00
Lioncash
dc79755303
Android: Silence a few warnings
2014-09-21 19:51:27 -04:00
Rachel Bryk
d933247c50
Remove an unused variable.
2014-09-21 19:40:18 -04:00
Ryan Houdek
1cb07ffc14
[AArch64] Implement twi and tw.
2014-09-21 14:17:04 -05:00
Fiora
505b1bd562
JIT: a small optimization for subfex and friends
2014-09-21 12:16:26 -07:00
Ryan Houdek
078147d424
[AArch64] Implement mfmsr
2014-09-21 07:38:21 -05:00
Ryan Houdek
9530800fd0
[AArch64] Implement mtsprin and mfsprin
2014-09-21 07:38:16 -05:00
Ryan Houdek
2bcea19492
[AArch64] Implement mtsr and mfsr
2014-09-21 07:36:14 -05:00
Tony Wasserka
1d23c2ca8b
GPU: Only load the relevant color components upon writes to the tev color registers.
...
The other two components need not be valid upon write, hence loading them results in glitches.
Fixes issue 6783.
2014-09-21 10:38:22 +02:00
Lioncash
a04a99251f
Fix building Dolphin on OSX without precompiled headers
2014-09-21 00:37:47 -04:00
Ryan Houdek
0f8c5bda40
[AArch64] Implement mcrf.
2014-09-20 21:19:25 -05:00
Ryan Houdek
e708e8d5a0
[AArch64] Implement negx.
2014-09-20 16:17:16 -05:00
Ryan Houdek
75590a99cb
[AArch64] Implement cntlzwx.
2014-09-20 14:52:56 -05:00
Ryan Houdek
76d2f331f0
[AArch64] Implement extshx and extsbx.
2014-09-20 14:46:53 -05:00
Ryan Houdek
9d7598266f
Change the QGR union over to a BitField union.
...
Makes it easier to generate a QGR in my unit test, cleaner overall of course.
2014-09-20 13:15:44 -05:00
Ryan Houdek
a829e596c7
Merge pull request #1121 from FioraAeterna/fixfsel
...
JIT: fix fsel/ps_sel implementations for NaN input
2014-09-20 12:40:55 -05:00
Fiora
6043c790b6
JIT: fix indexed paired singles
...
I didn't realize the I and W fields were in a different place for these
variants.
This should fix Paper Mario and probably lots of other things I accidentally
broke.
2014-09-20 00:20:49 -07:00
skidau
ae17d91992
Merge pull request #1096 from RachelBryk/save-slots
...
Add hotkeys to select save state slots
2014-09-20 15:45:02 +10:00
Ryan Houdek
eb23882398
Merge pull request #1120 from rohit-n/muh-precompiled-headers
...
Fix build failing when disabling precompiled headers.
2014-09-19 17:43:42 -05:00
Rohit Nirmal
46057db37d
Fix build failing when disabling precompiled headers.
2014-09-19 18:17:51 -04:00
Ryan Houdek
d7b40fa94c
Merge pull request #1119 from FioraAeterna/bytereverse
...
JIT: support byte-reversed stores/loads
2014-09-19 15:54:27 -05:00
Ryan Houdek
bdca720e33
Fix some indention on AArch64 JIT.
2014-09-19 15:23:21 -05:00
Ryan Houdek
47e47891d4
[AArch64] Implement a bunch of integer instructions
...
16 new instructions for AArch64.
2014-09-19 15:23:21 -05:00
Ryan Houdek
5671530026
Merge pull request #1101 from FioraAeterna/fixfallbacks
...
JIT: simpler fallback conditions for load/store float
2014-09-19 15:23:01 -05:00
Ryan Houdek
5b4aa1d6d4
Merge pull request #1123 from FioraAeterna/eieio
...
JIT: change eieio and tlbsync to DoNothing
2014-09-19 15:19:41 -05:00
Ryan Houdek
7cc586d615
Merge pull request #1100 from FioraAeterna/psq_insts
...
JIT: implement remaining psq_l/st instruction variants
2014-09-19 15:16:44 -05:00
Fiora
0f53bba45a
JIT: change eieio and tlbsync to DoNothing
...
The interpreter functions for these are no-ops anyways.
Also add some missing DoNothings to the ARM64 JIT.
2014-09-19 13:14:49 -07:00
Ryan Houdek
522d7eb275
Merge pull request #1109 from FioraAeterna/ps_cmp
...
JIT: add ps_cmp0/ps_cmp1/ps_res/ps_rsqrte
2014-09-19 14:41:05 -05:00
Ryan Houdek
526e92464b
Merge pull request #1103 from FioraAeterna/floatconstnaming
...
JIT: rename a few constants to be more accurate
2014-09-19 13:21:06 -05:00
magumagu
32e5043b29
WIP XFB scaling.
...
Still an ugly mess.
2014-09-19 12:33:15 -05:00
Ryan Houdek
ec310811a8
Merge pull request #1114 from Sonicadvance1/AArch64-fix-build
...
Fix AArch64 JIT compiling.
2014-09-19 09:19:25 -05:00
Fiora
c130a496f2
JIT: fix fsel/ps_sel implementations for NaN input
...
fselx was the main problem, but ps_sel was wrong too (even if there were no
known reported bugs with it).
This fixes Beyond Good and Evil (at the least).
2014-09-19 01:58:13 -07:00
Fiora
d96016ed21
JIT: support byte-reversed stores/loads
...
4 more instructions down.
Store ones should be pretty well-tested; load ones seem to almost never be
used. I found them in Turok Evolution, so I was able to check code generation,
but the relevant code didn't seem to be called.
2014-09-18 20:38:44 -07:00
skidau
bd740ae9c7
Merge pull request #1111 from Tilka/fix_gcpad_setmotor
...
Fix GCPad::SetMotor()
2014-09-19 13:26:05 +10:00
Fiora
af8772700a
JIT: add ps_res and ps_rsqrte using scalar implementations
2014-09-18 18:36:15 -07:00
Fiora
1b425dedd1
JIT: add ps_cmp0/ps_cmp1 implementations using current fcmp code
2014-09-18 17:57:28 -07:00
Ryan Houdek
a8abbdae85
Merge pull request #1106 from FioraAeterna/fixdebug2
...
JIT: fix debug mode
2014-09-18 19:52:35 -05:00
comex
3df935b98e
Reset RSP after calling Jit in case it cleared the code cache.
2014-09-18 18:23:36 -04:00
Ryan Houdek
f709dda6aa
Fix AArch64 JIT compiling.
2014-09-18 16:50:49 -05:00
Tillmann Karras
e35db54454
Fix and simplify GCPad::SetMotor()
...
abs() takes an int argument. Casting -0.5..0.5 to int always resulted in
zero.
2014-09-18 21:34:07 +02:00
Ryan Houdek
d54c8eb6bf
Merge pull request #1098 from FioraAeterna/cvtsi2ss
...
JIT: use cvtsi2ss in paired singles
2014-09-18 06:51:37 -05:00
Ryan Houdek
0294b344e2
Merge pull request #1086 from FioraAeterna/fixsrawint
...
Interpreter: fix carry calculation in srawx
2014-09-18 06:41:37 -05:00
Fiora
cd7853bd50
JIT: fix debug mode
2014-09-18 03:14:04 -07:00
Fiora
9ab816e6e9
JIT: fix regression in ps_sel
...
My code didn't maintain correct semantics with floating-point NaNs (a < b is
not the same as "not a >= b" in float), which seems to have broken FIFA 12.
2014-09-17 21:43:44 -07:00
comex
217758b607
Correct inaccurate comment.
2014-09-17 22:30:33 -04:00
comex
6695b5acce
Fix backwards #ifdef.
2014-09-17 22:30:20 -04:00
comex
97c9cb5882
Add missing push wrapper around UpdatePerformanceMonitor
2014-09-17 21:10:43 -04:00
Fiora
29fc151cc7
JIT: implement remaining psq_l/st instruction variants
...
These are used in at least a few popular games, including Super Smash Bros.
Brawl.
2014-09-17 17:10:27 -07:00
comex
7ad9027593
Be pedantic about stack overflow on Linux and OS X.
...
Add some magic to the fault handler to handle stack overflow due to BLR
optimization, and disable the optimization if fastmem is not enabled.
2014-09-17 20:08:09 -04:00
Fiora
cfd65c2762
JIT: rename a few constants to be more accurate
...
Remove the '2'; it's not longer applicable.
2014-09-17 16:59:35 -07:00
comex
755bd2c445
Reorganize backpatching a bit. Untested on ARM.
...
Rather than *MemTools.cpp checking whether the address is in the
emulated range itself (which, as of the next commit, doesn't cover every
kind of access the JIT might want to intercept) and doing PC
replacement, they just pass the access address and context to
jit->HandleFault, which does the rest itself.
Because SContext is now in JitInterface, I wanted JitBackpatch.h (which
defines it) to be lightweight, so I moved TrampolineCache and associated
x64{Analyzer,Emitter} dependencies into its own file. I hate adding new
files in three places, two of which are MSVC...
While I'm at it, edit a misleading comment.
2014-09-17 19:57:06 -04:00
comex
7b0fdb52cd
Run exception handlers on an alternate stack on Linux.
...
*Completely untested.* Someone please test.
2014-09-17 19:57:04 -04:00
comex
bd4e75e69a
Shorten the blr stub a bit.
2014-09-17 19:56:58 -04:00
comex
b597ec3e08
Opportunistically predict BLR destinations using RET.
...
When executing a BL-type instruction, push the new LR onto the stack,
then CALL the dispatcher or linked block rather than JMPing to it. When
executing BLR, compare [rsp+8] to LR, and RET if it's right, which it
usually will be unless the thread was switched out. If it's not right,
reset RSP to avoid overflow.
This both saves a trip through the dispatcher and improves branch
prediction.
There is a small possibility of stack overflow anyway, which should
be handled... *yawn*
2014-09-17 19:56:09 -04:00
comex
558dee84ca
Wrap some function calls in ABI_Push|PopRegistersAndAdjustStack(0, 0);
...
These calls are made outside of JIT blocks, and thus previously did not
read any protection - register use is taken into account and the outer
dispatcher stack frame is sufficient. However, if data is to be stored
on the stack, these calls must reserve stack shadow space on Windows to
avoid clobbering it.
2014-09-17 19:56:09 -04:00
Fiora
2a0b06f08c
JIT: simpler fallback conditions for load/store float
...
I wasn't really thinking when I wrote these; d/s are for float registers, not
gprs.
2014-09-17 10:27:33 -07:00
Fiora
76c8bb40e8
JIT: update some rather outdated comments
2014-09-16 23:42:22 -07:00
Fiora
2ae6f13d22
JIT: use cvtsi2ss in paired singles
...
One less instruction for a few of the loads.
2014-09-16 22:50:33 -07:00
skidau
2c233c4976
Merge pull request #686 from FioraAeterna/fiora
...
JIT: Optimize JitAsmCommon, Float, and PS implementations
2014-09-17 14:06:14 +10:00
Rachel Bryk
5dc88a2673
Add hotkeys to select save state slots and to save/load the currently selected slots.
2014-09-16 19:19:41 -04:00
comex
7eea7080d9
Fix missing "return"
2014-09-16 00:25:21 -04:00
Fiora
764ce4b513
JIT: add fselx implementation
...
Based on a patch by Tilka.
2014-09-15 08:33:41 -07:00
Fiora
7ab820c6f8
JIT: Various JitAsmCommon optimizations
...
Use some SSE4 instructions in on CPUs that support them.
Use float instructions instead of int where appropriate (it's a cycle faster
on CPUs with arithmetic unit forwarding penalties).
2014-09-15 08:33:40 -07:00
Fiora
7b0f559ae1
JIT: various float optimizations
2014-09-15 08:33:40 -07:00
Fiora
34287b8042
JIT: some paired singles optimizations
2014-09-15 08:33:39 -07:00
Fiora
d02b7c7755
JIT: support immediate stores
2014-09-15 07:25:32 -07:00
Fiora
a248e49c97
Revert "Two small JIT optimizations"
2014-09-15 07:01:51 -07:00
Ryan Houdek
20af50b1c4
Merge pull request #1077 from FioraAeterna/integeropts2
...
Two small JIT optimizations
2014-09-15 07:09:11 -05:00
skidau
1458b59156
Merge pull request #1065 from Sonicadvance1/AArch64-fix-regcache
...
Fix all the current issues with the AArch64 register cache.
2014-09-15 13:02:16 +10:00
Fiora
3845c27155
JIT: save an instruction in psq_l
2014-09-14 15:12:57 -07:00
Fiora
af471d0a84
JIT: optimize andi(s)_rc
...
We usually don't need to do a sign-extend for the resulting flags.
2014-09-14 15:12:14 -07:00
Fiora
9b8cfcdc29
Interpreter: fix carry calculation in srawx
...
I don't know anything this affected, but it didn't match the manual (or JIT).
2014-09-14 15:08:57 -07:00
comex
74f8a48ee6
Merge pull request #1063 from FioraAeterna/fastermmufix
...
MMU: properly check MEM1 range on Gamecube games
2014-09-14 15:17:09 -04:00
comex
db7617248f
Merge pull request #1021 from FioraAeterna/optimizeca3
...
JIT: Carry optimizations!
2014-09-14 15:08:08 -04:00
Ryan Houdek
4e16abd742
Merge pull request #1083 from FioraAeterna/lzcnt
...
Add LZCNT support, use in cntlzw
2014-09-14 09:18:10 -05:00
Fiora
40b18f09b2
JIT: use LZCNT in cntlzw
2014-09-14 05:36:23 -07:00
Ryan Houdek
1f7871f9e2
Merge pull request #1082 from FioraAeterna/fixccagain
...
JIT: fix JIT with conditional continue off, again
2014-09-14 03:22:03 -05:00
Fiora
653140fcfa
MMU: properly check MEM1 range on Gamecube games
...
Fixes at the very least Rogue Squadron II crashes.
2014-09-14 00:16:37 -07:00
Fiora
9d2b2cae4a
JIT: fix JIT with conditional continue off, again
2014-09-14 00:12:27 -07:00
Scott Mansell
6956df79b2
Fix Fastmem in JitIL for massive speed gains.
...
JitIL's fastmem was stubbed out when Sonicadvance1 merged JitARMIL
into the tree. Since JitARMIL has been deleted, I simply re-arrange
the inheritance to base JitIL on Jitx86Base, so it can inherit the
backpatch function.
Povray Benchmark: 1985 seconds to 1316 seconds.
2014-09-14 16:21:54 +12:00
Pierre Bourdon
84a564a304
Merge pull request #1060 from rohit-n/move-using
...
JitArm32: Minor cleanup.
2014-09-14 01:59:39 +02:00
Pierre Bourdon
9607cc4159
Merge pull request #1071 from archshift/patch-1
...
ConfigManager.cpp: Removed three elements from platform-ifdef
2014-09-14 01:58:17 +02:00
Pierre Bourdon
cb2e53e7c6
Merge pull request #1068 from rohit-n/use-vector
...
CBoot: Use vectors instead of raw pointers in ELF functions.
2014-09-14 01:55:01 +02:00
Pierre Bourdon
2ab19c7cec
Merge pull request #927 from FioraAeterna/fastermmu
...
Fiora's Faster MMU Project
2014-09-14 00:36:07 +02:00
Fiora
32a67ef264
JIT: fix memcheck on float load/store, plus some corner cases
2014-09-13 13:53:19 -07:00
Fiora
b3c1cec197
JIT: fix memcheck with stXx
2014-09-13 13:53:18 -07:00
Fiora
9a19314969
JIT: make memcheck macro support an inverted mode
2014-09-13 13:53:13 -07:00
Fiora
54e26f64c6
JIT: use far code emitter in more places
2014-09-13 13:51:12 -07:00
Fiora
08ac10d00a
PPCAnalyst/JIT: add ability to easily toggle branch and carry merging
2014-09-13 13:48:24 -07:00
Fiora
54129a8ca5
PPCAnalyst: refactor, add carry op reordering and non-cmp reordering
...
Tries as hard as possible to push carry-using operations (like addc and adde)
next to each other. Refactor the instruction reordering to be more flexible
and allow multiple passes.
353 -> 192 x86 instructions on a carry-heavy code block in Pokemon Puzzle.
12% faster overall in Pokemon Puzzle; probably less in typical games (Virtual
Console games seem to be carry-heavy for some reason; maybe a different
compiler?)
2014-09-13 13:48:23 -07:00
Fiora
45d84605a9
JIT64: optimize carry calculations further
...
Keep carry flags in the x86 flags register if used in the next instruction.
2014-09-13 13:48:20 -07:00
Fiora
bea2504a51
JIT64: optimize carry calculations
...
Omit carry calculations that get overwritten later in the block before they're
used. Very common in the case of srawix and friends.
2014-09-13 13:47:43 -07:00
Scott Mansell
cf869fc24f
Fix Idle Skipping in JitIL.
...
Has been broken since the flags-opt merge. The idle skipping code in
JitIL was very brittle and depended on the IL of it's inputs not
changing in any way.
flags-opt changed the IR generated by the cmp instruction, which is part
of the idle loop, causing JitIL to break in really weird ways, which
were almost impossible to track down.
This fixes various wii games crashing/not booting and the Regspill
error on (all?) gamecube mmu games.
2014-09-14 04:36:50 +12:00
Fiora
c5381bae66
JIT: add "far code emitter" to reduce L1I cache pressure
2014-09-13 02:31:31 -07:00
Fiora
09a62505c5
JIT: support paired load/store with MMU on
...
Also change the calling convention, to avoid RSCRATCH being clobbered by
memcheck'd loads.
2014-09-13 02:18:11 -07:00
Fiora
2661bc151a
JIT memcheck: don't flush register state unless an exception occurs
2014-09-12 20:55:00 -07:00
archshift
eae38fd339
ConfigManager.cpp: Removed three elements from platform-ifdef
2014-09-12 17:15:46 -07:00
Rohit Nirmal
edd63c14a4
CBoot: Use vectors instead of raw pointers in ELF functions.
2014-09-12 12:03:06 -04:00
Ryan Houdek
e883a6fb2e
Fix all the current issues with the AArch64 register cache.
...
Fixes all the current issues I've been experiencing.
Scaled back the register cache idea for now so I can actually work on some real instructions.
Tested this work with unit tests so I know it works.
Unit tests are pretty great things.
2014-09-12 06:39:15 -05:00
Fiora
a6c9515b00
JIT: unify subfcx and addcx code
...
Again, shorter and should make future optimizations easier.
2014-09-12 00:04:42 -07:00
Fiora
5d80145dc0
JIT: unify subfe/submex/subfex/adde/addmex/addzex code
...
Shorter, plus should make future optimizations easier.
2014-09-12 00:04:42 -07:00
skidau
64b21a4812
Merge pull request #1054 from comex/i-hate-warnings
...
Fix warnings.
2014-09-12 12:35:47 +10:00
Ryan Houdek
d6ef8dc8c6
Merge pull request #1052 from Sonicadvance1/fix-ppcAnalyst-return
...
Fix the return value of PPCAnalyst.
2014-09-11 21:12:38 -05:00
Lioncash
669a118063
Merge pull request #1058 from lioncash/semicolon
...
Remove some unnecessary semicolons
2014-09-11 19:56:08 -04:00
Pierre Bourdon
a96618b2e6
Merge pull request #1036 from phire/save-jitil
...
Save JitIL! Fix bug so JitIL actually runs again.
2014-09-11 23:27:59 +02:00
Rohit Nirmal
428ee10463
include CommonTypes.h instead of Common.h, remove unused using.
2014-09-11 17:23:59 -04:00
Rohit Nirmal
9f82df0364
Move "using namespace ArmGen" from headers to sources.
2014-09-11 16:46:43 -04:00
Lioncash
b06ec302d1
Remove some unnecessary semicolons
2014-09-11 13:05:31 -04:00
Scott Mansell
784d3937dd
Fix IsMMIOAddress Check.
2014-09-11 19:12:34 +12:00
comex
42acd61ccb
Fix warnings.
2014-09-11 01:55:43 -04:00
Fiora
5726e0cdfb
JIT: use XCHG in MOVTwo
...
Roughly the same speed or slightly faster depending on CPU; mostly just cleaner
since we don't have to pass in a temp.
2014-09-10 22:17:38 -07:00
Ryan Houdek
b8d4834cb1
Fix the return value of PPCAnalyst.
...
In situations where conditional continue isn't supported + if a JIT doesn't implement a instruction that has the FL_ENDBLOCK flag. This would cause an
infinite loop.
In reality all the JITs should implement every FL_ENDBLOCK instruction regardless, but JITIL doesn't implement tw/twi which are FL_ENDBLOCK
instructions.
2014-09-10 21:33:17 -05:00
skidau
67f7e7e28b
Merge pull request #1040 from RachelBryk/movie-cleanup
...
Movie cleanup
2014-09-11 11:47:55 +10:00
Rohit Nirmal
c0f7cab3f5
Remove extra semicolons at the ends of some lines.
2014-09-10 12:17:38 -04:00
Ryan Houdek
71cb09f1ca
Merge pull request #1027 from rohit-n/change-include
...
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
Rachel Bryk
08db8c646b
Cleanup Movie.h/cpp.
2014-09-09 21:23:54 -04:00
Rachel Bryk
571727a5ad
Mass rename static variables to s_*.
2014-09-09 21:22:32 -04:00
Fiora
b3a57ff396
JIT: remove op merging code that served no purpose
...
Dolphin already tracks propagation of immediates, so this code didn't really do
anything useful.
2014-09-09 18:09:23 -07:00
skidau
d1439bc1db
Merge pull request #1041 from RachelBryk/kill-g_CoreStartupParameter
...
Kill Core::g_CoreStartupParameter.
2014-09-10 11:00:42 +10:00
Ryan Houdek
16f054db47
Merge pull request #1033 from Sonicadvance1/fix-android-x86_64
...
Fix building x86_64 on Android.
2014-09-09 18:52:27 -05:00
Ryan Houdek
09c1ad1631
Merge pull request #753 from FioraAeterna/integeropts
...
JIT64: various integer optimizations
2014-09-09 04:10:30 -05:00
Ryan Houdek
6a7e8899d3
Merge pull request #1035 from FioraAeterna/fixcrxxx
...
JIT: fix a corner case in crXXX
2014-09-09 00:58:53 -05:00
skidau
e8d8713e03
Merge pull request #1017 from zhuowei/tw_fallback_if_constant_ra
...
Fix various issues with the twi/tw instructions
2014-09-09 15:16:25 +10:00
Ryan Houdek
3a205d663c
Fix building x86_64 on Android.
...
Missed a define in x64MemTools for when the thought process was Android == ARM
Also changes the variable we use for choosing which folders to copy to and from our jni file.
This has changed since the x86_64 build target uses the library folder x86-64, which is stupid and annoying.
2014-09-09 00:11:08 -05:00
Rachel Bryk
f93aa7087c
Kill Core::g_CoreStartupParameter.
2014-09-09 00:24:49 -04:00
skidau
44c4bc134a
Merge pull request #1046 from FioraAeterna/fixdebug
...
JIT: fix running in debug mode
2014-09-09 14:15:35 +10:00
Fiora
0af1352020
JIT: fix running in debug mode
...
Regression in 7fb6628
.
2014-09-08 21:11:41 -07:00
Ryan Houdek
d5da60619e
Merge pull request #1034 from Sonicadvance1/fix-android-arm-ndk64bit
...
Fix building ARMv7 on the 64bit Android NDK.
2014-09-08 22:42:31 -05:00
Fiora
8fc57d61ba
JIT64: support merged branching for rlwinmx, too
...
Not quite as common a branch instruction as cmpwi, but close.
2014-09-08 20:16:41 -07:00
Fiora
b56117de05
JIT64: optimize some special cases of srawix
...
Shift by 31 and 1, both of which are pretty common, can be done in a few less
instructions. Tested with a hwtest.
2014-09-08 20:15:49 -07:00
Fiora
a95d8cbcb4
JIT64: optimize carry handling
...
Carries are rather common and unpredictable, so do them branchlessly wherever
we can.
2014-09-08 20:15:49 -07:00
Fiora
a570c6b4a4
JIT64: tweak srwx/slwx BindToRegister arguments
...
Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.
2014-09-08 20:15:49 -07:00
Fiora
5b77617069
JIT64: use LEA for the "a = b + imm" case of addi
2014-09-08 20:15:48 -07:00
Fiora
9977da0550
JIT64: avoid using LEA for adds when not necessary
2014-09-08 20:15:48 -07:00
Fiora
298f85e152
JIT64: optimize sign-extend
...
Remove some code duplication.
Also remove some comments that no longer apply since x86_32 was dropped.
2014-09-08 20:15:47 -07:00
Fiora
faf6bdfd96
JIT64: Optimize cmpXX
...
Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
2014-09-08 20:15:47 -07:00
Fiora
de662a79b7
JIT64: optimize rlwinmx/rlwinix and friends
...
Take advantage of movzx as a replacement for anding with 0xff or 0xffff, and
abuse loads from the register cache to save ops.
2014-09-08 20:15:46 -07:00
Fiora
858296e1c7
JIT64: optimize multiplication by immediate constants
...
Factor out common code and handle a few more common cases.
2014-09-08 20:15:46 -07:00
skidau
0926f1d344
Merge pull request #897 from Sonicadvance1/AArch64-jit
...
Initial AArch64 JIT
2014-09-09 12:34:58 +10:00
Rohit Nirmal
fbc64984ca
Include CommonTypes.h instead of Common.h.
2014-09-08 15:39:58 -04:00
Lioncash
bf0c4a644b
Merge pull request #1002 from waddlesplash/wx-fixup
...
WiiSaveCrypted: migrate to Core/HW.
2014-09-08 15:20:12 -04:00
Augustin Cavalier
e601b6f2c5
WiiSaveCrypted: migrate to Core/HW.
...
There's really no reason to have this in DolphinWX, as it does
not use any DolphinWX code.
2014-09-08 13:31:23 -04:00
Scott Mansell
1bbc7b4dbb
JitIL: Fix matching bug in Store Paired.
...
Most non-wii, non-mmu games run now.
2014-09-08 23:57:00 +12:00
Scott Mansell
199377db43
Fix bug in Load Paired so JitIL actually runs again.
...
Was broken in the PowerPCState Register PR a few days ago.
2014-09-08 23:25:18 +12:00
Fiora
ce494a5e4f
JIT: fix a corner case in crXXX
...
It didn't behave correctly with an input of zero, resulting in some games
breaking (at the least, Fight Night 2). This should be fixed now.
Also clean it up, add a few comments, and fix some variants of the instruction
that are so rare that they probably never got tested.
2014-09-08 04:16:50 -07:00
Ryan Houdek
652b8602d3
Fix building ARMv7 on the 64bit Android NDK.
...
Google has gotten their act together and fixes a few of the signal handling headers.
Change over to a header that works on both r10 32bit and r10 64bit.
32bit has the old "broken" headers as in some didn't even exist.
64bit has the "fixed" headers that one would expect on any regular unix system.
2014-09-08 06:05:03 -05:00
skidau
9529667eae
Merge pull request #1032 from FioraAeterna/fixnocc
...
JIT: fix conditional-continue=off
2014-09-08 17:34:28 +10:00
Fiora
3855396422
JIT: fix conditional-continue=off
2014-09-08 00:28:56 -07:00
comex
4dc090643d
Remove ABI_AlignStack/ABI_RestoreStack and the noProlog option to ABI_CallFunctionRR.
...
The latter being true was the only case where the former would do
anything, and it was never true. They became obsolete with x86's
removal.
2014-09-08 01:00:10 -04:00
comex
c5c0b36046
Remove the inaccurately named ABI_PushAllCalleeSavedRegsAndAdjustStack (it didn't preserve FPRs!) and replace with ABI_PushRegistersAndAdjustStack.
...
To avoid FPRs being pushed unnecessarily, I checked the uses: DSPEmitter
doesn't use FPRs, and VertexLoader doesn't use anything but RAX, so I
specified the register list accordingly. The regular JIT, however, does
use FPRs, and as far as I can tell, it was incorrect not to save them in
the outer routine. Since the dispatcher loop is only exited when
pausing or stopping, this should have no noticeable performance impact.
2014-09-08 01:00:10 -04:00
comex
2dafbfb3ef
Improve code and clarify parameters to ABI_Push/PopRegistersAndAdjustStack.
...
- Factor common work into a helper function.
- Replace confusingly named "noProlog" with "rsp_alignment". Now that
x86 is not supported, we can just specify it explicitly as 8 for
clarity.
- Add the option to include more frame size, which I'll need later.
- Revert a change by magumagu in March which replaced MOVAPD with MOVUPD
on account of 32-bit Windows, since it's no longer supported. True,
apparently recent processors don't execute the former any faster if the
pointer is, in fact, aligned, but there's no point using MOVUPD for
something that's guaranteed to be aligned...
(I discovered that GenFrsqrte and GenFres were incorrectly passing false
to noProlog - they were, in fact, functions without prologs, the
original meaning of the parameter - which caused the previous change to
break. This is now fixed.)
2014-09-08 00:58:56 -04:00
Zhuowei Zhang
e63f7c01a3
Fix twi/tw instructions being switched in Jit64 and JitArm; downgrade the ERROR_LOG printed when tw is ran in the interpreter to DEBUG
2014-09-07 13:35:18 -04:00
Zhuowei Zhang
6026a3f76f
When loading the map file for a DOL/ELF file, extract only the filename from the DOL/ELF'S path
2014-09-07 11:58:32 -04:00
Zhuowei Zhang
b70c0ae521
for tw/twi instructions, force propagated constant into a register to avoid "a1 cannot be immediate" errors from the emitter
2014-09-07 11:31:51 -04:00
skidau
8abe9622fd
Route the wiimote speaker to the sound mixer (the host system's speakers). Emulated Wiimote speaker sounds will go to the host system's speakers. Real Wiimotes will continue to use their own speaker for Wiimote speaker sounds. All Wiimote speaker sound can be disabled by unchecking the "Enable Speaker Data" option.
...
Each emulated Wiimote can have its speaker routed from left to right via the "Speaker Pan" setting in the emulated wiimote settings dialog. Use any value from -127 for leftmost to 127 for rightmost with 0 being the centre.
Added code in the InputConfig to use a spin control for non-boolean values.
Defaulted the setting of "Enable Speaker Data" to disabled.
2014-09-07 14:16:20 +10:00
skidau
3caab10df8
Hooked up the emulated Wiimote speaker.
...
The Wiimotes are positioned as follows:
Wiimote 0 = Center
Wiimote 1 = Left
Wiimote 2 = Right
Wiimote 3 = Center
The Wiimote speaker output can be disabled via the "Enable Speaker Data" checkbox in the Wiimote settings.
2014-09-07 14:16:20 +10:00
skidau
a21ad12f1e
Merge pull request #1014 from RachelBryk/active-movie
...
Add an IsMovieActive function.
2014-09-07 14:05:59 +10:00
Rachel Bryk
5a163ec5e6
Add an IsMovieActive function.
...
Makes things a bit simpler, since this is a common check.
2014-09-06 23:44:25 -04:00
Zhuowei Zhang
2ac2cbbcf6
Downgrade the ERROR log printed when twi is executed in interpreter to DEBUG
2014-09-06 22:36:17 -04:00
Ryan Houdek
cdd2bd6cdc
Add a couple of asserts to the Arm64 JIT to make sure we can load everything.
2014-09-06 20:14:53 -05:00
Ryan Houdek
82dae72b63
Add AArch64 target to the backpatch header.
...
This fixes the issue of a million warnings spawning from this header.
2014-09-06 20:14:53 -05:00
Ryan Houdek
5233c87dec
Add immediate support to the GPR cache.
2014-09-06 20:14:53 -05:00
Ryan Houdek
2b06257e16
Beginning of the AArch64 JIT branch.
...
This is the bare minimum required to run a few games on AArch64.
Was able to run starfield and Animal Crossing to the Nintendo logo.
QEmu emulation is literally the slowest thing in the world, it maxes out at around 12mhz on my Core i7-4930MX.
2014-09-06 20:14:52 -05:00
shuffle2
9302218a19
Merge pull request #851 from lioncash/logg
...
Common: Kill off duplicate log warning definitions
2014-09-06 12:35:19 -07:00
Lioncash
690ed8580c
Common: Kill off duplicate log warning definitions
...
Also embed the log checks rather than using macros
2014-09-06 15:11:29 -04:00
shuffle2
227b79bf84
Merge pull request #1004 from comex/warning-fixes-2
...
Two trivial warning fixes
2014-09-06 11:56:32 -07:00
shuffle2
1b23432d34
Merge pull request #990 from rohit-n/fix-formatting
...
Fix formatting
2014-09-06 11:54:17 -07:00
shuffle2
d0d6f70980
Merge pull request #996 from RachelBryk/clear-mc-bongos
...
Clear movie variables that might have been set from a previous run.
2014-09-06 11:46:21 -07:00
shuffle2
f2237ecd64
Merge pull request #985 from skidau/dsp-loop-hle
...
Moved the loop check back to a post-loop condition in DSP HLE AX ucode.
2014-09-06 11:44:27 -07:00
comex
30e577fda7
Revert "Merge pull request #993 from phire/fix_getOpInfo"
...
This reverts commit a8f724e7c2
, reversing
changes made to 7a1eca149f
.
For why I'm reverting this entirely, see pull request 997.
2014-09-06 13:46:17 -04:00
comex
48ef6fcad1
Fix signed/unsigned warning in GeckoCode.cpp.
...
No actual bug here.
2014-09-06 13:34:00 -04:00
comex
6c382f6627
Merge pull request #926 from comex/ppcstate-reg
...
PowerPCState register (and rationalize register usage, and add some registers to replace it)
2014-09-06 13:24:38 -04:00
comex
6fd0333c14
Symbolicize explicit uses of x86 registers where possible (GPRs only for now).
...
Uses are split into three categories:
- Arbitrary (except for size savings) - constants like RSCRATCH are
used.
- ABI (i.e. RAX as return value) - ABI_RETURN is used.
- Fixed by architecture (RCX shifts, RDX/RAX for some instructions) -
explicit register is kept.
In theory this allows the assignments to be modified easily. I verified
that I was able to run Melee with all the registers changed, although
there may be issues if RSCRATCH[2] and ABI_PARAM{1,2} conflict.
2014-09-06 13:18:31 -04:00
comex
100a7ac97b
Actually add RCX, plus RDI and RSI on Unix.
...
And switch to a register order that consistently prefers callee-save to
caller-save. phire suggested putting rdi/rsi first, even though they're
caller-save, to save code space; this is more conservative and I can do
that later.
2014-09-06 13:16:21 -04:00
comex
8dea26762d
Rationalize temporary register usage.
...
Rather than using a variety of registers including RSI, ABI_PARAM1
(either RCX or RDI), RCX, and RDX, the rule is:
- RDI and RSI are never used. This allows them to be allocated on Unix,
bringing parity with Windows.
- RDX is a permanent temporary register along with RAX (and is thus not
FlushLocked). It's used frequently enough that allocating it would
probably be a bad idea, as it would constantly get flushed.
- RCX is allocatable, but is flushed in two situations:
- Non-immediate shifts (rlwnm), because x86 requires RCX to be used.
- Paired single loads and stores, because they require three
temporary registers: the helper functions take two integer
arguments, and another register is used as an index to get the
function address.
These should be relatively rare.
While we're at it, in stores, use the registers directly where possible
rather than always using temporaries (by making SafeWriteRegToReg
clobber less). The address doesn't need to be clobbered in the usual
case, and on CPUs with MOVBE, neither does the value.
Oh, and get rid of a useless MEMCHECK.
This commit does not actually add new registers to the allocation order;
it is intended to test for any performance or correctness issues
separately.
2014-09-06 13:16:20 -04:00
comex
67cdb6e07a
Factor code from ABI_CallFunctionRR and GetWriteTrampoline into a helper, and fix a special case.
...
The special case is where the registers are actually to be swapped (i.e.
func(ABI_PARAM2, ABI_PARAM1); this was previously impossible but would
be ugly not to handle anyway.
2014-09-06 13:16:20 -04:00
comex
487eb967eb
Fix a bug with update loads in memcheck mode.
...
In two cases, my old code was using a temporary register but not saving
it properly; it basically worked by accident (an otherwise useless
FlushLock was causing CallerSavedRegistersInUse to think it was in use
by the GPR cache, even though it was actually a temporary).
I'm going to modify this in the next commit to use RDX, but I didn't
want to leave a broken revision in the middle.
2014-09-06 13:16:20 -04:00
comex
48891c6359
Reserve a register for ppcState.
...
The register is RBP, previously in the GPR allocation order. The next
commit will investigate whether there are too few GPRs (now or before),
but for now there is no replacement.
Previously, it was accessed RIP relatively; using RBP, anything in the
first 0x100 bytes of ppcState (including all the GPRs) can be accessed
with three fewer bytes. Code to access ppcState is generated constantly
(mostly by register save/load), so in principle, this should improve
instruction cache footprint significantly. It seems that this makes a
significant performance difference in practice.
The vast majority of this commit is mechanically replacing
M(&PowerPC::ppcState.x) with a new macro PPCSTATE(x).
Version 2: gets most of the cases which were using the register access
macros.
2014-09-06 13:16:18 -04:00
Rohit Nirmal
629ceaf2b1
Split some parts of UpdateBoundingBox into multiple lines. Also,
...
fix issues causing failure on Lint.
2014-09-06 09:49:27 -05:00
Rachel Bryk
2a82b591e1
Clear movie variables that might have been set from a previous run.
2014-09-06 07:10:41 -04:00
skidau
a8f724e7c2
Merge pull request #993 from phire/fix_getOpInfo
...
GetOpInfo: Assert on all invalid Ops.
2014-09-06 19:50:15 +10:00
Scott Mansell
23b54117cd
GetOpInfo: Assert on all invalid Ops.
...
GetOpInfo was returning null pointers for invalid ops in subtables
instead of asserting an error. This was causing segfaults when the
jit tried to jit invalid code.
2014-09-06 20:09:30 +12:00
Scott Mansell
1963717855
Panic on invalid reads/writes for non-mmu games.
...
Previously it would fall through to the mmu code path, and raise a dsi
exception, which it would never check for, so it would continue
executing code silently.
2014-09-06 19:16:54 +12:00
Scott Mansell
96e92d33b7
Don't write to EXRAM if it doesn't exist.
...
Previously, if a gamecube game wrote to an EXRAM address, dolphin would
segfault.
2014-09-06 19:16:02 +12:00
Lioncash
e035ac5591
Merge pull request #992 from phire/betterassert
...
Make Invalid instruction debug assert a non-debug assert.
2014-09-06 03:12:19 -04:00
Scott Mansell
50657548b1
Make Invalid instruction debug assert a non-debug assert.
...
Users need to be able to see this error message. Otherwise they can't
report bugs.
2014-09-06 19:04:34 +12:00
Rohit Nirmal
1ecb318bcc
Fix some formatting (new lines on collapsed single-line conditionals,
...
new lines for opening braces).
2014-09-06 01:23:05 -05:00
shuffle2
a831121683
Merge pull request #979 from shuffle2/fix-memcard-flush3
...
raw memcards: revert last change so flushes are still time-driven.
2014-09-05 22:27:12 -07:00
Shawn Hoffman
96d7b642f4
raw memcards: revert last change so flushes are still time-driven.
...
It turns out the actual slowdown was from memcpy'ing the entire
memcard buffer...not synchronization overhead or the flush itself.
2014-09-05 21:16:59 -07:00
skidau
9800252a28
Re-added the acc_end_reached logic for AXWii.
2014-09-06 11:57:37 +10:00
skidau
0154b8edfd
Moved the loop check back to a post-loop condition in DSP HLE AX ucode. This brings DSP HLE in line with DSP LLE and fixes issue 7627. This effectively reverts ef501137be
which is not needed as the loop check is now corrected.
2014-09-06 11:02:32 +10:00
Fiora
4ec8f83a1a
JIT: fix branch merging with bclr
2014-09-05 13:58:06 -07:00
Fiora
801153301f
Remove debug printf from earlier commit
2014-09-05 10:31:29 -07:00
Fiora
07e0c917c6
Revert "JIT64: optimize CA calculations"
2014-09-05 10:26:30 -07:00
comex
97420c6ec6
Merge pull request #852 from FioraAeterna/optimizeca
...
JIT64: optimize CA calculations
2014-09-05 11:52:02 -04:00
comex
aa1df21bb6
Merge pull request #947 from FioraAeterna/rsqrte
...
JIT: implement frsqte
2014-09-05 11:48:00 -04:00
comex
d4b1d42a21
Merge pull request #975 from FioraAeterna/jittimerinline
...
JIT: completely inline timer reading
2014-09-05 11:45:22 -04:00
shuffle2
3d88dfbad9
Merge pull request #701 from LPFaint99/memcard
...
GCI Folder: try to reserve space for new saves from the current game
2014-09-04 23:02:23 -07:00
Fiora
2f9e9bf1fc
JIT: completely inline timer reading
...
Should be a bit faster on games that heavily use the timer.
2014-09-04 21:55:36 -07:00
LPFaint99
e6e50ee621
GCI Folder: try to leave 10% of the blocks free. only applies if the save is not for the current game
2014-09-04 20:59:38 -07:00
shuffle2
a9a6270982
Merge pull request #774 from magcius/texdecode-cleanup
...
Clean up the TextureDecoder and some related things
2014-09-04 19:37:49 -07:00
Jasper St. Pierre
a5297f6da8
PixelEngine: Remove unused AllowIdleSkipping and all references to it
2014-09-04 17:25:59 -07:00
MikeRavenelle
411c060504
Checkbox for iteration
...
Added the option to handle whether the user wants to iterate through the
assignment of button mappings or assign them one at a time.
fixed formatting issues and code style.
I excluded this option from the config file. This stopped the check box value and the boolean from becoming offset. Since the option should always start as false.
This still causes an issue with the Wiimote input, since the class variable that keeps the state will be wiped, but the check box value will stay the same after closing/reopening without closing the entire Wiimote configuration. I am looking for a way to resolve this.
I also reduced wait time to 2.5 seconds vs. the 5 seconds previously. Seemed to be a little long.
These changes apparently did not go through.
This should fix the Wiimote issue.
2014-09-04 19:23:04 -05:00
shuffle2
127fc1bdc1
Merge pull request #965 from FioraAeterna/srawixzero
...
JIT: remove srawix fallback
2014-09-04 08:44:33 -07:00
lioncash
9f48f02514
Core: Make the tables in ARDecrypt.cpp static
2014-09-04 09:29:34 -04:00
lioncash
4b329a0a75
Core: Fix variable prefixing of statics in Core.cpp
...
These aren't globals.
2014-09-04 08:26:15 -04:00
Fiora
a63b9f6713
JIT: remove srawix fallback
...
As far as I can tell, this has literally been here since the start of the git
history; maybe it was stubbed out because the author wasn't sure it was right?
It matches the PPC/Broadway manuals perfectly, though.
2014-09-03 23:39:52 -07:00
LPFaint99
f6d89c5c98
GCI Folder: if there are too many files in the folder, try to leave free directory entries.
...
Rule: Load first 112 files, any remaining files in the folder are ignored unless they are the same gameid as the current game
2014-09-03 21:15:41 -07:00
Lioncash
956b0708b4
Core: Initialize all JITIL RegInfo members in the initializer list.
2014-09-03 23:06:05 -04:00
shuffle2
1f6f01e2a0
Merge pull request #955 from skidau/geckocodes-mmio
...
Added code to patch the codehandler's MMIO address
2014-09-03 15:33:57 -07:00
skidau
0da22d687d
Added code to patch the codehandler's MMIO address to the currently running system. Added code to detect the location of where the code list should be. This allows any Gecko code handler to be used. Replace the codehandler.bin file with the code handler to be used (e.g. codehandleronly.bin).
2014-09-04 07:44:45 +10:00
Fiora
068b5c26f4
JIT: fix regression in timer patch
2014-09-03 14:36:38 -07:00
Fiora
1b50f9df14
JIT: implement fres
...
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 12:15:30 -07:00
Fiora
c72a133206
JIT: implement frsqrte
...
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 11:21:04 -07:00
skidau
08715167a8
Added code to patch the codehandler's MMIO address to the currently running system. Added code to detect the location of where the code list should be. This allows any Gecko code handler to be used. Replace the codehandler.bin file with the code handler to be used (e.g. codehandleronly.bin).
2014-09-04 00:48:52 +10:00
Rachel Bryk
5adbc83453
Change ControlState typedef to double, and change all related floats/doubles to use it.
...
Fixes an off by 1 issue related to double->float->double conversion, and eliminates numerous warnings.
2014-09-03 03:08:09 -04:00
comex
64575d565a
Merge pull request #923 from FioraAeterna/fixcallersave
...
JIT: Fix caller-save registers on WIN64
2014-09-03 02:27:44 -04:00
Dolphin Bot
e2dfa603a0
Merge pull request #891 from RachelBryk/netplay-time
...
Allow system time to move forward during netplay.
2014-09-03 08:26:51 +02:00
comex
51a5311d6a
Merge pull request #949 from comex/eviction-policy
...
Evict registers from the cache based on LRU.
2014-09-03 02:22:45 -04:00
shuffle2
50879f5624
Merge pull request #905 from RachelBryk/status-bar-messages
...
Add OSD messages back to status bar.
2014-09-02 23:21:58 -07:00
shuffle2
d20f5fb861
Merge pull request #946 from ChuckRozhon/fix_cast_bug
...
Fixed bug introduced in PR#803 caused by casting
2014-09-02 22:58:53 -07:00
Ryan Houdek
1ad1a9062a
Remove PowerPCState::DebugCount.
...
This value was "helpful" for debugging when the stack got corrupted.
Helpful that if gpr[1](Which is the stack pointer with PPC ABI) is zero then the interpreter would spam huge amounts of annoy text saying that we
managed to get in to a "corrupted" state.
This is incremented every instruction on the interpreter, or every block run on the JIT64....Only if debugging is enabled(JIT64 it is a const
variable)
The message is only outputted when interpreter is used and debugging is enabled.
2014-09-03 00:26:57 -05:00
comex
f5c7f676dc
Evict registers from the cache based on LRU.
...
The old method would always evict the first suitable register, i.e. the
same register every time once the cache got full. The cache doesn't get
terribly often, but the result is pathological...
2014-09-03 01:06:14 -04:00
Dolphin Bot
fa29b18e3e
Merge pull request #840 from FioraAeterna/jittimer
...
JIT: implement timer support in mtspr
2014-09-03 07:01:20 +02:00
Fiora
6875d911f1
JIT: merge paired timebase reads where possible
...
Combined with the previous patch, ~1% faster overall on F-Zero GX.
2014-09-02 21:49:24 -07:00
Fiora
816d056657
JIT: implement timer support in mtspr
...
Faster, of course, since we avoid the interpreter, but also means we can
get more a more accurate timer in long blocks by adding the offset from the
start of the block to the retrieved timer. I don't know if this will actually
fix any issues, but it's more correct and a nearly-free improvement.
2014-09-02 21:47:45 -07:00
Charles Rozhon
0e5fde52ac
Fixed bug introduced in PR#803 caused by casting
...
Also changed casts to C++ style casts to removed some of the ambiguity.
2014-09-02 21:50:43 -05:00
Ryan Houdek
1bc246735b
Add some static_asserts to the Arm32 JIT to make sure ppcState is sane.
2014-09-02 18:38:42 -05:00
Fiora
6655c7775e
JIT: Fix callee-save registers on WIN64
2014-09-02 10:56:14 -07:00
Pierre Bourdon
ddb2aefedf
Merge pull request #904 from FioraAeterna/dcbz
...
JIT64: try enabling dcbz again
2014-09-02 15:41:40 +02:00
shuffle2
cc6db8cf26
Merge pull request #939 from shuffle2/fix-memcard-flush2
...
move the decision to delay raw memcard flushes out of the thread.
2014-09-02 00:28:31 -07:00
Shawn Hoffman
44a1a7cdbe
move the decision to delay raw memcard flushes out of the thread.
...
This allows the flush to work better with games which hammer
memcard accesses over short periods as it delays more of the work.
2014-09-01 22:38:31 -07:00
Shawn Hoffman
0625b5defb
windows: make failure to load hid.dll or bthprops.cpl not pop a msgbox, and not crash
2014-09-01 21:27:44 -07:00
Shawn Hoffman
266992684d
msvc: remove some remnants of SDL and DSound from projects and general cleanup.
2014-09-01 21:27:44 -07:00
Dolphin Bot
e5705a9273
Merge pull request #908 from FioraAeterna/fixenhancedbat
...
MMU: fix enhanced BAT support
2014-09-02 05:46:03 +02:00
Fiora
3aa40dab00
JIT64: optimize carry calculations
...
Omit carry calculations that get overwritten later in the block before they're
used. Very common in the case of srawix and friends.
2014-09-01 20:41:48 -07:00
Fiora
a40278b1c4
JIT64: support merged branching for rlwinmx, too
...
Not quite as common a branch instruction as cmpwi, but close.
2014-09-01 20:41:12 -07:00
Fiora
10d691a277
JIT64: optimize some special cases of srawix
...
Shift by 31 and 1, both of which are pretty common, can be done in a few less
instructions. Tested with a hwtest.
2014-09-01 20:41:12 -07:00
Fiora
805be80f12
JIT64: Optimize carry handling
...
Carries are rather common and unpredictable, so do them branchlessly wherever
we can.
2014-09-01 20:41:11 -07:00
Fiora
ee24d4714a
JIT64: tweak srwx/slwx BindToRegister arguments
...
Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.
2014-09-01 20:41:11 -07:00
Fiora
ad51fc7c4b
JIT64: use xor instead of mov for loading a zero regcache immediate
2014-09-01 20:41:10 -07:00
Fiora
27996a65cf
JIT64: use LEA for the "a = b + imm" case of addi
2014-09-01 20:41:10 -07:00
Fiora
cd0c52b537
JIT64: avoid using LEA for adds when not necessary
2014-09-01 20:41:10 -07:00
Fiora
355850f499
JIT64: optimize sign/zero-extend
...
Also remove some comments that no longer apply since x86_32 was dropped.
2014-09-01 20:41:09 -07:00
Fiora
61af91ff16
JIT64: Optimize cmpXX
...
Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
2014-09-01 20:41:09 -07:00
Fiora
41c3dde737
JIT64: optimize rlwinmx/rlwinix and friends
...
Take advantage of movzx as a replacement for anding with 0xff or 0xffff, and
abuse loads from the register cache to save ops.
2014-09-01 20:41:08 -07:00
Fiora
58dc802ce2
JIT64: optimize multiplication by immediate constants
...
Factor out common code and handle a few more common cases.
2014-09-01 20:41:08 -07:00
Pierre Bourdon
24b5ce2ddc
Merge pull request #917 from lioncash/input
...
InputCommon: Rename class InputPlugin to InputConfig
2014-09-01 16:36:52 +02:00
Lioncash
27bd0ce70e
Merge pull request #929 from skidau/dsp-acc-loop
...
Take the size of the audio data into account when checking for the loop address
2014-09-01 10:07:43 -04:00
skid
91a6962565
Take the size of the audio data into account when checking for the loop address. Fixes the static audio in the FMV of Megaman X Collection, Pac Man World 2, off pitched instruments in Skies of Arcadia and audio desync in the Taiko no Tatsujin series.
...
Fixes:
issue 7154
issue 7222
issue 7280
issue 7457
2014-09-01 21:43:33 +10:00
Pierre Bourdon
494a60e41b
VertexLoader: Change VtxDesc to use u64 instead of u32
...
This is required to make packing consistent between compilers: with u32, MSVC
would not allocate a bitfield that spans two u32s (it would leave a "hole").
2014-09-01 11:18:02 +02:00
Lioncash
f8e24de833
Merge pull request #907 from FioraAeterna/rollbacklmw
...
JIT: revert lmw optimizations
2014-08-31 13:51:24 -04:00
Lioncash
1a3ebbb831
InputCommon: Rename class InputPlugin to InputConfig
2014-08-31 00:59:06 -04:00
Pierre Bourdon
ea7eee1f58
Merge pull request #913 from lioncash/movie-func
...
Core: Break movie header validity checking into a function
2014-08-31 06:55:04 +02:00
Lioncash
f22597a4ee
Core: Break movie header validity checking into a function
2014-08-31 00:52:36 -04:00
Pierre Bourdon
ee880ea73c
Merge pull request #914 from lioncash/potential-uninitialized
...
Core: Fix potential uninitialized variable warnings in Wii_IPC_HLE_Devices_es.cpp
2014-08-31 06:46:45 +02:00
Lioncash
377a1c8f20
AudioCommon: Get rid of now unused handle param for InitSoundStream()
2014-08-30 23:36:00 -04:00
Ryan Houdek
1a6268e6cf
Merge pull request #899 from FioraAeterna/checkram
...
JIT: fix RAM check in load-from-constant-address
2014-08-30 20:49:33 -05:00
Lioncash
5f43685f4e
Core: Fix potential uninitialized variable warnings in Wii_IPC_HLE_Device_es.cpp
2014-08-30 19:06:07 -04:00
Lioncash
beb95b75ca
PPCAnalyst: Use std::swap instead of making a temporary variable
2014-08-30 18:32:09 -04:00
Lioncash
eb535be874
Core: Clean up brace placements
2014-08-30 18:06:49 -04:00
Lioncash
77aef014a0
Merge pull request #909 from lioncash/void
...
Get rid of C-style empty function parameter indicators
2014-08-30 15:28:47 -04:00
Lioncash
1d706b2311
Get rid of C-style empty function parameter indicators
2014-08-30 15:23:48 -04:00
Lioncash
d7db9dd1a8
Core: Change a bitwise OR fail case to a logical AND success check in
...
ActionReplay.cpp
2014-08-30 15:17:15 -04:00
Fiora
08ab2d3110
MMU: fix enhanced BAT support
...
I don't know what I can test this on, but it was definitely broken before.
Seems to be a few clock cycles faster too due to the refactoring?
2014-08-30 05:47:05 -07:00
Fiora
1ed6be12b9
JIT: revert lmw optimizations
...
This seems to break Star Wars Rogue Leader and I have no idea why, so for the
meantime I'm just going to revert it since it's not very important.
2014-08-30 04:17:48 -07:00
Rachel Bryk
ecdd0f6ac0
Add OSD messages back to status bar.
...
OSD messages can be disabled, while still leaving them in the status bar. This is incredibly useful for certain users, who may wish to see the messages, but do not wish to have them cover up half of the screen. In particular TASers will generally have OSD messages on the screen 100% of the time, and they cover up useful information, making it critical to turn them off. However the messages are still very useful to them, so it's important to have them somewhere.
This reverts 4a16211bae
.
2014-08-29 17:46:41 -04:00
Fiora
6f617c4175
JIT64: try enabling dcbz again
...
This time, check the address carefully beforehand, since apparently some games
do horrible things like running it on non-RAM addresses, or at the very least
virtual addresses.
2014-08-29 12:19:58 -07:00
Dolphin Bot
d159bc9998
Merge pull request #886 from RachelBryk/netplay-buffer
...
Change default netplay buffer to 5.
2014-08-29 06:51:56 +02:00
Fiora
88095a607a
JIT: fix RAM check in load-from-constant-address
...
A bug that seems to have been uncovered by allowing immediate-address loads.
Super Monkey Ball 2 crashes without this change -- it's possible, however, that
the game actually requires the MMU hack, since it crashed due to accessing an
address in the 0x20000000-0x3fffffff range.
2014-08-28 12:54:23 -07:00
Ryan Houdek
ad8fe0fb52
Merge pull request #879 from FioraAeterna/frspx
...
JIT64: add frspx implementation
2014-08-28 14:12:21 -05:00
Fiora
c359d65dfe
JIT64: add frspx implementation
2014-08-28 11:40:31 -07:00
Ryan Houdek
4a78a8a72a
Merge pull request #876 from FioraAeterna/floatloadstore
...
JIT64: clean up and unify float load/store code
2014-08-28 13:37:27 -05:00
Dolphin Bot
359aa664e1
Merge pull request #898 from FioraAeterna/fprffix
...
JIT: make fprf conditional in fcmp, just like the other instructions
2014-08-28 20:25:26 +02:00
Dolphin Bot
5e514dcfbc
Merge pull request #881 from FioraAeterna/mulhwx
...
JIT64: add mulhwx implementation
2014-08-28 20:25:13 +02:00
Fiora
7929f2f033
JIT: make fprf conditional in fcmp, just like the other instructions
...
Missed in the FPRF merge (it didn't break anything, but it's probably a bit
slower and not consistent with the others).
2014-08-28 11:19:09 -07:00
Ryan Houdek
0217fb2008
Merge pull request #843 from FioraAeterna/fprf
...
JIT: Initial FPRF support
2014-08-28 13:15:50 -05:00
Fiora
043256449e
Jit64: some load/store optimizations
...
Avoid extra ops during address calculation in loads; use LEAs or immediates
whenever possible.
2014-08-28 10:12:55 -07:00
Rachel Bryk
a3cfc98f26
Allow system time to move forward during netplay.
2014-08-27 16:45:15 -04:00
Fiora
7e07acbf3f
Fix another absent-minded typo in the fmul interpreter patch
2014-08-26 23:00:11 -07:00
Fiora
1a0a33518b
Bugfixes for fmul rounding
...
Fix the places I forgot to add Force25Bit, and fix an incredibly silly typo bug
2014-08-26 21:37:45 -07:00
Rachel Bryk
31353573cb
Change default netplay buffer to 5.
2014-08-26 21:50:30 -04:00
Fiora
7dbc623dc0
JIT: Initial FPRF support
...
Doesn't support all the FPSCR flags, just the FPRF ones.
Add PPCAnalyzer support to remove unnecessary FPRF calculations.
POV-ray benchmark with enableFPRF forced on for an extreme comparison:
Before: 1500s
After, fmul/fmadd only: 728s
After, all float: 753s
In real games that use FPRF, like F-Zero GX, FPRF previously cost a few percent
of total runtime.
Since FPRF is so much faster now, if enableFPRF is set, just do it for every
float instruction, not just fmul/fmadd like before. I don't know if this will
fix any games, but there's little good reason not to.
2014-08-26 10:57:03 -07:00
Fiora
288babf414
PPCFP: add comment
2014-08-26 09:08:22 -07:00
Fiora
90324f3809
JIT64: add mulhwx implementation
2014-08-26 01:09:04 -07:00
Fiora
aaca1b01e5
JIT64: clean up and unify float load/store code
...
While we're at it, support a bunch of float load/store variants that weren't
implemented in the JIT. Might not have a big speed impact on typical games but
they're used at least a bit in povray and luabench.
694 -> 644 seconds on povray.
2014-08-25 19:51:40 -07:00
Lioncash
44ee2f20b9
Merge pull request #874 from FioraAeterna/fixidiocy
...
JIT: fix incredibly silly mistake in fmul rounding patch
2014-08-25 13:22:33 -04:00
Fiora
f04e362721
JIT: fix incredibly silly mistake in fmul rounding patch
2014-08-25 10:10:28 -07:00
comex
6574682ff5
Remove unused variable m_zero.
2014-08-24 16:22:19 -04:00
comex
d128795594
Merge pull request #862 from comex/registersinuse
...
Reduce my idiocy in register saving code.
2014-08-24 16:16:32 -04:00
comex
a7752f49be
Merge pull request #861 from comex/warnings
...
Fix warnings for OS X
2014-08-24 16:15:58 -04:00
comex
cf01f47b52
Fix bloody printf specifiers.
...
In particular, even in code that only runs on x86-64, you can't use
PRIx64 for size_t because, on OS X, one is unsigned long and the other
is unsigned long long and clang whines about the difference. I guess
you could make a size_t specifier macro, but those are horribly ugly, so
I just used casting.
Anyone want to make a nice (and slow) template-based printf?
Now without bare 'unsigned'.
2014-08-24 15:56:41 -04:00
Pierre Bourdon
9ff7125786
Merge pull request #810 from lioncash/controller-interface
...
InputCommon: Don't base default radius of analog sticks off of their name
2014-08-24 19:58:25 +02:00
Pierre Bourdon
ebf1b98106
Merge pull request #834 from FioraAeterna/fixfmulrounding
...
JIT64: Fix fmul rounding issues
2014-08-24 19:49:56 +02:00
Fiora
4d7b1275c9
Interpreter: apply the same odd rounding to single multiplies as the JIT
2014-08-24 10:28:52 -07:00
Fiora
4f18f6078f
JIT64: Fix fmul rounding issues
...
Thanks to magumagu's softfp experiments, we know a lot more about the Wii's
strange floating point unit than we used to. In particular, when doing a
single-precision floating point multiply (fmulsx), it rounds the right hand
side's mantissa so as to lose the low 28 bits (of the 53-bit mantissa).
Emulating this behavior in Dolphin fixes a bunch of issues with games that
require extremely precise emulation of floating point hardware, especially
game replays. Fortunately, we can do this with rather little CPU cost; just ~5
extra instructions per multiply, instead of the vast load of a pure-software
float implementation.
This doesn't make floating-point behavior at all perfect. I still suspect
fmadd rounding might not be quite right, since the Wii uses fused instructions
and Dolphin doesn't, and NaN/infinity/exception handling is probably off in
various ways... but it's definitely way better than before.
This appears to fix replays in Mario Kart Wii, Mario Kart Double Dash, and
Super Smash Brothers Brawl. I wouldn't be surprised if it fixes a bunch of
other stuff too.
The changes to instructions other than fmulsx may not be strictly necessary,
but I included them for completeness, since it feels wrong to fix some
instructions but not others, since some games we didn't test might rely on
them.
2014-08-24 10:28:52 -07:00
Pierre Bourdon
aaff5a0afb
Merge pull request #856 from FioraAeterna/ppcfpopt
...
JIT: faster PPC_FP code
2014-08-24 19:25:56 +02:00
comex
d19ec35363
Reduce my idiocy in register saving code.
...
(1) Rename ABI_ALL_CALLEE_SAVED to ABI_ALL_CALLER_SAVED, because that's
what it was actually defined as (and used as). Derp.
(2) RegistersInUse is always used for the purpose of saving registers
before calling a C++ function in the middle of a JIT block (without
flushing). There is no need to save callee-saved registers in this
case. Change the name to CallerSavedRegistersInUse and mask with
ABI_ALL_CALLER_SAVED.
Nothing obvious broke when starting up a Melee game. (I added a test
for anything actually being masked out; it happens, but in this
particular case seemed to occur at most a few dozen times per second, so
the actual performance benefit is probably negligible.)
2014-08-23 15:46:10 -04:00
comex
e0f35e0e59
Remove unused declarations.
2014-08-23 15:26:59 -04:00
Dolphin Bot
43f890322f
Merge pull request #845 from ChuckRozhon/switch_to_cstdint
...
Changed unsigned ints and chars to cstdint counterparts
2014-08-23 21:18:18 +02:00
Shawn Hoffman
af2405eefd
Remove dsound audio backend.
...
There isn't any reason to use dsound over xaudio.
2014-08-23 11:19:19 -07:00
Shawn Hoffman
327d35377d
windows: remove now-extraneous NOMINMAX and WIN32_LEAN_AND_MEAN #defines from dolphin code.
...
Wrap dinput.h in a header defining DIRECTINPUT_VERSION instead of repeating it multiple places.
2014-08-23 10:48:48 -07:00
Pierre Bourdon
f7102faae7
Merge pull request #853 from lioncash/memmap
...
Core: Simplify Memory::GetString
2014-08-23 19:19:09 +02:00
Fiora
59c1a46ab1
JIT: faster PPC_FP code
...
The PPC_FP conversion code can be made a lot simpler with the observation
that the only values that need to be sent through the slow x87 path are
denormals.
A whole bunch faster: 708->678 seconds on POV-RAY.
2014-08-23 07:44:42 -07:00
Ryan Houdek
db039d1440
Merge pull request #850 from lioncash/unused-headers
...
Core: Removed blank headers Boot_ELF.h and Boot_WiiWAD.h
2014-08-22 02:07:10 -05:00
Lioncash
130f57df91
Core: Simplify Memory::GetString
2014-08-22 01:22:58 -04:00
Ryan Houdek
fc5a73d62e
Merge pull request #849 from FioraAeterna/fixppcanalyzer
...
PPCAnalyzer: move num_instructions initialization to correct place
2014-08-22 00:14:11 -05:00
Lioncash
de9edbeebf
Core: Removed blank headers Boot_ELF.h and Boot_WiiWAD.h
2014-08-21 15:30:51 -04:00
Lioncash
25e29c323d
Merge pull request #842 from lioncash/jit
...
Coding style clean up for the Jit, JitARM and JitIL
2014-08-21 15:25:43 -04:00
Fiora
5c0145f71b
PPCAnalyzer: move num_instructions initialization to correct place
...
Much of the PPC Analyzer code (e.g. instruction reordering for merging
branches) wasn't actually being run.
2014-08-21 11:19:23 -07:00
Lioncash
f17dcd2019
Merge pull request #764 from magcius/new-nogui-2
...
Rewrite GLInterface
2014-08-21 14:14:54 -04:00
Charles Rozhon
965b1f1f2c
Removed the typedefs for Elf32 word types
2014-08-20 15:21:41 -05:00
Charles Rozhon
d84b2f3be4
Changed unsigned ints and chars to cstdint counterparts
2014-08-20 14:52:01 -05:00
Lioncash
20f8ec9afa
Core: Join a few if statements in IR.cpp
2014-08-20 14:26:16 -04:00
Lioncash
99ae79f7f9
Core: Better assert messages for stx op
2014-08-20 14:16:05 -04:00
Lioncash
d694637938
Core: Clean up brace/body placements for JitIL
2014-08-20 14:04:01 -04:00
Lioncash
b005ba2797
Core: Clean up body/brace placements in JitArm32
2014-08-20 14:03:46 -04:00
Lioncash
6145ced5f7
Core: Change "unsigned result" to "u32 result" in rlwinmx for Jit64
2014-08-20 12:51:30 -04:00
Lioncash
e7f49692e8
Core: Clean up body/brace placements in Jit64 and JitCommon
2014-08-20 12:50:42 -04:00
Shawn Hoffman
043ea31f14
msvc: resolve all warnings in Core.
...
Note: vs14 will support empty macro parameter as used by MMIO.
2014-08-19 22:33:46 -07:00
Lioncash
a013830b4f
Core: Fix vertical alignment of a table in DSPTables.cpp
2014-08-19 13:58:59 -04:00
Jasper St. Pierre
6dbafa9238
Core: Move the titlebar / statusbar abstraction to DolphinWX
...
The concept of a "title bar" / "status bar" shouldn't be a core concept,
so remove the Host_UpdateStatusBar function, and move the code handles
whether to update the status bar or titlebar into DolphinWX.
2014-08-19 10:37:47 -04:00
Jasper St. Pierre
3bad4bcfdb
PPCSymbolDB: Don't show any messages in the status bar
...
These don't really help anybody. We don't even have a status bar
in MainNoGUI -- status bar text should be controlled by the UI, not the
core code!
2014-08-19 10:09:33 -04:00
Jasper St. Pierre
4a16211bae
Core: Don't display messages in the titlebar / statusbar
...
We already put them on-screen, that should be good enough.
2014-08-19 10:07:59 -04:00
Jasper St. Pierre
63f1a16969
Core: Remove UpdateFPSDisplay
...
This is effectively unused, as the window handles that we pass to the
GLInterface are window handles for the frame which isn't ever a real
toplevel window. Host_UpdateTitle is what actually sets the proper title
on the render window.
2014-08-19 10:05:58 -04:00
Jasper St. Pierre
7ca8d8dfc7
Core: Don't pass through a reference to the window handle
...
Now that MainNoGUI is properly architected and GLX doesn't need to
sometimes craft its own windows sometimes which we have to thread back
into MainNoGUI, we don't need to thread the window handle that GLX
creates at all.
This removes the reference to pass back here, and the g_pWindowHandle
always be the same as the window returned by Host_GetRenderHandle().
A future cleanup could remove g_pWindowHandle entirely.
2014-08-19 10:05:58 -04:00
Jasper St. Pierre
6e312dce91
Core: Remove Core::GetWindowHandle
...
Finally, it's unused. Whoa.
2014-08-19 10:05:58 -04:00
Ryan Houdek
355f7b366b
Merge pull request #831 from FioraAeterna/cleanupimm
...
JIT: cleanup unnecessary immedate size-checking logic
2014-08-19 04:15:22 -05:00
Dolphin Bot
2bcc8d414c
Merge pull request #807 from FioraAeterna/avoidpcstore
...
JIT: avoid saving the PC on every store
2014-08-19 11:12:54 +02:00
Dolphin Bot
961c1db116
Merge pull request #746 from FioraAeterna/fastermtcrf
...
Improve performance of CR functions in JIT64
2014-08-19 11:10:18 +02:00
Fiora
a1655a0e3c
JIT: avoid saving the PC on every store
...
Modify the backpatcher to store the PC in the trampolines.
Should be ~3.5% faster overall (measured on POV-RAY benchmark).
2014-08-19 02:08:53 -07:00
Matthew Parlane
7246ea9616
Merge pull request #792 from booto/dsp-cleanup
...
DSP cleanup
2014-08-19 20:28:51 +12:00
Ryan Houdek
bac9634fde
Merge pull request #803 from ChuckRozhon/cast_from_double_to_u8_warnings
...
Removed warnings by explicitly casting to `u8` for controllers
2014-08-18 17:01:02 -05:00
Fiora
1a36210093
JIT: cleanup unnecessary immedate size-checking logic
...
We do this in the emitter now, so this code isn't needed anymore.
2014-08-18 08:20:46 -07:00
Shawn Hoffman
bd7f856424
Rewrite raw memcard threading code. Intended to fix issue 7484.
...
EXI memcard code now doesn't know specifics of how data is flushed to whatever backing storage is used.
GC raw memcard now flushes every 15 seconds if dirty, and on memcard destruction.
GCI folder now flushes only on memcard destruction.
2014-08-17 21:52:40 -07:00
Ryan Houdek
7222eb11e0
Merge pull request #822 from FioraAeterna/integerflush2
...
JIT: flush *after* the merged branch, not before
2014-08-17 02:34:15 -05:00
Fiora
75279881cc
JIT: flush *after* the merged branch, not before
...
More correct and should avoid lots of redundant stores.
2014-08-17 00:02:00 -07:00
Lioncash
66a30d0fc6
Merge pull request #820 from RachelBryk/movie-includes
...
Remove a couple unneeded includes from Movie.cpp.
2014-08-17 02:24:37 -04:00
Lioncash
4759510f70
Get rid of instances of "using namespace std;" in the project
2014-08-17 02:05:33 -04:00
Rachel Bryk
d8baf64747
Remove a couple unneeded includes from Movie.cpp.
2014-08-16 23:54:11 -04:00
Lioncash
d18d3e1f3e
Common: Get rid of StdConditionVariable, StdMutex, and StdThread.
...
All of the compilers we support have support for these now.
2014-08-16 23:33:19 -04:00
shuffle2
2270c3e90a
Merge pull request #797 from shuffle2/msvc-pch
...
Windows: Use a shared precompiled header for dolphin code under Source/
2014-08-16 14:58:28 -07:00
Ryan Houdek
239e04db02
Merge pull request #757 from Tilka/ps_sum0
...
Jit64: re-enable ps_sum0
2014-08-15 20:25:14 -05:00
Dolphin Bot
444e47a07a
Merge pull request #812 from FioraAeterna/fixundefined
...
JIT: don't rely on undefined behavior for constant overflow checking
2014-08-16 00:36:08 +02:00
Fiora
1cb50c9609
JIT64: faster implementation of mtcrf and mcrxr
2014-08-15 14:09:28 -07:00
Fiora
c936984c96
JIT64: faster + branchless crxxx
2014-08-15 14:09:28 -07:00
Fiora
8c71703098
JIT64: faster implementation of mfcr
2014-08-15 14:09:27 -07:00
Lioncash
4c406cc4a1
Merge pull request #814 from lioncash/jitwindow
...
Core: Kill off Host_ShowJitResults
2014-08-15 15:26:45 -04:00
Lioncash
cf46ac7dc9
Core: Kill off Host_ShowJitResults
...
Another host function that can be killed off by simple wx event handling
2014-08-15 15:18:28 -04:00
Fiora
1669b361a2
JIT: don't rely on undefined behavior for constant overflow checking
...
I have no idea what the compiler does with these, and this code probably
isn't triggered in most games, but it's probably better not to taunt the
undefined behavior demon.
2014-08-15 11:26:10 -07:00
Charles Rozhon
3baea48bba
Removed warning caused by calling std::min<int> with size_t values
2014-08-15 13:23:19 -05:00
Lioncash
7fd5e4300a
InputCommon: Don't base default radius of analog sticks off of their name.
2014-08-15 13:06:56 -04:00
Shawn Hoffman
f1b82a34b2
Windows: Use a shared precompiled header for dolphin code under Source/
2014-08-14 23:51:13 -07:00
Charles Rozhon
a8c31d134b
Removed warnings by explicitly casting to `u8` for controllers
2014-08-14 14:44:10 -05:00
Ryan Houdek
64697abe48
Merge pull request #798 from FioraAeterna/integerflush
...
JIT: Don't needlessly flush register state in merged integer+branch code
2014-08-14 12:21:03 -05:00
Fiora
97beea1963
JIT: Don't needlessly flush register state in merged integer+branch code
...
The actual branch code doesn't flush the register state, so it doesn't make
much sense for the merged optimization to do so either.
2014-08-14 09:55:11 -07:00
Fiora
a4b23d80b7
JIT: correctly set skipNext even if conditional-continue is off
...
Part 2: I missed the other branch-merging case in the first commit.
2014-08-14 09:31:35 -07:00
Ryan Houdek
e6fa582753
Merge pull request #799 from FioraAeterna/mergebranchfix
...
JIT: correctly set skipNext even if conditional-continue is off
2014-08-14 10:12:19 -05:00
Fiora
75cc8917a1
JIT: correctly set skipNext even if conditional-continue is off
2014-08-14 07:57:55 -07:00
booto
34bf0a4ab7
DSP: General cleanup. No behaviour change.
2014-08-14 09:45:05 +08:00
booto
72179f98b6
DSP: Use completion event for ARAM interrupt
2014-08-13 18:26:02 +08:00
Pierre Bourdon
e4e44909d5
Merge pull request #762 from booto/dma-audio-3
...
DSP: DMA behaviour adjustments to fix regressions
2014-08-12 18:18:51 -07:00
shuffle2
d1702b1160
Merge pull request #676 from lioncash/zelda-ratio
...
Core: Remove the ratio parameter in Zelda UCode's SizeForResampling func
2014-08-12 14:43:32 -07:00
shuffle2
fe2321e117
Merge pull request #748 from lioncash/null
...
Core: Default initialize a pointer to nullptr in gdsp_do_dma()
2014-08-12 13:56:54 -07:00
shuffle2
4e73dd2d0c
Merge pull request #722 from lioncash/casts
...
Fix a cast warning when compiling with MSVC
2014-08-12 13:45:31 -07:00
booto
adf2ae2ac9
DSP: Add minor delay to initial AIDMA interrupt
...
When AIDMA begins, the first thing it does is load the source address
and length into internal registers. It then triggers the AID interrupt.
Some begin the AIDMA process without all the data necessary for the
interrupt callback being set up already - they require a few more cycles
to set it up (the delay between the DMA being set to begin and the
interrupt firing). The value of this delay was approximated by tests on real
hardware.
2014-08-13 00:20:13 +08:00
archshift
c0008b2012
Removed Tracer.h/cpp from VS files
2014-08-11 23:25:04 -07:00
archshift
9aa7a4ddae
Removed unused Tracer.h/cpp
2014-08-11 23:06:44 -07:00
booto
a4bc15e7ba
DSP: Do updates to DSP interrupt bits asap
...
This was being scheduled on the next possible event, which caused
timing issues (in FFCC, AI interrupt would fire before DSP interrupt)
2014-08-11 02:04:08 +08:00
booto
92064d1025
DSP: Fixes behaviour for audio dmas of length 0
...
This behaviour was tested on a real (wii) console.
2014-08-11 02:02:18 +08:00
Lioncash
11f730fd1e
Core: Get rid of C-style struct typedefs
2014-08-09 21:58:08 -04:00
Lioncash
a899d2b5dd
Merge pull request #763 from lioncash/ar
...
Core: Get rid of function prototypes in ActionReplay.cpp
2014-08-09 21:05:08 -04:00
Lioncash
6faed31a44
Core: Get rid of calls to mem_fn in thread instantiations
...
These are not necessary for the same behavior.
2014-08-09 12:46:05 -04:00
Lioncash
e266635f40
Merge pull request #740 from lioncash/host
...
Core: Kill off a few Host interface functions.
2014-08-09 00:50:14 -04:00
Lioncash
5fb0090fcf
Core: Get rid of function prototypes in ActionReplay.cpp
...
Also marked said functions static
2014-08-09 00:19:03 -04:00
Lioncash
7bf82f1989
Core: Kill off Host_UpdateLogDisplay()
...
This was actually never used as far as I can tell. There was no wx event handling done whatsoever for the global ID, So this is basically a dead function.
2014-08-08 19:21:40 -04:00
Lioncash
d4eb0684f7
Core: Kill off Host_UpdateBreakPointView()
...
Uses wxWidgets event propagation to the parent window which then appropriately handles the breakpoint list updating.
2014-08-08 19:21:29 -04:00
lioncash
47274ab992
Core: Fix two more potential memory leaks within IOdarwin.mm
2014-08-08 13:14:18 -04:00
Pierre Bourdon
b38022df43
Merge pull request #750 from lioncash/leak
...
Core: Fix a leak on OSX that could occur in IOdarwin.mm
2014-08-07 09:56:36 -07:00
Tillmann Karras
8058baa3da
Jit64: re-enable ps_sum0
...
The issue seems to have been fixed in the mean time.
https://code.google.com/p/dolphin-emu/issues/detail?id=3471
2014-08-07 04:50:42 +02:00
Ryan Houdek
88934fdef8
Merge pull request #751 from FioraAeterna/fixsignext
...
JIT64: correctly sign-extend immediate RC values
2014-08-06 20:50:35 -05:00
Tillmann Karras
f927af20f2
Fix more warnings from #579
2014-08-07 03:24:42 +02:00
Fiora
047cf23f51
JIT64: correctly sign-extend immediate RC values
2014-08-06 14:21:56 -04:00
lioncash
f21d50e104
Core: Fix a leak on OSX that could occur in IOdarwin.mm
...
If a bluetooth connection isn't able to be opened with a Wiimote, then a memory leak would occur as we don't release cbt
2014-08-06 12:34:40 -04:00
lioncash
3c5326fd38
Core: Default initialize a pointer to nullptr in gdsp_do_dma()
...
The if-statement implies that this could fail in the switch statement somehow. If it does fail, then we'd be comparing with an uninitialized pointer.
2014-08-06 12:10:09 -04:00
Lioncash
42354035e2
Core: Remove unused file DSPJitUtil.h
2014-08-05 23:55:34 -04:00
Pierre Bourdon
b7d4481081
Merge pull request #736 from FioraAeterna/fixdirt
...
JIT: Don't assume the reserved bits in GQRs are zero
2014-08-04 20:32:08 -07:00
Fiora
133e04541a
JIT: Don't assume the reserved bits in GQRs are zero
...
While the unused bits in the GQR SPR are probably not supposed to be set, some
games set them anyways (e.g. Dirt 2), which broke the JIT code.
2014-08-04 14:22:00 -04:00
Fiora
c9be85b079
Fix quant/dequant table bug
...
1<<31 is not 2^31 because 1 is a signed int in C; this bug affected both the
JIT and interpreter quantized store implementations, though I don't know if
any games were actually affected.
2014-08-04 10:08:42 -04:00
Pierre Bourdon
6befa34b60
Merge pull request #647 from lioncash/disasm
...
Common: Introduce the new Gekko disassembler to Common.
2014-08-03 21:52:08 -07:00
Pierre Bourdon
7ba400bea2
Revert "Jit64: Fix immediates being zero-extended to cr_val instead of sign-extended."
2014-08-03 21:50:12 -07:00
Lioncash
0718937237
Common: Introduce the new Gekko disassembler to Common.
...
This moves the Gekko disassembler to Common where it should be. Having it in the Bochs disassembly Externals is incorrect.
Unlike the PowerPC disassembler prior however, this one is updated to have an API that is more fitting for C++. e.g. Not needing to specify a string buffer and size. It does all of this under the hood.
This modifies all the DebuggingInterfaces as necessary to handle this.
2014-08-04 00:45:07 -04:00
Pierre Bourdon
b1553b42ce
Merge pull request #542 from Parlane/weird_buffering
...
Remove weird buffering from WII_IPC_HLE_Device_sdio_slot0.cpp
2014-08-03 21:30:35 -07:00
Pierre Bourdon
95a8c24841
Merge pull request #723 from lioncash/warnings
...
Core: Fix two sets of warnings when compiling on Linux.
2014-08-03 21:25:44 -07:00
Pierre Bourdon
4c42b38de1
Merge pull request #428 from Sonicadvance1/x86_32-removal
...
Remove x86_32 support from Dolphin.
2014-08-03 21:17:28 -07:00
Pierre Bourdon
e15ec56bf0
Merge pull request #716 from delroth/vertex-loader
...
Make vertex loader testable
2014-08-03 21:14:59 -07:00
Lioncash
3aba909b25
Core: Get rid of Host_GetInstance()
2014-08-03 23:47:29 -04:00
Pierre Bourdon
ae27d36961
Jit64: Fix immediates being zero-extended to cr_val instead of sign-extended. Thanks to konpie for finding this issue.
2014-08-03 16:00:41 -07:00
Lioncash
1b7d933072
Fix a cast warning when compiling with MSVC
...
Would previously give a C4800 warning.
2014-08-03 17:33:24 -04:00
Ryan Houdek
e004c8ff2d
Remove x86_32 from x64MemTools
2014-08-03 13:48:53 -05:00
Ryan Houdek
8a123b4d75
Remove x86_32 from the JIT block "profiler."
2014-08-03 13:48:53 -05:00
Ryan Houdek
e357fea279
Remove x86_32 from JitCommon.
2014-08-03 13:48:53 -05:00
Ryan Houdek
f2457bbe9d
Remove x86_32 from Jit64IL.
2014-08-03 13:47:56 -05:00
Ryan Houdek
1d5281068d
Remove x86_32 from Jit64.
2014-08-03 13:45:54 -05:00
Ryan Houdek
35bebe9ce0
Remove x86_32 from the DSP JIT.
2014-08-03 13:44:37 -05:00
Lioncash
e1192bc64b
Core: Fix usages of NULL and 0 literals for pointers in GCMemcardDirectory
2014-08-02 18:55:37 -04:00
Lioncash
10d3b7f8e9
Core: Fix formatting warnings in DSPJitRegCache
2014-08-02 18:48:10 -04:00
Lioncash
0bcebd81f6
Merge pull request #721 from lioncash/netplay-unused-param
...
Core: Kill off an unused parameter for NetPlayServer::StartGame
2014-08-02 18:31:38 -04:00
Lioncash
a77d397312
Merge pull request #717 from lioncash/unused
...
Core: Remove unused parameters in Movie
2014-08-02 18:30:18 -04:00
Lioncash
44a157fc09
Core: Kill off an unused parameter for NetPlayServer::StartGame
2014-08-02 18:28:26 -04:00
Pierre Bourdon
9f8e1e2a0d
Merge pull request #720 from booto/dma-audio-fix2
...
DSP: copy audio dma samples as early as possible
2014-08-02 15:13:26 -07:00
booto
35dfe57bc1
DSP: copy audio dma samples as early as possible
2014-08-03 05:24:19 +08:00
Lioncash
a46a500b94
Core: Fix warnings on Linux related to the JIT
2014-08-02 16:15:20 -04:00
Lioncash
41af9a81a5
Core: Remove unused parameters in Movie
2014-08-02 15:07:13 -04:00
Pierre Bourdon
da2833c0e6
Merge pull request #679 from lioncash/ucode-update-params
...
Core: Remove the unused cycle parameter from DSPHLE update calls
2014-08-02 10:37:19 -07:00
Pierre Bourdon
8f768e5a54
Merge pull request #714 from lioncash/gen
...
Core: Remove using namespace statements from the Jit and Interpreter headers
2014-08-02 10:36:31 -07:00
Pierre Bourdon
8b26d7bf1e
UnitTests: make it possible to build tests for code that has global dependencies
2014-08-02 09:34:39 -07:00
Pierre Bourdon
226a9c2392
Move GLInterface around to remove VideoBackends dependency on DolphinWX
2014-08-02 09:34:39 -07:00
Lioncash
a723fd39df
Merge pull request #715 from lioncash/interp
...
Core: Clean up coding style in the Interpreter
2014-08-02 08:39:11 -04:00
Lioncash
8467c82f79
Core: Clean up coding style in the Interpreter
2014-08-02 07:49:11 -04:00
Lioncash
afb539699e
Core: Remove using statements from the Jit and Interpreter headers
2014-08-02 01:48:02 -04:00
Lioncash
b8e64716be
Merge pull request #713 from lioncash/cast
...
Core: Remove now redundant assert conditions in some DSPJitRegCache functions
2014-08-01 22:55:52 -04:00
Lioncash
44f751f752
Merge pull request #692 from booto/dma-audio-fix
...
DSP: latch dma parameters
2014-08-01 22:19:50 -04:00
Lioncash
899bc84e98
Core: Remove now redundant assert conditions in some DSPJitRegCache functions
2014-08-01 20:49:48 -04:00
Lioncash
005004dfa5
Core: Fix cast warnings in DSPJitRegCache
2014-08-01 20:44:38 -04:00
Lioncash
4e2f487741
Core: Get rid of a cast in JitRegCache.cpp
2014-08-01 20:25:39 -04:00
Lioncash
6c923b776e
Merge pull request #695 from lioncash/ipl-string
...
Core: Use a std::string in EXI_DeviceIPL instead of a char buffer
2014-08-01 19:59:56 -04:00
booto
47ba8cc4c1
DSP: latch dma parameters
2014-08-02 05:59:36 +08:00
Pierre Bourdon
0380bb61fa
Merge pull request #708 from lioncash/drum-axis
...
Core: Fix Y-data not being assigned in Drums.cpp
2014-07-31 22:20:40 -07:00
Lioncash
31e9b1ebdd
Core: Fix Y-data not being assigned in Drums.cpp
...
Prior to this we were overwriting the x-axis with y-axis data.
2014-08-01 01:18:39 -04:00
Lioncash
5bb9a74759
Merge pull request #527 from delroth/flags-opt
...
[RFC] PowerPC flags emulation optimization
2014-07-31 02:51:48 -04:00
Ryan Houdek
fda2190a37
Support the 64bit CR flags in the ARM JIT.
2014-07-30 21:41:18 -07:00
Ryan Houdek
3627bd21f1
Remove JitArmIL files from the project.
...
Due to how the new CR-flags work, it isn't possible without some hefty work in the JITIL backend to support this on 32bit systems.
2014-07-30 21:41:17 -07:00
magumagu
f27940478d
JitIL: Attempt to constant-fold more aggressively.
2014-07-30 21:41:17 -07:00
magumagu
79ecdf5fd0
JitIL: Misc small optimizations.
2014-07-30 21:41:17 -07:00
magumagu
c8dd557dde
JITIL: compare instruction folding.
2014-07-30 21:41:17 -07:00
magumagu
5bb428c685
JITIL: optimize branches.
2014-07-30 21:41:17 -07:00
magumagu
79cc000d62
JITIL: Optimize compare instruction.
2014-07-30 21:41:17 -07:00
magumagu
1429fccb97
Initial unoptimized JITIL flag optimization.
2014-07-30 21:41:17 -07:00
Pierre Bourdon
5506e57ab8
CR: Replace some magic values with constants.
2014-07-30 21:41:17 -07:00
Pierre Bourdon
0ff1481494
Optimize PPC CR emulation by using magic 64 bit values
...
PowerPC has a 32 bit CR register, which is used to store flags for results of
computations. Most instructions have an optional bit that tells the CPU whether
the flags should be updated. This 32 bit register actually contains 8 sets of 4
flags: Summary Overflow (SO), Equals (EQ), Greater Than (GT), Less Than (LT).
These 8 sets are usually called CR0-CR7 and accessed independently. In the most
common operations, the flags are computed from the result of the operation in
the following fashion:
* EQ is set iff result == 0
* LT is set iff result < 0
* GT is set iff result > 0
* (Dolphin does not emulate SO)
While X86 architectures have a similar concept of flags, it is very difficult
to access the FLAGS register directly to translate its value to an equivalent
PowerPC value. With the current Dolphin implementation, updating a PPC CR
register requires CPU branching, which has a few performance issues: it uses
space in the BTB, and in the worst case (!GT, !LT, EQ) requires 2 branches not
taken.
After some brainstorming on IRC about how this could be improved, calc84maniac
figured out a neat trick that makes common CR operations way more efficient to
JIT on 64 bit X86 architectures. It relies on emulating each CRn bitfield with
a 64 bit register internally, whose value is the result of the operation from
which flags are updated, sign extended to 64 bits. Then, checking if a CR bit
is set can be done in the following way:
* EQ is set iff LOWER_32_BITS(cr_64b_val) == 0
* GT is set iff (s64)cr_64b_val > 0
* LT is set iff bit 62 of cr_64b_val is set
To take a few examples, if the result of an operation is:
* -1 (0xFFFFFFFFFFFFFFFF) -> lower 32 bits not 0 => !EQ
-> (s64)val (-1) is not > 0 => !GT
-> bit 62 is set => LT
!EQ, !GT, LT
* 0 (0x0000000000000000) -> lower 32 bits are 0 => EQ
-> (s64)val (0) is not > 0 => !GT
-> bit 62 is not set => !LT
EQ, !GT, !LT
* 1 (0x0000000000000001) -> lower 32 bits not 0 => !EQ
-> (s64)val (1) is > 0 => GT
-> bit 62 is not set => !LT
!EQ, GT, !LT
Sometimes we need to convert PPC CR values to these 64 bit values. The
following convention is used in this case:
* Bit 0 (LSB) is set iff !EQ
* Bit 62 is set iff LT
* Bit 63 is set iff !GT
* Bit 32 always set to disambiguize between EQ and GT
Some more examples:
* !EQ, GT, LT -> 0x4000000100000001 (!B63, B62, B32, B0)
-> lower 32 bits not 0 => !EQ
-> (s64)val is > 0 => GT
-> bit 62 is set => LT
* EQ, GT, !LT -> 0x0000000100000000
-> lower 32 bits are 0 => EQ
-> (s64)val is > 0 (note: B32) => GT
-> bit 62 is not set => !LT
2014-07-30 21:41:17 -07:00
Lioncash
f507827399
Merge pull request #681 from phire/non-sse4_1
...
Fix PPC_FP on non-sse4.1 code paths.
2014-07-31 00:31:02 -04:00
Scott Mansell
8c857b45f8
Fix PPC_FP on non-sse4.1 code paths.
...
The Invalid bit on the x87 fpu is sticky, so once a single NaN goes
through the old code on CPUs without sse4.1 all future floats are
mutilated.
Patch to emulate PTEST by Fiora.
Fixes issue 7237 and issue 7510.
2014-07-31 16:00:27 +12:00
Matthew Parlane
5516b0382c
Merge pull request #699 from lioncash/enum
...
Core: Use an enum for the Gekko exception flags instead of defines
2014-07-30 13:53:58 +12:00
Matthew Parlane
a3ca3b0424
Merge pull request #696 from lioncash/more-forward-decls
...
Convert some more header inclusions into forward declarations
2014-07-30 13:53:48 +12:00
Lioncash
ad3ade1510
Core: Use an enum for the Gekko exception flags instead of defines
2014-07-29 21:51:30 -04:00
Lioncash
b03c12764d
Really get rid of the MSVC 2005 workaround completely
2014-07-29 21:20:43 -04:00
Lioncash
522a5c35ad
Convert some more header inclusions into forward declarations
2014-07-29 20:55:07 -04:00
Lioncash
3d95ed93f5
Core: Use a std::string in EXI_DeviceIPL instead of a char buffer
...
Allows getting rid of extra code.
2014-07-29 20:05:57 -04:00
Pierre Bourdon
c0e8d9879a
Merge pull request #678 from lioncash/overflow
...
Fix a possible overflow in EXI_DeviceIPL.
2014-07-29 16:42:58 -07:00
Lioncash
412196a055
Core: Remove defines used to work around an MSVC 2005 bug
2014-07-29 19:33:08 -04:00
Pierre Bourdon
8ff3cf1838
Merge pull request #684 from lioncash/forward-decls
...
Core: Turn some includes into forward declarations.
2014-07-28 20:50:27 -07:00
Pierre Bourdon
062bce8b7e
Merge pull request #659 from Parlane/classic_controller_fix2
...
Classic controller fix
2014-07-28 20:34:00 -07:00
Tony Wasserka
3fb829ca73
Merge pull request #589 from LPFaint99/gcifolder-fifo
...
Gcifolder use correct region for fifologs
2014-07-28 14:44:01 +02:00
Tony Wasserka
9c7d4b6408
Merge pull request #667 from RachelBryk/remove-audio-limit
...
Remove audio frame limit.
2014-07-28 14:38:35 +02:00
Matthew Parlane
3554a15180
Merge pull request #680 from lioncash/fakepoll-removal
...
Remove fakepoll.h
2014-07-28 21:06:37 +12:00
Lioncash
e225e3679a
Merge pull request #685 from lioncash/invalid-reg
...
Core: Use the enum constant for an invalid reg in JitRegCache
2014-07-27 19:37:43 -04:00
Lioncash
0bb84a1f65
Core: Use the enum constant for an invalid reg in JitRegCache
2014-07-27 19:29:52 -04:00
Lioncash
eb3a1de3f6
Core: Turn some includes into forward declarations.
2014-07-27 13:37:09 -04:00
Tony Wasserka
38c8a4efb2
MMIO: Cleanup Mapping class by using templates instead of macros.
2014-07-27 19:23:19 +02:00
Lioncash
4fa71dd59e
Remove fakepoll.h.
...
It was only used for Windows XP and lower.
This also bumps the _WIN32_WINNT define in the stdafx precompiled headers to set the minimum version as Windows Vista.
2014-07-26 22:53:40 -04:00
Lioncash
551cf4b2a2
Core: Remove the unused cycle parameter from DSPHLE update calls
2014-07-26 20:04:15 -04:00
Lioncash
0b8a6f852b
Core: Use character literals within EXI_DeviceIPL
2014-07-26 19:07:19 -04:00
Lioncash
70ba8cfbc2
Core: Fix a possible overflow in EXI_DeviceIPL
...
m_szBuffer has a size of 256, but addressable range is 0 - 255
2014-07-26 19:06:23 -04:00
Lioncash
c1673824bd
Core: Remove the ratio parameter in Zelda UCode's SizeForResampling func
...
It's only ever passed PB.RatioInt
2014-07-26 17:39:26 -04:00
Pierre Bourdon
957a39942e
Merge pull request #675 from lioncash/movie-params
...
Core: Use param padState instead of a global in SetInputDisplayString
2014-07-26 23:30:26 +02:00
Lioncash
d1e487ae00
Core: Use param padState instead of a global in SetInputDisplayString
2014-07-26 17:14:54 -04:00
Lioncash
40273634a4
Merge pull request #674 from lioncash/loldsp
...
Core: Get rid of the void handle parameter for DSP initialization
2014-07-26 17:00:02 -04:00
Lioncash
e8d0a910da
Core: Get rid of the void handle parameter for DSP initialization
2014-07-26 16:54:36 -04:00
Dolphin Bot
30962ec361
Merge pull request #664 from booto/dtk-surgery
...
DTK: Adjustments attempting to increase accuracy
2014-07-26 21:26:33 +02:00
booto
a6a4229865
DTK: Adjustments attempting to increase accuracy
2014-07-27 03:15:52 +08:00
Pierre Bourdon
6bd5fb3a67
Merge pull request #666 from booto/audio-dma-sampling
...
AudioCommon/Mixer: Allow input sample rate changes
2014-07-26 19:22:37 +02:00
Pierre Bourdon
8e865f3848
Merge pull request #506 from Armada651/d3dfullscreen
...
D3D: Add exclusive fullscreen support.
2014-07-26 13:22:11 +02:00
Jules Blok
6724ce6275
Cosmetic changes based on feedback on PR #506 .
2014-07-26 13:04:39 +02:00
Rachel Bryk
acaac51077
Remove audio frame limit.
...
It serves no purpose and causes bugs and confusion for users.
2014-07-25 12:17:10 -04:00
Lioncash
4189703b40
Merge pull request #662 from lioncash/log-comment
...
Clarify that WiimoteEmu::Spy is intended for debugging purposes
2014-07-25 08:46:52 -04:00
Fog
250cc9d5a0
Fixed last tick count not being set on movie load
2014-07-24 20:56:27 -04:00
Lioncash
cefea9a1a1
Core: Fix the license headers for Memmap.h and SystemTimers.h/.cpp
2014-07-24 20:15:43 -04:00
booto
7d920bbb3a
AudioCommon/Mixer: Allow input sample rate changes
2014-07-24 22:42:29 +08:00
Lioncash
5767691f4e
Get rid of a few C-style struct declarations
2014-07-23 20:36:45 -04:00
Matthew Parlane
008b907bf0
Merge pull request #655 from lioncash/crashes
...
Fix two possible crashes related to the debugger.
2014-07-23 21:24:03 +12:00
Pierre Bourdon
257d2a6faf
Merge pull request #661 from delroth/dolphinbar
...
Fix WiiMote issues causing DolphinBar to not work
2014-07-23 05:26:38 +02:00
Pierre Bourdon
e51c459406
IOWin: rework _IOWrite OVERLAPPED/bytes written handling.
...
CheckDeviceType_Write uses an OVERLAPPED structure to make sure some bytes
were written to the device for a given _IOWrite operation. However, the
OVERLAPPED structure is only used for the BlueSoleil stack, not the MS stack
(which goes through an alternate HID path instead of WriteFile, and does not
have an equivalent async operation).
Make _IOWrite return the number of written bytes instead, since it knows
about the Bluetooth stack being used.
2014-07-23 05:17:04 +02:00
Lioncash
7f55d36013
Clarify that WiimoteEmu::Spy is intended for debugging purposes
2014-07-22 22:38:31 -04:00
Pierre Bourdon
ff61158466
IOWin: Make error 0x1F less noisy.
...
This error code is used by third-party WiiMote adapters to signal the
absence of a WiiMote connected to their virtual HID port. Ignoring it
removes some log spamming and doesn't change anything in terms of
behavior.
2014-07-23 03:32:15 +02:00
Shawn Hoffman
c3eb45f7bc
Revert "Merge pull request #473 from Tilka/frsp"
...
This reverts commit d369627d70
, reversing
changes made to 67ff926f1e
.
2014-07-21 20:40:21 -07:00
Matthew Parlane
cee07ff16e
Use new stick/trigger constants for Classic.cpp
2014-07-22 12:16:34 +12:00
Matthew Parlane
82ee68663f
Add stick and trigger radius/center/range consts
2014-07-22 12:14:47 +12:00
Matthew Parlane
e30f4576c9
Revert "Use new stick/trigger constants for Classic.cpp"
...
Added using github, Parlane is an idiot.
This reverts commit 954e61949f
.
2014-07-22 00:08:10 +00:00
Matthew Parlane
954e61949f
Use new stick/trigger constants for Classic.cpp
2014-07-22 11:57:12 +12:00
Lioncash
d369627d70
Merge pull request #473 from Tilka/frsp
...
Jit64: implement frsp
2014-07-21 14:35:40 -04:00
Jules Blok
36ea1890c8
Let the Renderer decide when to exit fullscreen.
...
This ensures the transition from/to exclusive mode happens while the RenderFrame is fullscreen.
This prevents fullscreen loops and relieves us of having to restore the window size after we exit fullscreen.
2014-07-21 17:11:13 +02:00
booto
0d2bef2743
GCPadStatus: coalescing magic numbers into consts
2014-07-21 19:56:05 +08:00
Matthew Parlane
38d5197a2c
Merge pull request #646 from lioncash/warnings
...
Core: Fix warnings in JitRegCache
2014-07-21 20:43:41 +12:00
Lioncash
44e43fe5c3
Core: Make CPU_POWERDOWN the initial CPU state.
...
This isn't a correct state for the CPU to begin in when starting the application.
Also CPU_STEPPING as an initial state causes the emulator to crash if you use any of the debugger stepping buttons, since it checks if the CPU is in the CPU_STEPPING state before performing their functions.
2014-07-19 19:43:53 -04:00
Pierre Bourdon
963e1a698c
Merge pull request #581 from TotalNerd/memcard-emu
...
Emulate GameCube memory card speeds
2014-07-20 00:12:47 +02:00
booto
631a361cc8
GCPadEmu: stop sticks wrapping at extreme values
2014-07-19 19:22:05 +08:00
LPFaint99
da99e0448b
GCI Folder: no need to force reload sysmenu to get version
...
causes crash with larger gci folders as we pull the loader out from under the ppc
2014-07-18 20:34:26 -07:00
TotalNerd
b2ac65bb21
Revised channel access from EXI_DeviceMemoryCard
2014-07-18 20:06:03 -05:00
Pierre Bourdon
8085b3d264
Merge pull request #638 from lioncash/bound-check
...
Core: Fix bounds checking within GCMemcard.cpp.
2014-07-18 09:14:27 +02:00
Pierre Bourdon
4db84c5188
Merge pull request #637 from lioncash/unused
...
Core: Remove unused function Callback_ISOName()
2014-07-18 09:14:06 +02:00
Lioncash
98f352a4e6
Core: Fix warnings in JitRegCache
2014-07-18 02:44:29 -04:00
Tillmann Karras
771a30da36
Jit64: implement frsp
2014-07-17 23:22:41 +02:00
TotalNerd
f602372885
Redo timing in DMAWrite/DMARead
2014-07-17 10:57:34 -05:00
TotalNerd
8a0093de23
Emulate GameCube memory card speeds
2014-07-17 10:57:34 -05:00
Scott Mansell
7aff56bef5
Implement the correct method for determining field order.
...
Based on advice from tueidj we implement this method based on how
TVs actually determin the field order.
Removes spammy messages about "Invalid field order"
2014-07-17 23:56:23 +12:00
Lioncash
7ca8a834c1
Core: Fix bounds checking within GCMemcard.cpp.
...
Prior to this 127 would be an allowed numeric index. However There is only an addressable range from 0-126.
2014-07-17 01:33:47 -04:00
LPFaint99
19c94de6e0
Gcifolder use correct region for fifologs and homebrew
2014-07-16 21:41:09 -07:00
Lioncash
041445a155
Core: Remove unused function Callback_ISOName()
2014-07-16 20:44:17 -04:00
Pierre Bourdon
8cf21cdcdb
Merge pull request #633 from magcius/wip/input-focus-fix
...
Fix input focus issues
2014-07-17 01:21:31 +02:00
Tony Wasserka
2daa83da48
Merge pull request #372 from Tilka/fctiwzx
...
Jit64: implement fctiwx/fctiwzx
2014-07-16 17:41:21 +02:00
Jasper St. Pierre
44307c9508
Host: Add a new "UIHasFocus" hook to determine if the UI has focus
...
We can't use RendererHasFocus for this purpose because of some issues
with exclusive fullscreen, and the new RendererHasFocus implementation
didn't work for non-Render to Main Window cases, since the renderer
window wasn't managed by wx.
2014-07-16 10:27:21 -04:00
Lioncash
6c57457f9f
Core: Correct some function casings.
2014-07-15 19:41:50 -04:00
Tillmann Karras
6521929f99
Jit64: implement fctiw/fctiwz
2014-07-15 23:58:09 +02:00
Rachel Bryk
ed5169c5eb
Fix leaking exi devices.
2014-07-15 16:15:38 -04:00
Lioncash
ebd029973a
Merge pull request #604 from magcius/wip/emu-cleanup-2
...
Start cleaning up the input interface
2014-07-15 12:11:17 -04:00
LPFaint99
198d137ca0
GCI Folder fix compatibility with games that relocate the save after first use
2014-07-14 18:52:29 -07:00
shuffle2
3cabacde9d
Merge pull request #613 from lioncash/uninitialized
...
Core: Fix potential uninitialized var usage in WII_IPC_HLE_Device_usb
2014-07-13 14:03:02 -07:00
Lioncash
fae0cf3698
Core: Fix potential uninitialized var usage in WII_IPC_HLE_Device_usb
...
If "if (ReadStoredLinkKey->read_all == 1)" is not true, then
num_keys_read would be used uninitialized.
2014-07-13 15:41:35 -04:00
Lioncash
9d3c0102fc
Core: Get rid of an unnecessary struct typedef in Boot.h.
2014-07-13 15:28:50 -04:00
Pierre Bourdon
16582a0459
Merge pull request #543 from RachelBryk/patches
...
Fix patches not being loaded when running real gc bios.
2014-07-13 06:25:39 +02:00
Tillmann Karras
0ccee6c87b
Fix warnings unearthed by #579
2014-07-13 02:16:51 +02:00
Jasper St. Pierre
e4eec2002b
ControllerEmu: Remove focus-checking code from the rest of ControllerEmu
2014-07-11 14:08:29 -04:00
Jasper St. Pierre
5abc028ace
ControllerEmu: Make BackgroundInput a global setting through the virtualization
...
This will allow us to simplify the checks for background input and push
them further down into the architecture, into the ControllerEmu layer.
The new setting isn't actually used yet, though.
2014-07-11 13:38:37 -04:00
Jasper St. Pierre
a6dc3c47a9
ControllerEmu: Change the GetState interface to remove range/base
...
Do the scaling in the code that interprets the results.
This also removes the templatization of things and changes the interface
to always take a double.
This does add a bit more code to the users of GetState, especially when
having to deal with focus management, but this will be cleaned up very
soon, as focus and focus-related options will be centralized inside the
input platforms themselves, rather than spread out across all the input
plugins.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre
68a4979f35
Nunchuk: Stop the dereference dance
2014-07-11 13:32:56 -04:00
Jasper St. Pierre
e20a0265de
Remove UDPWiimote feature
...
It substantially complicates the code and doesn't really provide any
functionality. According to the forums, the Android app is out of date
and has been broken for quite a while.
If we want to add this back, I'd write an app that speaks a more native
Wiimote protocol, and we can hook that up to the backend quite easily.
It could even be over our NetPlay protocol!
2014-07-11 13:32:56 -04:00
degasus
7e79806efc
remove unused globals
...
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
degasus
81ed17be53
avoid the extern keyword in .cpp files
2014-07-11 16:10:20 +02:00
degasus
6d3f249dcc
mark all local variables as static
2014-07-11 16:10:20 +02:00
degasus
22e1aa5bb4
mark all local functions as static
2014-07-11 16:07:23 +02:00
Lioncash
896d7e5685
Change SPADStatus struct name to GCPadStatus
...
Also get rid of the typedef, since this is unnecessary in C++
2014-07-10 22:02:38 -04:00
Dolphin Bot
bc655d1a82
Merge pull request #515 from Armada651/threading
...
Make the emulation stop asynchronous to prevent deadlocks.
2014-07-10 21:02:47 +02:00
Rachel Bryk
36bc494a0b
Fix code style in WII_IPC_HLE_Device_net.h/.cpp.
2014-07-09 05:26:04 -04:00
Jules Blok
4df00ae544
Movie: Do not attempt to record input when the emulation has not started yet.
...
Fixes a null pointer exception when the user starts the recording during a state transition.
2014-07-08 22:32:35 +02:00
Jules Blok
db7e746cb4
Check whether the core is running instead of checking if it is unitialized.
...
This properly handles the stopping state and more accurately represents the intended check.
2014-07-08 22:30:44 +02:00
Jules Blok
49eade69a3
Core: Return CORE_STOPPING even if hardware is already uninitialized.
2014-07-08 21:21:24 +02:00
Jules Blok
3266394dfb
Make the emulation stop asynchronous to prevent deadlocks.
...
This may expose bugs which relied on the Main Thread to be suspended in the stopping state.
2014-07-08 21:21:23 +02:00
Pierre Bourdon
b0b70381f7
Revert "Don't add segfault handler in interpreter mode"
2014-07-07 05:30:06 +02:00
Dolphin Bot
4ec8c3714d
Merge pull request #328 from Tilka/enum_cpubackend
...
Don't add segfault handler in interpreter mode
2014-07-06 19:28:10 +02:00
Dolphin Bot
db4e32a124
Merge pull request #547 from lioncash/cleanups
...
Clean up the DSP disassembler a little.
2014-07-06 19:20:07 +02:00
Tony Wasserka
a798548c30
Merge pull request #546 from workhorsy/header_guard_to_pragma_once
...
Changed lingering header include guards to pragma once.
2014-07-06 14:19:32 +02:00
degasus
e72b01caa1
ConfigManager: fix alignment
2014-07-06 11:05:16 +02:00
Dolphin Bot
8da2bc63cf
Merge pull request #559 from RachelBryk/gci-folder-state
...
Merge pull request #559 from RachelBryk/gci-folder-state
Keep device type EXIDEVICE_MEMORYCARDFOLDER for gci folder.
2014-07-06 07:34:55 +02:00
Rachel Bryk
86ccf13c09
End movie play back immediately if g_currentByte > g_totalBytes.
...
Also uncomment a PanicAlert in the case of g_currentByte > totalSavedBytes, and add comment explaining how it can happen.
2014-07-05 19:48:44 -04:00
Tillmann Karras
ad2aaedd8b
Don't install segfault handler in interpreter mode
2014-07-05 11:02:41 +02:00
Tillmann Karras
311e9e655a
CoreParameter: add enum CPUBackend
2014-07-05 11:02:41 +02:00
Tillmann Karras
20a16beabd
enum CPUState: rename CPU_* to STATE_*
2014-07-05 11:01:49 +02:00