Commit Graph

1584 Commits

Author SHA1 Message Date
Jake.Stine 6f99ec45b9 Emitter: Fixed a small bug in the ModSib emitter logic which caused some forms of ESP to encode incorrectly. Implemented CALL/BSF/BSR [x86], MOVQ, MOVD, and MOVSS [mmx/xmm]. Renamed ix86_mmx.cpp and i86_sse.cpp to ix86_legacy_mmx.cpp and i8x_legacy_sse.cpp.
iMMI.cpp: Removed mucho dead pre-SSE2 code. (old code can be grabbed from a tagged revision, in case it's useful for future reference).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1011 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 02:14:50 +00:00
cottonvibes 924869f765 more microVU "stuff"
<gigaherz>if the commit log has "stuff" in it, it's vu work from cotton

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1009 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-18 23:56:32 +00:00
cottonvibes 45e9f544cd microVU: mostly block-linking/execution stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1003 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-18 04:28:24 +00:00
Nneeve 14f306a800 Fixes a mistake that I made in r927. Fixes regression issue 158
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1002 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-17 19:35:22 +00:00
Jake.Stine 029a94ce3f Emitter: Added BTS/SETcc/TEST instructions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1001 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-17 18:47:04 +00:00
ramapcsx2 984ca67042 -Scaled back the EE load/store cycle count to the theoretical minimum of 1 cycle. (Fixes Digital Devil Saga PAL fmv)
-Added a safety to the VU cycle stealing hack, so it doesn't go berserk :p

Note:
Due to the changed cycle count a lot of games will get "slower".
Especially FMV will be affected.
This is unfortunate, but correct emulation comes first.
You can however enable the ee sync speedhacks, as they're more stable now as well.
This can bring back the lost speed.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@999 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-17 12:39:22 +00:00
Jake.Stine 986683323e Extremely insignificant optimization applied to recADD/ADDI instructions (omg it might save a cpu cycle per minutes or something!)
Also: Reverted the addition of the ImplementationHelper<> class, since it failed miserably under GCC. -_-

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@998 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-17 01:54:35 +00:00
arcum42 4704ac9436 Reduce compiler warnings to a more reasonable level in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@994 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-17 00:35:55 +00:00
arcum42 ecbef93c6b Here we go again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@993 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-16 23:57:04 +00:00
Jake.Stine 1279fe2c21 Emitter: Implemented INC/DEC/NEG/NOT instructions. Plus: many code cleanups using a better form of template parameter inference.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@990 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-16 22:38:55 +00:00
Jake.Stine ac2f5713fc Emitter: fixed a bug in MOVSX/ZX's reg->reg form [resolves Issue 159 - missing geometry in DQ8], and moved some files around.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@988 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-16 14:45:13 +00:00
Jake.Stine 986b4fdf93 Forgot to add a new file from the last commit... >_< [ix86_impl_dwshift.h]
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@987 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-16 01:39:38 +00:00
Jake.Stine 4658529970 Emitter:
* Added MUL/DIV/IMUL/IDIV to the emitter, renamed as UMUL/SMUL respectively (to remove ambiguity of the instruction behaviors).
 * Fixed a bug in the shift instruction emitter that would have caused it to emit the wrong instruction type (like a SHR instead of a SHL, for example).
 * Added type strictness to the shift instructions that take the CL register as a parameter.  Passing anything other than CL will generate compile time errors now.
 * Fixed a syntax error in one of the legacy defines.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@986 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-16 01:34:09 +00:00
Jake.Stine f228a91c93 Added CMOV to the emitter, renamed x86Struct stuff to iStruct, renamed XMMREGS / X86REGS / MMXREGS defines to iRegCnt_XMM / iRegCnt_GPR / iRegCnt_MMX, and undid a couple u32 optimizations which could have caused unexpected behavior in the future, if we ever decided to employ some particularly obscure case of self-modifying code.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@985 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-15 21:00:32 +00:00
sudonim1 4d2adcae9f New speed hack mainly targeting 3D geometry.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@984 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-15 20:31:58 +00:00
arcum42 fca65ba2ef Add an include so things compile.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@983 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-15 17:22:34 +00:00
Jake.Stine 74db1c8189 Implemented Jmp/Jcc and MOVSX/ZX instructions, and added 'i' prefix to most things (will add 'i' to a few more soon -- I think iRegister will be nicer than 'x86Register').
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@982 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-15 15:45:52 +00:00
cottonvibes af792b7694 zeroRecs:
-minor change

microVU:
-fixed a lot of various errors
-partially implemented some clip flag stuff
-partially implemented some branch/jump stuff

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@981 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-15 10:13:48 +00:00
arcum42 fa1a79b368 Cleaned a few things up, and moved a few things around.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@978 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-15 01:25:11 +00:00
arcum42 881b01c8d7 Linux: Fix the Makefile.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@976 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-14 14:14:40 +00:00
Jake.Stine be430d5d89 Fixed a bug in the Emitter the caused the VU1 to screw up a bit (bad gfx and freezeups and stuff). Also: Resolved some GCC/C++ troubles.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@974 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-14 12:37:48 +00:00
cottonvibes ac1ecd5812 microVU: more flag "stuff" xD
<JakeStine>cotton: your commits always contain "stuff"
<JakeStine>I think you should rename one of your files to "microVU_stuff"
<Dwarg>And maybe others called "microVU_junk" and "microVU_crap"
<Dwarg>Then you could be much clearer
<Dwarg>"Fixed some junk, broke some crap, added some stuff...."
<JakeStine>lol
<cotton>lol

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@972 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-14 03:34:47 +00:00
Jake.Stine 6cceed6268 Many Emitter updates:
* added implementations for MOV and Shift instructions (SHL, SHR, ROL, ROR, etc).
 * Improved compilation optimization considerably, by improving inlining selection in cases where constant propagation can be resolved reliably.
 * Moved lots of code around, so that the new emitter and the legacy emitter are more clearly separated; and renamed some vars.
 * Changed recompilers to initialize the recBlocks array to 0xcc instead of 0xcd (fills the blocks with the single-byte instruction INT3, which fixes the misalignment mess that would sometimes happen when using disasm views on the RecBlocks contents).
 * Switched back to /O2 (Optimize for Speed) instead of /Ox, since MSVC (for me) generally fails to optimize Thread-Local storage in /Ox mode.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@971 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-14 01:26:57 +00:00
cottonvibes 2711d14f0c microVU: bug fixes on some flag handling stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@970 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-14 00:15:18 +00:00
cottonvibes 6e1805de36 microVU: minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@967 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-13 05:39:18 +00:00
cottonvibes 557564edc2 microVU: changed flag handling algorithms some more...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@966 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-13 03:46:19 +00:00
cottonvibes a3c1669024 microVU: more flag stuff (div/sqrt/rsqrt flags set at proper time)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@960 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-12 10:23:25 +00:00
cottonvibes 5b0d9b6723 microVU: fried my brain with some very-complex VU flag-handling logic/algorithms (hopefully they work as expected)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@959 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-12 08:29:53 +00:00
drkiiraziel f3370ce28f --updated to r956
--uses test8 instead of test32 when possible
--exception handling checks are a bit more strict

git-svn-id: http://pcsx2.googlecode.com/svn/branches/vtlb-exp@957 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-12 02:49:23 +00:00
refraction 4df3f80d30 Optimized and split up the unpack call a bit so less checks are being run, should bring an overall speed increase. Also got rid of some duplicate pointer rubbish which was all over the place.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@955 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-11 17:45:14 +00:00
cottonvibes 076e9e5386 more microVU stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@953 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-11 09:25:47 +00:00
drkiiraziel 3fb09c2192 --BTS r/m+r added for emitter
--Uses BTS + bit arrays for manual block tracking, instead of full invalidation.It makes some games much much faster and doesn't seem to affect he rest (still, testing is needed).Okami that uses some sort of SMC works .. but i'm sure there are some bugs left in it


git-svn-id: http://pcsx2.googlecode.com/svn/branches/vtlb-exp@951 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-10 20:26:43 +00:00
cottonvibes 653286a692 forgot to add microVU_Execution.inl in the last commit xD
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@949 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-10 19:47:13 +00:00
cottonvibes 6775b8a5cc microVU:
- added microVU_Execution.inl
- dispatcher stuff is now recompiled with pcsx2's emitter instead of using inline asm, its cleaner than inline asm and its more portable since the asm won't have to be ported to GCC.
- lots of first-pass implementation for lower opcodes
- implemented documented branch behavior (first pass stuff only)
Note: theres some undocumented stuff branches do according to Nneeve's tests, but i won't implement those for now since 99% of games shouldn't need it, and according to the tests, the behavior seems kind-of random/erratic.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@948 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-10 19:45:27 +00:00
arcum42 b1769a2061 Take care of Issue 139.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@942 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-10 01:50:31 +00:00
drkiiraziel f5e99af1ab --No longer uses 2 hacks/buffers, it just stores the info needed to generate the memops directly on the code
git-svn-id: http://pcsx2.googlecode.com/svn/branches/vtlb-exp@936 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-09 23:01:56 +00:00
drkiiraziel 6c88e99cf2 --This breaks linux.
--Basic vtlb code rewrite for full mapping using exceptions
--This is buggy & leaks ram for now


git-svn-id: http://pcsx2.googlecode.com/svn/branches/vtlb-exp@934 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-09 20:44:26 +00:00
Nneeve 57f9c2bc64 Disabled a VU recompiler option that caused some SPS in Ratchet and Clank and didn't actually affect speed.
Modified VU stalling logic of MR32 and MTIR instructions and modified FDIV stalling.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@927 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-08 18:19:48 +00:00
ramapcsx2 f4e9178c06 backing up some changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@926 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-08 17:15:51 +00:00
arcum42 08c6f68aba Fix Linux again (and again and again and again...)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@925 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-08 13:34:51 +00:00
cottonvibes e3a87fecd9 microVU:
-fixed rm instructions to work with Jake's emitter changes
-implemented the case where upper and lower instructions write to same reg at once (the lower instruction's result is discarded)
-implemented more first pass analyzing stuff
-fixed various bugs...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@924 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-08 10:07:14 +00:00
Jake.Stine 3dd99a0932 More updates to the new emitter: switched over some Push/Pop instructions, did a fully compliant implementation of LEa (both 16 and 32!), and fixed a couple small bugs in the ModRM/Sib encoder regarding EBP as an [index*scale] formation.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@923 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-08 06:25:40 +00:00
Jake.Stine 920e99145e Implemented the 16 bit forms of Group 1 instructions into the new emitter.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@922 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 23:48:43 +00:00
Jake.Stine 5f354c3cee Reverted the emitter back to a c/cpp form from inl files (probably wasn't necessary, but I don't like having code in header/inl files when I can help it). Also:
* Fixed a couple potential bugs in some Rm forms of MMX instructions.
* Improved compilation times by isolating BaseBlockEx.h to the files the needed it (it uses STL junks).
* Removed some dead code form emitters and BaseBlockEx.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@921 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 21:54:50 +00:00
ramapcsx2 1d9adee468 couple of changes, very minor speedup
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@920 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 17:35:09 +00:00
Jake.Stine bf3d124e23 Switched the emitter over to using Thread-Local storage (TLS), which removes all the templates and brings us back to a more traditional-looking, macro-free, and intellisense-friendly implementation. Plus it's a lot less prone to errors and will make debugging easier down the road. (next commit will rename the files back to .cpp and get them out of the header includes)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@919 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 16:54:02 +00:00
arcum42 5f35577543 Linux compiles again. Added back in potentially obsolete code, since it's still called.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@918 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 12:25:56 +00:00
Jake.Stine 2588dc0309 Emitter renovations of a large scale sort (only up to phase 1). Intel's 'group 1' instructions now use a completely new ModRM/SIB encoder, along with a nicely object-oriented interface. I created some macros to retain backward compat for now, and will continue implementing the rest of the instructions later as I have time.
Also: Removed x86/64 instructions from the emitter.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@917 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 08:42:25 +00:00
cottonvibes 923802f936 microVU: more recompiler first-pass implementation stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@915 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-06 07:32:10 +00:00
sudonim1 4d8769ecc5 Implemented another block lookup method.
Fixed an unused instruction in the emitter.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@913 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-05 14:19:13 +00:00
Jake.Stine 29d876dfac wxGui branch: Finished merge, and added a new wxConfig28 project file that allows the wxCore and wxBase libraries to compile in parallel on multi-core CPUs.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@909 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-04 17:28:05 +00:00
Jake.Stine 25185c75c1 wxGui branch: Merged with trunk up to r903, and resolved some Win32 compilation/link errors.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@908 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-04 16:05:14 +00:00
mattmenke a6d330448c Fixed a simple bug from one of arcum42's cleanups.
Cleaned up multitap code a little in both PCSX2 and LilyPad.

Some extra safety checks in LilyPad when loading state.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@906 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-04 11:21:35 +00:00
arcum42 7744205a58 Assorted cleanup. A few compilation errors went away, a few useless variables are gone, a few if statements are now case statements. Added comments on a few potential problem areas.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@904 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-04 07:48:50 +00:00
cottonvibes ebcedccf23 pcsx2:
- removed some obsolete 'iCWstate' code.

microVU:
- implemented more rec first pass stuff for the lower instructions.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@903 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-04 06:20:48 +00:00
Nneeve 006b81aabf VU:
fixed 1-cycle branch delays
fixed an issue with FDIV instructions whose operands are vf00
EE:
fixed recompilation of SRA and SRL when shift amount is 0
fixed conditional recompilation #defines a bit

(as an aside, this fixes a crash in Ratchet and Clank, but the game has other issues)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@895 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-03 18:49:23 +00:00
ramapcsx2 e39dec6ddb Oh well, a problem with the T/D flag code made the bios screw up.
Since it can't be fixed without further code in superVU, full revert for now :/

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@888 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-02 22:01:16 +00:00
ramapcsx2 2caebe0069 T/D flag interrupting was missing on the VUs.
Nneeve implemented it :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@886 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-02 21:04:45 +00:00
Jake.Stine a8d9cbc25d Final pass of today's vtlb optimizations: Improved the codegen for const-propagated direct reads and writes (very minor optimization).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@885 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-02 15:17:47 +00:00
Jake.Stine d60718e79d More vtlb optimizations: Switched over to full const resolution of the TLB, and added a shortcut for the INTC_STAT register (replacing the one rama added to HwRead.cpp a couple days ago).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@884 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-02 14:50:19 +00:00
Jake.Stine 4c8cf52c94 Implemented some more vtlb optimizations: Regalloc should be working a bit better now, and removed some unneeded code on the LWL/SDL/etc interpreter callbacks.
Emitter: Added Rm/RmOffset forms for AND32 - Untested.  I'm pretty sure they're valid instructions but I could be wrong.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@883 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-02 13:42:30 +00:00
cottonvibes a547ef4cea <cotton>for april fools i can put on my next commit that microVU is finished and doubles fps
<cotton>but i guess i shouldn't do that on the svn :D
<cotton>or maybe i can >.> <.< >.>

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@878 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-01 08:26:35 +00:00
Jake.Stine cf0c53f152 wxGui branch: Merged with trunk (2 weeks of changes!)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@876 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-31 15:54:14 +00:00
cottonvibes fa134fb61b microVU: some lower opcode changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@861 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-30 07:43:37 +00:00
cottonvibes e0c3ecbc8f miscellaneous microVU changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@860 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-30 01:00:38 +00:00
ramapcsx2 0e61bd6b35 - Nneeve fixed the Tri-Ace gamefix so Gradius5 doesn't crash with it enabled anymore.
- Moved one global variable for the VU interpreters, which surprisingly speeds up Star Ocean 3 for me.
- Set Flush to Zero for FPU and VU back to on. Let's see how long it lasts this time :p
- Removed the FFX hack from pcsx2! It's still toggled in the GS plugins, the correct behaviour is having it always on.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@848 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-27 23:52:17 +00:00
arcum42 007c34a8b0 Since WriteLn is used for logging, and it automatically appends newlines, remove a bunch of legacy newlines from various logging functions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@844 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-27 06:34:51 +00:00
arcum42 4ea9d9292f Replaced more SysPrintf's with Console:: functions then I want to think about. A few minor changes in passing, mainly format-related.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@843 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-27 01:42:51 +00:00
cottonvibes 235b19c858 microVU: backing up current code, going to have to rethink some things :/
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@836 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-23 04:11:39 +00:00
ramapcsx2 157e696182 - Various fixes to MMI and more changes to opcodes to mimic ps2 behavior, thanks to Nneeve.
- Brought back a gamefix for Persona games. They still have missing geometry without it (VU clip flag problem)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@835 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-22 19:40:43 +00:00
cottonvibes 3e3ffef417 microVU: moved stuff around, and implemented some other stuff... also added the file microVU_Analyze.inl to project.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@831 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-22 07:36:02 +00:00
cottonvibes df95ec6b87 microVU: implemented CLIP instruction + minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@830 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-21 04:03:14 +00:00
ramapcsx2 2afa8bb7b3 2 more things by Nneeve. Let's see:
A few changes to the full fpu mode, so it behaves as erratical as the ps2 fpu.
And a fix for a MMI opdcode.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@828 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-20 18:50:54 +00:00
cottonvibes d5b88723d2 microVU: implemented first pass for upper instructions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@825 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-20 04:00:15 +00:00
ramapcsx2 aea075320b Nneeve worked a bit on our lovely floating point cpu's (mis)ability to do rsqrt the way the ps2 does.
Should be better now ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@822 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-19 19:47:06 +00:00
Jake.Stine 6ce8ac189c wxgui branch: Full merge of trunk into the new wxgui, including a revision from way long ago that somehow got missed (when I renamed Windows folders in some plugin dirs)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@821 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-19 12:14:37 +00:00
arcum42 382431ebcb Linux: Make some of the assembly look a bit better. Change the PCSX2_ALIGNED_EXTERN defs a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@820 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-19 11:11:30 +00:00
Jake.Stine c5b366095a Fix for some random slowdown introduced in 815 (bad cacheline coloring caused a random 30% speed drop when not using speedhacks) >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@819 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-19 10:20:56 +00:00
cottonvibes 996f229cbf pcsx2: got rid of the compile warning.
microVU: minor changes/cleanup.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@811 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-18 08:22:01 +00:00
sudonim1 fa3288971f Save a few bytes on const flushing using 5 byte eax movs for 0 and -1 instead of 10 byte immediate movs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@808 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 20:58:59 +00:00
sudonim1 43c0d895ad Removed unnecessary rs flushes for loads and stores
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@807 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 20:07:17 +00:00
Jake.Stine 6c13dcdb41 Fixed a bug in the vtlb constprop support (stores weren't using the right macro).
Reduced the BIOS rom warnings from gaudy red text and stars to simple yellow warnings (since they really don't matter).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@805 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 18:15:02 +00:00
cottonvibes 2c0f8fe41e more W.I.P. stuff..
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@801 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 03:34:26 +00:00
sudonim1 c2e3536818 Emitter: encode negative 8 bit immediates for some instructions and EAX forms for MOV
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@800 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 00:57:59 +00:00
cottonvibes 2fa30cabf4 work in progress stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@797 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-16 08:19:46 +00:00
cottonvibes 0deb44c70d seems i had misunderstood ACC's pipeline rules.
turns out there only needs to be 1 instance of it, so i had to fix all opcodes that use ACC.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@795 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-16 01:43:13 +00:00
ramapcsx2 3f87ae7078 Looks like the new PCR/TIMR code wasn't called correctly in recMFC0.
This broke Fatal Frame (yes, again..).
Thanks to Nneeve for finding and fixing it so fast :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@793 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 12:24:24 +00:00
cottonvibes 7a0e3dca12 implemented all vu lower instructions (second pass).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@792 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 10:03:34 +00:00
sudonim1 64a1b3fb45 Forgot this.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@785 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 19:13:24 +00:00
tmkkmac 9ad464377a Removed a VU Clip gamefix.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@784 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 18:50:46 +00:00
tmkkmac 2b843ce49d Fixed a problem around the VU clip code, introduced in r659. GoW and Persona (and more) now work without a gamefix.
I'll remove the gamefix if there is no problem.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@783 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 16:59:03 +00:00
sudonim1 c483f17331 Rewrite immediate jumps from the block manager instead of having dispatchers to do this at execution time.
Should be a tad faster.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@782 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 16:30:35 +00:00
sudonim1 17298b7e6b Made constant register saving more simple and certain. Grandia 2 is probably the only game that this would've fixed, but maybe there are others.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@778 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 02:06:18 +00:00
sudonim1 1689b73c77 Realised that I probably broke MOVZ/N with my last commit and tried again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@776 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 01:21:13 +00:00
sudonim1 e248cf8cf0 Grandia 2 is playable again. The old block manager was incorrectly clearing a block which didn't need clearing and thus masking this constprop bug.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@774 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 00:21:35 +00:00
sudonim1 3aedd8acb2 Further work on the block manager.
Grandia 2 is still broken but this is a little faster, less clear happy and "impossible block clearing failures" shouldn't occur any more.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@770 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 18:23:28 +00:00
cottonvibes 43d7191927 cleanup: moved 'software emulate mul' to gamefixes section since it seems to only be needed by 1 game.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@765 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 07:20:04 +00:00
Jake.Stine 915fe28c23 pcsx2-wxgui: maintenence merging of trunk revisions into the brance (always a good idea to update branches after header file renames)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@764 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 06:14:08 +00:00
arcum42 e0347fd285 Some header work, get rid of some dead code, and rename PsxCommon.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@762 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 04:49:23 +00:00
Jake.Stine 3821425442 Minor fixes to the IOP Interpeter and const prop regarding the SLTIU instruction.
Removed the rest of the references to the UseGui global boolean since it wasn't used anymore.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@761 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 04:21:50 +00:00
cottonvibes cbe108e99d implemented some more opcodes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@760 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 02:03:18 +00:00
arcum42 71c4561f86 Linux: memcpy_fast seems stable enough on Linux, so I'm removing the switch, and turning it on by default.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@759 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 01:39:54 +00:00
arcum42 12cd3f8b6c Linux: Fix Final Fantasy XII. (memcmp_mmx appeared to be freezing MMX and not thawing it, and it didn't freeze it in Windows.) Comment out some unused code. Remove some code I commented earlier. And consolidate some of the calls to FreezeXMMRegs/FreezeMMXRegs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@757 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 01:05:43 +00:00
cottonvibes 13c56743c1 microVU recs: fixed a bug in LQ, and implemented LQI and LQD.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@754 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-12 14:46:42 +00:00
cottonvibes b894a7a217 some tweaks based on some optimization tips jake found.
the idea is that with SSE, doing operations that don't modify all the vectors can give false-dependencies, and in some situations prevent CPU's out-of-order execution (slows things down).
so the solution is to only use stuff like "movss" when you need to preserve the upper 3 vectors, if not, its always better(faster) to use movaps.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@751 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-12 05:32:27 +00:00
cottonvibes 3870debc22 implemented ERCPR (seems i forgot about it on my last update).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@750 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-11 23:59:51 +00:00
cottonvibes 93b85af339 optimized some stuff, and implemented all EFU opcodes.
note: most of the microVU EFU opcodes are implemented with completely different algorithms than zerorecs. this might prove to be more accurate, but i mainly did it to avoid using x87 FPU instructions (since i'm using mmx regs for storage).


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@749 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-11 23:49:39 +00:00
Jake.Stine 5d93b6bbe9 Minor PERF fixups -- moved the diagnostic msg to a less spamming-like area (on PCCR assignment, rather than on PCR update).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@748 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-11 19:08:08 +00:00
Jake.Stine dc3d9f4bfc Fixed the bug in r740 that broke speedhacks; and improved the PERF support a bit more using bitfields and more correct mode tests.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@745 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-11 07:40:23 +00:00
cottonvibes 0bcb9cc0e3 nneeve fixed min/max FPU opcodes to be more precise when running in "Full" clamp mode.
he also cleaned up some other stuff in iFPUd.cpp

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@744 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 23:50:17 +00:00
cottonvibes 4620f4c5aa cleaned up some code (knocked off 100+ lines in Alloc.inl), and implemented 'ESUM' opcode.
<drk||Razi>cotton2: write more helpful logs kthx ;p
<cotton2>doesn't matter, no-one cares what i write since it doesn't effect anything for now
<Krakatos>cotton, stop posting those useless commit comments XD
<feal87>no no, please continue. they're fun, i look forward to read them
<feal87>from time to time
<feal87>:°D
<cotton2>lol :D
<Dwarg>Please spend more time making them more amusing.
<drk||Razi>cotton2: it does matter
<cotton2>dwarg: yeah i know!
<Dwarg>drk||Raz:  Why?  They're useless for reversion testing
<cotton2>i have to think of good stuff to write :O
<drk||Razi>when the next vu coders (if any, ever ;p) want to look at your code .. and the history is full of crap
<drk||Razi>that won't be much useful
<drk||Razi>;p
<cotton2>there won't be a next vu coder!
<Dwarg>Comments in the actual code would be more useful, wouldn't they?
<cotton2>my code is perfect!
<drk||Razi>lol
<cotton2>>.> <.<
<cotton2>but seriously
<cotton2>i don't think it can get better
<cotton2>unless like
<Dwarg>Rather than going back and comparing SVN comments to changes made way back when
<cotton2>you want to support AVX
<cotton2>or w/e intel's new SSE thing is called
<feal87>and anyway AVX is like 3 years away
<feal87>in that timeline pcsx2 i think will be stabilized
<feal87>:°D
<cotton2>yeah
<drk||Razi>cotton2: just log kthx
<drk||Razi>implemented y,x,z
<drk||Razi>:>
<cotton2>thats what the diffs are for!
<feal87>and anyway really its useless for this stage
<drk||Razi>yea i know
<feal87>until microVU is active and used by PCSX2
<cotton2>i'm just implementing different opcodes though, its not like i'm chaning features
<drk||Razi>you can tell anything from the code -- no comments or changelog needed.Right ? ;p
<feal87>then every change should be documented for regression testing
<cotton2>drk: yup!
<cotton2>well
<cotton2>its not like i'm changing stuff
<cotton2>i'm just implementing things that havn't been coded
<cotton2>so theres nothing to regress to
<feal87>yep

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@742 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 21:02:44 +00:00
tmkkmac 68ec2f25a8 Fixed my stupid mistakes in the previous commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@741 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 20:16:13 +00:00
Jake.Stine 03a6406ff0 Added some preliminary exception handler code to the PCR's. No point in finishing it right now since the rest of the EE's exception handler is still in flux, but at least it's ready for a quick upgrade now. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@740 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 20:03:49 +00:00
tmkkmac 7425f1bb6e Fixed a problem in the new VU clip flag code that a history of the flag is cleared wrongly in a certain situation. Unfortunately the problem in GoW is still there :(
MMI: Optimizations for some opcodes.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@739 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 19:44:32 +00:00
Jake.Stine 15901551b4 Improved PCR/TIMR support -- fixed a case where games would try and read from the PCR multiple times in the same recompiled block, reuslting in bogus values, and fixed some sign extension errors on the interpreted version of MFC0.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@738 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 19:21:54 +00:00
arcum42 cef77785cb Fix the yuv2rgb.cpp issues, per Zeydlitz's patch in issue 100. fast_memcpy works in Linux now as of r727, so I'll leave it enabled for a while, and if it seems stable, I'll remove the switch for it, and have it permanently enabled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@735 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 12:25:45 +00:00
Jake.Stine 0bf5d1c43b Pcsx2-wxGui: Initial commit of "non-functional" gui (WIP). It compiles but doesn't do anything yet (none of the menus have been bound to actions, except for the GameHacks dialog). Initial wxWidgets project additions and prepwork are courtesy of Feat87.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@732 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 11:35:24 +00:00
Jake.Stine aef3af8a29 nneeve improves the software-emulated FPU accuracy ("Full" mode in Advanced Dialog).
Appended notes:
 * ADD in iFPUd should be bit accurate (unless it isn't. needs TESTING)
 * MUL in iFPUd with Software Emulate MUL is as much as I could get near bit accurate (not quite enough, probably. needs TESTING)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@728 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 23:54:38 +00:00
Jake.Stine 5dc76238bf Fixed a bug in memcpy_fast that caused memory corruption on blocks not aligned to 32-bits in length (this might fix the linux memcpy fast problem too).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@727 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 21:52:33 +00:00
cottonvibes 04fba65901 something.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@726 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 19:53:41 +00:00
cottonvibes a5d95b75c5 more lower instructions implemented
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@725 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 11:09:44 +00:00
cottonvibes 80f3dc5840 started on the lower instructions
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@724 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 08:24:52 +00:00
cottonvibes a44c6f0f83 microVU's upper instruction implementations (second pass) finished (except for clip instruction)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@723 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 05:28:37 +00:00
Jake.Stine ca4ce225a0 Linux: inline asm fixes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@720 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-08 23:28:39 +00:00
Jake.Stine 71e2dc2fb4 Many small bugfixes and optimizations:
* Fixed Memcard init so that Memcard1 isn't default in both slots (oops!)
 * Fixed Memcard path logic so that cards outside your pcsx2 folder can be browsed/selected.
 * Fixed CDVD-to-BIOS time sync (I simply forgot a function call!)
 * Optimized yuvrgb_sse2, by using Mod/RM form instructions.
 * Win32: Same optimization applied to FreezeXMMRegs and FreezeMMXRegs (linux already had this optimization)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@719 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-08 20:10:09 +00:00
arcum42 25df8958b2 Linux: Straighten up or remove a few Windows/Linux differences in the code (experamental), remove some dead code, fix a mistake in the Linux version of memcpy_amd_ (still broken, though), and change optimization levels due to gcc optimization induced errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@718 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-08 12:37:35 +00:00
cottonvibes 804050aaef A frog in a well won't know the ocean.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@717 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-08 09:05:53 +00:00
Jake.Stine dacfe85189 SPU2-X: Fixed some problems with saving/loading states, when loading from old savestate versions.
Pcsx2: Small speedup for the IOP's recClearMem (used a forceinline to cure MSVC's laxidazical inlining)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@714 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-07 19:04:37 +00:00
tmkkmac 60b7edd273 A fix for some VU clamp functions, by Nneeve.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@711 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-07 11:42:45 +00:00
cottonvibes c904878257 implemented more microVU 'crap' :D
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@710 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-07 04:21:26 +00:00
cottonvibes 4f63ac1101 implemented alot of microVU shit...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@708 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-07 02:38:05 +00:00
arcum42 56f802c80f Linux: Fix up the .S files to match recent changes. Make changes to SafeArray to avoid compiler warnings on every file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@706 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-07 00:48:57 +00:00
ramapcsx2 4b3d1ccab3 More block manager fixes/optimizations by Pseudonym.
This should be the last one (but you never know :p ).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@703 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 21:03:39 +00:00
Jake.Stine 97cdf187e5 Nneeve patch for "Full" FPU, improves some clamping and adds missing values to the savestate info.
Savestates: Pcsx2 now errors when it encounters a savestate made by a newer version of pcsx2.

Added a new SafeList type to the SafeArray collection (not well tested yet).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@701 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 19:01:30 +00:00
ramapcsx2 801d71f7f0 Fixes for the new block manager optimizations by Pseudonym.
There's a bit more speed even :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@700 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 17:14:30 +00:00
arcum42 3880bf5a14 Move the configuration section of Misc.h to a new file, Pcsx2Config.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@699 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 15:09:42 +00:00
arcum42 5d971b5931 Linux: Some work on the plugin code.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@697 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 07:20:16 +00:00
Jake.Stine 8d5b2cf6a9 Added missing files from prev commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@696 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 01:45:43 +00:00
Jake.Stine 23e0ca1b1f Added googlecode's sparsehash / densehash classes, which may or may not be useful in the future.
Removed various instances of legacy VM code that is no longer needed for reference purposes.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@695 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-06 01:11:17 +00:00
arcum42 3ae6ff0856 Remove lots of evil %'s.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@693 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 21:35:26 +00:00
arcum42 a09157ab59 Patch up the last few commits for Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@691 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 20:43:36 +00:00
Jake.Stine 1b95a52b1e Better implementation of MSVC's _SCL_SECURE macro, plus some PrecompiledHeader.h cleanups.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@690 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 20:06:38 +00:00
Jake.Stine 8092692047 Linux: Quick fixes to the new .S files, and did a mild cleanup of the recLUT macros.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@688 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 18:27:16 +00:00
Jake.Stine 482505d241 Pseudonym Crazy-Opts Projects Inc presents: Improved block managers for EE/IOP recompilers! Basic asm optimizations combined with a technique of replacing NULL/invalid pointer checks with a direct link to a JIT dispatcher. A collab effort on irc produced this gem, which improves speed on all accounts, and even makes the linux .S files uber-simple and clean. (no more wondering if they're broke or not!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@687 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 18:13:14 +00:00
cottonvibes 76dd2488a1 microVU stuff
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@685 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 06:39:24 +00:00
Jake.Stine fc84ade01d IPU Bug/Feature fix: Pseudonym has coded a new yuv2rgb decoder which is up to IPU spec (which differs slightly from MPEG spec). Improves color hue/saturation on many vids, and is a bit faster too.
Dynarec: Removed RET2().

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@683 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 02:21:07 +00:00
cottonvibes 7fd0f67f93 pork chop sandwiches!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@682 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-05 01:19:54 +00:00
arcum42 1492382253 Linux: Get everything compiling again. There is still a nasty crahing bug or two from r675, in particular when using the menus for load and save states rather then keyboard commands. I'll work on fixing that tomorrow, but wanted it to at least compile and run.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@679 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 20:58:41 +00:00
Jake.Stine a7fcdbaafa Savestate version upgrade and stability fix -- added some vars that the SPRdma might like to preserve between states, and removed some old hacky VM-related stuff while I was at it.
Fixed up the Saveslot detection somewhat (File:Load > menu now greys out unavailable saveslots).

Applied ICC fixup patch from Issue 84. :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@677 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 13:00:32 +00:00
Jake.Stine cc930f86c5 Major GUI API Cleanups. Most likely buggy as all hell.
* Moved most of the shared code between the two GUIs into platform independent source modules (System.cpp, Saveslots.cpp, and RecoverySystem.cpp)
 * Created two new namespaces which house functions that need to be implemented by OS/platforms: HostGui and HostSys.  HostGui is useful -- HostSys I'm not sure I'll keep around in the long run.
 * Moved keyEvent struct from PS2Edefs.h to PS2Etypes.h
 * Many improvements to the logic flow of the GUI (should be a little less fallible).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@675 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 11:33:45 +00:00
cottonvibes 900d4bd485 i assume these headers aren't needed anymore but were accidentally left in VS project file :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@674 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 07:57:34 +00:00
cottonvibes b0217bd38a necessary change to properly compile microVU's templates (c++ is picky with templates :p)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@673 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 07:38:14 +00:00
cottonvibes 2add61d729 backup, just ignore this
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@672 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 07:11:59 +00:00
cottonvibes b019dc6884 minor emitter fix and dialog text tweaking.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@670 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-03 16:42:43 +00:00
arcum42 c4aec82c00 Fix Linux, and update to match gui changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@668 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-03 14:32:18 +00:00
tmkkmac 6a3bf0c644 Added Nneeve's fix for some issues in VU pipeline. SPS in Arc The Lad will be fixed.
Added a temporary gamefix option for God of War, which has been broken since r659. Anyway I'll fix this problem in a proper way.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@667 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-03 12:02:38 +00:00
ramapcsx2 223156a29a You might need this one as well :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@666 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-03 09:37:09 +00:00
ramapcsx2 4286c20dda Nneeve coded a new FPU clamp mode "Full" that can help some games which wouldn't work with the other modes.
This fixes the Digimon menu for example (Gamefix will stay a while longer though, until we confirm ingame is fine as well).
He also updated the advanced dialog a bit.

Remember that this mode can break games if VU clamp is below "Extra + preserve sign"

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@665 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-03 09:27:58 +00:00
tmkkmac 6372375800 Fixed the problem in recompiled version of PPAC5/PEXT5. I forgot about the case with Rt == Rd.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@663 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-03 03:14:23 +00:00
Jake.Stine 1f2509edcf Fixed a bug in r658 caused by some sloppy macros.
Win32: Moved various debugger-related dialogs into a new debugger.rc file, to help reduce clutter between both the std resources and the debugger resources.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@660 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-02 20:08:12 +00:00
tmkkmac 699cdbba1e Fixed a problem that VU clip flag wasn't propagated correctly between recompiled blocks in some cases. SPS in Rule of Rose will be fixed by this.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@659 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-02 18:45:19 +00:00
Jake.Stine 79cde4c09e Set up the x86 emitter so that it always uses MOVAPS over MOVDQA. This generates slightly faster code since movaps is 1 byte shorter than movdqa (both instructions are functionally identical). The optimization is optional via AlwaysUseMovaps defined in ix86_sse.inl
Enabled optimization stuff for zlib and bzip2 projects (Release/Devel build targets).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@658 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-02 18:39:29 +00:00
Jake.Stine f270064b41 Committing the beginnings of a new PS2 Exception Handler! This is very much a work in progress, but it shouldn't really break (or fix) anything in its current state.
EE Interpreters: Fixed some signed/unsigned mistakes in some instructions, namely DIVU, DIVU1, unsigned Traps, and a couple unsigned right shifts.  (all of these were already emulated correctly in the recs)

Also: Removed the ThreadPriority stuff from Pcsx2, since it was a throwback to the days of Win95's unstable multitasker. If you really really feel like you need to change the thread priority of Pcsx2, use the Windows Task Manager or a third party util.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@654 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 21:49:17 +00:00
arcum42 b0c3151aca Fix a few typos, as well as Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@653 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 21:42:09 +00:00
Jake.Stine 2cf4bc3920 Added the second part of emitter macro functionality, by making the emitter instance configurable. We can't actually use it yet tho, since everything shares iCore, and thus everything needs to share the same emitter instance (for now!).
Fixed new emitter so it compiles in Debug builds, cleaned up the header files a bit.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@652 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 20:44:48 +00:00
tmkkmac b6f3f8e415 MMI: Added recompiled version of PPAC5/PEXT5, and optimized PADDUW a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@651 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 16:01:53 +00:00
cottonvibes 8fa5c65884 minor VU fix thanks to nneeve
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@650 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 15:03:18 +00:00
cottonvibes 0990cf3ccb accidentally deleted this file and didn't include some other file ><
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@649 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 14:50:27 +00:00
cottonvibes af2e99c196 these files aren't needed anymore
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@648 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 14:44:00 +00:00
cottonvibes e2d583c7fe major pcsx2 emitter change.
the emitter is now 'templified' so that you can run multiple instances such as:
eMOVRtoR<0>(EAX, ESP);
this uses emitter instance #0
to use another instance you can simply change the number in the brackets like:
eMOVRtoR<1>(EAX, ESP);
will use instance #1.

all old-functions are mapped to instance #0 by macros.
like:
#define MOVRtoR eMOVRtoR<0>


why do this to the emitter?
so we can have thread safety, and eventually thread the recompilers using different emitter instances.


note: this took me forever to get working (around 12 hours of non-stop coding).
however for some reason debug build is being extra-picky and still giving compile errors.
hopefully Jake or someone else can fix this, because i tried a few stuff, and just got more compile errors ><

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@647 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 14:42:31 +00:00
arcum42 9deff96c78 A few minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@646 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 11:38:05 +00:00
arcum42 abbaa90a7d Get the Linux side of things ready for when cotton's done with microVU. I'm sure I'll have to make significant changes at that point, but it's good to have the framework in place...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@645 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 09:47:16 +00:00
arcum42 2270ba4eee Finish the Linux implementation of memcpy_fast_. I've disabled it by default until I'm sure it's working right, but it can easily be enabled in build.sh. Should be a speed boost in Linux (which Windows already had), but I haven't tested it enough to be able to tell yet.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@643 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 08:21:14 +00:00
arcum42 ad0705de56 90% of an implementation of memcpy_fast_ for Linux. And fix debug mode.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@642 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 06:31:33 +00:00
arcum42 88f95dd22e Fix Linux. Move most of the externs for functions in .S files in Linux to one header, and reenable using memcmp_mmx in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@638 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 04:28:17 +00:00
cottonvibes e87d55f153 microVU rec stuff
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@637 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 03:36:52 +00:00
Jake.Stine da25976c6b Re-re-fixed the Windows.h mess. PsxCommon.h still had a win32 include, and cdvd.cpp and misc.cpp had some win/linux code which I relocated. Also, cleaned up the vtlb's SysExceptionHandler stuff -- moved the platform-specific portions to WinSysExec and LnxSysExec, and moved the shared code portion to a new function in Memory.cpp.
(Yes, Linux is probably broken again.)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@636 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 03:30:19 +00:00
arcum42 0acef23784 Clean up Jakes commit in r634, and get rid of some dead code in the assembly files.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@635 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 01:03:16 +00:00
Jake.Stine ebb5339418 Yay more header file cleanup chores! Removed most of the Windows.h dependencies from non-Win32 specific files, and fixed the annoying ARRAYSIZE warnings. Let's say it together: "We all should love C's archaic include system, because it makes Jake and Arcum work really hard for no good reason."
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@634 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-28 20:55:53 +00:00
ramapcsx2 a801b6f091 Bring in the ICC patch that makes pcsx2 build on that compiler.
Thanks to fea for this one ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@633 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-28 20:16:28 +00:00
tmkkmac 35386b1d2a MMI: Fixed a minor issue in PSUBUB/PSUBUH, and implemented recompiled opcodes for PMTHL/PSUBUW.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@632 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-28 09:55:18 +00:00
arcum42 19e56dc33e Linux: Quick fix for the last revision.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@629 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-27 23:18:01 +00:00
Jake.Stine 377830b3a9 IOP Fixes/Optimizations:
* Fixed the IOP's recExecute so that it correctly preserves X86 registers (EDI and EBX were not preserved!)
 * Optimized the recExecute procedure, seems like a nice speedup in FMVs and some games that are IOP intensive.
 * Renamed psxMemRead to iopMemRead, added new Virt/Phys functions, and fixed several instances of DMAs using translated addresses (DMAs are always physical maps).  Our IOP doesn't really emulate the tlb so it won't fix anything, but it's more correct in cas stuff is better supported in the future.
 * Removed unneeded FreezeMMXRegs, since the IOPrec doesn't use any mmx/xmm regs anyway.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@628 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-27 18:12:59 +00:00
Jake.Stine e205999744 Minor Optimization: Added Const support to Vtlb's Load and Store implementations.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@627 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-27 06:40:05 +00:00
Jake.Stine 5b09d81f36 Fixed a bug in the savestate system that caused memcards to eject when they shouldn't have (had uint instead of u64 >_<).
Developers: Changed the way PCSX2_ALIGNED16 macros work, so that they're more friendly to MSVC and Visual Assist X intellisense (more more red squigglies on vars like cpuRegs!)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@618 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-27 01:43:43 +00:00
refraction b372f359b5 Small fix for a regression i caused in r604 with Ridge Racer V, also fixed a bug in MAXbc on the VUrecs and added an optimization for MINIbc
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@605 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-26 02:13:51 +00:00
ramapcsx2 bf31172d07 Ico gamefix not needed anymore.
(It's still there for Linux, I better don't touch that :p )

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@598 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-25 15:07:09 +00:00
tmkkmac b50b9df3cf Applied SUPERVU_VIBRANCHDELAY fix to IBGEZ/IBGTZ/IBLEZ/IBLTZ opcodes. ICO SPS will be gone without gamefix now :)
WinGUI: Added SSSE3 detection message into a CPU config dialog.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@596 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-25 09:22:36 +00:00
Jake.Stine 2110018e58 New Feature: Press TAB to toggle the framelimiter on/off (as a substitute for hitting F4 several times). Usable as a "turbo" feature, similar to other emus.
Many minor code cleanups to logging and constants.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@595 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-25 01:36:06 +00:00
ramapcsx2 8d87a3660d Revert a cdvd timing change from playground. Fixes some games that depend on longer seek times.
Also removed one more console log from release builds.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@592 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-24 17:00:25 +00:00
tmkkmac 1f01b45833 Now calmping code added in r579 is enabled only in "extra" setting or above, because it slows down some games
WinGUI: Disabled arguments menu in release build, for sure :p
Buildsystem: Made pcsx2 dependent on zlib, and changed post-build script a bit

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@591 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-24 15:35:10 +00:00
arcum42 53bfe7cab1 Linux: Get the main program compiling again. I'll work on the plugins later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@590 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-24 13:10:59 +00:00
tmkkmac 986f2a1a71 Changed a behavior of recUpdateFlags a bit; now it also clamps results when flag updating is skipped.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@579 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-23 19:30:07 +00:00
tmkkmac ad5c6cff48 Fixed a minor issue in MADDiq/MADDAiq VU opcode.
(when _Fs_ == 0)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@578 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-23 17:08:33 +00:00
tmkkmac 5870bb43e9 Code cleanup of some VU clamp functions for SSE4, and reverted my previous useless commit :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@576 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-23 11:54:24 +00:00
tmkkmac 44d1ff527c Fixed some potential dangerous situations in VU rec
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@575 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-23 10:58:53 +00:00
cottonvibes 4cc6662246 some more vu clamping fixes by nneeve (fixes problems with the non-sse4 code)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@573 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-23 05:33:23 +00:00
cottonvibes 09d581217d - nneeve fixed some bugs when VU extra/extra+sign clamp modes were enabled.
- i added paths.h to the vs2008 project file.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@572 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-23 03:42:39 +00:00
cottonvibes 61ef2143bc minor vu changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@566 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-21 21:15:54 +00:00
tmkkmac a22035664d Modified EE opcode table to make add/sub require sign-extended operands. This fixes a crash in Unlimited SaGa.
WinGUI: Fixed a minor issue when changing language.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@564 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-21 18:07:15 +00:00
cottonvibes de2e939fcc FPU fixes:
tweaked the fpu compare clamping so now gt4 works again.
made the digimon rumble arena 2 fix into a gamefix.
tekken 5 doesn't need a gamefix anymore.

VU fixes:
fixed 2 opcodes thanks to nneeve.
optimized FCOR a bit.
changed the way ICO gamefix works so its less hacky (just always sets VI to 1 instead of setting VI to the opposite of the 'correct' result)

General fix:
there was some odd bug with the autogenerated TEXTINCLUDE stuff.
if you edited a resource, it would generate 
#include "afxresmw.h 
instead of
#include "afxresmw.h"
(a quotation mark was missing so you'd get compile errors)

so i fixed that ;p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@563 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-21 17:33:10 +00:00
cottonvibes c669407b33 minor FMAND VU opcode change thanks to nneeve
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@548 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-20 05:43:18 +00:00
cottonvibes 7e065afb4d tweaked FPU compare opcode clamping.
this fixes a bug with Digimon rumble arena 2.
thanks to Nneeve for figuring out the problem.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@547 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-20 05:37:01 +00:00
cottonvibes 32a8bef206 minor change
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@543 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-20 03:12:27 +00:00
refraction e9e9a2c273 Seems my last commit change didnt quite do what i expected and broke FFXII. Reverted it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@539 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-20 00:31:29 +00:00
Jake.Stine 243e4fba9f Added several important variables to the VIFdma savestate, relating to it's SSE unpacker; which should make the gifdone savestate hack obsolete (it broke savestates for most FMVs and some games). Seeing how important the unpacker tables are, it's a miracle VIFdma ever recovered from a savestate without them ;)
Fixed a bug in the memorycard hotswapper.  It wasn't reloading the cards correctly after changes.

Improved the new INTC hack slightly, and changed its description since it's not quite as universally awesome as Pseudonym and I had hoped when we worked on it last night. -_-

Added __fastcall and __forceinline to some of the VIF's unpack functions, where appropriate (very small speedup).

Removed some code I added to the MULT/DIV instructions, since it wasn't needed afterall, and fixed some typos in vtlb's API.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@538 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-19 22:48:05 +00:00
refraction 23336fe987 Fixed a small bug in FCOR under the VUrecs, also put a hack in there for ICO to cure the SPS, this can be selected in the gamefixes dialog.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@537 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-19 22:17:58 +00:00
ramapcsx2 68aaf91b5d Tmkk managed to fix a huge hack in the superVU delay slot handling.
This new code properly handles these situations now, removing the need 
for the magna carta gamefix, and also fixing problems in dragon quest 8(jp).
Thanks again, tmkk :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@536 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-19 15:56:07 +00:00
Jake.Stine 3532ebada0 Added Nneeve's fix for recMADDU (it was using the IMUL instruction which would have produced potentially incorrect results in rare cases).
Cleaned up some of the signed/unsigned ambiguity surrounding MULT/MULTU instructions.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@533 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-19 09:59:02 +00:00
ramapcsx2 460a2b4edf Small change - removed 2 console logs from release builds
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@528 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-18 16:11:30 +00:00
ramapcsx2 058ec7db30 A few fixes for MMI stuff by tmkk, and disabled a logging printf in release builds.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@526 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-18 14:03:35 +00:00
ramapcsx2 bee40a2948 Re-enabled the superVU optimization (It had problems with FFX on non SSE4 cpus, likely a bug in AssignVFRegs).
To make up for the speed loss in Tekken5 and Persona4 the vu cache size is now bigger.
This means another 10% more speed for Tekken, and a whooping 30% for Persona :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@524 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-18 13:35:55 +00:00
ramapcsx2 33d5c66ac7 Lots of work from tmkk. This update adds recompiling for several MMI opcodes, fixes bugs and adds SSSE3 detection.
Thanks again, tmkk! :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@522 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-17 23:29:47 +00:00
ramapcsx2 af89808f8f Disabled a superVU optimization that slowed down VU intense games lots.
Big speedup for Persona4 and Tekken5 :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@521 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-17 23:20:10 +00:00
Jake.Stine fe6f45e45e Updated the Copyright to reflect the passing of another year. :)
Updated the pcsx2_suite_2008.sln; changed SPU2ghz to SPU2-X.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@502 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-15 23:23:46 +00:00
Jake.Stine 11abea2d5a Pcsx2 now correctly sends CRC info to the GS plugin when using Run->Execute to boot games through the BIOS. And, Omg! The X button in the about box was broken! Thank goodness I fixed it before someone got hurt! ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@500 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-15 12:31:49 +00:00
cottonvibes c7deaad3c6 coded the microVU opcode tables, this took me all-day to get right lol xD
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@498 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-15 09:10:24 +00:00
arcum42 6e22fe3557 More cleanup on Patch.cpp.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@482 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-13 03:21:38 +00:00
cottonvibes 0e9629b01e minor microVU rec changes
note to pcsx2 users: for those that still don't know, these are new VU recompilers i'm working on. They're not working yet, and won't be for at least a few months. So don't expect noticeable changes when i update microVU stuff, since currently they're not being used (when they're in a semi-working/usable state, i'll be sure to put a note in the revision message ;p)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@478 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-12 03:15:46 +00:00
refraction 29fe1673ba Fixed Fatal Frame once and for all due to a DMA issue which it shouldnt have been doing ;p Also fixed the COP0 condition for the Recompiler and Interpreter, this was stopping Mojib Ribbon and Shadow of Colossus (after the Fatal Frame fix) from running. Int some how worked but it was wrong lol :P
Also fixed some Copy n Pasta typos

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@477 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-11 22:57:37 +00:00
arcum42 fd4f5bab0b Various minor cleanup. Get rid of those annoying extra newlines in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@474 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-11 13:25:17 +00:00
cottonvibes 0f0cf9d84d some microVU work
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@466 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-10 09:18:57 +00:00
Jake.Stine 6ebfae8ef1 Re-Added eol-style:native properties to the repository. The settings got lost when we merged from Playground to Official.
Added interface.cpp (plugin/pcsx2 interface) and savestate.cpp to SPU2ghz, to help clean up SPU2.cpp.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@463 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 21:15:56 +00:00
ramapcsx2 71c16d061d A new VU MIN / MAX code by Nneeve allows more games to use DaZ on the VUs.
We'll test if any game still needs DaZ off, and if not so, make that default to on.

DaZ is a more correct behavior for the VU's, and only bugs prevented it from working as expected.

Thanks to Nneeve for his hard work :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@461 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 18:50:10 +00:00
ramapcsx2 25459ba1fc Changed the Magna Carta gamefix to something more plausible.
Thanks to tmkk for spotting this :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@460 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 18:04:31 +00:00
cottonvibes 9f454da8d6 - fixed a warning from last revision
- made "framelimit" mode default, instead of "normal" mode (was discussed by team)
- some more microVU rec work...


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@452 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-08 07:21:56 +00:00
Jake.Stine 63d5ce867b Yay! Fixed a memory corruption bug in the SuperVU that caused several "VU-intense" games to crash randomly: Tekken 5, Persona 4, and God of War to name a few.
Changed the Hw FiFo to use what should be a more correct register addressing scheme.  The entire contents of each page of the FIFO is mirrored into the lowest register(s).  For example, any address between 0x10006010 and 0x10006ff0 should always be treated as address 0x10006000.

Code cleanups and minor optimizations to hw.cpp, FiFo.cpp, and gs.cpp.

Added some additional utility functions to the Path namespace, for splitting paths into files/folders parts.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@451 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-08 06:29:43 +00:00
Jake.Stine 22bacc999e Modified the build system so that both the original and new "revisioned" copies of EXE/DLL files are copied into the target build folder. Example: When compiling Release, pcsx2.exe will always reflect the most recent successful compilation.
Fixed COP0's recompiled branch instructions (BC0F, BC0T, etc) -- the conditional was not implemented correctly (thanks to Refraction for spotting that one).

Used a better method of clearing the errorlevel during the Pre/Post Build steps.  Should be a little less error-prone (pun?)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@447 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-07 20:11:13 +00:00
Jake.Stine 2cf8006ab0 Fixes some various compilation problems (people without TortoiseSvn installed won't get errors anymore)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@444 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-07 15:14:23 +00:00
cottonvibes 9f75e5b825 minor update - i forgot to rename a few things
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@440 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-07 01:25:16 +00:00
cottonvibes 73d6a8aca0 - renamed pcsx2pg.ini to pcsx2.ini
- made pcsx2 to default to MTGS mode "on" instead of "off"
- renamed "Mega VU" recs to "Micro VU" recs since the team thought "Mega" sounded lame ;p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@439 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-07 01:20:44 +00:00
refraction aa94c30dc3 Should be the last of the trunk, gotta finish the branches/tags, but thats the main bulk transferred.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@426 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-06 20:04:37 +00:00
refraction 57616b8916 git-svn-id: http://pcsx2.googlecode.com/svn/trunk@407 96395faa-99c1-11dd-bbfe-3dabce05a288 2009-02-06 18:28:52 +00:00
laurence.muller a2791d843e Using standard SVN folder structure
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@398 96395faa-99c1-11dd-bbfe-3dabce05a288
2008-11-06 23:27:06 +00:00