Commit Graph

358 Commits

Author SHA1 Message Date
Jake.Stine 4bee22a4cd newHostVM branch: Implemented VM reservation feature for all recompilers.
* SuperVU note: SuperVU recompiler now uses two separate 8mb caches for VU0 and VU1 (needed in order to simplify/saneify the reserve/alloc stages of pcsx2 app startup).
 * Added MemsetFast.inl, which houses SSE intrinsic versions of memset and memzero, for use on aligned data targets.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@3975 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-27 19:18:46 +00:00
Jake.Stine 01541f2c92 newHostVM branch: work-in-progress stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/branches/newHostVM@3958 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-22 16:23:52 +00:00
Jake.Stine e30892cf34 wxIsoFile: ... and some more fixes.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxIsoFile@3944 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-19 09:25:44 +00:00
Jake.Stine ca9e250837 wxIsoFile: And a couple more compiler fixes.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxIsoFile@3942 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-18 16:09:00 +00:00
Jake.Stine d5bc947e8d wxIsoFile branch: fix missing includes and gcc compilation stuffs.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxIsoFile@3941 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-18 15:46:05 +00:00
Jake.Stine 2b4d7cc384 wxIsoFile branch: (needs linux testing)
* Convert IsoFileFormats.cpp into a class.
 * Use wxFile and wxFileInputStream instead of windows/posix specific file functions.
 * Added new ScopedAlloc classes, which are very simple dependency-free templates for exception-safe allocations.
 * FastFormatString: Improved performance ad fixed an obscure bug.
 * Drag&Drop (UI) - Improved the friendliness and responsiveness, so that PCSX2 doesn't end up tying up an explorer window while it prompts the user or issues error messages.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxIsoFile@3934 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-18 01:40:49 +00:00
Jake.Stine e63314f545 * Bugfix for Issue 850 - memorycards being deleted when swapping slots.
* Preliminary work done for Issue 735 : allowing specified custom memorycard filenames.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3869 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-10-04 17:12:28 +00:00
Jake.Stine 5fd2cf97d3 Made some minor tweaks to SIF to test some theories and fix some broken-looking code -- please report any regressions. Also commented some of SIF and IPU stuff. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3812 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-20 12:47:17 +00:00
Jake.Stine 46b89abb72 * Move the GIF register handlers from dmac to hwRead/hwWrite (like the VIF registers they aren't actually DMA-related).
* Minor cleanups to trace logging and FastFormat string stuff.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3724 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-04 14:11:50 +00:00
Jake.Stine bcac59ee4f Linux/GCC fixes. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3705 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-31 05:47:54 +00:00
Jake.Stine 1cac8d3948 * Added subdivided content to the u128 type (changed it from a struct to a union, added _u32[4], _u16[8], etc).
* Added ToString methods to the u128 type.
* Bugfixes for the FastFormat string utilities, namely when writing UTF8 content via the UTF16 formatter.
* MSVC: Removed obsolete disabling of unsigned/signed mismatch warning (4018)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3703 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-31 05:14:00 +00:00
gregory.hainaut@gmail.com 112800cb98 common, GSnull, zzogl-pg, SPU2null: add more safety to some fclose functions. Avoid a bunch of double free and memory corruption.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3671 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-20 11:13:40 +00:00
Jake.Stine 91851c6222 Trace Logging:
* Cleaned up trace logging and switched from C++ initializers to C-style const arrays.  Kinda mixed on which I like better, but decided to go with the general rule of thumb that a bit less C++ weirdness is probably a good thing.
 * Removed __assume() feature from pxFail and pxFailDev, due to the likeliness of unwanted/unexpected compiler behavior (MSVC only).  To hint the compiler that code should be unreachable, explicitly use pxAssume(false).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3643 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-16 15:01:13 +00:00
Jake.Stine 20adde44a6 PCSX2/EEcore:
* Now using SSE for all hardware register reads and writes (mainly MFIFO stuff) [don't expect a speedup, really -- its more of a code simplification in this case].
 * [refactoring] Changed the EE Memory (vtlb) to use the u128 type instead of u64 for the 128-bit loads/stores (see mem128_t typedef)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3626 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-09 15:42:13 +00:00
Jake.Stine 8375b0a989 Refactoring:
* Added __fi and __ri, which are abbreviations for __forceinline and __releaseinline.
 * Added some static qualifiers to functions in mVU, MMI ops, and others where appropriate.
 * Removed some unnecessary __fastcall qualifiers (since GCC gets funny sometimes when you combine __fastcall and inlining).
 * Made _1mb, _16mb, _1gb values common to all emulation code (moved from newVif/mvu to Common.h) -- they're useful! :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3624 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-09 04:10:38 +00:00
gregory.hainaut 04e6c5ab02 Spu2null, padnull, gsnull, CDVDnull, onepad, spu2x:
Add 2 attributes to the interfaces functions
 - externally_visible: avoid gcc to remove the function when lto is enabled 
 - visibility("default"): default == public... Allow to hide all others symbols: see http://gcc.gnu.org/wiki/Visibility for details

onepad:
* Remove __cplusplus define, everythings is in C
* define 2 interfaces functions with EXPORT_C_ instead of CALLBACK.

cmake:
* add recent added .h files
* add fvisibility optimization. Plugins size was reduced of ~10% much more than expected :)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3611 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-06 11:43:21 +00:00
Jake.Stine 912872af80 Introducing a mostly revamped Tracelog and Console log system. Various console log sources can now be toggled on/off on the fly, allowing end users to enable more verbose logging when they encounter problems. Both console and trace sources can be given automatic prefixing.
DevNotes:  DevCon logs are now available in *Release* builds as well as Devel builds, and can be enabled from the Console window's "Sources" menu.  They are disabled by default in Release builds, and are always enabled regardless of the ini setting in devel builds.  Debug logs are still strictly available in debug builds only.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3609 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-06 05:46:09 +00:00
Jake.Stine 28ba6d7520 More GCC fixes for SafeArray (changes to the BoundsCheck macro fix some meaningless warnings, not really important otherwise).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3607 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-05 12:48:49 +00:00
Jake.Stine 6531640844 Yay! TlsVariable fixed properly. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3606 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-05 12:21:19 +00:00
arcum42 24aac1f1f2 After 4 attempts, I suppose it's my turn...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3605 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-05 09:54:59 +00:00
Jake.Stine cfc3944a90 GCC/TlsVariable compile fix attempt #4: randomly throwing darts at members of the C++ standards committee.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3604 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-05 05:03:52 +00:00
Jake.Stine d88cf47adb Linux: Likely fix for gcc errors compiling SafeArray
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3602 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-05 01:39:31 +00:00
Jake.Stine d231c537b9 Linux fix for TlsVariable.inl (I hope). SafeArray fix will have to come later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3601 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-04 19:36:15 +00:00
Jake.Stine c439d1bef2 Minor refactoring; doing this just to help minimize the changelog spam of the next commit (not that it'll help much)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3600 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-04 19:10:41 +00:00
Jake.Stine e5f87e068b Changed the FastFormatString functions into nifty little classes that use TLS for their buffer workspaces. Result: a fully concurrent printf with zero malloc/free overhead. Use the pxsFmt macro for them -- which is a fully working alternative to wxsFormat().
(pxsFmt has been applied to console/logging only for now.  Will apply it to more later, once the code is confirmed stable)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3596 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-03 22:18:19 +00:00
Jake.Stine 6ab55020bd Improved TlsVariable; going to be putting it to good use soon.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3594 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-03 04:36:48 +00:00
Jake.Stine 8984e80c24 Add an SPU2reset callback to SPU2 plugins, needed to put a stop to SPU2 sound generation when resetting the PS2 VM. If a plugin doesn't implement it directly, it automatically falls back on a manual soft reset using the SPU2's builtin software Core0/1 register writes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3575 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-27 03:41:18 +00:00
Jake.Stine b6af82efa8 GSdx / zzogl-pg / pcsx2:
* Implemented support for legacy GS plugins (considered anything prior to the Reordering merge).
 * Added a lot of 'const' qualifiers to the GSgifTransfer functions in both GSdx and zzogl.

DevNote: GS plugins shouldn't be modifying the data provided to them from PCSX2 -- zzogl wasn't, GSdx was.  I had to do a little bit of juggling to remove the mem modifications from GSdx's TEX0/TEX2 handlers.  With luck, nothing's broken. ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3536 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-19 15:49:30 +00:00
Jake.Stine 2d4c7aaa25 ReorderingMTGS: More tweaks to asm memcpy files (made code changes to Linux side, comment changes to Win32 side).
Linux Devs: Let's get this memcpy thing finalized, if its not already.  I'd like to merge the current state of this branch into trunk as soon as possible, since its currently looking very stable and has been, up to this point, a code cleanup and stabilization project.  (more invasive changes coming soon)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3518 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-17 15:03:45 +00:00
arcum42 d10b60d560 ReorderingMTGS: Change the location of the Linux version of memcpy_amd_qwc for the moment, so it compiles.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3501 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-16 09:50:36 +00:00
Jake.Stine 1a8dcc5598 ReorderingMTGS: Sync with trunk
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3492 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-15 05:36:38 +00:00
Jake.Stine c8f16a1cde ReorderingMTGS: Linux memcpy attempt #1527, Action!
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3489 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-14 14:40:13 +00:00
Jake.Stine e793f91993 ReorderingMTGS: Linux asm memcpy fixes. (untested)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3488 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-14 14:23:59 +00:00
arcum42 6ded71561c ReorderingMTGS: Revise memcpy_amd_qwc for Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3484 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-14 09:19:46 +00:00
gregory.hainaut 20292ca15c [x86emitter]: Fix spaming warning of comparaison integer vs non-integer
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3481 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-13 20:03:10 +00:00
arcum42 d1e0922417 ReorderingMTGS: Initial Linux version of memcpy_amd_qwc. Disabled for now, till I get a chance to look it over better.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3477 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-13 10:48:35 +00:00
arcum42 f6d0222a8c ReorderingMTGS: Hackfix Linux, until some assembly is written.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3476 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-13 09:28:24 +00:00
Jake.Stine 56d3982dc5 * Minor optimization to GIFpath, by utilizing the precached value for numregs in place of a convoluted test against NREG.
* Disabled the SSE store version of memzero (no performance benefits and it was messy anyway)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3473 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-13 04:36:39 +00:00
Jake.Stine 934578c8fe ReorderingMTGS: Added a new optimized memcpy_amd_qwc, for use by GIFpath copies. After much studying, we determined this is about as efficient as memcpy will ever get, for what we're doing with it.
DevNot:  Win32-only at the moment -- needs a GAS port (but that shouldn't be hard).  I made some notes in the code about it.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3472 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-12 19:40:30 +00:00
Jake.Stine 383c58ba3e Added a third alternative for memcpy_vibes. This one uses SSE intrinsics and is able to inline fully (no call/ret overhead).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3468 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-12 04:13:47 +00:00
cottonvibes ee5192abb5 Attempted generated sse memcpy using movaps.
Seems slower than memcpy_amd_ so didn't enable it.

I tried two different versions, one generates 0x400 different functions, and the other generates 1 function and jumps to the correct entry point.
The later seems faster, but still slower than memcpy_amd_...
(only tested the title-screen of GoW though...)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3465 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-11 15:40:12 +00:00
arcum42 472358345a ReorderingMTGS: zzogl-pg: Add GSgifTransfer. pcsx2: Add an include so Linux compiles.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3459 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-11 06:16:16 +00:00
Jake.Stine a9084741bc ReorderingMTGS:
* Implemented GIFPath_CopyTag, which performs a "copy-in-place" while parsing tags (big speedup over the old parse-then-copy strategy, especially with the SSE intrinsics I've included for kicks).
 * Removed the old ringbuffer 'restart' mechanism and replaced it with a truly free-flowing wrapping mechanism.  Utilizes the ringbuffer more efficiently, and removes quite a bit of overhead from the MTGS's PrepDataPacket call.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/ReorderingMTGS@3458 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-11 04:53:50 +00:00
Jake.Stine c3006f6022 The updated PS2edefs.h for the new GSgifTransfer callback might help. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3456 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-11 04:46:32 +00:00
gregory.hainaut 84d94276e1 [copyright]
* Add missing copyright according issue 792
* Miss few files from the previous commit ^^


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3429 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-08 16:40:44 +00:00
Jake.Stine ae92387cea * Fix patches, which were broken in r3398 (they weren't being applied).
* Remove some dangerous uses of pxAssume -- pxAssume should only be used for simple in-place operations, and should never call functions (my fault too, I was the one who was using it wrong).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3410 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-07 07:41:44 +00:00
Jake.Stine 641c3b56cf microVU: avoid making unnecessary copies or instances of xRegister classes. Cuts out overhead which admittedly shouldn't even be there except MSVC 2008's C++ optimizer can't optimize constructors to save its life.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3408 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-07 06:42:35 +00:00
sudonim1 b53a92e019 microVU: converted all code to the new emitter style. If anything breaks, blame the guy below me.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3406 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-06 20:05:21 +00:00
Jake.Stine 688674bed9 Emitter: Major refactoring / renaming job. Improved type checking and usefulness of xAddress* (Void, 32, 64, etc) types.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3397 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-05 19:15:19 +00:00
Jake.Stine 4f9a5c6876 Remove all MMX and XMM register freeze code.
DevNote: I could have left the code for the freezes in, except I *really* don't want us to ever have to resort to using such a system ever again in the future.  For anything. (its just not safe on modern optimizing compilers)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3392 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-05 01:12:38 +00:00