Commit graph

62 commits

Author SHA1 Message Date
Björn Gerdau
4d24b0ffcb
Use constants for resumable IOP DMAC channels 2021-06-07 14:34:16 +02:00
Jean-Philip Desjardins
11e8566ed3 Check SPU IRQs every 1000 ticks.
Prevents IRQs from being spammed. Helps Klonoa 2 and MMX7.
2021-06-04 09:54:51 -04:00
Jean-Philip Desjardins
016302d5ff Support DMA reads from SPU RAM. 2021-04-01 17:22:33 -04:00
Jean-Philip Desjardins
cf462ed94f More infrastructure for RX. 2021-03-02 07:24:08 -05:00
Jean-Philip Desjardins
e19192c9fb Clear the interrupt situation. 2021-03-02 07:24:06 -05:00
Jean-Philip Desjardins
44263435db Sending first DHCP packet. 2021-03-02 07:24:06 -05:00
Jean-Philip Desjardins
2fd28aa904 Hook up DEV9 and SPEED to MMIO. 2021-03-02 07:24:05 -05:00
Björn Gerdau
02399f28cd
Filter out SSBUS register access 2020-11-06 19:06:59 +01:00
Björn Gerdau
f7364305a2
Implement IOP DPCR2 2020-11-06 10:06:17 +01:00
Björn Gerdau
683b06d839
Add more warnings 2020-11-06 10:06:16 +01:00
Jean-Philip Desjardins
07cf76a062 Various hooks that made the SIO2 test working. 2020-04-20 11:14:32 -04:00
Jean-Philip Desjardins
33ad26c5fd Add DMACMAN and SECRMAN HLE modules. 2020-04-20 11:14:31 -04:00
Jean-Philip Desjardins
b0337dbeb2 Use proper memory buffer for scratch pad direct access. 2019-05-25 11:28:31 -04:00
Jean-Philip Desjardins
ad46f12694 Use direct memory accesses on IOP. 2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
e5ae547e66 Move saved state helper classes to a subfolder. 2019-02-06 19:04:51 -05:00
Jean-Philip Desjardins
050bf0f854 MipsExecutor is now owned by MIPS CPU context.
Will help to make new breakpoint implementation simpler.
2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
6bc7f346f1 IopSubSystem now is reponsible for creating the kernel. 2018-06-23 10:56:25 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
0f8004596e Specify std namespace. 2017-12-23 11:04:06 -05:00
Jean-Philip Desjardins
ad0c676a67 Make variable const. 2017-08-09 23:06:05 -04:00
Jean-Philip Desjardins
f97d0a1c47 Remove self loop counter. 2017-08-09 23:05:30 -04:00
Mahmood(Thunder07)
97c229ec98 Cleanup
Silence:"warning: '0' flag ignored with precision and ‘%X’ gnu_printf format"
2017-05-29 06:01:32 +01:00
Jean-Philip Desjardins
bd3203229e Reduce delay in IOP interrupt servicing.
Needed for MGS3 because SIO2 requests were messed up.
2017-05-07 22:02:08 -04:00
Jean-Philip Desjardins
00fc68d96e Move interrupt checking code in a separate function. 2017-05-07 22:02:08 -04:00
Jean-Philip Desjardins
c71806d1c1 Fix PsfPlayer build. 2017-02-24 00:39:54 -05:00
Jean-Philip Desjardins
bce35f3388 Save and load IOP DMAC state. 2017-02-24 00:39:54 -05:00
Jean-Philip Desjardins
04d72b29b1 Save and load SIO2 state. 2017-02-24 00:39:54 -05:00
Jean-Philip Desjardins
a311865863 Use enum for IOP scratch pad address. 2016-03-17 16:12:40 -07:00
Jean-Philip Desjardins
4844a0679b Added more SPU stuff in saved state. 2015-06-02 02:43:34 -04:00
Jean-Philip Desjardins
7f60f5c3d5 Added basic support for SPU interrupts. 2015-02-08 17:18:41 -05:00
Jean-Philip Desjardins
9d1ead2464 Cleanup. 2014-10-05 02:00:20 -04:00
Jean-Philip Desjardins
418cee5e51 Some more naming convention cleanup. 2014-08-16 21:42:19 -04:00
Jean-Philip Desjardins
cd653ca0be Include root counters state in saved states. 2014-06-28 23:49:51 -04:00
Jean-Philip Desjardins
b20e3784ee Increased the DMA update delay in Iop::CSubSystem to prevent interrupt spam. (was preventing Xenosaga 2 from booting) 2014-06-04 23:33:05 -04:00
jpd002
163300111e Replaced the "DmaDisabled" mode by a "StreamingEnabled" mode in SpuBase since that unknown register in SPU2 CORE seems to be used for that.
git-svn-id: http://svn.purei.org/purei/trunk@1088 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-03-06 04:42:17 +00:00
jpd002
7a87b2e166 Added support for saving and loading the state of the IOP INTC and SPU units (partially).
git-svn-id: http://svn.purei.org/purei/trunk@1084 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-03-05 05:42:20 +00:00
jpd002
f0a025f11e Moved CBiosBase shared ptr definition in BiosBase.h.
git-svn-id: http://svn.purei.org/purei/trunk@1021 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-10-21 02:08:14 +00:00
jpd002
30dfc3fe28 Changed way ticks are counted to make sure the speed hacks are activated when both the EE and IOP are idle. EE/IOP time synchronization is probably not quite right yet though.
git-svn-id: http://svn.purei.org/purei/trunk@1006 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-25 03:17:46 +00:00
jpd002
4233c33cfe Plugged SIO2 emulation module in the IOP subsystem.
We now allow PADMAD and DBCMAN modules coming from games to be emulated and receive SIF packets.
Added a special case for the SetModeAndLock command in SIO2.
Removed DBCMAN module emulation.



git-svn-id: http://svn.purei.org/purei/trunk@1005 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-24 02:37:03 +00:00
jpd002
521f7bc544 Improved RootCounters emulation (added more counters used in IOP and fixed counting modes).
Improved Timrman IOP module emulation (removed lots of hardcoded stuff).
Added a way to switch from PSX's CPU frequency to IOP's CPU frequency (needed for proper PSX/PS2 PSF playing).

git-svn-id: http://svn.purei.org/purei/trunk@933 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-05-29 01:01:02 +00:00
jpd002
a25b6750ed Clear IOP analysis when resetting.
git-svn-id: http://svn.purei.org/purei/trunk@914 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-23 02:45:37 +00:00
jpd002
d6ba1bdf6e Added placeholder for iLink registers.
git-svn-id: http://svn.purei.org/purei/trunk@913 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-21 21:20:14 +00:00
jpd002
5fd26ba083 Made address translation take a 32-bits address instead of a 64-bits one. We probably won't ever need to use 64-bits addresses.
git-svn-id: http://svn.purei.org/purei/trunk@909 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-16 02:34:36 +00:00
jpd002
4d5a6c962b Removed some uses of BasicBlockPtr.
git-svn-id: http://svn.purei.org/purei/trunk@908 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-15 22:10:11 +00:00
jpd002
b1afb8abee Added new way to search for blocks in the compiled block list which is O(1).
Removed some useless params in MIPS constructor.
Removed the need for the _PSX preprocessor def.

git-svn-id: http://svn.purei.org/purei/trunk@860 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-03-13 06:16:33 +00:00
jpd002
74ddd5ef12 Second pass of cleanup for C++11.
git-svn-id: http://svn.purei.org/purei/trunk@852 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-03-11 20:16:15 +00:00
jpd002
06a215f22c Added "RegisterVblankHandler" in Iop_Vblank.
Implemented some dummy functions in Iop_Timrman so they can return a proper value.

git-svn-id: http://svn.purei.org/purei/trunk@805 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-11-06 21:37:50 +00:00
jpd002
d66aed7028 Fixed Vagrant Story PSF calling function at 0x0.
Added missing PSX system calls for Vagrant Story and Granstream Saga.
Added COP0 to the IOP subsystem for FF6 and Chrono Trigger PSF.
Added non-default char encoding handling in PSF tags.
Now patches the PSX-EXE header of loaded PSF files because Grandstream Saga specifies bad text section size in its header.

git-svn-id: http://svn.purei.org/purei/trunk@769 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-06-06 00:18:33 +00:00
jpd002
5782cc9710 Changed the way waiting for VBlank start and end on IOP works to improve Castlevania: Curse of Darkness stability.
git-svn-id: http://svn.purei.org/purei/trunk@755 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-05-05 04:28:11 +00:00
jpd002
75cb0db8f4 Changed basic block memory management to use intrusive_ptr and added a block caching mechanism in VuExecutor to speed things up.
git-svn-id: http://svn.purei.org/purei/trunk@719 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-11-17 03:59:29 +00:00