Commit Graph

34 Commits

Author SHA1 Message Date
TellowKrinkle 738c8cb630 Core: Remove trailing whitespace from all files 2022-09-16 00:52:28 -05:00
Connor McLaughlin d535331b4b Misc: Remove __fastcall, __fc, __concall and friends
These have no meaning in x64 (apart from throwing compiler warnings),
and we don't do 32-bit anymore. Also saves needing to include
`Pcsx2Defs.h` in files which don't otherwise need it.
2022-05-12 14:58:03 +01:00
TellowKrinkle f7476dfb63 Core: Replace alignment macros with alignas 2021-11-14 13:52:20 -06:00
refractionpcsx2 154ed57633 VU Int: Remove need to pass VU struct to XGKick function.
It's always VU1, so we don't need to tell it.
2021-09-13 20:55:53 +01:00
refractionpcsx2 73bb8e4fdf VU Int: Make XGKick flush on VU program end
Some games like to write directly to VU memory once the program has finished and I have no easy way to update the kick without being super slow. so for now, we'll just flush it.
2021-09-12 16:12:31 +01:00
refractionpcsx2 2409486c2d VIF: Fixed undefined behaviour of Unpack V3-16 in final QW write.
Fixes Homerun
2020-10-18 17:24:43 +01:00
chaoticgd 63a6e94444 Fix VIF unpack log message in Vif_Unpack.cpp for VU1 2019-12-23 01:17:25 +00:00
refractionpcsx2 2ffdbe781f Vif-Int: Fix mode = 3 2016-01-29 23:11:54 +00:00
refractionpcsx2 0147e6cb8d Vif: Fix for Unpacks when WL = 0. (KH2 + Tests) Removes a long standing hack.
Note: CL = 0 behaviour is still not completely accurate, the first vector is incorrect, but will look at that another day, need a game that does it first really so we can see if it helps :)
2016-01-25 21:43:53 +00:00
refractionpcsx2 dfd52282a7 Vif: Fix for Warship Gunner 2 geometry holes. Fixes Issue 665 2015-11-08 18:42:55 +00:00
refractionpcsx2 151fe43551 Vif Unpacks: After further tests on the PS2, think i have these down.
-Corrections to V3-16, the rest was right (woohoo!)
2015-06-06 00:05:52 +01:00
refractionpcsx2 46b0a790d4 Vif: Fix up V2-32 and V3-32 Indeterminate Data on MTVU
- MTVU didn't do this correctly as it relied on vif packet size to check alignment, which it doesn't know.
- Packet sent to MTVU was too small for V3-32 to work properly, rounded up to nearest QW
- V2-32 fixed up on interpreter which was just wrong, can't fix V3-32 in it's current setup, but who cares ;)

These could still be wrong, but I can't confirm this until i run larger tests on my PS2
2015-06-05 16:24:03 +01:00
archshift fb9c24b900 Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
refraction@gmail.com 0e80111499 VIF/VU: Removed all the everblue crap, found another way of doing it. As the savestate bummp wasn't needed anymore, i've put it back again. savestate users rejoyce?
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5546 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-02-05 23:30:25 +00:00
refraction@gmail.com c30f67b767 VIF/VU: Fixes for Everblue and Hitman 2 from r5404, details below. Savestate bump needed, sorry. Also fixed a copy/paste bug i noticed along the way in vif0FBRST.
Everblue: Slightly messy fix, not as nice as id hope, but it seems to work, we need to remember VU programs written to the VU so we can check if an unpack is modifying it.  This retains the behaviour of the Snowblind engines whilst fixing everblue.

Hitman 2: Our vif0/1VUFinish() routing which works in conjunction with the delays wasn't paying attention to if the VIF was stalled or not and reran it before the game wanted it to, now fixed.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5544 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-02-05 00:42:44 +00:00
refraction 9bb28d3fec Gif/VIF:
-Path3 Masking Changes, Gif Unit now rolls the DMA back (Path3 only) if it is using the Masking and finishes mid DMA packet.
-Vif modified to be simpler in the transfer loop and fixes issues where Flushes are called at the end of a DMA packet.

Game fixes from changes:
Outrun 2006 - Water textures and general flickering fixed, also SW mode not required for half screen issue. Caused by GIF Path 3 stopping in the wrong place.
Star Wars Episode 3: Revenge of the Sith - DMA timeouts caused by Flush at end of packet.
Had to break savestates (version change!), sorry :(

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5224 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-05-24 18:46:00 +00:00
cottonvibes ac9bf45f98 pcsx2: Implemented Threaded VU1 :D
Threading VU1 took a lot of rewrites and new code to make possible (MTGS, microVU, gifUnit...), but we finally got to the point where it was feasible, and now we've done it! (so now everyone can stop complaining that pcsx2 only takes advantages of 2 cores :p).

The speedups in the games that benefit from it are great if you have a cpu with 3+ cores (generally a 10~45% speedup), however games that are GS limited can be a slowdown (especially on dual core cpu's).

The option can be found in the speedhacks section as "MTVU (Multi-Threaded microVU1)". And when enabled it should should show the VU thread-time percentage on the title bar window (Like we currently do for EE/GS/UI threads).

It is listed as a speedhack because in order for threading VU1 to have been a speedup, we need to assume that games will not send gif packets containing Signal/Finish/Label commands from path 1 (vu1's xgkick). The good news is very-few games ever do this, so the compatibility of MTVU is very high (a game that does do this will likely hang).

Note: vs2010 builds and Linux builds need to be updated to include "MTVU.h" and "MTVU.cpp".


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4865 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-08-12 02:31:49 +00:00
refraction 15f7b2b6d8 Slightly safer way of handling filling writes in the Dynarec, disabled a debug message i don't think we need any more.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4528 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-04-02 21:18:14 +00:00
ramapcsx2 c7257797a1 Made some more mVU messages tied to verbose flag.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3842 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-26 19:02:13 +00:00
Jake.Stine 59ebdf3e60 GCC compilation fixes.
(note to devs: a sure-fire fix for GCC's templated function problems is to typecast the templated function to itself explicitly -- works nicely for all versions of GCC and the ?: operator as well).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3763 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-13 22:52:04 +00:00
Jake.Stine 2f8f86a3eb Significant VIFunpack retooling. Interpreters are considerably more efficient, and Recompilers are slightly more efficient. Details:
* All remaining code for handling partial/fragmented unpacks removed.
 * vifRegs.NUM is now accurately simulated when queuing data from fragmented unpacks.
 * Reduced the VIFunpack fragment buffer from 1MB to 4KB (max size of an unpack due to NUM being limited to 8 bits).
 * Removed vif/vifRegs globals formally used by VIF interpreters (everything relies on the templated vifIdx now -- simpler and faster!)
 * g_vifMask vars are integrated into vifStruct.
 * All VIF mask register stuff uses the SSE-friendly vifStruct.MaskRow/Col vars now.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3762 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-13 21:13:10 +00:00
Jake.Stine da9c955135 * Simplified VIFunpack's C-based interpreters (removed ODD size handlers and unused data)
* Fixed V2/V3 unpacks to behave same as the SSE unpacks (matches undefined PS2 behaviors)
 * Removed legacy vifUnpacker (haven't needed it for any regression testing in forever).
 * Move some VIF MARK console spam to DevCon (Ape Escape 3)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3746 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-10 13:16:50 +00:00
Jake.Stine 1edb900405 Changed a few more -> to . for consistency.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3707 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-31 13:06:53 +00:00
Jake.Stine 003da7d287 MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details:
* Writes via 16 and 8 bit ops now use 32-bit read/modify/write operations by default; which should enable nearly complete support for all such operations (instead of the formerly spotty coverage before).
 * Eliminated almost all former 8/16-bit specific register operations.  All code shares the same 32 bit handlers now.
 * Completely revamped the developer trace logs for hardware registers!  *ALL* registers are logged now, complete with address, name, and value being read/written (and nicely formatted!).
 * Handlers are now fully page-based using templated functions (minor speedup)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3704 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-31 05:22:26 +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
Jake.Stine bc849cc042 Merge const qualifiers and cleanups from ReorderingMTGS: Includes the VIF DIRECT changes, which seem to be stable this time. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3549 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-22 12:20:11 +00:00
refraction 26fece9510 Summary of fixes
Games
- Resident Evil Dead Aim flickering graphics fixed.
- Flatout games should now boot everytime (instead of randomly)
- Sega Superstar Tennis flashing fixed
- Destruction Derby graphics fixed (NTSC confirmed, PAL unsure)
- Tenchu Fatal Shadows flickering textures fixed, Issue 748
- Spyro Hero's Tail should boot again, Issue 746

General Info
- General reworking of the GS paths with all paths prioritizing more correctly.
- XGKICK can stall if another GS transfer is in progress
- Major reworking of Path3 masking, could still be combined with normal Path3 transfers, but lets get it working first :P
- Taken in to account a few conditions which could have caused VIF to lock up/crash when stalling on ends.
- Unreversed GIF and SPR and VIF so its the normal way round
- all DMA paths should now resume correctly after being stopped by hardware
- GIF FIFO now actually transfers stuff :P
- VIF CMD's simulated by the length of the interrupts at the end.

Phew, i think that's everything :S

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3274 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-06-22 23:10:40 +00:00
Jake.Stine 70d47bf240 Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2937 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-03 14:08:02 +00:00
sudonim1 4457fe40fc Removed all trailing whitespace in *.c *.cpp *.h because it irritates me.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2897 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-25 00:31:27 +00:00
sudonim1 a05e9c62be Set svn:eol-style=native on all *.c *.cpp *.h
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2894 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-24 21:37:39 +00:00
cottonvibes 236d40b2e1 Minor change...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2720 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-03-16 03:02:41 +00:00
cottonvibes 76194c82dc Vif - Cleanups/refactoring
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2585 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-11 04:36:47 +00:00
cottonvibes 92ddae17ce More vif refactoring/cleanups.
There is a lot of code duplication in the vif0/vif1 files, I will probably work on getting them to use common functions.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2489 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-23 04:14:59 +00:00
cottonvibes 84bc805761 Vif Cleanups - did some code refactoring so things make more sense.
I need to do more later on...

I mostly separated the unpack code from the dma/transfer code in this commit.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2485 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-23 02:30:00 +00:00