Re: [新聞] PCSX2 rev 396 PP rev 426 & rev 75 SP …

看板Emulator (模擬器)作者 (八房龍の助)時間17年前 (2008/12/15 21:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.238.100 ※ 編輯: choan 來自: 59.126.238.100 (12/15 21:14)
文章代碼(AID): #19HbUwMW (Emulator)
文章代碼(AID): #19HbUwMW (Emulator)