Commit Graph

7691 Commits

Author SHA1 Message Date
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
Lioncash 4542b9fcbb [Core] Fix a memory leak in NetPlayServer.cpp in function OnData(). 2013-09-26 15:42:22 -04:00
Ryan Houdek e37cb1fc76 Implement CR1 for the intepreter. To be honest I have no idea why this was never done previously, all it is is copying four bits from the FPSCR register to CR1. This fixes issue 2390. 2013-09-26 18:09:25 +00:00
Ryan Houdek 4efc3e6c8f Quick build fix. 2013-09-26 07:50:24 +00:00
Ryan Houdek feaf65f2ae [Android] The dynamic UBO access isn't actually fixed, contrary to what rev cd646d8e236 said. I presumed it fixed with v4x drivers, but I didn't have the LG G2 with me to test 100% at the time. This won't afflict any Adreno device with v4x drivers since UBOs are disabled for them since they are _broken_. 2013-09-26 07:46:56 +00:00
comex ecca0045a9 Fix Imm8 check.
(I blame whoever made it take a u8 despite logically being a s8.)
2013-09-25 14:29:17 -04:00
Ryan Houdek 691f76b826 [ARM] Implement CR1 setting for the few floating point instructions that I have setting the flags. For the rest, drop to interpreter if it sets CR1. At that point it'll spam a panic alert. I don't quite understand why Interpreter and JIT64/IL don't do this yet, it's a simple 4 bit copy. 2013-09-25 18:17:05 +00:00
comex 54843ad1e8 Need to reload from XMM0 in this case. 2013-09-25 14:16:20 -04:00
Rachel Bryk 74ee85aaac Fix linux, attempt 2. 2013-09-25 06:22:11 -04:00
Rachel Bryk f77b3ccf8a Fix linux, probably. 2013-09-25 06:13:44 -04:00
Rachel Bryk 93f7622e16 Fix changing wiimotes when starting netplay.
AccessWiiMote() crashed for some users. Not sure why...
2013-09-25 05:44:16 -04:00
comex ebe4448749 Save only the registers that need to be saved rather than going through ProtectFunction. 2013-09-25 03:15:53 -04:00
comex 2a339c926e Fastmem writes for x86-64. 2013-09-25 03:15:53 -04:00
comex 18abc33306 2x banner images! 2013-09-25 03:06:27 -04:00
Ryan Houdek 624c92f97e [ARM] fresx/fnmaddsx/fselx/frsqrtex/fnmaddx implementations. 2013-09-25 03:00:57 +00:00
Ryan Houdek ae75f92b2a [ARM] psq_lx/psq_lux/psq_stx/psq_stux implementations. Four more instructions that JIT64 doesn't have. 2013-09-25 02:22:52 +00:00
Ryan Houdek cd646d89e2 [Android] The issue with the dynamic UBO access on Adreno platforms was fixed with v41 of the video drivers. v41 and above of the video drivers fix the spiky polygon problems that are noticed ingames. 2013-09-25 01:50:02 +00:00
Ryan Houdek 357a7707a6 [ARM] ps_cmpu0/ps_cmpu1/ps_cmpo0/ps_cmpo1 implementations. 2013-09-24 21:13:33 +00:00
Ryan Houdek 74bc855f20 [ARM] ps_res implementation. 2013-09-24 21:00:50 +00:00
Ryan Houdek 3b1b0d3fb5 [ARM] ps_div implementation. 2013-09-24 20:46:57 +00:00
Ryan Houdek 94a731b49d [ARM] fctiwx implementation. 2013-09-24 20:37:10 +00:00
Ryan Houdek 482170c3ea [ARM] Implement subfic with optimizations stolen from JIT64. 2013-09-24 19:01:03 +00:00
Ryan Houdek 405aa30cb8 [ARM] Fix fastmem... 2013-09-24 18:03:06 +00:00
Ryan Houdek 8e2e5a4e70 [ARM] Have both fastmem and non-fastmem paths for floating point loadstores because fastmem is completely broken garbage on Android at this point in time. 2013-09-24 17:40:12 +00:00
Ryan Houdek 5866859ff0 Screw you comex, this doesn't even make any damn sense. 2013-09-24 17:25:13 +00:00
Ryan Houdek eb6ed3e42a [ARM] Change all floating point loadstores to fastmem implementations except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker. 2013-09-24 05:41:58 +00:00
comex 29dc253fde Improve context structure handling on non-Windows.
Instead of copying data into and out of a fake CONTEXT structure with
only a few entries, use the platform specific structure directly with a
typedef and macros.  This is needed because fastmem writes need to be
able to access any register from BackPatch.  It adds a fair number of
repetitive defines, but it's better than the alternative.
2013-09-24 01:38:27 -04:00
comex 4cdce55615 Don't define _M_IX86 on ARM(!).
Also define _M_* in a common location, and clean up code that these
changes break (including DSPJit files that assume X86 yet are compiled
on ARM for some reason...)
2013-09-24 01:30:41 -04:00
comex a7f2160a0f Remove "educational purposes only" from about message.
Dolphin is obviously not marketed as being for educational purposes
only, and claiming otherwise in the about screen would not have any
legal weight, so don't insult everyone's intelligence.
2013-09-24 01:14:56 -04:00
comex 2f384c75d2 Only include scmrev.h from Version.cpp.
This way less code has to be rebuilt whenever that file gets
regenerated.
2013-09-24 01:14:56 -04:00
comex 1bf2c03a99 Fix my stupid attempt to depend on the entire Data/Sys directory.
Instead, if SKIP_POSTPROCESS_BUNDLE is on, just use a symlink, and if
it's off, always run the install.
2013-09-24 01:14:56 -04:00
Scott Mansell 0696fc93b2 Merge branch 'fix-field-ordering'
Fixes 6387
Closes 6635
2013-09-24 13:47:20 +12:00
Ryan Houdek 41ab4a2275 Nevermind the previous commit, SafeLoadToEAX already calls in to UnsafeLoadToEAX if fastmem is enabled. This one just tidys up the code. 2013-09-24 01:40:19 +00:00
Ryan Houdek aa41978834 Enable fastmem for the lfs instruction for unix and OSX as well. 2013-09-24 01:34:08 +00:00
Ryan Houdek 3fe8134f3b [ARM] lfsux/lfdx/lfdux/stfsx/stfsux/stfdx/stfdux implementations. 2013-09-24 01:17:24 +00:00
comex f81df136c2 Add an explicit error message for outdated GCC, and remove some commented out code. 2013-09-23 15:01:38 -04:00
Rachel Bryk 1745bfdc45 Fix crash in gc games in netplay. 2013-09-23 11:07:15 -04:00
comex 299421a02a Don't call into wx in static initializers - crashes on Windows. 2013-09-23 02:58:04 -04:00
Rachel Bryk 0bdef3932f Automatically connect the appropriate wiimotes in netplay. Extensions must still be set manually. 2013-09-23 02:56:17 -04:00
Ryan Houdek 96a77f9feb [Android] Fix the ability to stop the game and start another. 2013-09-23 01:43:18 -05:00
Scott Mansell 440353a3a1 Remove all refrences of field ordering from video backends.
They were unused.
2013-09-23 18:29:31 +12:00
Scott Mansell 4d3c41c8a2 Fixed issues with feild ordering.
This commit fixes issues with PAL games which use the incorrect feild
ordering.
We move all code that deals with indivudal fields from the indivudal
video plugins and VideoCommon and make VideoInterface always pass in
the start address of the whole XFB into VideoCommon.
2013-09-23 16:31:27 +12:00
comex c8c83f7b8a Remove FifoQueue iterator and RemoveThreadsafeEvents.
No point making a whole iterator class for the sake of a function that
doesn't need to exist.
2013-09-22 23:14:42 -04:00
Rachel Bryk 0a093cf1b9 Why do compilers assume i don't know order of opperations? :( 2013-09-22 22:01:25 -04:00
comex e82c9e616d operator= is a function too! std::forward is still appropriate.
Fix the potentially unsafe use of std::move I added to FifoQueue.
2013-09-22 21:15:58 -04:00
degasus 573dbfd494 ogl: drop glsl120 support 2013-09-22 23:45:14 +02:00
Rachel Bryk 12e7c22006 Fix recording netplay with wiimote. 2013-09-22 17:32:11 -04:00
comex 80b14e80b5 Fix crash when a player leaves in NetPlay.
The player ID was being written as int and read as PlayerId (u8).
2013-09-22 16:12:16 -04:00
comex 229b35bb6d When hosting, don't try to connect if listening failed.
If another instance of the server is running on the same computer, this
would cause Dolphin to confusingly connect to it.
2013-09-22 16:11:47 -04:00
comex 17e753faf3 Fix FifoQueue's atomicity on ARM.
Theoretically.
2013-09-22 16:08:09 -04:00
comex c3b9f3556f Make CoreTiming's threadsafe events lock-free.
Not sure if this actually helps in practice, but might help in
pathological cases, and almost certainly can't hurt.
2013-09-22 16:08:01 -04:00
comex 7fe440340f Improve Atomic.h:
- For GCC, use intrinsics that will work on ARM.
- Add AtomicExchangeAcquire.
- Make Atomic{Load,LoadAcquire,Store,StoreRelease} work for any suitable type.
2013-09-22 16:07:45 -04:00
comex 6209067daa Fix stack misalignment fix. 2013-09-22 15:48:27 -04:00
Rachel Bryk 9a6f28fce4 Revert "Fix stack misalignment issues."
This reverts commit d334a9bc23.

This breaks single core.
2013-09-22 14:29:35 -04:00
Rachel Bryk f3469c16a5 Merge branch 'wiimote-netplay'
Conflicts:
	Source/Core/Core/Src/NetPlayClient.cpp
	Source/Core/Core/Src/NetPlayClient.h
	Source/Core/Core/Src/NetPlayProto.h
	Source/Core/Core/Src/NetPlayServer.cpp
	Source/Core/Core/Src/NetPlayServer.h
	Source/Core/DolphinWX/Src/NetWindow.cpp
	Source/Core/DolphinWX/Src/NetWindow.h
2013-09-22 14:27:52 -04:00
Rachel Bryk 75129dc3a7 Merge branch 'to-merge-after-4.0' 2013-09-22 10:58:24 -04:00
Pierre Bourdon 323ecdb772 Ship vcomp100.dll with Dolphin 2013-09-22 16:00:56 +02:00
Pierre Bourdon 1f95a294cd Add the new 'Clean' themes from MaJoR and default to Clean by changing the name of the config key (yes, hack) 2013-09-22 16:00:56 +02:00
Pierre Bourdon 196953c50a Use the new Dolphin icon 2013-09-22 16:00:39 +02:00
Scott Mansell 4758ef9a9e Merge commit 'fa8a4cdbb57e' 2013-09-22 15:25:10 +12:00
Pierre Bourdon 91c0e02609 Don't require running Dolphin in the directory that contain Languages/ on Windows 2013-09-21 21:17:47 +02:00
Glenn Rice d321aa7e7a Pull in translations from Transifex. 2013-09-21 11:24:33 -05:00
Scott Mansell 1fb373f439 Stop dolphin from loading help.png
It was never used, just wasting time and resources.
This patch simply deletes two lines of code.
2013-09-21 06:34:50 +02:00
Rachel Bryk d2c3222fcc Fix copying Sys/Wii to User/Wii on startup.
Fixes issue 6621.
2013-09-21 00:34:19 -04:00
comex d334a9bc23 Fix stack misalignment issues.
- Call ABI_AlignStack even on x86-64.

- Have ABI_AlignStack respect the difference in current alignment
  between the root JIT function, which has a prolog, and
  ProtectFunction thunks, which do not.  This was causing many games
  to crash on start on OS X.  Since this might otherwise mean changing
  the stack pointer before every call...

- Have one prolog/epilog function rather than two (one of which
  definitely did not do what it was thought to do), and make it
  actually work like a normal one, so that the stack frame shows up
  properly in the debugger.  There should be no performance impact.
2013-09-20 16:46:48 -04:00
LPFaint99 95aac4ff68 if a memcard is set to read only, fail more gracefully by reporting when writes to the file fail instead of saying that the file does not exist. 2013-09-20 12:08:58 -07:00
Lioncash 86d70cee15 Turns out CVTSD2SI in x64Emitter.cpp should actually use 64 bits instead of 32. Thanks for pointing that out hk.konpie. 2013-09-20 14:50:27 -04:00
Ryan Houdek 85f067780a [ARM] Reenable flush per instruction with FPR cache. Something is still very wrong. 2013-09-19 02:08:20 +00:00
Ryan Houdek 930f997f04 [ARM] Fix and optimize mtcrf. 2013-09-19 02:08:19 +00:00
Ryan Houdek 1b1b5d2100 [ARM] MicroOps in the branching instructions. 2013-09-19 02:08:19 +00:00
Ryan Houdek 5158aea4dc [ARM] Fix misuse of RBIT in crXXX, meant to use MVN. 2013-09-19 02:08:19 +00:00
Rachel Bryk dc73222bfc Remove suggestion to restart dolphin if a wiimote movie desyncs, since it's no longer necessary. 2013-09-18 21:51:37 -04:00
comex ae607ea1e9 Fix missing md5thread.detach() 2013-09-18 21:48:23 -04:00
Ryan Houdek 452fd84bbd [ANDROID] Fix ARM JIT. Is due to Android using softfp instead of hardfp. 2013-09-18 17:21:22 -05:00
Ryan Houdek 6fc2117503 [ARM] Enable VMOV to move from double VFP reg to two ARM registers. 2013-09-18 17:21:22 -05:00
Lioncash af951f467e [InputCommon] Fix a bug in ControllerInterface::UpdateOutput() in ControllerInterface.cpp. The variable ok_count was never incremented, which caused the function to always return false. 2013-09-18 10:09:32 -04:00
Lioncash d03fb11188 Fix an incorrect opcode for an SSE instruction in x64Emitter.cpp. CVTSD2SI should write 0x2D, not 0xF2.
Also format the NormalSSEOps enum.
2013-09-18 07:43:31 -04:00
Pierre Bourdon 86f6e8cc1e Better fix for issue 6614: ISOProperties should store integer settings for PHack booleans. INIFile is stupid, please kill it with fire. 2013-09-18 12:33:57 +02:00
Pierre Bourdon 7aa98a3830 Fix loading of the 'projection hack enabled' gameini setting
Fixes issue 6614.
2013-09-18 12:23:46 +02:00
Ryan Houdek 24a44ecfb8 [ANDROID] Add two new DriverDetails bugs for Adreno. V45 of the driver has broken shader compilation with UBOs in the shaders, this is most likely fixed with V53 found in the Nexus 5. Add a bug for issue surrounding on screentext and doing a glClear after swap causes screen swizzling and zero frames rendered respectively. On the Java side, pass in the dimensions of the screen swapped since there is an issue with Adreno where it rotates the output 90 degrees for some reason. Disable the GLSL shader cache on Android for now due to the inability to cleanly exit the emulator, this tends to cause the cache to get corrupted. All this together fixes rendering with Adreno 3xx GPUs with driver version v14 and above. In particular my Galaxy S4 still resets with this without the root commands, but my HTC Droid DNA and LG G2 is fine. This must be due to particular 'enhancements' that the Samsung kernel has over the other ones. The speed on Adreno has yet to be optimized, so it will most likely be slow still. Faster than the software rasterizer in any case. The ARMJIT is still broken in at this point, so not much fun can be had. 2013-09-18 02:37:10 -05:00
Lioncash 197b317357 Fix indentation in function PSO_MakeSaveGameValid() in GCMemcard.cpp.
Also move the iterator variable for a for loop into the loop statement in function CARD_GetSerialNo()
2013-09-17 21:27:37 -04:00
Ryan Houdek 39a8645ffc [ARM] Fix the FPR cache to not have to dump registers after every instruction. Add mullwox instruction. 2013-09-17 22:08:23 +00:00
Ryan Houdek 06062d5744 [ARM] Fix VSQRT/VCMP/VCMPE/VCMPE0/VCMP0 emitters when using the high 16 double registers. 2013-09-17 22:08:23 +00:00
Pierre Bourdon ec9c395f4f Add WBFS to the file extensions supported by Dolphin on OSX 2013-09-17 16:50:44 +02:00
Pierre Bourdon e34d8aee1d Add * to the characters leading a verbatim line (used in Gecko codes comments) 2013-09-17 16:50:44 +02:00
Rachel Bryk 47ce3dd09d Really fix reading projection hacks from game inis. 2013-09-17 10:44:47 -04:00
Rachel Bryk e3d01de01d Fix reading projection hack from game inis in ISOProperties. 2013-09-17 10:40:12 -04:00
Rachel Bryk ec5cf60f5e Set L/R buttons in tas input, instead of just the analog triggers.
Fixes issue 6613.
2013-09-17 09:56:45 -04:00
Ryan Houdek 302e9c891b [ARM] crand/crandc/creqv/crnand/crnor/cror/crorc/crxor/mcrf/mfcr/mtcrf/mtsr/mcrxr/mfsr implementations. 2013-09-17 11:00:16 +00:00
Ryan Houdek dcf74ef2b3 [ARM] Renables load instructions with update. 2013-09-17 11:00:15 +00:00
Lioncash 38c7d38800 Fix two wrong opcodes in the x64Emitter. PEXTRW and PINSRW were actually writing PCMPGTB opcodes. Thanks for the help Sintendo. 2013-09-16 15:59:31 -04:00
Ryan Houdek 1529bb48c8 [ARM] Flush the fpr cache between every instruction. Do this until I figure out what is destroying the FPR register states. 2013-09-16 15:44:41 +00:00