Commit Graph

9937 Commits

Author SHA1 Message Date
comex 683191b6c6 Merge pull request #892 from comex/oh-the-abstraction
Optimize PointerWrap.
2014-08-28 17:28:16 -04: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
comex faa2666393 PointerWrap currently checks its mode for every individual byte of everything it 'does', including all of RAM. Make it not do that.
Decreases total Wii state save time (not counting compression) from
~570ms to ~18ms.

The compiler can't remove this check because of potential aliasing; this
might be fixable (e.g. by making mode const), but there is no reason to
have the code work in such a braindead way in the first place.

- DoVoid now uses memcpy.
- DoArray now uses DoVoid on the whole rather than Doing each element
(would fail for an array of STL structures, but we don't have any of
those).
- Do also now uses DoVoid.  (In the previous version, it replicated
DoVoid's code in order to ensure each type gets its own implementation,
which for small types then becomes a simple load/store in any modern
compiler.  Now DoVoid is __forceinline, which addresses that issue and
shouldn't make a big difference otherwise - perhaps a few extra copies
of the code inlined into DoArray or whatever.)
2014-08-28 15:35:19 -04: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 23bf8df0e2 Merge pull request #894 from FioraAeterna/missingcvt
x64Emitter: add support for some missing CVT instructions
2014-08-28 13:18:35 -05:00
Ryan Houdek 0217fb2008 Merge pull request #843 from FioraAeterna/fprf
JIT: Initial FPRF support
2014-08-28 13:15:50 -05:00
Dolphin Bot 1cf77c773b Merge pull request #758 from FioraAeterna/loadstoreopt
Jit64: some load/store optimizations
2014-08-28 19:30:26 +02: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
Ryan Houdek c908a1e212 Merge pull request #882 from Sonicadvance1/fix-pp-blackness
Fix PostProcessing shader garbage on screen.
2014-08-28 10:29:03 -05:00
Ryan Houdek ca68526ec7 Clear the texture used by PP shaders prior to use.
We were generating a texture without ever setting the data to a known value.
This happened on the old code as well, just that PP shaders are receiving some love and people are using it and noticing some of its issues.
2014-08-28 10:16:39 -05:00
Ryan Houdek 8e7d7418af Merge pull request #890 from degasus/glx
glx: fix shutdown hang
2014-08-28 09:13:50 -05:00
Lioncash 6955e023a0 Merge pull request #877 from lioncash/voldir
DiscIO: Move VolumeDirectory off of raw pointers
2014-08-28 04:11:33 -04:00
comex a4a533e39f Re-enable the vertex loader JIT on OS X.
Why was it ever disabled?
2014-08-27 23:50:59 -04:00
Fiora f9d4ff0d5d x64Emitter: add support for some missing CVT instructions 2014-08-27 20:15:42 -07:00
Rohit Nirmal 4c14ebdf32 Remove pointless initializations. 2014-08-27 20:36:49 -05:00
Rohit Nirmal 9e340b1c81 Initialize variables to silence garbage return warning from scan-build. 2014-08-27 20:35:20 -05:00
Rachel Bryk a3cfc98f26 Allow system time to move forward during netplay. 2014-08-27 16:45:15 -04:00
degasus 8b0ad5daec glx: fix shutdown hang 2014-08-27 18:16:56 +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
Fiora 7e07acbf3f Fix another absent-minded typo in the fmul interpreter patch 2014-08-26 23:00:11 -07:00
shuffle2 061f2058c2 Merge pull request #887 from FioraAeterna/fmulinterp
Bugfixes for fmul rounding
2014-08-26 21:50:43 -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
comex e31d6feaa2 Unify three types of non-FIFO requests to the GPU thread around Common::Event and Common::Flag.
The only possible functionality change is that s_efbAccessRequested and
s_swapRequested are no longer reset at init and shutdown of the OGL
backend (only; this is the only interaction any files other than
MainBase.cpp have with them).  I am fairly certain this was entirely
vestigial.

Possible performance implications: efbAccessReady now uses an Event
rather than spinning, which might be slightly slower, but considering
the slow loop the flags are being checked in from the GPU thread, I
doubt it's noticeable.

Also, this uses sequentially consistent rather than release/acquire
memory order, which might be slightly slower, especially on ARM...
something to improve in Event/Flag, really.
2014-08-26 12:43:39 -04:00
comex de7294ecc1 Add Flag support to ChunkFile.h 2014-08-26 12:43:39 -04:00
comex 45a4236283 A tiny restructuring to allow inlining of FifoCommandRunnable. Probably useless. 2014-08-26 12:43:39 -04:00
comex 14125cf951 Refactor SetCpStatus into two functions for from-GPU and from-CPU mode rather than a boolean parameter.
This shouldn't affect functionality.  I'm not sure if the breakpoint
distinction is actually necessary (my commit messages from the old
dc-netplay last year claim that breakpoints are broken anyway, but I
don't remember why), but I don't actually need to change this part of
the code (yet), so I'll stick with the trimmings change for now.
2014-08-26 12:43:39 -04:00
Dolphin Bot f52888d3ec Merge pull request #884 from FioraAeterna/ppcfpopt
PPCFP: add comment
2014-08-26 18:28:26 +02: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
Rachel Bryk 5d20455e7d Disable all logs by default. 2014-08-26 03:59:17 -04:00
Lioncash 5082afa670 DiscIO: Move VolumeDirectory off of raw pointers 2014-08-26 00:23:16 -04: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 f18fec81fe DiscIO: Make the unordered set in IsSoundFile static
Doesn't need to be instantiated every time the function is called.
2014-08-25 19:56:09 -04:00
Tillmann Karras 07c7e6f35e CommandProcessor: mark some functions as static 2014-08-25 21:09:42 +02: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
Lioncash 8a77fe0539 Merge pull request #865 from lioncash/debugger-stuff
DolphinWX: Use wxGraphicsContext in the Code View for the debugger.
2014-08-25 13:21:32 -04:00
Fiora f04e362721 JIT: fix incredibly silly mistake in fmul rounding patch 2014-08-25 10:10:28 -07:00
Pierre Bourdon bf93920c05 Revert "Catch broken configurations inside of the Post Processing shaders." 2014-08-25 14:33:41 +02:00
Dolphin Bot 2f2f992bc7 Merge pull request #828 from Sonicadvance1/pp-shader-catch-broken-config
Catch broken configurations inside of the Post Processing shaders.
2014-08-25 09:17:30 +02: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 80da767576 Improve wording of a particularly atrocious message.
(Now without gettextize.)
2014-08-24 16:00: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
Lioncash f239ea3853 DolphinWX: Parenthesize some expressions in CodeView.cpp 2014-08-24 15:40:19 -04:00
Lioncash c3e41809d9 DolphinWX: Move the CodeView debugger view over to wxGraphicsContext
This is a more advanced drawing 'backend' over the previous one and allows us to control things like transparency and anti-aliasing, etc.
2014-08-24 15:40:05 -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
Dolphin Bot f31ebd23bb Merge pull request #864 from FioraAeterna/avx2bmi
Add AVX2/BMI1/BMI2 detection support
2014-08-24 18:55:01 +02:00
Fiora ce6d09ca5d Add AVX2/BMI1/BMI2 detection support
Also clean up the formatting in a bit of the CPU detection code.
2014-08-24 09:14:54 -07: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 1332805bb6 Add headers required by XAudio2_7 to externals.
This makes all builds' audio compatible with downlevel Windows and removes
the need for developers to install the June 2010 DirectX SDK.
2014-08-23 11:03:07 -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 6a5188c9bc Merge pull request #839 from Tilka/emitter
x64Emitter: small source-level fixes
2014-08-23 19:37:24 +02: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
Lioncash 6a74f5e8f6 Merge pull request #817 from archshift/disabledcolor
Fixed toolbar's disabled button color.
2014-08-23 05:08:26 -04:00
Lioncash 41577f044a Merge pull request #844 from lioncash/wx-hotkey
DolphinWX: Get rid of unnecessary hotkey code.
2014-08-22 19:52:18 -04:00
Jasper St. Pierre 1e464d1a25 Frame: Actually call UpdateTitle
This was obviously what I meant to do, but due to a typo, called
SetTitle instead, causing the main game list title to be set instead.
2014-08-22 17:28:02 -04: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 48f52b9662 Merge pull request #789 from archshift/linuxvideo
Fix for black screen on Linux upon starting a game
2014-08-21 15:55:29 -04:00
archshift 7e2534ee47 Fixed black screen on game start for X11 contexts. 2014-08-21 12:50:42 -07: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
Shawn Hoffman 9ac5d7ecd5 msvc: skip copying Data dir and precompiled dlls to Binary dir if they are already there (unless the source files are newer).
Also fix a bug which was preventing DolphinWX/AfterBuild target from being completely skipped.
2014-08-20 16:57:34 -07: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 77ce389bb0 DolphinWX: Get rid of unnecessary hotkey code. 2014-08-20 14:43:08 -04:00
Lioncash b5337ea1b5 Merge pull request #826 from lioncash/wx-events
DolphinWX: Use the typesafe equivalents for declaring wx event types
2014-08-20 14:34:17 -04: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 d9fcc855a7 msvc: resolve all warnings in DolphinWX.
Also, bring WiiSaveCrypted closer to modern dolphin coding style.
2014-08-19 22:33:48 -07:00
Shawn Hoffman 5471c71819 msvc: resolve all warnings in VideoBackends/OGL. 2014-08-19 22:33:47 -07:00
Shawn Hoffman fd16065979 msvc: resolve all warnings in VideoBackends/Software. 2014-08-19 22:33:47 -07:00
Shawn Hoffman 4bf031c064 msvc: resolve all warnings in VideoCommon. 2014-08-19 22:33:46 -07: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
Shawn Hoffman 9df2127865 msvc: enable strictStrings solution-wide for release.
strictStrings is not supported by debug libraries, and indeed breaks the build.
Drop wbemidl.h (incompatible with strictStrings) dependency by using SDL-style search for XInput GUIDs.
2014-08-19 20:33:24 -07:00
Tillmann Karras 80be585fef x64Emitter: remove redundant "Gen::" 2014-08-20 02:56:07 +02:00
Tillmann Karras a363f4fa3e x64Emitter: make 'packed' parameter a bool 2014-08-20 02:54:30 +02: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 271efb450c Add back X11 support to EGL
Refactor the EGL backend to provide a platform separation here, which is
better abstracted away than the old EGL/X11 implementation.
2014-08-19 10:06:26 -04:00
Jasper St. Pierre e39543b963 X11_Util: Don't specify a background pixel
This causes flickering when resizing the window, which looks horrid
and we shouldn't do it.
2014-08-19 10:06:25 -04:00
Jasper St. Pierre 2d974b6086 GLInterface: Destroy GLWin
Everything is now safely tucked inside each individual GLInterface.
2014-08-19 10:06:25 -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
Jasper St. Pierre e2e3f2a20b EGL: Stop the window_handle shuffling as well 2014-08-19 10:05:58 -04:00
Jasper St. Pierre e7471958e4 X11_Util: Resize the GLX window by listening to events on the parent
We now have two cases: the GLX window is parented into a frame, or it's
parented into the MainNoGUI host. In both cases, the GLX window should
be locked to the size of the parent, so just sync it up based on that.
2014-08-19 10:05:58 -04:00
Jasper St. Pierre d6f4f4df42 MainNoGUI: Move a majority of the event handling from the GLX backend
The only reason the GLX backend handled this at all was because
MainNoGUI didn't make its own window before. This is unused in DolphinWX
builds.
2014-08-19 10:05:58 -04:00
Jasper St. Pierre 0dd7f6f5ea MainNoGUI: Supply a window in Host_GetRenderHandle
Our existing code was relying on the GLX backend to create the GLX
window properly, and for the rest of the code to patch that up, sort
of. If we rely on Host_GetRenderHandle() returning a valid window, we
can do a lot better about this.

Create a simple window inside MainNoGUI to make this happen.
2014-08-19 10:05:57 -04:00
Jasper St. Pierre 071e175a1d X11Utils: Explicitly pass the window to fullscreen into ToggleFullscreen
MainNoGUI is going to create its own window soon, and we need to
fullscreen that one instead of the GLX window.
2014-08-19 10:05:57 -04:00
Jasper St. Pierre 2eacf229ed X11Utils: Simplify the Fullscreen interface
Since we only use the toggle action, only keep that.
2014-08-19 10:05:57 -04:00
Jasper St. Pierre 09eb30ea3b MainNoGUI: Remove old OS X backend that doesn't work, rearchitect 2014-08-19 10:05:57 -04:00
Jasper St. Pierre e3a9ba30e3 GLX: Remove evdpy / dpy split
Move to one display. There's no reason to have two displays here -- the
comment stated that one should touch GLX and one should touch window
events, and that they should be touched from different threads, but the
current code wasn't this careful.

Just use one Display connection.
2014-08-19 10:05:57 -04:00
Jasper St. Pierre 12f073c56b Remove support for EGL under X11
Now, the only supported EGL platform is Android. We might eventually add
back support for EGL/X11 or EGL/Wayland, but it will have to be
architected differently.
2014-08-19 10:05:57 -04:00
Jasper St. Pierre 8bd4b9d2f9 Remove support for Wayland
Yes, this is a fancy new feature, but our Wayland support was
particularly bitrotten, and ideally this would be handled by a platform
layer like SDL. If not, we can always add this back in when GLInterface
has caught up. We might be able to even support wxWidgets and GL
together with subsurfaces!
2014-08-19 10:05:56 -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
Ryan Houdek 859564a2d0 Merge pull request #829 from Sonicadvance1/qualcomm-fixed-rotation
Qualcomm fixed screen rotation in their latest v66 development drivers.
2014-08-18 01:29:45 -05:00
Ryan Houdek 7d90a00bbe Qualcomm fixed screen rotation in their latest v66 development drivers.
The framebuffer is no longer rotated the wrong way around in Qualcomm's latest development drivers.
They did something right, only took them over a year.
2014-08-18 00:17:09 -05:00
Ryan Houdek 2d624780c0 Catch broken configurations inside of the Post Processing shaders.
This catches most instances of configuration failures that can happen in a post processing shader.
Gives a user a helpful error message that lets them know what they have failed to set up correctly
2014-08-17 23:59:21 -05: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
Shawn Hoffman 87c324c55a Add Common::Event::WaitFor(), which has the same semantics as std::condition_variable::wait_for() (with millisecond units). 2014-08-17 21:52:40 -07:00
Shawn Hoffman 375be67158 Add Common/Event.h to the VS project files. 2014-08-17 21:52:40 -07:00
Ryan Houdek 32fb61816b Fixes PP-shaders on !Mesa targets.
Seems mesa has a quirk where
define THING(x) (#x)
is the same as
define THING(x) (##x)

Didn't realize I messed it up since it just worked since I only tested on Mesa.
2014-08-17 21:28:59 -05:00
Lioncash 6a8dfda0ea DolphinWX: Use the typesafe equivalents for declaring wx event types
The others were used when wx 2.4 was around
2014-08-17 16:18:58 -04: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
archshift b7f3797689 Wx: further cleanup to toolbar creation process 2014-08-17 12:57:44 -07:00
archshift b74a34795b Fixed toolbar's disabled button color. 2014-08-17 12:57:44 -07:00
Lioncash 15a3b30e27 Merge pull request #790 from lioncash/ogl-cleanup
Small OGL cleanup
2014-08-17 15:17:04 -04:00
Ryan Houdek e3e1869493 Merge pull request #825 from FioraAeterna/x64emitter
x64Emitter: refactor to support longer opcodes
2014-08-17 13:07:56 -05:00
Fiora 802b28daf9 x64Emitter: refactor to support longer opcodes
Also add some new SSE4 opcodes.
2014-08-17 04:48:17 -07:00
KScorp 97dce14368 Fixed depth matrix shaders in OpenGL and Direct3D to be more precise. Fixes some graphical glitches in some games. 2014-08-17 04:43:11 -05: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
Lioncash 6ee2267b2d Merge pull request #771 from lioncash/32bit-cruft
Core: Remove leftover Windows 32-bit functions in MemArena.cpp
2014-08-17 01:40:23 -04:00
Dolphin Bot 1d88091e0b Merge pull request #821 from FioraAeterna/fixjitcompare
Debugger: fix JIT block viewer PPC view
2014-08-17 07:29:25 +02:00
Fiora a317dac089 Debugger: fix JIT block viewer PPC view
The JIT block compare code didn't set the same options for the PPCAnalyzer
as the actual JIT did, which made the PPC side of the JIT block viewer stop
at the first branch instead of the end of the block.
2014-08-16 22:25:49 -07:00
Lioncash 6bfe3714c4 Merge pull request #819 from lioncash/preproc
OGL: Removed some unnecessary preprocessor directives from Render.cpp.
2014-08-17 00:00:36 -04:00
Lioncash f0743e2571 OGL: Removed some unnecessary preprocessor directives from Render.cpp.
scrshotThread was also unused so that is removed as well.

Also added the algorithm header, since we use min and max here.
2014-08-16 23:57:06 -04:00
Rachel Bryk d8baf64747 Remove a couple unneeded includes from Movie.cpp. 2014-08-16 23:54:11 -04:00
Lioncash 1b92c68f05 Common: Add Flag.h to the Visual Studio project. 2014-08-16 23:33:28 -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
Charles Rozhon 6f34a8ac47 Removed warnings by assigning to bool 2014-08-16 14:16:10 -05:00
Lioncash 07f72b1afc Merge pull request #811 from FioraAeterna/fixblowup
Debugger: fix blowup calculation again
2014-08-16 12:42:27 -04:00
degasus a64b0bf499 VertexLoader: cache NativeVertexFormat
This fix a performance regression of PR #672.
2014-08-16 12:58:52 +02:00
Ryan Houdek 7a2fe73310 Merge pull request #816 from Sonicadvance1/fix-not-button
Fix the Not button showing up in the advanced control dialog.
2014-08-15 20:25:56 -05: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
Ryan Houdek 9afc16961f Fix the Not button showing up in the advanced control dialog.
The Not button isn't supposed to show up on outputs to controllers.
When we generate the button it still shows up if it isn't added to the sizer since the parent window still owns it.

Fixes this issue report https://forums.dolphin-emu.org/Thread-linux-ui-bug-in-gc-pad-configuration-menu?pid=335269#pid335269
2014-08-15 20:09:35 -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 f11e587fa4 OGL: Get rid of an unnecessary WIN32 ifdef in main.cpp 2014-08-15 16:16:53 -04: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 7e3d1050f0 OGL: Add static to a function in NativeVertexFormat 2014-08-15 14:16:04 -04:00
Lioncash 32953fd968 OGL: Clean up parameters for some functions. 2014-08-15 14:15:23 -04:00
Lioncash 960b54670c OGL: Fix brace and body placements
Also got rid of void argument specifiers. These are a carryover from C.
2014-08-15 14:12:29 -04:00
Fiora 56cc0227c3 Debugger: fix blowup calculation again
Wasn't quiiite right in 3c2567 either.
2014-08-15 10:24:35 -07:00
Lioncash 7fd5e4300a InputCommon: Don't base default radius of analog sticks off of their name. 2014-08-15 13:06:56 -04:00
lioncash 77ccfa1967 DolphinWX: Fix variable styling in BreakpointView 2014-08-15 09:51:29 -04:00
Lioncash 2848ff342f DolphinWX: More readable variable names in BreakpointView
Also doesn't make everything rely on a single temp variable.
2014-08-15 09:49:09 -04:00
Lioncash f6dd2ff3cb Merge pull request #795 from ChuckRozhon/correct_pointer_style_tasinputdlg
Placed ampersands and asterisks against type name
2014-08-15 08:40:37 -04:00
Shawn Hoffman f1b82a34b2 Windows: Use a shared precompiled header for dolphin code under Source/ 2014-08-14 23:51:13 -07:00
archshift 846a21440b FrameTools.cpp: Alignment of long lists 2014-08-14 23:10:00 -07:00
Lioncash 001c9a18fa Merge pull request #782 from RachelBryk/radius
Set the default radius to 100 for non-gcpad analog sticks.
2014-08-14 17:15:03 -04:00
Lioncash 16a7e6dce5 Merge pull request #787 from archshift/fs-toolbar
Hides toolbar upon using fullscreen and rendering to main window.
2014-08-14 17:13:06 -04:00
Lioncash 3c2567cc37 Merge pull request #804 from FioraAeterna/fixblowup
Debugger: fix blowup calculation
2014-08-14 17:12:11 -04:00
Fiora 6741cdbe84 Debugger: fix blowup calculation 2014-08-14 13:40:34 -07:00
Charles Rozhon a8c31d134b Removed warnings by explicitly casting to `u8` for controllers 2014-08-14 14:44:10 -05:00
Charles Rozhon 97f68be70a Changed GCPadStatus struct to use cstdint types instead of char, short etc. 2014-08-14 14:14:07 -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 7f3458e957 Merge pull request #800 from FioraAeterna/showdebugjit
Debugger: make "PPC to x86" open JIT window
2014-08-14 10:41:42 -05:00
Fiora c1f7b0ddc9 Debugger: make "PPC to x86" open JIT window
The button just silently did nothing if the window wasn't open, with no hint
as to how to make it work.
2014-08-14 08:37:33 -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
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
booto 34bf0a4ab7 DSP: General cleanup. No behaviour change. 2014-08-14 09:45:05 +08:00
Charles Rozhon 2d920965c0 Placed ampersands and asterisks against type name 2014-08-13 16:42:11 -05:00
kamiyo e4c7cce412 updated frametools 2014-08-13 13:10:08 -04:00
Shawn Hoffman 66fdbdd18d Windows: Give SCMRevGen a configuration for x64 instead of Win32. 2014-08-13 03:57:10 -07:00
booto 72179f98b6 DSP: Use completion event for ARAM interrupt 2014-08-13 18:26:02 +08:00
archshift 7af80c7712 Disable toolbar toggle in main window fullscreen 2014-08-13 02:21:21 -07:00
Ryan Houdek 287758f15d Add the configuration dialog for post processing configuration options.
Only enables the config button when the shader options available to it
2014-08-13 01:05:15 -05:00
Ryan Houdek cced3b4a18 Change OpenGL's post processing to use the new VideoCommon PP object.
Let's OpenGL's PostProcessing namespace be changed to a class inheriting from VideoCommon's PostProcessing class.
2014-08-13 01:05:15 -05:00
Ryan Houdek b8a21b3744 Add the PostProcessing class object to RenderBase in VideoCommon.
Backends will initialize this variable with their own inherited PostProcessing class object.
2014-08-13 01:05:14 -05:00
Ryan Houdek 6bdc32c54a Add the VideoCommon PostProcessing class.
This class loads all the common PP shader configuration options and passes those options through to a inherited class that OpenGL or D3D will have.
Makes it so all the common code for PP shaders is in VideoCommon instead of duplicating the code across each backend.
2014-08-13 01:05:10 -05:00
Ryan Houdek 3a657fe33c Add TryParseVector to StringUtil.
Adds a nice way to have options be in a vector for results
2014-08-12 23:45:14 -05: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
archshift b451f561ba Hide toolbar upon going fullscreen, rendering to main window. 2014-08-12 17:47:25 -07:00
shuffle2 7b9c8da468 Merge pull request #726 from Armada651/ogl-exclusive
CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL.
2014-08-12 14:55:18 -07:00
shuffle2 6a336f66a8 Merge pull request #569 from RyDroid/desktop-file-without-translation
Minor improvement of the desktop file
2014-08-12 14:51:55 -07:00
shuffle2 d704ebdb40 Merge pull request #691 from Armada651/veto_fix
CFrame: Handle close events that can't be vetoed.
2014-08-12 14:46:01 -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 43010818fa Merge pull request #785 from lioncash/string
Common: Fix AsciiToHex returning true on overflow values
2014-08-12 14:43:02 -07:00
shuffle2 9f4008c5bc Merge pull request #760 from lioncash/swap
Common: Use the OSX equivalent byte-swap functions
2014-08-12 14:31:32 -07:00
shuffle2 b8d126c101 Merge pull request #754 from FioraAeterna/immediateopt
x64Emitter: optimize immediate sizes
2014-08-12 14:19:31 -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
Tony Wasserka d03e91962e Merge pull request #779 from lioncash/software-cleanup
Small software backend cleanup.
2014-08-12 11:59:21 +02:00
shuffle2 a46151e146 Merge pull request #786 from shuffle2/fix-toolbar-toggle
Fix regression with toggling the toolbar from PR761
2014-08-12 01:13:32 -07:00
Shawn Hoffman 27f496fa34 Fix regression with toggling the toolbar from PR761 2014-08-12 01:04:51 -07:00
Lioncash 5afb9cc5c4 Common: Fix AsciiToHex returning true on overflow values
We should be checking errno against ERANGE.
2014-08-12 02:49:04 -04: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
shuffle2 36af1b518d Merge pull request #777 from shuffle2/vs2013-update3
Use official flag for detailed symbols. Require VS2013 with update 3 or later to build.
2014-08-11 20:12:52 -07:00
shuffle2 0b27e0f3f0 Merge pull request #761 from archshift/better-toolbar
Changed main toolbar to be flush with the rest of the window.
2014-08-11 20:12:24 -07:00
shuffle2 edf660f21f Merge pull request #776 from shuffle2/improve-xsaveworkaround
Windows: Improve XSaveWorkaround to behave correctly when XSAVE processor feature is enabled, but AVX support isn't available for whatever reason.
2014-08-11 12:47:39 -07:00
Rachel Bryk 35ae1b4ee2 Set the default radius to 100 for non-gcpad analog sticks.
The previous default of 70 was determined based on gc controllers, and is not right at all for the wii extensions.
2014-08-11 13:58:47 -04:00
Jasper St. Pierre dd2e9d1fc7 X11_Util: Fix build when using EGL
We forgot to remove the reference to GLWin.width / GLWin.height here.
2014-08-10 23:57:48 -04:00
Lioncash bcd10bfda6 Software: Fix function casing in SWRenderer 2014-08-10 22:28:18 -04:00
Lioncash f9f46f33d6 Software: Fix some if-statement body placements 2014-08-10 22:28:17 -04:00
Lioncash 34eb0c6e1c Software: Fix over-indentation of SetupQuad() 2014-08-10 22:28:16 -04:00
Lioncash 4129cdeb4d Software: Apply static to some functions 2014-08-10 22:28:15 -04:00
Lioncash 568bdec598 Software: Fix function casing in TextureEncoder 2014-08-10 22:28:14 -04:00
Lioncash 2918f46d8b Software: Fix the formatting and function casing in Vec3.h 2014-08-10 22:28:04 -04:00
Lioncash 6625d9cba5 Software: Fix various brace styling errors 2014-08-10 21:18:38 -04:00
Lioncash b95d9b43de Software: Make an enum into a static constant in DebugUtil.cpp 2014-08-10 20:51:10 -04:00
Lioncash b050657322 Software: Make constants char_width and char_height private in RasterFont 2014-08-10 20:48:28 -04:00
Shawn Hoffman d0c3e46c80 Windows: Improve XSaveWorkaround to behave correctly when XSAVE processor feature is enabled, but AVX support isn't available for whatever reason. 2014-08-10 14:50:29 -07:00
Shawn Hoffman 5eccc08c7e Use official flag for detailed symbols. Require VS2013 with update 3 or later to build. 2014-08-10 14:47:29 -07:00
Lioncash a141819241 Merge pull request #768 from lioncash/hex-view
DolphinWX: Fix scrolling in hex mode for the memory view
2014-08-10 14:58:48 -04: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 eb10899b53 Core: Remove leftover Windows 32-bit functions in MemArena.cpp 2014-08-10 05:35:14 -04:00
Lioncash 9a61cfc650 Core: Actually show MemoryUtil.cpp allocation error messages on Linux 2014-08-10 05:28:00 -04:00
Lioncash be3428cf8e Core: Fix case where a panic alert wouldn't be shown in MemoryUtil.cpp 2014-08-10 04:50:58 -04:00
Lioncash 6b49ddfec9 Software: Get rid of an unnecessary format string in SWmain.cpp 2014-08-10 04:38:12 -04:00
Lioncash a04809b4d1 DolphinWX: Fix scrolling in hex mode for the memory view
Prior to this after painting the hex values, it would increment the curAddress by 32. This is not only a bug, but unnecessary, since the OnMouseDownL and OnScrollWheel functions should be the only things to handle address incrementing for scrolling purposes.
2014-08-10 03:06:06 -04: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
archshift d46ca557b8 Re-ordered initialization of m_ToolBar and m_SavedPerspectives 2014-08-09 14:51:59 -07: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
archshift a02a86fde9 Fixed assertion when creating new perspective.
Wx was attempting to format a string with specifier %d (integer) with a
size_t.
2014-08-09 03:40:57 -07:00
archshift b81617fba1 Removed TBDebug, using TBMain instead. Fixed debugger assert. 2014-08-09 03:40:56 -07:00
archshift b8b72861b5 Removed AuiTB, moved functions to menubar (Debug->Perspectives) 2014-08-09 03:40:56 -07: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 dc2bc621a4 GLX: Remove all Host_GetRenderWindowSize calls.
Also remove x, y, width and height from the GLInterface, since it's only
used in GLX, which no longer uses them
2014-08-08 19:21:45 -04:00
Lioncash 7692f5a5ce AGL: Remove the call to Host_GetRenderWindowSize().
Just uses platform-specific ways to do the same thing.
2014-08-08 19:21:43 -04:00
Lioncash df67a18c42 WGL: Get rid of the use of the Host_GetRenderWindowSize() call.
Just use the Windows API to accomplish the same thing (this is what is done in Update()).

This makes the backing window handle the correct data-type for Windows for easier use in function calls.
2014-08-08 19:21:42 -04:00
Lioncash 2b341bb267 D3D: Remove an unnecessary call to Host_GetRenderWindowSize() 2014-08-08 19:21:41 -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
archshift 6cd0ebab93 Included toolbar headers, preventing forward-decl errors 2014-08-08 15:04:58 -07:00
archshift 67d67884a1 Allow toggling the toolbar in the menu 2014-08-08 14:36:20 -07:00
archshift 400a7bd612 Switch play/pause button icons when necessary 2014-08-08 13:47:04 -07:00
lioncash 85ace9751e Common: Use the OSX equivalent byte-swap functions 2014-08-08 13:26:26 -04:00
lioncash 47274ab992 Core: Fix two more potential memory leaks within IOdarwin.mm 2014-08-08 13:14:18 -04:00
archshift 019d5aee49 Changed toolbar to be static, increasing UI integration 2014-08-08 03:43:13 -07:00
Fiora 75b3e425fd x64Emitter: optimize immediate sizes
A nice alternative than trying to do it throughout the JIT.
2014-08-07 13:07:27 -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
Dolphin Bot 8cfbbb357e Merge pull request #756 from magcius/remove-unused
VideoBackendBase: Remove unused stub Initialize implementation
2014-08-07 04:48:10 +02:00
Lioncash e0c5e05805 Merge pull request #755 from magcius/clean-up-nogui
Allow building MainNoGUI and MainGUI simultaneously
2014-08-06 22:39:57 -04: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
Jasper St. Pierre cd641bd0e3 DolphinWX: Allow building both GUI and NoGUI at the same time
Restructure our build system so we have multiple targets. Right now we
only build MainNoGUI if we are using X11, since that's the only truly
supported backend: the OS X code actually doesn't compile, according to
comments made on IRC.
2014-08-06 21:38:57 -04:00
Jasper St. Pierre 2b8a476a05 X11Utils: Don't depend on wx
We want to have two build targets: Main and MainNoGUI, and this code
will be linked against in both cases, so the ifdef isn't enough for
this case.

Just append to a vector of strings, and then convert it after the fact.
2014-08-06 21:38:47 -04:00
Jasper St. Pierre c54fef5496 VideoBackendBase: Remove unused stub Initialize implementation
Both D3D and OGL have their own overrides, so this isn't used.
2014-08-06 21:35:52 -04:00
Tillmann Karras f927af20f2 Fix more warnings from #579 2014-08-07 03:24:42 +02:00
Jasper St. Pierre 354f223f77 X11Utils: Remove unneeded SendButtonEvent / SendKeyEvent utilities
This was used to send fake button or key events to every backend to
implement freelook. When I ported these to be based on wx events in
commit 5248211, I didn't realize that these were now unused, so I didn't
remove them. Do that now.
2014-08-06 15:07:25 -04: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
Tony Wasserka cb178679f1 Merge pull request #737 from neobrain/master
Restore Wayland compatibility.
2014-08-06 09:02:20 +02:00
Lioncash 42354035e2 Core: Remove unused file DSPJitUtil.h 2014-08-05 23:55:34 -04:00
Lioncash 95f15ac313 Merge pull request #743 from RolandMunsil/fix-ar-code-warning
Fix "bad wxCheckListBox index" warning when trying to create AR Code
2014-08-05 23:46:39 -04:00
RolandMunsil b94069b5af Update ISOProperties.cpp 2014-08-05 20:45:18 -07:00
Rachel Bryk 71ce63f819 Don't spam PanicAlerts on wii save exports. 2014-08-05 23:34:03 -04:00
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 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
Jules Blok 9818bd3edf CFrame: Render to a child on Linux and Mac OS X.
This is needed to fix the hotkeys on those platforms.
2014-08-04 13:22:41 +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
Jules Blok b67ec4ea58 CFrame: Always exit fullscreen before showing the stop dialog. 2014-08-03 23:38:20 +02:00
Jules Blok 857c116210 CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL.
This is not implemented within the backend, but relies purely on driver heuristics.
2014-08-03 23:36:54 +02: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 0c24e1dcf2 Remove the rest of x86_32 support from Common. 2014-08-03 13:49:46 -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
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 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
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
Jules Blok e07c06cb16 CFrame: Handle close events that can't be vetoed.
This can happen during shutdown.

As long as we don't call event.Skip() the CFrame won't be closed yet, so even if we can't veto the shutdown will still happen in the correct order.
2014-07-29 12:36:10 +02: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
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
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
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
Lioncash 8a7640f8b4 DolphinWX: Fix a double truncation warning in InputConfigDiagBitmaps 2014-07-22 06:58:32 -04: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
Jules Blok 4b3d579573 Renderer: Only notify the host when exiting fullscreen 2014-07-21 20:50:50 +02:00
Jules Blok 0c81494c89 Frame: Make the fullscreen transitions more reliable. 2014-07-21 20:50:49 +02:00
Jules Blok 009b4dd376 Exit exclusive fullscreen when the stop confirmation is shown.
Also have the renderer remember its own fullscreen state. This is done to prevent a case where we exit exclusive fullscreen through the configuration and a focus shift at the same time. In this case the renderer would fail to detect that the fullscreen state was changed.
2014-07-21 20:50:48 +02: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
Jules Blok cd94ff1966 VideoConfig: Add "Borderless Fullscreen" option.
This option will disable exclusive fullscreen for users who prefer the old behaviour.
2014-07-20 22:02:57 +02:00
Shawn Hoffman cfc7bb35c2 Windows: Also look for git.exe in the registry (for Git Extensions installs). 2014-07-20 12:33:56 -07:00
Lioncash 298425920a DolphinWX: Fix a possible crash when setting debugger memory values. 2014-07-19 19:59:44 -04: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
Lioncash fa2944898f DolphinWX: Move some public variables to be private in CodeView
It's not used outside of the class, and it also shouldn't be modified
outside of it either (considering it holds all the blr instructions inserted by the user).
2014-07-19 17:23:43 -04:00
Jules Blok 3400871992 Renderer: Don't attempt to switch to exclusive fullscreen if "render to main" is enabled. 2014-07-19 21:14:49 +02:00
Jules Blok 9064bf147d D3D: Don't set the windowed mode size when we initialize in fullscreen. 2014-07-19 21:14:48 +02:00
Jules Blok d00e76b3ef Cosmetic changes based on feedback on PR #506. 2014-07-19 21:14:47 +02:00
Jules Blok 5837b35add Renderer: Restore exclusive mode after focus has been regained. 2014-07-19 21:14:47 +02:00
Jules Blok 5f04e9c526 D3D: Make the swapchain available outside of the namespace.
This commit reverts a part of pull request #579.
2014-07-19 21:14:46 +02:00
Jules Blok 643c9ff173 D3D: Initialize the renderer in exclusive fullscreen mode if it is enabled. 2014-07-19 21:14:46 +02:00
Jules Blok 961076a3d5 D3D: Return to windowed mode before destroying the swapchain. 2014-07-19 21:14:45 +02:00
Jules Blok 77bc879384 D3D: Add exclusive fullscreen support. 2014-07-19 21:14:44 +02:00
Jules Blok d72375fdfa D3D: Request desktop resolution before overriding the buffer size.
This fixes issues where the wrong refresh rate is selected for some monitors.
2014-07-19 21:14:44 +02:00
Jules Blok c323b386ae Prevent DXGI from making changes to the window.
Prevents DXGI from responding to Alt+Enter and messing up our fullscreen handling.
2014-07-19 21:14:43 +02:00
Jules Blok 8d76dca30d Frame: Make RendererHasFocus() compatible with the new window structure. 2014-07-19 21:14:38 +02:00
Jules Blok 66fec6d0bd Remove CPanel.
Let the RenderFrame handle those messages.
2014-07-19 21:13:15 +02:00
Dolphin Bot 5df45dfbba Merge pull request #650 from lioncash/scrolling
DolphinWX: Implement scrolling in the memory views
2014-07-19 19:31:41 +02:00
Jules Blok 1b70bebb5a Don't create a Panel for a seperate render window.
Instead of setting RenderParent to null and raising complexity RenderFrame can be its own parent.
2014-07-19 15:56:49 +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
Lioncash a00c7bdb9e DolphinWX: Implement scrolling in the memory views 2014-07-18 22:42:03 -04:00
TotalNerd b2ac65bb21 Revised channel access from EXI_DeviceMemoryCard 2014-07-18 20:06:03 -05:00
Ryan Houdek bc9ef95643 Support Sampler binding in the shader.
In the cases where we support the binding layout keyword, use it for more than binding UBO location.
This changes it so it is supported for samplers as well.

Instances when this is enabled is if a device supports GL_ARB_shading_language_420pack, or if it supports GLES 3.10.
2014-07-18 17:04:03 -05:00
Dolphin Bot b9dc69105d Merge pull request #595 from Armada651/pref_log
FPSCounter: Flush the logs every second and close them when the renderer is shut down.
2014-07-18 12:59:04 +02:00
Jules Blok eaa7460636 FPSCounter: Remove redundant destructor. 2014-07-18 12:49:40 +02:00
Pierre Bourdon a180cd60ee Merge pull request #640 from lioncash/debugger
DolphinWX: Enable certain Code View context options only when the core is running.
2014-07-18 09:15:03 +02: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
Pierre Bourdon 2fbdc03572 Merge pull request #642 from phire/vs-constants
VideoSoftware: Use the same max XFB size as VideoCommon.
2014-07-18 09:12:36 +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