Commit graph

274 commits

Author SHA1 Message Date
Jean-Philip Desjardins
e34b806125 Experimental audio support. 2014-10-20 22:34:44 -04:00
Jean-Philip Desjardins
b0cb1485d7 Profiler improvements. Now uses a proper timer to count time passed in various zones. Stat presentation still needs work though. 2014-10-05 01:41:06 -04:00
Jean-Philip Desjardins
c3ac2da22f Moved all EE related stuff in a separate file. 2014-10-04 23:02:32 -04:00
Jean-Philip Desjardins
826d785f3d New cycle counting method is now enabled by default and removed code for old method. 2014-07-12 02:16:04 -04:00
Jean-Philip Desjardins
f66e4366cc Force threads to be rescheduled at the end of an exception on the EE. 2014-06-04 23:37:40 -04:00
Jean-Philip Desjardins
9938ce4692 Added improved cycle counting (not enabled yet because it still causes problems with some games). 2014-06-01 19:23:45 -04:00
Jean-Philip Desjardins
0162119ea5 Prevent interrupts from being serviced when stepping in the debugger. 2014-06-01 19:07:43 -04:00
Jean-Philip Desjardins
ef050923ea Update VU integer registers when calling a VU subroutine from EE. 2014-05-04 21:54:43 -04:00
Jean-Philip Desjardins
f4a149903b Notify GIF and VIF components when CPU writes to their registers. 2014-05-03 03:03:25 -04:00
Jean-Philip Desjardins
739a30736f Mapped VU MEM 1 in EE memory space. 2014-04-27 20:27:59 -04:00
Jean-Philip Desjardins
e05cef003c Minor cleanup. 2014-04-17 00:42:05 -04:00
Ian Brown
aafa277bdb Implement INT0 (GS) interrupt handler 2014-04-15 02:25:32 -04:00
jpd002
f9e9fb0ed6 Removed some usage of boost::thread.
git-svn-id: http://svn.purei.org/purei/trunk@1147 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-06-17 05:06:47 +00:00
jpd002
5c71b6657f Added a way to trigger a GS frame dump from PS2VM.
git-svn-id: http://svn.purei.org/purei/trunk@1140 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-06-09 05:47:33 +00:00
jpd002
1a71b0d0b9 Using std::thread instead of boost::thread + some cleanup.
git-svn-id: http://svn.purei.org/purei/trunk@1114 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-04-25 05:51:31 +00:00
jpd002
8565987c4f Removed frame skipping and VPU state saving stuff.
git-svn-id: http://svn.purei.org/purei/trunk@1113 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-04-22 03:06:16 +00:00
jpd002
8627d177b2 IPU Changes:
- Not using threads anymore, because there's no point in using them.
- Will try to execute commands ASAP, even waiting till more data can be pulled from DMA channel.
- Some minor bugfixes.
Can you believe it still doesn't work properly after all that?

git-svn-id: http://svn.purei.org/purei/trunk@1092 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-03-12 06:38:44 +00:00
jpd002
91f6d7d10f Added a way to flush parts of the instruction cache when loading data from disk.
git-svn-id: http://svn.purei.org/purei/trunk@1091 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-03-10 05:11:53 +00:00
jpd002
a16ecc9564 Enabled SPU updates in the main emulation loop (needed for some games who like reading the SPU status).
git-svn-id: http://svn.purei.org/purei/trunk@1089 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-03-06 05:36:03 +00:00
jpd002
cc911af940 Added state saving support on EE Timers.
git-svn-id: http://svn.purei.org/purei/trunk@1072 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-02-03 05:03:15 +00:00
jpd002
2ee98db330 Compilation fixes.
git-svn-id: http://svn.purei.org/purei/trunk@1069 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-01-29 05:46:29 +00:00
jpd002
a5aaa0bea0 Rewrote the profiler to make it simpler to use and more accurate.
git-svn-id: http://svn.purei.org/purei/trunk@1051 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-12-23 21:35:04 +00:00
jpd002
91030fbbdd Added support for LOADCORE's "LoadElf" function which allows loading an executable into EE memory.
Fixed a bug with module parameter passing in the LoadModule function.

git-svn-id: http://svn.purei.org/purei/trunk@1023 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-10-24 06:39:29 +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
3b56af1456 Made breakpoints handling more reliable by moving the breakpoint checking code after function partitioning because a breakpoint inside a non-partitioned function could never be hit.
Also added a different "first run" check for breakpoints that is only enabled when we come back from paused virtual machine state.
Moved more stuff between "DEBUGGER_INCLUDED" ifdefs.

git-svn-id: http://svn.purei.org/purei/trunk@1010 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-29 01:28:23 +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
3182d98813 Moved clock frequency constant in Ps2Const and normalized some of the names in there.
git-svn-id: http://svn.purei.org/purei/trunk@996 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-12 01:03:53 +00:00
jpd002
8b8b4a1c9c Compilation fixes due to changes in StdStreamUtils.
Added support for the presentation params system on Win32 port.

git-svn-id: http://svn.purei.org/purei/trunk@989 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-06 06:32:15 +00:00
jpd002
1a2379e41f Added presentation parameters in GSH_OpenGL (to move in GSHandler maybe).
Added support for window resizing and full screen on MacOSX.
Updated MacOSX project.

git-svn-id: http://svn.purei.org/purei/trunk@986 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-05 00:08:05 +00:00
jpd002
1ea379de92 Use this_thread::sleep instead of thread::sleep.
git-svn-id: http://svn.purei.org/purei/trunk@984 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-08-31 03:15:41 +00:00
jpd002
d5f0ebc83b Cleaned code related to user directory fetching. No platform specific code should be present anymore (complexity should be hidden in Framework).
git-svn-id: http://svn.purei.org/purei/trunk@982 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-08-23 01:49: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
e8b6f2541b Removed OsEventViewWnd (wasn't even being used)
Added ThreadViewWnd and moved some of the stack crawling stuff in MIPSAnalysis.

git-svn-id: http://svn.purei.org/purei/trunk@926 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-05-21 06:31:50 +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
012c95760a Added basic support for LoadPS2Exec system call.
git-svn-id: http://svn.purei.org/purei/trunk@903 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-14 21:08:33 +00:00
jpd002
566d800e78 Don't skip the whole frame when no thread is ready to be executed on the EE. This was causing odd situations where games wouldn't be able to boot or where they would go too fast.
git-svn-id: http://svn.purei.org/purei/trunk@901 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-12 05:43:05 +00:00
jpd002
335eda13a0 Fixed compilation problem.
git-svn-id: http://svn.purei.org/purei/trunk@896 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-09 22:56:31 +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
f910661c47 First pass of cleanup for C++11.
git-svn-id: http://svn.purei.org/purei/trunk@851 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-03-11 20:06:14 +00:00
jpd002
15f9dd84d1 Honor OS's request to flush the instruction cache.
Moved the vblank timing checks after interrupts are triggered to allow programs to see the vblank start/end bits being set.

git-svn-id: http://svn.purei.org/purei/trunk@837 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-12-25 04:50:54 +00:00
jpd002
ea197e8795 Clear the BIOS memory area at every reset.
git-svn-id: http://svn.purei.org/purei/trunk@824 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-12-10 20:56:40 +00:00
jpd002
23f127c82e Added ability to read VU0 memory from EE.
Added VU0 execution in the main loop.
Added CALLMS support.
Re-enabled code cache invalidation when writing to a memory area that is cached.
Removed lots of unused code.
Changed the way interrupts are handled and allowed some instructions (like EI) to force a check for pending interrupts.


git-svn-id: http://svn.purei.org/purei/trunk@817 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-11-26 21:03:20 +00:00
jpd002
7d36166fa8 Changed the way ticks are counted in the PS2VM. Slows down HL, but makes Doom too fast.
Fixed linking errors on Win32 config.


git-svn-id: http://svn.purei.org/purei/trunk@762 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-05-22 00:36:21 +00:00
jpd002
3e696add16 Changed the way back buffer flipping is handled and added a new flipping mode (SMODE2) which seems to work with a majority of games.
git-svn-id: http://svn.purei.org/purei/trunk@759 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-05-15 21:20:55 +00:00
jpd002
ed7c1c4e0c Added new idle loop detection scheme for Castlevania: Curse of Darkness.
Allow DMA9 to read from VU0 memory (no idea if this is legal, but it prevents Castlevania: CoD from crashing)
General code cleaning.

git-svn-id: http://svn.purei.org/purei/trunk@756 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-05-08 21:58:55 +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
2580b346e2 Added a little something that allows dumping of the VM state before executing any VU1 microprogram.
git-svn-id: http://svn.purei.org/purei/trunk@745 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-03-29 00:46:18 +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
jpd002
4e1f402006 Made PS2 Doom work:
- Rehabilitated Timer support.
- Added support for FINISH flag in GSHandler.
- Added fake IOP RAM area in EE memory space.
- Fixed minor IOP stuff.

git-svn-id: http://svn.purei.org/purei/trunk@710 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-10-13 01:53:26 +00:00