Commit Graph

663 Commits

Author SHA1 Message Date
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
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
gabest11 270c8ee3d2 GSdx: more alpha test magic
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1076 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 21:19:50 +00:00
gabest11 752db6056f GSdx: just restoring the vcproj from two revisions ago...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1075 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 20:34:11 +00:00
gabest11 1245659eee GSdx: fixed Issue 182 (narrowed the neq alpha test range to +/-0.4f/255, scream if something broke), and re-enabled something to make DATE faster (counting min/max of the vertices outperforms stencil buffer clearing when there are many small primitive batches).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1074 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 20:17:06 +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
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
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
gigaherz e22a50a7c8 So.. I got an "unlazy" day, and coded a bit more of my iop dma handler.
It's disabled in the code, so that it wont' affect normal users.

The code isn't working properly yet. Only handlers for cdvd and spu2 are in it:
 - the cdvd one doesn't work because of the way pcsx2 handles cdvd currently
 - the spu2 one seems to work, but it's not implemented in the plugin interface, so ATM it's just "faking" it using the old functions.

So really nothing worth testing, just commiting to let people know I'm actually working on it... with long pauses in between. xD

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1052 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-24 01:14:25 +00:00
ramapcsx2 2ac355eb03 Nothing happened here.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1051 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-23 22:05:34 +00:00
ramapcsx2 e843712f58 Reverted the last GIF/IPU change, as per request.
Timing this stuff is evil :/

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1050 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-23 21:58:09 +00:00
refraction 9c7aed9ad4 Readjusted my Gifsplit nonsense to refix Gradius V videos again, its more the value i originally wanted it now anyway :P Fixed Issue 176
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1049 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-23 19:51:34 +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
arcum42 ac0768e9a3 ZeroGS: Apply Zeydlitz's patch from Issue 174.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1046 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-23 10:18:43 +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
arcum42 5bb89fef92 Linux: Minor fix for the hack dialog box.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1043 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-22 10:16:41 +00:00
arcum42 9380ccc85b Linux: Clean up the hack dialog in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1042 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-22 03:19:30 +00:00
arcum42 5744306a8f Linux: Fix compilation, and add in the new hack. I may work on making the dialog look better in a bit...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1041 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-22 02:31:31 +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
mattmenke cb57386d85 LilyPad, Sio.cpp both modified to never allow pads in first slot on either port to be unplugged, as it broke things. Unplugging pads from other slots seems to work fine, when using multitap (When not, obviously no such pads in the first place).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1034 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 23:14:32 +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
refraction b21b81df9f Resolved Issue 168 with FFXII crashing with DMA error due to cancelling a scratchpad transfer before it happened, how silly of me :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1028 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 00:31:03 +00:00
refraction adf6dfdcd4 Fixed Tekken 5 regression causing black screens and missing text
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1027 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-20 00:11:34 +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
mattmenke 256d32037c LilyPad: Fixed a potential threading issue when read input in gs thread is disabled. Odds of the issue being a problem, while perhaps significantly greater than 1/<number of atoms in the universe>, weren't too high.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1025 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-19 23:04:21 +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