Commit Graph

1584 Commits

Author SHA1 Message Date
cottonvibes ba0f21463c microVU: minor changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1555 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-23 03:25:28 +00:00
cottonvibes 98c1855916 microVU:
- More regalloc work/fixes
- Implemented some untested SSE4.1 optimizations (can't test since don't have sse4.1 cpu)

pcsx2:
- Added an SSE4 instruction to the legacy emitter (just a wrapper to the new emitter function).

Note: Currently tri-ace fix and logical min-max code (thing that mad DaZ safe to use) is broken with mVU. Will fix later.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1547 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-21 06:36:56 +00:00
cottonvibes fb0a990605 microVU:
- Fixed Micro Program Logging (broke it on my last commit)
- More regAlloc work
- Big Cleanup, deleted about a thousand lines of obsolete code.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1546 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-20 07:36:35 +00:00
cottonvibes 5518d8072e microVU: more W.I.P. regAlloc stuff (upper opcodes are using my regAlloc class but are set to flush every opcode so speedwise this commit should be slower (or the same as before)
Once I rewrite my lower opcodes to use regAlloc, I can remove all the flushes.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1545 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-20 03:40:00 +00:00
cottonvibes 6c8a075131 PCSX2:
- Added *.MDF Disc Images to the "Run ISO" file browser.
I'm not entirely sure if theres any file system differences between .mdf and .iso (couldn't find much info on it); but all my .mdf files are working as-is with gigaherz's code, so I think compatibility should be fine.
- Moved "Run ISO" menu option above "Run BIOS" since users will run ISO's more often than the bios xD

microVU:
- More work in progress stuff... hopefully I finish within the next few days.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1543 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-19 00:42:11 +00:00
cottonvibes 81009002bb microVU: more work in progress stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1542 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-18 13:57:21 +00:00
cottonvibes 5474df1479 microVU: cleanup (removed old mmx vi reg caching)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1541 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-18 11:57:10 +00:00
cottonvibes 73d388fc87 microVU: Work in progress stuff... (no functional change)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1540 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-18 11:46:56 +00:00
sudonim1 800039c829 Fix flickering characters in god hand from r1509.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1533 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-16 15:13:01 +00:00
Jake.Stine 539a35fe80 wxgui [Linux]: Updated project files, fixed docking logic.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1532 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-16 13:44:40 +00:00
Jake.Stine 657660371c wxgui: Fixed crash-on-exit problem in Release builds and made the console logger thread-safe (uses messages instead of direct wxFrame method invocations).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1529 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-16 09:58:17 +00:00
sudonim1 21dac50152 Cleaner version of the EE reset optimisation, there's no particular reason not to skip these steps every time so there's no need for a second function.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1524 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-15 18:07:34 +00:00
ramapcsx2 ae85ad0f3b Tweak for recompiler resets, helps a bit against the stalls when those happen.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1523 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-15 17:39:08 +00:00
sudonim1 5bd531e212 Made the EE recompiler 64-bit constant buffer (was called a "stack" despite not being used as one) reuse recent constants rather than duplicating for every instance, resulting in less recompiler resets (e.g. espgaluda resetting every couple of seconds).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1509 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-14 21:33:38 +00:00
Jake.Stine 366357228d Bugfixed thread affinity restoration during CpuSpeed detection; pcsx2 should use all your cores properly again. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1502 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-13 02:14:09 +00:00
Jake.Stine 3c195e9f9a wxgui: more of the slowly progressing.
* Implemented internationalization (i18n) framework.
 * Made a pretty configuration dialog box!
 * Many minor bugfixes.
 * Removed most of the old Win32 and Linux/GTK gui code because it was causing gettext cataloging to grab about 500 non-relevant strings (can always reference trunk for them anyway).

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1484 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-11 08:31:38 +00:00
arcum42 4601e4e225 Reformatted Mpeg.cpp. Reworked mpeg2sliceIDEC a bit, and added a fix which I'm not totally sure of, so it's currently disabled. Did a few other misc cleanups.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1483 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-10 18:19:38 +00:00
cottonvibes 2d8ae979b3 microVU: fixed some bugs...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1480 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-09 08:43:47 +00:00
cottonvibes d9963bb54e Fixed System 11 emulation in Tekken 5
(EErec bug: madd should be signed multiplication, not unsigned)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1474 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-06 23:58:59 +00:00
cottonvibes 4acf6c6a8c microVU: delete -> delete[] xD
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1471 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-06 08:45:45 +00:00
cottonvibes 7f5827cee6 microVU:
- Kill programs if they haven't been used in ~7 seconds.
- Only kill 1/4 (instead of all) of total programs if all slots are full.
- Make sure programs are searched from oldest to newest. (this is needed to ensure that new programs don't 'evolve' into old programs and repetitively clone themselves.)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1470 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-06 08:26:13 +00:00
Jake.Stine fb6a8939b0 wxgui: Moved some more files around in Common/Utilities, and merged against trunk.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1460 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-03 20:48:11 +00:00
cottonvibes 43e41bf160 microVU: fixed a bug in program comparison algorithm.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1458 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-03 19:27:48 +00:00
Jake.Stine da691894c3 wxgui branch: Maintenance merge against trunk, plus many cleanups and project-level changes.
* Moved the x86 emitter to /common, so that plugins can link against it if they wish.
 * Created a new "utility" class in /common which houses string utils, fast memcpy, common exception classes, and other handy dandies.
 * Removed old-style linux automake files from the pcsx2 dir since they were hopelessly out of date (and their multi-file-per-line format makes svn merging impossible >_<)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1454 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-03 00:49:40 +00:00
cottonvibes d9b5baf8f6 microVU: Work in Progress commit, just committing to have a backup!
- Added Simple Constant Propagation to detect Constant Indirect Jump addresses allowing them to act as normal branches. (speedup)
- Added a Pipeline State optimization to remove some unnecessary information. (speedup)
- Severely altered mVU's memory model to dynamically allocate memory based on how much VU programs are run (and free them when dead).
- Made microPrograms recompile to a global rec-cache instead of per-program cache.
- Raised VU1's microprogram slots from 64 to 400.
- Fixed some memleaks that were causing ram usage to increase over time.
- W.I.P. GoW speed hack (not yet in gui)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1453 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-02 23:57:09 +00:00
Jake.Stine fba2e4519d Fix for plugin console logging via stdout/stderr, which stopped working when we switched to the shared msvcrt dlls.
mVU: Quick fix to zero out some memory/pointers; fixes assertion failures when running debug mode builds.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1452 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-02 19:45:49 +00:00
cottonvibes 60e1fcffb7 microVU: Tweaked some stuff from my last commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1445 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-30 20:42:25 +00:00
cottonvibes 95579258db microVU: fixed some problems from my last revision. (fixes problems in DQ8)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1444 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-30 04:45:22 +00:00
cottonvibes 8f74247b4f microVU:
- Smarter microProgram comparison. Games will now use less microProgram 'slots'. Speedup in games using a lot of microPrograms at once...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1443 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-29 06:28:48 +00:00
cottonvibes 6b2c26a617 Added 2 gamefixes to the Windows Side (untested since I don't have the games xD):
- DMA Execution hack - Fixes Fatal frame problems by ignoring dma transfers while another one is being executed.
- VU XGkick hack - Fixes Erementar Gerad by delaying XGkick. Similar to what SO3 needs, except this game needs more delay. Emulating this correctly is impossible with the current DMAC system, and will most-likely never be fixed correctly. The best (and fastest) way to simulate proper behavior is with a gamefix. (Super VU was doing this by a CRC hack, but I changed it to use this gamefix instead along with microVU.)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1437 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-26 04:27:18 +00:00
cottonvibes ac7f3bc19d Super VU:
- Implemented setting of GIF status regs for PATH1 transfers at execution time instead of at recompile time on XGkick instructions.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1435 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-26 02:44:42 +00:00
cottonvibes 95db132180 microVU: minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1431 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-25 05:41:40 +00:00
cottonvibes 8158636490 microVU: Evenly distributed rec-cache between programs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1430 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-25 05:17:54 +00:00
cottonvibes d4132141d5 microVU: changed VU1's cached program amount from 32 to 64, and vu0's from 32 to 8.
speeds up some games that use a lot of microprograms at once (like ffxii)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1429 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-24 23:17:32 +00:00
cottonvibes bc5c78f124 microVU: fixed a bug where xgkick delay info wasn't propagating through blocks correctly (fixes Sega Classics Collection)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1424 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-23 03:56:52 +00:00
cottonvibes a4a1feae64 microVU: fixed a typo that broke Crash Twinsanity :D
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1423 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-23 02:48:06 +00:00
cottonvibes 98ff4fd12d microVU: minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1422 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-23 02:07:38 +00:00
cottonvibes a0bc6d33bb microVU: fixed a problem introduced in r1304 (fixes bios memcard viewer hanging, tekken 5, and probably a lot more...)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1421 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-23 01:54:33 +00:00
arcum42 bd093b41bd Recursive inlining appears to be driving gcc to drink, or at least, to use up all available system memory trying to compile microVU.cpp and then failing. :(
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1418 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-21 10:26:56 +00:00
cottonvibes 9d091450b1 microVU: minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1414 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-21 07:01:41 +00:00
cottonvibes 40ae3c6ecd microVU: more minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1408 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-20 04:33:55 +00:00
cottonvibes 2f186e647e microVU: minor changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1407 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-20 03:45:44 +00:00
Jake.Stine b974b815ff Major Build System changes:
* Changed w32pthreads library into a DLL so that it can be used from plugins correctly. (NOTE: you will need to make sure to build and copy w32pthreads.dll into your pcsx2 folder).
 * Switched pcsx2 from static CRT to shared CRT linking (needed to ensure correct exception handling behavior in multithreaded DLL environments).
 * Switched all standard plugins in the Suite to the shared CRT, to match pcsx2's new style. :)
 * Renamed _DEBUG (depreciated) to PCSX2_DEBUG (excluding Gabest projects since the ATL still uses it).
 * Added intrin.h to Pcsx2Defs.h (so that it is included universally), and added intrin_x86.h for GCC compatibility.

Notes:
 * Current plugin version compatibility status should be unaffected.  The new shared-CRT plugins work fine with older versions of Pcsx2, and the older plugins should work fine with the new shared-CRT version of pcsx2; so long as the necessary CRT DLLs are available on the user's system.
 * All future packagings of pcsx2 will include w32pthreads.dll and the Common Runtimes (CRTs).
 * Existing users who do not have MSVC installed can obtain the CRTs by downloading the Microsoft Visual C++ 2008 Redistributable Package (anyone with msvc installed should already have all they need).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1388 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-18 08:20:19 +00:00
Jake.Stine 3ddcf45325 Minor cleanups to my mVU commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1377 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-17 14:34:01 +00:00
Jake.Stine fb4fcc7d29 Changed some code around in microVU that was causing 10+ minute link times in Release builds (LTCG mode), also added some new x86Emitter cleanups along the way. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1374 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-16 22:49:06 +00:00
cottonvibes ce4b58ba61 microVU:
- Minor changes

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1370 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-15 22:28:05 +00:00
Jake.Stine 136716a4f5 SPU2-X:
* Fixed crash problems when using SPU2-X with old versions of Pcsx2 (0.9.4 and prior).
 * Fixed broken Device specification override (the device GUID wasn't being loaded from the INI).

Pcsx2:
 * Added ThreadAffinity stuff to the CPUSpeed detection.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1368 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-15 16:44:26 +00:00
arcum42 1c3a537d5c Fix up Linux after r1356. Make a few changes that ought to make -fpermissive unneccessary, though it needs more testing before I actually remove said flag.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1358 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-11 12:56:55 +00:00
cottonvibes f8a94b15ff pcsx2:
- Cleanup and organizational changes of VU related stuff.
- Separated Super VU, microVU, and Interpreter files.
- Renamed all Super VU related files with an 'sVU' prefix.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1356 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-11 09:02:10 +00:00
cottonvibes a7f2130595 microVU:
- Small Optimization...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1353 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-10 04:18:06 +00:00
arcum42 70cd55b332 Linux: Use memcmp_mmx instead of memcmp; Add a workaround to a segfault in iVif on some games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1350 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-08 21:24:18 +00:00
arcum42 67b2d2bfc2 Linux: Not sure if this is neccessarily an alignment issue, but Kingdom Hearts 1 crashes on newgame with the new compare function, so we'll have it use memcmp for the moment.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1348 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-07 21:08:21 +00:00
cottonvibes 2ca4a603b3 microVU:
- Rewrote the custom compare function to use the emitter instead of inline asm.
- Set Linux builds to use the function.

Note: If this revision causes microVU to crash on Linux, it means GCC isn't guaranteeing 16-byte alignment on microRegInfo and microBlock structs. So it'll need to use normal memcmp instead (see microVU_Misc.h)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1345 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-07 12:04:39 +00:00
cottonvibes b61f7cc4d1 microVU:
- Implemented E-bit Conditional Branches and Jumps. Should fix infinite loop problems in games like Zone of the Enders, but it hasn't been tested yet since I don't have the game xD.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1343 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-07 09:42:10 +00:00
Jake.Stine cdd68f345e microVU: Improved struct alignment method using placement new syntax, reducing microBlockManager's heap allocation count from 2-per to 1-per. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1337 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-06 10:05:40 +00:00
arcum42 f7aae60371 Fixed Linux, and merged a few minor changes I had lying around that I hadn't committed yet.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1336 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-06 09:24:10 +00:00
Jake.Stine 3734d47351 non-functional change [Win32/msvc only]: Small cleanup to pragma packing syntax.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1335 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-06 09:17:33 +00:00
cottonvibes c4531a5c31 microVU:
- Implemented a faster block-compare algorithm.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1334 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-06 06:40:29 +00:00
cottonvibes 2ffe0e81f7 pcsx2:
- Changed sVU/mVU allocation order and addresses to hopefully solve allocation problems a lot of people were having.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1325 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 22:36:14 +00:00
cottonvibes f8232c19ac microVU:
- Minor Change...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1321 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 08:55:45 +00:00
cottonvibes 0a6bc57860 microVU:
- Fixed a very rare case, where both upper and lower instructions read and write to each others regs.
Example:
ADD.xyzw  VF1, VF2, VF3
MOVE.xyzw VF2, VF1

- Forgot to commit iVU0micro.cpp on my last update...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1319 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 08:13:47 +00:00
cottonvibes 4490d237dc microVU:
- Implemented m-bit functionality. Fixes Crash Twinsanity and most-likely other games...

Note: If anyone has any games that have broken graphics when mVU prints "microVU0: M-bit set!" to console, then please notify me about it.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1318 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 05:52:57 +00:00
cottonvibes 5831b47c4e microVU:
- Fixed a bug from r1315.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1317 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 02:05:57 +00:00
cottonvibes b65b439e6a microVU:
- Further optimized status flag updating...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1316 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 00:50:38 +00:00
cottonvibes 21d9615871 microVU:
- Minor Changes. Shouldn't effect anything.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1315 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-04 00:24:49 +00:00
cottonvibes 07a4eb3491 microVU/pcsx2:
- Removed flaghack1 since it didn't do much over flaghack2 (except break games :p).
Flaghack2 is now renamed to "Status Flag Hack", and so-far we haven't found a single game it breaks, so compatibility is high.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1313 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-03 23:51:23 +00:00
cottonvibes 96f7911d26 microVU:
- Second try at a status flag optimization. Still needs tweaking but too tired xD

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1309 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-03 09:22:25 +00:00
cottonvibes d8fb66f143 microVU:
- Minor Changes/Cleanup

Super VU:
- Used the Linux SysMmapEx address for windows as well.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1308 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-03 06:50:13 +00:00
Jake.Stine 510a23f190 Quick cleanup of my prev commit -- changed some u32's to u64's, and deleted some code made obsolete by the new cpu detection.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1307 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-03 01:28:19 +00:00
Jake.Stine 074a87eadc Improved the cpu speed/ghz detection. It should be a bit more accurate, and is faster (pcsx2 startup times are near instantaneous now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1306 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-03 01:06:26 +00:00
cottonvibes 8c5b6ae749 microVU:
- Implemented some bizarre behavior where conditional branches will read old VI-reg values if the previous instructions continuously read+write to the VI reg.

example from zerorec's comments:
SQI vi5++
SQI vi5++
IBNE vi4, vi5

vi5's value in the branch should be the value before all the SQI's...
more examples in iVUzerorec.cpp

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1304 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-02 00:50:37 +00:00
cottonvibes a8266a48d8 microVU:
- Non-functional change... just storing some IR info I'll need to use later.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1303 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-01 22:29:27 +00:00
cottonvibes a336e6b277 microVU:
- reverted to r1299

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1302 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-01 05:09:28 +00:00
cottonvibes 28f52a3f12 microVU:
- Backing up some changes before I revert...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1301 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-01 04:58:06 +00:00
cottonvibes ebff9ec1c5 microVU:
- Tried a complex optimization with status flag updating.
Didn't seem to work out as well as I thought.

I need some benchmarks of mVU (w/o hacks) before this update and after this update to see how effective it is.
If its not much faster I might just revert the change (because I'm sure no-one is going to understand how it works this way).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1300 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-01 01:21:01 +00:00
cottonvibes e85124dff5 microVU:
- Fixed a bug from r1254. (Fixes weird circles on the logo of ffxii after selecting new-game)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1299 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-31 10:37:20 +00:00
cottonvibes eb3b31c525 microVU:
- Gave the rec a better IR (intermediate representation) implementation.
- Renamed microVU_Alloc to microVU_IR


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1298 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-31 05:45:59 +00:00
refraction 4fc4a634b3 Fixing up Fatal Frame, removed redundant path3 masking code from the olden days!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1295 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-30 16:57:15 +00:00
arcum42 ccd89d199b microVU/Linux: Since __mVUdumpProgram is of type microVUx, vuIndex is already defined, and shouldn't be redefined. Fixes Linux compilation.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1293 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-30 11:50:05 +00:00
cottonvibes cf1f7eda8c microVU:
- Fixed a bug with my xgkick delay code from r1282. Fixes GT4.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1292 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-30 08:33:29 +00:00
cottonvibes 51ab9a6888 microVU:
- It took a while, but I managed to convert 100's of template functions to normal functions, reducing release link times by about ~50% again.
pcsx2 takes about ~2 mins to link on release build, which is a lot more tolerable than ~10 minutes from a few days ago...


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1291 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-30 04:16:45 +00:00
refraction aa64a21e93 Couple of fixes, one for Kingdom Hearts 2 Issue 239, others might help textures in the GT games (maybe!)
Also prepared some code to add support for VU looping in MTGS mode, this will require a GS Spec update, so its commented out for now until i can sync an update with Gabest.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1289 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 18:44:42 +00:00
cottonvibes 6d6e7fba36 microVU:
- Changed 'recPass' from a template param to a function param. Halves MSVC linking-time in release modes, but still slow (from ~10 minutes to ~5 minutes to link on my PC). I'll continue working on this later... the next change will probably reduce Release link-times to 1~2 minutes (or less than 1 minute for you guys with macho-pc's ;p).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1287 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 08:32:54 +00:00
cottonvibes 7fef12a4cb microVU:
- fixed a bug from r1281 when the tri-ace gamefix is unchecked xD

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1284 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 04:33:06 +00:00
cottonvibes 949c02ed45 microVU:
- Small Optimization...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1283 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 04:18:09 +00:00
cottonvibes 12ca3898d6 microVU:
- Added a 1-cycle xgkick delay, fixes SO3 graphic corruption and flickering.

Theres still VU stuff the game does that isn't implemented, but the game seems to run fine w/o the implementation (only tested the beginning though).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1282 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 03:02:21 +00:00
cottonvibes c3ae30f250 microVU:
- Implemented the tri-ace gamefix.

Note: I've only tested SO3 so-far and it has some ugly graphical problems with mVU. SO3 does some evil VU stuff that it shouldn't be doing, but it does them anyways xD
I know the cause of the problems, so I just have to code the solutions sometime in the future...

P.S. SO3 looks really funny with the FlagHack1 speedhack! The characters turn into floating heads effectively turning the game into PacMan xD

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1281 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-29 00:32:51 +00:00
cottonvibes 50332c1cd1 microVU: minor optimizations/changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1278 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-28 02:27:08 +00:00
ramapcsx2 fa0e10557a mVU: Disabled breaking execution on bad programs since it's not needed anymore and costs speed.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1276 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 14:27:50 +00:00
arcum42 e8ae911664 Linux: Hack microVU into the Gui.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1275 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 13:10:43 +00:00
ramapcsx2 477f5fa674 Minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1274 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 10:26:36 +00:00
cottonvibes 58c45c42ca microVU is now selectable as a GUI option from the CPU dialog box.
microVU speedhacks are also available in the speedhacks dialog.

All the GUI stuff took me a few hours, so hopefully I didn't bug anything.

Note to users:
Please remember that microVU is a W.I.P. and will have bugs; but it also fixes some games Super VU has problems with. So have fun testing.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1273 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 09:14:43 +00:00
cottonvibes b1eadad216 microVU:
- Increased mVU run cycles (Fixes Kloana 2's Inf Loop messages)
- Fixed some potential problems with the log code that would cause some games to crash.
- Minor Changes...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1271 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 05:33:36 +00:00
cottonvibes 47bdb31473 microVU:
- Fixed a big bug with the help of sudonim and rama which greatly increases mVU's compatibility!


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1270 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 02:29:52 +00:00
Jake.Stine 5f1cc131c8 Bugfix for Issue 241. Also increased the EErec's stack memory from 64k to 128k, since there's no reason to be frugal there anymore.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1269 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-27 01:49:48 +00:00
ramapcsx2 12e258ac16 mVU: Fix for a bug that would cause stall cycles to be counted 2 times.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1268 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-26 14:03:29 +00:00
cottonvibes 22535ad886 microVU:
- Properly fixed problems from r1254, a lot of games should be fixed.

pcsx2/microVU:
- Added some debug code that runs sVU and mVU, and compares their results. If they differ, then the game is halted, and debug info is given. (this can be enabled in iVU1micro.cpp with the DEBUG_COMPARE2 macro)... the code is a bit messy, but it gets the job done for now.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1265 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-26 01:00:38 +00:00
sudonim1 a46f1538f0 Another µVU typo, fixes silent hill 2 but probably not nothing else.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1263 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-25 14:43:15 +00:00
refraction 44378b31f7 Path3 Masking mystery solved, Simpsons (Issue 24) GT4 (Issue 211), tenchu and many many other path3 masking games should be fixed. This will only work on MTGS.
Also semi-removed my gifsplit thing to resolve the tekken 5 menus Issue 209

Note: GT4 is still missing its logo, this is down to a really bizzare timing issue i cant pinpoint.

Removed redundant path3hack

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1257 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-25 07:07:59 +00:00
cottonvibes a8094d5786 microVU:
- Implemented an idea by Jake to use a GPR as a reg-offset index to save a few bytes from reg-moves (only did it for VI regs, didn't have enough free GPR's to do it for VF regs)
- Fixed a minor problem with micro-program logs

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1254 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-24 12:20:33 +00:00
cottonvibes 342da0e2a8 microVU:
- Added a new status-flag speedhack after learning how evil sVU is with status flags (mVU with both flag-speedhacks ON is less evil than sVU's default setting which does something even hackier)
- Minor Changes

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1246 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-23 12:40:01 +00:00
cottonvibes 995b9d1eaa microVU:
- Implemented the case where an Unconditional branch has the E-bit Set. This solves a few games from getting stuck in infinite loops. (I still need to handle conditional branches and jumps).
- Max/Mini Opcodes shouldn't set status/mac flags. This should be a minor speedup.
- Minor Changes/Cleanups...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1241 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-23 03:27:53 +00:00
arcum42 8e3d3080c0 Get rid of Decode_XA. A few minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1235 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-22 00:35:09 +00:00
arcum42 7922f33f4f Minor variable type changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1233 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-21 21:12:01 +00:00
cottonvibes 996440bab0 microVU:
- Fixed a problem that was causing microPrograms to be cached when they shouldn't be (introduced in r1209). This also fixes broken logging in some games, and is a small-speedup.
- Minor Changes


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1230 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-21 07:09:39 +00:00
cottonvibes 31c5c234ef microVU: minor changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1229 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-20 23:18:19 +00:00
ramapcsx2 a0546736a1 mVU: minor fix for branches, improving compat a wee bit.. like lots :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1227 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-20 20:15:34 +00:00
cottonvibes 23c833e922 microVU:
- Fixed a Q/P instance bug. This fixed some graphical corruption in Haunting Ground, might fix some other games too.
- Minor Changes...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1225 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-20 03:05:36 +00:00
Jake.Stine faf535a461 Added COMI.SS/COMI.SD to the emitter (and moved UCOMI from moremovs to comparisons, where it belongs -- oops)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1224 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-19 23:37:20 +00:00
arcum42 134f02babb Linux/microVU: Uninline a function that isn't inlinable according to gcc, so microVU is compilable on Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1221 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-18 13:08:35 +00:00
cottonvibes 3019f7d02c microVU:
- Fixed the bugs with the logical min/max code (DaZ should work fine again)
- Optimized some lower instructions a bit.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1220 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-18 11:13:30 +00:00
cottonvibes a974cff9bd microVU:
- Raised the run-cycles amount. This fixes FFXII's missing geometry (the game appears perfect now :p)
- mVU prints a message to console now if games are exiting early due to infinite loops (I'm interested in games that do this, so post any game you find that does this. Dark Cloud does this for example...)
- Added some debug stuff to iVU1micro.cpp.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1216 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-18 06:24:12 +00:00
cottonvibes 4b5117c078 microVU:
- Fixed a bug with P-reg's instances; this fixes problems/SPS in a lot of games such as (FFXII, NaN3, Digimon Rumble Arena 2, etc...)

Note: All the games mentioned still have other problems (ffxii for example has missing geometry on characters, but looks a lot better than before :p).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1215 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-18 03:07:23 +00:00
cottonvibes 942e7e9231 microVU:
- Crashes when "microVU Error: Program went over its cache limit" message occurs should be fixed.
- Miscellaneous code changes and cleanups.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1211 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-17 11:34:00 +00:00
cottonvibes ac00db5dd5 microVU:
- Added partial program searching support (helps to recompile less in games that send a lot of small programs like Tekken 5)
- Optimized logical min/max code some more (knocked off 2 instructions)
- Fixed some cases where 'last_used' should have been set.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1209 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-17 08:22:00 +00:00
Jake.Stine f6ce237b8e Did some general cleanups to vtlb's memory protection and recompiled block integrity checking systems.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1208 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-17 03:57:18 +00:00
cottonvibes 2c3043862d microVU:
- Cached Program search is faster/smarter thanks to an idea Jake had to search recently used blocks first.
- Fixed a problem with block searching.
- Minor changes.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1203 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-16 08:43:56 +00:00
arcum42 9d38252d0e Let's try that again...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1202 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-16 07:24:31 +00:00
arcum42 15821b465a Work on pcsx2's Makefiles a bit. Move CDVD*.* and CdRom.* to a separate subdirectory, to make things a bit less cluttered.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1201 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-16 04:26:10 +00:00
cottonvibes 9390d5583a microVU:
-implemented Jake's suggestion for proper alignment in the microVU struct.
-minor optimizations/changes

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1188 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-15 04:51:53 +00:00
arcum42 c67bfbe648 microVU: fixed up microVU so that it compiles in Linux if the appropriate defines are uncommented, and runs surrealistically.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1187 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-15 02:46:35 +00:00
arcum42 bddfd67bae Minor tweaks here and there. Removes a couple compiler warnings, adds in a -m32 flag I missed, and updates the Makefile a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1183 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-14 21:50:03 +00:00
Jake.Stine 729d90c1ce microVU:
* Smartened up the microprogram cache.  Programs are (quite accurately) selected based on how often and how recently they have been used.  Solves constant recompilation issues in games like FFXII and Tekken 5 [but not the SPS, sorry!].

* Changed memory allocation so that microprogram blocks are allocated *on demand* -- this saves a lot of memory and makes it possible to test 64-program caches (which would previously fail due to exceeding 2gb ram allocations!).  Also fixed a few small memory bugs in Init/Alloc, and made it so mVU only allocates memory once instead of on every reset. :)

* Tweaked uses of progSize in microVU.h so that it's consistent [all instances of progSize are (vumem_size / 4) now]

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1180 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-14 19:34:17 +00:00
cottonvibes 40447aabc1 microVU: fixed a bug in the Jump opcodes. this probably fixes a lot of problems in games (grandia 3 intro works properly now, ffxii shows more stuff in-game, etc...)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1178 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-14 08:56:50 +00:00
cottonvibes b3bdaab4f0 microVU:
- Implemented Nneeve's logical min/max algorithm. This should fix the problems with DaZ and mVU.
- Applied a patch by Gigaherz that more clearly distinguishes Immediate values in microProgram log files.
- Added a speedhack to disable the logical min/max code. (see below)

Note:
From my testing, using DaZ on mVU doesn't do much. However I have an AMD cpu, and they don't benefit as much as Intel C2D's from DaZ. So this could be effecting results.

The logical min/max code is SLOW, and the little-benefit I get with DaZ means I get better performance with DaZ off and the min/max speedhack (which disables the extra min/max code).

It would be nice is someone with an Intel C2D can compare the speed of:
-mVU normal without DaZ
-mVU normal with DaZ
-mVU min/max speedhack without DaZ
-mVU min/max speedhack with DaZ


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1177 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-14 07:36:10 +00:00
ramapcsx2 3c715556e9 microVU: due to the 2 flag fixes the hacks can go now :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1176 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-13 12:15:41 +00:00
sudonim1 8385a8166f And the same typo elsewhere.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1175 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-13 11:30:02 +00:00
sudonim1 b1ddb5990c Found the typo responsible for the clipping bug.
Changed a few lines from cotton's idea of readability to mine, at least 
until cotton reverts it.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1174 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-13 11:00:03 +00:00
cottonvibes d363c21e8f microVU:
-increased rec-cache so GOW2 should be happy (untested)
-hacked-fixed some problems for now that I'll be working on properly fixing over the next few days.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1173 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-13 05:43:40 +00:00
cottonvibes 9e1b3fb33e microVU: fixed a few problems...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1172 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-12 08:21:44 +00:00
cottonvibes ef01d581b0 microVU: coded a speedhack that optimizes out all status flag updates in a microprogram if the entire program doesn't read the status flags.
FFX's intro got a 8~10% speedup with the hack, and it should be safe for 90~95% of games.
It can be enabled in microVU_Misc.h


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1167 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-11 06:15:16 +00:00
cottonvibes d19229d334 microVU:
- Major flag algorithm rewrites (work in progress)
- Abused macros to create my tables, knocking off 800 lines of code.
- VU0 and VU1 have different dynarec cache sizes now (vu0's is 1/4 the size of vu1's)
- Minor changes...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1166 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-11 01:39:33 +00:00
cottonvibes f4c3560c75 microVU:
- mac flags now stored memory instead of in upper 16 bits of GPRs.
- minor changes...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1159 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-08 23:05:43 +00:00
arcum42 b57e5f5989 More cleanup on iVUzerorec.cpp. Fix a few things from the last commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1155 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-08 05:46:53 +00:00
arcum42 e330c57556 Minor bug fixes. Reformat iVUzerorec.cpp & get rid of all occurrances of the FORIT macro.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1153 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-08 04:44:32 +00:00
cottonvibes afc5760e6c microVU: Cleanup and added microVU_Flags.inl to the project.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1152 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-08 04:16:25 +00:00
cottonvibes 912185348e microVU:
- Fixed up some code so blocks are recompiled less often.
- Tweaked flag code.
- Minor changes...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1151 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-08 02:12:02 +00:00
Jake.Stine 9c0a978d5c IopMem: Added FireWire port handling to the new IopHardware handlers (oops!).
EErec: Removed an instance of duplicated cycle counting for split blocks.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1146 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-07 15:56:10 +00:00
Jake.Stine 91a4ee79cc Made some tweaks to the EErec block manager in hopes of resolving Issue 208 [Soul Calibur 3 missing gfx], involving the willbranch3 logic path.
Emitter: Added xJcc8 / xJcc32 functions for doing modified jump targets.

Also: minor cleanup to recent counters fixes (nothing relevant, just reduced out some copy-paste jobs for clarity).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1143 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-07 08:21:57 +00:00
cottonvibes e6b9275c13 microVU: various minor fixes that effected big stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1141 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-07 01:57:13 +00:00
Jake.Stine 2bf04882e3 Some code cleanups for the new vtlb optimization (no intentional functional changes -- just deleted unused code and converted all of vtlb to the new emitter syntax. Let's hope I didn't typo anything!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1138 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-06 12:37:37 +00:00
Jake.Stine 1cf028ccf5 Optimized vtlb direct path memory operations using some crafty asm code. Expect 2-3% speedups in most things, and perhaps more in some FMVs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1137 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-06 02:15:43 +00:00
cottonvibes 6a075aca03 pcsx2:
- PCSX2 would repetitively call CDVDopen if loading an elf file and your cdvd plugin didn't have an ISO already pre-loaded. Basically I had to switch to CDVDnull whenever I wanted to load an elf... well not anymore xD

microVU:
- Implemented the VI regs thing where if an opcode tried to access vi regs 16~31, the VU's should return vi0~15 (viReg & 0xf); technically it should never happen, but from my tests the BIOS seems to do this... so maybe some rare games do it too... 
- Our VIF code apparently uses VU cycles for some stuff, so I now update the cycles variable VIF relies on.
- Minor Optimizations

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1136 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-05 02:25:48 +00:00
Jake.Stine a7cbcae4be Small speedup for the EE/IOP recompilers, by removing the legacy limit on the number of recompiled blocks (was causing recompilers to reset the code buffers way more than necessary).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1135 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-05 01:26:18 +00:00
sudonim1 002b9af006 This is why a type safe emitter is important.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1134 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 20:14:37 +00:00
sudonim1 db41e52940 Apparently the MSB of integer register specifications in VU micro instructions is ignored, making the upper 16 registers mirror the lower 16. Changed all relevant instructions to reflect this.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1132 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 18:21:44 +00:00
Jake.Stine 0238815248 wxGui: performing maintenance merge before weekend departure.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1120 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 14:06:06 +00:00
Jake.Stine a69cfcc464 Removed VU-Skip [helps simplify the frameskipper logic] -- Use the VU Cycle Stealer hack instead for better, faster, more stable speedups of the VU1 unit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1114 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 09:04:47 +00:00
cottonvibes f8f4c7f136 microVU: fixed some bugs in stall calculations.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1113 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 06:13:43 +00:00
cottonvibes b6ba2f050f minor microVU changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1101 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 10:12:44 +00:00
arcum42 ecddd1dd6e wxGui: Type the letter 'L' a whole bunch of times.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1097 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 02:15:18 +00:00
Jake.Stine d14259b8b4 *experimental* Added forced block splitting at 4k code boundaries in PS2 memory. This fixes issues with frequent recompilation of certain uncounted manual blocks, and also allows for us to greatly simplify the memory protection and recompiler block management code, but *may* have performance penalties under specific conditions. So I've added a verbose log message to Devel builds so that we can look for any problem games that might invoke more than their fair share of tiny block splits.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1093 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-30 08:33:51 +00:00
Jake.Stine 9513be5476 Reverted BTS due to unexpected complications, but retained a minor optimization we developed during the BTS experiment. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1091 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-30 01:16:25 +00:00
Jake.Stine a2fd88d952 Fixed bugs in BTS instruction emitters, and working on fixing bugs in BTS memory protection.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1089 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 20:55:13 +00:00
Jake.Stine e81fbc728d Fixed a bug in the cpu mhz detection introduced in the prev revision, and improved the algo to be much quicker and generally more accurate than before (and with luck AMDs will agree!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1087 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 11:13:17 +00:00
Jake.Stine 41079415fa Improved SSE detection:
* SSE3 detection via cpuid implemented.  [fixes Linux -- the force_sse3 option should no longer be needed!]

 * Instruction tests are now done for SSE3, SSE4, and SSE4.1 to confirm cpuid results (I doubt this is necessary, but the old code did it for SSE3, so I figured I'd keep it and log results anytime an inconsistency is detected).

 * SSE4.2 and SSE4a detection added.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1086 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 10:10:33 +00:00
Jake.Stine 6e82c77e92 Bugfix for r1083. [Don't ask me what I was thinking when I wrote >>10 instead of >>12]
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1085 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 08:30:33 +00:00
arcum42 ad7aa893e9 All right, now that's just silly... (Fix Linux compilation.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1084 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 05:07:18 +00:00
Jake.Stine 31f0be6eb8 Merged drk||Raziel's "BTS Manual Protection" enhancement for the vtlb into /trunk, and combined it with Pseudonim's "Manual Block Clear" enhancement for an ideal two-phase protection system.
Most things should be a bit faster with this new system.  The system is more balanced than the previous one, in that it provides a better overall performance across most games, but some specific FMVs (like Disgaea 2's) will be a bit slower.  On the other hand, others like DQ8 and Kingdom Hearts 2 FMVs get a big speedup.  Almost all in-game stuff should be either the same or faster now.

Set a bunch of ignores for TortoiseSVN users, as suggested in Issue 166.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1083 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 04:24:46 +00:00
Jake.Stine 04beb1f29f wxGui branch: [linux] Minor fixes to the GUI -- Ok/Cancel buttons line up where they should now. :)
CodeBlocks Project Changes:
 * Fixed some absolute folder specifications (/home/pubuntu/) which went unnoticed.
 * Enabled Precompiled header support (speeds up compilation about 40% for me).

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1081 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-28 20:26:43 +00:00
Jake.Stine 01c01e9c34 wxGui branch: [linux] Added workspaces and projects for Code::Blocks IDE. Main workspace is currently located in pcsx2/linux/ (will move it to a top level later), and only Pcsx2/zlib projects are tested (and working!). Haven't gotten to any plugins yet.
The CodeBlocks project is tested for Debug builds only, and will generate the executable binary to /yoursvnroot/bin/ [same as the MSVC/Win32 build does].

* Note: The 'regular' build script is currently broken and I haven't a darnedest clue how to fix it, since my knowledge of Automake doesn't extend past the end of this sentence.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1079 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-28 05:56:22 +00:00
cottonvibes 2a47e807c3 microVU:
- fixed a bug in the logging system causing incorrect branch-to addresses.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1077 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 21:58:20 +00:00
ramapcsx2 7ecc0dd6a3 Fix xgkick delay mistake
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1073 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 19:40:07 +00:00
arcum42 172f933986 wxGui: Doesn't *quite* compile in Linux, but it's close.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1072 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 11:28:20 +00:00
cottonvibes 5183f1eb63 pcsx2:
- fixed the 5 warnings in hacksDlg.cpp

microVU:
- major changes to microprogram logging. logs are now in html format with color-coding, hyperlinks to branch addresses, horizontal rules separating blocks, etc...
- made mmx reg usage for VI regs toggable (off by default now)
- minor changes

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1071 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 10:00:58 +00:00
cottonvibes 13cda40ec8 microVU:
-Finished operand logging, so microprogram logs are very detailed.
-Apparently XGkick specifies the address divided by 16 (thats how zerorecs handles it), so now microVU does the same thing.
-Zerorecs also saves '(PC+16)/8' instead of 'PC+16' in BAL/JALR instructions, so I did the same with microVU...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1070 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 02:20:09 +00:00
Jake.Stine 5d36fe3839 wxGui branch: Holy crap! I converted it to unicode! This was an absolutely maddening experience. [also: Merged with /trunk]
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1069 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 02:04:31 +00:00
cottonvibes a6cbab677f microVU:
-fixed problems with branches jumping to incorrect addresses
-finished implementing clip flag instances
-started adding operand info to logging (also logs branch jump-to addresses)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1059 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-25 06:39:16 +00:00
sudonim1 7f096c63ad Break up very long recompiled blocks.
Perform a branch test before jumping to the next block.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1058 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-25 00:39:07 +00:00
Jake.Stine 4f08dc6bad Linux: A more complete rendition of the GCC compilation fix. Note: GCC requires non-const qualifiers on function pointers and function pointer-templated parameters, but not on void* (didn't know they were that different, did you?).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1057 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-24 13:49:00 +00:00
arcum42 e3b217c57a Remove some consts to appease the gcc 4.3.x gods.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1056 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-24 13:38:16 +00:00
Jake.Stine dff8cf5ac1 Save linux from the dastardly deeds of my previous commit, and fix one last remnant 'i' from the apple-like naming schemes of yesterweek.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1055 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-24 11:44:07 +00:00
Jake.Stine 7394e99ef6 Ok, I lied -- more work on the emitter. I forgot to fix up the Jump/Call api yesterday and, along the way, did lots of major cleanups. :)
(and broke linux, probably!)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1054 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-24 11:25:10 +00:00
arcum42 286c405ce9 Moved a few things around. Redid some of the work I did earlier on Hw with the non-obsolete version of the code. Changed some code not to use defines...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1053 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-24 02:28:14 +00:00
arcum42 52fcc69628 Apply r1046 to ZeroGS DX as well. Ifdef a few things from r1047 so Linux compiles. A few minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1048 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-23 13:15:44 +00:00
Jake.Stine ef565303a5 Finished the emitter, complete with code cleanups! :) (added last few SSE instructions, and inserted placebos for some future additions to the x86 portion, regarding xchg/xadd/etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1047 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-23 12:39:59 +00:00
Jake.Stine c258a8d776 Fixed a bug from r1038. PMADD and HADD instructions had inverted to/from fields. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1045 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-22 18:35:44 +00:00
arcum42 e87d224cc9 Started consolidating the various Dump routines, most of which are broken, into one file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1044 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-22 13:25:26 +00:00
sudonim1 d7341d5b69 Protect manual pages again after running code in them for a while, should speed up some games and probably not significantly slow down any.
Related new speed hack, fast-forward a block starting at 0x81FC0 which some games (FFX) run a lot.  This block is also excluded from the previous feature.
Rearrange configuration file and speed hack dialog.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1040 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 23:30:06 +00:00
arcum42 bfe128cd41 Linux: Fix the last of the GCC compilation errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1039 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 21:42:33 +00:00
Jake.Stine 27a8f3aa9a Added PMADD/HADD/INSERT/EXTRACT instructions, and fixed more cross-compiler problems.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1038 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 21:30:47 +00:00
Jake.Stine 2dcee32079 Linux: Fix some GCC compilation errors. And update the msvc project (somehow didn't get committed last night, but only change header files so prolly didn't break anything).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1037 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 13:54:41 +00:00
Jake.Stine deb642af43 Fixed a small bug from my last commit (mostly only affected debug builds), and implemented PALIGNR/MOVSLDUP/PABS/PSIGN/PEXTR/PINS.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1036 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 05:29:14 +00:00
Jake.Stine 5c312c36c7 Added PMIN/PMAX/PMUL/PCMP/PSHUF/PUNPCK/UNPCK/PACK instructions to the new emitter [this basically finishes all MMX instructions -- just some SSE2/SSE3 and SSE4 mess left!]
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1035 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 01:40:45 +00:00
cottonvibes 50c4a95c06 microVU: added support for logging complete micro programs saved to the files microVU0.txt/microVU1.txt (in the logs folder)
note: currently the code only lists the opcodes without the operands.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1033 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 19:37:41 +00:00
Jake.Stine 73e50f49ea Emitter: Yay! More instructions! All forms of PADD/PSUB/PSRL/PSLL. I'm getting closer!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1032 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 19:25:35 +00:00
Jake.Stine cc48702b17 Emitter: Implemented SQRT/RSQRT/UCOM and all variations of SSE CVTs (omg those were a nightmare) [also patched old emitter to use new MOVD implementations -- missed those earlier].
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1031 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 15:22:02 +00:00
Jake.Stine 18c4765d31 Emitter: Changed a lot of 'i's into 'x's, because...
<JakeStine>sudonim says he likes xMOV better than iMOV as an emitter prefix. I'm wondering if I should go ahead and change it.
<JakeStine>I tend to favor logic, but everyone else just thinks it looks like iMac and iPod
<JakeStine>I just don't want to have to change it more than once.
<cotton>well 'x' is like the algebraic variable, which can be anything
<cotton>so it does kindoff make sense
<cotton>cuz like
<cotton>you have xSOMETHING, where SOMETHING is all the different emitter functions

... I'm sold. :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1030 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 03:10:05 +00:00
ramapcsx2 3ee59f3f4e More work on cycles. FPU is slower than assumed earlier.
Also added COP0 DIE bit handling, that disables the EE's dual issue capabilities.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1029 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 01:40:13 +00:00
Jake.Stine 28c81a2ff1 Bugfix for the new emitter: ([xmm/m128],xmm) form of MOVQ was generating the wrong opcode (introduced in r1011). [other changes are a work in progress for more instruction additions]
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1026 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 00:06:51 +00:00
refraction 457b78e70e Put a different fix for bad J/JALR jumps (Charlie and the Chocolate Factory)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1024 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 22:00:11 +00:00
cottonvibes b7ea57a5d9 microVU:
-implemented the ability to run VU's for x amount of cycles, instead of running till the microprogram is completed (some games can get stuck in infinite loops, so this is needed)
-fixed some errors...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1023 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 21:22:47 +00:00
arcum42 a2d305b9ab The things Visual C++ lets you get away with...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1022 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 20:34:32 +00:00
Jake.Stine 1bc6795200 Emitter :Implemented Packed logical operations (PAND/POR/ANDxx/ORxx/etc), ADDxx/SUBxx/MULxx/DIVxx, and iRCPPS/iRCPSS.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1021 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 20:14:53 +00:00
Jake.Stine d91eb6d1c8 Emitter: Fixed a GCC compilation error; Implemented MOVNT/MOVLH/MOVHL/PMOVMSKB, and tied in all old emitter references to MOVAPS/MOVDQA to the new versions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1020 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 16:34:29 +00:00
ramapcsx2 bb7dc87819 Silly bug made each EE branch count as 0 cycles.
Enjoy some "free" speedups :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1019 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 13:55:09 +00:00
cottonvibes 76e8b6586a microVU: fixed various typos
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1017 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 05:49:16 +00:00
arcum42 f32f705d1d Quick hack to fix Linux compiling. Delete some old code. Minor tweaks that I hadn't gotten around to committing.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1016 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 05:42:33 +00:00
Jake.Stine c19de231f6 Emitter: Implemented MOVAPS/MOVDQA, and renamed some vars/classes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1015 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 05:24:20 +00:00
cottonvibes a2a1d58b4b backup
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1012 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 02:54:56 +00:00
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