Commit graph

264 commits

Author SHA1 Message Date
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
jpd002
795411ebbc Many updates for Half-Life.
git-svn-id: http://svn.purei.org/purei/trunk@537 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-08-10 00:56:50 +00:00
jpd002
bced4b20e2 Some work done to make Half-Life work.
git-svn-id: http://svn.purei.org/purei/trunk@509 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-04-28 01:20:03 +00:00
jpd002
1e258616d1 Made the vfs paths relative to a "Base Path" and are created upon starting up the program.
git-svn-id: http://svn.purei.org/purei/trunk@505 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-04-21 00:01:05 +00:00
jpd002
5d047fbb9a Fixed crash that was occurring when loading a game when one was already being played.
Made the reset menu command work properly.

git-svn-id: http://svn.purei.org/purei/trunk@502 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-04-18 00:24:32 +00:00
jpd002
a6e12114d7 Added changes to MIPSInstructionFactories. Not a singleton anymore, so it allows a 32-bits and 64-bits version of the architecture to live together.
PsfPlayer bios memory ownership fixes.

git-svn-id: http://svn.purei.org/purei/trunk@490 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-03-30 04:57:52 +00:00
jpd002
d1bd353096 Attempt to make texture uploading faster.
Better cleaning up of GS when closing emulator.

git-svn-id: http://svn.purei.org/purei/trunk@483 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-02-18 03:38:59 +00:00
jpd002
68daccb985 Hacked placeholder definitions so it can compile on multiple platforms.
git-svn-id: http://svn.purei.org/purei/trunk@454 b36208d7-6611-0410-8bec-b1987f11c4a2
2008-12-24 01:39:03 +00:00
jpd002
b962bf782d Iop <-> Sif stuff working good for now.
git-svn-id: http://svn.purei.org/purei/trunk@453 b36208d7-6611-0410-8bec-b1987f11c4a2
2008-12-19 03:30:49 +00:00
jpd002
775ef52d0e Made the thing compile with boost 1.37.
Some RPC call stuff which isn't totally functional.
Fixed bugs in MailBox.

git-svn-id: http://svn.purei.org/purei/trunk@447 b36208d7-6611-0410-8bec-b1987f11c4a2
2008-12-15 02:57:21 +00:00
jpd002
34d2839aa5 Some more Iop stuff again.
git-svn-id: http://svn.purei.org/purei/trunk@437 b36208d7-6611-0410-8bec-b1987f11c4a2
2008-12-05 03:30:01 +00:00