PCSX2 Playground v1.0.0395 - 模擬器
By Jake
at 2008-12-12T22:41
at 2008-12-12T22:41
Table of Contents
http://www.pcsx2.net/
PCSX2 Playground v1.0.0395 and new forums!
[ Posted by Bositman 10:30 on 12 12 08 ]
After a really long period of silence,we′re back with a bang!
Today we are announcing the release of Pcsx2 Playground 1.0.0395
Born as a ′playground′ test-bed for Pcsx2 modifications and code, the
Playground project evolved into much more, over a period of about 4 months.
Created by Air (aka Jake Stine),arcum42,cottonvibes,drkIIRaziel,rama and
tested by Krakatos,the team would like to thank:
- Thanks to the original Pcsx2 development team, to the betatesters and to
everyone that helped them. Without their work, Pcsx2 would not exist, and
neither would the Playground project!
- Thanks to the pcsx2 team once more for graciously hosting our forums.
- Thanks to the Pcsx2 team once again for providing hosting space Smile
- Thanks to Gigaherz for the render used in the playground logo
- Thanks to all the people who tried the various Playground revisions over
these months, providing us with helpful feedback
- Thanks to everyone else who supported Playground, without you all this
would have not been possible!
The PCSX2 team decided to support this project by having the official beta
testers also test it and hosting their binary and forum,since they′ve been
doing some great job Smile
You can grab the new binary which includes a plugin pack (and a heavily
modified SPU2Ghz for your sound pleasure!) in our download section here
For more information,check the dedicated forum here
Also,today we open our new official forums,hosted right here at pcsx2.net
Smile We would like to thank Bobbi and the NGemu network for hosting our
forums for so long!
Our new forum is totally dedicated to PCSX2 and has sections for the official
release,the public beta,plugins and the playground build Smile
We hope you enjoy it,you can visit by clicking here
Note: Your verification mail might end up in junk mail,please check there!
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Playground changelog:
rev 417: minor FPU opcode change.
rev 416: minor changes
rev 415: some FPU Compare opcode fixes. might fix some games that ′hang′
waiting for certain conditions that never happen.
rev 414: fixed the other FTOI opcodes. they should all work perfectly now.
rev 413: more recVUMI_FTOI0 changes. should now return proper saturation. too
tired to fix the other FTOI opcodes today.
rev 412: Change most of the macros in MMI.c over to functions.
rev 411: Sync with r410 for Linux. Give that GIF Warning that I get to see
over and over again on the console a line break.
rev 410: A couple minor GUI bug fixes:
- DaZ mode is now disabled for SSE1 CPUs, preventing a crash when trying to
OK the setting or run the Emulator with default settings.
- Emulator no longer tries to run games when a BIOS hasn′t been configured
(usually led to a crash).
rev 409:
--fixed recCVT_W opcode saturation: now it gets correct results and its
faster:p
--fixed recVUMI_FTOI0/recVUMI_FTOI4/recVUMI_FTOI12/recVUMI_FTOI15: it does
saturation now, but its still not 100% correct.Returns 0x7FFFFF80 instead of
0x7FFFFFFF.
rev 408: --svn:eol-style=native, part2
rev 407: --Added svn:eol-style=native on svn properties
rev 406: SPU2Ghz: Readjusted initial volumes. These give correct volume
levels for fmv, ingame sounds and speech. Boost volume is still not
recommended but the default volume seems loud enough already :)
rev 405: SPU2Ghz: Second part of the volume quirks update. Thanks to Gigaherz
for fixing the core reset functions.
Note:
The plugin is now louder by default, so check your volume boost setting and
disable it. If the game is still too quiet, you can re-enable it again :)
rev 404: Much to Guesseous distress, I have once again overlooked something
small and obvious in my last commit. If I were using a table saw I′d be
missing my arm at the elbow by now. //OWNED; u really should read comments
from rev 402 to this one//
rev 403: SPU2ghz: Minor tweaks to the mixer that should help get rid of
overflow problems. This is the first part of a 2 part commit that should help
correct some old-timey volume inaccuracies in the plugin.
rev 402: Dah! A little snippet of debugging code made it into the last
commit, which would have most assuredly broken any attempts at running the
emulator. -_-
rev 401: Bugfix: SIO′s DMA-Out cycle timing was way off the mark, and
sometimes caused games to "lose" some SIO-related interrupts.
rev 400: Move various things that should be in Mdec.h there, rework the
defines in VUflags.c to functions, put in 64 bit versions of the Interlocked
functions I previously #if 0ed, some cleaning, and, not least, make it so
Linux compiles after r399.
rev 399: MTGS now force-freezes all XMM/MMX registers prior to kernel calls
(Sleep/SetEvent), because some versions of Windows and drivers like to muck
with them.
FreezeMMXRegs / FreezeXMMRegs now track freezes and thaws, so that nested
freezes won′t end up unfreezing registers too early anymore. Plus several
code cleanups and ugly macro removals to a handful of other modules.
rev 398: Minor Linux code cleanups.
rev 397: something drk||Raziel found that I forgot to commit. not very
important, only effects non-MTGS/DC modes.
rev 396: Don′t try to close non-existant threads. Prevents a crashing bug in
Linux
rev 395: Temporarily block out two functions that are not being used that
cause the debug version not to compile.
rev 394: --Fixed some problems on the win32 threading code, handle can be
NULL, the errorvalue is INVALID_HANDLE_VALUE.
--Don′t call GS_SETEVENT from CSRwrite, because it calls SetEvent and thats
a kernel function that sometimes corrupts the contents of the xmm regs. Since
CSRwrite is called directly from the dynarec context without flushing the xmm
regs that can lead to register corruption :p.Fixes PAL FFX on my pc [got
broken on 376 and up]
rev 393: Major Fix: Found and fixed a big vmhack / COP0 bug. This should fix
several games, including those in Issue 49, Issue 58, and possibly Issue 59
as well (testing of those issues and a confirmation is needed).
Code cleanup to iHw.c : Removed some rampant abuse of macros and quite a bit
of unnecessary code bloat.
//little change in ′hacked′ folder; also new hardhacked version//
rev 392: Tweaked frameskipper slightly. Behaves better when using 4 or higher
as a skip setting (frameskip settings 0,0,2,4 for example)
rev 391: Various Linux cleanups to match recent Windows commits.
rev 390: Fixed frameskipping when using a strict framerate setting
(minfps==maxfps). The setting is ideal for users playing high-fps games as it
allows you to disable the timestretching on your SPU2 plugin. :)
rev 389: Grr. .. accidentally left in a dud line of code that broke MTGS
completely. :/
rev 388: Working on a special end case scenario with the frameskipper, when
minfps==maxfps (using 50/50/0/0 as frameskip settings, fo r example).
Previous versions would skip constantly. This version is better, but maybe
could be improved yet.
Also: Changed default frameskip options to be a little more aggressive. When
using zeros (defaults) skipping starts around 95% instead of 90%. (57fps NTSC
and 48 fps PAL). This seems to work a lot better with the new frameskipper. :)
rev 387: Fixed frameskipping when using default framefate settings (it wouldn
′t skip until games got REALLY slow, heh).
Win32: Fixed BIOS settings saving in the Configuration dialog. (rama)
rev 386: Stabilized the framelimiting part of the frameskipper.
rev 385: Repairing a minor foopah in my last commit.
rev 384: Improved frameskipper when running under MTGS mode, by moving it
from the EE thread to the MTGS thread. Also got rid of some highly
unnecessary recompiler code in iGS.cpp. Register writes to SMODE1/SMODE2 now
fall back on the new
modeset code in GS.cpp. (that code is entirely *not* speed critical, and
maintaining a bunch of rec code for it wasn′t my idea of a good time).
rev 383: SPU2ghz: Improved "on exit" stability of the XA2 driver on WinXP
machines, by covering up for things the driver is *supposed* to do itself
(but apparently does not, in WinXp at least).
Also fixed a Pcsx2 compilation error when trying to enable the experimental
IPU speedhack.
//added new hacked version to hacked folder; pls don′t bitch about rev
number//
rev 382: SPU2Ghz: New defaults
rev 381: [No functional changes] Just committing an IPU speedhack I found a
while back, in case anyone wants to play with it. It′s disabled by default.
Enable by uncommenting the #define in IPU.h -- might break some movies tho, I
dunno.
rev 380: More cosmetic changes ><
rev 379: Updated about dialog
rev 378: Fix Linux build, and disable obsolete haxks / gamefixes in it.
rev 377: MTGS: Fixed yet another race condition. This one was most apparent
on Digital Devil Saga and would cause the game to freeze at random intervals.
May have caused small visual artifacts on other games as well. Also improved
the Linux/pthreads code to remove compile errors.
Rolled back a previous accidental commit of experimental EE_WAIT_CYCLE values.
rev 376: Another MTGS fix. This one was a known bug that I was saving for
last, and in fixing it I was able to roll back the hack-fix for in-game
stalls from r375.
rev 375: MTGS: Fixed stalls in some games that sometimes did a lot of GS
register manipulation. Also fixed a compilation error when using
Debud/Release builds (stupid typo).
rev 374: Major code cleanups to the MTGS code, plus a new faster, friendlier,
and more stable MTGS startup/shutdown system.
Fixed a bug where the emulator would become unstable if any plugins failed to
init when starting a game. Users can now safely change out to a working
plugin and try again without having to completely restart the emu anymore.
Ported MTGS code into pthreads and added linux-equivalent functions for
missing InterlockedExchanges.
rev 373: New "nothing" button in speedhacks.
rev 372: Removed 2 obsolete hacks / gamefixes.
rev 371: Mostly unbreak Linux 64 and debug builds, though it still needs more
testing. (With thanks to Jake)
rev 370: Apply some of the changes from r367 to Linux and 64 bit versions.
Also add a ′Normal′ button to the (Linux) speedhack dialog.
rev 369: Added a few things previously missing from the EE/IOP reset code.
Resetting games and the BIOS should be a lot more stable now.
rev 368: Fixed a minor bug in the psx counters that would have prevented
Counter 1′s vsync gate from operating. I don′t know of a single game yet
that uses IOP counter gates, so it probably won′t affect anything anyway. ;)
rev 367:
-Updates to the configuration dialogues
-Removed Fastbranches hack
rev 366: 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. >_<
rev 365: (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.
rev 364: 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.
rev 363:
- 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)
rev 362: EE Interpreter is (mostly) fixed now.
rev 361: Fixed a bug in the MTGS that caused very sporadic bad packets and
crashes in some games.
rev 360: 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.
rev 359: Some updates by Jake and 2 lines from me, hope this fixes
savestates. Please test guys :)
rev 358: Fix for custom frame limit crashing pcsx2 on startup. Thanks to
tmkkmac for spotting it ;)
rev 357: Small cleanup, thanks to the MTGS rewrite the optimize pragma isn′t
needed for PGO anymore.
rev 356: Revert the bit of r326 that I believe was actually causing the Linux
issues. (Should negate the need for 354 & 355.)
rev 355: Oops. Comment out debug message I left in.
rev 354: Horrible, nasty workaround to the Linux cpu sseMXCSR bug.
rev 353: Fixed the fix from rev339 (I hope) :p
rev 352: Applied patch from Issue 43 - GIF_LOG had bad/outdated calls for
Reads.
rev 351: Fixed a dumb bug on my part that caused some games (FFXII) to crash
when loading savestates.
rev 350: Fix latest Linux compile breakage.
rev 349: Resolved random crashing in MTGS modes, and added some handy
debugging items to the MTGS code along the way.
rev 348: Even if it is broken, lets make the 64 bit build compilable as well.
rev 347: Fix compiling on Linux.
rev 346: 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.
rev 345: 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!
rev 344: 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).
rev 343: Clean up some nasty #ifdefs in a few functions, which involved
somewhat of a rewrite of those particular functions.
rev 342: 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.
rev 341: Cleaned up some parts of the Multithreaded GS code (MTGS), and made
some notes.
rev 340: 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.
rev 339: "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
rev 338: 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.
rev 337: 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...
rev 336: 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).
rev 335: Removed some redundant conditionals from the testINTC and testDMAC
calls in the eeRecs.
rev 334: 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. //SPU2GHz update from this revision will be
uploaded later//
rev 333: 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.
rev 332: Changed the naming of the 2 SET_HWLOC′s to differentiate between
IOP and EE.
rev 331: Turn a few defines into inlined functions, and remove a few unneeded
comments.
rev 330: Comment out broken MTGS logging code. Disable Logging menu in Linux
if not a devbuild. //corrected rev 327 comment//
rev 329: 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.
rev 328: Minor Linux tweaks. Merge a patch in, make another easier to apply,
and take a stab at the SpinButton issue...
rev 327: This should un-break the Linux build, yes some guys are using Linux!
:p //this change affects windows version too - LIE; sry my bad, had too many
tabs opened - I mistook changes from rev 327 with ones from 326; thanks for
pointing that out, arcum42//
rev 326: A commit for review, there′s some unclear counters code. Also added
a more precise NTSC vsync rate.
rev 325: Forgot this one, sorry :p
rev 324: 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 Wink //SPU2GHz update from this revision
will be uploaded later//
rev 323: Ok, so some people out there use windows, too. Fix pcsx2 on
Windows... //lol′d//
rev 322: It′s log, it′s log, it′s big, it′s heavy, it′s wood...
rev 321: Bring the Linux Cpu dialog in line with the main project; Remove
broken Linux vmbuild code.
rev 320: 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.
rev 319: bugfix: Frameskip options in the CPU dialog didn′t save and load
right. ( Issue 41 ) //gj//
rev 318: 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.
rev 317: 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.
rev 316: Make Linux build compile, and mirror 32 bit changes to 64 bit.
rev 315: Added some compiler hints to help the IPU optimize a little better.
It had several candidiates for forced inlining.
rev 314: Made a huge hack concerning the counter multipliers less buggy.
Still needs proper fixing.
rev 313: Fixed the previous fix!
rev 312: Fixed bug where plugin configuration changes didn′t take effect
until restart. Plus a few code cleanups.
rev 311: Remove some commented out code and inline a few defines.
rev 310: Include the svn revision in Linux, add an --enable-sse4, since it
looks like it should have been in there, and disable the --enable-vmbuild
flag, since I′m not sure it ever worked in Linux.
rev 309: Get rid of the worst of the defines in the Linux code.
rev 308: Replace half a dozen nearly identical functions with one in the
Linux code.
rev 307: Port a few of the Windows cleanups to the Linux version, and correct
a few warnings while I′m at it.
rev 306: Fixed some stack buffer overruns introduced by the new commandline
options features in r294. They only happened when using one of the plugin
override options (-spu or -gs, for example).
rev 305: SPU2ghz: Compiling without TortoiseSVN installed should work
out-of-the-box now. The project will automatically fall back on the
old-school behavior (no revision information inserted into the project info).
rev 304: SPU2ghz: XAudio 2 crash fix attempt, take #341. Action! *clip*
rev 303: SPU2ghz: Removing the Sleep() caused XP′s XAudio2 to crash again.
But I found a note from Microsoft on one of their dev journals that said to
put the Sleep() immediately after the FlushBuffers and before the
DestroyVoice. Let′s cross some fingers and hope it works! (don′t you love
beta libs from microsoft?)
rev 302: Ok, I lied. Here′s a fix. Linux is playable now. I′m going to
bed...
rev 301: Make the Linux version compilable. It isn′t *usable*, but it′s
compilable. I′m not sure I′ll have time to get it playable tonight...
rev 300: Reverted the IOP_WAIT_CYCLES since it was causing instability in
some games. Eh, it was worth a try.
rev 299: Fixed bug in IOP counters.
rev 298: Removed Visual Studio 2003 project files > Obsolete
rev 297: SPU2Ghz: Commented out a Sleep() call in xaudio2. It made the GUI
not respond for several seconds when pressing escape to pause emulation
rev 296: SPU2ghz: Added quotes to the svnrev pre-build step; hoping it
behaves better for users who have paces in the names of their project folders.
rev 295: Uploaded the new PathUtils.c file into the wrong location.
rev 294: Added a functional -cfg command line option (the help has listed it
forever, but it never did anything).
Absolute paths via the command line or .ini file are supported now. That
means you can specify "c:mystuffsomeplugin.dll" now without getting an error.
Additionally, filenames with spaces are also supported. Pcsx2 now uses the
working directory at startup to load the ini file, allowing it to be run from
VStudio′s debug environment more easily. Expanded the console log depth to
2048. Plus many code cleanups and some extra error checking when handling
strings and pathnames.
rev 293: SPU2ghz: Moved the svnrev additions to a new ′common′ folder which
is shared by all projects (pcsx2 included). The common folder now includes
the necessary utility, so it should build out-of-the-box now (no more path
setup or program installs necessary)
rev 292: SPU2ghz: DLL now "properly" exports functions. May fix some
compilation/plugin detection problems? Plus another attempt at fixing the
XAudio 2 crash-on-exit bug.
rev 291: Fixed stupid typo in r289′s EE counter that probably broke lots of
things. Made a couple code cleanups of the IOP (no functional changes).
rev 290: Remove 2 SSE checks affecting Linux and 64 bit builds, respectively.
rev 289: Improved the EE/IOP counter optimization. It was causing branch
tests to occur more frequently than needed.
rev 288: SPU2ghz: Fixed a couple rare odd-case XAudio2 crashes, and fixed a
small glitch in in the over/underrun code when timestretching disabled.
rev 287: SPU2ghz: err... oops! This′ll stop it from crashing when you try to
enter the PCSX2 plugin configuration screen.
rev 286: Fix non-dev builds.
rev 285: SPU2ghz: Rearranged the project files quite a bit. Solutions are now
in the Plugins folder, and binaries are output to plugins/bin. This is in
preparation for if/when we have more plugins as part of our repository, and
will go hand-in-hand with a future change to how pcsx2 looks for plugins
which should make
shared development a little easier for all of us (I hope).
I also deleted several *very* dated projects and solutions. They all still
referenced FMOD, in fact, if it gives you an idea just how out-dated they
were. New updated projects can be re-added in the future if a need still
exists for any of them.
rev 284: SPU2Ghz: Fixed a problem in ADSR handling as suggested by gigaherz.
rev 283: Few more SSE checks removed.
rev 282: Also removed SSE1 checks, see rev281 for explanation :p
rev 281: Removed support for CPU′s without SSE2. Now i know there′s the
occasional AthlonXP user out there.. sorry. The SSE2 (and SSE1 too!) checks
were very frequent and could′ve hurt performance a bit.
Note: This move was discussed with the team, we all support it.
Note 2: I tried very hard to avoid mistakes, but due to the many changes i
could′ve overlooked something (especially in iR5900tables.c). I′d apreciate
it if someone could look over the changes a bit ;)
rev 280: Applied the IOP counter optimization to the EE counters. Don′t
expect any noticeable speedups though, since this doesn′t really affect the
hsync/vsync counters which are the ones that end up doing 90% of the work.
(but there′s always a chance that it′ll favor a game that likes to abuse
the counters)
rev 279: SPU2ghz: Code cleanups, and conf now force-disable Effects
Processing (for anyone who might have had it checked when Rama grayed out the
option)
rev 278: SPU2ghz: Fixed potentially quirky volume handling in Linear
Interpolation mode (quiet sounds would get cut off too soon or be completely
inaudible). Also did a minor cleanup of the ADSR handler.
rev 277: SPU2ghz: Reverted last change since it broke way more than it fixed.
Will post another improved ADMA attempt later once I′ve got it figured out
better.
rev 276: SPU2ghz: Fixed serious bug in AutoDMA code, basically it wasn′t
working at all. Soul Calibur III //fixed to avoid misunderstanding// audio
works now, and possibly many other games fixed too.
rev 275: SPU2Ghz: Disabled Effects Processing for now, you can still force it
on via the .ini but it′s NOT recommended.
rev 274: Changed some GS-related #define macros into more type-safe inline′d
functions.
rev 273: Revert changes in GS.h
rev 272: Break up the file structure of the Linux port a bit, to make it
easier to make large changes.
rev 271: Convert Config.c & GtkGui.c to cpp. And remove a gcc 4.3 specific
flag from my last commit.
rev 270: A few minor changes to GS.cpp & GS.h.
rev 269: Improved EE/IOP synchronization and also reduced the frequency of EE
branch text executions (speedup!)
rev 268: SPU2ghz: Major optimization fix to the mixer code. VS2008 was not
optimizing the MulShr32su function properly. It′s about 3-6x faster now.
Also optimized the timestretch manager so that it can take full advantage of
VC2008 SSE opts.
* XAudio 2 * Fixed potential crash bug on close (which only started happening
after I upgraded my DXSDK).
rev 267: SPU2ghz: XAudio2 driver now initializes a 48khz output rate (was
using the default of 44.1khz). This may help fix some of the XA2 crashing
problems as well.
rev 266: SPU2ghz: Fixed DMA memory corruption bug introduced in r264 (and
made the DMA code even faster!), and expanded SoundTouch′s working buffer by
~15ms (seems to help improve voice audio breakups when games slow down below
40 fps).
XAudio2 problems are still up in the air, as they may be related to version
differences in DXSDK installations of people building the DLL. Note to
compilers: please update your DX SDK to the most recent version (Aug 2008) if
you haven′t already.
rev 265: Nasty hack: Fix cpu detection on 32 bit Linux, by tricking the
optimizer into thinking it needs the values of reg[2] & [3]; which, in fact,
it does.
rev 264: SPU2ghz: Re-optimized the DMA write code so that DMA writes don′t
incur as much cache miss penalty anymore. Also made a couple minor tweaks to
the timestretcher′s overrun handler (Which only affects people who like
their games to run at 120 fps. ;)
rev 263 : Code cleanups for Linux builds (no functional changes)
rev 262: Fixes timings on PAL games. (no audio underruns after 15+ minutes of
testing!)
rev 261: On Linux, when we say _forceinline, actually force it to inline.
rev 260: Fixes mild desync′ing in the IOP.
rev 259:
- Better IOP synchronization when using the X2 and X3 IOP hacks. Still not
perfect, though (music may run a little behind or ahead of the games). I′ll
look into it tomorrow first thing.
- IOP Counter optimizations. The IOP counter code now only updates counters
actually being modified instead of blindly updating all counters.
rev 258: IOP Sync problems should be fixed now (yeah I said that 2 revisions
ago too, I know). But this time I knew what to look for! spu2ghz stretch
stats don′t seem to crap out now. Wink
//btw this made my day:
"Comment by colepcsx2, Today (12 hours ago): Too many updates in one day
people!!"
...with negative score to revision lol. Somebody got screwed hard by PP team
with yesterday′s updates hehehe.//
rev 257: SPU2Ghz: Small change to underrun fill :p
rev 256: Reverted IOP_WAIT_CYCLES to 64.
rev 255: Last fix was ok, but this fix is better.
rev 254: Fixed a freeze up bug from r252. The IOP must run at least one
branch test for every EE branch test, which was a problem with the
extended-length IOP_WAIT_CYCLE.
rev 253: Clean up Patch.c a bit, and add a few fixmes to the code.
rev 252: Optimized the IOP′s branch test algo a wee bit.
rev 251: SPU2ghz: Removed SPU2ghz.aps since it′s a file generated by the
client (it′s a VS2008 resource designer cache file, created when you open
.rc files in the IDE).
rev 250: SPU2ghz: Cleaned up and optimized the SPU2write() code a bit.
rev 249: SPU2ghz: Added sanity checks to the XAudio2 driver, might be more
stable now. If this doesn′t fix the crashing problems then I′ll have to
look into making a special instance of spu2ghz.dll that dumps XAudio2 log
data, and hope to solve it from that.
rev 248: minor update: in the CPU frame limiting dialog, i put a note that
says F4 key switches the mode in-game.
rev 247: SPU2Ghz: Well, yet again another update from Jake.Stine :p This time
around he improved the already great timestretcher to be even smarter. This
and the fixed XAudio2 output module get even Vista users a near realtime
sound. (Try a delay between 90 and 140ms). Read a bit more about this version
in issue 31 :)
rev 246: Counters changes: reverted back to my counters code from svn241 and
fixed the DMC1 bug as well as
alot of other stuff (including some of the problems Jake.Stine found out in
Issue 32)
rev 245: SPU2Ghz: Adjusted default values for the worst case (Windows
Vista... seriously, what did MS to the audio subsystem?) //MS ass-raepd it:P//
rev 244: SPU2Ghz: Lots of changes as described in issue 31, thanks again to
Jake.Stine.
rev 243: reverted counters.c to official SVN′s code for now (my code was
crashing Devil May Cry for some reason...)
rev 242: Cleanup various things g++ doesn′t like.
rev 241: forgot to change this...
rev 240: changed the counters algorithm again; some games didn′t like the
algorithm from 228...
rev 239: Fix Linux compilation as of r237
rev 238: fixed some counters problems, should be more smooth and stable. one
of the problems i′m having is that rcntUpdate() should be called more-often,
but i don′t know where i should put it...
rev 237: Changed the Sleep() behavior as posted by Jake.Stine in Issue 29 .
Improves smoothness in games running fullspeed, and lets pcsx2 use the cpu
time it needs :)
(Note: You′ll see constantly 100% cpu usage now, but pcsx2 doesn′t do any
"more" work.)
rev 236: Remove silly debug message I left in. :(
rev 235: Assorted cleanup on iCOP2.c, with a few minor tweaks.
rev 234: more counter changes. also found some cool speedhacks that i made
into macros in Counters.h:
setting HBLANK_COUNTER_SPEED to ′3′, makes Kingdom Hearts II double FPS! (i
was getting insane speed :p)
setting HBLANK_TIMER_SLOWDOWN to ′2′, makes God of War alot faster (FPS
decreases, but game is faster)
the bad part is that setting one hack, makes some games faster, but other
games slower. like HBLANK_COUNTER_SPEED makes KHII alot faster, but slows
down God of War.
these 2 hacks are inverse to each other, so you shouldn′t set them both at
the same time; and it depends on the game if it′ll run faster or slower.
because of the complex nature of these hacks, i′m not adding them to the
speed hacks dialog. they also break the framelimiter... so use at your own
risk!
rev 233: SPU2Ghz: More improvements and cleanup
rev 232: Small tweak to the auto-timestretch. It now turns off only after the
game runs at stable fullspeed for a while.
rev 231: SPU2Ghz: Made the timestretcher automatically turn on/off based on
game speed. This is possible thanks to recent changes by Jake.Stine :)
The way it works now, it makes it completely automatic for the user. If the
buffers over/underflow the stretcher enables itself. Once it decides that
game speed is fine again, it disables itself.
This works really great here, but please comment if it causes trouble for you.
rev 230: Hah! Since the last SPU2 update was so great I sent my local project
files along the way :p
rev 229: Jake.Stine "completed" his work on SPU2Ghz, I tested a whole lot of
games with this and it sounds great! Savestates work very well, the mixer is
fast, even the dreaded buffer over/underflows are handled quite well (even
without timestretch!).
All in all great additions which imo make SPU2Ghz the best SPU2 plugin to use
now :)
rev 228:
rev 227: SPU2Ghz: Updated to include Jake.Stine′s latest work. Some issues
still exist, but will be fixed soon. Also made the speedlimiter switch toggle
timestretch for easier debugging and convenience :)
rev 226: SPU2Ghz: Disabled ZeroSPU2 compatibility mode for savestates. This
should enable users to load savestates created with that plugin again.
(compatibility mode was crashing too much)
rev 225: Fix the compilation break caused by a misplaced character in the
last commit.
rev 224: Commit the patch listed in Issue 26, to fix compilation issues on
some Linux systems, mine not included.
rev 223: reverted last counters change for now.
rev 222: counters.c optimizations
rev 221: Fix Atelier Iris 2/3 issue from r220, and devbuild issue from a few
revisions ago.
rev 220: more accurate counters
rev 219: updated ZeroFrog′s change from the official PCSX2 svn 396
rev 218: i think this was a big problem with freezexmmregs_()
rev 217: minor counters changes
rev 216: On Linux, use stdint.h for variable size if possible.
rev 215: Tweak the warnings a bit on gcc, so they don′t require gcc 4.3. :(
rev 214: Revert the windows project file, to prevent people from seeing how
many 64 bit compatiblity problems pcsx2 has.
rev 213: Assorted cleanup. Deleting and commenting out unused variables &
code, and a few minor changes to the Linux code.
rev 212: Remove a few of the more irritating compiler messages, and clean up
a few misc things on the Linux port.
rev 211: pretty sure this is what was meant. //see rev 209-211 comments for
more info//
rev 210: Added "fixme" to some strange parts of code to find them faster.
rev 209: Comment out various code that appears to be unused.
rev 208: Working with real-time audio / buffers sucks :p Anyway, this gave me
the least over/underflows. //SPU2GHz PP update//
rev 207: started working on Counters.c; still needs more work
rev 206: The arguments for fpuFloat, ClampValues, and Clampvalues2 really
ought to have variable types... :)
rev 205: Cast to (uptr) rather then (u32) in various places where the
functions were actually looking for a uptr. No difference for 32 bit systems,
but a uptr is a u64 on 64 bit systems...
rev 204: Using this as a base now, it works very well for me. Thanks to
Jake.Stine′s patch the plugin got a bit faster Wink I made a small mistake
in the last 2 commits, its fine again. //SPU2GHz PP update//
rev 203: oO //SPU2GHz PP update//
rev 202: SPU2Ghz: Part one of a bigger update
rev 201: Change all occurrances of ′const static′ to ′static const′, to
remove compiler warnings. //for linux. Windows version doesn′t care about
it. At least VS does not give a damn about it while compiling. No release.//
rev 200: Last update for today, timestretch needs one more addition, then its
perfect. The soundbuffer can (rarely) over/underflow (loop) and throw of the
emergency stretch calculations. Will fix that soon Smile //SPU2GHz PP update//
rev 199: Turn on lots of compiler warnings, and get rid of some deprecated
conversion from string constant warnings. (I′ll probably be doing more
commits based on these warnings in the future...)
rev 198: A bit more work on SPU2Ghz. Removed old code, made timestretch code
a bit more clear, etc.
rev 197: Add zerofrogs changes from the official svn, r393: changed qword to
xmmword to fix gcc errors on newer distros //fixed typo in rev description//
rev 196: SPU2Ghz: Reverted a last-minute tryout in the output buffering, it
broke more than it fixed.
rev 195: commented out some code i′m pretty sure isn′t needed. please
report if any games break with this revision. (i don′t think any will)
rev 194: fixed some bad VU1 opcodes (some opcodes didn′t even return the
correct register, so the correct result would end up in the wrong reg lol)
also cleaned up some DMA code a tiny bit, and added FreezeXMMRegs() where it
was needed.
rev 193: Adjusted spu2ghz project file (vs 2008)
rev 192: Added SPU2Ghz to the repository
rev 191: Fix a few spelling errors, make the Ok and Cancel buttons consistant
in appearance on the gtk port, add some preliminary code for two dialogs, and
get rid of the abomination that is a global variable named ′Window′.
rev 190: changed the functions 64bit was having trouble with, to be the same
for 64bit and 32bit without using the 64hack macro. not sure yet why part of
ADD32ItoM() was breaking 64bit, so i just commented that out.
rev 189: Change a few things in ix86.c to the way they were originally *if*
you are running the 64 bit version. I′ve marked what each section breaks, if
rama wants to look at it. I also fixed up the indentation in the file...
rev 188: Fix commit r186. Two header files weren′t under version control, so
didn′t come over. :(
rev 187: Bring the changes made to iR5900-32.c over to iR5900-64.c, as well
as correct an annoying typo. (Note: I suspect some of the non-playground
changes aren′t in sync either, but I haven′t really had a chance to look at
those).
rev 186: Add the Game Fix, Speed Hack, and Advanced Dialogs to the Linux port.
rev 185: this should fix Dark Cloud 2. please comment if it does/doesn′t
work :p
rev 184: Magna Carta fix is now a toggable gamefix, since it broke Crash
Bandicoot.
rev 183: fixed some potential EErec problems.
rev 182: formated and cleaned up counters.c a little bit.
rev 181: added some code to make the magna carta fix configurable by the
macro SUPERVU_VIBRANCHDELAY2. when SUPERVU_VIBRANCHDELAY2 is defined, it uses
the old way (the method that breaks Magna Carta) this is just for easier
debugging.
rev 180: small mistake, my bad :p //wiki update//
rev 179: The intro sounded a bit like we rewrote all of the emulator. Until
we actually do, its now a bit more honest Smile Also added a 4th FaQ. //wiki
update//
rev 178: Just a reminder that counters don′t work 100% yet.
rev 177: Created wiki page through web user interface.
rev 176: Magna Carta now works. Please report if you have any new bugs with
this.
rev 175: the document i was reading had incorrect information for the ORI
opcode (said it should be a sign-extended immediate, but its really supposed
to be zero-extended) took me hours to figure out the problem ><
anyways, I fixed the opcodes correctly...
rev 174: :O //don′t ask...//
rev 173: some EE rec and interpreter opcode fixes. theres still some possible
problems with the rec opcodes, not sure how i′m going to fix it yet.
anyways, should be alot better than it was before.
rev 172: very-minor spelling mistake change :O
rev 171: minor fpu changes
rev 170: some fpu interpreter changes...
rev 169: made the code i commented-out in r167 work correctly. games that had
problems when the "disable underflow" speedhack was left Un-Checked, should
now be fixed.
rev 168: nasty error... i was clamping incorrect reg-vectors in
recUpdateFlags(), so this could have caused problems...
rev 167: commented out some code for now. now, i know why leaving "disable
underflow speedhack" unchecked sometimes breaks games.
i′ll have to fix it later, but for now the speedhack is always on (this is
more compatible)
rev 166: according to psxAuthor, branches wrap around when the result is less
than zero; so i′m trying this. should fix some possible graphic
problems/errors caused by incorrect VU branch addresses...
rev 165: forgot to change this...
rev 164: fixed possible allocation problems...
rev 163: fixed some possible allocation problems... Fixes rockstar games that
were broken in the last revisions..
rev 162: very minor change...
rev 161: reverted something i commented-out along time ago.
rev 160: re-recoded the VU div opcode lol. now its more efficient, faster,
and 1/6 the size :D
rev 159: fix for last revision.
rev 158: some cleanup... this file is a mess...
rev 157: optimized some retarded code...
rev 156: Corrected a bug in a memory write function. Thanks to drk||Razi for
spotting this one.
rev 155: should fix x64 build compilation problems...
Note:
seems iR5900-64.c is pretty much a copy of iR5900-32.c just with a few x64
specific changes... so any code-change made to iR5900-32.c will have to be
mirrored to iR5900-64.c... sigh pretty annoying...
rev 154: minor change: lets x64 build use FPU interpreter if the processor
doesn′t
support SSE...
rev 153: major code clean-up for FPUs, removed alot of old/useless code, and
organized stuff better. trying to clean-up pcsx2 a bit..
*note: FPU reg caching is always on now; which means you need a SSE processor
to run the FPU recs, if not it will just run the interpreter code instead
(not really a bad thing, the int-code isn′t much slower)
rev 152: minor fix for linux. btw, we have a new member on the team,
drkIIRaziel Very Happy he′s one of the author′s of nullDC (a dreamcast emu)
so this is good news :p
rev 151: One more inline hint and (hopefully) fixed Linux (again :p)
rev 150: messed around with some DMA functions, might fix DMA errors. GIFdma
should also be faster, since now it only freezes MMX and XMM regs when it
needs to. also did some very minor code cleanups.
p.s. GIFdma() is a mess, it needs to get cleaned-up in the future.
rev 149: more inlining hints, more speed :)
rev 148: forgot those
rev 147: SSE opcodes now all inlined. Changed all new inlining hints to
_inline.
rev 146: Modified opcodes headers and files so all functions use
__forceinline now. This brings a nice, free speedboost of about 5% in all
games :)
rev 145: Changed pDsp so it *should* compile fine under Linux. (Can′t test
this :p )
rev 144: better x64 fix //this also affects regular version//
rev 143: -Odd bug on PsxHw.c
-Added "FreezeXMMRegs" before recompiling psx code in places that had that
missing. (Fixes x64 builds a bit)
rev 142: Converted 64bit VS2k5 project files to VS2k8 and put the same
optimizations as in the 32bit version.
rev 141: reverted last revisions to prevent possible syncing problems/crashes.
rev 140: The last update was too aggressive, some games didn′t save states
anymore. This does nearly the same, but saves work again.
rev 139: Commented out gsWaitGS() code, which stops and syncs the gs when
loading/saving savestates and also when some Vif counter is (supposedly) too
big.
This helps regain audio after loading a savestate with ZeroSPU2 and a few
games run faster (Dragonquest 8, Dawn of Mana, Final Fantasy 12).
rev 138: speedhacks now have "compatibility" and "speed" profiles to help
avoid confusion.
compatibility mode: most games will work with this setting. speed mode: fast
settings, will break games.
note:
some games will still require manually tweaking the hacks. GT4 for example
needs "Extra VU Overflow Checks" (greyed checkbox) but the majority of games
should work with "compatibility" mode. there are also some odd games that
will work better with "speed" mode, Rogue Galaxy for example.
anyways, hopefully these profiles will help avoid confusion.
rev 137: took me a while, but i managed to do some nice recupdateflag()
optimizations :D
rev 136: minor change:
some "vu overflow checks" were only being called when "disable extra vu flags"
was disabled. the 2 speedhacks should be independent of each other.
rev 135: minor change: small optimization and fixed a typo.
rev 134: Corrected the UpdateVSyncRate functions to properly set a NTSC
framerate of 59.94fps. When framelimiting is enabled on NTSC games, the SPU2
plugin now does not need to stretch constantly.
rev 133: very minor changes
rev 132: minor FPU changes
rev 131: Rule Of Rose now works with the FPU recs :D
rev 130: changed the way the slowdvd gamefix works. the slowdvd hack makes
dvd reads at 1x instead of 4x speed. this is untested, i think it should help
TOA just like the old method.
rev 129: Better "Slow DVD" hack. Now fixes ToA and Digital Devil Saga (one
video only though :p)
rev 128: "Fixed" the slow FMV in games that use cd-read, also Xenosaga′s
Intro FMV works again.
Note: dvd and cd readspeeds are not emulated correctly. Needs more fixing.
rev 127: ugly error, pcsx2 was reading cds as dvd′s sometimes. so it was
reading them 9x faster than it should be lol.
rev 126: optimized the cd-read algorithm by removing extra un-needed
variables.
it still does the same thing though :p
rev 125: minor change.
rev 124: fixed a possible zerorec branching error.
rev 123: Added hacks to VU interpreters, only accessible via source.
Note: these hacks are more like a reference, they help show what makes
interpreters so slow.
Most games break with these enabled, but my testing game is fine. Speedup in
it
is about 30%.
Note2: I′ll remove these hacks, once interpreters are fast enough.
rev 122: small problem that always bugged me..
rev 121: some changes, should be a bit faster with "disable extra VU flags"
checked
rev 120: different way to fix the pcsx2.ini crash.
rev 119: added default button to advance options dialog
rev 118: Fixed the pcsx2 startup crash when no pcsx2.ini is present.
rev 117: minor changes
rev 116: minor VU changes
rev 115: some VU changes
rev 114: Added a Tales of the Abyss gamefix "Slow DVD access", which fixes
most of the
game hangs.
Note that the game still hangs from time to time, but its better now :)
Also fixed the hdloader hang when reading the DVD "TOC". Games can now be
installed on HDD.
rev 113: one more try for the Esc Hack.
works perfect with GSdx DX9. Fully exits fullscreen/windowed GSdx, and
console.
(make sure you uncheck Lilypad′s ESC hacks!!!)
if it doesn′t work with dx10 gsdx, then just don′t use the hack. i don′t
have
vista to test out the problem.
rev 112: this might fix ESC-key hack for vista users.
rev 111: tekken 5 works again with the gamefix.
that game is really picky :/
rev 110: added ESC-key hack by request (turn it on/off from the speedhacks
menu)
turning it on lets you fully exit PCSX2 when running in fullscreen (so you don
′t
have to press alt+f4)
rev 109: mostly some VU changes.
rev 108: fixed some errors from the last version i submitted, and also added
extra
clamping support to the remainder of the opcodes.
the extra clamping i′ve been talking about is only enabled when you have
Extra
FPU Overflow Checks On (when the FPU speedhack is grey).
rev 107: more FPU opcodes have extra clamping support.
just a few more FPU opcodes to go.
i also realized that VU extra clamping needs more work. i′m hoping this is
where
God of War′s SPS comes from, i′ll start coding it as soon as i finish the
rest
of the FPU opcodes.
rev 106: minor FPU changes
rev 105: Fixed tlb build in vs2k8, it had SSE2 compiler optimizations on.
Very bad idea
:p
rev 104: fixed the way the VU′s check for overflow in recUpdateFlags()
i would like to continue coding, but i have to study for an exam hehe :p
rev 103: forgot to change this :O
rev 102: found out why GT4 needed the hack, and fixed it correctly Very Happy
no need for the Gamefix hack anymore :p
rev 101: more FPU opcodes have extra clamping support.
rev 100: some more FPU rec changes.
rev 99: recoded the FPU div opcode to set correct flags.
i thought this would eliminate the need for the GT4 hack, but sadly it didn′t
fix the problem.
rev 98: Small modification to the run sub-menu
rev 97: Small visual tweak to gamefixes dialogue, by Cole :)
rev 96: added a Tekken 5 fix to the gamefixes dialog thanks to rama finding
the problem.
i also tweaked the GT4 gamefix a bit.
note: i haven′t tested the Tekken 5 fix. plz comment if it doesn′t work.
rev 95: recoded some more FPU opcodes, and added 2 new speedhacks: "disable
extra VU
flags" and "disable extra FPU flags".
in the PS2, certain "flags" are set to indicate different statuses. There are
flags for overflow, underflow, invalid operation, divide by zero, is Zero, is
Negative, etc...
some of these flags are rarely checked by games; so what these speedhacks do
is
not perform the extra code for flags that are rarely used by games.
rev 94: minor change suggested by intellect :p
rev 93: starting to recode the FPU rec opcodes to set correct flags.
rev 92: fixed something from the last revision.
rev 91: some more optimization
rev 90: This is still faster, please do some benches before recklessly
reverting, k? :)
rev 89: minor fix, thanks again to intellq
rev 88: okay this took me a while, but i managed to make stuff a bit more
organized.
-New "Advanced" dialog handles all CPU/VU roundmodes, denormals are zero, and
flush to zero options.
-Moved GT4 and GoW hacks to the "GameFixes" dialog.
-"Disable Underflow Checks" no longer controls DaZ, since the "Advanced"
dialog
handles that.
if you guys don′t know what to do in the Advanced dialog, just leave it at
the
defaults (its called advanced for a reason :p)
Note: if you use Patches to change the roundmode, it will override the
roundmode
set in the Advanced dialog.
rev 87: i accidentally deleted this line; thanks intellq!
rev 86: some roundmode fixes
rev 85: reverted some stuff for now, this should fix what r79 broke.
plz comment if it doesn′t fix the problems.
rev 84: optimized vumicro a bit.
rev 83: minor update to the game fixes dialog
rev 82: New "GameFixes" dialogue. Its intended to remove the need for patches.
This is my first dialogue, so please bear with me, k? :p
rev 81: vufloat2 is slower then vufloat.
Since both do the same this here helps speed ;)
rev 80: A few optimizations to ivumicro stuff
rev 79: modified the Check Overflow speedhacks.
now we have "disable VU Overflow checks" and "disable FPU Overflow checks".
they both do the same thing, but one is for the VU recs, and the other is for
the FPU recs.
heres how they work:
when Unchecked, pcsx2 performs overflow checks normally.
when Checked, pcsx2 doesn′t perform overflow checks, and thus gains a speed
boost.
when Greyed, pcsx2 performs additional checks which helps stop SPS (spikey
polygon syndrome; i.e. messed up polygons on screen)
Note: FPU recs need some work, they′re not setting correct flags. I′ll
probably
implement this by the end of the week. Hopefully it will fix some games that
use
those flags.
rev 78: minor change, shouldn′t affect anything.
rev 77: my mistake; this should really fix it :p
rev 76: this should fix the roundmode patches crash introduced in r75...
hopefully :p
rev 75: fixed a bug when using the "roundmode hacks" by patch files.
rev 74: modified the Denormals speed hack; now its "disable underflow checks".
-leaving it unchecked makes PCSX2 handle underflow like the real PS2 does.
-checking it disables underflow checks and is a bit faster.
-making it "grey" sets the DaZ flag, which is what causes the big speedup for
intel CPU′s.
the funny thing is that leaving it checked (black) sometimes fixes games
(fixes
minor graphic corruption in Initial D: Special Stage)
so try experimenting with it on/off/greyed to see if it fixes graphics for
your
game.
also, you no longer have to restart PCSX2 for the DaZ hack to work :p
rev 73: changing this back, since it wasn′t what caused GTA:VCS to break.
rev 72: okay GT4 should work fine now (for real :p)
there was a bug in my RSQRT opcode that messed up the game, i just reverted it
for now.
anyways, remember you need to check the Extra Overflow + FPU Clamp Hacks to
run
GT4
rev 71: okay changed what the GT4 speedhack does.
use the Check Extra Overflow + FPU Clamp Hack when running GT4!
i might be able to fix the code to not need the hack in the future; but its
going to take some major changes :p
rev 70: forgot to revert this.
rev 69: this might fix a GTA:VCS crash
rev 68: reverted some minor changes;
note: SVN r4 is what breaks 64bit Linux builds, not entirely sure what the
main
problem is.
when reverting some files in the x86 folder, games semi-work on x64 linux, but
then crash at one point.
they also crash on x86 windows when reverting those files, so this needs some
debugging.
rev 67: fpu′s RSQRT now has pre-opcode clamping if you enable Extra Overflow
Speedhack; and fixed some stuff for linux GCC compiler, thanks Shanoah!
rev 66: Rockstar games shouldn′t have SPS anymore; also added 2
game-specific hacks, one for God of War, and one for Grand Turismo 4
the God of War hack brings back the SPS in the Rockstar games; so only turn
it on for God of War.
hopefully we won′t need these hacks in the future, once stuff is handled
properly :p
rev 65: Changed small logging code to something a little nicer :p
rev 64: -Added some checks to logs in various files so it can now be disabled
in release to public builds.
-Disabled logging per default in those.
rev 63: Changed the "align" parameter from 0 to 1, since the docs say it has
to be aligned.
rev 62: changed another opcode that might′ve had an allocation conflict...
rev 61: fixed the mgs3 missing texture bug! i think Dawn of Mana′s
minor-texture problems are gone now as well Smile
i′m still not entirely sure why the old code didn′t work, most-likely
conflicting reg-allocations...
i might have to check some more opcodes in case they also have the allocation
problems :x
rev 60: minor change
rev 59: reverted and changed some stuff that was causing compiling problems
for linux; thanks again to Shanoah
rev 58: fixed some syntax errors that were causing Linux compiling problems;
thanks shanoah!
i think theres still some more syntax bugs though...
rev 57: minor change, commented out some SysPrintf()′s on some VU Opcodes.
rev 56: optimization for the clamping methods in the FPU recs. ClampValues2()
was using a hack to make infinities always become positive; the new code doesn
′t do this since the real ps2 doesn′t do it.
rev 55: minor fixes
rev 54: some odd code on ir5900-32, and small cleanup
rev 53: Whops, this wasn′t supposed to be on the svn :p
rev 52: Added an optional "Enable / Disable timestretching" plugin interface.
If used correctly on a SPU2 plugin, helps to improve audio quality.
(At fullspeed the game shouldn′t require timestretching)
rev 51: dawn of mana didn′t like the clip optimization for some reason :x
rev 50: fixed a problem with VU CLIP, and optimized it a bit as well.
rev 49: Oh well, the new cdvd timing code breaks Shadow Hearts videos ><
rev 48: fixed a typo
rev 47: flush to zero will now only be enabled with the Denormals speed hack
rev 46: fixed some extra-overflow checks
rev 45: used vuFloat2() instead of vuFloat() where i could; should get a
speed boost
rev 44: optimized vuFloat() a little bit...
rev 43: a few changes, some stuff is more optimized.
rev 42: Reverting the vufloat speedup
rev 41: Works this way, and is quite a bit faster
rev 40: recoded RSQRT opcode.
rev 39: optimized SQRT opcode a bit
rev 38: minor casting fix
rev 37: finally finished that monster opcode lol :D
rev 36: Loading times go overboard on some games :/
This will need to be a special game fix then, will do it later
rev 35: Another DIV update; this opcode is taking forever lol
rev 34: Finally found some decent values for cdvd timing, toa and dds work
better
rev 33: another big update for the div opcode; still not done, but the stuff
thats left only happens maybe 1% of the time.
rev 32: another update to the Div Opcode... still not done :O
rev 31: Bad casts on counters
rev 30: few more updates to the div opcode...
rev 29: almost done with the vu div opcode :p
rev 28: That couldn′t work :p
rev 27: More overflow checking made optional
rev 26: changed some overflow stuff.
rev 25: rama didn′t like Exiting with esc key :p
rev 24: a few fixes, and half-way done with the vuMicro DIV opcode.
rev 23: ^^
rev 22: hmm i found a way to speedup vuFloat() a bit; DMC1 went from 24 to 28
fps hehe... hopefully this doesn′t break games.
rev 21: small update; the next update should be a big one :p
rev 20: A few small lower opcode fixes/optimizations; Also aligned text in
Speedhacks dialog to show correctly on my PC :p
rev 19: -New cdvd code by gigaherz + Tales of the Abyss fix (all commented
out still)
-Removed non-used variable from counters.c
-Added a "restart emu" remark on the DaZ speedhack dialogue, since thats
needed (oO)
rev 18: small change; might fix something :O
rev 17: fixed up some allocation errors in recUpdateFlags()
rev 16: finally completed recUpdateFlags() to fully support
underflow/overflow checks; theres still some room for optimization that i
might do later though.
rev 15: a few small optimizations and changes for the VU recs.
rev 14: updated this file to match zerofrog′s minor-change in the official
sourceforge SVN :p
rev 13: Fixed some lower VU micro instructions; mostly flag checking stuff...
rev 12: some small changes
rev 11: more ivumicro stuff, and a dialogue misunderstanding i had ^^
rev 10: Few tweaks to ivumicro, needs checking!
rev 9: A few more tips on the speedhacks
rev 8: eh looks like rama had more recent versions of these files too. so i′
m reverting them. hopefully i didn′t miss anymore files :(
rev 7: some of the files i committed had old data; reverted a few files, and
fixed others to include the data i was missing.
rev 6: Stuff that was changed:
- Fixed up pcsx2_2005.sln to not give errors for missing plugin files.
- PCSX2 now exits properly with ESC key and GSdx :p
- Updated my VU Skip to the latest version I had.
- Added/Modified alot of speed hacks.
- Added a few SSE and x86 instructions coded by DiablosOf.
- Working on VUs: Added some code that fixes SPS in some games, but runs
slow. Turn off this code with the speedhack "Disable Extra Overflow Checks"
to get back the speed.
- Also regarding the VU′s, it seems MGS3 doesn′t like something I coded.
But I′m not sure what it is yet; hopefully I′ll figure out the problem ^^
- Some other minor changes I probably forgot to mention :p
rev 5: Added cottonvibes vu and frameskip, also removed the annoying dvd read
messages :p
rev 4: Lots of updates, mainly fixes for warnings, but also some optimizations
rev 3: removed plugins from the 2k8.sln
rev 2: Copied over the files from pcsx2 HEAD revision.
rev 1: Initial directory structure.
------------------------------------------------------------------------------------------------
PCSX2 changelog:
rev 403: change to allow compilation on latest linux. Only tested on xubuntu
8.10, 32 bit so far.
rev 402: updated GSSoft code to compile to help developing fpsbios under a
virtualbox vm. Does not work properly yet, but it compiles under xubuntu
8.10. Only useful for devs.
rev 401: Moving pcsx2v2 to branches
rev 400: Moving old pcsx2 src to tags
rev 399: -
rev 398: Using standard SVN folder structure
rev 397: -
rev 396: more asm fixes
rev 395: - //SVN moved to http://code.google.com/p/pcsx2/ //
rev 394: !ZeroSPU2 update!: compilation problem
rev 393: changed qword to xmmword to fix gcc errors on newer distros
rev 392: got rid of abs error
rev 391: -
rev 390: commenting out unneeded rpsxBASIC
--
PCSX2 Playground v1.0.0395 and new forums!
[ Posted by Bositman 10:30 on 12 12 08 ]
After a really long period of silence,we′re back with a bang!
Today we are announcing the release of Pcsx2 Playground 1.0.0395
Born as a ′playground′ test-bed for Pcsx2 modifications and code, the
Playground project evolved into much more, over a period of about 4 months.
Created by Air (aka Jake Stine),arcum42,cottonvibes,drkIIRaziel,rama and
tested by Krakatos,the team would like to thank:
- Thanks to the original Pcsx2 development team, to the betatesters and to
everyone that helped them. Without their work, Pcsx2 would not exist, and
neither would the Playground project!
- Thanks to the pcsx2 team once more for graciously hosting our forums.
- Thanks to the Pcsx2 team once again for providing hosting space Smile
- Thanks to Gigaherz for the render used in the playground logo
- Thanks to all the people who tried the various Playground revisions over
these months, providing us with helpful feedback
- Thanks to everyone else who supported Playground, without you all this
would have not been possible!
The PCSX2 team decided to support this project by having the official beta
testers also test it and hosting their binary and forum,since they′ve been
doing some great job Smile
You can grab the new binary which includes a plugin pack (and a heavily
modified SPU2Ghz for your sound pleasure!) in our download section here
For more information,check the dedicated forum here
Also,today we open our new official forums,hosted right here at pcsx2.net
Smile We would like to thank Bobbi and the NGemu network for hosting our
forums for so long!
Our new forum is totally dedicated to PCSX2 and has sections for the official
release,the public beta,plugins and the playground build Smile
We hope you enjoy it,you can visit by clicking here
Note: Your verification mail might end up in junk mail,please check there!
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Playground changelog:
rev 417: minor FPU opcode change.
rev 416: minor changes
rev 415: some FPU Compare opcode fixes. might fix some games that ′hang′
waiting for certain conditions that never happen.
rev 414: fixed the other FTOI opcodes. they should all work perfectly now.
rev 413: more recVUMI_FTOI0 changes. should now return proper saturation. too
tired to fix the other FTOI opcodes today.
rev 412: Change most of the macros in MMI.c over to functions.
rev 411: Sync with r410 for Linux. Give that GIF Warning that I get to see
over and over again on the console a line break.
rev 410: A couple minor GUI bug fixes:
- DaZ mode is now disabled for SSE1 CPUs, preventing a crash when trying to
OK the setting or run the Emulator with default settings.
- Emulator no longer tries to run games when a BIOS hasn′t been configured
(usually led to a crash).
rev 409:
--fixed recCVT_W opcode saturation: now it gets correct results and its
faster:p
--fixed recVUMI_FTOI0/recVUMI_FTOI4/recVUMI_FTOI12/recVUMI_FTOI15: it does
saturation now, but its still not 100% correct.Returns 0x7FFFFF80 instead of
0x7FFFFFFF.
rev 408: --svn:eol-style=native, part2
rev 407: --Added svn:eol-style=native on svn properties
rev 406: SPU2Ghz: Readjusted initial volumes. These give correct volume
levels for fmv, ingame sounds and speech. Boost volume is still not
recommended but the default volume seems loud enough already :)
rev 405: SPU2Ghz: Second part of the volume quirks update. Thanks to Gigaherz
for fixing the core reset functions.
Note:
The plugin is now louder by default, so check your volume boost setting and
disable it. If the game is still too quiet, you can re-enable it again :)
rev 404: Much to Guesseous distress, I have once again overlooked something
small and obvious in my last commit. If I were using a table saw I′d be
missing my arm at the elbow by now. //OWNED; u really should read comments
from rev 402 to this one//
rev 403: SPU2ghz: Minor tweaks to the mixer that should help get rid of
overflow problems. This is the first part of a 2 part commit that should help
correct some old-timey volume inaccuracies in the plugin.
rev 402: Dah! A little snippet of debugging code made it into the last
commit, which would have most assuredly broken any attempts at running the
emulator. -_-
rev 401: Bugfix: SIO′s DMA-Out cycle timing was way off the mark, and
sometimes caused games to "lose" some SIO-related interrupts.
rev 400: Move various things that should be in Mdec.h there, rework the
defines in VUflags.c to functions, put in 64 bit versions of the Interlocked
functions I previously #if 0ed, some cleaning, and, not least, make it so
Linux compiles after r399.
rev 399: MTGS now force-freezes all XMM/MMX registers prior to kernel calls
(Sleep/SetEvent), because some versions of Windows and drivers like to muck
with them.
FreezeMMXRegs / FreezeXMMRegs now track freezes and thaws, so that nested
freezes won′t end up unfreezing registers too early anymore. Plus several
code cleanups and ugly macro removals to a handful of other modules.
rev 398: Minor Linux code cleanups.
rev 397: something drk||Raziel found that I forgot to commit. not very
important, only effects non-MTGS/DC modes.
rev 396: Don′t try to close non-existant threads. Prevents a crashing bug in
Linux
rev 395: Temporarily block out two functions that are not being used that
cause the debug version not to compile.
rev 394: --Fixed some problems on the win32 threading code, handle can be
NULL, the errorvalue is INVALID_HANDLE_VALUE.
--Don′t call GS_SETEVENT from CSRwrite, because it calls SetEvent and thats
a kernel function that sometimes corrupts the contents of the xmm regs. Since
CSRwrite is called directly from the dynarec context without flushing the xmm
regs that can lead to register corruption :p.Fixes PAL FFX on my pc [got
broken on 376 and up]
rev 393: Major Fix: Found and fixed a big vmhack / COP0 bug. This should fix
several games, including those in Issue 49, Issue 58, and possibly Issue 59
as well (testing of those issues and a confirmation is needed).
Code cleanup to iHw.c : Removed some rampant abuse of macros and quite a bit
of unnecessary code bloat.
//little change in ′hacked′ folder; also new hardhacked version//
rev 392: Tweaked frameskipper slightly. Behaves better when using 4 or higher
as a skip setting (frameskip settings 0,0,2,4 for example)
rev 391: Various Linux cleanups to match recent Windows commits.
rev 390: Fixed frameskipping when using a strict framerate setting
(minfps==maxfps). The setting is ideal for users playing high-fps games as it
allows you to disable the timestretching on your SPU2 plugin. :)
rev 389: Grr. .. accidentally left in a dud line of code that broke MTGS
completely. :/
rev 388: Working on a special end case scenario with the frameskipper, when
minfps==maxfps (using 50/50/0/0 as frameskip settings, fo r example).
Previous versions would skip constantly. This version is better, but maybe
could be improved yet.
Also: Changed default frameskip options to be a little more aggressive. When
using zeros (defaults) skipping starts around 95% instead of 90%. (57fps NTSC
and 48 fps PAL). This seems to work a lot better with the new frameskipper. :)
rev 387: Fixed frameskipping when using default framefate settings (it wouldn
′t skip until games got REALLY slow, heh).
Win32: Fixed BIOS settings saving in the Configuration dialog. (rama)
rev 386: Stabilized the framelimiting part of the frameskipper.
rev 385: Repairing a minor foopah in my last commit.
rev 384: Improved frameskipper when running under MTGS mode, by moving it
from the EE thread to the MTGS thread. Also got rid of some highly
unnecessary recompiler code in iGS.cpp. Register writes to SMODE1/SMODE2 now
fall back on the new
modeset code in GS.cpp. (that code is entirely *not* speed critical, and
maintaining a bunch of rec code for it wasn′t my idea of a good time).
rev 383: SPU2ghz: Improved "on exit" stability of the XA2 driver on WinXP
machines, by covering up for things the driver is *supposed* to do itself
(but apparently does not, in WinXp at least).
Also fixed a Pcsx2 compilation error when trying to enable the experimental
IPU speedhack.
//added new hacked version to hacked folder; pls don′t bitch about rev
number//
rev 382: SPU2Ghz: New defaults
rev 381: [No functional changes] Just committing an IPU speedhack I found a
while back, in case anyone wants to play with it. It′s disabled by default.
Enable by uncommenting the #define in IPU.h -- might break some movies tho, I
dunno.
rev 380: More cosmetic changes ><
rev 379: Updated about dialog
rev 378: Fix Linux build, and disable obsolete haxks / gamefixes in it.
rev 377: MTGS: Fixed yet another race condition. This one was most apparent
on Digital Devil Saga and would cause the game to freeze at random intervals.
May have caused small visual artifacts on other games as well. Also improved
the Linux/pthreads code to remove compile errors.
Rolled back a previous accidental commit of experimental EE_WAIT_CYCLE values.
rev 376: Another MTGS fix. This one was a known bug that I was saving for
last, and in fixing it I was able to roll back the hack-fix for in-game
stalls from r375.
rev 375: MTGS: Fixed stalls in some games that sometimes did a lot of GS
register manipulation. Also fixed a compilation error when using
Debud/Release builds (stupid typo).
rev 374: Major code cleanups to the MTGS code, plus a new faster, friendlier,
and more stable MTGS startup/shutdown system.
Fixed a bug where the emulator would become unstable if any plugins failed to
init when starting a game. Users can now safely change out to a working
plugin and try again without having to completely restart the emu anymore.
Ported MTGS code into pthreads and added linux-equivalent functions for
missing InterlockedExchanges.
rev 373: New "nothing" button in speedhacks.
rev 372: Removed 2 obsolete hacks / gamefixes.
rev 371: Mostly unbreak Linux 64 and debug builds, though it still needs more
testing. (With thanks to Jake)
rev 370: Apply some of the changes from r367 to Linux and 64 bit versions.
Also add a ′Normal′ button to the (Linux) speedhack dialog.
rev 369: Added a few things previously missing from the EE/IOP reset code.
Resetting games and the BIOS should be a lot more stable now.
rev 368: Fixed a minor bug in the psx counters that would have prevented
Counter 1′s vsync gate from operating. I don′t know of a single game yet
that uses IOP counter gates, so it probably won′t affect anything anyway. ;)
rev 367:
-Updates to the configuration dialogues
-Removed Fastbranches hack
rev 366: 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. >_<
rev 365: (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.
rev 364: 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.
rev 363:
- 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)
rev 362: EE Interpreter is (mostly) fixed now.
rev 361: Fixed a bug in the MTGS that caused very sporadic bad packets and
crashes in some games.
rev 360: 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.
rev 359: Some updates by Jake and 2 lines from me, hope this fixes
savestates. Please test guys :)
rev 358: Fix for custom frame limit crashing pcsx2 on startup. Thanks to
tmkkmac for spotting it ;)
rev 357: Small cleanup, thanks to the MTGS rewrite the optimize pragma isn′t
needed for PGO anymore.
rev 356: Revert the bit of r326 that I believe was actually causing the Linux
issues. (Should negate the need for 354 & 355.)
rev 355: Oops. Comment out debug message I left in.
rev 354: Horrible, nasty workaround to the Linux cpu sseMXCSR bug.
rev 353: Fixed the fix from rev339 (I hope) :p
rev 352: Applied patch from Issue 43 - GIF_LOG had bad/outdated calls for
Reads.
rev 351: Fixed a dumb bug on my part that caused some games (FFXII) to crash
when loading savestates.
rev 350: Fix latest Linux compile breakage.
rev 349: Resolved random crashing in MTGS modes, and added some handy
debugging items to the MTGS code along the way.
rev 348: Even if it is broken, lets make the 64 bit build compilable as well.
rev 347: Fix compiling on Linux.
rev 346: 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.
rev 345: 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!
rev 344: 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).
rev 343: Clean up some nasty #ifdefs in a few functions, which involved
somewhat of a rewrite of those particular functions.
rev 342: 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.
rev 341: Cleaned up some parts of the Multithreaded GS code (MTGS), and made
some notes.
rev 340: 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.
rev 339: "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
rev 338: 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.
rev 337: 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...
rev 336: 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).
rev 335: Removed some redundant conditionals from the testINTC and testDMAC
calls in the eeRecs.
rev 334: 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. //SPU2GHz update from this revision will be
uploaded later//
rev 333: 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.
rev 332: Changed the naming of the 2 SET_HWLOC′s to differentiate between
IOP and EE.
rev 331: Turn a few defines into inlined functions, and remove a few unneeded
comments.
rev 330: Comment out broken MTGS logging code. Disable Logging menu in Linux
if not a devbuild. //corrected rev 327 comment//
rev 329: 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.
rev 328: Minor Linux tweaks. Merge a patch in, make another easier to apply,
and take a stab at the SpinButton issue...
rev 327: This should un-break the Linux build, yes some guys are using Linux!
:p //this change affects windows version too - LIE; sry my bad, had too many
tabs opened - I mistook changes from rev 327 with ones from 326; thanks for
pointing that out, arcum42//
rev 326: A commit for review, there′s some unclear counters code. Also added
a more precise NTSC vsync rate.
rev 325: Forgot this one, sorry :p
rev 324: 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 Wink //SPU2GHz update from this revision
will be uploaded later//
rev 323: Ok, so some people out there use windows, too. Fix pcsx2 on
Windows... //lol′d//
rev 322: It′s log, it′s log, it′s big, it′s heavy, it′s wood...
rev 321: Bring the Linux Cpu dialog in line with the main project; Remove
broken Linux vmbuild code.
rev 320: 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.
rev 319: bugfix: Frameskip options in the CPU dialog didn′t save and load
right. ( Issue 41 ) //gj//
rev 318: 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.
rev 317: 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.
rev 316: Make Linux build compile, and mirror 32 bit changes to 64 bit.
rev 315: Added some compiler hints to help the IPU optimize a little better.
It had several candidiates for forced inlining.
rev 314: Made a huge hack concerning the counter multipliers less buggy.
Still needs proper fixing.
rev 313: Fixed the previous fix!
rev 312: Fixed bug where plugin configuration changes didn′t take effect
until restart. Plus a few code cleanups.
rev 311: Remove some commented out code and inline a few defines.
rev 310: Include the svn revision in Linux, add an --enable-sse4, since it
looks like it should have been in there, and disable the --enable-vmbuild
flag, since I′m not sure it ever worked in Linux.
rev 309: Get rid of the worst of the defines in the Linux code.
rev 308: Replace half a dozen nearly identical functions with one in the
Linux code.
rev 307: Port a few of the Windows cleanups to the Linux version, and correct
a few warnings while I′m at it.
rev 306: Fixed some stack buffer overruns introduced by the new commandline
options features in r294. They only happened when using one of the plugin
override options (-spu or -gs, for example).
rev 305: SPU2ghz: Compiling without TortoiseSVN installed should work
out-of-the-box now. The project will automatically fall back on the
old-school behavior (no revision information inserted into the project info).
rev 304: SPU2ghz: XAudio 2 crash fix attempt, take #341. Action! *clip*
rev 303: SPU2ghz: Removing the Sleep() caused XP′s XAudio2 to crash again.
But I found a note from Microsoft on one of their dev journals that said to
put the Sleep() immediately after the FlushBuffers and before the
DestroyVoice. Let′s cross some fingers and hope it works! (don′t you love
beta libs from microsoft?)
rev 302: Ok, I lied. Here′s a fix. Linux is playable now. I′m going to
bed...
rev 301: Make the Linux version compilable. It isn′t *usable*, but it′s
compilable. I′m not sure I′ll have time to get it playable tonight...
rev 300: Reverted the IOP_WAIT_CYCLES since it was causing instability in
some games. Eh, it was worth a try.
rev 299: Fixed bug in IOP counters.
rev 298: Removed Visual Studio 2003 project files > Obsolete
rev 297: SPU2Ghz: Commented out a Sleep() call in xaudio2. It made the GUI
not respond for several seconds when pressing escape to pause emulation
rev 296: SPU2ghz: Added quotes to the svnrev pre-build step; hoping it
behaves better for users who have paces in the names of their project folders.
rev 295: Uploaded the new PathUtils.c file into the wrong location.
rev 294: Added a functional -cfg command line option (the help has listed it
forever, but it never did anything).
Absolute paths via the command line or .ini file are supported now. That
means you can specify "c:mystuffsomeplugin.dll" now without getting an error.
Additionally, filenames with spaces are also supported. Pcsx2 now uses the
working directory at startup to load the ini file, allowing it to be run from
VStudio′s debug environment more easily. Expanded the console log depth to
2048. Plus many code cleanups and some extra error checking when handling
strings and pathnames.
rev 293: SPU2ghz: Moved the svnrev additions to a new ′common′ folder which
is shared by all projects (pcsx2 included). The common folder now includes
the necessary utility, so it should build out-of-the-box now (no more path
setup or program installs necessary)
rev 292: SPU2ghz: DLL now "properly" exports functions. May fix some
compilation/plugin detection problems? Plus another attempt at fixing the
XAudio 2 crash-on-exit bug.
rev 291: Fixed stupid typo in r289′s EE counter that probably broke lots of
things. Made a couple code cleanups of the IOP (no functional changes).
rev 290: Remove 2 SSE checks affecting Linux and 64 bit builds, respectively.
rev 289: Improved the EE/IOP counter optimization. It was causing branch
tests to occur more frequently than needed.
rev 288: SPU2ghz: Fixed a couple rare odd-case XAudio2 crashes, and fixed a
small glitch in in the over/underrun code when timestretching disabled.
rev 287: SPU2ghz: err... oops! This′ll stop it from crashing when you try to
enter the PCSX2 plugin configuration screen.
rev 286: Fix non-dev builds.
rev 285: SPU2ghz: Rearranged the project files quite a bit. Solutions are now
in the Plugins folder, and binaries are output to plugins/bin. This is in
preparation for if/when we have more plugins as part of our repository, and
will go hand-in-hand with a future change to how pcsx2 looks for plugins
which should make
shared development a little easier for all of us (I hope).
I also deleted several *very* dated projects and solutions. They all still
referenced FMOD, in fact, if it gives you an idea just how out-dated they
were. New updated projects can be re-added in the future if a need still
exists for any of them.
rev 284: SPU2Ghz: Fixed a problem in ADSR handling as suggested by gigaherz.
rev 283: Few more SSE checks removed.
rev 282: Also removed SSE1 checks, see rev281 for explanation :p
rev 281: Removed support for CPU′s without SSE2. Now i know there′s the
occasional AthlonXP user out there.. sorry. The SSE2 (and SSE1 too!) checks
were very frequent and could′ve hurt performance a bit.
Note: This move was discussed with the team, we all support it.
Note 2: I tried very hard to avoid mistakes, but due to the many changes i
could′ve overlooked something (especially in iR5900tables.c). I′d apreciate
it if someone could look over the changes a bit ;)
rev 280: Applied the IOP counter optimization to the EE counters. Don′t
expect any noticeable speedups though, since this doesn′t really affect the
hsync/vsync counters which are the ones that end up doing 90% of the work.
(but there′s always a chance that it′ll favor a game that likes to abuse
the counters)
rev 279: SPU2ghz: Code cleanups, and conf now force-disable Effects
Processing (for anyone who might have had it checked when Rama grayed out the
option)
rev 278: SPU2ghz: Fixed potentially quirky volume handling in Linear
Interpolation mode (quiet sounds would get cut off too soon or be completely
inaudible). Also did a minor cleanup of the ADSR handler.
rev 277: SPU2ghz: Reverted last change since it broke way more than it fixed.
Will post another improved ADMA attempt later once I′ve got it figured out
better.
rev 276: SPU2ghz: Fixed serious bug in AutoDMA code, basically it wasn′t
working at all. Soul Calibur III //fixed to avoid misunderstanding// audio
works now, and possibly many other games fixed too.
rev 275: SPU2Ghz: Disabled Effects Processing for now, you can still force it
on via the .ini but it′s NOT recommended.
rev 274: Changed some GS-related #define macros into more type-safe inline′d
functions.
rev 273: Revert changes in GS.h
rev 272: Break up the file structure of the Linux port a bit, to make it
easier to make large changes.
rev 271: Convert Config.c & GtkGui.c to cpp. And remove a gcc 4.3 specific
flag from my last commit.
rev 270: A few minor changes to GS.cpp & GS.h.
rev 269: Improved EE/IOP synchronization and also reduced the frequency of EE
branch text executions (speedup!)
rev 268: SPU2ghz: Major optimization fix to the mixer code. VS2008 was not
optimizing the MulShr32su function properly. It′s about 3-6x faster now.
Also optimized the timestretch manager so that it can take full advantage of
VC2008 SSE opts.
* XAudio 2 * Fixed potential crash bug on close (which only started happening
after I upgraded my DXSDK).
rev 267: SPU2ghz: XAudio2 driver now initializes a 48khz output rate (was
using the default of 44.1khz). This may help fix some of the XA2 crashing
problems as well.
rev 266: SPU2ghz: Fixed DMA memory corruption bug introduced in r264 (and
made the DMA code even faster!), and expanded SoundTouch′s working buffer by
~15ms (seems to help improve voice audio breakups when games slow down below
40 fps).
XAudio2 problems are still up in the air, as they may be related to version
differences in DXSDK installations of people building the DLL. Note to
compilers: please update your DX SDK to the most recent version (Aug 2008) if
you haven′t already.
rev 265: Nasty hack: Fix cpu detection on 32 bit Linux, by tricking the
optimizer into thinking it needs the values of reg[2] & [3]; which, in fact,
it does.
rev 264: SPU2ghz: Re-optimized the DMA write code so that DMA writes don′t
incur as much cache miss penalty anymore. Also made a couple minor tweaks to
the timestretcher′s overrun handler (Which only affects people who like
their games to run at 120 fps. ;)
rev 263 : Code cleanups for Linux builds (no functional changes)
rev 262: Fixes timings on PAL games. (no audio underruns after 15+ minutes of
testing!)
rev 261: On Linux, when we say _forceinline, actually force it to inline.
rev 260: Fixes mild desync′ing in the IOP.
rev 259:
- Better IOP synchronization when using the X2 and X3 IOP hacks. Still not
perfect, though (music may run a little behind or ahead of the games). I′ll
look into it tomorrow first thing.
- IOP Counter optimizations. The IOP counter code now only updates counters
actually being modified instead of blindly updating all counters.
rev 258: IOP Sync problems should be fixed now (yeah I said that 2 revisions
ago too, I know). But this time I knew what to look for! spu2ghz stretch
stats don′t seem to crap out now. Wink
//btw this made my day:
"Comment by colepcsx2, Today (12 hours ago): Too many updates in one day
people!!"
...with negative score to revision lol. Somebody got screwed hard by PP team
with yesterday′s updates hehehe.//
rev 257: SPU2Ghz: Small change to underrun fill :p
rev 256: Reverted IOP_WAIT_CYCLES to 64.
rev 255: Last fix was ok, but this fix is better.
rev 254: Fixed a freeze up bug from r252. The IOP must run at least one
branch test for every EE branch test, which was a problem with the
extended-length IOP_WAIT_CYCLE.
rev 253: Clean up Patch.c a bit, and add a few fixmes to the code.
rev 252: Optimized the IOP′s branch test algo a wee bit.
rev 251: SPU2ghz: Removed SPU2ghz.aps since it′s a file generated by the
client (it′s a VS2008 resource designer cache file, created when you open
.rc files in the IDE).
rev 250: SPU2ghz: Cleaned up and optimized the SPU2write() code a bit.
rev 249: SPU2ghz: Added sanity checks to the XAudio2 driver, might be more
stable now. If this doesn′t fix the crashing problems then I′ll have to
look into making a special instance of spu2ghz.dll that dumps XAudio2 log
data, and hope to solve it from that.
rev 248: minor update: in the CPU frame limiting dialog, i put a note that
says F4 key switches the mode in-game.
rev 247: SPU2Ghz: Well, yet again another update from Jake.Stine :p This time
around he improved the already great timestretcher to be even smarter. This
and the fixed XAudio2 output module get even Vista users a near realtime
sound. (Try a delay between 90 and 140ms). Read a bit more about this version
in issue 31 :)
rev 246: Counters changes: reverted back to my counters code from svn241 and
fixed the DMC1 bug as well as
alot of other stuff (including some of the problems Jake.Stine found out in
Issue 32)
rev 245: SPU2Ghz: Adjusted default values for the worst case (Windows
Vista... seriously, what did MS to the audio subsystem?) //MS ass-raepd it:P//
rev 244: SPU2Ghz: Lots of changes as described in issue 31, thanks again to
Jake.Stine.
rev 243: reverted counters.c to official SVN′s code for now (my code was
crashing Devil May Cry for some reason...)
rev 242: Cleanup various things g++ doesn′t like.
rev 241: forgot to change this...
rev 240: changed the counters algorithm again; some games didn′t like the
algorithm from 228...
rev 239: Fix Linux compilation as of r237
rev 238: fixed some counters problems, should be more smooth and stable. one
of the problems i′m having is that rcntUpdate() should be called more-often,
but i don′t know where i should put it...
rev 237: Changed the Sleep() behavior as posted by Jake.Stine in Issue 29 .
Improves smoothness in games running fullspeed, and lets pcsx2 use the cpu
time it needs :)
(Note: You′ll see constantly 100% cpu usage now, but pcsx2 doesn′t do any
"more" work.)
rev 236: Remove silly debug message I left in. :(
rev 235: Assorted cleanup on iCOP2.c, with a few minor tweaks.
rev 234: more counter changes. also found some cool speedhacks that i made
into macros in Counters.h:
setting HBLANK_COUNTER_SPEED to ′3′, makes Kingdom Hearts II double FPS! (i
was getting insane speed :p)
setting HBLANK_TIMER_SLOWDOWN to ′2′, makes God of War alot faster (FPS
decreases, but game is faster)
the bad part is that setting one hack, makes some games faster, but other
games slower. like HBLANK_COUNTER_SPEED makes KHII alot faster, but slows
down God of War.
these 2 hacks are inverse to each other, so you shouldn′t set them both at
the same time; and it depends on the game if it′ll run faster or slower.
because of the complex nature of these hacks, i′m not adding them to the
speed hacks dialog. they also break the framelimiter... so use at your own
risk!
rev 233: SPU2Ghz: More improvements and cleanup
rev 232: Small tweak to the auto-timestretch. It now turns off only after the
game runs at stable fullspeed for a while.
rev 231: SPU2Ghz: Made the timestretcher automatically turn on/off based on
game speed. This is possible thanks to recent changes by Jake.Stine :)
The way it works now, it makes it completely automatic for the user. If the
buffers over/underflow the stretcher enables itself. Once it decides that
game speed is fine again, it disables itself.
This works really great here, but please comment if it causes trouble for you.
rev 230: Hah! Since the last SPU2 update was so great I sent my local project
files along the way :p
rev 229: Jake.Stine "completed" his work on SPU2Ghz, I tested a whole lot of
games with this and it sounds great! Savestates work very well, the mixer is
fast, even the dreaded buffer over/underflows are handled quite well (even
without timestretch!).
All in all great additions which imo make SPU2Ghz the best SPU2 plugin to use
now :)
rev 228:
rev 227: SPU2Ghz: Updated to include Jake.Stine′s latest work. Some issues
still exist, but will be fixed soon. Also made the speedlimiter switch toggle
timestretch for easier debugging and convenience :)
rev 226: SPU2Ghz: Disabled ZeroSPU2 compatibility mode for savestates. This
should enable users to load savestates created with that plugin again.
(compatibility mode was crashing too much)
rev 225: Fix the compilation break caused by a misplaced character in the
last commit.
rev 224: Commit the patch listed in Issue 26, to fix compilation issues on
some Linux systems, mine not included.
rev 223: reverted last counters change for now.
rev 222: counters.c optimizations
rev 221: Fix Atelier Iris 2/3 issue from r220, and devbuild issue from a few
revisions ago.
rev 220: more accurate counters
rev 219: updated ZeroFrog′s change from the official PCSX2 svn 396
rev 218: i think this was a big problem with freezexmmregs_()
rev 217: minor counters changes
rev 216: On Linux, use stdint.h for variable size if possible.
rev 215: Tweak the warnings a bit on gcc, so they don′t require gcc 4.3. :(
rev 214: Revert the windows project file, to prevent people from seeing how
many 64 bit compatiblity problems pcsx2 has.
rev 213: Assorted cleanup. Deleting and commenting out unused variables &
code, and a few minor changes to the Linux code.
rev 212: Remove a few of the more irritating compiler messages, and clean up
a few misc things on the Linux port.
rev 211: pretty sure this is what was meant. //see rev 209-211 comments for
more info//
rev 210: Added "fixme" to some strange parts of code to find them faster.
rev 209: Comment out various code that appears to be unused.
rev 208: Working with real-time audio / buffers sucks :p Anyway, this gave me
the least over/underflows. //SPU2GHz PP update//
rev 207: started working on Counters.c; still needs more work
rev 206: The arguments for fpuFloat, ClampValues, and Clampvalues2 really
ought to have variable types... :)
rev 205: Cast to (uptr) rather then (u32) in various places where the
functions were actually looking for a uptr. No difference for 32 bit systems,
but a uptr is a u64 on 64 bit systems...
rev 204: Using this as a base now, it works very well for me. Thanks to
Jake.Stine′s patch the plugin got a bit faster Wink I made a small mistake
in the last 2 commits, its fine again. //SPU2GHz PP update//
rev 203: oO //SPU2GHz PP update//
rev 202: SPU2Ghz: Part one of a bigger update
rev 201: Change all occurrances of ′const static′ to ′static const′, to
remove compiler warnings. //for linux. Windows version doesn′t care about
it. At least VS does not give a damn about it while compiling. No release.//
rev 200: Last update for today, timestretch needs one more addition, then its
perfect. The soundbuffer can (rarely) over/underflow (loop) and throw of the
emergency stretch calculations. Will fix that soon Smile //SPU2GHz PP update//
rev 199: Turn on lots of compiler warnings, and get rid of some deprecated
conversion from string constant warnings. (I′ll probably be doing more
commits based on these warnings in the future...)
rev 198: A bit more work on SPU2Ghz. Removed old code, made timestretch code
a bit more clear, etc.
rev 197: Add zerofrogs changes from the official svn, r393: changed qword to
xmmword to fix gcc errors on newer distros //fixed typo in rev description//
rev 196: SPU2Ghz: Reverted a last-minute tryout in the output buffering, it
broke more than it fixed.
rev 195: commented out some code i′m pretty sure isn′t needed. please
report if any games break with this revision. (i don′t think any will)
rev 194: fixed some bad VU1 opcodes (some opcodes didn′t even return the
correct register, so the correct result would end up in the wrong reg lol)
also cleaned up some DMA code a tiny bit, and added FreezeXMMRegs() where it
was needed.
rev 193: Adjusted spu2ghz project file (vs 2008)
rev 192: Added SPU2Ghz to the repository
rev 191: Fix a few spelling errors, make the Ok and Cancel buttons consistant
in appearance on the gtk port, add some preliminary code for two dialogs, and
get rid of the abomination that is a global variable named ′Window′.
rev 190: changed the functions 64bit was having trouble with, to be the same
for 64bit and 32bit without using the 64hack macro. not sure yet why part of
ADD32ItoM() was breaking 64bit, so i just commented that out.
rev 189: Change a few things in ix86.c to the way they were originally *if*
you are running the 64 bit version. I′ve marked what each section breaks, if
rama wants to look at it. I also fixed up the indentation in the file...
rev 188: Fix commit r186. Two header files weren′t under version control, so
didn′t come over. :(
rev 187: Bring the changes made to iR5900-32.c over to iR5900-64.c, as well
as correct an annoying typo. (Note: I suspect some of the non-playground
changes aren′t in sync either, but I haven′t really had a chance to look at
those).
rev 186: Add the Game Fix, Speed Hack, and Advanced Dialogs to the Linux port.
rev 185: this should fix Dark Cloud 2. please comment if it does/doesn′t
work :p
rev 184: Magna Carta fix is now a toggable gamefix, since it broke Crash
Bandicoot.
rev 183: fixed some potential EErec problems.
rev 182: formated and cleaned up counters.c a little bit.
rev 181: added some code to make the magna carta fix configurable by the
macro SUPERVU_VIBRANCHDELAY2. when SUPERVU_VIBRANCHDELAY2 is defined, it uses
the old way (the method that breaks Magna Carta) this is just for easier
debugging.
rev 180: small mistake, my bad :p //wiki update//
rev 179: The intro sounded a bit like we rewrote all of the emulator. Until
we actually do, its now a bit more honest Smile Also added a 4th FaQ. //wiki
update//
rev 178: Just a reminder that counters don′t work 100% yet.
rev 177: Created wiki page through web user interface.
rev 176: Magna Carta now works. Please report if you have any new bugs with
this.
rev 175: the document i was reading had incorrect information for the ORI
opcode (said it should be a sign-extended immediate, but its really supposed
to be zero-extended) took me hours to figure out the problem ><
anyways, I fixed the opcodes correctly...
rev 174: :O //don′t ask...//
rev 173: some EE rec and interpreter opcode fixes. theres still some possible
problems with the rec opcodes, not sure how i′m going to fix it yet.
anyways, should be alot better than it was before.
rev 172: very-minor spelling mistake change :O
rev 171: minor fpu changes
rev 170: some fpu interpreter changes...
rev 169: made the code i commented-out in r167 work correctly. games that had
problems when the "disable underflow" speedhack was left Un-Checked, should
now be fixed.
rev 168: nasty error... i was clamping incorrect reg-vectors in
recUpdateFlags(), so this could have caused problems...
rev 167: commented out some code for now. now, i know why leaving "disable
underflow speedhack" unchecked sometimes breaks games.
i′ll have to fix it later, but for now the speedhack is always on (this is
more compatible)
rev 166: according to psxAuthor, branches wrap around when the result is less
than zero; so i′m trying this. should fix some possible graphic
problems/errors caused by incorrect VU branch addresses...
rev 165: forgot to change this...
rev 164: fixed possible allocation problems...
rev 163: fixed some possible allocation problems... Fixes rockstar games that
were broken in the last revisions..
rev 162: very minor change...
rev 161: reverted something i commented-out along time ago.
rev 160: re-recoded the VU div opcode lol. now its more efficient, faster,
and 1/6 the size :D
rev 159: fix for last revision.
rev 158: some cleanup... this file is a mess...
rev 157: optimized some retarded code...
rev 156: Corrected a bug in a memory write function. Thanks to drk||Razi for
spotting this one.
rev 155: should fix x64 build compilation problems...
Note:
seems iR5900-64.c is pretty much a copy of iR5900-32.c just with a few x64
specific changes... so any code-change made to iR5900-32.c will have to be
mirrored to iR5900-64.c... sigh pretty annoying...
rev 154: minor change: lets x64 build use FPU interpreter if the processor
doesn′t
support SSE...
rev 153: major code clean-up for FPUs, removed alot of old/useless code, and
organized stuff better. trying to clean-up pcsx2 a bit..
*note: FPU reg caching is always on now; which means you need a SSE processor
to run the FPU recs, if not it will just run the interpreter code instead
(not really a bad thing, the int-code isn′t much slower)
rev 152: minor fix for linux. btw, we have a new member on the team,
drkIIRaziel Very Happy he′s one of the author′s of nullDC (a dreamcast emu)
so this is good news :p
rev 151: One more inline hint and (hopefully) fixed Linux (again :p)
rev 150: messed around with some DMA functions, might fix DMA errors. GIFdma
should also be faster, since now it only freezes MMX and XMM regs when it
needs to. also did some very minor code cleanups.
p.s. GIFdma() is a mess, it needs to get cleaned-up in the future.
rev 149: more inlining hints, more speed :)
rev 148: forgot those
rev 147: SSE opcodes now all inlined. Changed all new inlining hints to
_inline.
rev 146: Modified opcodes headers and files so all functions use
__forceinline now. This brings a nice, free speedboost of about 5% in all
games :)
rev 145: Changed pDsp so it *should* compile fine under Linux. (Can′t test
this :p )
rev 144: better x64 fix //this also affects regular version//
rev 143: -Odd bug on PsxHw.c
-Added "FreezeXMMRegs" before recompiling psx code in places that had that
missing. (Fixes x64 builds a bit)
rev 142: Converted 64bit VS2k5 project files to VS2k8 and put the same
optimizations as in the 32bit version.
rev 141: reverted last revisions to prevent possible syncing problems/crashes.
rev 140: The last update was too aggressive, some games didn′t save states
anymore. This does nearly the same, but saves work again.
rev 139: Commented out gsWaitGS() code, which stops and syncs the gs when
loading/saving savestates and also when some Vif counter is (supposedly) too
big.
This helps regain audio after loading a savestate with ZeroSPU2 and a few
games run faster (Dragonquest 8, Dawn of Mana, Final Fantasy 12).
rev 138: speedhacks now have "compatibility" and "speed" profiles to help
avoid confusion.
compatibility mode: most games will work with this setting. speed mode: fast
settings, will break games.
note:
some games will still require manually tweaking the hacks. GT4 for example
needs "Extra VU Overflow Checks" (greyed checkbox) but the majority of games
should work with "compatibility" mode. there are also some odd games that
will work better with "speed" mode, Rogue Galaxy for example.
anyways, hopefully these profiles will help avoid confusion.
rev 137: took me a while, but i managed to do some nice recupdateflag()
optimizations :D
rev 136: minor change:
some "vu overflow checks" were only being called when "disable extra vu flags"
was disabled. the 2 speedhacks should be independent of each other.
rev 135: minor change: small optimization and fixed a typo.
rev 134: Corrected the UpdateVSyncRate functions to properly set a NTSC
framerate of 59.94fps. When framelimiting is enabled on NTSC games, the SPU2
plugin now does not need to stretch constantly.
rev 133: very minor changes
rev 132: minor FPU changes
rev 131: Rule Of Rose now works with the FPU recs :D
rev 130: changed the way the slowdvd gamefix works. the slowdvd hack makes
dvd reads at 1x instead of 4x speed. this is untested, i think it should help
TOA just like the old method.
rev 129: Better "Slow DVD" hack. Now fixes ToA and Digital Devil Saga (one
video only though :p)
rev 128: "Fixed" the slow FMV in games that use cd-read, also Xenosaga′s
Intro FMV works again.
Note: dvd and cd readspeeds are not emulated correctly. Needs more fixing.
rev 127: ugly error, pcsx2 was reading cds as dvd′s sometimes. so it was
reading them 9x faster than it should be lol.
rev 126: optimized the cd-read algorithm by removing extra un-needed
variables.
it still does the same thing though :p
rev 125: minor change.
rev 124: fixed a possible zerorec branching error.
rev 123: Added hacks to VU interpreters, only accessible via source.
Note: these hacks are more like a reference, they help show what makes
interpreters so slow.
Most games break with these enabled, but my testing game is fine. Speedup in
it
is about 30%.
Note2: I′ll remove these hacks, once interpreters are fast enough.
rev 122: small problem that always bugged me..
rev 121: some changes, should be a bit faster with "disable extra VU flags"
checked
rev 120: different way to fix the pcsx2.ini crash.
rev 119: added default button to advance options dialog
rev 118: Fixed the pcsx2 startup crash when no pcsx2.ini is present.
rev 117: minor changes
rev 116: minor VU changes
rev 115: some VU changes
rev 114: Added a Tales of the Abyss gamefix "Slow DVD access", which fixes
most of the
game hangs.
Note that the game still hangs from time to time, but its better now :)
Also fixed the hdloader hang when reading the DVD "TOC". Games can now be
installed on HDD.
rev 113: one more try for the Esc Hack.
works perfect with GSdx DX9. Fully exits fullscreen/windowed GSdx, and
console.
(make sure you uncheck Lilypad′s ESC hacks!!!)
if it doesn′t work with dx10 gsdx, then just don′t use the hack. i don′t
have
vista to test out the problem.
rev 112: this might fix ESC-key hack for vista users.
rev 111: tekken 5 works again with the gamefix.
that game is really picky :/
rev 110: added ESC-key hack by request (turn it on/off from the speedhacks
menu)
turning it on lets you fully exit PCSX2 when running in fullscreen (so you don
′t
have to press alt+f4)
rev 109: mostly some VU changes.
rev 108: fixed some errors from the last version i submitted, and also added
extra
clamping support to the remainder of the opcodes.
the extra clamping i′ve been talking about is only enabled when you have
Extra
FPU Overflow Checks On (when the FPU speedhack is grey).
rev 107: more FPU opcodes have extra clamping support.
just a few more FPU opcodes to go.
i also realized that VU extra clamping needs more work. i′m hoping this is
where
God of War′s SPS comes from, i′ll start coding it as soon as i finish the
rest
of the FPU opcodes.
rev 106: minor FPU changes
rev 105: Fixed tlb build in vs2k8, it had SSE2 compiler optimizations on.
Very bad idea
:p
rev 104: fixed the way the VU′s check for overflow in recUpdateFlags()
i would like to continue coding, but i have to study for an exam hehe :p
rev 103: forgot to change this :O
rev 102: found out why GT4 needed the hack, and fixed it correctly Very Happy
no need for the Gamefix hack anymore :p
rev 101: more FPU opcodes have extra clamping support.
rev 100: some more FPU rec changes.
rev 99: recoded the FPU div opcode to set correct flags.
i thought this would eliminate the need for the GT4 hack, but sadly it didn′t
fix the problem.
rev 98: Small modification to the run sub-menu
rev 97: Small visual tweak to gamefixes dialogue, by Cole :)
rev 96: added a Tekken 5 fix to the gamefixes dialog thanks to rama finding
the problem.
i also tweaked the GT4 gamefix a bit.
note: i haven′t tested the Tekken 5 fix. plz comment if it doesn′t work.
rev 95: recoded some more FPU opcodes, and added 2 new speedhacks: "disable
extra VU
flags" and "disable extra FPU flags".
in the PS2, certain "flags" are set to indicate different statuses. There are
flags for overflow, underflow, invalid operation, divide by zero, is Zero, is
Negative, etc...
some of these flags are rarely checked by games; so what these speedhacks do
is
not perform the extra code for flags that are rarely used by games.
rev 94: minor change suggested by intellect :p
rev 93: starting to recode the FPU rec opcodes to set correct flags.
rev 92: fixed something from the last revision.
rev 91: some more optimization
rev 90: This is still faster, please do some benches before recklessly
reverting, k? :)
rev 89: minor fix, thanks again to intellq
rev 88: okay this took me a while, but i managed to make stuff a bit more
organized.
-New "Advanced" dialog handles all CPU/VU roundmodes, denormals are zero, and
flush to zero options.
-Moved GT4 and GoW hacks to the "GameFixes" dialog.
-"Disable Underflow Checks" no longer controls DaZ, since the "Advanced"
dialog
handles that.
if you guys don′t know what to do in the Advanced dialog, just leave it at
the
defaults (its called advanced for a reason :p)
Note: if you use Patches to change the roundmode, it will override the
roundmode
set in the Advanced dialog.
rev 87: i accidentally deleted this line; thanks intellq!
rev 86: some roundmode fixes
rev 85: reverted some stuff for now, this should fix what r79 broke.
plz comment if it doesn′t fix the problems.
rev 84: optimized vumicro a bit.
rev 83: minor update to the game fixes dialog
rev 82: New "GameFixes" dialogue. Its intended to remove the need for patches.
This is my first dialogue, so please bear with me, k? :p
rev 81: vufloat2 is slower then vufloat.
Since both do the same this here helps speed ;)
rev 80: A few optimizations to ivumicro stuff
rev 79: modified the Check Overflow speedhacks.
now we have "disable VU Overflow checks" and "disable FPU Overflow checks".
they both do the same thing, but one is for the VU recs, and the other is for
the FPU recs.
heres how they work:
when Unchecked, pcsx2 performs overflow checks normally.
when Checked, pcsx2 doesn′t perform overflow checks, and thus gains a speed
boost.
when Greyed, pcsx2 performs additional checks which helps stop SPS (spikey
polygon syndrome; i.e. messed up polygons on screen)
Note: FPU recs need some work, they′re not setting correct flags. I′ll
probably
implement this by the end of the week. Hopefully it will fix some games that
use
those flags.
rev 78: minor change, shouldn′t affect anything.
rev 77: my mistake; this should really fix it :p
rev 76: this should fix the roundmode patches crash introduced in r75...
hopefully :p
rev 75: fixed a bug when using the "roundmode hacks" by patch files.
rev 74: modified the Denormals speed hack; now its "disable underflow checks".
-leaving it unchecked makes PCSX2 handle underflow like the real PS2 does.
-checking it disables underflow checks and is a bit faster.
-making it "grey" sets the DaZ flag, which is what causes the big speedup for
intel CPU′s.
the funny thing is that leaving it checked (black) sometimes fixes games
(fixes
minor graphic corruption in Initial D: Special Stage)
so try experimenting with it on/off/greyed to see if it fixes graphics for
your
game.
also, you no longer have to restart PCSX2 for the DaZ hack to work :p
rev 73: changing this back, since it wasn′t what caused GTA:VCS to break.
rev 72: okay GT4 should work fine now (for real :p)
there was a bug in my RSQRT opcode that messed up the game, i just reverted it
for now.
anyways, remember you need to check the Extra Overflow + FPU Clamp Hacks to
run
GT4
rev 71: okay changed what the GT4 speedhack does.
use the Check Extra Overflow + FPU Clamp Hack when running GT4!
i might be able to fix the code to not need the hack in the future; but its
going to take some major changes :p
rev 70: forgot to revert this.
rev 69: this might fix a GTA:VCS crash
rev 68: reverted some minor changes;
note: SVN r4 is what breaks 64bit Linux builds, not entirely sure what the
main
problem is.
when reverting some files in the x86 folder, games semi-work on x64 linux, but
then crash at one point.
they also crash on x86 windows when reverting those files, so this needs some
debugging.
rev 67: fpu′s RSQRT now has pre-opcode clamping if you enable Extra Overflow
Speedhack; and fixed some stuff for linux GCC compiler, thanks Shanoah!
rev 66: Rockstar games shouldn′t have SPS anymore; also added 2
game-specific hacks, one for God of War, and one for Grand Turismo 4
the God of War hack brings back the SPS in the Rockstar games; so only turn
it on for God of War.
hopefully we won′t need these hacks in the future, once stuff is handled
properly :p
rev 65: Changed small logging code to something a little nicer :p
rev 64: -Added some checks to logs in various files so it can now be disabled
in release to public builds.
-Disabled logging per default in those.
rev 63: Changed the "align" parameter from 0 to 1, since the docs say it has
to be aligned.
rev 62: changed another opcode that might′ve had an allocation conflict...
rev 61: fixed the mgs3 missing texture bug! i think Dawn of Mana′s
minor-texture problems are gone now as well Smile
i′m still not entirely sure why the old code didn′t work, most-likely
conflicting reg-allocations...
i might have to check some more opcodes in case they also have the allocation
problems :x
rev 60: minor change
rev 59: reverted and changed some stuff that was causing compiling problems
for linux; thanks again to Shanoah
rev 58: fixed some syntax errors that were causing Linux compiling problems;
thanks shanoah!
i think theres still some more syntax bugs though...
rev 57: minor change, commented out some SysPrintf()′s on some VU Opcodes.
rev 56: optimization for the clamping methods in the FPU recs. ClampValues2()
was using a hack to make infinities always become positive; the new code doesn
′t do this since the real ps2 doesn′t do it.
rev 55: minor fixes
rev 54: some odd code on ir5900-32, and small cleanup
rev 53: Whops, this wasn′t supposed to be on the svn :p
rev 52: Added an optional "Enable / Disable timestretching" plugin interface.
If used correctly on a SPU2 plugin, helps to improve audio quality.
(At fullspeed the game shouldn′t require timestretching)
rev 51: dawn of mana didn′t like the clip optimization for some reason :x
rev 50: fixed a problem with VU CLIP, and optimized it a bit as well.
rev 49: Oh well, the new cdvd timing code breaks Shadow Hearts videos ><
rev 48: fixed a typo
rev 47: flush to zero will now only be enabled with the Denormals speed hack
rev 46: fixed some extra-overflow checks
rev 45: used vuFloat2() instead of vuFloat() where i could; should get a
speed boost
rev 44: optimized vuFloat() a little bit...
rev 43: a few changes, some stuff is more optimized.
rev 42: Reverting the vufloat speedup
rev 41: Works this way, and is quite a bit faster
rev 40: recoded RSQRT opcode.
rev 39: optimized SQRT opcode a bit
rev 38: minor casting fix
rev 37: finally finished that monster opcode lol :D
rev 36: Loading times go overboard on some games :/
This will need to be a special game fix then, will do it later
rev 35: Another DIV update; this opcode is taking forever lol
rev 34: Finally found some decent values for cdvd timing, toa and dds work
better
rev 33: another big update for the div opcode; still not done, but the stuff
thats left only happens maybe 1% of the time.
rev 32: another update to the Div Opcode... still not done :O
rev 31: Bad casts on counters
rev 30: few more updates to the div opcode...
rev 29: almost done with the vu div opcode :p
rev 28: That couldn′t work :p
rev 27: More overflow checking made optional
rev 26: changed some overflow stuff.
rev 25: rama didn′t like Exiting with esc key :p
rev 24: a few fixes, and half-way done with the vuMicro DIV opcode.
rev 23: ^^
rev 22: hmm i found a way to speedup vuFloat() a bit; DMC1 went from 24 to 28
fps hehe... hopefully this doesn′t break games.
rev 21: small update; the next update should be a big one :p
rev 20: A few small lower opcode fixes/optimizations; Also aligned text in
Speedhacks dialog to show correctly on my PC :p
rev 19: -New cdvd code by gigaherz + Tales of the Abyss fix (all commented
out still)
-Removed non-used variable from counters.c
-Added a "restart emu" remark on the DaZ speedhack dialogue, since thats
needed (oO)
rev 18: small change; might fix something :O
rev 17: fixed up some allocation errors in recUpdateFlags()
rev 16: finally completed recUpdateFlags() to fully support
underflow/overflow checks; theres still some room for optimization that i
might do later though.
rev 15: a few small optimizations and changes for the VU recs.
rev 14: updated this file to match zerofrog′s minor-change in the official
sourceforge SVN :p
rev 13: Fixed some lower VU micro instructions; mostly flag checking stuff...
rev 12: some small changes
rev 11: more ivumicro stuff, and a dialogue misunderstanding i had ^^
rev 10: Few tweaks to ivumicro, needs checking!
rev 9: A few more tips on the speedhacks
rev 8: eh looks like rama had more recent versions of these files too. so i′
m reverting them. hopefully i didn′t miss anymore files :(
rev 7: some of the files i committed had old data; reverted a few files, and
fixed others to include the data i was missing.
rev 6: Stuff that was changed:
- Fixed up pcsx2_2005.sln to not give errors for missing plugin files.
- PCSX2 now exits properly with ESC key and GSdx :p
- Updated my VU Skip to the latest version I had.
- Added/Modified alot of speed hacks.
- Added a few SSE and x86 instructions coded by DiablosOf.
- Working on VUs: Added some code that fixes SPS in some games, but runs
slow. Turn off this code with the speedhack "Disable Extra Overflow Checks"
to get back the speed.
- Also regarding the VU′s, it seems MGS3 doesn′t like something I coded.
But I′m not sure what it is yet; hopefully I′ll figure out the problem ^^
- Some other minor changes I probably forgot to mention :p
rev 5: Added cottonvibes vu and frameskip, also removed the annoying dvd read
messages :p
rev 4: Lots of updates, mainly fixes for warnings, but also some optimizations
rev 3: removed plugins from the 2k8.sln
rev 2: Copied over the files from pcsx2 HEAD revision.
rev 1: Initial directory structure.
------------------------------------------------------------------------------------------------
PCSX2 changelog:
rev 403: change to allow compilation on latest linux. Only tested on xubuntu
8.10, 32 bit so far.
rev 402: updated GSSoft code to compile to help developing fpsbios under a
virtualbox vm. Does not work properly yet, but it compiles under xubuntu
8.10. Only useful for devs.
rev 401: Moving pcsx2v2 to branches
rev 400: Moving old pcsx2 src to tags
rev 399: -
rev 398: Using standard SVN folder structure
rev 397: -
rev 396: more asm fixes
rev 395: - //SVN moved to http://code.google.com/p/pcsx2/ //
rev 394: !ZeroSPU2 update!: compilation problem
rev 393: changed qword to xmmword to fix gcc errors on newer distros
rev 392: got rid of abs error
rev 391: -
rev 390: commenting out unneeded rpsxBASIC
--
Tags:
模擬器
All Comments
Related Posts
Yabause v0.9.8.1
By Damian
at 2008-12-12T21:15
at 2008-12-12T21:15
PS版BAROQUE~扭曲的妄想(罪惡默示錄/異域)
By Ula
at 2008-12-12T21:11
at 2008-12-12T21:11
最終羅曼史2、R的設定集資料
By William
at 2008-12-12T20:27
at 2008-12-12T20:27
麻雀放浪記掟
By Elma
at 2008-12-12T20:11
at 2008-12-12T20:11
FC_Little Magic心得
By Quintina
at 2008-12-12T13:44
at 2008-12-12T13:44