Commit Graph

11743 Commits

Author SHA1 Message Date
CarlKenner fb370110dc Fix horribly broken accelerometer emulation.
It now emulates the least significant bits.
And it no longer treats maximum acceleration in one direction as being in the opposite direction.
2015-01-30 12:38:21 +10:30
skidau 855ad6f1d3 Fixed an overflow bug in Jit64. 2015-01-30 13:00:23 +11:00
skidau a42fb80f6a Added a hash key finder.
Fixed the memcard and AGP path parsing in Windows (the code is expecting '/' to be used as the DIR_SEP).
2015-01-30 13:00:23 +11:00
skidau b92eb03d26 Merge pull request #1973 from degasus/master
OpcodeDecoder: Calculate decoding time for vertices
2015-01-30 12:58:52 +11:00
skidau 83a9f1b850 Merge pull request #1972 from lioncash/ref
EXI_DeviceAGP: Pass string by reference
2015-01-30 12:58:26 +11:00
degasus 20628b6e5d OpcodeDecoder: Calculate decoding time for vertices 2015-01-29 19:55:28 +01:00
Ryan Houdek a2b872b9da Merge pull request #1983 from Sonicadvance1/remove_comment
Remove an old outdated comment that makes no sense.
2015-01-29 09:51:16 -06:00
Ryan Houdek 9b4a896353 Remove an old outdated comment that makes no sense.
This comment was left over from a long time ago. It is no longer true.
2015-01-29 09:40:22 -06:00
Ryan Houdek 631c8a981e [AArch64] Minor performance improvements to paired stores.
We can combine these two ST1 calls in to a single ST1 call.
Saves a few cycles in paired stores
2015-01-29 06:07:00 -06:00
Ryan Houdek 235f6c2445 [AArch64] Don't flush VFP register to stack when not needed. 2015-01-29 06:07:00 -06:00
Ryan Houdek c8c062fa96 [AArch64] Add support for MMIO loads.
Should give a small performance benefit.
2015-01-29 06:06:54 -06:00
Ryan Houdek 1c388b6c37 Fix clang on x86_64.
If we are compiling in the CRC32 hash, clang has an issue with casting a s32 to a u64.
Change our lens argument to a unsigned integer to fix the issue.
2015-01-29 01:55:20 -06:00
Ryan Houdek 8c53b88cc3 [AArch64] Implement a way to call lambdas in the emitter 2015-01-29 01:50:11 -06:00
Rohit Nirmal 5203c4ef7b Silence -Wunused-variable warning. 2015-01-28 18:09:07 +00:00
Lioncash cf156d4d37 InputConfigDiag: Fit buttons to their text
Fixes slight sizing issues on high DPI displays.
2015-01-28 13:07:17 -05:00
Markus Wick 109fa8c2c8 Merge pull request #1800 from randomstuff/jit-register
Add support of more JIT-compiled code for profiling
2015-01-28 13:23:32 +01:00
Gabriel Corona c3777bbd69 JitRegister: TrampolineCache 2015-01-28 10:41:45 +01:00
Gabriel Corona 329834f653 JitRegister: JitAsm 2015-01-28 10:41:03 +01:00
Gabriel Corona 3c14930a0a JitRegister: JitAsmCommon
Allows profiling/debugging tools to know about JITed code.
2015-01-28 10:40:05 +01:00
Gabriel Corona a4adfe194a JitRegister: overload Register with a [start,end) variant 2015-01-28 09:50:19 +01:00
Gabriel Corona a957f93532 Use printf-like format in JitRegister::Register
The API is cleaner (no more magic default parameter) and more
extensible like this.
2015-01-28 09:47:08 +01:00
Markus Wick eedc7bb582 Merge pull request #1975 from Tilka/fix_warning
CoreTiming: fix warning
2015-01-28 09:33:39 +01:00
Tillmann Karras 257deb7886 CoreTiming: fix warning 2015-01-28 08:27:14 +01:00
magumagu 0030ad9ecf Fix D3D regression from PR1948.
Make sure we don't have a texture bound as both an ShaderResourceView and
a RenderTargetView; this causes rendering glitches.

This isn't really the right place to do this... but I'm not sure
how the code should be structured.
2015-01-27 18:25:35 -08:00
Markus Wick beaa9905a6 Merge pull request #1966 from magumagu/unify-efb-encode
Unify EFB encoding shader generation
2015-01-27 23:14:18 +01:00
Markus Wick da31314775 Merge pull request #1970 from magumagu/d3d-cleanup
D3D: delete unnecessary code.
2015-01-27 22:26:46 +01:00
Lioncash 7dc5bc622f EXI_DeviceAGP: Pass string by reference 2015-01-27 10:15:27 -05:00
Markus Wick 43605f8716 Merge pull request #1948 from magumagu/remove-efb-cache
Remove EFB to RAM cache, and simplify code.
2015-01-27 09:42:15 +01:00
Markus Wick 8eda3ca844 Merge pull request #1956 from Tilka/vertex_loader_jit
VertexLoader: clean up and fix some problems
2015-01-27 09:15:09 +01:00
skidau c20ef8bb8c Merge pull request #1919 from skidau/AGP
Added support for AGP. Original patch by GreyRogue.
2015-01-27 13:25:14 +11:00
skidau 61c04de7ee Added the ability to map gamepad buttons to hotkeys. 2015-01-27 12:24:47 +11:00
Tillmann Karras 3dbd6cd384 VertexLoaderX64: save XMM0 if the ABI requires it 2015-01-26 22:24:06 +01:00
Tillmann Karras 8416a86b6d VertexLoaderBase: fix crash on invalid formats 2015-01-26 22:24:06 +01:00
Tillmann Karras 66f28707e7 VertexLoader: small clean up 2015-01-26 22:24:06 +01:00
magumagu 897b678d24 D3D: delete unnecessary code. 2015-01-26 10:58:32 -08:00
JosJuice 521ccd7b44 VolumeWiiCrypted: Decryption optimization
The block doesn't have to be read if it already is in m_pBuffer.
2015-01-26 15:59:25 +01:00
Ryan Houdek 7df55d220f Merge pull request #1967 from Sonicadvance1/Android_settings
[Android] Change some configuration options.
2015-01-26 05:30:35 -06:00
Markus Wick 53a9df10f9 Merge pull request #1817 from Armada651/custom-anaglyph
PostProcessing: Add support for user-supplied anaglyph shaders.
2015-01-26 11:08:29 +01:00
magumagu 9dbb9bf3b5 Make sure EFB2RAM buffer is wide enough for new coordinate system. 2015-01-25 23:32:32 -08:00
magumagu b56025e6eb Don't use boolean negation. 2015-01-25 23:28:59 -08:00
magumagu 33259c272b Remove some debugging junk. 2015-01-25 23:11:36 -08:00
magumagu cb05730127 Use linear sampling in ScaleByHalf mode. 2015-01-25 23:05:23 -08:00
magumagu 92189823f3 Fix RGBA8 encoding. 2015-01-25 22:53:30 -08:00
Ryan Houdek 983c7f4f21 [Android] Select the AArch64 recompiler core by default if shown to support ARMv8. 2015-01-26 00:50:25 -06:00
magumagu 1ee09ced0a Fix OpenGL coordinate computation. 2015-01-25 21:38:30 -08:00
magumagu cb5d3fce4f Fix stupid mistake. 2015-01-25 21:20:25 -08:00
Ryan Houdek 5ba1319abb Merge pull request #1953 from Sonicadvance1/AArch64_fix_paired_loadstores
[AArch64] Fix all of the paired store instructions.
2015-01-25 23:07:44 -06:00
Ryan Houdek c340a324bc Merge pull request #1947 from Sonicadvance1/AArch64_tu_tl_merge
[AArch64] Implement TU/TL merging.
2015-01-25 23:07:32 -06:00
magumagu b0b99b6922 Fix shader so it's possible to use with D3D Map().
Well, that's not strictly true, but trying to memcpy between two buffers
using different row lengths and different strides is at minimum extremely
unintuitive.
2015-01-25 19:57:09 -08:00
magumagu 6c1bdfe04c More work. 2015-01-25 19:57:07 -08:00
Rohit Nirmal 51b27c5481 Fix building with PCH disabled. 2015-01-25 21:40:31 -06:00
Pierre Bourdon 1e809d9c11 Revert "Merge pull request #1903 from RisingFog/libav"
This reverts commit 34079a0037, reversing
changes made to 3274df7158.
2015-01-26 02:35:29 +01:00
skidau 34079a0037 Merge pull request #1903 from RisingFog/libav
Use ffmpeg for Windows Video Dumping instead of VFW
2015-01-26 12:03:44 +11:00
Ryan Houdek 3274df7158 Merge pull request #1961 from Sonicadvance1/AArch64_game_fixes
[AArch64] Fix a load of games.
2015-01-25 18:26:42 -06:00
Ryan Houdek b1fc18cbaa Merge pull request #1958 from Sonicadvance1/Rearchitect_asmcommon
Rearchitect a bit of our AsmCommon routines.
2015-01-25 18:26:17 -06:00
Ryan Houdek d291148016 [AArch64] Implement TU/TL merging.
Basically stolen from the x86 recompiler. Works well on AArch64 as well!
2015-01-25 18:05:33 -06:00
magumagu ef75f3005d WIP. 2015-01-25 15:49:35 -08:00
Ryan Houdek f24c466e7e [AArch64] Fix AArch64 instruction encoding. 2015-01-25 17:26:18 -06:00
Jules Blok 5c4ee2f71e PostProcessing: Move default pixel shader to PostProcessingShaderConfiguration.
Reduces code complexity and fixes a bug where the shader is not properly invalidated.
2015-01-25 23:08:49 +01:00
Ryan Houdek 98fe869e39 Merge pull request #1962 from rohit-n/build-pch
Fix building with PCH disabled.
2015-01-25 15:38:20 -06:00
Jules Blok fc46d460f9 VideoConfigDiag: Allow anaglyph shader to be turned off.
Also hard-code the default shader.
2015-01-25 22:27:17 +01:00
Jules Blok 262c3b19ec PostProcessing: Add support for user-supplied anaglyph shaders.
There are lots of different anaglyph glasses out there and there may be even more creative uses for stereoscopic post-processing shaders.
2015-01-25 22:07:03 +01:00
Rohit Nirmal d10b4d9b8b Fix building with PCH disabled. 2015-01-25 11:34:22 -06:00
Pierre Bourdon a93433a860 Merge pull request #1960 from phire/zfreeze-buffer-underrun
Fix a buffer underrun in CalculateZSlope.
2015-01-25 18:18:49 +01:00
Ryan Houdek e4e08b0596 [AArch64] Make sure to load the full destination register on float instructions.
With the float instructions that only affect the lower 64bits of the destination register, we need to make sure to load the full 128bit register.
This ensures that we aren't saving garbage in to the top 64bits.
2015-01-25 03:17:46 -06:00
Ryan Houdek 2483f7b359 [AArch64] Fix addcx. 2015-01-25 03:17:14 -06:00
Ryan Houdek 6791a808b6 [AArch64] Fix addzex. 2015-01-25 03:16:57 -06:00
Ryan Houdek 84b90ad1c6 [AArch64] Fix cmp 2015-01-25 03:16:29 -06:00
Scott Mansell 61215e7180 Fix a buffer underrun in CalculateZSlope. 2015-01-25 20:31:20 +13:00
skidau 0aef1d27aa Merge pull request #1933 from magumagu/intellisense-error-fix
Fix Intellisense error spam on Visual Studio.
2015-01-25 15:44:30 +11:00
skidau d7a8752228 Merge pull request #1920 from CarlKenner/fix3dxfb
Fix 3D XFB
2015-01-25 15:44:06 +11:00
Ryan Houdek 12b9ada268 Rearchitect a bit of our AsmCommon routines.
JitCommon is becoming a cluster of x86 specific things and things that are common to multiple recompilers.
This overlap is beginning to cause us issues.

Begin by breaking out the common ASM arrays to have their own file and move the x86 specific routines to their own folder.
2015-01-24 20:06:15 -06:00
Benjamin Przybocki 4f324ad742 Clean Up 2015-01-24 17:10:21 -06:00
Lioncash 9cdfe889af Coding style cleanup from the zfreeze merge 2015-01-24 15:16:48 -05:00
Markus Wick ae514cb0f2 Merge pull request #1955 from degasus/master
TexCache: Rewrite the texID generation for paletted textures
2015-01-24 15:37:25 +01:00
degasus 51990fcdfa TexCache: Rewrite the texID generation for paletted textures
This changes the behavior if both texture are available. The old code did
try to load the modfied texID, the new code tries the unmodified texID first.
2015-01-24 13:58:20 +01:00
Markus Wick 4f6d0049a7 Merge pull request #1951 from Sonicadvance1/Remove_old_defines
Remove an old GLES define that I missed.
2015-01-24 13:38:26 +01:00
Tony Wasserka 43036af944 Merge pull request #1812 from phire/real_zfreeze
Add proper zfreeze support.
2015-01-24 13:29:57 +01:00
Ryan Houdek 93f3816eae [AArch64] Fix all of the paired store instructions.
These had some minor errors in them that I discovered with the hardware test and Viewtiful Joe.
All work as they should now.
2015-01-23 23:18:49 -06:00
Dolphin Bot 4e9497cdb8 Merge pull request #1057 from phire/IsMMIOAddress2
Further improvements to IsMMIOAddress (Includes tests!)
2015-01-24 05:55:35 +01:00
Scott Mansell fe28d1476a Make the IsMMIOAddress function easier to read, add tests.
This also makes IsMMIOAddress more restrictive.
2015-01-24 17:24:40 +13:00
Ryan Houdek 088b6b2ec3 Merge pull request #1081 from phire/jitil-float-mem-opts
JitIL Float load/store optimizations.
2015-01-23 21:47:03 -06:00
Scott Mansell 5c34766809 Propagate elf loading failure up.
Also fix mistake in error message.
2015-01-24 16:28:34 +13:00
magumagu 3aa3002010 Fix Intellisense error spam on Visual Studio.
Intellisense doesn't like defines in PCH files, and it doesn't like the deleted
constructor for BitField.  (I think it's being overly strict about the
"must have no non-default constructors" rule for classes in unions.)
2015-01-23 19:15:25 -08:00
Scott Mansell 3106b20fbe JITIL: Improve address calulation for float loads/stores.
For floating loads with a known address, this eliminates the pattern of:

   mov r12d, 80001014
   mov rdx, r12d
   mov rdx, dword ptr [rbp+rdx]

and generates a nice simple:

   mov rdx, dword ptr [rbp+00001014]
2015-01-24 16:08:50 +13:00
Scott Mansell 75815b9b0d Added a comment to document an issue with the codegen. 2015-01-24 16:08:26 +13:00
Scott Mansell b7d4ff679a IsWiiElf: Optimise inner loop.
Instead of swaping each word of the elf code section(s) looking
for a match to our pattern, we swap the pattern just once (at
compile  time) and test against our swapped pattern.
2015-01-24 15:41:32 +13:00
Scott Mansell 2bf052d8b9 ElfReader: Clean up elf loader code.
* Don't claim to support any features we don't, like relocation
 * Actually zero-out BSS sections, as memory might not be already
   zeroed.
 * Deleted commented out code.
 * Removed GetPointer, updated to more modern interface methods.
 * Updated pointer types style from "u32 *x" to "u32* x"
2015-01-24 15:41:32 +13:00
Scott Mansell 1e5762b163 BootUp: Clean up elf BootUp code.
* The file already exsists, otherwise we wouldn't have gotten
   this far in the boot.
 * We have already checked if it's a Wii or GameCube elf,
   besides, it's too late to change our minds now anyway.
 * On Wii - Don't call EmulatedBS2, it can never succeed as
   it knows nothing about booting elfs. Just call the
   SetupWiiMemory directly if needed.
 * On GameCube - We still call EmulatedBS2_GC, but we stop
   it from running Apploader, which might boot something
   unexpected from the default iso or DVD root folder.
2015-01-24 15:41:28 +13:00
Scott Mansell 2642c3f73b BootElf: Use unique_ptr<u8 []> instead of vectors. 2015-01-24 15:32:38 +13:00
Scott Mansell 14baf038e7 Stop doing nastly shit to OpenGL stream buffers.
Instead we keep the loaded vertices in CPU memory.
2015-01-24 14:41:51 +13:00
skidau f1a4b98d36 Merge pull request #1879 from magumagu/idle-exception-check
For idle loops, perform an exception check before CoreTiming::Advance.
2015-01-24 12:28:44 +11:00
skidau 7dafad5a8b On DCBZ, mask the memory address to ensure that the address is within physical memory. The AGP disc DCBZ's against an out of bounds physical address. 2015-01-24 12:19:33 +11:00
skidau 8a561b57c3 Added EEPROM saving to file. 2015-01-24 12:15:48 +11:00
skidau a7299a7fff Added support for AGP. Original patch by GreyRogue. 2015-01-24 12:13:23 +11:00
skidau 18cee2dcc7 Added second parameter for the eject disc via StopMotor DI command. The AGP disc expects the disc to still be readable after sending an eject command. 2015-01-24 12:13:23 +11:00
Ryan Houdek 189528171b Remove an old GLES define that I missed. 2015-01-23 14:30:23 -06:00
magumagu 6659c15bed Remove EFB to RAM cache, and simplify code. 2015-01-23 10:48:15 -08:00
Scott Mansell 5510c86b81 Move Zfreeze code out individual backends into videoCommon
Also:
 * Implement support for per-vertex PosMatrixIndex
 * Only update zslope constant once when zfreeze is activated.
 * Added a bunch of comments.
2015-01-24 03:22:27 +13:00
skidau 0b1d8fae1b Merge pull request #1926 from skidau/emu-wiimote-speaker-adpcm-sample-rate
Fixed the emulated wiimote speaker's ADPCM sample rate.  Patch by hk.konpie
2015-01-23 12:31:20 +11:00