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
Major new: insert-from/remove-to file system files.
New: context menu and buttons for the new functionality (including copy which was only available via drag and drop).
Mod: slight text changes (finally should be ready for translations).
Mod: slight cleanup of functionality:
- 'Copy' changed to 'Duplicate', and can be invoked on any card, or via drag and drop to an empty port.
- drag and drop of cards: from a port to the filesystem = eject card (not swap).
- drag and drop of cards: from the filesystem to a port = insert the card to the port.
While it's functionally complete (I hope), I'm not 100% happy with the GUI. Better GUI would have been 2 separate lists (ps2 ports, unused cards) and cards can be moved between the lists. However, creating another list control, laying it out and handling the interactions between the two lists would have been a headache (even more than it already was). The major case which is hampered by the combined list is when the user has many cards on the filesystem, and he wants to insert it to a port, but the ports are way up the list so a scroll is required. This case is handled by the "Insert card" button which is available for any card on the filesystem (prompts the user to select a target port).
Let me know what you think.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4447 96395faa-99c1-11dd-bbfe-3dabce05a288
- Before: The card was reinserted after it was accessed X times (X is 128).
- After: We add another timeout limit: if card was accessed at least Y times and since then Z ms have elapsed, reinsert.
- Previous limit still stays.
Currently, X stays 128, Y is set to 2 times, and Z is set to 1800ms (if a game polls the card once a sec, it will see it reinserted on the 5th access = 4s after the initial access).
Y and Z might need some fine tunning and testing with more games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4435 96395faa-99c1-11dd-bbfe-3dabce05a288
1. automatic apply of create/delete/copy/rename without the annoying "do this and that" dialogs.
2. auto-eject/insert mcd after mcd changes (useful especially when replacing one enabled-and-used card with another).
3. double-click/enter a line at the list invokes rename/create
4. only disabled ports are gray (easier to look at - previously: also empty)
5. when creating a new card, enter (at the name selection box) is enough to continue
6. list now stretched properly with the page.
7. Automatic creation of mcd file when opening the manager and a card is enabled but doesn't exist (easier to manage, would've been created on boot anyway).
8. as a result, now properly handles initial post-install/setup state.
9. auto eject/insert of mcd now displays at the console (also for loadstate, if applicable)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4433 96395faa-99c1-11dd-bbfe-3dabce05a288
* 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
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
* Memorycard settings are now applied on-the-fly (can add/remove/disable memory cards in the BIOS browser and it'll act just as if you plugged or unplugged cards on a real PS2)
* Bugfixed memorycard creation dialog; which wasn't creating the memorycards in the right place (oops).
* Removed the CWD option from the first time wizard (was redundant since adding the custom location option).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3081 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented GS window hiding on suspend (option was there, but not tied in)
* Added Frameskipping options
* Added option for disabling all GS output, for benchmarking EEcore stuffs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2409 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added more colors!
* VM's EE/IOP logs (the ones that come from the emulated games themselves) are colored accordingly: EE are faint cyan, IOP are faint yellow. They're intentionally "hard to read" because 99% of the time they're meaningless trivia (but still cool since it's what the actual devs would have used for developing the games!).
Dev Notes:
* Removed Console.Status (specify blue/green colors manually if you want them).
* Renamed Console.Notice to Console.Warning.
* I changed the overloads so that both char* and wxChar* versions work like printf now (no need to use wxsFormat when working with unicode strings). I also removed wxString& versions of the overloads. This should (I hope) also be an easier port to wx2.9 or 3.0, when that time comes.
* Default log color is now black instead of gray; typically you'll want to manually specify Color_Gray when doing high volume logging (like the EErec's block tracking in debug builds).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2091 96395faa-99c1-11dd-bbfe-3dabce05a288
* Completely new assertion macros: pxAssert, pxAssertMsg, and pxFail, pxAssertDev (both which default to using a message). These replace *all* wxASSERT, DevAssert, and jASSUME varieties of macros. New macros borrow the best of all assertion worlds: MSVCRT, wxASSERT, and AtlAssume. :)
* Rewrote the Console namespace as a structure called IConsoleWriter, and created several varieties of ConsoleWriters for handling different states of log and console availability (should help reduce overhead of console logging nicely).
* More improvements to the PersistentThread model, using safely interlocked "Do*" style callbacks for starting and cleaning up threads.
* Fixed console logs so that they're readable in Win32 notepad again (the log writer adds CRs to naked LFs).
* Added AppInit.cpp -- contains constructor, destructor, OnInit, and command line parsing mess.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1950 96395faa-99c1-11dd-bbfe-3dabce05a288
* Rewrote Savestate code, fixed lots of stuff in PersistentThread, and renamed most "Emu"s to "Sys".
* Removed wxScopedPtr and whipped up our own ScopedPtr that doesn't use boost's fail-style function names (and made it more thread-safe).
* Handling exceptions across threads: Added Clone() and Rethrow() methods to BaseException, and added a Rethrow() to PersistentThread.
* Go rid of AppInvoke macros (those were nasty!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1929 96395faa-99c1-11dd-bbfe-3dabce05a288
* Lots of crashfixes and threading rules compliance (like using wxYield instead of ProcessPendingEvents)
* Killed off some memory corruption
* Better error handling and reporting
* Much speedier suspend/resume during emulation
* Revamped entire savestate system to use a RIFF-style file format (untested, will work on it soon)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1832 96395faa-99c1-11dd-bbfe-3dabce05a288
MemoryCard / Multitap Renovations:
* Memorycards should now support multitap (somewhat untested)
* Implemented a memorycard plugin interface, using the new API defined in PluginCallbacks.h (still prelim and hackish)
* Memorycard settings are saved to ini!
* Multitap is now controlled by PCSX2 instead of the pad plugin (which means no multitap until we implement the gui toggles to enable it)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1817 96395faa-99c1-11dd-bbfe-3dabce05a288
* Moved some files around in an attempt to improve CoreEmu and UI separation.
* Major upgrade to the UI's handling of savestates
* Maintenance work to the C++ exception handling
* Some improved error handling and message popups here or there
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1714 96395faa-99c1-11dd-bbfe-3dabce05a288
* finished most of the new plugin system (branch is buildable and runnable again, but no significant functionality has been added yet).
* Removed STGS code from the branch since I planned to kill it off anyway and it was more work to code proper support for it in wx than to remove it.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1595 96395faa-99c1-11dd-bbfe-3dabce05a288
Keyboard queue fixed up a bit, mainly to favor escape down when PCSX2 is dying.
Fix for ignore bindings being swapped with the swap pad bindings buttons.
Updated version number, thinking of releasing soon. No known bugs, not that much more to do.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@929 96395faa-99c1-11dd-bbfe-3dabce05a288
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
Since backwards compat of savestates got totally broken a few revisions ago anyway, I decided to take this opportunity to revamp the savestate system with some significant cleanups (yes it loses all backward compat once again). Improvements include:
* Reduced state size by removing some unneeded data (faster saves now too!)
* Added string tags to varios "sections" of the states to assist in troubleshooting and retaining savestate compat in future versions.
* Better error handling and fewer memory leaks.
* Removed some unused/obsolete data from psxRegs, Counters, and psxCounters structures.
* Removed all old savestate versioning code, since none of the old versions are supported anymore anyways.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@815 96395faa-99c1-11dd-bbfe-3dabce05a288
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
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
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
Memorycard Fixups:
* Replaced the old disfunctional memcard manager with a neat and practical one, with options!
* Improved memcard hotswapping support.
* Added memcard CRC checks to savestates, so that memory cards are only ejected when needed (should fix Guitar Hero problems from Issue 32)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@532 96395faa-99c1-11dd-bbfe-3dabce05a288
Pcsx2: This time the Pg icon really has been replaced/reverted to the original (dunno why my last attempt didn't commit, oh well). Also improved the syntax of the SourceLogs; fixing if/else statement scoping problems.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@470 96395faa-99c1-11dd-bbfe-3dabce05a288
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
Added several new files to organize some large files: HwRead.cpp, HwWrite.cpp, MemoryCard.cpp, MemoryCard.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@459 96395faa-99c1-11dd-bbfe-3dabce05a288
Also in this commit: Some minor code cleanups to sio.cpp, and added some missing setup code to the Iop Counters savestate loader; psxhblankgate and psxvblankgate weren't being re-initialized.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@456 96395faa-99c1-11dd-bbfe-3dabce05a288