Ryan Houdek
7a35f9285b
[GLES] Support texture_buffer for palette texture conversion.
...
OpenGL ES 3.2 adds this feature to core
It was available to GLES 3.1 as GL_{EXT, OES}_texture_buffer as well.
For the non-Nvidia vendors that implemented this is:
- Qualcomm's Adreno 4xx
- IMGTec's PowerVR Rogue
2015-09-01 05:41:03 -05:00
Lioncash
222b33f0a3
VolumeCreator: Fix a typo in VolumeKeyForPartition's name
2015-08-31 20:01:51 -04:00
Lioncash
1db1a8aacf
VolumeCreator: Use a unique_ptr in CreateVolumeFromFilename
2015-08-31 20:01:44 -04:00
flacs
b9ea9c05ad
Merge pull request #2931 from lioncash/mem
...
VertexLoader_Color: Remove some pointer casts
2015-09-01 00:32:43 +02:00
Lioncash
f7e22c8126
VertexLoader_Color: Mark translation-unit-local functions static
2015-08-31 17:31:23 -04:00
Lioncash
ec42be79f3
VertexLoader_Color: Get rid of some pointer casts
2015-08-31 17:31:11 -04:00
Ryan Houdek
ae0a06a018
[AArch64] Implement dcbz instruction
2015-08-31 15:39:47 -05:00
Ryan Houdek
d495ad5104
[AArch64] Make TST reg, reg emitter alias
2015-08-31 14:03:32 -05:00
Ryan Houdek
0f54aa48b4
Merge pull request #2928 from Sonicadvance1/aarch64_improved_singles
...
[AArch64] Improve floating point single instructions.
2015-08-31 12:00:08 -05:00
Ryan Houdek
bcde1aa8ff
[AArch64] Improve floating point single instructions.
...
Instead of having an "INS" instruction after every single instruction to duplicate the bottom 64bits in to the top 64bits of the register,
create a new FPR register cache type to track when a register's lower 64bits is supposed to be duplicated in to the high 64bits.
Not necessarily actually having the lower bits duplicated in the host side register. This removes inefficient INS instructions from sequential single
float instructions.
In particular a very heavy single heavy block in Animal Crossing went from 712 instructions down to 520 instructions(~37% less instructions!)
2015-08-31 11:09:17 -05:00
Ryan Houdek
d003934b8a
Merge pull request #2929 from Sonicadvance1/aarch64_optimize_gpr_flush
...
Aarch64 optimize gpr flush
2015-08-31 10:55:45 -05:00
Ryan Houdek
8bf332cf08
[AArch64] Optimize GPR cache flushing.
...
If we are flushing multiple sequential guest GPRs then we can store two in a single STP instruction.
Ikaruga does this quite a bit in their blocks where they do an lmw at the very end and then we have to flush them all.
Typically cuts 16 STR instructions down to 8 STP instructions there.
2015-08-30 23:07:12 -05:00
Ryan Houdek
f2c17436ab
[AArch64] Fix issue in emitter.
...
Loadstore pairs support only signed offsets, not unsigned.
2015-08-30 23:05:59 -05:00
Scott Mansell
368867dba0
Merge pull request #2922 from aserna3/SDBlock
...
Implemented ability to block writes to the SD card
2015-08-31 04:51:50 +12:00
Ryan Houdek
b907576510
[AArch64] Support profiling by cycle counters if they are available to EL0
2015-08-30 10:25:16 -05:00
Ryan Houdek
5110574c1f
Merge pull request #2921 from Sonicadvance1/aarch64_optimize_lmw
...
[AArch64] Optimize lmw.
2015-08-30 10:23:57 -05:00
Anthony Serna
0390bd61df
Fixed introduced compiler warning in Linux
2015-08-29 20:41:59 -07:00
Lioncash
e0aabc5f6c
MemcardManager: Remove trivial explicit delete and new
...
Also gets rid of pointer casting.
2015-08-29 22:46:18 -04:00
Lioncash
d58550e874
MemcardManager: Minor cleanup of header code
2015-08-29 05:19:51 -04:00
Lioncash
0f3e4c50e1
MemcardManager: Correct class indentation
2015-08-29 05:13:20 -04:00
Lioncash
072150589e
Merge pull request #2924 from lioncash/scope
...
Hash: Narrow define scope
2015-08-29 03:12:18 -04:00
Lioncash
e7c7dcaa1f
Merge pull request #2923 from lioncash/override
...
Jit_Util: Add missing override specifiers
2015-08-29 03:12:11 -04:00
Lioncash
310bb46967
Hash: Narrow define scope
2015-08-29 02:57:35 -04:00
Markus Wick
a16669231a
Merge pull request #2917 from Sonicadvance1/android_fix_sgs6
...
[Android] Workaround Mali driver issue on the Samsung Galaxy S6.
2015-08-29 08:56:32 +02:00
Lioncash
df19f11cb9
Jit_Util: Add missing override specifiers
2015-08-29 00:30:18 -04:00
Anthony Serna
db7fe9507e
Implemented ability to block writes to the SD card
...
Renamed variable to be more accurate
2015-08-28 17:32:29 -07:00
Markus Wick
6004ecc521
Merge pull request #2920 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-08-28 23:08:24 +02:00
Ryan Houdek
8d61706440
[AArch64] Optimize lmw.
...
This instruction is fairly heavily used by Ikaruga to load a bunch of registers from the stack.
In particular at the start of the second stage is a block that takes up ~20% CPU time that includes a usage of lmw to load half of the guest
registers.
Basic thing optimized here is changing from a single 32bit LDR to potentially a single 128bit LDR.
a single 32bit LDR is fairly slow, so we can optimize a few ways.
If we have four or more registers to load, do a 64bit LDP in to two host registers, byteswap, and then move the high 32bits of the host registers in
to the correct mapped guest register locations.
If we have two registers to load then do a 32bit LDP which will load two guest registers in a single instruction.
and then if we have only one register left to load, load it as before.
This saves quite a bit of cycles since the Cortex-A57 and A72's LDR instruction takes a few cycles.
Each 32bit LDR takes 4 cycles latency, plus 1 cycle for post-index(which typically happens in parallel.
Both the 32bit and 64bit LDP take the same amount of latency.
So we are improving latencies and reducing code bloat here.
2015-08-28 14:40:30 -05:00
Ryan Houdek
2c3fa8da28
[AArch64] Fix a bug in the register caches.
...
This is a bug that crops if BindToRegister() is called multiple times in a row without a R() function call between them.
How to reproduce the bug:
1) Have a completely filled cache with no host register remaining
2) Call BindToRegister() with different guest registers
3) Don't call R() between the BindToRegister() calls.
This issue typically wouldn't be seen for a couple of reasons. Typically we have /plenty/ of registers in the cache, and in most cases we only call
BindToRegister() once per instruction. In the off chance that it is called multiple times, it wouldn't update the last used counts and would flush the
same register as the previous call to it.
2015-08-28 14:36:14 -05:00
Rohit Nirmal
6252d2d71a
Fix building with PCH disabled.
2015-08-28 14:13:28 -05:00
Lioncash
a6bd2fea28
Merge pull request #2919 from lioncash/vec
...
Vec3: Remove a memset call on the this pointer.
2015-08-28 15:05:02 -04:00
Lioncash
e787501528
Vec3: Simplify operator== code
2015-08-28 14:46:40 -04:00
Markus Wick
b11de5bddb
Merge pull request #2918 from lioncash/memcpy
...
DataReader: Get rid of pointer casts
2015-08-28 20:45:15 +02:00
Lioncash
d86d5fae9f
Merge pull request #2909 from aserna3/DollsAndElves
...
Implemented .elf and .dol support in gamelist
2015-08-28 14:28:09 -04:00
Lioncash
bb27f80a65
Vec3: Remove a memset call on the this pointer
2015-08-28 14:10:07 -04:00
Anthony Serna
faedf1bc5c
Implemented .elf and .dol support in gamelist
...
Fixed a TON of structuring, formatting.
removed README.txt files from themes at MaJoR's request
Added platform icon for ELFs/DOLs
2015-08-28 11:10:03 -07:00
Ryan Houdek
01db003779
[Android] Workaround Mali driver issue on the Samsung Galaxy S6.
...
Samsung updated the video drivers on the SGS6 which introduced a bug when disabling vsync.
Both the driver versions are r5p0, but the md5sums of the blob differ.
To work around the issue, make sure to never disable vsync by calling eglSwapInterval.
We can't actually determine the driver version on Android yet.
So until the driver version lands that displays the driver version string in the GL_VERSION string
we will need to keep this workaround enabled at all times, which is a bit annoying.
Current mali drivers return the video driver version in one of the EGL strings you can query.
The issue with that is that Android eats all of those strings, so we can't query it.
2015-08-28 09:02:46 -05:00
flacs
d373dd372d
Merge pull request #2913 from Tilka/fix_warning_fix
...
AVIDump: fix -Wsign-compare warning
2015-08-27 23:50:34 +02:00
Lioncash
4fb3a8b78d
DataReader: Get rid of pointer casts
2015-08-27 13:43:04 -04:00
Lioncash
7fa0ecd046
Main: Make the wxLocale class member a unique_ptr
2015-08-27 08:36:01 -04:00
Lioncash
14ae1d23cf
Main: Move unofficial build check to its own function
...
Removes the need to explicitly call exit.
2015-08-27 08:35:51 -04:00
Lioncash
aafae49d24
Main: Move commandline parsing handling to appropriate override functions
2015-08-27 08:29:53 -04:00
Ryan Houdek
d9b18862f3
Merge pull request #2908 from Sonicadvance1/gles_3_2
...
Support OpenGL ES 3.2.
2015-08-26 18:19:17 -05:00
Ryan Houdek
447b1b09e3
Support OpenGL ES 3.2.
...
OpenGL ES 3.2 adds a few things we care about supporting in core. In particular:
- GL_{ARB,EXT,OES}_draw_elements_base_vertex
- KHR_Debug
- Sample Shading
- GL_{ARB,EXT,OES,NV}_copy_image
- Geometry shaders
- Geometry shader instancing (If they support GL_{EXT,OES}_geometry_point_size)
Nvidia was the first to release an OpenGL ES 3.2 driver which I uesd to test this on.
This also enables GS Instancing on GLES 3.1 hardware if it supports all of the required extensions.
2015-08-26 17:57:51 -05:00
Ryan Houdek
6d25c469cf
Merge pull request #2915 from degasus/arm
...
JitArm64: Implement rlwnmx
2015-08-26 15:52:37 -05:00
Markus Wick
54f882704a
Merge pull request #2914 from JosJuice/fix-volumedirectory
...
Fix VolumeDirectory
2015-08-26 22:12:23 +02:00
degasus
e516d4ef59
JitArm64: Implement rlwnmx
2015-08-26 21:59:10 +02:00
JosJuice
d276d1abbb
Fix VolumeDirectory
...
Fixes the regression from a225426
and clarifies a related comment.
2015-08-26 19:21:09 +02:00
Markus Wick
3e9dac3910
Merge pull request #2810 from Sonicadvance1/disassembler_improv
...
Have the disassembler show the PC next to host instructions.
2015-08-26 17:01:39 +02:00
flacs
99e88a7af7
Merge pull request #2887 from Tilka/swap
...
Jit64: some byte-swapping changes
2015-08-26 16:43:45 +02:00
flacs
eb6ac641be
Merge pull request #2906 from Tilka/fpscr
...
Jit64: fix bugs in the FPSCR instructions
2015-08-26 16:43:28 +02:00
Tillmann Karras
6ec4bdf862
CoreTiming: remove unused functions
2015-08-26 15:40:15 +02:00
Tillmann Karras
0f4861cac2
CoreTiming: make loops easier to read
2015-08-26 14:53:58 +02:00
Ryan Houdek
ca51f1a4f6
[AArch64] Optimize paired registers being used in double operations.
...
In particular this optimizes the case where a 32bit float is loaded via lfs, and then used in double operations.
This happens very often in Gekko based code because the best way to load a 32bit value as a double is lfs since it automatically turns in to a double value.
There are a few other implications of this in practice as well. Like if both of the paired registers are loaded via psq_l and then used in double
operations it would be improved.
Also if we implement a double register we've got to be careful to make sure we understand if it is in "lower" register or the full 128bit register.
2015-08-26 05:50:04 -05:00
Markus Wick
5716d18d10
Merge pull request #2910 from Sonicadvance1/aarch64_regcache_fix
...
[AArch64] Fix a bug in the register cache.
2015-08-26 08:31:24 +02:00
Ryan Houdek
4f5f29a0fb
[AArch64] Fix a bug in the register cache.
...
If the register was only a lower pair and it needed the full register, then we need to load the high 64bits.
Which we weren't doing before.
2015-08-26 01:21:43 -05:00
Markus Wick
43d17cb360
Merge pull request #2904 from Sonicadvance1/aarch64_more_inst
...
[AArch64] Implement fdivx/fdivsx/mfcr/mtcrf.
2015-08-26 07:48:24 +02:00
Tillmann Karras
ee4a12ffe2
Jit64: some byte-swapping changes
2015-08-26 05:41:18 +02:00
flacs
6015e2d812
Merge pull request #2900 from aroulin/x64emitter-rcp
...
x64Emitter: add RCPPS and RCPSS SSE instructions
2015-08-26 05:05:53 +02:00
Ryan Houdek
6729a36d8d
[AArch64] Set BindToRegister's to_load correctly for double FP ops.
2015-08-25 21:29:27 -05:00
Lioncash
db4f692482
GCMemcard: Clean up memcard logging messages.
2015-08-25 21:55:52 -04:00
Tillmann Karras
ee50a2ef28
Jit64: fix bugs in the FPSCR instructions
2015-08-25 23:48:14 +02:00
Markus Wick
bd08c1b01a
Merge pull request #2901 from Sonicadvance1/aarch64_stfiwx
...
[AArch64] Implement stfiwx
2015-08-25 22:47:39 +02:00
Markus Wick
24cb650078
Merge pull request #2663 from degasus/dcbx
...
Jit64: dcbf + dcbi
2015-08-25 12:16:56 +02:00
Ryan Houdek
0666c0750b
[AArch64] Implement fdivx/fdivsx/mfcr/mtcrf.
...
Gets the povray bench to better times than the Wii.
2015-08-24 15:32:19 -05:00
Ryan Houdek
d96be9250c
Merge pull request #2899 from Sonicadvance1/aarch64_fctiwzx
...
[AArch64] Implement fctiwzx
2015-08-24 13:22:27 -05:00
Ryan Houdek
cd03b8baf6
Merge pull request #2895 from Sonicadvance1/qualcomm_workaround_gles31
...
Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.
2015-08-24 13:22:12 -05:00
degasus
0d92c8fb89
Jit64: Optimize dcbx
2015-08-24 18:33:23 +02:00
Tillmann Karras
ac84d6d0fa
Jit64: some cache flush changes
...
- dynamically allocate third scratch register instead of forcing ECX
- use LEA as 3 operand add if possible
- use BT,JC instead of SHR,TEST,JNZ
- merge MOV,TEST
- use appropriate ABI function (no asm change)
2015-08-24 18:33:23 +02:00
degasus
6f34b27323
Jit64: implement dcbf + dcbi
2015-08-24 18:33:19 +02:00
Markus Wick
0ad6fa8f62
Merge pull request #2903 from lioncash/cast
...
Memmap: Remove pointer casts
2015-08-24 15:42:56 +02:00
Lioncash
abd3b124be
Memmap: Remove pointer casts
2015-08-24 09:07:09 -04:00
Tillmann Karras
33eefc2d86
Jit64: quickfix for mtfsfx
2015-08-24 12:12:31 +02:00
Ryan Houdek
d3176fe22a
[AArch64] Implement stfiwx
...
Improves povray performance by ~4%
2015-08-24 01:10:55 -05:00
Ryan Houdek
80fa9af9b1
Merge pull request #2898 from degasus/linking
...
JitArm64: Faster linking of continuous blocks
2015-08-23 18:09:02 -05:00
degasus
7320d519b4
JitArm64: Implement srwx
2015-08-23 23:29:48 +02:00
degasus
4722a69fd0
JitArm64: Implement divwux
2015-08-23 23:29:18 +02:00
degasus
9e4366963c
JitArm64: Implement subfic
2015-08-23 23:29:07 +02:00
degasus
95be17772f
JitArm64: Implement addex
2015-08-23 23:29:02 +02:00
degasus
025e7c835a
JitArm64: Implement subfcx
2015-08-23 23:28:28 +02:00
degasus
550a90e691
JitArm64: Implement subfex
2015-08-23 23:28:24 +02:00
Ryan Houdek
561744819e
[AArch64] Implement fctiwzx
...
Improves the povray benchmark time by 5.6%
2015-08-23 15:35:18 -05:00
Ryan Houdek
4fa23abbe1
[AArch64] Implement MOVI and ORR(imm) in the NEON emitter.
2015-08-23 15:34:53 -05:00
aroulin
0a0e012fab
x64Emitter: add RCPPS and RCPSS SSE instructions
2015-08-23 16:59:27 +02:00
degasus
77a6798094
JitArm64: Faster linking of continuous blocks
2015-08-23 14:44:23 +02:00
Markus Wick
73067b1ef1
Merge pull request #2888 from degasus/jit64
...
Jit64: Faster linking of continuous blocks
2015-08-23 13:24:15 +02:00
Lioncash
2a1abf8dd6
Merge pull request #2896 from lioncash/using
...
Core: Minor CPU core typedef cleanup
2015-08-22 19:00:23 -04:00
Ryan Houdek
cc3fb7e7b4
Merge pull request #2883 from degasus/master
...
Profiler: Sort output by total time
2015-08-22 17:52:54 -05:00
Markus Wick
8b881a6c34
Merge pull request #2891 from Sonicadvance1/aarch64_implement_crxxx
...
[AArch64] Implement the cr instructions
2015-08-23 00:44:47 +02:00
Lioncash
fdafa5d063
Core: Move includes out of instruction table headers
...
These aren't necessary (and cause unnecessary indirect inclusions).
2015-08-22 14:15:02 -04:00
Lioncash
a248a4d2ce
Jit64/JitIL: Relocate instruction typedefs
2015-08-22 14:15:00 -04:00
Lioncash
c56717e058
Core: Shorten the _interpreterInstruction typedef
...
The class itself already acts as a namespace trailer, so '_interpreter'
isn't necessary. This also gets rid of a duplicate typedef in the
Interpreter_Tables.
2015-08-22 14:14:49 -04:00
Ryan Houdek
b4e4a4cef4
Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.
...
Their new driver that supports GLES3.1 + AEP has issues with it.
At the very least they don't implement all of the geometry shader features fully which causes shader linker issues when we attempt to use them.
I don't have a device so I can't fully test, so until I do I'm going to blanket disable the whole thing.
2015-08-22 09:12:19 -05:00
Markus Wick
a39c0910c4
Merge pull request #2893 from Sonicadvance1/aarch64_memory_base_register
...
[AArch64] Use a register as a constant for the memory base.
2015-08-22 15:41:57 +02:00
Ryan Houdek
dba579c52f
[AArch64] Use a register as a constant for the memory base.
...
Removes a /lot/ of redundant movk operations in fastmem loadstores.
Improves performance of the povray bench by ~5%
2015-08-22 08:36:34 -05:00
Markus Wick
3f5ff98c1b
Merge pull request #2890 from lioncash/ptr
...
x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
2015-08-22 10:09:28 +02:00
Markus Wick
2d505bc2a6
Merge pull request #2894 from Sonicadvance1/no_more_eaten_canary
...
Fix the shader overrunning our max shader size.
2015-08-22 10:08:14 +02:00
Markus Wick
c2f38f1d16
Merge pull request #2892 from Sonicadvance1/aarch64_frsp
...
[AArch64] Implement frspx
2015-08-22 09:44:14 +02:00
Ryan Houdek
3242e1a617
Fix the shader overrunning our max shader size.
...
The Star Wars games really push the hardware to its limits, which can cause the shaders that are produced to be 18kb or more.
Double our maximum shader size to compensate.
Fixes issue #8860
2015-08-22 01:01:03 -05:00
Ryan Houdek
ce32b76be3
[AArch64] Implement frspx
...
Improves performance in povray bench by 2%
2015-08-22 00:35:30 -05:00
Ryan Houdek
d74eb0ea58
[AArch64] Fix the bugs in the cr instructions
...
Makes it a bit more efficient in the process.
2015-08-21 23:24:29 -05:00
degasus
e9ade0abe1
JitArm64: implement crXXX
2015-08-21 20:49:08 -05:00
Lioncash
a69755d9ee
x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
...
This also silences quite a few ubsan asserts from firing when the emitter is being used.
2015-08-21 18:09:48 -04:00
flacs
95d958c03d
Merge pull request #2889 from lioncash/interp
...
Interpreter: Use std::isnan instead of IsNAN
2015-08-21 21:43:08 +02:00
Lioncash
caec42135d
MathUtil: Remove IsNAN and IsINF
...
These aren't necessary, since the stdlib provides equivalents.
2015-08-21 15:05:43 -04:00
flacs
bb7f3d1822
Merge pull request #2867 from Tilka/mtspr_hid0
...
Jit64: implement HID0 case of mtspr
2015-08-21 21:04:35 +02:00
flacs
01aea965ba
Merge pull request #2864 from Tilka/fpscr
...
Jit64: implement FPSCR related instructions
2015-08-21 21:04:20 +02:00
Lioncash
18d658df1f
Interpreter_FloatingPoint: Use std::isnan instead of IsNAN
...
Same thing, except one is part of the stdlib.
2015-08-21 15:04:03 -04:00
degasus
78aa01e06e
Jit64: Faster linking of continuous blocks
...
We compile the blocks as they are executed, so it's common
to link them continuously. We end with calling JMP after every
block, but often just with a distance of 0.
So just emitting NOPs instead also "calls" the next block, but
easier for the CPU.
2015-08-21 17:41:53 +02:00
Markus Wick
c325c310d6
Merge pull request #2884 from lioncash/emitter
...
x64Emitter: Minor cleanup
2015-08-21 13:03:51 +02:00
Ryan Houdek
5f628749ff
Merge pull request #2886 from Sonicadvance1/aarch64_faster_lfd
...
[AArch64] Optimize lfd instructions if possible.
2015-08-21 05:38:53 -05:00
Ryan Houdek
df53b37253
[AArch64] Optimize lfd instructions if possible.
...
If we are going to be using lfd, then chances are it is going to be used in double heavy areas of code.
If we only need to load the lower register, then we should also not worry about having to insert in to the low 64bits of the guest register.
So add a new flag to the backpatching to handle lfd to directly to the destination register.
This gives ~3% performance improvement to Povray.
2015-08-21 04:31:54 -05:00
Markus Wick
4f45d71840
Merge pull request #2760 from Sonicadvance1/aarch64_fcmp
...
[AArch64] Implement fcmp{u,o}
2015-08-21 11:03:20 +02:00
Tillmann Karras
39ced2a2d7
AVIDump: fix -Wsign-compare warning
...
Cast the other side of the comparison to avoid a warning with newer
ffmpeg/libav versions (cb3591e69738c808d26ba15eb02414fedfcd91cc).
2015-08-21 10:26:35 +02:00
Markus Wick
6cb87a9227
Merge pull request #2837 from Sonicadvance1/aarch64_faster_nonpaired
...
[AArch64] Optimize cases when an FPR is only used for non-paired ops.
2015-08-21 09:51:45 +02:00
Jeffrey Pfau
65ee5a1d36
DolphinWX: Finish removing bandaid from 704f787
2015-08-20 22:39:24 -07:00
Ryan Houdek
7ce4c3138e
[AArch64] Optimize cases when an FPR is only used for non-paired ops.
2015-08-20 23:36:29 -05:00
Lioncash
a59f00a5e4
x64Emitter: Remove unused code
2015-08-20 23:05:20 -04:00
Lioncash
b903921b14
x64Emitter: Make WriteModRM and WriteSIB private
...
These shouldn't be public.
2015-08-20 19:29:40 -04:00
degasus
17932935d9
Profiler: Sort output by total time
2015-08-20 11:50:43 +02:00
Lioncash
f481a306c2
Merge pull request #2882 from lioncash/namespace
...
Jit: Remove unnecessary namespace prefixes
2015-08-20 05:38:29 -04:00
Lioncash
95c57fcec1
Jit: Remove unnecessary namespace prefixes
2015-08-20 05:20:19 -04:00
Markus Wick
cb264df64c
Merge pull request #2874 from barat/master
...
VideoCommon: Allow more Ram for HiresTexture if system memory is over 4GB
2015-08-20 11:08:42 +02:00
Lioncash
822cf2bcbf
IniFile: Mark getter functions as const
2015-08-19 22:27:18 -04:00
Lioncash
9e9a293a85
Frame/TASInputDlg: Remove unused functions
2015-08-19 20:36:16 -04:00
Lioncash
5b86e7335f
Merge pull request #2795 from ddcc/master
...
Fix some compilation warnings
2015-08-19 17:40:04 -04:00
Bartosz Telesiński
a52aaf22ba
VideoCommon: Allow more Ram for HiresTexture if system memory is over 4GB
2015-08-19 23:13:09 +02:00
flacs
b0c9d73465
Merge pull request #2842 from Tilka/bmi2_flags
...
x64Emitter: don't check flags for most BMI2 ops
2015-08-19 21:38:09 +02:00
Dominic Chen
09714f86c3
Fix some compilation warnings
2015-08-19 11:07:54 -04:00
degasus
896a02b3a8
DSP HLE: Remove timing informations from ucodes
...
On HLE, we don't emulate the timings on HLE, so there is also no need
to setup periods callbacks.
2015-08-19 16:20:17 +02:00
degasus
7277eb0e6c
AX-HLE: Call HLE on mailbox write
...
It was done on Update() which was called exactly every 5ms.
But the game is allowed to use the DSP more often, eg to generate 48kHz audio.
2015-08-19 16:19:06 +02:00
Markus Wick
bdbe723d6e
Merge pull request #2870 from Sonicadvance1/GLInterface_Fix
...
Fix a memory leak in the EGL GLInterface.
2015-08-19 11:14:25 +02:00
Lioncash
291f857b0e
Merge pull request #2859 from lioncash/netplay
...
NetPlay: Minor cleanup
2015-08-19 04:51:28 -04:00
Tillmann Karras
0f2c656687
Jit64: implement FPSCR related instructions
2015-08-18 18:12:32 +02:00
Ryan Houdek
3f1055de94
Fix a memory leak in the EGL GLInterface.
2015-08-18 08:26:45 -05:00
Tillmann Karras
415ad94dbe
Interpreter: fix undefined bits of mffs
...
Lioncash tested this on hardware.
2015-08-18 15:07:14 +02:00
Lioncash
68c0ec281b
NetPlayClient: Correctly free packet data
2015-08-18 08:32:58 -04:00
Lioncash
761e087e52
NetWindow: Remove translation marker from empty string
2015-08-17 21:56:52 -04:00
Lioncash
65adf76698
NetWindow: non-ugly way to check for window focus
2015-08-17 21:56:51 -04:00
Lioncash
2b4a249dea
NetWindow: Replace old wx event binding types
2015-08-17 21:56:50 -04:00
Lioncash
ca0b9481ea
ChangeGameDialog: Internally set the chosen game name
...
Passing in a reference to an empty string is unnecessary and
overcomplicates design.
2015-08-17 21:56:48 -04:00
Lioncash
af35f38491
NetWindow: Minor simplifications
2015-08-17 21:56:46 -04:00
Lioncash
11f3ded296
NetPlay: Return mapping arrays and player list vectors directly
...
Simplifies pad map dialog initialization
2015-08-17 21:56:25 -04:00
Ryan Houdek
4baaa3755e
Merge pull request #2840 from zeroZshadow/master
...
Ignore all writes to BBA_TXFIFOCNT
2015-08-17 10:38:00 -05:00
Markus Wick
ff95fa8a6d
Merge pull request #2861 from lioncash/param
...
VideoCommon: Remove unused parameters
2015-08-17 15:02:44 +02:00
Markus Wick
239ad678f1
Merge pull request #2855 from Armada651/revert-clamp
...
Revert "VideoCommon: Clamp integer conversions."
2015-08-17 15:01:27 +02:00
Tillmann Karras
1c78c7b864
Jit64: implement HID0 case of mtspr
2015-08-17 13:31:57 +02:00
Pierre Bourdon
58b4b7edea
Merge pull request #2863 from Tilka/fallback
...
Jit64: load PC only once after fallbacks
2015-08-17 10:29:54 +02:00
Tillmann Karras
fbdc20ac37
Jit64: load PC only once after fallbacks
2015-08-17 06:05:10 +02:00
Tillmann Karras
c4a6612b01
PowerPC: fix typo in FPSCR comment
2015-08-17 06:03:11 +02:00
Tillmann Karras
a9447a8606
PowerPC: drop instructions not supported by GC/Wii
2015-08-17 06:03:11 +02:00
Lioncash
8e17c710f3
TextureConversionShader: Remove an unused parameter
2015-08-16 21:10:54 -04:00
Lioncash
0e41b973c7
VertexShaderManager: Remove unused parameter
2015-08-16 21:07:10 -04:00
Lioncash
a824f6a74c
Debugger: Remove unused instance variables
2015-08-16 18:30:07 -04:00
Lioncash
c593bd226c
Frame: Remove an unused enum and array
2015-08-16 18:24:58 -04:00
Lioncash
7aa76a84ef
DolphinWX: Fix memory leaks occurring in ISOProperties
...
This would only occur for Wii discs. While the tree data itself would be deleted, the allocated contents of it were not.
2015-08-16 05:40:07 -04:00
Lioncash
b1af2a6bbc
NetPlay: Use std::array for the pad mappings
2015-08-16 00:08:09 -04:00
Lioncash
e3ffb2dd16
NetPlayProto: Minor cleanup
2015-08-16 00:00:59 -04:00
Markus Wick
b8a35f6996
Merge pull request #2856 from mathieui/netplay-free
...
[netplay] Fix a crash
2015-08-15 23:13:18 +02:00
Markus Wick
b3045f9664
Merge pull request #2852 from aserna3/master
...
Changed GC adapter "Direct Connect" to false by default
2015-08-15 21:25:23 +02:00
Markus Wick
e60018abd4
Merge pull request #2854 from Tilka/valgrind
...
Fix some small stuff found with Valgrind
2015-08-15 20:52:12 +02:00
Ryan Houdek
909ab23df5
Merge pull request #2853 from degasus/arm
...
JitArm64: Fix jit clearing
2015-08-15 13:50:36 -05:00
Markus Wick
b5a5883792
Merge pull request #2851 from JosJuice/unknown-instruction
...
Restore old assert message for unknown instruction
2015-08-15 20:10:16 +02:00
Markus Wick
3469694b46
Merge pull request #2676 from Stevoisiak/SpellingCorrections
...
Minor spelling corrections
2015-08-15 18:36:56 +02:00
zeroZshadow
84764db3b2
Rewrite RecvStart error checking as suggested by shuffle2
2015-08-15 16:46:37 +02:00
Jules Blok
7e266b080f
TextureCache: Remove redundant floor().
2015-08-15 15:30:50 +02:00
mathieui
2420004af8
[Netplay] Always set a playerid
...
And don’t blindly dereference a pointer.
2015-08-15 15:12:20 +02:00
Jules Blok
b01ca1794a
Revert "VideoCommon: Clamp integer conversions."
...
This reverts commit 0f2c72f0f8
.
2015-08-15 13:50:43 +02:00
Tillmann Karras
b0cc02658b
CachedInterpreter: avoid uninitialized value
...
(The CachedInterpreter backend does not support block linking yet.)
2015-08-15 13:01:26 +02:00
Tillmann Karras
b3ff66dc7a
evdev: don't pass null path to the kernel
2015-08-15 12:51:34 +02:00
Tillmann Karras
0b73a9ed25
PulseAudio: fix small memleak
2015-08-15 12:51:11 +02:00
degasus
9bfff0d461
JitArm64: Fix jit clearing
...
We have to reset m_lastCacheFlushEnd on clearing.
2015-08-15 11:41:01 +02:00
Anthony Serna
b6da5490c1
Changed GC adapter "Direct Connect" to false by default
2015-08-15 02:09:47 -07:00
JosJuice
c49074742c
Restore old assert message for unknown instruction
...
The assert(0) that was introduced in PR #2811 is not user friendly
since it has no explanation at all about what happened. Regular users
probably won't think of looking at the log to get more information.
2015-08-15 10:00:49 +02:00
flacs
e28fa1588f
Merge pull request #2850 from Tilka/alloc_order
...
Jit64: clean up GetAllocationOrder()
2015-08-15 09:47:56 +02:00
Lioncash
70e91af405
Merge pull request #2834 from endrift/tasinputdlg-threading
...
DolphinWX: Ensure TASInputDlg only gets modified on the main thread
2015-08-15 02:45:13 -04:00
Tillmann Karras
dd5cc34951
Jit64: clean up GetAllocationOrder()
2015-08-15 07:25:14 +02:00
flacs
d8d62336b5
Merge pull request #2849 from lioncash/cond
...
JitInterface: Fix null checking in GetProfileResults
2015-08-15 00:59:19 +02:00
Lioncash
8db43501d5
JitInterface: Fix null checking in GetProfileResults
...
Technically a null pointer dereference can occur here.
2015-08-14 18:51:54 -04:00
Tillmann Karras
022286fb90
x64Emitter: don't check flags for most BMI2 ops
...
With the exception of BZHI, BMI2 instructions don't affect flags, so
don't check if they're locked.
2015-08-14 23:39:17 +02:00
Tillmann Karras
e5a2334744
Jit64: make use of ANDN again
...
This time, make sure not to use it with immediates.
2015-08-14 21:25:52 +02:00
Tillmann Karras
5e9fe4cd13
x64Emitter: check for immediates in BMI ops
2015-08-14 21:25:41 +02:00
Ryan Houdek
3bc5505272
Merge pull request #2814 from Sonicadvance1/aarch64_faster_fastmem
...
[AArch64] Banish slowmem operations to farcode.
2015-08-14 12:03:46 -05:00
Ryan Houdek
f76a30c9fd
Merge pull request #2845 from degasus/arm
...
JitArm64: Implement dcbt
2015-08-14 12:03:25 -05:00
degasus
715802d5aa
JitArm64: Move all pointers into the map
...
And cleanup all of the old code for sharing and generating this pointers.
2015-08-14 11:24:11 -05:00
degasus
878f919f63
JitArm64: Fastmem: fixup map & lookup
2015-08-14 11:24:03 -05:00
flacs
9ef349181e
Revert "Jit64: use BMI1's ANDN for andcx"
2015-08-14 18:10:07 +02:00
Pierre Bourdon
86c28bfac6
Bump save state version.
2015-08-14 16:17:28 +02:00
Pierre Bourdon
2d5d203be8
ZeldaHLE: Add UCode version for Pikmin 1 PAL.
2015-08-14 16:01:36 +02:00
Pierre Bourdon
18d0f15885
ZeldaHLE: Fix the AFC remaining samples logic on looping.
2015-08-14 16:01:36 +02:00
Pierre Bourdon
9105a76eb1
ZeldaHLE: Comment on the differences between FSA/ZTP UCodes.
2015-08-14 16:01:36 +02:00
Pierre Bourdon
fcbed7483d
ZeldaHLE: Properly read remaining AFC samples when a whole frame is available.
2015-08-14 16:01:36 +02:00
Pierre Bourdon
a602466e4f
ZeldaHLE: Implement patterns 2/3 automatic regeneration.
2015-08-14 16:01:35 +02:00
Pierre Bourdon
dd1cb88e9a
ZeldaHLE: Add new UCode version for Pikmin 1/2 New Play Control
2015-08-14 16:01:35 +02:00
Pierre Bourdon
c6c0f69c6b
ZeldaHLE: really fix the constant pattern variable step computation.
...
This time tested by comparing pattern indexes across LLE and HLE with the same
inputs. Matches on the 3-4 test cases I made.
2015-08-14 16:01:35 +02:00
Pierre Bourdon
fddb3f0d3c
ZeldaHLE: fix the constant pattern variable step computation.
2015-08-14 16:01:35 +02:00
Pierre Bourdon
090723167f
ZeldaHLE: Implement constant patterns with variable step (sample source 0A).
2015-08-14 16:01:35 +02:00
Pierre Bourdon
fbe727b0bb
ZeldaHLE: Support GBA crypto through command 0C. Reuses the pre-existing GBA crypto code from the separate UCode.
2015-08-14 16:01:35 +02:00
Pierre Bourdon
0b1af50316
ZeldaHLE: Initial support for command 0C in both styles implemented by the light protocol. Logs, but doesn't crash anymore.
2015-08-14 16:01:35 +02:00
Pierre Bourdon
32fcd8ec7c
ZeldaHLE: Special case Cmd03 NOP handling to make it clear it shouldn't ever happen on light protocol UCodes.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
bbfa238657
ZeldaHLE: Document that the crashy commands are not actually crashy on light protocol, just never used.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
25430e7923
ZeldaHLE: Add a flag to disable Cmd0D on older UCodes.
...
Shouldn't really matter -- these NOP commands aren't really used, but since it
reads an argument it's probably better to explicitly NOP it for safety.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
8526a4131c
ZeldaHLE: Properly implement light command 03.
...
On at least one version (AC/Pikmin 1 NTSC) it doesn't even send a sync mail and
just reloops to the dispatcher.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
7f7e036a02
ZeldaHLE: Add a missing game to the list of games to look at.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
cdb1022696
Zelda HLE: Add support for the ZTP Wii UCode.
2015-08-14 16:01:34 +02:00
Pierre Bourdon
5f61ab3e21
Zelda HLE: Update the CRC to games mapping (documentation only).
2015-08-14 16:01:33 +02:00
Pierre Bourdon
addb5cb887
Zelda HLE: Support the per-frame sync protocol used by SMS.
...
Didn't test if SMS sounds right (travelling with no headphones \o/) but the
waveform looks ok and the mails are flowing as expected.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
89037781e0
Zelda HLE: Make the implementation less strict for recoverable errors.
...
It kind of sucks that we don't emulate some behaviors properly, but there is
very little ROI for some of these features and I'm not going to spend time
implementing them any time soon. Making the PanicAlerts optional allows for
more testing of the core features on more games while "just" breaking less
important features like reverb.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
837b8041c0
Zelda HLE: Only alert for mixing into back buffers for recent UCode versions.
...
On older versions there is no such concept of a "back buffer" since positional
audio is not supported. These buffers are just used for temp mixing, and while
it would be really nice if we could support more of that inter-buffer mixing
(TODO :) ) it does not warrant a PanicAlert at this time.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
840a4157b0
Zelda HLE: Properly implement LQ AFC decoding.
...
Typos and stupid mistakes + untested code = dirty Git history.
2015-08-14 16:01:33 +02:00
Pierre Bourdon
82689677d9
Zelda HLE: Implement LQ AFC decoding (samples source 0005).
2015-08-14 16:01:33 +02:00
Pierre Bourdon
b3a327f02b
Zelda HLE: Implement sample source 3.
...
"Square" wave at a 0.25 duty cycle (25% up 75% down).
2015-08-14 16:01:32 +02:00
Pierre Bourdon
3c2b22bc09
Zelda HLE: Add basic support for Luigi's Mansion.
...
Fails ingame because it mixes to some buffers that are considered the back
buffers for Dolby games. That check might need to be less restrictive for games
that don't use Dolby mixing.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
a0c318454d
Zelda HLE: Log the UCode version being used (CRC/flags).
...
Also tidy up the versions list a bit.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
2e72c11025
Zelda HLE: Add support for the Pikmin 1 NTSC version of the UCode.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
a8810e8778
Zelda HLE: Add support for the Zelda: FSA UCode.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
01ab40fc6e
Zelda HLE: NTSC IPL provides the volume stepping explicitly.
...
Support that through a new behavior flag. Now the only remaining known bug in
the NTSC IPL is the reverb not fading out.
2015-08-14 16:01:32 +02:00
Pierre Bourdon
43882f3e6e
Zelda HLE: Handle the smaller VPBs used by the NTSC IPL.
...
Damn you, Nintendo.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
1807c113b5
Zelda HLE: Support both NTSC and PAL IPL.
...
Add a flag for UCodes that only have four non-Dolby mixing destinations
(instead of the standard six destinations).
NTSC IPL is still hopelessly broken.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
4ace79024d
Zelda HLE: Add a missing mixing buffer used by GC IPL.
...
Not completely sure what it's used for yet, but TWW has references to it so
I'll get to it at some point.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
8c85a8c8d9
Zelda HLE: Fix reverb in the GC IPL.
...
Adds a missing destination buffer, and support post-filtering.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
13ea54628d
Zelda HLE: Add support for the light protocol.
...
Used by a few titles (Luigi's Mansion, Animal Crossing) as well as the GameCube
IPL/BIOS.
Note that the IPL does not work yet because it mixes to unknown buffers.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
c033395e28
Zelda HLE: Introduce behavior flags to handle UCode version differences.
...
MAKE_DOLBY_LOUDER solves some of the volume issues that were happening in Zelda
Twilight Princess and SMG1.
2015-08-14 16:01:31 +02:00
Pierre Bourdon
8b9b9f033a
Zelda HLE: Fix and genericize PCM ARAM loading functions.
...
Now also handles PCM16, and works for longer sounds. SMG1 main menu outputs
some sensible audio now, though volume seems slightly off.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
0dc5a925b0
Zelda HLE: Add initial support for Wii DAC and SMG1.
...
SMG1 boots but quickly PanicAlerts due to an unimplemented sample source.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
ea1ac5f596
Zelda HLE: Add save state support.
...
Also fix an inconsistency in the spelling of "coeffs".
2015-08-14 16:01:30 +02:00
Pierre Bourdon
bfff0a72df
Zelda HLE: Implement sample sources 4, 7, 11 and 12.
...
Just 4 different versions of the same sample source, using a different constant
pattern uploaded to the DSP during command 01.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
6c61ee6278
Zelda HLE: Initial support for Zelda Twilight Princess (GC)
...
Very close to the TWW version of the UCode, haven't determined any differences
yet (but I'm sure that will come soon). Works well enough to reach ingame
without any errors other than a few volume issues.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
b672788548
Zelda HLE: Skip command words that are not commands.
...
Zelda Twilight Princess (GC) seems to push null words into the command buffer.
The command handler in the UCode ignores initial command mails that do not have
the MSB set.
2015-08-14 16:01:30 +02:00
Pierre Bourdon
9944731516
Zelda HLE: Add reverb emulation.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
c58aece9ad
Zelda HLE: Implement the PCM8 sample source.
...
Reorder some things in the source code to match the sample source definition
order. Add and remove some TODOs.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
58fd39d57a
Zelda HLE: Value-initialize the std::arrays.
...
I was under the wrong impression that std::array's default constructor
performed value initialization. Turns out it does not, so an array of POD will
not be initialized.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
34341af17d
Zelda HLE: Implement saw wave generation (sample source 0001).
...
Fixes issue 7961.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
91fade5e89
Zelda HLE: Properly implement the square wave generation.
...
Zelda TWW magic meter works properly now.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
63712e58fd
Zelda HLE: Convert some ERROR_LOG to PanicAlert.
...
While these are not really unrecoverable errors, while Zelda HLE is in a
testing / development phase it is useful to notice these "unexpected" cases (or
expected without known ways to reproduce) by making them as hard as possible to
ignore.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
2bb3daf027
Zelda HLE: Implement square wave sample source.
...
Also fix Windows build.
2015-08-14 16:01:29 +02:00
Pierre Bourdon
580fe12c5b
Zelda HLE: Implement HQ AFC samples decoding.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
33c29d8aab
ZeldaHLE: fix windows build again
2015-08-14 16:01:28 +02:00
Pierre Bourdon
b62f1ed453
ZeldaHLE: fix windows build
2015-08-14 16:01:28 +02:00
Pierre Bourdon
e35b83fabf
ZeldaHLE: Implement more infrastructure and one sample source.
...
Now renders some of the cutscene audio in Zelda TWW. Most of the work around
sample sources is in a good enough state, even though it is still missing
features like Dolby mixing, IIR, etc.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
d9188f1245
Zelda HLE: Rewrite the control flow.
...
Now accurate control flow for DAC. Voice rendering is not implemented yet, but
framing seems correct. Not expected to work for anything than DAC UCode games.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
d5e177d3f9
INIT UCode: reduce DSP initialization time
...
Push the mail at UCode boot time, not after the first update. This avoids a lot
of crazy busy-looping on the CPU side while waiting for the DSP to be
initialized.
2015-08-14 16:01:28 +02:00
Pierre Bourdon
a770cc0778
DSPHLE MailHandler: Synchronize reads and interrupts
...
This change is meant to solve the following problem: how to translate the
following snippet to DSPHLE:
SendInterruptAndWaitRead(MAIL_A);
SendAndWaitRead(MAIL_B);
SendInterruptAndWaitRead(MAIL_C);
This should cause the following actions on the CPU side:
---> Woken up by interrupt
Reads MAIL_A
Reads MAIL_B
<--- Exits interrupt handler
---> Woken up by interrupt
Reads MAIL_C
<---
But with the current DSPHLE mail support, the following would happen because
the "AndWaitRead" part is not supported:
---> Woken up by interrupt
Reads MAIL_A
Reads MAIL_B
<--- Exits interrupt handler
[Never gets the second interrupt since it was triggered at the same time as
the first one! Misses MAIL_C.]
This changes fixes the issue by storing two values in the mail queue on the DSP
side: the value of the mail itself, and whether a read of that mail should
trigger a DSP interrupt. If nothing is in the queue yet and an interrupt is
requested, just trigger the interrupt. In the present example, the queue will
look like this:
Mail value Interrupt requested
MAIL_A No <-- Interrupt was triggered when
pushing the mail to the queue.
MAIL_B Yes
MAIL_C No
When the CPU will read MAIL_B, this will cause MailHandler to trigger the
interrupt, which will be handled by the CPU when coming back from the exception
handler. MAIL_C is then successfully read.
2015-08-14 16:01:27 +02:00
Pierre Bourdon
8f3302419b
ZeldaHLE: Rip out more code, only keep normal version support and one CRC
2015-08-14 15:21:08 +02:00
Pierre Bourdon
22ec258194
ZeldaHLE: Rip out the whole voice processing code. Still boots games, but no sound at all.
2015-08-14 15:20:29 +02:00
Pierre Bourdon
a92727e862
DSPHLE: Add a config parameter to dump UCode to disk
2015-08-14 15:19:57 +02:00
degasus
fc23380f6b
JitArm64: Implement dcbt
...
This is a 1:1 copy&paste from Jit64.
2015-08-14 14:47:00 +02:00
Tillmann Karras
f9129c0e08
Jit64: use BMI1's ANDN for andcx
2015-08-14 05:51:31 +02:00
zeroZshadow
8925b828aa
Ignore all writes to BBA_TXFIFOCNT
2015-08-13 22:45:29 +02:00
zeroZshadow
798365846d
Improve TAP_Win32 error logging
2015-08-13 18:25:17 +02:00