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
Jules Blok
6ab6d07948
FrameTools: Add a wxPanel as the child of the RenderFrame.
...
Needed for hotkeys to be captured on Linux.
2014-08-02 13:55:23 +02: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
Ryan Houdek
7e83a0ea9b
Merge pull request #700 from jimbo1qaz/master
...
Fix D3D Real XFB texture sampling.
2014-08-01 22:57:44 -05: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
77c2b6829a
Merge pull request #702 from lioncash/netplay-version
...
Common: State OS instead of 32/64 bit in the netplay lobby
2014-08-01 22:51:30 -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
Lioncash
4b32dcbc33
Merge pull request #707 from lioncash/strip
...
Common: Simplify StripTailDirSlashes
2014-08-01 16:01:37 -04: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
Pierre Bourdon
f6995d1eff
Merge pull request #704 from lioncash/pjhack-removal
...
DolphinWX: Remove the Projection Hack UI
2014-07-31 20:20:02 -07:00
Lioncash
1dc5294629
Common: Simplify StripTailDirSlashes
2014-07-31 22:18:45 -04:00
degasus
5205d7baa6
ogl: fix rasterfont
2014-07-31 19:03:18 +02:00
Lioncash
c5188c76b3
Merge pull request #705 from Sonicadvance1/fix-memoryutil-check
...
Fixes a check for what mmap returns.
2014-07-31 03:06:00 -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
33450c80c3
Fixes a check for what mmap returns.
...
On error mmap returns MAP_FAILED(-1) not null.
FreeBSD was checking the return correctly, Linux was not.
This was noticed by triad attempting to run Dolphin under valgrind and not getting a memory space under the 2GB limit(Because -1 wraps around on
unsigned obviously)
2014-07-31 00:53:00 -05: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
Lioncash
cd37af8590
DolphinWX: Remove the Projection Hack UI
2014-07-30 19:32:41 -04:00
Pierre Bourdon
83838a645f
Merge pull request #690 from Armada651/d3dfullscreen_fixes
...
Exclusive fullscreen fixes
2014-07-30 16:28:56 -07:00
Pierre Bourdon
9b9817f927
x64Emitter: Fix REX encoding for SETcc
...
Previously using the new "lower 8 bits" registers (SIL, SPL, ...) caused SETcc
to write to other registers (for example, SETcc SIL would generate SETcc DH).
2014-07-30 06:41:29 -07:00
Jules Blok
3b5625c76b
VideoConfig: Ignore Borderless Fullscreen setting when the backend does not support exclusive fullscreen.
...
This was expected to be handled by VerifyValidity(), but that only verifies the validity of the INI files.
2014-07-30 12:15:58 +02:00
Jules Blok
5bbd34637b
CFrame: Don't check the video config fullscreen setting.
...
Checking this flag could sometimes incorrectly have the UI assume fullscreen is already off when we're still exiting.
2014-07-30 12:15:32 +02:00
Jules Blok
4501aeefbe
CFrame: Check borderless fullscreen setting before enabling exclusive fullscreen in the video config.
...
Fixes a bug where "Use Fullscreen" would initialize into exclusive fullscreen regardless of the borderless fullscreen setting.
Also relieves the need for the video renderer to check the borderless fullscreen setting each time.
2014-07-30 12:15:26 +02:00
Lioncash
22e9d6977b
Common: State OS instead of 32/64 bit in the netplay lobby
2014-07-30 02:04:17 -04: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
Pierre Bourdon
4b66c6c65a
Merge pull request #698 from lioncash/missed-workaround
...
Really get rid of the MSVC 2005 workaround completely
2014-07-29 18:23:04 -07:00
Lioncash
b03c12764d
Really get rid of the MSVC 2005 workaround completely
2014-07-29 21:20:43 -04:00
jimbo1qaz
fe9b7fa4f3
Fix D3D Real XFB texture sampling.
2014-07-29 18:15:01 -07:00
Lioncash
abc7845e0c
Android: Remove an unused variable from MainAndroid.cpp
2014-07-29 21:05:57 -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
Oussama Danba
313a743cee
Update framelimit tooltip text because the Audio option has been removed.
2014-07-28 19:08:43 +02: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
Jules Blok
1f24122d35
Frame: Only prevent exclusive fullscreen switches when the emulator is paused.
...
This fixes the "Use Fullscreen" setting in which case the switch is done while the emulator is uninitialized.
2014-07-27 00:08:27 +02: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
Jules Blok
ec402a0d5f
FPSCounter: Initialize members.
2014-07-26 14:37:18 +02:00
Jules Blok
ed2c74a024
D3D: Set s_last_fullscreen_mode when constructing the renderer.
2014-07-26 13:47:11 +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
06b13f12d3
D3D: Make the global swapchain static again.
2014-07-26 13:04:46 +02:00
Jules Blok
6724ce6275
Cosmetic changes based on feedback on PR #506 .
2014-07-26 13:04:39 +02:00
Jules Blok
eea7086b23
CFrame: Prevent fullscreen switches if the renderer is halted.
2014-07-26 12:45:19 +02:00
Jules Blok
bd9953d97e
Remove the 3D Vision hack.
...
The hack was needed because the Nvidia 3D Vision heuristics are documented to only support surfaces that are the same size as the backbuffer. This would be the case if you enabled the hack and selected the "Auto (Window Size)" internal resolution.
However, on recent drivers the same effect is achieved by selecting the "Auto (Multiple)" internal resolution. Therefore the hack is no longer required.
2014-07-26 12:45:10 +02:00
Pierre Bourdon
906b05cb1c
Merge pull request #672 from delroth/vertex-loader
...
Vertex loader: reduce dependency on global state
2014-07-26 02:03:03 +02:00
Pierre Bourdon
73f9a22e2e
VertexLoader: Remove global state dependency on g_nativeVertexFmt
2014-07-26 01:35:09 +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
Tony Wasserka
5c4e5e9f8a
Merge pull request #660 from lioncash/warning
...
DolphinWX: Fix a double truncation warning in InputConfigDiagBitmaps
2014-07-25 18:11:40 +02: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
Pierre Bourdon
264459457e
Merge pull request #665 from lioncash/cisms
...
Get rid of a few C-style struct declarations
2014-07-25 01:30:29 +02:00
Lioncash
6186a293f6
InputCommon: Include the algorithm header in ForceFeedbackDevice
...
Also simplified the casting within a std::max call
2014-07-24 18:55:12 -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
Pierre Bourdon
78c3a22060
VertexLoader: take the VAT object directly for RunVertices
2014-07-24 01:51:37 +02:00
Pierre Bourdon
069801a7d1
VertexLoader: Simplify SetVAT
2014-07-24 01:25:23 +02:00
Pierre Bourdon
20369743a4
VertexLoaderUID: remove global state dependency
2014-07-24 01:12:12 +02:00
Moshe Kaplan
cd8b65bd8a
Prevent potential buffer overflow in sscanf
2014-07-23 10:03:49 -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