Commit graph

7882 commits

Author SHA1 Message Date
Matthew Parlane
b372f97675 Imagewrite.cpp had same problem.
I hate windows :(
2013-11-17 11:30:05 +13:00
Matthew Parlane
f4a1f183b9 std::string can't be passed to ... format. 2013-11-17 11:28:11 +13:00
Matthew Parlane
ea3990a41b Don't pass char* to std::string.
Windows was fine with this :(
2013-11-17 11:25:12 +13:00
Matthew Parlane
33d8166620 Use IOFile for TextureToPng to support non-ascii
Changed save texture/screenshot uses to std::string
Removed unneeded new/delete calls when dealing with temp data.
2013-11-17 11:14:38 +13:00
Lioncash
cce869ae01 [Core] Fix a mismatched dealloc in Render.cpp in the OGL backend. Should be delete[] 2013-11-16 17:05:51 -05:00
Ryan Houdek
4a9c8e6f55 Change software rasterizer screenshot code due to change in api just now. 2013-11-16 15:37:40 -06:00
Matthew Parlane
71d70d896f Api was too confusing for people. 2013-11-17 10:34:34 +13:00
Ryan Houdek
2025f00f88 Woops, vim copy and paste issue with a double include. 2013-11-16 09:41:01 -06:00
Ryan Houdek
e8a4cc0f71 Screenshot capability of Software rasterizer for feature completness. 2013-11-15 22:08:08 -06:00
Matthew Parlane
3a13dfdd9b [OGL] Textures now save to PNG not TGA 2013-11-16 15:59:59 +13:00
Ryan Houdek
15bb974224 [Android] Add screenshot nativelibrary function. 2013-11-15 17:32:50 -06:00
Ryan Houdek
b9d7bb9012 [Android] Broken UBOs has been fixed in Adreno driver v53, so update the comment in DriverDetails.h. Also enable dynamic UBO array member access with that version since there is a high chance of it being fixed. Dynamic UBO member access is commonly noticed with character models being terrible looking. 2013-11-15 16:51:07 -06:00
Ryan Houdek
0e415467c4 [Android] Spawn a message if someone's phone doesn't support NEON. NEON is a requirement for Dolphin Mobile on ARM, CPU core will crash without it. 2013-11-15 14:17:47 -06:00
Matthew Parlane
c712fb7356 Fix introduced ImageWrite warning. 2013-11-15 17:58:57 +13:00
Jordan Cristiano
714633f311 Fixed console commands not registering. Code cleanup. 2013-11-14 22:23:55 -05:00
Ryan Houdek
117bf435b0 Fix GUI-less build. Also potentially OS X. We now require libpng due to our screenshot code relying on it now. WXWidgets links in libpng by itself so it isn't noticed in a wxwidgets build. OS X seems to not have libpng linked in from wxWidgets so just link in libpng at all times. 2013-11-15 01:09:38 +00:00
Matthew Parlane
ba71cdcc51 Goto crosses initialization error.
Sorry.
2013-11-15 13:05:03 +13:00
Matthew Parlane
033ed9477e Reworked Screenshot saving.
Now OGL doesn't rely on WX for PNG saving.
FlipImageData supports (pixel data len > 3) now.
TextureToPng is now in ImageWrite.cpp/h
Video Common depends on zlib and png.
D3D no longer depends on zlib and png.
2013-11-15 13:00:38 +13:00
Ryan Houdek
feedee5c23 [Android-overlay] Support touch screen axises in native. Have a non-configurable main joystick on screen at this point. 2013-11-14 15:18:33 -06:00
Jordan Cristiano
2703cae8d3 Fixed ZComploc and Zfreeze values being incorrectly saved. 2013-11-14 03:15:03 -05:00
Jordan Cristiano
0fced651a5 More warning fixes, OSX build fix. 2013-11-14 03:11:40 -05:00
Matthew Parlane
7e9b970240 Use libpng for saving images.
TODO: Needs threading done similiar to OGL backend.
Fixes issue 6779.
2013-11-14 21:02:49 +13:00
Jordan Cristiano
c3069eda28 build fix 2013-11-14 02:27:53 -05:00
Jordan Cristiano
39a4d4329d more warning fixes 2013-11-14 02:19:15 -05:00
Matthew Parlane
ca5b3b4773 atlbase not needed. Interim fix until I get png done. 2013-11-14 18:10:39 +13:00
Ryan Houdek
1942d79c5b [Android-overlay] Had the action reversed. 2013-11-13 16:36:30 -06:00
Ryan Houdek
2a23bdde6f Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Core/DolphinWX/Src/Android/ButtonManager.h
2013-11-13 16:17:42 -06:00
Ryan Houdek
63a9dff3bb Windows requires memory to be included to use unique_ptr 2013-11-13 12:51:49 -06:00
Ryan Houdek
652ef24a2e Remove our two instances of auto_ptr and replace it with unique_ptr. auto_ptr has been deprecated. 2013-11-13 11:44:04 -06:00
Matthew Parlane
7b53574b68 Support texture and screenshot dumping using WIC, no XP support. 2013-11-14 00:48:02 +13:00
Matthew Parlane
abc3bddb54 Revert "D3D: Reintroduce depencency on D3DX11 because it's the most straightforward way to bring back some broken features."
This reverts commit a83c239765.
2013-11-14 00:34:09 +13:00
Jordan Cristiano
f96e9e1ae4 warnings and code formatting 2013-11-13 04:03:46 -05:00
Tillmann Karras
038ffea369 Jit64: don't flush clean FPRs 2013-11-13 08:03:18 +01:00
Tillmann Karras
288bef2807 x64: add small warning if CPU has SSE2 but not DAZ 2013-11-13 06:26:57 +01:00
degasus
d78c8c21a2 jit64: enable fp instructions faddx fsubx fdivx fdivsx
all of them are now accurate enough as we handle non-ieee floats correctly
2013-11-13 06:26:50 +01:00
Tillmann Karras
cd069fdce1 Interpreter: software-based flush-to-zero
bDAZ is now called bFlushToZero to better reflect what it's actually
used for.

I decided not to support any hardware-based flush-to-zero on systems
that don't support this for both inputs _and_ outputs. It makes the code
cleaner and the intersection of CPUs that support SSE2 but not DAZ
should be very small.
2013-11-13 06:24:58 +01:00
Tillmann Karras
466a7afde3 Interpreter: support non-IEEE mode emulation
v2: fix fxsave on visual studio, thx @ rodolfo for this patch
2013-11-13 06:24:57 +01:00
Tillmann Karras
710a0ff435 Jit64: don't unnecessarily load registers 2013-11-13 06:16:24 +01:00
Tillmann Karras
ddaf29e039 Jit64: use AVX instructions in some places 2013-11-13 06:15:56 +01:00
Tillmann Karras
ae86850a78 x64: support VEX opcode encoding
and add some AVX instructions
2013-11-13 06:12:23 +01:00
Tillmann Karras
22b47d5b9c Jit64: Fix and re-enable psq_l for W=1
Patch by konpie:
https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735
2013-11-13 05:58:28 +01:00
Tillmann Karras
6054129df8 x64: detect FMA support 2013-11-13 04:46:34 +01:00
Tillmann Karras
2fecb033be Jit64: micro-optimize ps_sel
Adapted from a patch by konpie:
https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735
2013-11-13 04:45:43 +01:00
Tillmann Karras
6f5650f82e Fix Bluetooth warnings 2013-11-13 04:01:24 +01:00
Tillmann Karras
268bdf19ce Fix format string warnings 2013-11-13 04:01:16 +01:00
Ryan Houdek
39ad5a2f7a Disable Fastmem on JIT64IL. JIT64IL is completely incompatible with Fastmem and doesn't need it since it has its own way to speed up memory accesses. This fixes the JIT64IL core, which I totally didn't break but was blamed for. 2013-11-12 19:37:09 -06:00
Ryan Houdek
7c1ac441f6 Redo 'Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic.' This time with support for Windows. 2013-11-12 16:34:56 -06:00
Rachel Bryk
0f94652952 Disable wiimote source selection while netplay is running. 2013-11-12 04:16:51 -05:00
Ryan Houdek
a72b3ca20c [ARM] Don't leave my test code in the JIT core. 2013-11-12 04:22:42 +00:00
Ryan Houdek
56557c845a [ARM] Fix NEON emitter encodings. 2013-11-12 01:01:54 +00:00
Ryan Houdek
68ba0f7f4e Add a comment to the magic value reading location. 2013-11-11 17:17:49 +00:00
Chanwoong Kim
22fef0da9b Fixed a bug that incorrectly recognized as 'GameCube'. when you open the Korean Wii Disc, which is re-encrypted with a common-key(g_MasterKey). 2013-11-12 01:05:30 +09:00
Ryan Houdek
d1de336879 [ARM] More NEON emitters. 2013-11-11 01:47:05 +00:00
Jordan Cristiano
3a28afd8d5 Changed thread barrier and event to use a lamba wait predicate instead of a functor. 2013-11-10 04:57:11 -05:00
Ryan Houdek
e013a74cdb [ARM] More NEON emitters. 2013-11-10 05:02:32 +00:00
Tony Wasserka
22f727cc69 D3D: Use D3DX11 for taking screenshots. 2013-11-10 00:22:35 +01:00
Tony Wasserka
0b02880b76 Revert "Be less dumb."
Revert "Actually, filename really does need to be a parameter because of some random debug thing."
Revert "fix non-HAVE_WX case"
Revert "Handle screenshot saving in RenderBase.  Removes dependency on D3DX11 for screenshots (texture dumping is still broken)."

This reverts commits 00fe5057f1, 74b5fb3ab4, cd46138d29 and 5f72542e06 because taking screenshots in D3D still crashed for me so there was no point in the code changes (which I found ugly anyway).
2013-11-10 00:22:33 +01:00
Tony Wasserka
3de2ee5d46 D3D: Use D3DX for texture dumping. 2013-11-10 00:22:31 +01:00
Tony Wasserka
a83c239765 D3D: Reintroduce depencency on D3DX11 because it's the most straightforward way to bring back some broken features.
The Dolphin development team is incapable of providing sufficient replacement for its previous usage in Dolphin and the advantages of dropping the dependency do not justify the removal of screenshots and texture dumping.

From now on, d3dx11.h, d3dx11async.h, d3dx11core.h and d3dx11tex.h are required to be stored somewhere in the header include path. I don't know if this is the case for anyone else than me, but I can't really say that I care after having people randomly merge unfinished branches into master.
2013-11-10 00:18:03 +01:00
degasus
8923968b47 Revert "VideoCommon: create native texture pool"
This reverts commit 6cece6b486.

In fact, there was a _huge_ speedup on lots of games (mostly on nvidia+ogl), but there are some crashes on D3D.
I have to fix this crash and then I'll commit something like this again :-)

Conflicts:
	Source/Core/VideoCommon/Src/TextureCacheBase.cpp
2013-11-07 21:16:36 +01:00
Shawn Hoffman
33d56f50a4 Re-plumb window handle to the dsound backend.
Reverts parts of commit 71c01d83ab614b9e0c421d03ca694713dbabff48.
Fixes issue 6800
2013-11-07 09:24:56 -08:00
degasus
ea2d8bf328 VideoCommon: fix custom textures
This fix a regression by revision 6cece6b486

delete pointer must not do anything if pointer==NULL.
2013-11-07 15:55:34 +01:00
Lioncash
c33036aa01 Fix the filter for some files in the Core VS project related to the JitIL. They were in the root of the project. They should actually be in their own filter named JitILCommon. 2013-11-07 01:33:32 -05:00
degasus
1aa06b8fa4 jit: change our linking module to be able to handle arbitrary exit addresses
And also do this for all JIT backends...
2013-11-07 06:19:35 +01:00
Pierre Bourdon
ea6fd58b97 Use an unordered_set to track FIFO write adresses
Reduces CheckGatherPipe CPU consumption by 40%.
2013-11-07 03:22:32 +01:00
Pierre Bourdon
954be9e2d9 Handle BP mask register better to avoid useless BP writes (causing flushes)
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2013-11-07 03:06:53 +01:00
Tillmann Karras
cdc27e46f1 Jit64: implement ps_res
This is probably more accurate than it is allowed to be. After all, the
instructions are supposed to be "estimates".
2013-11-07 02:19:20 +01:00
Tillmann Karras
0a2a273a2e Jit64: simplify ps_sel 2013-11-07 02:02:38 +01:00
Tillmann Karras
201c4c65a5 Jit64: fix typo in ps_sel and re-enable it 2013-11-07 02:02:24 +01:00
degasus
2f7ca688ae jit64: remove dead code 2013-11-07 01:59:10 +01:00
Tillmann Karras
c29fb22cd4 Jit64: extract frsqrtex as method 2013-11-07 01:59:00 +01:00
Matthew Parlane
897bec1add [JitIL] No more terrible usage of vectors.
This is possible because of C++11.
2013-11-06 22:18:08 +13:00
degasus
274f6dd7ab ogl: check default framebuffer for msaa
default framebuffer must not be sampled, so throw a panicalert if it is
2013-11-05 17:38:48 +01:00
Ryan Houdek
948ace9546 [ARM] Minor idle skip optimization in bx. 2013-11-05 13:05:39 +00:00
Ryan Houdek
56685c396a [ARM] Fix an issue with the data offset in LoadStore operations. Thanks to PPSSPP. 2013-11-05 13:05:38 +00:00
degasus
6cece6b486 VideoCommon: create native texture pool
We often need the same native texture objects for new textures. This commit
try to avoid destroying and creation of this textures by pooling them.

This should be a big performance gain for some efb2ram games as they may
overwrites partially a cached texture (which would be deleted) and afterwards
try to read it.

Creating/destroying sounds like an easy task, but it isn't. eg the nvidia ogl
driver synchonize their threads do avoid use-after-free issues.
2013-11-05 12:21:22 +01:00
Shawn Hoffman
f4056978c8 [windows] update SDL-2.0.0 to 2.0.1. Fixes issue 6793. 2013-11-04 23:50:52 -08:00
degasus
045efdfc3e ogl: drop all %f from TextureConversionShader 2013-11-04 12:38:55 +01:00
Matthew Parlane
e15f628935 Fix {Read,Write}FileToString.
We should be using binary always.
2013-11-05 00:33:41 +13:00
comex
3f1ea21e4f Fix warnings. 2013-11-03 20:54:06 -05:00
comex
21610c2e54 Run code through clang-modernize -add-override to add 'override' decls. 2013-11-03 20:54:05 -05:00
comex
c579637eaf Run code through the advanced tool 'sed' to remove trailing whitespace. 2013-11-03 20:54:05 -05:00
comex
965b32be9c Run code through clang-modernize -loop-convert to create range-based for loops, and manually fix some stuff up. 2013-11-03 20:54:01 -05:00
comex
00fe5057f1 Be less dumb. 2013-11-03 14:37:56 -05:00
Rachel Bryk
a250ab0af7 Stop saving random files to ./ 2013-11-02 23:47:10 -04:00
comex
74b5fb3ab4 Actually, filename really does need to be a parameter because of some random debug thing. 2013-11-02 22:44:27 -04:00
comex
cd46138d29 fix non-HAVE_WX case 2013-11-02 22:23:29 -04:00
comex
5f72542e06 Handle screenshot saving in RenderBase. Removes dependency on D3DX11 for screenshots (texture dumping is still broken). 2013-11-02 22:19:21 -04:00
Shawn Hoffman
26059f1109 rename the dolphinwx project to dolphin, and thus change the executable name back to dolphin{d}.exe 2013-11-02 16:22:15 -07:00
Shawn Hoffman
bc45a38122 do not copy pdbs to binary dir (you can use the symbol server for $(random_build), or it will be found locally if you built it yourself) 2013-11-02 16:19:17 -07:00
Matthew Parlane
dab9af43a4 [Windows] Add missing dlls and enable OpenMP support. 2013-11-03 11:54:45 +13:00
skidau
65404e7475 Removed duplicate definition of ibuild within JitIL.h. Fixes JitIL from hanging on x64/x86. 2013-11-01 12:33:29 +11:00
comex
82729fcc8f Merge remote-tracking branch 'shuffle2/vc12'
Conflicts:
	Source/Core/Common/Common.vcxproj
	Source/Core/Common/Common.vcxproj.filters
2013-10-31 16:51:56 -04:00
comex
4c7bbd96e4 Improve ChunkFile.h:
- Add support for std::set and std:pair.

- Switch from std::is_pod to std::is_trivially_copyable, to allow for
  types that have constructors but trivial copy constructors.  Easy,
  except there are three different nonstandard versions of it required
  on different platforms, in addition to the standard one.
2013-10-31 15:40:53 -04:00
degasus
498d491942 Merge branch 'viewportCorrection' 2013-10-29 22:33:51 +01:00
degasus
35824aa4d5 ogl: ceil viewport, rounding isn't supported on vs and this is more like the old behavior 2013-10-29 21:42:40 +01:00
degasus
ab35503195 ogl: don't force depth+stencil for default framebuffer 2013-10-29 19:20:40 +01:00
degasus
92fdac412b VideoCommon: drop UpdateViewportWithCorrection
It's only used once in BPFunction which itself is also only used once.
So the setter is moved to BPStructs like all other ones.
2013-10-29 18:55:50 +01:00
degasus
2118c1d3c3 VideoCommon: remove constants.depthparams[2+3] as they aren't used in the shader at all 2013-10-29 18:55:50 +01:00
degasus
f4a9deefa8 ogl: remove some unneeded includes 2013-10-29 18:55:50 +01:00
degasus
8e0f91f70e d3d: use backend based UpdateViewport instead of VideoCommon one 2013-10-29 18:55:50 +01:00
degasus
acc0b3b21c ogl: don't call SetViewportChanged from backend as it's not needed any more 2013-10-29 18:55:50 +01:00
degasus
3151d8709c VideoCommon: move ViewportCorrection into VideoCommon
D3D doesn't allow bigger viewports than rendertargets. But flipper does, so the viewport will be clipped and the transformation matrix will be changed.
This was done in the D3D backend itself. This is now moved into VideoCommon. This don't reduce code, but in this way, VideoCommon doesn't depend on the backends.
2013-10-29 18:55:50 +01:00
degasus
0002236e3e Merge branch 'viewport_float' 2013-10-29 18:33:56 +01:00
degasus
b253d60f04 VideoCommon: Drop D3D9 SSAA implementation
This isn't needed for both OGL+D3D11 as they support sample shading directly. So we
could use the common MSAA util shaders instead of writing custom ones.
2013-10-29 18:20:07 +01:00
Ryan Houdek
f18c461fd6 [viewport-float] Fix OpenGL ES 3 build. 2013-10-29 17:10:02 +00:00
degasus
edf0511d4e OGL: Use floating points for viewport parameters.
As told by neobain, ARB_viewport_array introduced float viewports.
They must be supported on OGL4.1+, but it's usually also implemented on 3.3 GPUs.
2013-10-29 15:29:06 +01:00
Ryan Houdek
58d42f43e3 [Android] Fix PCH build. Clean up DolphinWX cmake file a little bit. Modify our android cmake toolchain file to make the default build location not be source root, because that is stupid. 2013-10-28 19:59:03 -05:00
comex
2e983071c5 Add git.bat to the options in make_scmrev.h.js because depot_tools uses it and I'm silly. 2013-10-27 19:51:55 -04:00
Ryan Houdek
8e73e8ae5f Wipe all traces of OpenSSL's AES implementation. Use polarssl instead. 2013-10-27 18:27:07 +00:00
Shawn Hoffman
8dcd13cca7 [vc12] std::min/max requires <algorithm> header. It should be in pch, but just add it for the single file that needs it, for now. 2013-10-26 18:04:00 -07:00
Shawn Hoffman
ccd30024b3 Update to VS2013 and a slew of build-related updates. Notes:
* Currently there is no DEBUGFAST configuration. Defining DEBUGFAST as a preprocessor definition in Base.props (or a global header) enables it for now, pending a better method. This was done to make managing the build harder to screw up. However it may not even be an issue anymore with the new .props usage.
* D3DX11SaveTextureToFile usage is dropped and not replaced.
* If you have $(DXSDK_DIR) in your global property sheets (Microsoft.Cpp.$(PlatformName).user), you need to remove it. The build will error out with a message if it's configured incorrectly.
* If you are on Windows 8 or above, you no longer need the June 2010 DirectX SDK installed to build dolphin. If you are in this situation, it is still required if you want your built binaries to be able to use XAudio2 and XInput on previous Windows versions.
* GLew updated to 1.10.0
* compiler switches added: /volatile:iso, /d2Zi+
* LTCG available via msbuild property: DolphinRelease
* SDL updated to 2.0.0
* All Externals (excl. OpenAL and SDL) are built from source.
* Now uses STL version of std::{mutex,condition_variable,thread}
* Now uses Build as root directory for *all* intermediate files
* Binary directory is populated as post-build msbuild action
* .gitignore is simplified
* UnitTests project is no longer compiled
2013-10-26 17:55:38 -07:00
Ryan Houdek
1eba4da21a Revert "Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic."
This reverts commit b2c4901b3f.

Breaks Windows build. GCC 4.9 isn't out yet anyway.
2013-10-26 19:21:00 -05:00
Ryan Houdek
b2c4901b3f Fixes GCC 4.9 compilation. It now supplies its own _mm_shuffle_epi8 intrinsic. 2013-10-26 19:05:31 -05:00
Tony Wasserka
f82e1b9dc7 D3D: Use floating points for viewport parameters.
OpenGL 4.1 allows for a similar change thanks to ARB_viewport_array, but we don't make use of this, yet.
2013-10-26 12:40:37 +02:00
Ryan Houdek
c24dfe559b [Android] Change how the onTouchEvent native method works. Just pass in the correct Button ID and Action and it'll be pressed or not. Not actually rigged up to the Java code yet. Doesn't support anything with an Axis yet so no C stick, main stick, L and R triggers 2013-10-26 05:36:20 -05:00
skidau
41f6f6adc9 Added memchecks when the MMU is enabled. Thanks to comex for the fix.
Fixes issue 6754.
2013-10-26 14:32:03 +11:00
comex
005af7bd63 Fix build on Mavericks. 2013-10-24 16:39:46 -04:00
Tillmann Karras
69a10869bb Document FPSCR fields 2013-10-24 01:46:07 +02:00
Rachel Bryk
8aef60f6ca Allow frame limit to be set via game ini. 2013-10-23 13:45:03 -04:00
Ryan Houdek
e3febb1603 [Android] Fix MIPS compiling. 2013-10-21 09:52:43 -05:00
Ryan Houdek
887f8e463d [Android] Fix MIPS compiling. 2013-10-21 09:43:19 -05:00
Lioncash
4b774ef99a Fix my fix. 2013-10-20 16:42:30 -04:00
Lioncash
448c19bce1 Fix an issue where my recent changes would cause compilation to fail on some distros of Linux.
Note that before pushing those changes, they were initially tested in a branch, and passed the compilation testing. Sorry that I didn't catch this before.
2013-10-20 16:32:40 -04:00
Lioncash
b3da5c5d58 Really fix the Linux build this time.
Dammit size_t :(
2013-10-19 19:59:05 -04:00
Lioncash
a5a21e7f44 Fix Linux build.
Turns out Hash.h needs Common.h
2013-10-19 19:59:04 -04:00
Lioncash
8b10d5b481 Add header cstdint to CommonTypes.h 2013-10-19 19:59:03 -04:00
Lioncash
1f0710caf7 Remove some more includes. 2013-10-19 19:59:03 -04:00
Lioncash
207547b425 Clean up includes in DiscIO as much as possible.
Also turned a long iterator declaration in VolumeDirectory.cpp to using auto in order to shorten it.
2013-10-19 19:59:02 -04:00
Lioncash
82fd579506 Remove unnecessary include of "../../Core/Src/ConfigManager.h" from BannerLoaderGC.cpp. In actuality, all that was needed here was an include of CommonTypes.h.
Also change Common.h to CommonTypes in BannerLoaderWii.cpp.
2013-10-19 19:59:01 -04:00
Lioncash
6adf3e37e2 Clean out unnecessary includes from the DSP JIT. 2013-10-19 19:59:00 -04:00
Lioncash
af1b5fe767 Woops forgot to clean out some files in the Jit64IL. All clean now. 2013-10-19 19:58:59 -04:00
Lioncash
80b4cb6cf3 Clean out includes from regular JitCommon. 2013-10-19 19:58:59 -04:00
Lioncash
3360ec013f Clean out includes in JitILCommon. 2013-10-19 19:58:58 -04:00
Lioncash
22cdc0f56e Remove some more unnecessary includes, as well as organize a little more. 2013-10-19 19:58:57 -04:00
Lioncash
97cd42f5c3 Remove some unnecessary includes as well as simplifying exisiting ones if possible. 2013-10-19 19:58:56 -04:00
comex
33ee04626d Don't define __rdtsc if x86intrin.h already does. 2013-10-19 12:40:21 -04:00
Lioncash
81964517d6 Remove a redundant assignment in Init() within PowerPC.cpp. We already assign zero to ppcState.dtlb_last. 2013-10-17 20:38:49 -04:00
Lioncash
b8a947ce0a Fix a filter in the VS project file for JitILCommon-related files. 2013-10-17 06:36:32 -04:00
comex
de1773affb Basic precompiled header support for Linux/OS X. Shaves 20-30% off full rebuild time on my system. 2013-10-17 00:07:35 -04:00
comex
cffe6ba3fd Fix TextureEncoder.h 2013-10-16 23:20:51 -04:00
comex
e1f3a4d7b3 Fix out-of-tree build on OS X. 2013-10-16 23:15:21 -04:00
Tillmann Karras
e4a81f32d4 Document some UGeckoInstruction fields 2013-10-17 04:59:13 +02:00
Rachel Bryk
f605ea9eeb [Netplay] Allow a spectator to leave without affecting players. 2013-10-16 21:44:49 -04:00
degasus
5a212a8fe0 jit64: enable faddsx again
It was disabled because of issue 182, but as this game depeneds on FPRF, it was just 'fixed' because of the fallback to interpreter (which implements FPRF by default).
Also enables FPRF for this game via GameIni, so that the issue is still workaround.

If there are any regressions because of this commit, please try to enable FPRF in GameIni.
2013-10-17 01:43:16 +02:00
degasus
f850d283d1 ogl: only use bufferdata if buffersubdata is broken
Else nvidia fallback would be slower than needed
2013-10-16 15:46:58 +02:00
Ryan Houdek
f0bf5aa113 Fix rendering on Adreno and Mali. This adds a new DriverDetails bug to know if the bufferstreaming is broken. Thanks degasus for fixing this. 2013-10-16 11:27:58 +00:00
Tillmann Karras
c234dc97c0 Jit64: optimize floating-point/paired-single arith
The "else if (b != d)" branch was dead code and only works if b == d. Now
the last else block with two temporary XMM registers is not needed anymore.
2013-10-16 00:52:21 +02:00
skidau
b4513313bb Increase the trampoline cache size to cater for fastmem writes.
Fixes issue 6722.
2013-10-16 09:26:08 +11:00
Rachel Bryk
6eb216fc77 (Netplay) Disable record input checkbox while a game is running.
Fixes issue 6734.
2013-10-15 17:28:01 -04:00
comex
b11cf1fa10 Fix config file saving on Windows. 2013-10-15 17:20:00 -04:00
degasus
b1afb32188 ShaderGen: fix for commit bd80de14f4 2013-10-15 14:48:40 +02:00
degasus
bd80de14f4 ShaderGen: drop PerPixelLighting + 8Texcoord hack
D3D9 only supports 8 texcoords. But we need a new one for ppl, so we just store it in the first 4 texcoords in the free 4th component.

This isn't needed for both d3d11 and ogl3, so just remove it.
2013-10-15 14:38:26 +02:00
degasus
f62579761c ShaderGen: remove nonsense for() if() {} 2013-10-15 14:31:02 +02:00
comex
72c1e143f3 Try to atomically save config files. 2013-10-15 02:59:25 -04:00
Lioncash
f3af8ee0f0 Revert "Remove some unnecessary includes."
Turns out this explodes on Linux.

This reverts commit c4696568cc.
2013-10-14 04:05:38 -04:00
Lioncash
c4696568cc Remove some unnecessary includes. 2013-10-14 04:01:57 -04:00
comex
390760bd75 Perf: Use unordered_map instead of map in very slightly hot function.
Incrementing an unordered_map's iterator is a bit faster.
2013-10-13 15:31:42 -04:00
comex
1570558789 Remove unused variable waitingForPEInterruptDisable. 2013-10-13 14:00:38 -04:00
NeoBrainX
59ae93d04e PixelShaderGen: Refine the comment from revision 3fbe1b1ccd. 2013-10-13 14:59:59 +00:00
degasus
3fbe1b1ccd VideoCommon: Update FastDepth's comment 2013-10-13 16:14:30 +02:00
degasus
6798a4763e VideoCommon: revert the ViewPort changes
xfregs isn't written when calling this function, so we have to use such an invalid flag :-(
2013-10-13 15:41:11 +02:00
degasus
2754c1132e VideoCommon: reimplement Dirty() in PixelShaderManager
This isn't needed in VertexShaderManager as it's still in the old dirty flag way.

But it's very importend for PixelShaderManager as some float4s aren't initialized as 0.0f
2013-10-12 20:31:59 +02:00
degasus
50c404ce4a VideoCommon: fix dstAlpha 2013-10-12 20:31:59 +02:00
degasus
0b2fb548c3 VideoCommon: remove SetVSConstant4f 2013-10-12 20:31:59 +02:00
degasus
5de7ac4791 OGL: update ubo workaround 2013-10-12 20:31:59 +02:00
degasus
cc6c454898 VideoCommon: refactor PixelShaderManager setters
The old way was to use a dirty flag per setter. Now we just update the const buffer per setter directly.
The old optimization isn't needed any more as the setters don't call the backend any more.

The follow parts are rewritten:

Alpha

ZTextureType

zbias

FogParam

FogColor

Color

TexDim

IndMatrix

MaterialColor

FogRangeAdjust

Lights
2013-10-12 20:31:25 +02:00
degasus
15ed0ea9cf videoCommon: remove not supported constant types
I'm pretty sure GPUs can read u8 values, but this isn't exported by the API.

But hey, see unpackSnorm4x8 :-)
2013-10-12 20:29:56 +02:00
degasus
6e2fe72b8f D3D: also uses VideoCommon constant buffer handling
As now both backends uses the VideoCommon one, the old setting API was removed.
2013-10-12 20:29:56 +02:00
degasus
7c14463d11 ogl: implement useful constant buffer upload
this will remove the additional memcpy introduced in my last commit
2013-10-12 20:29:56 +02:00
degasus
4377618438 VideoCommon: keep a copy of the const buffer in VideoCommon
The upload in the backend isn't done, it's just pushed by the mostly removed SetMulti*SConstant4fv.
Also no optimizations was done on VideoCommon side, but I can start now :-)

Sorry for the hacky way, but I think this is a nice (working) snapshot for a much bigger change.
2013-10-12 20:29:56 +02:00
degasus
0753ce5bda ogl: use GL_RGBA instead of GL_RGBA8
8 bit per pixel is _everywhere_ the default, so we don't need to define it explicitly.
Also we don't rely on exact 8 bit resolution.
2013-10-12 16:34:06 +02:00
Ryan Houdek
2f0aca2055 [ARM] Fix the JITILArm and JITArm dispatchers from comex's recent changes. 2013-10-12 08:30:26 +00:00
Ryan Houdek
0556193442 Build fix for previous commit. 2013-10-11 21:45:44 -05:00
Ryan Houdek
cf7521dc36 [Android] Make Tegra 4 output graphics that aren't visually appealing. 2013-10-11 21:42:07 -05:00
comex
78a4dbced8 Remove more unused stuff. 2013-10-09 21:37:29 -04:00
comex
8962b9606b One shudders to imagine what inhuman thoughts lie behind that code.
(Read_Opcode_JIT and Write_Opcode_JIT read/write from unrelated memory
areas.*  Rename the latter and refactor.)

*except at the one specific exception handler where it doesn't.  I
have no idea what this is supposed to do, but it probably doesn't do
it correctly.  For now, remove the exception.
2013-10-09 21:37:29 -04:00
comex
2e32f11f03 Remove "deprecated" and unused function Read_Opcode_JIT_LC. 2013-10-09 21:37:28 -04:00
comex
5847e26d34 Minor JitCache cleanup. 2013-10-09 21:37:28 -04:00
comex
86f2e1734a Make JIT_UNLIMITED_ICACHE always on.
(1) The alternative doesn't compile.
(2) Despite "unlimited" sounding like a hack, it's actually
    significantly more correct then the alternative, which is no
    emulated icache.
(3) Easier to wrap my head around.
2013-10-09 21:37:28 -04:00
Ryan Houdek
715d5ae8a7 Merge branch 'JitArmIL'
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
Ryan Houdek
7bc4838243 Add the Arm JITIL to DolphinWX. 2013-10-09 23:09:18 +00:00
Ryan Houdek
bd79603c66 [ARM-JitArmIL] Enable a bunch of instructions. 2013-10-09 23:03:39 +00:00
Ryan Houdek
f5e1b4659a [ARM] Clean up LSL, LSR, and ASR emitters, we don't need a separate instruction for each to support registers. 2013-10-09 22:57:31 +00:00
Ryan Houdek
4914665429 [ARM-JITArmIL] Remove the SystemRegisters file. 2013-10-09 20:59:15 +00:00
Rachel Bryk
cc05f66ba1 Don't prepend file:// in wxUtils::Explore() on windows. Wxw will just remove it, and/or blow up trying to remove it, if the path isn't ascii.
Fixes issue 6721.
2013-10-09 16:18:33 -04:00
Rachel Bryk
99c89ae109 Fix unicode support for File::Rename() on windows.
Partial fix of issue 6721.
2013-10-09 15:33:21 -04:00
comex
d5e40bfb01 Don't waste time looking up the block if enableBlocklink is off anyway. 2013-10-09 15:01:55 -04:00
Matthew Parlane
414ed6ef63 C.K. should fix his website before throwing stones at obsolete xml. 2013-10-09 23:56:16 +13:00
Matthew Parlane
fbcc41c18e Fix references for OGL, SW and D3D. 2013-10-09 23:49:00 +13:00
Matthew Parlane
935ed814ea Missed a accept error handler.
Init instead of memset.
2013-10-09 23:35:29 +13:00
Matthew Parlane
f811dbb575 Fix accept() bug, which was using the wrong isRW for error conversion.
Also fixed a debug issue where local_name is used uninitialised.
2013-10-09 22:16:04 +13:00
Ryan Houdek
932586f743 [JitArmIL] Fix Windows build? 2013-10-09 00:55:43 +00:00
Ryan Houdek
4263f062b0 [JITArmIL] Fix JITIL compiling on x86. 2013-10-08 19:16:27 -05:00
Ryan Houdek
ce5dbfe7a7 [ARM-JITArmIL] Begin merging of the two IL cores in to a common source base. 2013-10-08 19:23:37 +00:00
Ryan Houdek
a0f2183424 [ARM-JITArmIL] Provide the necessary instructions to allow the JitArmIL to actually run. Disable branch instructions as well for now since one is wrong somewhere. 2013-10-08 16:42:33 +00:00
Ryan Houdek
7dd8deecec [ARM] Update the ArmEmitter with a bunch of NEON emitters. This adds around 47 instruction emitters if I counted correctly. None well tested at this point. On going to add all the NEON emitters. 2013-10-08 10:17:01 +00:00
Matthew Parlane
4a0745799f Missed OGL includes apparently. 2013-10-08 18:03:33 +13:00
Matthew Parlane
eb480a406c Fix Windows vcxproj files. 2013-10-08 17:52:18 +13:00
Ryan Houdek
0236ba3f86 [ARM-JITARMIL] CMP optimization. Int3 IR. DownCount added. 2013-10-07 23:25:13 +00:00
Jasper St. Pierre
9920362581 Fix MSVC project files
yay relative paths
2013-10-07 18:50:21 -04:00
Jasper St. Pierre
a7c7208103 Put Plugins/ in Core/, rename to VideoBackends 2013-10-07 10:37:01 -04:00
Ryan Houdek
a4eab75d15 [ARM] Beginning of JitArmIL JIT recompiler. This code is entirely based off of magumagu's work with the JIT64IL. This puts down the base needed for the recompiler. Starfield actually runs quite a few blocks being mysteriously dying while most other games just exit out due to an instruction not being done yet. A lot of this code can be tidied up and actually shared between the two IL recompilers but isn't yet done. 2013-10-07 14:25:07 +00:00
comex
d6f0ecebb4 Fix updating the register even if an exception occurred in MMU mode. 2013-10-07 02:34:38 -04:00
comex
a9908fdf09 Fix build issues on OS X i386. 2013-10-07 02:16:51 -04:00
Ryan Houdek
c054049712 Fix PixelShaderGen from the previous commit. 2013-10-06 21:54:09 -05:00
Ryan Houdek
26c38648ec [Android] Missed a few things for PowerVR544MP3 'support.' It doesn't actually get any video output on it just like Tegra 4. 2013-10-06 21:51:41 -05:00
Ryan Houdek
d4bd5fde71 Only emit the texgens if they are used, not every single time do all of them. 2013-10-06 21:32:05 -05:00
Tony Wasserka
ed88cf6cad Removing more references to D3D9. 2013-10-06 13:37:10 +02:00
Tony Wasserka
5de6726658 Remove another D3D9 reference. 2013-10-06 13:30:59 +02:00
Tony Wasserka
d198fee21b Remove more references to D3D9... 2013-10-06 13:30:59 +02:00
Tony Wasserka
61ed40749f Shader generators: Remove any references to D3D9 and cleanup the affected code. 2013-10-06 13:30:56 +02:00
Tony Wasserka
0e2e71e483 Remove some now unused VideoConfig settings. 2013-10-06 13:28:46 +02:00
Tony Wasserka
3b188b0481 VideoConfigDiag: Update video backend description to reflect the D3D9 removal. 2013-10-06 13:28:45 +02:00
Lioncash
0d4df39e1f Remove D3D9 related files.
Cf. issue 6167 for a list of shortcomings that made us decide on removing the backend.
2013-10-06 13:28:41 +02:00
Ryan Houdek
6bdcde9dd6 [Android] Tegra 4 'support.' This brings up the OpenGL backend to support Tegra 4 to the point where it will run games but it doesn't have any video output for some reason. This is a large change that doesn't actually change much functionally. Walking through the changes.
It changes the string in the Android backend select to just OpenGL ES.
Adds a check in the Android code to check for Tegra 4 and to enable the option to select the OpenGL ES backend.
Adds a DriverDetails bug under BUG_ISTEGRA as a blanket case of Tegra 4 support.
The changes that effects most lines in this change. Removing all float suffixes in the pixel/vertex/util shaders since OpenGL ES 2 doesn't support float suffixes.
Disables the shaders for reinterpreting the EFB format since Tegra 4 doesn't support integers.
Changes GLFunctions.cpp to grab the correct Tegra extension functions.
Readds the GLSL 1.2 'hacks' as GLSLES2 'hacks' since they are required for GLSL ES 2
Adds a GLSLES2 to the GLSL_VERSION enum.
Disable the SamplerCache on Tegra since Tegra doesn't support samplers...
Enable glBufferSubData on Tegra since it is the only mobile GPU to correctly work with it.
Disable glDrawRangeElements on Tegra since it doesn't support it, This uses glDrawElements instead.
2013-10-06 03:12:29 -05:00
skidau
2b08172a45 Corrected the XMM0 processing for pairedStoreQuantized in the x86 build.
Updated the PC for the fifo writes processing in the less common case.
2013-10-06 16:31:34 +11:00
Matthew Parlane
8722b9cfb5 Missing break for IOCTL_ES_DELETETITLECONTENT 2013-10-06 16:22:44 +13:00
Lioncash
a7d073b0da [Core] Simplify a loop within function Run() in Interpreter.cpp. The increment variable for the for loop is never used at all, so it's sensible to replace it with a while loop. 2013-10-05 14:38:21 -04:00
skidau
2d00c3a4f8 Added code to update the PC before doing a fastmem write. Fixes games with freezing and FIFO errors since r2a339c926e43c11f7b9acc8d3af202f0be54e2b0. 2013-10-05 23:23:49 +10:00
comex
6498a77362 Fix storeSingleFloat stack alignment. 2013-10-05 07:56:57 -04:00
comex
21a114ec28 ...Forgot the XMM regs for x86. 2013-10-05 01:17:34 -04:00
comex
144d7e5500 Fix build-breaking typo. 2013-10-05 01:08:08 -04:00
skidau
8324510d65 Removed the IOSVersion check (caused some Wii games like Battalion Wars 2 not to boot). 2013-10-05 13:07:40 +10:00
skidau
b7d1c03c8a Added a check for the IOS version before overriding the OSGetResetCode() function.
Fixes issue 6700.
2013-10-05 12:41:59 +10:00
comex
f6c0fb7bbe Merge branch '6663'
Should fix some fastmem-related bugs and possibly improve performance a bit.
2013-10-04 21:19:40 -04:00
comex
a51eb5fd19 Fix idle skipping.
It incorrectly continued to test EAX after it was changed to load
directly to the assigned register.

Also switch from a flush to ABI_PushRegistersAndAdjustStack, to avoid
needless flushing in the no-idle case.
2013-10-04 20:33:39 -04:00
comex
3679f9ba60 Don't push registers before pairedStoreQuantized, that's dumb.
And fix some stuff up.  It would probably be good to unify the stack
handling some more rather than having ABI_PushRegistersAndAdjustStack do
part of it and ABI_AlignStack the rest, causing unnecessary subtract
instructions on Linux x86 (only).
2013-10-04 15:48:06 -04:00
LPFaint99
8c103a8dee ChooseMemcardPath bugfix: check for a directory separator before converting an absolute path to a relative path.
if the exe directory and the save directory had the same prefix, .../dolphin emulator/... and .../dolphin/... the path would previously have been incorrectly changed
2013-10-04 11:31:22 -07:00
comex
a91469ffa5 Fix stfd, which was broken in the fastmem writes commit. 2013-10-03 18:22:35 -04:00
comex
5e4665301b Finish replacing ThunkManager with ABI_PushRegistersAndAdjustStack.
As part of that, change SafeLoadToEAX to SafeLoadToReg, and have JitIL
use that, which should fix fastmem on JitIL.

This should also fix a potential stack corruption issue with x86.
2013-10-03 18:22:35 -04:00
comex
a53dc6f981 Remove profiled re-JIT support in JitIL.
It's extremely unsafe, unused (not exposed in the GUI and not present in
any gameconfigs), and mostly obviated by fastmem.  Although this type of
thing could theoretically be useful someday for fastmem support with
MMU, it's probably not the best way to do it, the existing
implementation is way too simplistic, and it can always be dug up to
provide support for a new implementation if needed.

Not like it's a big deal to keep it working, but it really seems
pointless.
2013-10-03 18:22:12 -04:00
comex
3b0c0e2500 Trap to the debugger properly after BackPatch failure. 2013-10-03 18:21:29 -04:00
Ryan Houdek
fe3d0c9aa2 [ARM] Disable subfic, it prevents Wind Waker from booting into a save game. 2013-10-03 06:43:16 +00:00
comex
cb3afe8f70 Warning fixes:
- Don't use %lu for size_t; they're different on Linux x86.

- has_warned_about_drivers is only used on win32, so only declare it
  there to avoid a unused variable warning.
2013-10-02 20:48:37 -04:00
Lioncash
1ec4894bc5 [Common] Abstract out the decode5A3Image and decodeCI8Image functions in BannerLoaderGC, BannerLoaderWii, and GCMemcard into ColorUtil.cpp. Makes for less copied code and remains functionally the same. 2013-10-02 18:18:54 -04:00
Matthew Parlane
cd99e5e3a6 mtspr fall through to interpreter not needed for basic SPRs 2013-09-30 23:43:11 +13:00
Matthew Parlane
d261dfaf46 Upgrade libusb to 1.0.16 2013-09-30 18:36:54 +13:00
Ryan Houdek
3c53f2e5e0 [Android] Fix Fastmem on Android 4.2 2013-09-29 20:53:32 -05:00
comex
1a008b9e62 Fix use of ABI_GetAlignedFrameSize. 2013-09-29 16:36:26 -04:00
comex
ccbf2ac21a Match ABI_AlignStack with ABI_RestoreStack properly.
The relevant function is entirely unused, so it shouldn't have any
effect.
2013-09-29 14:59:13 -04:00
Rachel Bryk
b0200219dd Add literally a million blank inputs in netplay when a wiimote changes reporting mode, just to make nsmbw sync. 2013-09-28 23:39:29 -04:00
comex
853392b790 Use a separate section for enabled Gecko codes, like AR.
This properly fixes default gecko codes.

It makes perfect sense to have two separate cheat windows and two
separate code paths for the different code formats, right?
2013-09-28 23:38:40 -04:00
comex
f57ff0a569 Support a gcm revision-specific game ini for cheats + partially fix gecko codes in default ini.
The local ini is not revision-specific because it would require renaming
everything.  Meh.
2013-09-28 23:38:25 -04:00
comex
1ed06f1dc4 Reset wxTAB_TRAVERSAL.
Fixes issue 3903.
2013-09-28 23:00:56 -04:00
Rachel Bryk
9c53a21c18 Allow setting DSP settings via game ini. 2013-09-28 08:31:28 -04:00
Rachel Bryk
785171abb4 Change iTLBHack to a bool.
It is only used as a bool.

Fixes issue 6668.
2013-09-28 08:07:23 -04:00
Rachel Bryk
cbd366236a Allow loading save states via drag and drop. 2013-09-27 08:38:12 -04:00
skidau
9a2c7df8dc Added a small disc access delay to fix the missing music in Super Monkey Ball 2. 2013-09-27 20:35:27 +10:00
comex
bea76ac129 No need to std::move a return value. Thanks Billiard. 2013-09-26 21:15:35 -04:00