Commit Graph

7638 Commits

Author SHA1 Message Date
Gregory Hainaut 42783279ff Merge pull request #1020 from ramapcsx2/loading_psx_games_enable
Enable loading psx games by default. Should help fixing PSX support w…
2016-01-17 16:35:55 +01:00
Gregory Hainaut 522ca27243 Merge pull request #1111 from Dokman/ca_ES
Catalan Translation
2016-01-17 16:30:45 +01:00
Gregory Hainaut 254081e3ad Merge pull request #1115 from turtleli/gsdx-ogl-blend
gsdx-ogl: Improve accurate blend sprite draw speed
2016-01-17 15:42:07 +01:00
Jonathan Li 37deeb0d52 gsdx-ogl: Optimise overlap detection algorithm
Vectorise coordinate min/max sorting, and use the ordered runion
instead.
2016-01-16 19:21:56 +00:00
Jonathan Li 14dffa762b gsdx: Add runion_ordered to GSVector
Allows to save a few instructions cycles when xy and zw are already
sorted (min and max rectangle coords).
2016-01-16 19:21:55 +00:00
Jonathan Li 2fc3ef8124 gsdx-ogl: Add sprite overlap statistics to debug messages 2016-01-16 19:21:54 +00:00
Gregory Hainaut 38c548854e Merge branch 'uptr-addr' 2016-01-16 18:34:27 +01:00
ramapcsx2 20c8b89bb7 cdvd: return 0xff instead of 0 on unknown 8 bit reads. improves compatibility with popstarter a bit.
Unfortunately, it then fails to load pops with "loadmodule: fname rom0:UDNL args 5 arg crap:"
2016-01-16 14:36:09 +01:00
Gregory Hainaut 35568f6425 gsdx: disable simd in 64 bits
Let's concentrate first on SSE2

This commit fuses a couple of ifdef
2016-01-16 14:34:00 +01:00
Gregory Hainaut 76230c1305 MTGS: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Gregory Hainaut e23ba2340c core: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Gregory Hainaut 022cd9cd64 gsdx: s/u32 pointer/uptr/ 2016-01-16 14:34:00 +01:00
Gregory Hainaut 6ec7d2c340 x86emitter: ease template stuff 2016-01-16 14:34:00 +01:00
Gregory Hainaut 8c3798e96b core: pointers are 8B on 64 bytes 2016-01-16 14:34:00 +01:00
Gregory Hainaut d623453451 build.sh: automatically configure wx-config on debian system
It is easier to alternate between 32/64 bits build
2016-01-16 14:33:49 +01:00
ramapcsx2 aafa333355 added the profiler to the visual studio solution. also added preliminary cop1 (fpu) tables, ready for implementation 2016-01-15 00:26:52 +01:00
Gregory Hainaut 9bcd9f0a73 cmake: onepad require gtk 2016-01-14 19:26:55 +01:00
Gregory Hainaut a7a8c542f5 Merge pull request #1100 from PCSX2/recompiler-abi-wrapper
Recompiler abi wrapper
2016-01-14 19:21:27 +01:00
Jonathan Li 74ace74d50 gsdx-ogl: Group non-overlapped accurate blend sprite draws
Reduces the number of draw calls and barriers when drawing sprites.
2016-01-13 08:07:53 +00:00
Jonathan Li f3b6829c74 gsdx-ogl: Restart collision detection algorithm for remaining sprites
It's useless on its own, but it prepares for the next commit.
2016-01-13 08:02:42 +00:00
Gregory Hainaut c73d626757 build.sh: separate release/dev/dbg into separated directory
Avoid useless recompilation
2016-01-13 08:58:50 +01:00
Gregory Hainaut 4ac17428ac Merge branch 'EmperorArthur-build_with_spaces' 2016-01-13 08:15:06 +01:00
Gregory Hainaut c8da280a19 Merge branch 'build_with_spaces' of git://github.com/EmperorArthur/pcsx2 into EmperorArthur-build_with_spaces
Conflicts:
	build.sh
2016-01-13 08:14:46 +01:00
Gregory Hainaut d4b30620a7 pcsx2: avoid a segmentation fault due to previous hack 2016-01-12 19:35:23 +01:00
Gregory Hainaut 46a2f6ed24 interpreter: fix a subtle bug in a QFSRV
Math is correct but a shift of 64 bits is illegal in x86 because the cl register is masked

From the x86 spec:
    The destination operand can be a register or a memory location. The count operand can be an immediate value or
    the CL register. The count is masked to 5 bits (or 6 bits if in 64-bit mode and REX.W is used). The count range is
    limited to 0 to 31 (or 63 if 64-bit mode and REX.W is used). A special opcode encoding is provided for a count of 1.
2016-01-12 19:29:10 +01:00
dokman f06d055372 Now it's usable!
All done

ToDo:
Details of every setting
2016-01-12 10:44:36 +01:00
dokman 7fae220f18 Emulation Settings done 2016-01-12 10:26:10 +01:00
dokman 7b48923a2c Updating with newest templates.
Emulation Settings
EE/IOP done
VUs done
GS done
GS Window done
Speedhacks done
Game fixes ToDo

Plugin/BIOS Selector done
2016-01-12 10:05:34 +01:00
refractionpcsx2 22de865582 Gamefix: Add Scarface - The World is Yours Gamefix, might help other games that do constant VU recompilation. 2016-01-11 23:32:33 +00:00
dokman 5f680141b4 Pushing base of translation with the newest template 2016-01-11 22:39:06 +01:00
Gregory Hainaut 3c528f0fdd common define _32kb and _4kb 2016-01-11 18:00:25 +01:00
Gregory Hainaut 812a2e4850 recVtlb: Align dispatcher to 32B boundary
Better for cache coherency
2016-01-11 18:00:19 +01:00
Gregory Hainaut e3d5eb5a4e core: convert xCALL to xFastCall
SuperVU wasn't converted (unlikely to be ported to 64 bits)
A couple of calls weren't converted because they require extra work
but there are not mandatory (debug/MTVU/...)
2016-01-11 09:21:45 +01:00
Gregory Hainaut 859d62d2a7 ee|iop: use xScopedStackFrame to handle dynarec frame
* Rework a bit MVU to support xScopedStackFrame. Potentially
stack frame can be optimized (save 5 instructions)

* I removed the recompiler stack check. Address sanitizer is more efficient anyway
2016-01-11 09:21:45 +01:00
Gregory Hainaut 6e66bea152 x86emitter: improve the various abi wrapper
V2:
* Add various option to handle the different frame
* Basic x86-64 port (untested so likely completely broken)

v3:
Create an templated xImpl_FastCall object

v4:
clang compilation fix
2016-01-11 09:21:32 +01:00
Gregory Hainaut a6eb871b42 pcsx2: use a common general intrin include
Avoid issue with various compiler conversion
Fix build with GCC4.8
2016-01-11 09:13:52 +01:00
Gregory Hainaut 52b4604d3b iop: remove unused iPsxMem.cpp file 2016-01-10 18:41:18 +01:00
Gregory Hainaut afdf5cdfe2 x86emitter: remove old unused macro
Add some notes for a GCC "bug"
2016-01-10 16:49:50 +01:00
Gregory Hainaut 41d13dc2c6 vtlb: remove SetBaseAddr
Base address is given in the constructor
2016-01-10 14:31:49 +01:00
Gregory Hainaut 9bcd34349f Merge branch 'recompiler-prof' 2016-01-10 14:15:42 +01:00
Gregory Hainaut 1c4b430984 profiler: plug recompiler with new perf infra
Only EE/IOP support by block profiling

v2: cast wxString with ToUTF8 (windows)
2016-01-10 13:43:08 +01:00
Gregory Hainaut 92d7639267 profiler: add functions to plug linux Perf Event on JIT
Basically it creates a /tmp/perf-`pid`.map file which will contains
a mapping of the x86 code with the EE/IOP/VU code

* You need to enable the profiler with a define
* You can split the profiling by block (inside a recomp buffer)

v2: add new file to VS xml files
v3: remove useless include
2016-01-10 13:42:59 +01:00
Jonathan Li 8977673fdf ci: reduce AppVeyor workload
Don't compile with VS2013 if VS2015 compilation fails.
Build only SSE2 and AVX2 GSdx variants.
2016-01-10 12:11:49 +00:00
Gregory Hainaut e75d3f759f ee:profiler: add instructions counters 2016-01-09 23:29:03 +01:00
Gregory Hainaut 5b08bda5b8 ee:profiler: count EE memory access 2016-01-09 23:29:03 +01:00
Gregory Hainaut 0e1188565e ee:profiler: count EE instruction execution
Based on microVU_Profiler.h

It remains to emit all the opcode to use it properly
2016-01-09 23:29:03 +01:00
Gregory Hainaut 50c7cb1717 x86emitter: implement some BMI instructions
Only a couple of one to do some memory profiling
2016-01-09 23:29:01 +01:00
Gregory Hainaut 9e13a7bdaa x86emitter: add support for the VEX opcode 2016-01-09 22:59:31 +01:00
Gregory Hainaut 29b0b17f50 x86emitter: add BMI1 & BMI2 instruction detection 2016-01-09 22:59:31 +01:00
Gregory Hainaut d57466608e linux: pretty print dump
allow to replace 0xBADA55 address with nice name such as v0_b0
2016-01-09 22:59:31 +01:00