51 Commits

Author SHA1 Message Date
SternXD
d983b2b066 Copyright: Change year from 2002-2025 to 2002-2026 2026-01-15 00:22:32 +01:00
TheTechnician27
23fd57f641 Copyright: Change year from 2002-2024 to 2002-2025 2025-01-20 05:07:26 +01:00
GovanifY
132431b7c8 headers: relicense to GPL-3.0+
also update to 2024 while i'm at it
2024-07-30 17:17:13 -04:00
Ty Lamontagne
91c0e64159 Misc: Enable some disabled warnings
smite you windows for keeping long 32 bits
2024-01-07 13:19:14 +10:00
Stenzek
d9abe10308 Misc: Remove explicit PCH include, switch to SPDX 2023-12-24 14:03:14 +10:00
Stenzek
dc859ca0a6 Misc: Simplify assertion macros 2023-12-24 14:03:14 +10:00
refractionpcsx2
0fc9fa541f IPU: Pause IPU_TO on tag edge. Stop repeat Interrupts 2023-11-06 14:21:39 +00:00
refractionpcsx2
ae5cd7b3c3 IPU: Adjust DMA timings, improve internal calling
[SAVEVERSION+]
2023-09-17 14:52:47 +01:00
refractionpcsx2
3e78f8e87d IPU: Improve DMA/IPU call locations to reduce looping 2023-08-08 08:56:52 +01:00
refractionpcsx2
6f9164b986 IPU: Slow down BDEC and IDEC so they don't outstrip DMA data writes 2023-06-25 01:05:42 +01:00
refractionpcsx2
3c0b7f7724 IPU: Redo FIFO transfers, plus small IPU_TO DMA tweak 2023-06-24 18:11:46 +01:00
Stenzek
7c9c8e197c Common: Replace MemsetFast routines with C memset
And associated cleanup.

On most compilers these days, it'll either inline the memset with vector
fills or rep stosq, or outline with a call to memset.

I trust the compiler is probably going to make a better decision here,
than manual SSE intrinsics.

Ends up a couple of percent faster in FMV decoding.
2023-06-22 19:11:57 +10:00
Stenzek
d6c1af1a0c IPU: Combine source files to work around an LTO bug in clang 15
Works around an LTO bug which seems to occur in clang 15, but not in
clang 12. The entire else branch in the 0 case in get_non_intra_block()
was being removed...

Fixes Burnout 3 crashing in clang builds.
2023-01-16 20:13:46 +00:00
TellowKrinkle
738c8cb630 Core: Remove trailing whitespace from all files 2022-09-16 00:52:28 -05:00
refractionpcsx2
9441d2a33a IPU: Remove some DMA hacks 2022-06-13 23:47:47 +01:00
refractionpcsx2
37f640ece2 IPU: Always process command if busy on DMA run 2022-06-04 13:30:48 +01:00
refractionpcsx2
5708fb1668 IPU: add slight timing to IDEC/BDEC
Modify IPU to run on internal interrupts to give some timing
2022-06-04 01:46:01 +01:00
refractionpcsx2
5c15d57f5f IPU: Reorder DMA timing for IPU_TO and IPU_FROM 2022-06-04 01:46:01 +01:00
Connor McLaughlin
893b3c629d Everything: Remove a **lot** of wx, and px nonsense
- common has no wx left except for Path.
 - pcsx2core only has it in a few places (memory cards and path related
   stuff).
2022-05-22 13:58:56 +01: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
Connor McLaughlin
850deed6c1 HwRegs: Swap wxString desc() for std::string 2022-04-15 08:15:40 +01:00
refractionpcsx2
242655bac9 IPU: Tidy up some DMA and FIFO behaviour 2021-12-26 04:48:49 +00:00
refractionpcsx2
d775a9364b IPU: Set DMA to only transfer on request (or reset) 2021-12-26 04:48:49 +00:00
TellowKrinkle
f7476dfb63 Core: Replace alignment macros with alignas 2021-11-14 13:52:20 -06:00
refractionpcsx2
378eccc6ea IPU: Stop IPU0 looping when there's no data for it to read
Fixes bad slowdowns in Ratchet games when using EE Timing fix caused by bad IPU streams
2020-12-03 20:00:22 +00:00
Jonathan Li
0277b69ff1 ipu: Revert Klonoa 2 workaround
This reverts commit 10ee832dc1.

The workaround should be unnecessary now that the indx4 is properly
aligned.
2020-05-25 00:20:44 +01:00
refractionpcsx2
10ee832dc1 Workaround to avoid access violation problem in Klonoa 2 loading Volkan Inferno
Lets hope the build bot doesn't mess this up :P
2019-03-21 20:17:14 +00:00
archshift
fb9c24b900 Removed using std::min/max from PCH 2014-08-14 14:55:52 -07:00
Gregory Hainaut
d5d19acb3f wx3.0: lots of cast...
Various string as still wrong but at least it can be compiled now.

I think the remaining issue are w_char with %s format (at least on linux)
2014-07-29 20:45:44 +02:00
refraction
14a7816e28 IPU bug fix by Shalma, well spotted ;p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4954 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-11-01 18:44:34 +00:00
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
refraction
533bb0846b IPU: Gave IPU0/Internal IPU a sense of timing rather than the whole lot being dumped out instantly then interrupted later, fixes issues with data being left in the fifo (mana khemia) and the IPU outstripping the other dma's (FFX Mess/Tearing on Digital Devil Saga videos). Will remove the hack later and clean up once im totally happy its ok.
Note: This is technically still a hack, but it shouldnt break anything like the existing hack does, also it's closer to how it should be than anything we've done previous.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4058 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-11-27 00:11:52 +00:00
Jake.Stine
e24ceba0e1 IPU:
* Fix a potentially obscure bug in ipuCSC (color space conversion) which would have caused PCSX2 to hang on certain types of rare partial transfers.
 * Remove some more dead code and structure data from the mpeg library.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3833 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-25 05:36:30 +00:00
Jake.Stine
47cf781130 IPU : Removed the MPEG internal 32 bit buffer and all associated logic for "rewinding" bits out of the buffer and back into the IPU's internal 2QWC buffer. Simplifies IPU's bitstreaming code quite a bit, but isn't really much faster (yet).
(savestate version upgraded)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3788 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-17 13:10:54 +00:00
arcum42
38aecf4ae0 Minor compilation fix.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3782 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-17 00:12:15 +00:00
Jake.Stine
d4310e0b86 IPU fix for GUST games
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3777 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-16 11:04:35 +00:00
Jake.Stine
1c75440a6c IPU optimizations -- use SSE for FIFO reads/writes, and streamlined IPUdma0 /IPUdma1 feeds a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3771 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-15 17:11:24 +00:00
Jake.Stine
02b390b0e1 Changed SIF and IPU macros for hw register mappings into references. (-> into .)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3727 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-05 02:51:36 +00:00
Jake.Stine
935159ed8e IPU: Split IPU DMA stuff out into its own file, and add missing region info (got left out AGAIN >_<) and a potentially important bit of IPU information to the savestate.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3726 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-05 00:36:03 +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
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
Jake.Stine
61a4b537c4 IPU:
* Savestate mega-fix!  Removed all the old direct pointer types from decoder_t, which should fix the oddball random savestate crashes when IPU is active.
 * Moved iq/niq into decoder_t.
 * Moved all macroblocks into decoder_t (mb8, mb16, rgb16, rgb32).
 * Turned decoder.stride into a constant, since IPU can only decode in strides of 16 bytes only.
 * Added sanity checking to the ipu0_fifo stuff (was formerly g_nIPU0Data, etc).
 * Added some SSE moves to the Idct (very minor optimization).  There's a completely SSE from-ground-up implementation provided by newer versions of libmpeg2 that we should probably look into later, rather than rolling our own.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3587 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-01 21:50:59 +00:00
Jake.Stine
4bb830827d IPU: Various minor header file, table, and inline function tweakings/cleanups. Note that I unified several tables into structs and applied __aligned16 to them. I'm not just being silly: this seems to have a noticeable positive effect on framerates (~3-4% here).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3573 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-26 18:14:56 +00:00
msakhtar
5165350170 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.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3568 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-07-26 10:18:28 +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
refraction
35498e329f -Fixed Metal Saga video (which i seemed to have broken with voodoo!! maybe i should see the lady in the voodoo shop, last time i did that she told me i had to fight a fearsome pirate...) ahem, sorry.
-Fixed a Bitstream bug which was annoying me.
-Modified a silly long if check with multiple bit shifts, should be a tiny bit quicker.
-Various other IPU changes

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2926 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-29 00:10:15 +00:00
refraction
dae4813701 Fixes Atelier Iris 2, Removed Kingdom Hearts hack, again should improve video stability, DMA is now managed by the timing of the DMA rather than being forced by the IPU.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2907 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-26 16:35:44 +00:00
refraction
f01e10fc9a -Rewrote the DMA checking functions as per the manual specs so certain situations can alter the DMA's while busy.
-Improved DMA Queuing slightly, less "all over the place" code.
-Jiggled some IPU bits around to clean up some clutter.
-Added the FFX and Digital Devil Saga video fixes as a Gamefix for now. Due to the delay involved, this causes other videos to terminate early, so now disabled by default.
-Added a load of logging for hardware in dev builds (also now label more correctly) and some bits for debugging IPU easier. Some are commented out, but can be enabled for testing.
-Made a small clarification in VIF

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2875 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-20 01:18:31 +00:00
arcum42
e4702bf67a Various IPU & logging stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2573 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-07 06:29:58 +00:00