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
439068acae
Merge pull request #1055 from FioraAeterna/smallermov
...
X64Emitter: support shorter mov reg, imm opcodes
2014-09-14 01:57:36 +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
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
Pierre Bourdon
c6f3424ab1
Merge pull request #1056 from phire/IsMMIOAddress
...
Fix IsMMIOAddress Check.
2014-09-11 10:57:23 +02:00
Pierre Bourdon
eea9be6dc1
Merge pull request #1049 from rohit-n/extra-semicolon
...
Remove extra semicolons at the ends of some lines.
2014-09-10 19:10:55 +02:00
Pierre Bourdon
d75bb614e7
Merge pull request #998 from waddlesplash/wx-fixup
...
Migrate PNGs from DolphinWX to the Data/Resources directory.
2014-09-06 18:07:20 +02:00
Pierre Bourdon
06bdc49957
Merge pull request #999 from lioncash/copy-assign
...
AudioCommon: Make WaveFileWriter inherit NonCopyable
2014-09-06 17:52:11 +02:00
Pierre Bourdon
2333532aab
Merge pull request #1000 from lioncash/preproc
...
Common: Remove HAVE_CXX11_SYNTAX define from Common.h
2014-09-06 17:50:15 +02:00
Pierre Bourdon
bb60cafd40
Merge pull request #982 from FioraAeterna/removedebug
...
Remove debug printf from earlier commit
2014-09-05 19:36:14 +02:00
Pierre Bourdon
58c669aa02
Merge pull request #981 from FioraAeterna/revert-852-optimizeca
...
Revert "JIT64: optimize CA calculations"
2014-09-05 19:27:41 +02:00
Pierre Bourdon
f9650c52f8
Merge pull request #484 from kayru/render_target_pool
...
Render: Implemented simple render target pool
2014-09-04 22:58:01 +02:00
Pierre Bourdon
7d39936b49
Merge pull request #966 from RachelBryk/template-set
...
Change IniFile::Section::Set() with default value to use a template.
2014-09-04 10:54:14 +02:00
Pierre Bourdon
cee71afce5
x64EmitterTest: Fake support for all CPU extensions
2014-09-03 02:26:11 +02:00
Pierre Bourdon
ddb2aefedf
Merge pull request #904 from FioraAeterna/dcbz
...
JIT64: try enabling dcbz again
2014-09-02 15:41:40 +02:00
Pierre Bourdon
5b4f1fe92c
UnitTests: Add tests for the x64Emitter
2014-09-02 10:17:32 +02:00
Pierre Bourdon
e72146d19c
x64Emitter: Do not assert-fail on redundant MOVs, instead show an error log
2014-09-02 10:17:32 +02:00
Pierre Bourdon
a79ced2fc2
x64Emitter: Make it clear for both SSE to int conv that X64 regs are expected
2014-09-02 09:55:47 +02:00
Pierre Bourdon
c428c5999f
x64Emitter: UNPCKLPS/HPS are now tested
2014-09-02 09:53:00 +02:00
Pierre Bourdon
cc0b048c0b
x64Emitter: Support FLD/FSTP with 80 bits operands
2014-09-02 09:52:59 +02:00
Pierre Bourdon
f99f302c91
x64Emitter: assert instead of crashing when generating MOVZX with a wrong size
2014-09-02 09:52:04 +02:00
Pierre Bourdon
b1738b60fc
x64Emitter: Fix MUL with AH/BH/CH/DH registers.
2014-09-02 09:52:04 +02:00
Pierre Bourdon
f0e8b1fda8
x64Emitter: Error out on 8 bits CMOV, and emit 16 bits CMOV properly
2014-09-02 09:52:04 +02:00
Pierre Bourdon
d4ec9737bd
x64Emitter: Assert when using an invalid POP instead of generating an INT3
2014-09-02 09:52:04 +02:00
Pierre Bourdon
9c4daac3a4
x64Emitter: RDTSC now without a typo'd name
2014-09-02 09:52:04 +02:00
Pierre Bourdon
88af225070
x64Emitter: Remove a declared function that is never implemented
2014-09-02 09:52:04 +02:00
Pierre Bourdon
5941653d47
Merge pull request #920 from shuffle2/msvc-gtest
...
Provide a way to build and run unittests on Windows
2014-09-02 07:40:49 +02:00
Pierre Bourdon
9b10d36a85
Merge pull request #938 from lioncash/statics
...
Common: Make the LUTs in ColorUtil static
2014-09-02 07:36:17 +02:00
Pierre Bourdon
15e19e98cb
Merge pull request #937 from lioncash/namespaces
...
Common: Remove unnecessary "using namespace Gen;" from x64emitter
2014-09-02 07:35:26 +02:00
Pierre Bourdon
8913c71dc1
Merge pull request #936 from lioncash/printf
...
DolphinWX: Change a wx Printf call to a Format call
2014-09-02 07:34:28 +02:00
Pierre Bourdon
7fb8572765
Merge pull request #935 from lioncash/snprintf
...
DolphinWX: Get rid of an snprintf call in ISOProperties
2014-09-02 07:33:56 +02:00
Pierre Bourdon
b026217984
Merge pull request #933 from lioncash/prefix
...
DiscIO: Prefix class member variables with "m_"
2014-09-01 22:45:12 +02:00
Pierre Bourdon
5cc0bda3d5
Merge pull request #932 from lioncash/ptr
...
DolphinWX: Use normal instantiation of wxTimer in HotkeyDlg
2014-09-01 20:12:13 +02:00
Pierre Bourdon
d9950d8cab
Merge pull request #921 from lioncash/unique
...
DiscIO: Move some raw pointers over to unique_ptr
2014-09-01 20:11:18 +02: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
Pierre Bourdon
a0bb18872f
Merge pull request #931 from shuffle2/fix-ftz-test
...
unittests: correct some integers which should have been floating point types
2014-09-01 15:09:23 +02: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
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
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
Pierre Bourdon
7d05ebbc9b
Merge pull request #888 from FioraAeterna/fmulinterp
...
Fix another absent-minded typo in the fmul interpreter patch
2014-08-27 10:57:09 +02:00
Pierre Bourdon
81048f38f8
Merge pull request #875 from lioncash/statics
...
DiscIO: Make the unordered set in IsSoundFile static
2014-08-26 09:35:46 +02:00
Pierre Bourdon
25bd734578
Merge pull request #838 from Tilka/unused
...
CommandProcessor: mark some functions as static
2014-08-25 21:24:15 +02:00
Pierre Bourdon
c9f3fd356b
Merge pull request #872 from dolphin-emu/revert-828-pp-shader-catch-broken-config
...
Revert "Catch broken configurations inside of the Post Processing shader...
2014-08-25 14:34:04 +02:00
Pierre Bourdon
bf93920c05
Revert "Catch broken configurations inside of the Post Processing shaders."
2014-08-25 14:33:41 +02: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
Pierre Bourdon
aaff5a0afb
Merge pull request #856 from FioraAeterna/ppcfpopt
...
JIT: faster PPC_FP code
2014-08-24 19:25:56 +02:00
Pierre Bourdon
b749a74d33
Merge pull request #863 from lioncash/remhost
...
UnitTests: Remove now non-existent UpdateStatusBar from StubHost.
2014-08-24 14:41:13 +02:00
Pierre Bourdon
6a5188c9bc
Merge pull request #839 from Tilka/emitter
...
x64Emitter: small source-level fixes
2014-08-23 19:37:24 +02:00
Pierre Bourdon
4ec848736d
Merge pull request #847 from Linktothepast/gameinis
...
Gameini updates.
2014-08-23 19:20:05 +02:00
Pierre Bourdon
f7102faae7
Merge pull request #853 from lioncash/memmap
...
Core: Simplify Memory::GetString
2014-08-23 19:19:09 +02:00
Pierre Bourdon
5bfc3ad342
Merge pull request #827 from Sonicadvance1/fix-pp-config
...
Fixes PP-shaders on !Mesa targets.
2014-08-18 05:02:17 +02:00
Pierre Bourdon
9e2fbaf405
Merge pull request #823 from KScorp/depthmatrixshaders
...
Fixed depth matrix shaders in OpenGL and Direct3D to be more precise.
2014-08-17 22:08:42 +02:00
Pierre Bourdon
b9404f9aee
Merge pull request #809 from degasus/master
...
VertexLoader: cache NativeVertexFormat
2014-08-16 13:38:38 +02:00
Pierre Bourdon
7b6b9b0945
Merge pull request #735 from Armada651/d3dfullscreen_fixes
...
Fix hotkeys in Linux and Mac OS X (properly this time).
2014-08-14 15:27:21 +02:00
Pierre Bourdon
e5ca4f604c
Merge pull request #793 from kamiyo/fixframetools
...
Update frametools.cpp to fix crashing when changing themes.
2014-08-13 10:25:19 -07: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
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
Pierre Bourdon
16f180524c
VertexLoader: do not prepare for vertices if we need to skip them
2014-08-04 20:47:02 -07: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
Pierre Bourdon
b6dac8f0b1
Merge pull request #731 from FioraAeterna/fixquanttable
...
Fix quant/dequant table bug
2014-08-04 20:29:54 -07: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
05a9f5b07a
Merge pull request #730 from dolphin-emu/revert-727-flags-opt
...
Revert "Jit64: Fix immediates being zero-extended to cr_val instead of s...
2014-08-03 21:50:45 -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
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
497de04c52
Merge pull request #671 from lioncash/non-panic
...
DolphinWX: Use a regular wxMessageBox instead of a PanicAlert for non-panic errors.
2014-08-03 21:27:27 -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
87e7c1ee46
Merge pull request #724 from lioncash/mem_fn
...
AudioCommon: Get rid of some unnecessary mem_fn calls
2014-08-03 21:25:24 -07:00
Pierre Bourdon
15920d0f10
Merge pull request #394 from degasus/d3d_lighting_fix
...
VideoCommon: normalize light direction
2014-08-03 21:21:23 -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
Pierre Bourdon
89adfba67b
Merge pull request #729 from lioncash/host-func
...
Core: Get rid of Host_GetInstance()
2014-08-03 21:04:34 -07:00
Pierre Bourdon
1fcf07f9cc
Merge pull request #5 from lioncash/vertex-loader
...
Isolate D3D and Software Renderer from wxWidgets code
2014-08-03 17:32:32 -07: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
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
Pierre Bourdon
35654513c1
VertexLoader: Add more tests, including a few small benchmarks
2014-08-02 14:02:38 -07:00
Pierre Bourdon
1bb7c2791a
Merge pull request #719 from lioncash/warnings
...
Core: Fix warnings on Linux related to the JIT
2014-08-02 13:21:20 -07:00
Pierre Bourdon
46ce810b45
Merge pull request #718 from lioncash/unused-var
...
DolphinWX: Remove an unused variable from ISOProperties
2014-08-02 12:56:55 -07: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
c39ef56db5
VertexLoader: Add very basic unit testing to get started
2014-08-02 09:34:39 -07:00
Pierre Bourdon
6f715a1fbe
VertexLoader: Remove more global state dependencies (this time IndexGenerator and VertexManager)
2014-08-02 09:34:39 -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
Pierre Bourdon
1aab63bef7
Merge pull request #712 from lioncash/cast
...
Core: Fix cast warnings in DSPJitRegCache
2014-08-01 17:49:46 -07:00
Pierre Bourdon
e0b6f8c9c4
Merge pull request #711 from lioncash/cast
...
Core: Get rid of a cast in JitRegCache
2014-08-01 17:29:35 -07: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
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
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
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
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
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
Pierre Bourdon
f6fe299c31
Merge pull request #694 from lioncash/interp-defines
...
Core: Remove defines used to work around an MSVC 2005 bug
2014-07-29 16:39:05 -07: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
Pierre Bourdon
9f86d3efcf
Merge pull request #689 from Shadoxfix/master
...
Update framelimit tooltip text because the Audio option has been removed...
2014-07-28 10:28:23 -07:00
Pierre Bourdon
96cfbd1bb0
Merge pull request #677 from Armada651/use_fullscreen
...
Frame: Only prevent exclusive fullscreen switches when the emulator is paused
2014-07-27 00:14:56 +02:00