Commit Graph

11839 Commits

Author SHA1 Message Date
RolandMunsil b0fc4b6ac9 Fix "bad wxCheckListBox index" warning when trying to create AR Code
Fixes issue
[7060](https://code.google.com/p/dolphin-emu/issues/detail?id=7060)
2014-08-05 20:07:23 -07:00
Rachel Bryk 9bd28aa6d1 Give file count in decimal rather than hex when exporting all wii saves. 2014-08-05 22:43:34 -04:00
Tony Wasserka 90d5e31731 Merge pull request #738 from lioncash/i18n
DolphinWX: Make the software renderer text translateable
2014-08-05 11:07:04 +02:00
Lioncash e1701951b2 Merge pull request #739 from delroth/vertex-loader-fix
VertexLoader: do not prepare for vertices if we need to skip them

Fixes issue [7542](https://code.google.com/p/dolphin-emu/issues/detail?id=7542)
2014-08-04 23:51:59 -04: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
Lioncash 7e083f39be DolphinWX: Make the software renderer text translateable 2014-08-04 21:36:08 -04: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
Tony Wasserka fa5588e103 UnitTests: Disable VertexLoader tests if EGL is enabled.
Interface design issues prevent this test from linking correctly. Until this issue is resolved, we'll disable the tests for now.
2014-08-04 18:40:39 +02:00
Tony Wasserka 0d989ea82b Restore Wayland compatibility.
It was broken by e15ec56bf0 because it wasn't deemed important. However chances are people will eventually start using Dolphin on that configuration, so we shouldn't frivolously drop compatibility without good reason.
2014-08-04 18:26:03 +02: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
Tony Wasserka 99dc069b9a Merge pull request #597 from sigmabeta/android-studio-gitignore
[Android] Add a bunch of gradle/AS related stuff to gitignore.
2014-08-04 12:06:29 +02:00
Lioncash 933a7c2fac Merge pull request #734 from lioncash/debug
DolphinWX: Ensure the code view string vector is always a size of two.
2014-08-04 03:18:14 -04:00
Lioncash c051ae3338 DolphinWX: Ensure the code view string vector is always a size of two.
This way if any entries are not populated, then an empty string will be used.
2014-08-04 03:15:29 -04:00
Lioncash fbd2e43ac3 Revert "Fix hotkeys in Linux and Mac OS X" 2014-08-04 01:56:08 -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 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
Lioncash 3aba909b25 Core: Get rid of Host_GetInstance() 2014-08-03 23:47:29 -04:00
Lioncash 847504f327 Merge pull request #725 from lioncash/unnecessary-param
AudioCommon: Remove an unnecessary parameter from the OpenALStream constructor
2014-08-03 22:43:19 -04:00
Lioncash 1515262be9 Merge pull request #710 from Armada651/d3dfullscreen_fixes
CFrame: Only re-assign focus when "Render to main" is enabled.
2014-08-03 22:40:02 -04:00
Lioncash d8d99f919c Merge pull request #683 from Armada651/linux_hotkeys
Fix hotkeys in Linux and Mac OS X
2014-08-03 22:36:46 -04:00
Lioncash a66a7e1344 Isolate D3D and Software Renderer from wxWidgets code 2014-08-03 20:28:50 -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
Ryan Houdek 0c24e1dcf2 Remove the rest of x86_32 support from Common. 2014-08-03 13:49:46 -05:00
Ryan Houdek a70fad4dcb Removes x86_32 from Visual Studio Base properties. 2014-08-03 13:48:53 -05: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 d9b5482840 Remove x86_32 from VertexLoader. 2014-08-03 13:44:37 -05:00
Ryan Houdek 35bebe9ce0 Remove x86_32 from the DSP JIT. 2014-08-03 13:44:37 -05:00
Ryan Houdek 21ee61d7fc Remove x86_32 from DolphinWX. 2014-08-03 13:44:37 -05:00
Jules Blok b6e7e0d57f CFrame: Only re-assign focus when "Render to main" is enabled.
It may cause fullscreen loops and since m_RenderFrame == m_RenderParent now it's not necessary to re-assign focus anymore.
2014-08-03 13:37:19 +02:00
Lioncash 47847bc8dd AudioCommon: Remove an unnecessary parameter from the OpenAL constructor
This wouldn't even be saved to anything.
2014-08-02 23:48:26 -04:00
Lioncash 17e79a966a AudioCommon: Get rid of some unnecessary mem_fn calls 2014-08-02 23:42:34 -04: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
Pierre Bourdon 35654513c1 VertexLoader: Add more tests, including a few small benchmarks 2014-08-02 14:02:38 -07:00
Lioncash a46a500b94 Core: Fix warnings on Linux related to the JIT 2014-08-02 16:15:20 -04:00
Lioncash a89416306a DolphinWX: Remove an unused variable from ISOProperties
Was used for when we still had the toggle for projection hacks in the UI.
2014-08-02 15:23:31 -04:00
Lioncash 41af9a81a5 Core: Remove unused parameters in Movie 2014-08-02 15:07:13 -04:00
Lioncash 0ed29e1fac DolphinWX: Use a regular wxMessageBox instead of a PanicAlert for non-panic errors. 2014-08-02 13:49:51 -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 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
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
Eder Bastos 33f848c78c Add a bunch of gradle/AS related stuff to gitignore. 2014-07-30 22:27:38 -04: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