PCSX2 rev 396 PP rev 426 & rev 75 SPU2GHz PP rev 406 - 模擬器

Annie avatar
By Annie
at 2008-12-15T21:12

Table of Contents


PCSX2 0.9.5 rev 396 PP rev 426 & rev 75 SPU2GHz PP rev 406


http://re4rainbow.4shared.com/ mirror site:
http://www.mediafire.com/re4rainbow

Legend: '//blah-blah-blah//' or '/blah-blah-blah/' is re4rainbow's comment.
Just FYI.

Quoted from: http://code.google.com/p/pcsx2-playground/source/list


rev 428: Clean up some Vif debugging code.

rev 427: Stop pcsx2 from crashing in Linux if a plugin is missing.

rev 426: small VU optimization, and reverted the recent FPU changes. the
reason being that they failed my test program, but old versions worked. if it
fixed games, it was just a random occurrence; and it could just as easily
break games (just that we haven't tested enough).

we might add the code as a special gamefix later.

Below is the ps2 code that failed with the latest build, but worked with
earlier builds. Notice the differences between the output of a real PS2 vs
PPr423.
-------------------
float x = 1000000;
float j;
int z;
for (j = .3, z = 0; z <= 5; j*=j, z++) {
x-=j;
SysPrintf("%d \n", x);
}
--------------------

ps2 output:
999999.687500
999999.625000
999999.625000
999999.625000
999999.625000

PP r423
999999.750000
999999.687500
999999.687500
999999.687500
999999.687500



rev 425: Mostly added comments to some code. Also added a "safety" set of
FreezeXMMRegs calls to gs.cpp, in a spot of code that should always be called
from a frozen register state anyway (but better to be safe).

rev 424: Add a bin directory, with the normal files associated with it.

rev 423: FPU again... This time it should work for all games. Thanks to
q.w.e.r.t.y.1.2.3.4.5.6.7.8.9 (longest nick ever? :p ) for the precise add /
sub implementation.

rev 422: Tweak the Linux build to allow for local ini files and custom cflags.

rev 421: Reverted all changes for now :( The roundmode approach is fine for
the ADD and SUB opcodes, but without fixing
all arithmetic opcodes, we'll still get wrong results. As usual with pcsx2
the last commit made some games worse due to that...

rev 420: Huge precision improvements for FPU. Add and Sub now calculate the
same values as on the ps2. Mul is now closer to the ps2. This commit fixes
Tales of the Abyss, Rogue Galaxy and possibly many others :) //that's not
quite truth, <see comments of this rev on pcsx2-playground site for more
info> but it's better than nothing:P//

rev 419: New logos and other misc changes.

rev 418: fixed a typo from r416 (code should never be run anyways, but just
in case :p)

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 ;) //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:\mystuff\someplugin.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. ;)

//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




--

All Comments

MAMEUIFX32 & MAMEXT 0.128u6 released

Genevieve avatar
By Genevieve
at 2008-12-15T21:03
MAMEUIFX32 0.128u6 http://mame32fx.altervista.org/home.htm MAMEXT 0.128u6 http://www.mamext.net/ - ...

GBA新約聖劍傳說修改法

Ula avatar
By Ula
at 2008-12-15T20:22
主角起始位址0202-03f2 記憶體位置對應圖 03e7 03e6 03e5 03e4|03eb 03ea 03e9 03e8|03ef 03ee 03ed 03ec|03f3 03f2 03f1 03f0 | | ...

bsnes v0.038 released

Tracy avatar
By Tracy
at 2008-12-15T19:33
http://byuu.cinnamonpirate.com/ eliminated S-DD1 DMA enslavement to the S-CPU; this allows the S-DD1 to behave more like the real chip, and it also simpli ...

MAME 0.128u6

Linda avatar
By Linda
at 2008-12-15T19:22
http://mamedev.org/ 0.128u6 ------- MAMETesters Bugs Fixed ---------------------- - 02728: [Crash/Freeze] galpani3: and#39;Illegal Instructionand#39; af ...

PCSX2模擬實況野球大聯盟2008

Leila avatar
By Leila
at 2008-12-15T17:55
PS2美版的實況野球大聯盟2008 執行時出現錯誤訊息無法模擬 錯誤訊息如下: XML Loader returned an error. Trying to load a pnach... No patch found.Resuming execution without a patch (this ...