Commit Graph

363 Commits

Author SHA1 Message Date
Jake.Stine db67ecb03c Oops! I accidentally left in a debug logging option in the last revision that would cause the pcsx2 console to be spammed 60 times a second in Debug and Release builds. >_<
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@366 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 98beccb2bc (no functional changes) Many code cleanups of the MTGS, and removed the PCSX2_PUBLIC define. I was stupid when I created it and didn't realize the PCSX2_DEVBUILD define is basically the same thing.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@365 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 97d72e2474 Made the MTGS run ~4% faster.
Important Info for Dual Core users only: This is MTGS only, and does not apply to DualCore mode.  Additionally, basic MTGS mode is now as fast or faster than DualCore mode for many games.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@364 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 2cd7672d57 - Improved the Frameskip and VUskip algorithms. Frameskip should no longer 'liberally' skip frames for no good reason, and is now a bit more efficient for games that run "on the cusp" of full framerate (the old code would actually throttle the skipped frames to 60 fps, reducing the effectiveness of the skips).
- Changed the vRender/vBlank ratios back to 50%.  Even though 75/25% should be more correct, many games run better with 50% (I'd love to understand why someday!)

- Rolled back EE_WAIT_CYCLES to 512 since there are still sync issues (but they aren't IOP this time!  It's to do with the COP0 instead)

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@363 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine dcd3eaca10 EE Interpreter is (mostly) fixed now.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@362 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine af7949f4ad Fixed a bug in the MTGS that caused very sporadic bad packets and crashes in some games.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@361 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine c8857fa7b4 Better fix for the broken savestates in the previous version. NOTICE: Savestates created with r359 will *not* work and will *never* work in the future (they are effectively bugged). All other saves created with any previous versions of pcsx2 playground or pcsx2 0.9.5 should function properly now.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@360 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
ramapcsx2 361afda5ed Some updates by Jake and 2 lines from me, hope this fixes savestates. Please test guys :)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@359 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
ramapcsx2 266875132d Fix for custom frame limit crashing pcsx2 on startup. Thanks to tmkkmac for spotting it ;)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@358 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
ramapcsx2 278f164683 Small cleanup, thanks to the MTGS rewrite the optimize pragma isn't needed for PGO anymore.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@357 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
arcum42 ed4492fd63 Revert the bit of r326 that I believe was actually causing the Linux issues. (Should negate the need for 354 & 355.)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@356 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
arcum42 13d179b70a Oops. Comment out debug message I left in.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@355 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
arcum42 acb1ab1c29 Horrible, nasty workaround to the Linux cpu sseMXCSR bug.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@354 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
ramapcsx2 e47f14f4d5 Fixed the fix from rev339 (I hope) :p
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@353 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 958071dcf4 Applied patch from Issue 43 - GIF_LOG had bad/outdated calls for Reads.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@352 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 2f83a56dc3 Fixed a dumb bug on my part that caused some games (FFXII) to crash when loading savestates.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@351 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
arcum42 f86f2cfb5e Fix latest Linux compile breakage.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@350 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 07a6979176 Resolved random crashing in MTGS modes, and added some handy debugging items to the MTGS code along the way.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@349 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
arcum42 467d7a8963 Even if it is broken, lets make the 64 bit build compilable as well.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@348 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
arcum42 32ccde667d Fix compiling on Linux.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@347 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine 20a69d222e Set cpuTestTIMR to be called every branch again, and made some tweaks to the MTGS code. These changes *appear* to fix Final Fantasy crashes in r345.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@346 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:28 +02:00
Jake.Stine f6ecf0bd68 New EE/IOP synchronization system -- found the root cause of many synchronization problems by issuing an IOP branch test after BIOS calls. That allowed me to get rid of the overly complicated adaptive EE_WAIT_CYCLES mess from r291 and replace it with a much cleaner and more efficient branching system. Also fixed a few bugs where-by the IOP would run waaaay ahead of the EE (leading to skippy sound, slowdowns, other things), and also a bug that caused crashes when resetting or starting new games.
Note: New IOP Counters code is a Work-in-Progress.  Should be fine for most games, but if a game uses the IOP counter gates it might break.  Will finish them soon!

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@345 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine 2f23574430 More MTGS improvements and cleanups. I actually changed some of how the MTGS ring buffer is managed this time, so it might introduce some bugs (lets hope not!).
Removed the SPU2timestretch auto-enable/disable code.  Also added checks for frameskipping support to the F4 keypress (just in case).

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@344 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 2f08ff5e70 Clean up some nasty #ifdefs in a few functions, which involved somewhat of a rewrite of those particular functions.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@343 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 a56b32fe18 Revise the x84 / x32 separation on several functions so it's more sane, remove an unneccessary def, and get rid of a bunch more places where variables were being assigned inside of if statements.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@342 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine 5a5c22e19a Cleaned up some parts of the Multithreaded GS code (MTGS), and made some notes.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@341 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine 83f0c75dfb Set a few of the IRQ handlers to __forceinline since they're only called from one place (cpuBranchTest, psxBranchTest). Changed all uses of _inline to __forceinline as well, since _inline is a useless keyword [all modern compilers by default assume _inline status on everything].
Also a few code cleanups and fixme's marking unused/unreferenced functions.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@340 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 e0a35a3aa6 "Fixed" the 2 games I have that suffer from the damage calculation bug by using the code of rpropMMI's mult1. This fix isn't final yet, but for the sake of testing... you know :p
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@339 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 c26c73c44b Update to bring this bug to attention. Finally found the bug that causes Soul Nomad damage calculations being wrong. I imagine it has a very high impact on game compatibility.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@338 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 098e6b509b Minor iCore.c changes. A few if/else statements are now case statements, a few compiler warnings are taken care of, a few variables are no longer assigned inside if statements, etc...
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@337 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine d24add597e Wee improvement to how the Win32 GUI handles Run->Execute. It'll now resume the existing cpu state instead of starting a new one. The old code had a tendency to get desync'd because it didn't complete the in-progress BranchTest execution (not good).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@336 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine a9e06593ba Removed some redundant conditionals from the testINTC and testDMAC calls in the eeRecs.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@335 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine 96560444ea SPU2ghz: Fixed a memory corruption bug in the rolled back DMA write code. Hopefully this DMA write code will fix that bug without breaking Arc the Lad and similar games.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@334 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 7e828a69ee SPU2Ghz: Had to revert dma.cpp to rev244 for the most part. The dma cache system in DoDMAWrite() broke Arc the Lad dma audio. The auido starts to loop a bit in rev 264 and from there on it gets worse.
Sorry for not finding this earlier, I hope the cache can get fixed so we can include it again.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@333 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 d0c0b20505 Changed the naming of the 2 SET_HWLOC's to differentiate between IOP and EE.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@332 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 8a9aafdee7 Turn a few defines into inlined functions, and remove a few unneeded comments.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@331 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 2ecf6d1372 Comment out broken MTGS logging code. Disable Logging menu in Linux if not a devbuild.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@330 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 0cb03d20a7 Reverted most changes from r326, the excessive code will get used later. Also removed some dead code that's been in the eerec for ages.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@329 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 7fd2888335 Minor Linux tweaks. Merge a patch in, make another easier to apply, and take a stab at the SpinButton issue...
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@328 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 f5872ce7a7 This should un-break the Linux build, yes some guys are using Linux! :p
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@327 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 7c054f247a A commit for review, there's some unclear counters code. Also added a more precise NTSC vsync rate.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@326 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 211cac44e5 Forgot this one, sorry :p
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@325 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
ramapcsx2 996fbc3931 This was supposed to be a bigger commit concerning loopy audio in Dawn of Mana FMV, but it looks like its not so easy to fix. So this here is some cleanup I did along the way ;)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@324 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 97f41ff177 Ok, so some people out there use windows, too. Fix pcsx2 on Windows...
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@323 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 1c8d922eac It's log, it's log, it's big, it's heavy, it's wood...
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@322 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 3ff019fde3 Bring the Linux Cpu dialog in line with the main project; Remove broken Linux vmbuild code.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@321 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
gigaherz dd7f8807ac OMFG gigaherz is commiting something! RUN!
So rama made me notice the "sanity" checks on the TimeUpdate stuff,
I read it, and it kinda scared me that it happily dropped the sync as soon as the audio was 0.002 seconds out of sync!
I changed it so the "sanity recovery" code only kicks in when there's over 0.1 seconds desync in clock numbers,
which seems a LOT more reasonable.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@320 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine a7db736e6b bugfix: Frameskip options in the CPU dialog didn't save and load right. ( Issue 41 )
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@319 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
arcum42 b004b8e712 Match the Gui changes in the last version in Linux, and clean up what gets sent to gcc a bit, so it doesn't get the same flage multiple times.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@318 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00
Jake.Stine 58a48b7b3a Big update; should fix most or all of the problems introduced in recent revisions. Extended summary follows:
New EE/IOP sync method: The EE can now "throttle" itself between high and low resolution wait cycles.  High res cycles are engaged when certain time-critical ints and BIOS calls are done.  Meanwhile, low-res mode uses much less cpu.

vs2008 project: Added a "PUBLIC" define to the 'Release (to Public)' build type.  It can be used to ifdef code that should only be excluded when creating official builds and releases.

Renamed INT() macro into CPU_INT() function.  INT() is also a Win32 define so renaming helps alleviate confusion and lets VS IDE's code database browser work better when trying to list references of the function.

Fixed some lingering inaccuracies in the EE h/vsync counters introduced at r246.

Removed the Use Fast Branches option (for now) as it's not compatible with the new EE/IOP sync (yet).

Added fflush() to the emu log so that it doesn't get cut off prematurely if the emulator crashes.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@317 a6443dda-0b58-4228-96e9-037be469359c
2016-05-24 22:40:27 +02:00