80 Commits

Author SHA1 Message Date
SternXD
d983b2b066 Copyright: Change year from 2002-2025 to 2002-2026 2026-01-15 00:22:32 +01:00
Ziemas
169022923c SPU: Remove redundant update on DMA
The SPU will update the counters and run to the current cycle by itself
when DMA happens, so this should be redundant.
2025-12-05 09:41:44 -05:00
TheTechnician27
23fd57f641 Copyright: Change year from 2002-2024 to 2002-2025 2025-01-20 05:07:26 +01:00
TheLastRar
1f2d9ab4e5 IOP: Seperate completing DMA8 to a seperate function 2024-10-17 16:10:38 -04: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
refractionpcsx2
566ea8ea9b Core: Refactor a lot of timer work and fix a couple of bugs
EE/IOP Timers: improve clock sync, disable v/h sync when SINT enabled.

Some changes based on tests from PS2

[SAVEVERSION+]
2024-05-15 10:54:26 +01:00
Stenzek
d9abe10308 Misc: Remove explicit PCH include, switch to SPDX 2023-12-24 14:03:14 +10:00
refractionpcsx2
b824c2d31a Counters: Improve counter updates and fix a couple of errors 2023-11-06 14:20:49 +00:00
RedPanda4552
1f74f82796 [SAVEVERSION+] Reimplement PAD system
Force pushed because git hates me

[SAVEVERSION+] Bump savestate version

CI: Update locations of pad/memcard sources

Discard leftover old PAD code

Fix additional merge oddities

Add translations for OSD messages

Copyright headers

Version bump

Fix a whole boatload of concurrency problems from file moves and other miscellaneous update problems

Partial redo of PS1 pad support

Fix incorrect mode due to analog behavior at startup

Mostly reimplement SIO0 memory card logic

Still needs pocketstation

Use new runtime wrapped translate function

Dead code

Fix multiple port/slot/presence issues for PS1

Save State version bump

Clean up some duplicate/unused headers

More header consistency

Remove old stray files

Fix incorrect return

Fix uninitialized array

Add missing overrides

Switch to init/close model used by other subsystems

Remove old input recording references

Rename SIO globals

Rename SIO2 FIFO globals

Remove commented SIO0 code for illegal write

Add guitar icon
2023-07-24 16:41:17 +01:00
Connor McLaughlin
fd194124a9 x86: Move cycle/writeback fields to CPU structs
[SAVEVERSION+] Potentially better locality, keeps everything we're
accessing from the rec together.
2022-11-19 03:54:02 +00:00
RedPanda4552
1146175648 SIO: Separate SIO2 from SIO0, reimplement memcard protocol
[SAVEVERSION+] Fixes memcard issues in MGS3, Shining Force EXA, and others which do 4 sector reads
2022-11-19 02:08:13 +00: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
kenshen112
fdabc82342 Remove IopCommon.h added proper includes to files. Removing circle includes in several files that sometimes was several layers deep 2022-04-11 21:25:20 +01:00
refractionpcsx2
a94561fba7 SPU2: Improve DMA Write timing. Better sync DMA speeds with IOP
It takes 4 cycles per word, according to No$PSX documents
Also fixed an issue with when ADMA refills the buffer, fixes The Simpsons (for real this time)
2021-01-01 04:38:23 +00:00
refractionpcsx2
f07ca859e5 SPU2: Improve DMA/IRQ timing.
Tighten SPU2 sync with IOP
2021-01-01 04:38:23 +00:00
refractionpcsx2
c998a51f71 IOP DMA: Only acknowledge SPU2 DMA interrupt if DMA hasn't been cancelled
Fixes Gregory Horror Show bad audio
2020-12-30 05:58:24 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech
a2e2ed1ecf DEV9: initial merge complete 2020-10-31 16:35:38 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech
faae323d9d SPU2: enable portaudio on linux and additional clang-format 2020-10-04 00:13:36 +01:00
GovanifY
5cf2147754 SPU2: fix DMA issues 2020-10-04 00:13:36 +01:00
Gauvain 'GovanifY' Roussel-Tarbouriech
67738a57b7 SPU2: redesign the save state system 2020-10-04 00:13:36 +01:00
Gauvain 'GovanifY' Roussel-Tarbouriech
9c97092efd SPU2: merging some codebase callbacks 2020-10-04 00:13:36 +01:00
arcum42
d05163a26f Remove gigaherz old wip 'new' iopdma code. (#2703)
* Remove gigaherz old wip new iopdma code.

* Second pass removing dma code I missed last time.
2018-12-09 18:00:04 -08:00
Robert
5e460c57f8 psxmode: add all the rest on core side. psx mode works now.
- include a small game exe detection so pcsx2 doesn't believe it's running the bios
- cdrom.cpp has a hack to account for pcsx2's wrong iop dma timing when mixing mdec and cdrom dmas. This should be properly fixed for the benefit of all ps2 / psx software!
- dmasif2 is disabled since pgpu already handles it
2016-09-24 20:11:32 +02:00
ramapcsx2.code
ef27358a82 Initial work on getting further with PSX mode. Because the PSX rules!
All work done by Refraction, I'm just the commit guy for this.

Note: Missing Visual Studio 2012 / 2010 project files and Linux makefile additions.
Note2: PSX games don't work yet :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5921 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-06 23:00:09 +00:00
refraction
ad4aeca3ad SIF: Better fix in place for random hangs, Tom Clancy Rainbow Six Lockdown now Playable.
Hangs also related to Phantasy Star 4 and FFX Thunder Plains, which are both still ok with this. Also the sif dma errors in Legends of Legaia should be gone again!

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4874 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-08-23 18:30:40 +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
3cfd0c68af * 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).
* Add some missing & ~0x0f address alignment stuff to odd-size FIFO reads/writes (thanks gregory)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3730 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-05 15:38:14 +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
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
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
ramapcsx2
42cb1c4bb1 SPU2-X:
- Ok, that interrupt commit in r2600 was silly. The "special register write" is a simple set audio to max volume. We don't interrupt those :p
NEW IOP DMAC:
- Make the adma interrupts happen early, as in the previous commit for old dmac.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2602 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-17 22:37:13 +00:00
ramapcsx2
8d7971466d SPU2-X:
- Added an interrupt call on a special register write, which mimics peops spu2 behavior.
This lets Silent Hill Origins get further when booting up.
Note that it's not complete and hackish, need someone with spu2 experience to make it right :p
- Also added various logging stuff

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2600 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-17 17:35:06 +00:00
ramapcsx2
9906e82efc New IOPDMAC:
- Add basic savestate support

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2583 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-10 15:49:35 +00:00
gigaherz
fcf5b97e46 Not my day. Reverted the last change and reimplemented it in a cleaner way.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2581 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-10 14:34:52 +00:00
gigaherz
ae3934cffb Forgot some people might want to run pcsx2 WITHOUT my new dmac enabled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2580 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-10 14:29:22 +00:00
gigaherz
c8269a44a3 I'm an idiot. No comments.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2579 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-10 14:24:01 +00:00
gigaherz
6730abd967 Whoops missed a file. Another small refactoring too.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2577 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-08 16:35:18 +00:00
gigaherz
822e2a8166 Moved some stuff around, removed some unnecessary code, added some comments. No functional changes.
Will need updating the linux build files.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2576 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-08 16:19:01 +00:00
gigaherz
86d96ffbf2 Implemented the handlers for channel 8 (dev9) in the new iop dmac. No plugins support the changes yet so don't enable it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2571 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-06 22:18:26 +00:00
arcum42
e86d7fba0e Sif: Implemented a new _sif structure, and made the code use it. Added some temporary code to try to keep the savestate backward compatible.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2563 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-05 12:41:25 +00:00
gigaherz
06db5bba38 Hackfix a problem with sio2 in the new dmac. It needs some changes to the dmac system (possibly a dmaStart function with more accurate information) to be implemented properly but for now, this will do.
Also make the autodma messages work like before so they are configurable again.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2555 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-03 03:59:21 +00:00
gigaherz
9ae807134e Experimental implementation of spu2 interface for the new iop dmac.
It's implemented only on SPU2-X and disabled by default.
FF12 and Atelier iris had working FMVs and bgm, other games might not
Try at your own risk.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2554 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-03 03:37:55 +00:00
gigaherz
d31337902b Some reorganization of my iop dmac code, hopefully for the better.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2547 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-01 04:12:51 +00:00
gigaherz
07927f00d6 Typo
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2542 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-30 20:42:53 +00:00
gigaherz
54b8c44dad Move a bit of code into the IopDmaStart function. In the rare case it caused any kind of noticeable slowdown (applies to the new dmac only, which is disabled by default), it could be easily reverted.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2541 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-30 20:35:10 +00:00
arcum42
4dc7d3e2ab Sif: Rename functions. Move iopsifbusy.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2538 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-29 04:44:00 +00:00
ramapcsx2
83a6898651 Small log stuff for new iop dma.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2507 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-24 02:43:43 +00:00
gigaherz
3eb3991b9a Apparently the sio didn't really like me setting count to 1 every byte. Hardcoded a block size of 0x24 for now, since it's what the bcr in the bios has.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2505 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-24 02:16:06 +00:00