pcsx2/pcsx2
cottonvibes c05dc759e3 Big gif transfer code rewrite!
Pcsx2 now has a gifUnit class which acts like the ps2's gif and executes a single gif transfer at a time (and performs path arbitration according to priority and path3 slicing).

This new code is generally a speedup for most games. Particularly VU heavy games like GoW.
This revision breaks old saved state compatibility so don't update if you wish to keep playing with your old saved states.
Leave comments if this revision fixes or breaks anything...

Message to GS Plugin authors:
This new code now uses only 1 gif callback to transfer data to the gs plugin (GSgifTransfer).
pcsx2 also is garaunteed to send full GS primitives to the plugin. So you don't have to account for partial-transfers anymore.

Thanks goes out to shadowlady who tested around 500 games for me :D

Note 1: The old gif code is still in this revision, and can be enabled by the USE_OLD_GIF macro. The old code will be deleted soon.
Note 2: This revision also enables assertion dialogs in devel builds, and changed a lot of assume cases into assertions.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4821 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-07-24 13:02:50 +00:00
..
CDVD Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
DebugTools PATH3 Masking: Tweaks mainly for Path3Masking to fix TOCA3, This is the best Path3 masking is ever going to get, there might be an occasional glitch, but nothing major *fingers crossed*, Now have the ability to log Path3 stuff seperately which will help if problems do arise. 2011-02-01 01:24:37 +00:00
Docs Fixing a few problems with the docs. /trunk commit. 2011-04-08 22:33:07 +00:00
IPU Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Linux codeblock: add gtk include file and remove some define 2011-06-13 16:47:46 +00:00
RDebug Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
System Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Utilities 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(). 2010-08-03 22:18:19 +00:00
ZipTools Fixed inconsistent newlines / added as many svn:eol-style=native properties as I could without killing myself. 2011-03-25 05:06:49 +00:00
gui Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
ps2 Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
windows Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
x86 Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
3rdparty Linux: Make the build system even more hackish, to avoid issues with AC_OUTPUT and automake 1.11. 2009-06-07 07:13:54 +00:00
CMakeLists.txt cmake: generate resource outside of the source tree. 2011-07-17 14:21:09 +00:00
COP0.cpp Made 2 spamming logs go to DbgCon and fixed a few compiler warnings. 2011-02-26 01:18:56 +00:00
COP0.h * Rename cpuBranch[...] functions and vars to cpuEvent[...], which should be more clear and consistent as to their true purpose. (to clarify: events typically run during cpu branch instructions, but most branches don't actually have anything to do with whether or not there are events pending or events being run). 2010-09-05 15:38:14 +00:00
COP2.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
Cache.cpp Minor EE Cache emulation changes (No fixes) 2011-04-30 22:19:20 +00:00
Cache.h Cache Emulation: Updated cache emulation for new VTLB, Dead or Alive 2 (Japanese Version only) now playable. You can enable this under the Recompiler options by ticking the "Enable EE Cache" box, however it will only work with the EE in Interpreter mode. Also fixed some cache bugs from the old implementation. 2011-02-17 21:27:24 +00:00
Common.h * Redid the VIFunpacker's wrapped memory address detection (a bit more compact now) 2010-08-24 17:53:27 +00:00
Config.h Added GameFix for Transformers and Test Drive Unlimited to solve the slow booting issue, Test Drive is now playable at least :P. Also tidied up a small bit of VIF DIRECT/HL, no functional changes made. 2011-04-30 18:30:31 +00:00
Counters.cpp Adjusted VSync to work more like the PS2 does it, also involves a small change which "might" sold some half screen issues. Fixed a couple of counter log bugs too (caused it to crash when EE Counter logs were enabled) 2011-05-05 22:22:45 +00:00
Counters.h MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
Dmac.h - Standardized DMA Source chains, all DMA's now act exactly the same (within reason) Explanation for this in Hw.cpp. Consequently this fixed a hack id done for FFX videos (Not the one there is a game fix for) 2010-11-19 16:29:28 +00:00
Dump.cpp * Rename cpuBranch[...] functions and vars to cpuEvent[...], which should be more clear and consistent as to their true purpose. (to clarify: events typically run during cpu branch instructions, but most branches don't actually have anything to do with whether or not there are events pending or events being run). 2010-09-05 15:38:14 +00:00
Dump.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
Elfheader.cpp Various console log changes. Made it a bit more colorful, too :) 2011-03-22 01:38:13 +00:00
Elfheader.h Reload disc info as needed, gets some "codebreaker" ELF which switches to the normal boot sequence after a while closer to working. 2010-05-28 12:13:51 +00:00
FPU.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
FiFo.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
GS.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
GS.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
GSState.cpp Refactoring: 2010-08-09 04:10:38 +00:00
GameDatabase.cpp Fixed inconsistent newlines / added as many svn:eol-style=native properties as I could without killing myself. 2011-03-25 05:06:49 +00:00
GameDatabase.h * Fix patches, which were broken in r3398 (they weren't being applied). 2010-07-07 07:41:44 +00:00
Gif.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Gif.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Gif_Unit.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Gif_Unit.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Hardware.h Merge const qualifiers and cleanups from ReorderingMTGS: Includes the VIF DIRECT changes, which seem to be stable this time. ;) 2010-07-22 12:20:11 +00:00
Hw.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Hw.h Minor cleanups for the new virtual memory alloc/reserve system: 2010-12-30 06:21:07 +00:00
HwRead.cpp Added GameFix for Transformers and Test Drive Unlimited to solve the slow booting issue, Test Drive is now playable at least :P. Also tidied up a small bit of VIF DIRECT/HL, no functional changes made. 2011-04-30 18:30:31 +00:00
HwWrite.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Interpreter.cpp newHostVM: 2010-11-03 14:18:30 +00:00
IopBios.cpp And a small one last: 2011-01-24 19:28:49 +00:00
IopBios.h Implemented a better "host:" rewrite system, which takes the path of the elf being loaded as the root of the virtual "host:". This is the same behaviour as pc-side ps2link clients. The code could probably be cleaned up a lot or made more configurable, if someone wants to improve it. 2010-06-26 21:17:21 +00:00
IopCommon.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopCounters.cpp * Rename cpuBranch[...] functions and vars to cpuEvent[...], which should be more clear and consistent as to their true purpose. (to clarify: events typically run during cpu branch instructions, but most branches don't actually have anything to do with whether or not there are events pending or events being run). 2010-09-05 15:38:14 +00:00
IopCounters.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopDma.cpp 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. :) 2010-09-20 12:47:17 +00:00
IopDma.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopHw.cpp Converted IOP to use a static/global hardware register allocation. (same as I did for the EE a few weeks ago). 2010-09-23 19:44:55 +00:00
IopHw.h Converted IOP to use a static/global hardware register allocation. (same as I did for the EE a few weeks ago). 2010-09-23 19:44:55 +00:00
IopIrq.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopMem.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
IopMem.h newHostVM: (WIP, may not run!) -- Applied host virtual memory mapping to the EE/IOP/VU main and on-chip memory banks. Added a new OO-based system allocator object for handling said virtual memory resources. Plus many code cleanups, and some added mess that needs to be cleaned up. 2010-11-15 14:05:02 +00:00
IopModuleNames.cpp Fixed inconsistent newlines / added as many svn:eol-style=native properties as I could without killing myself. 2011-03-25 05:06:49 +00:00
IopSio2.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopSio2.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
MMI.cpp Couple clarifications and fixed warnings. 2011-02-26 03:20:58 +00:00
MTGS.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Mdec.cpp spu2-x: Misc Alsa stuff. Added a few missing files into the pcsx2 codeblocks project. 2010-10-13 09:15:54 +00:00
Mdec.h Removed all trailing whitespace in *.c *.cpp *.h because it irritates me. 2010-04-25 00:31:27 +00:00
Memory.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Memory.h Cache Emulation: Updated cache emulation for new VTLB, Dead or Alive 2 (Japanese Version only) now playable. You can enable this under the Recompiler options by ticking the "Enable EE Cache" box, however it will only work with the EE in Interpreter mode. Also fixed some cache bugs from the old implementation. 2011-02-17 21:27:24 +00:00
MemoryTypes.h newHostVM: (WIP, may not run!) -- Applied host virtual memory mapping to the EE/IOP/VU main and on-chip memory banks. Added a new OO-based system allocator object for handling said virtual memory resources. Plus many code cleanups, and some added mess that needs to be cleaned up. 2010-11-15 14:05:02 +00:00
NakedAsm.h Added a threadless state managed IPU. The code is still in it's early stages and will now be worked on to optimize for speed. The first optimization is to increase the read size in Vlc.h from 32 bit to 64 bit. 2010-07-26 10:18:28 +00:00
Patch.cpp Made 2 spamming logs go to DbgCon and fixed a few compiler warnings. 2011-02-26 01:18:56 +00:00
Patch.h Fix patch application, which I broke in r3273. :) 2010-06-23 01:15:09 +00:00
Patch_Memory.cpp Cleanup patch.cpp... 2010-05-17 05:18:11 +00:00
Patch_Obsolete.h Cleanup patch.cpp... 2010-05-17 05:18:11 +00:00
PathDefs.h i18n: on linux seach l10n file also in Langs directory 2011-01-22 14:50:05 +00:00
Pcsx2Config.cpp Added GameFix for Transformers and Test Drive Unlimited to solve the slow booting issue, Test Drive is now playable at least :P. Also tidied up a small bit of VIF DIRECT/HL, no functional changes made. 2011-04-30 18:30:31 +00:00
PluginManager.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Plugins.h pcsx2: zzogl:onepad: gsdx: merge linux-gsopen2 branch (4730) into trunk 2011-06-12 14:48:36 +00:00
PrecompiledHeader.cpp [copyright] 2010-07-08 16:40:44 +00:00
PrecompiledHeader.h wxSavestates branch: (partially sync'd with trunk**) 2010-12-14 07:28:05 +00:00
R3000A.cpp UI bugfix for speedhacks being improperly applied even when speedhacks were disabled. 2010-09-29 13:48:36 +00:00
R3000A.h newHostVM: improving error handling and memory management (WIP) 2010-10-28 13:14:18 +00:00
R3000AInterpreter.cpp newHostVM: 2010-11-03 14:18:30 +00:00
R3000AOpcodeTables.cpp R3000A: rewrote module import table hooks for more extensive HLE in the near future. 2010-05-04 15:03:16 +00:00
R5900.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
R5900.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
R5900Exceptions.h Mostly-new host exception system (host meaning the C++ / SEH exceptions, not the VM's PS2/MIPS exceptions). Main purpose is to make specifying diagnostic and end-user messages more sane. Secondary goal was to remove the need for C++ multiple and virtual inheritance, which are buggy in MSVC still, and problematic even when they aren't buggy. 2010-06-28 18:03:54 +00:00
R5900OpcodeImpl.cpp * Move the GIF register handlers from dmac to hwRead/hwWrite (like the VIF registers they aren't actually DMA-related). 2010-09-04 14:11:50 +00:00
R5900OpcodeTables.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
R5900OpcodeTables.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
SPR.cpp Disabling some console spam (actually just changing it to a dev logging spam :p) that was causing a huge slowdown in Star Trek Voyager - Elite Force. 2011-05-04 11:53:24 +00:00
SPR.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
SamplProf.h newHostVM: 2010-11-03 14:18:30 +00:00
SaveState.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
SaveState.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
ShiftJisToUnicode.cpp [copyright] 2010-07-09 15:36:09 +00:00
Sif.cpp Changed SIF and IPU macros for hw register mappings into references. (-> into .) 2010-09-05 02:51:36 +00:00
Sif.h - Fixed an assert in the first time wizard and added a note about the portable.ini 2011-02-26 19:02:25 +00:00
Sif0.cpp Silence a SIF dma warning. 2011-07-19 10:56:48 +00:00
Sif1.cpp Silence a SIF dma warning. 2011-07-19 10:56:48 +00:00
Sifcmd.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
Sio.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Sio.h MCD manager: refinements and improvements: 2011-03-14 21:20:23 +00:00
SourceLog.cpp pcsx2 i18n: 2011-02-25 18:16:53 +00:00
Stats.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
Stats.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
SysForwardDefs.h pcsx2 0.9.9 a new journey begin ;) 2011-05-02 18:59:32 +00:00
System.cpp gsdx: add also a check of m_windows to play it self. 2011-04-09 08:39:54 +00:00
System.h i18n: add some missing strings. Remove SetDiagMsg one. 2011-03-29 18:21:54 +00:00
VU.h MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
VU0.cpp General emulator memory work, regarding my new policy that most (or all) cpu and hardware registers should be standard globals, as it makes our lives a lot easier in general (and their memory footprint is small so it won't adversely affect the virtual memory availability of the host operating systems). Details: 2010-08-27 03:21:16 +00:00
VU0micro.cpp MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
VU0microInterp.cpp MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
VU1micro.cpp MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
VU1microInterp.cpp MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
VUflags.cpp Refactoring: 2010-08-09 04:10:38 +00:00
VUflags.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
VUmicro.cpp * Rename cpuBranch[...] functions and vars to cpuEvent[...], which should be more clear and consistent as to their true purpose. (to clarify: events typically run during cpu branch instructions, but most branches don't actually have anything to do with whether or not there are events pending or events being run). 2010-09-05 15:38:14 +00:00
VUmicro.h microVU: Merge some changes I did in the ReorderingMTGS branch with trunk. 2011-03-07 20:06:49 +00:00
VUmicroMem.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
VUops.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
VUops.h General emulator memory work, regarding my new policy that most (or all) cpu and hardware registers should be standard globals, as it makes our lives a lot easier in general (and their memory footprint is small so it won't adversely affect the virtual memory availability of the host operating systems). Details: 2010-08-27 03:21:16 +00:00
Vif.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif0_Dma.cpp Updated the FFX Video Fix, should work again now. Added DMA End log messages to DMA logging. Hopefully one day someone will reverse engineer the FFX video code so we can see if we are really doing something really wrong or if the code is just dire >.< 2011-02-24 11:07:13 +00:00
Vif1_Dma.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif1_MFIFO.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif_Codes.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif_Dma.h Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif_Transfer.cpp Big gif transfer code rewrite! 2011-07-24 13:02:50 +00:00
Vif_Unpack.cpp Slightly safer way of handling filling writes in the Dynarec, disabled a debug message i don't think we need any more. 2011-04-02 21:18:14 +00:00
Vif_Unpack.h GCC compilation fixes. 2010-09-13 22:52:04 +00:00
bin Linux: A little more consistancy about using the System.h wrappers, restore the bin symlink, and a few other minor changes to plugins. 2009-02-21 11:14:09 +00:00
cheatscpp.h Removed all trailing whitespace in *.c *.cpp *.h because it irritates me. 2010-04-25 00:31:27 +00:00
sio_internal.h Completed support for various MemoryCard sizes (16, 32, 64 megs cards). 2010-05-26 19:45:33 +00:00
vtlb.cpp Minor EE Cache emulation changes (No fixes) 2011-04-30 22:19:20 +00:00
vtlb.h newHostVM: Cleanups, improved error messages. 2010-11-16 04:53:52 +00:00