PCSX2 Documentation/Google Code svn repository comments archive 2500 to 2999

From PCSX2 Wiki
Jump to navigation Jump to search

Revision 2500

Fix some random crashing on exit. Add some log spam threshold handling

Revision 2501

Quick Linux fix.
... did it give you muldefs or something else?
"RecoverySystem.cpp:28: error: expected unqualified-id before ';' token" is what it gave me. Pretty much the opposite of muldefs.:)

Revision 2502

Small cleanup of the new dma update function.

Revision 2503

Let's try this instead for appeasing GCC. ;)

Revision 2504

Fixed a compiler warning.

Revision 2505

Apparently the sio didn't really like me setting count to 1 every byte.
Hardcoded a block size of 0x24 for now, since it's what the bcr in the bios has.

Revision 2506

More UI bugfixes and tweaks:
* Hopeful fix for GSwindow getting stuck maximized when pcsx2 crashes when
* Altered RestoreDefaults behaior for EE/IOP and VU CPU panels.
* CDVD Verbose Reads toggle takes effect immediately now.
Going to test the full screen in a few minutes
'the fullscreen getting stuck maximized after crashing thing, is what i meant xD
cool your fix works :)

Revision 2507

Small log stuff for new iop dma.

Revision 2508

(new dmac) Sending the sio interrupts on the dma interrupt seems like a more
sensible solution, but I don't know if it will actually be better or worse.

Revision 2509

Sif: Revert one of the changes from r2490. Rework safeDmaGetAddr.
The change I reverted was one of the function rearranges. It was causing a crash further on in Mana Khemia...
From Silver:
Sonic Riders Gravity Zero on Pcsx2-r2492 now cause random crashes, on r2495 still exist this bug, currently i use r2470 in this release all works fine, i think this bug in r2492 caused by changes SIO or IOP or another fixes...

Revision 2510

Sif: Pull some functions to pieces. Fix issue 549 while I'm at it.
I may change this back later, but for now it's easier to work with this way.
Arcum please read old message from r2509
I did. I don't actually own Sonic Riders Gravity Zero, so the troubleshooting I can do on it is limited. Both this revision and the last change things back that were changed in r2490, though, you might want to doublecheck with the latest version...
On r2508 still hangs, even on game menu! this game completely broken :(
I've tryed remove all speed hacks in Pcsx2, but not work...
Anyway thanks for r2470 i got most time full speed and Sonic games no crash :)
Well, if you were trying r2508, there's still hope for r2509 or r2510 fixing it.
And if not, there are other possibilities...
OK, i try new releases and report when this problem will be solved :)
This was bound to happen when fiddling with SIF:
The whole thing is a mess of voodoo cycle timing, and fixing games means putting in the weirdest stuff in here.
So as long as the functionality is the same of the original code, don't be alarmed when some games break now. We'll re-hackfix them later :/
So is SIF one of the upcoming dodo things once the new VIF is fully completed out of curiosity?
He's actually working on SIF :-P

Revision 2511

Fix some excessive idle event processing introduced by my earlier log spam

Revision 2512

Quick placebo for Memory Cards (empty panel and icon). Will fill it all in
Yes! Sonic Gravity Zero works again :) (hopefully)
But unfortunately i lost good performance :( i got only 35~48 FPS on Shadow the Hedgehog and Sonic Riders Gravity Zero, in r2470 i have 50~60FPS, so SIF and some another parts very important for Sonic games, guys please optimize these things, and i will have always 60 FPS :)
... more likely you forgot to re-enable a speedhack you probably turned off while trying to troubleshoot the game not working. ;)
No, i enable EE Cycle rate x3 and all other speedhacks, only always leave off VU Cycle stealing and mVU Min\Max Hack :)
In previous releases these games runs more faster, i think this possible to make run these games more faster close to 60FPS ;)
It might be doing a few iop cycles less to speedhack later.
My advice: Get a pc that can handle pcsx2, and you don't need to rely on dodgy speedhacks.
this update means we're close to get a working memory card and finally see 0.9.7?
The latest releases I am actually seeing a speed increase across the board without any speedhack's on. Atleast in .hack G.U. have gained 4-5fps and the menus work a lot better in the game.
So whatever you guys are doing to clean up the code and streamline it, its working atleast in regards to this one game.

Revision 2513

The usual Linux stuff. Plus one or two minor things that I hadn't had a chance
to commit yet.

Revision 2514

Document some findings on VIF1DMA issues.
..with an INTC IRQ..
Ah well :p

Revision 2515

Created the macro "memcpy_const" for memcpy's with constant sizes, and set pcsx2
to use it where applicable... currently just uses memcpy_amd internally...
Also some minor mVU compiler optimizations.

Revision 2516

fixed some vif stuff.
not sure if any game was using the code in hwwrite.cpp, so i couldn't test the
the old code was wrong though (unless it was trying to implement some
undocumented feature which i doubt).
Good work, after long testing r2516 i got almost good speed, Shadow the Hedgehog 45~64FPS, Sonic Riders Gravity Zero only 35~50 FPS, Sonic Unleashed now run FASTER! than old r2470, new releases need some optimization for achieve 52~60FPS...
Thanks :)
Very nice increment speed.

Revision 2517

some vif/vu changes...

Revision 2518

Unified vif0 and vif1's write32 functions...
Yes, it goes close to 50~60FPS, Shadow the Hedgehog always run again on 50~60FPS, Sonic Riders still bad 42~60 instead of 50~60FPS, Sonic Unleashed, if play for Sonic almost all levels run on 60FPS, if play for werewolf it may fall to 40~50FPS sometimes...
Good Work :)
Dude, all these last commits do nothing for speed. We do our own speed checks, we'll know when something got faster/slower.
Random +1 praise comments is a Dolphin prpject prerogative ;<
Perhaps he opened wrong bookmark.

Revision 2519

Sif: Some consistency in Sif Dma.
menu do memory card não aparece bem que na hora de rodar o game ele esta desativado
english. use it.
Memory cards will come soon.
Arcum: Keep going :D

Revision 2520

Added CPU and GPU load readouts (currently Win32 only). Documented possible
methods for implementation in linux. (linux project files aren't updated yet,
short on time -- sorry!)
Very nice, it works fine here :)
Note that we could use it to pretty accurately tell if a scene is GPU or CPU limited.
(Unlike the GSdx method, where 99% CPU load could mean lots of d3d draw calls as well.)
very nice I missed this feature XD
Interesting to see how little the GS is used overall.
Readouts may not be fully accurate yet, so don't give them too much creedo yet. I'll be working on some tweaks to them in the coming days.
Ok the GS readouts are "wrong" because the entire "flip (present)" portion of the GS is actually done on the UI thread. So currently the GS %'s register the texture swizzling and geometry setup, but the actual GPU work is done on the UI thread.
I'm not sure yet the best way to represent this, since just adding GS+UI could also be misleading for other reasons (UI has a little more to do in life than just present D3D scenes). There's still a few numbers I need to play with to see what's going on.
GS readouts in Software mode should be accurate tho (still untested).
I think the percentage on GSdx in legacy_gui was already fine.
under circumstance below 60 FPS, 99% means the bottleneck is your Video Card, a value under 99% means the bottleneck is your CPU.
Not sure, i got approximately Min\50FPS ~ Max\60FPS on Shadow the Hedgehog and EE show 60~100% and GS 20~40%, this game reach almost fullspeed...
Game Tiny Toon! :lol: run always at fullspeed 60FPS and EE show 50~100% GS only 5~30%
Well, let me give a shot at BIOS screen where a bunch of lightning orbs constantly spin. that can run at 60 fps with D3D internal res 1024 by 1024 in GSDX10(Hardware) on 8600GT.
Now change D3D internal res to 2048 by 2048
24.1 FPS and constantly 99% CPU shown in legacy_gui r2186.
23.7 FPS, EE: 9% to 22%, GS:0% to 9%, in wxgui r2522.
Apparently 8600GT is the shortcoming that unable to afford such aggressive value of 2048 by 2048.
In further confirmation, I overclock my CPU and found that doesn't help with speed, as I expected.
Okay we test BIOS :)
First Screen, only with lightning orbs on black screen:
D3D internal res 1024x1024 in GSDX9-10 on Radeon 4850
60FPS in r2522 EE:7~18 GS:0~8
D3D internal res 2048x2048 in GSDX9-10 on Radeon 4850
GSDX9 60FPS EE:5~20 GS:0~8
GSDX10 60FPS EE:5~20 GS:0~8
Second Screen with hard animation and menu with setups:
D3D internal res 1024x1024 in GSDX9-10 on Radeon 4850
60FPS in r2522 EE:18~40 GS:1~8
D3D internal res 2048x2048 in GSDX9-10 on Radeon 4850
GSDX9 50FPS EE:20~56 GS:0~7
GSDX10 38FPS EE:20~58 GS:0~9
What about adding VUs? Great commit anyway!
VUs are part of the EE thread.
Dividing each thread's various sub-tasks would be possible, but well beyond the scope of the title bar of the window. I'll need to implement a GUI window or something to report that information.
Oh a GUI window that could be used to do performance testing to help pinpoint specific weak points while a game is running would a interesting addition. Not really useful for anything more then debugging and helping find performance issues and weak points in games / hardware.
But it would be a nice development / testing addition.

Revision 2521

- Adjust the IRQ cycles so ecco boots again.
- Also stopped it from doing IRQ when the cycle counts are zero, since that
>should< mean
we had no transfer. In fact our SIF is commonly doing 0 sized memcpy's, probably
due to the wrong approach we took with it.
- Note that this could break games, so please test! (It does fix Eternal Poison
Please check with what you know about SIF by now.
And feel free to revert it, should you disagree :p
Please help me with METAL GEAR SOLID 3
Exist some fix to this game???
This is no forum, please go here:
I haven't found a broken game within the few titles I can test. Those that booted, still do and reach in game.
tested several games which still all work fine it seems. only one still not working entierly is tales of destiny directors cut (sound/fmvs specificly).
I not found any broken games, all Sonic games run good, and speed almost like in r2470
Good work :)
I tested Eternal poison/Poison Pink and it's fully playable with a small problem the frame overlaps part of subtitles.
It however requires some work. Standard settings doesn't show combat map ( issue 522 ), it needs different rounding for EE. Different rounding for EE causes a black screen just before load game/options menu, it requires more accurate rounding for VU as well.

Revision 2522

Fix Linux. Use defines for CPU_INT.
@arcum42: I suspect it'd be possible to delve into the source for a simple-ish app like ps or top, and yank the code from it for figuring out the cpu time of threads and processes. Well I dunno if either of those actually allow getting thread cpu% stats; they may only get process-level stats -- but I'm quite certain the linux scheduler tracks that info and makes it available somehow. It couldn't really schedule multiple tasks well without it.
Yeah, top's the more likely of the two. Probably won't have time to look at it for a few days, though...
Also, it will be Linux specific, whatever it is -- the stuff Posix provides isn't really accurate enough to be useful.
looks useful.

Revision 2523

Improved CPU usage and fps stats.
In this rev I've added the UI usage stats -- this is because the DXGI pageflips are on the UI thread (along with logging and some other tertiary stuff, so it's nice to have a readout from a dev perspective in the event we glitch something like I did a few commits ago, and the UI sucks lots of cpu).
The UI and GS threads are often mutually exclusive, so neither one is likely to ever get to 100% (when the UI thread is rendering scenes to the window, the GS thread must wait for it to finish because the DirextX calls can't be issued in parallel).
GS thread represents CPU-bound items mostly:
* Texture swizzling
* Geometry preparations, scissoring, other GS emulation logic
* and, I *think*, some RenderTarget activity (GPU-bound)
UI thread represents:
* DXGI Present (main scene generator and page flip) [GPU bound]
* Windows overhead (mouse and window message handlers, etc.) [CPU bound]
* Aero overhead (secondary flip) [GPU bound]
Thats pretty usefull :)
I finally know that the "abnormal" slow down in Bleach blade blatter is caused on the GS thread.
I call it abnormal because the game goes to full speed to barely playable with no apparent reason. the game is paused for example and the fps goes like 60 to 25 and I see the GS thread goes to 99%. While when at full speed it goes to +- 70%.
Sorry to kinda report an issue but it was mostly to show that this was a good commit to maybe help isolate some problem.
Yeah that would indicate a texture swizzle/cache problem. Could be a bug, or could be the way the game transfers textures.
may be i did not understande the meaning of the count , but they means the current workload or the relative speed compared to the ps2 speed ? becouse i never have GS or EE over 30% but the fps going from 60 to 20 , it means that is the GPU that is not able to process all the geometri and texture passed by pcsx2 ?
Most likely yes, that's what it means.
I documented a bit more of the problem in Issue 551
What is the "UI"?
User Interface, most commonly referred to as Graphical User Interface (GUI)
Ok, thanks a lot!

Revision 2524

LinuzCDVDiso: Added the dual layer detection fix already present in the internal
iso loader (fixes running some DVD9 games from iso, like God of War 1 and Rogue

Revision 2525

SSSPSXpad: Fix crash when binding keys ( Issue 550 ).

Revision 2526

Linuz CDVDiso: Fix compilation errors in debug builds.
By unknown reasons i lost 5~10FPS, last changes was FPS and EE and GS count, it really work well on Athlon X2 6000?
Keep it on topic here, we use the code comments to get feedback on code changes.
Obviously a CDVD plugin fix is not going to affect fps.
By the way, we know you use speedhacks extensively, so that voids all your speed reports anyway :p
For some reason, the keyboard has no function even after configuring it with Lilypad.
Keyboard seems to regain function in PCSX2 once I set it to Direct Input instead of Windows Messaging (worked fine with public beta r1888).
Today download r2526 and Shadow the Hedgehog by unknown reasons run at fullspeed! 58~62FPS i don't know maybe i have bad programs for dump ISO's
Ha Ha my PC enough fast :P
Thanks you my best friends!
Then stop reporting crap and fix your PC. You are wasting our time and the coders' with your false reports.

Revision 2527

Sif: Renamed a few functions. Added a check on fifo reading/writing. A few other
minor changes.
Note: SIF1IOPWriteTag() to SIFIOPReadTag() is not a mistake. Or, rather, it's me correcting a earlier naming mistake.
Oh, and I'd been thinking about uncommenting those checks in Sif{IOP/EE}{Read/Write}, except for the console messages, but decided to hold off on it.

Revision 2528

* Vsync setting is retained more reliably across suspend/resume/plugin config.
* fps/cpu% readout is a bit more stable.
* Plugin config menus update plugin names after on-the-fly changes.
Wait, has Vsync been reenabled?

Revision 2529

Added more info to GS window. Added const qualifiers to VIF and DMAC hw
register structs/unions.

Revision 2530

GSdx: Removed obsolete/redundant options from the configuration dialog (vsync,
fullscreen, and other things now controlled by 0.9.7). This only affects GSdx
when run from 0.9.7 -- older versions of PCSX2 still have the same options.
PCSX2: Added an optional PS2EsetEmuVersion callback for plugins, so that plugins
(like GSdx) can alter behavior based on the version of emulator calling them.
Glad to see you won't abandon the legacy_gui.
GSDX crashes pcsx2 when pressing ok in the GSDX settings window
kaboo - do you have a log of the crash?
PCSX2 Until now, AT2 opening video:
- Turbo/etc -> >100fps ([email protected], HD4850)
- GS vsync on, pcsx2 vsync off -> 60fps, perfect
- GS vsync off, pcsx2 vsync on -> 50fps (WTF?)
Now, thanks to the removed option, I'm stuck with slowdown. (tested)
Whatever PCSX2 is doing for vsync, it isn't right or as good as what GSDX used to do.
Just in case, game is NTSC. I set both NTSC and PAL to 60fps for debugging. It's still limiting me to 50fps.
I'm saying AT2 intro movie, but it really happens in a lot of games (including at least Persona 3 FES).
GSdx vsync has been disabled/bypassed for months. All I did was remove the GUI option for it, which was being auto-turnd off even if you tried to turn it on. (ie, turn it on, hit OK, start game -> gsdx vsync got disabled)
>> Just in case, game is NTSC. I set both NTSC and PAL to 60fps for debugging. It's still limiting me to 50fps.
This is your bug. The ntsc/pal framerate selector probably isn't working as it should. I'll fix.
I can't find anything wrong, and I can't reproduce this bug. When you hit TAB, the console should get logs like this:
(FrameLimiter) Turbo ENABLED.
(UpdateVSyncRate) FPS Limit Changed : 179.82 fps
(FrameLimiter) Turbo DISABLED.
(UpdateVSyncRate) FPS Limit Changed : 59.94 fps
(FrameLimiter) Turbo ENABLED.
(UpdateVSyncRate) FPS Limit Changed : 179.82 fps
(FrameLimiter) Turbo DISABLED.
(UpdateVSyncRate) FPS Limit Changed : 59.94 fps
... does yours read something other than 59.94 (or it should read 60, if that's what you have it set to).
(FrameLimiter) Turbo DISABLED.
(UpdateVSyncRate) FPS Limit Changed : 59.94 fps
(FrameLimiter) Turbo ENABLED.
(UpdateVSyncRate) FPS Limit Changed : 179.82 fps
(FrameLimiter) Turbo DISABLED.
(UpdateVSyncRate) FPS Limit Changed : 59.94 fps
(FrameLimiter) Turbo ENABLED.
(UpdateVSyncRate) FPS Limit Changed : 179.82 fps
However, AT2 intro vid goes 49-52fps (depending on how).
If I then disable vsync I get 60fps.
I suspected it could be ati control panel related, so I checked vsync there is "off unless app specifies", so it isn't interfering in any way either...
So, while the video is playing I enable and disable vsync in "app settings", getting 50,60,50,60,50,60...
I've now tested further and discovered an interesting fact (GSDX Renderer):
- DX10 Hardware: vsync on/off -> 50/60.
- DX9 Hardware: vsync on/off -> 60/60.
So it's tied to DX10 renderer, somehow. Are you per-chance using DX9?
@Matsuri: Aha! Problem solved.
>> However, AT2 intro vid goes 49-52fps (depending on how).
This is slowdown. the 'vsync' in GSdx maintained 60fps only because it was being *ignored* -- there was in fact no vsync. Your machine isn't fast enough to handle a consistent 60fps with vsync enabled on that scene. Before you say "but it runs over 100fps in turbo!" -->
Most FMVs are basically 15fps monsters on the PS2. They're 30 fps videos with every *other* frame being a LOT of work to build 2 images. Like so:
frame 1: build 2 FMV frames. Display first.
frame 2: flip to second.
frame 3: build 2 FMV frames. Display first.
frame 4: flip to second.
Frames 2 and 4 render at like 500fps. Literally. Frames 1 and 3 can be VERY slow, like 20-40fps.
With vsync enabled, frames 1 and 3 have a hard time finishing within the 60fps window. Because vsync is very rigid, missing the vsync even by a microsecond means you LOSE A FRAME, regardless of how incredibly fast the second frame renders. In your case, about 66% of the time the "fat" frame is too slow, so you lose (15 * 0.66) fps (8-11 fps lost, for a total of 49-52).
When vsync is disabled, the speed of the second frame is allowed to offset the slowness of the first -- which allows for a net result of 100+fps. (eventually gsdx will have triple buffering, which would fix this issue, but I'm not an expert on how to enable that)
So yea, the reason you got 60fps in the old GSdx was because it was in fact ignoring it's internal vsync (as I mentioned above).
Also, it's not entirely surprising that DX9 handles vsync a little better than DX10. DX10 has a few added extras in it's page flip/present logic pipeline -- a wee bit more overhead per-frame. Typically this is irrelevant and totally offset by the reduction of overhead in other areas. But because vsync'ing is so touchy, it can be the diff between syncing, and missing the sync.
(DX10 was also built with triple buffering in mind -- ie, Microsoft made triple buffering so easy didn't really see any app *not* using triple buffering, except for debugging purposes).
I played AT2 on an e2160 at much lower clock with this same motherboard and gfx card, with vsync enabled, a year ago, then revisited it and played some Mana Khemia this last summer.
Hadn't really used pcsx2 in a few months while until a few weeks ago, where I have been playing persona3 with that gsdx "fake" vsync option on and the app settings one off.
Whatever made AT2 intro movie like that with vsync on must have happened more recently, but who knows at this point.
I blame the "fake" vsync idea... option should really have been removed the day it became useless.
>> I blame the "fake" vsync idea... option should really have been removed the day it became useless.
My only schedule was to make sure it was removed prior to an official 0.9.7 release.
Of course; better late than never.

Revision 2531

GSdx: Crash on config ok'd fixed.
Thanks for this fix.
I got an APPCRASH every time I close the GS-Frame:
Problem Event Name: APPCRASH
Application Name: pcsx2-dev.exe
Application Version:
Application Timestamp: 4b615bf2
Fault Module Name: GSdx-SSE4.dll
Fault Module Version:
Fault Module Timestamp: 4b6158fc
Exception Code: c0000005
Exception Offset: Exception Offset
OS Version: 6.1.7600.
Locale ID: 1031
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
This bug exists a long time and I dunno whether it's known.
Createt issue 553 for this.

Revision 2532

Fix attempt for Issue 533 - appcrash on closing GS window.
I mistyped the Issue number :(
It's supposed to be Issue 553 (sorry)

Revision 2533

GSdx: Another attempted fix for Issue 553 .

Revision 2534

GSdx: better version of my previous commit.
Thanks you are great! This fix seems to work. I tested over 10 times and no crash. If it occurs again I will let you know.

Revision 2535

Add a few structs and defines to IopHw.h

Revision 2536

Split Sif 0 and Sif 1 into separate files.
I'll be refining things on this later, but I don't really feel like redoing the split if I have to revert...

Revision 2537

Sif: Refinements on my last commit.
Note that we zero out at the beginning rather then the end of Sif0/1Dma now. Makes more sense, and I don't believe it breaks anything.
And cycles, psxCycles, & done are now local variables in Sif0.cpp and Sif1.cpp, so we don't have to keep passing them around all the time...
Hmmm... Mana Khemia breakage somewhere in here. Time for me to fiddle about a bit and see what caused it.

Revision 2538

Sif: Rename functions. Move iopsifbusy.
I found new crashes:
Sonic Riders Gravity Zero, emulator crash with: Microsoft Visual C++ Runtime Error
Sonic Unleashed, emulator crash with: Microsoft Visual C++ Runtime Error
I should have a new commit shortly for a crash affecting Mana Khemia. It's probably the same thing causing them.

Revision 2539

Revising some logging messages.
Fairly minor, but Sif breaks easily enough that I decided I'd rather do several small revisions then one large revision.

Revision 2540

Sif: Revert one of the changes from r2537, as Sif acts a bit whackier then I
Fixes Mana Khemia.
Setting sif0/1.end to 0 at the beginning of a cycle was what was doing it. Which implies that occasionally when the iop ends, that the ee was about to end as well, but doesn't till the next time it's called.
I'll have to think about this one a bit...
OK, all my games don't crash anymore...

Revision 2541

Move a bit of code into the IopDmaStart function. In the rare case it caused any
kind of noticeable slowdown (applies to the new dmac only, which is disabled by
default), it could be easily reverted.

Revision 2542


Revision 2543

Committing some messed up partial memorycard options panel implementation...
planning to redo it but I want this on record as a backup, just in case. (all
disabled, so not much to look at and nothing changed in the emu itself yet)

Revision 2544

Update the Linux project files. A few minor changes I had sitting around.

Revision 2545

eh, oops. let's not clear memcard settings on ok/apply.
Really welcome fix!
(I had to reenable it twice :)

Revision 2546

Tweak a few things in Sif.
Only real thing I could see breaking anything in this commit is changing sif0.counter = sif0.data.words & 0xFFFFFF; to sif0.counter = sif0.data.words;
And given that sif1.counter already wasn't chopping off the top 8 bits, and that in tests, I didn't see anything get put in the top 8 bits of sif0.data.words anyways, I think we're good.
Its has a little advantage over the previous one I wish i could download this release >>>>>>>>>>
English Only. Portuguese Not.
The pcsx2 Have a more better with manager of the works, process, pcsx2 exe, priority, high.
Maybe, if you works with use of the cpu have better.
Guys i need fix for "Sonic Heroes" i found alot small bugs in this game, first on r1888 characters not disappear in some zones of levels, after new releases and up to r2546 this bug still exist, second bug: music sometimes may stop and after 5-10 seconds play again, third problem: something wrong with controll, in first level characters run close to right side instead only forward, and last problem: small graphic glitches in some levels lost textures, etc...
I've tryed all options, disabling speed hacks, change method cycles of EE and VU, changing plugins.
For more details i may send screenshots, but don't know how to create correct bug reports...
My suggestion would be to go to the Bug Reporting pcsx2 forum and post there:
When you post, if you follow this guide, you should be fine:
My advice for posting comments would be to just use the google translator to translate from Portuguese to English, as it does a good job:
Using Google Translate, your previous comment in Portuguese translates to:
"Very good. I just found out one thing. You guys know that the cpu is divided equally among the priority cases carried momentarily. So I thought what would actually happen if you increase the priority of the process pcsx2, which would be the best results, it was great. recommend the Task Manager, Processes tab, right-click on the pcsx2.exe, set priority, high, do not put real time as problems appear with the sound, in the same review let the best results in the comet."
(Though I think the forums rather then the comments would be a better place to discuss setting task priority...)
Any ideas on whether we should actually be hacking 8 bits off the data when transferring to the hw_dma madr tags? It just seems odd to take the id and irq bits off the tag. Pcsx2 seems to run the same either way.
Wish I had more documentation on Sif...
Actually, I might have just found where it specifies that it has 24 bits of data...
I was banned from using Forum, so i in trap, in current time i learned how
to use Forums, but Bositman never give me second chance...
Without specs, we'll have to try and error (+ some educated guessing).
Maybe we could whip up some test code to run on a ps2, using the ps2sdk..
Yeah, I've been meaning to whip up some elf files to test things on the ps2. I just never got around to setting up ps2sdk for it, though I have a copy around that I've been using the headers for reference on.
Shouldn't really be that difficult, since I set up the psp sdk once on my system... (mainly since I wanted to customize Bookr on my psp. ^_^ )
The PSP is awesome, isn't it?
Swiss army knife of handhelds, really :p
Yeah, it is. Game selection may be limited, but I can play ps1 games on it, and do all sorts of things with homebrew. And I was using it a lot for reading. I mainly stopped using it for books when I got a eeePc.
Oh, and not only did I make a pandoras battery, I've used it on half a dozen peoples psps. There was a while where it seemed like everyone where I work was getting a psp...
Though I'll admit my DSi is getting a bunch of attention due to my copy of Atelier Annie right now.

Revision 2547

Some reorganization of my iop dmac code, hopefully for the better.

Revision 2548

- Don't the whole core on a core reset. Fixes sound in Silver Surfer, Silent
Hill Shattered Memories and prolly others.
(SH becomes playable with this. ;) Still needs GSdx software though. )
*Don't reset..
Ah well :p
Fixed sound in KillZone
Issue 115
Many sound problem games fix.
rama rules, let the game fixes comin'.
Big Fix!! Many games have sound like Bolt and others. Big rama!!!!!!
Sweet! Anything that improves any silent hill's gets a +1 from me ;)
Playable SH is always great! :) SH-SM works just fine, and what about Origins? (I don't have the disk right now to check it out..)

Revision 2549

newVif: Rewrote the way partial transfers are handled.
The code is very simple now and doesn't need the vif unpack interpreter anymore
for partial transfers.
Need some more testing done before I remove the code for the old way...

Revision 2550

newVif: removed the old partial transfer logic since the new code doesn't seem
to break anything.

Revision 2551

- Ok, skip the whole runtime reset, since we don't know (yet) what vars need to
be reset, and more importantly, when.
- Makes it possible to disable the specific BIOS hack we had. :)
Fixes shaman king not showing "Press Start" probably other games too?

Revision 2552

LilyPad: Fix for detecting devices whose instance IDs have changed (Either due
to to changing OS or USB port).
Modified unplugged device behavior to match PadNull. May work better with
unplugged pads, may not. No clue, just know the old behavior didn't work that
I cant' test it because I fried my cpu while testing pcsx2 sometime ago. But if this commit does what you say, it deserves +1. I hope not entering the "random +1 area" with my semi-review (like dolphin users). Not the intention. :P

Revision 2553

Adjusting the previous VIF interrupt cycle change, so it now checks for a known
to be slow operation and gives it a bigger delay.
Timesplitters 2 works again.
Not sure how Timesplitters 2 "works" - I'm getting major graphics problems on-screen (streaking so bad you can barely see). Using GSDX with Direct3D9. ATI 4670 mobility radeon with latest drivers.
Note: This is NOT a problem with this build; it's been there for quite a long time (I've never seen this game actually work). I was just hopeful this build would fix this issue after reading the above.
Nope, I don't know how it looks ingame.
(If Timesplitters 1 is any indication, I can imagine however. :p )
This commit fixed the game not booting up.
scriptis: apparently timesplitters completely broke somewhere along the lines, and this revision just gets it booting up again so that it works like it did in earlier versions of pcsx2.
Gotcha. So it boots, just not playable. Kinda similar to GT4 - boots but the actual in-game screen is all streaky with on-screen garbage. I've always thought those two probs are somehow related.
Thanks for the info..
GT4 as in Gran Turismo 4?
The game that works just fine? :p
That game has never worked fine - or at least for revisions going back at least two years since I started testing with it. Are you thinking of the PAL version? I have NTSC and have always had major on-screen garbage.
Yep, NTSC. Head over to our forums, and search for this title.
It'll tell you what configuration problem you have (for 2 years now :p ).
gt4 has always been unstable for me, crashing in random places (due to gsdx i think).
but scriptis the problem you're describing about the on screen garbage is fixed by going into the options in-game and turning 'brightness' from 3 to 0.
or it might've been contrast? i don't remember the exact setting.

Revision 2554

Experimental implementation of spu2 interface for the new iop dmac.
It's implemented only on SPU2-X and disabled by default.
FF12 and Atelier iris had working FMVs and bgm, other games might not
Try at your own risk.
Quick test on a few games. Looks like it works :)
The problem games are still showing exactly the same behaviour though :/
same as rama said.. games that were working still work ones that weren't still not.
Good Work ;)
P.S БосиТмаН былда!
Bositman is what?
Bad boy ;)
Bositman please give me second chance, i want back to Pcsx2 Forum ;)
if you still don't believe me, i send url:
Yes i'am Silver 746, and look at my profile i almost not have warning level
also i post 510 messages and reputation level go up to +59
SPU2-X progress alwayes great!!!!
If the autodma doesn't work better, then chances are it wasn't autodma to begin with. :p
(eh okay there's still the possibility we aren't managing some registers' flags appropriately, but if it was that, no clue which).

Revision 2555

Hackfix a problem with sio2 in the new dmac. It needs some changes to the dmac
system (possibly a dmaStart function with more accurate information) to be
implemented properly but for now, this will do.
Also make the autodma messages work like before so they are configurable again.
Saves States not supoerted now.
I found error:
When music stop in Sonic Heroes, in console i found this message:
SRD: Drive Error (sceCdGetError = 0x1)
Comment by DanrleiShippuden, Today (2 hours ago)
Saves States not supoerted now.
Are you SURE the issue happens with this commit and not the previous?
This commit doesn't change anything that could possibly affect savestates...
BTW, this commit fixed Ar Tonelico with the new dmac, and possibly other games that use block widths != 0x24.
gigahers, nice to know, +1 from me.
darnlei, learn english for the sake of us. :P
i think danrleis just put anything that has no use for him into negative =.=
@ diego that would be negative... and not to mention stupid!

Revision 2556

Pull the IPU Fifo code out of IPU.cpp into its own file.
Of course, I also renamed all the functions and variables, put it in a class, and such. And misc changes crept in...

Revision 2557

"giga: PlainDMAWrite((u16*)data,bytesLeft); << not bytesLeft/2 ? Fixes sound in
many games" whoops.

Revision 2558

Experimental sliced transfer stuff for spu2-x in the new dmac code. Probably
doesn't make anything better, and it could slow down the iop a tiny bit while
doing DMAs.
if(MsgDMA()) ConLog(" * SPU2: DMA%c Transfer of %d bytes to %x (%02x %x %04x).\n",
oh no that's not it. it's meant to be "size<<1" instead of bytesLeft

Revision 2559

Chagne a few thigns around for the spu2-x Irq flagging. If this breaks anything
please tell.
Note this also enables IRQ raising within AutoDMA, which is probably never used but could happen.

Revision 2560

Forgot to check if my changes compiled with the new dmac stuff disabled. Thanks
Pashifika.kasuru for pointing it out.

Revision 2561

IPU: Folded a few related variables into a struct.

Revision 2562

Spu2-x: A few quick changes to get it compiling in Linux again.
While I don't think I broke anything, I'll be checking in a few minutes to make sure.
Checked, and it compiles properly in Windows. Didn't really think it wouldn't, but you never know.
And naturally it doesn't actually work in Linux yet. That'll take a lot more effort then getting it to compile...

Revision 2563

Sif: Implemented a new _sif structure, and made the code use it. Added some
temporary code to try to keep the savestate backward compatible.
backward compatible with what version? last build or last release version?
Last build. While breaking old savestates a few times between releases is inevitable, I'm just trying to do it as few times as possible...

Revision 2564

Correction to last commit.
pop warrior within is playble on d3d software mode but when i try hardware mode come black screen, sound is normal. i try r1474 and hardware mode is working, not playble but no black screen.

Revision 2565

- Just a few more SMT games CRC's. Too many versions of these games.. :p
DDS2 does need it. I confirm for US version. Presumably the others do as well. Since this revision added for JP, need US and EU. Do you need proof or any such thing?
wondering if anyone figure out what actually caused the servere crashes in vp2?
I wanted some form of confirmation, yeah.

Revision 2566

Experimental stuff, "newly discovered" flag from some old ps1 source code (so
yeah not new, just I had never seen it) which appears to indicate the status of
the spu's internal transfer queue (both dma and non-dma transfer styles).
Only applied for DMAs, and only in the new dmac code. Please tell if it breaks
anything! and also if it fixes anything!
How do you enable the new dmac code or is it already?
I tried adding #define ENABLE_NEW_IOPDMA_SPU2 to global.h
but now i get an error when attemtping to load a game.
(thread:EE Core) SPU2 plugin failed to open. Your computer may have insufficient resources, or incompatible hardware/drivers.
User-canceled plugin configuration; Plugins not loaded!
What am I doing incorrectly?
I suspect what you want to do is go into PS2Edefs.h, uncomment the defines for both ENABLE_NEW_IOPDMA & ENABLE_NEW_IOPDMA_SPU2, and then recompile both spu2-x and pcsx2...
ah cool don't know my way around the code very well hah..
Whoops I had written part of a reply for it... then opened a diff url in the same tab and forgot it :P
Only thing I noticed so far is with it turned on in places I would get sound speeding up or slowing down I get sound skipping instead. It's really short quick skips.
It also looks like gameplay skips some too. It does a little as well with it off and the sound slowing and speeding but it seems much more noticeable with it on. This is on FFXII if that matters.

Revision 2567

Added some saved-state code for newVif.
Not in effect yet cuz there seems to be a minor bug in the current saved-state
versioning system. (GetVersion() is not correctly returning the loaded-state's
version when loading a saved state)

Revision 2568

Do the same thing for the Sif savestate code.
Just so you know, I'm about to completely break all savestates, because (oops!) I forgot to ever actually *SAVE* the savestate version to the savestate files when I rewrote the new savestate format.
So if you want to make a lot of breaking changes, now's a good time! :p
All right, time to scour the code for changes I wanted to make, then. Should I bother with using GetVersion(), or is it not going to be able to detect the old version?
Actually, think most of the spots I wanted to change already are changed.
Admittedly, there were a few variables I'd been thinking about turning to bools, but I think I'll leave them be for now...

Revision 2569

See last commit, only for ipu.

Revision 2570

Some more CRC's for GSdx and altered speedhacks descriptions.
Thanks, but it's still missing the US and EU DDS2 CRCs. US is D382C164. I don't have EU to tell you that one.
The new descriptions are good. They show even more that speedhacks can be the source of some bugs and lower compatibility.
I should include a metric in PCSX2 to count the total number of "skipped cycles" when speedhacks are enabled. hehe

Revision 2571

Implemented the handlers for channel 8 (dev9) in the new iop dmac. No plugins
support the changes yet so don't enable it.

Revision 2572

"Fix" dev9null to allow the new iop dmac stuff. It's null, so it has no other
purpose than to check if the plugin loads correctly. Which it does.

Revision 2573

Various IPU & logging stuff.

Revision 2574

ZeroSpu2: Add some placeholders for new iop dma code.
I'll need to add the irq changes for new dma in too. I already did them, I just forgot to bring them back in before committing... :(

Revision 2575

Forgot this in the last commit.
Ummm I am having a missing runtimes message in SPUX2 XA Audio?

Revision 2576

Moved some stuff around, removed some unnecessary code, added some comments. No
functional changes.
Will need updating the linux build files.

Revision 2577

Whoops missed a file. Another small refactoring too.
Nice, now it compiles.

Revision 2578

Fix Linux builds.

Revision 2579

I'm an idiot. No comments.

Revision 2580

Forgot some people might want to run pcsx2 WITHOUT my new dmac enabled.

Revision 2581

Not my day. Reverted the last change and reimplemented it in a cleaner way.

Revision 2582

So yeah, an idiot. Everything i coded the other day was bugged, and somehow i
didn't realize it before commiting.
At some days you just can't win. Don't take it hard.
yes, you failed.....but you got to understand sometimes ppl are just useless. ;)
keep up the good work.
Wow gigaherz, you always miss something ;), check your ealier commit ;)
+1 for last fix anyway =)

Revision 2583

- Add basic savestate support
Hm... there could be problems with calling SetDmaUpdateTarget(10000);
if the update was already set up in the iop counters stuff, then calling this in the middle of a dma operation will delay the update, killing the timings for that dma (and any other active dmas at the time, obviously).
We could put the update timer into the IopDmaChannels struct, then recover it with the rest of the state.

Revision 2584

- Fix SPR interrupts to a delay of 4 cycles always. Makes sure they're handled
(Fixes Obscure2 and Alone in the Dark FMV.)
- One more CRC :p
Haha, finally got that last CRC in. Thanks Rama.
Very well. finished interruptions. needs fix aceleration hack for sw rend threads and 3d internal res.
yay, thanks again for fixes in games rama.
i hope rama, that you can find the humor in danrlei's posts. ;)
speed hack for the software render? no I don't think it needs that, since it's got of the fastest I've seen up till now (sometimes faster than hardware)
software will only become faster if u have a crappy card like mine [9500gt and below] or if the game is broken graphically or slow as hell on Hardware mode like tales of legendia[works only on software mode, hardware is like a slug carrying the whole world on its back slow] and haunting ground [has weird line like yellow overlay on hardware but looks alright on software]
bottom line software is more accurate but hardware is the fastest
No problems. Software is good in something games. thanks for explanation shibato.

Revision 2585

Vif - Cleanups/refactoring

Revision 2586

Enable the SIO_INLINE_IRQS define, to free some load from the IOP event handler.
With all those double-thrown interrupts in the event handler, this direct calling is probably the better choice anyway.
Tha's why I did it originally. I used to run with it enabled forever. Dunno why I never bothered to enable it in svn.

Revision 2587

SSSPSX: Slight change to analog stick zero position, at rama1's suggestion.
Zero should be 0x7F instead of 0x80. Untested, as I don't use the plugin and am
rather lazy.
The change corrects the buggy axis issue in PSX Emulators when using early dual analogue / shock games such as FF8. This same fix should correct the behavior in several other games that have been reported on emuforums to have incorrect direction behavior in psx emulators.
There has been no instances of breaking other titles from testing in both pcsx-r and pcsx2
Great, glad to hear it. Wasn't aware the behavior actually broke anything, or I would have added to SSSPSX back when I added it to LilyPad.
Actually, the range is 0 to 255. Implying the center point is 127.5. The range of a signed byte is -128 to 127...

Revision 2588

ZeroSPU2: Various cleanups, refactors, and general mucking about with code.
i just found out something i'm using r2586 pcsx2-WX and i noticed that if you change a plugin and click apply the options in the memcard menu activate and you can check/uncheck memcards there.
Shouldn't the memcard menu stay disabled because its W.I.P.
Sorry for the offtopic.
Cannot build this revision of ZeroSPU2 in VS2008 SP1, but previous ZeroSPU2-r2575 can be built in it.
in zerospu2.h go to line 243 and from there change the if and else statements to have returns in them, the set below those have errors as well i think, just add the return before the line and it should work.

Revision 2589

LilyPad: Fix for testing rumble breaking test button. Jake was the one who
broke it, not me. Honest. Should fix issue 531 .

Revision 2590

LilyPad: Oops...Forgot to copy two lines. Don't think they're really needed,
but can't hurt.

Revision 2591

LilyPad: Yet another minor change to window hook cleanup that probably isn't
really needed. "LilyHaxxor" property wasn't always being removed.

Revision 2592

Fix for my last commit.
I´m using the latest rev off pcsx2 and I tried playing Fatal Frame2 but the game crashes when I try to play a new game, can someone fix this? I´ve used all plugins tried turning of the speedhacks as well but still no luck. For more info please watch this video http://www.youtube.com/watch?v=8r7cMJRIuS4 thanks in advance

Revision 2593

Committing some God Of War patches by Prafull that skip certain parts of FMVs
allowing you to get past certain hangs in the game, making the game playable
Note: best to play the game with patches OFF until you reach the FMV's that
cause the hangings since most FMV's work fine.
cotton, you'll be hero of a lot of ppl with this commit, thank you. :)
Aehhhhhhhhhhh ate que enfim !!!!!!!!!
This patch will get around the "White Screen of Death" hang right before the final boss battle at the end of the game. However, I've noticed that it also turns off all FMV after this battle, including the end movie, which really defeats the purpose of getting there to begin with. So, does anyone know if there's a way to turn the patch off AFTER the spot it would normally hang? That would be extremely helpful.
how bout savestate save after getting around the "White Screen of Death" and then close turn off patches and load ur savestate cant test dont have this game
is it for Pal or NTSC?
are they working in the new gui?
in pal version don't work the white screen of dead present
Patches work in the new GUI. Just enable them (System > Enable patches).
There are like 30 versions of that game, all with a different CRC.
If it doesn't work, you have one that doesn't match the patch. Simple.
ok i'am spanish a play in spanish my version of game is god of war (dvd9) SCES 531.33
CDVD.KEY = B3,69,71,38,6D,E4,05
loadElfCRC(cdrom0:\SCES_531.33;1) = FB0E6D72
Patch found!
if I could say a working version and had Spanish, I would appreciate
Sorry for my bad english (I change mi score to neutral ok)
Patch found! << That means there is a patch beeing used.
However, it's CRC doesn't match with the ones uploaded here.
Find your patch in the patches folder (FB0E6D72.pnach), and add this line yourelf:
I added the line but don't run :S
gametitle=God Of War [SCES 53133] (E) comment=patch by Zefon // Skips parts of FMV's allowing you to get past some freezes/hangs patch=0,EE,00276a14,word,00000000
gametitle=God Of War [SCES 53133] (E)
comment=patch by Zefon
// Skips parts of FMV's allowing you to get past some freezes/hangs
but don't run :S help pleasse
nobody help me
"Comment by [email protected], Today (4 hours ago)
nobody help me"
probably because they dont know/dont want to write, just be patient, if someone dont come, then you're screwed, so it is life.
This is NOT a support forum. Google code comments are meant for discussing about the commit, potential bugs it has and other comments about it. NOT for asking for help. For that, use the forum: http://forums.pcsx2.net/index.php
Further comments like that will be deleted
Hi! I've probably found a workaround to this problem. I've been able to go through the white screen of death and play the game smoothly to the end without applying those patches.
I've made some code changes which fix hangs in FMVs and appears not to break any other games, but may need some more testing.
Index: pcsx2/IPU/IPU.cpp
--- pcsx2/IPU/IPU.cpp (revision 2593)
+++ pcsx2/IPU/IPU.cpp (working copy)
@@ -830,11 +834,14 @@
- if (!ipuFDEC(ipuRegs->cmd.DATA))
- {
- hwIntcIrq(INTC_IPU);
- return;
+ try{
+ if (!ipuFDEC(ipuRegs->cmd.DATA))
+ {
+ hwIntcIrq(INTC_IPU);
+ return;
+ }
+ catch(std::exception&) {/* empty */}
ipuRegs->cmd.BUSY = 0;
ipuRegs->topbusy = 0;
@@ -1414,6 +1424,7 @@
if ((ipu1dma->chcr.MOD == NORMAL_MODE) && (ipu1dma->qwc == 0))
//Console.WriteLn("ipu1 normal empty qwc?");
+ throw std::exception();
return totalqwc;
@@ -1558,7 +1569,10 @@
__forceinline void dmaIPU1() // toIPU
+ try {
+ }
+ catch(std::exception&) {/* empty */}
if (ipuRegs->ctrl.BUSY) IPUWorker();
@ ksi3zyc: You would make my YEAR with that commit, assuming it doesn't break anything else. Being over a year old, this is one of the oldest unresolved issues:
Please commit - would love to see it! Thanks!

Revision 2594

- Added a hack that changes how alpha is handled.
This can be used to fix stuff like too bright blending, bad effect leftovers or
"ghost layers".
Enable via ini > UserHacks_AlphaHack = 1
doesn't fix Wild Arms 4 should this have fixed it?
the screen gets bright and corrupted whenever there is a light source (i.e the sun in the intro or when near a save point)
should we make a list of games that will need this hack cant test anything right now cuz im in the province right now and Im using my crappy LAPPY to at least connect to the net
yes a list would be nice
Some games I know it helps:
God of War, Silent Hill Origins, Valkyrie Profile 2, Radiata Stories,
Shadow of the Colossus, Ghost Rider.
Nice Hack, kills fog in GoW almost withour other bugs, and does it much more carefuly than gameskipdraw
Any idea if this works for front mission 5?
front mission 5 is already fixed with gamefix_skipdraw=2
tested the new alphahack , now in dx9 hw mode the scene with a lot of smoke did not drop the frame count ! good work! thanks
will this fix the weird white lines on the wall's on rouge galaxy this is one of the best fix ever hope you keep making progress like this RAMA
rama rama~ dup du~ du~ du~ dup
Hey Rama, you mentioned Shadow of the colossus, but I don't see how this fix helps.
I see that the overbloom is still the same, and the shadows that wait for you when you wake up are not there any more. Am I doin' something wrong?
The bloom is reduced here. It looks very "normal" now to me :p
Even if it's done in a hackish way - it is still wonderful to have those games fixed ;P
Thanks rama.
Thanks for the answer, so I must be doing something dumb.
Here the bloom is only reduced when not in native resolution, and with half pixel offset turned off. The lighting seems to be directed towards the left, and in general it seems to respond a bit late to the camera movements. Also, the shadows of the former colossi that surround you when awaking are garbled.
I've been trying to figure out what could be leading to this, making a clean pcsx2 and testing settings.. Maybe you have some suggestions?
No, it's what I got. This is just a hack after all :p
Oh, I see! Nothing to worry about then. =D
Thanks for your work, keep it up.
Still can't get SH Origins to work... do you still need to have the patch enabled? Also i added the line "UserHacks_AlphaHack=1" to gsdx .ini, is that what i am suposed to do??
rama, is there any way to reduce only the fog by this hack in GoW2 and left the other posteffects?
game fixes. +1 now we only need issues fixing. ;)
could someone please tell me how to enable this?? what .ini do i add "UserHacks_AlphaHack = 1" to??

Revision 2595

Commit for backup/history purposes. Tried to make "Run ELF file" load the elf
through pcsx2hostfs_ldr.elf so that elfs would have host: readily available, but
it does not appear to work.
The code is disabled by default.
It semi works :)
Just need to find out why most elfs crash it.
But anyway, it lets ULE 4.40 boot!
Something seems to have broken .elfs for me. I cant get codebreaker to load anymore. I dont know exactly if this is the cause, but im running on 2606.
If you are on Linux, you might try r2613. The elf filename for pcsx2hostfs_ldr.elf was hardcoded in Elfheader in uppercase, but the elf files name itself is in lowercase.
That's fine for an operating system that isn't case sensitive like Windows, but no good for Linux.
Nope im on win7x64
The codebreaker program loads, but stops at the point where it usually reads the memory card for the code list (right at the beginning)
Worth checking. Must be two different issues, then...
Found roughtly where it stops happening. I replaced only the pcsx2 files when looking. Using old uploaded files i nailed it to between svn 2518 and 2528. It works fine in 2518 and stops at 2528

Revision 2596

The "highload" version of ps2link seems to work fine for our purposes.
So this commit enables the new pcsx2hostfs driver :)
err, what is this drive and what it does? what will be the benefits of it? what games will be affected? ;)
Many homebrew applications are designed to be loaded through naplink/pukklink/ps2link. Those homebrew applications sometimes expect files to be located in a host: device (or host0: ), and so they oculdn't be run in pcsx2 using "Run ELF". pcsx2hostfs is an IOP driver which communicates with pcsx2 directly, to implement this "host" filesystem, allowing many of those homebrew applications to load and run.
i understand, thank you for your explanation gigaherz.

Revision 2597

Linux compilation fix.
In linux all configured again. You can recomended plugin gsdx version ?

Revision 2598

Added a check for NOPs in the eerec. Seems like "SLL" and "NOP" share the same
opcode table entry :p

Revision 2599

Fix back up CMake.
Missed one or two lines in FindCg. I'll get them later...

Revision 2600

- Added an interrupt call on a special register write, which mimics peops spu2
This lets Silent Hill Origins get further when booting up.
Note that it's not complete and hackish, need someone with spu2 experience to
make it right :p
- Also added various logging stuff
happy 2600!!
Nice ;)

Revision 2601

- Don't delay the adma irq callbacks, call them directly.
Should finally fix all those sound dropouts that only happened with this plugin
Is this for new dma or just for plugin?
Does it fix GoW 1/2 sound loops?
Tested no it doesn't damn (
please can you take a look on these loops in GoW woth SPU2-X it's an old issue
This is only for the old dma. An equivalent fix for the new dma is coming soon.

Revision 2602

- Ok, that interrupt commit in r2600 was silly. The "special register write" is
a simple set audio to max volume. We don't interrupt those :p
- Make the adma interrupts happen early, as in the previous commit for old dmac.
all work and no play for RAMA today huh nice keep at it
would this make SPU2-x better than zerospu2 or is it still game dependent like warriors orochi 1/2 has sound loop on voices on zerospu2 while SPU2-x plays it perfect while on some games zerospu2 works great while SPU2-x sucks and a bit slower [3-6 fps slower than zerospu2]
sometimes i seriously think that we should pay you guys... then I think again ... I have no money...
Very well. Spu2 stay better here, but zerospu2 ignores voices in game, and is more fast. And other question where you download this latest corretions.
um download it compile it yourself or try emuCR I think the owner that site compiles the latest revs every now and then

Revision 2603

Vif1: Rewrote a lot of stuff, lets see if this fixes or breaks anything.
I put static on them for the moment, but you'll probably want to get rid of one or the other copy of vifFlush & vuExecMicro and put some externs in...
So far only one game I tested changes status.
The ever broken "Def Jam Fight for NY", which seems to run into every VIF hack we have.
It's now breaking a bit earlier, with a dma assertion.
All the other games I tested behave the same. Good work :)
I'll try some more games later, but the SMT games are working fine so far.
smal glitches on front mission 5 , and it seams to broke the performance advace we have had with the last alpha hack (on scene with a lot of smoke)
Then i try to exit from Pcsx2 r2604 emulator crash with error message
Module: SPU2-X.dll - cause to crash emulator.
OK, Persona 4 froze for me two times now, what never happened before. So I think I can blame this change for it.

Revision 2604

Fix up last commit for Linux.
i plan to remove vif_commands.cpp completely after i get the code working for vif0 and a little more testing, which is why the functions were duplicated ;p
Makes sense. Gcc just occasionally gets a little chapped at duplicate function names, which is why I needed static on them. Then I noticed they were exactly the same...
Just make sure you don't make changes to one of the two sets without modifying the other 'till the duplicates are gone, though. :)

Revision 2605

disabled my last commit's code for now since i'm not going to have time to fix
the bugs for a while...

Revision 2606

- Finally made some user hacks available in the configuration dialog.
There are no warnings yet, and I don't like the placement either, but that'll
have to wait.
Could msaa also be added?
Yea. Sooner or later, but yeah :p
please add to 0.96 interface thanks
I'd rather not. There were some issues with it.
This commit disables an automatic hack that was always enabled by default.
Some games will look worse now when the skipdraw hack is disabled ( = 0).
>_< but 0.97 Still not stable enough,so please add.
He said no so please stop.
sorry about that...
- Speedracers now look good (Skip=6) no more strange colors :)
are there descriptions in each hack RAMA

Revision 2607

- Added multi sample anti aliasing options to the gui. Remember those aren't
tested much, and we have reports of memory leaking with it enabled. Those could
be outdated by now though.
- Removed the "enable output merger blur effect option", since I can't imagine
anyone wanting to enable it anyway. :p
- Cropped one more pixel on the final output image, should fix some issues with
msaa enabled.
you on fire today huh ramapcsx2? ;)
Needed to get this done. I hate GUI work :p
Hmm antialiasing?
Alot of people want this for there games and such but I can't ever understand why they don't just force it with the driver...
I mean look at my notes for the nv stuff: (sorry for the spam dude...)
;Direct3D & OpenGL AntiAliasing Level
;[aa_default, gamma_correct_aa, prevent_cpl_aa, transparency_aa]
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,00,00 ;Disabled - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,01,00 ;Disabled - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,11,00 ;Disabled - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,00,40 ;Disabled - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,10,40 ;Disabled - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,00,10 ;Disabled - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,01,10 ;Disabled - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,11,10 ;Disabled - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,00,50 ;Disabled - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,00,00,10,50 ;Disabled - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,00,00 ;2X - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,01,00 ;2X - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,11,00 ;2X - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,00,40 ;2X - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,10,40 ;2X - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,00,10 ;2X - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,01,10 ;2X - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,11,10 ;2X - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,00,50 ;2X - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0e,00,10,50 ;2X - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,00,00 ;2X Quincunx - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,01,00 ;2X Quincunx - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,11,00 ;2X Quincunx - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,00,40 ;2X Quincunx - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,10,40 ;2X Quincunx - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,00,10 ;2X Quincunx - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,01,10 ;2X Quincunx - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,11,10 ;2X Quincunx - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,00,50 ;2X Quincunx - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,0f,00,10,50 ;2X Quincunx - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,00,00 ;4X - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,01,00 ;4X - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,11,00 ;4X - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,00,40 ;4X - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,10,40 ;4X - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,00,10 ;4X - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,01,10 ;4X - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,11,10 ;4X - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,00,50 ;4X - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,10,00,10,50 ;4X - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,00,00 ;4X 9 Tap Gaussian - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,01,00 ;4X 9 Tap Gaussian - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,11,00 ;4X 9 Tap Gaussian - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,00,40 ;4X 9 Tap Gaussian - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,10,40 ;4X 9 Tap Gaussian - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,00,10 ;4X 9 Tap Gaussian - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,01,10 ;4X 9 Tap Gaussian - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,11,10 ;4X 9 Tap Gaussian - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,00,50 ;4X 9 Tap Gaussian - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,12,00,10,50 ;4X 9 Tap Gaussian - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,00,00 ;4X S - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,01,00 ;4X S - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,11,00 ;4X S - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,00,40 ;4X S - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,10,40 ;4X S - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,00,10 ;4X S - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,01,10 ;4X S - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,11,10 ;4X S - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,00,50 ;4X S - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,13,00,10,50 ;4X S - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,00,00 ;6X S - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,01,00 ;6X S - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,11,00 ;6X S - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,00,40 ;6X S - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,10,40 ;6X S - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,00,10 ;6X S - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,01,10 ;6X S - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,11,10 ;6X S - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,00,50 ;6X S - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,17,00,10,50 ;6X S - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,00,00 ;8X S - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,01,00 ;8X S - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,11,00 ;8X S - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,00,40 ;8X S - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,10,40 ;8X S - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,00,10 ;8X S - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,01,10 ;8X S - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,11,10 ;8X S - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,00,50 ;8X S - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,18,00,10,50 ;8X S - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,00,00 ;16X - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,01,00 ;16X - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,11,00 ;16X - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,00,40 ;16X - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,10,40 ;16X - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,00,10 ;16X - Forced
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,01,10 ;16X - Forced, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,11,10 ;16X - Forced, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,00,50 ;16X - Forced, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,1a,00,10,50 ;16X - Forced, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,??,00,00,00 ;32X S - Application Controlled
;HKR,,D3DOGL_70835937, %REG_BINARY%,??,00,01,00 ;32X S - Application Controlled, MultiSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,??,00,11,00 ;32X S - Application Controlled, MultiSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,??,00,00,40 ;32X S - Application Controlled, SuperSampling Transparency AntiAliasing
;HKR,,D3DOGL_70835937, %REG_BINARY%,??,00,10,40 ;32X S - Application Controlled, SuperSampling Transparency AntiAliasing, Gamma Corrected AntiAliasing
There's like 3 or 4 more settings for aa in the nv drivers for other things too, but whatevers.
As you might beable to tell I could care less about app support lol...
I haven't actually tried any rev since 2425.
I've been waiting for the changes to stabilize a bit.
To the point.
What I would like is support for running iso's form the cmd line, and maybe for changing setting ini files from it too (gsdx and the emu).
Here's an example of what I've been doing with mame lately (slowly starting to setup my game collection...):
These are shortcuts...
H:\Emulation\Arcade\MAME\mame.exe kinst -rp "H:\Emulation\Arcade\ROMs\Nintendo\Ultra 64"
And one more for good measure.
"H:\Emulation\Arcade\ROMs\Taito\Type X2\BlazBlue Continuum Shift\typex_loader.exe" game.exe
I use the quotes to ensure it works with spaces.
The cmd tail length ability in shortcuts seems to surpase that of dos, not 100% sure though.
But so far I haven't had any trouble.
If I could do this with pcsx2 on a per game basis it would make my day :D.
Thanks for reading even if you don't want add support for cmd baised iso loading.
And thanks again for working on ps2 emulation :).
Scratch my head, I can't edit my post lol, left some of the 32x stuff in there, thaught I didn't select that portion, put half of it in there anyways.
Ohwell :\.
Though totally unrelated, I can tell you that Jake.Stine has been asking for input for commandline support for ages (There's a thread on the forums for it).
I'll pass your request to him.
I myself could care less about command line support though :p
Also, driver forced Anti Aliasing still needs GSdx to be AA "aware" (which it is since like 500 revs).
Otherwise it would do exactly nothing (which was the case for many years :p )-
At least the 2x AA caused a glitch for me in Persona 4 NTSC. I made a screenshot: http://img694.imageshack.us/img694/3066/hwaaglitch.png
The glitch can be seen on the stairs and the floor, this never happened before. 16x seemed to be fine in this area though. But I didn't test much until now^^.
Thanks for this function, I eagerly waited for this.
Nice, Anti-Alaising options. I guess I will be able to make use of Nvidia's new card which I'm getting when it's released in pcsx2.
@NEOA: Cool. You know that's what I've been looking for a REALLY long time - All the DWORD AA Values without the need for Nhancer! Thanks!. Got the rest? ;-)

Revision 2608

- Found out that the blur detection filter was busted for some time now.
It worked by chance, due to the pixel crop hack.
Disabled that hack now and made PCSX2's GS frame handle that functionality
This is a somewhat nicer method, although users of 4:3 and 16:9 aspect ratios
might get flickering pixels on the borders again.
I'll see if I can think of something for those cases, should there be demand for

Revision 2609

- Hide the hacks from users, unless "allowHacks" is written to the GSdx.ini

Revision 2610

Fixed a bug in my vif transfer rewrite that was causing problems in gt4, so re-
enabling the code.

Revision 2611

- Disabling the "pitch conversion" again. Don't ask. :p
god of war 1-2 broken graphics in gsdx r26xx series.
gsdx r2594 is ok for the games.

Revision 2612

Set vif0 to use the new vif transfer code...

Revision 2613

Filenames are case sensitive in Linux.
This was breaking loading elf files on Linux.
Yes they are. Xp allows to write upper or lover case files, but they would overwrite them with file with different case. Linux preserves files with different cases.
Exactly. In this case, if you tried to open an elf file in Linux, it would try to load PCSX2HOSTFS_LDR.ELF first, and since the only elf file included in the bin file is pcsx2hostfs_ldr.elf, it'd crash....

Revision 2614

Add an enable game fixes checkbox that behaves the same as the enable speed
hacks checkbox, for ui consistancy. (Defaults to off, so if you are currently
using game fixes, you'll need to go in and check it.)
A few other minor changes crept in as well.
(And the minor changes to ZeroGS are mainly from ZZOgl, incidentally.)

Revision 2615

Committing an IPU fix by ksi3zyc.
This takes care of an IPU hang in Suikoden5! Oh, and God of War. :p
Thanks for this one, ksi3zyc!
Cool one
Great job, tested God of War PAL version and white screen after power acquisition worked fine (at least for the first) :)
Will test for possible regressions.
Ok, so far this is known to fix God of War, Suikoden 5 and Grandia 3.
Really nice fix :)
Woo hoo! +9001!
can it fix other games with this kind of hangs?
Well, ...good to see that it works for you, considering how simple it is. Maybe my next fix will be more sophisticated:)
To devs: Keep going and never forget about comments! ;)
Please Mortal kombat shaolin monks fix
Thank you
yeah confirmed grandia 3 doesn't hang in cutscenes anymore O.o great!!!
good job guys))
People we are more interested in what BROKE (if anything) so please check for that. Or more fixed games, but more importantly regressions
The only way this commit could actually fix anything, is if it's workign around compiler/pgo/pch bugs.
4 line-by-line comments
line 437:
437: static int g_ipu_dma_error = 0;
Ok, we have a variable
line 834:
834: g_ipu_dma_error = 0; // if g_ipu_dma_error is set, then continue processing. Fixes GoWs white screens of death.
Set the variable to 0, always.
line 835:
835: if (!ipuFDEC(ipuRegs->cmd.DATA) && !g_ipu_dma_error)
Now enter the if "only when it's zero", but it's always zero!
line 1423:
1423: g_ipu_dma_error = -1; // saves an error of the ipu1 DMA.
It gets assigned, but the value isn't used anywhere.
Heh, ipuFDEC(ipuRegs->cmd.DATA) is calling various stuff, and at some point it gets to the other code, setting g_ipu_dma_error :p
Ugh wait that's horrible ... it's using function side-effects to assign the value before it returns, and then compare it? It's probably not even "safe" to assume it will work.
btw for clarity I'd suggest making the code something like:
if (!ipuFDEC(ipuRegs->cmd.DATA)) {
if (!g_ipu_dma_error) {
with two separate conditions, so that it's certain that the order of evaluation isn't somehow reversed during optimizations.
unless someone takes the time to make sure the C standards force the compiler to keep the order in such cases.
for the first time in these years, completed god of war. thankx people (ksi3zyc especially), one small request to rama could you plz commit with this patch for a more STABLE legacy gui
We are no longer working on the legacy GUI. That's why it's called legacy.
@ gigaherz:
The C standard does force compilers to fully evaluate the first expression of a && binop before starting the second. (Think about what would happen with short-circuit evaluation if this were not the case)
oh right, I totally forgot about that. I still don't like that piece of code... hate side-effects.

Revision 2616

Hack at spu2-x until it compiles in Linux, and is usable as a null plugin. (No,
no sound yet, or configuration dialogs. It's a step in the right direction,
And yes, those added files are empty. I just mainly felt, after getting it to this point, that I should commit before working more on it.
You'll also notice things like that I'm not testing for SSE2 in Linux. I just figure getting it working is a priority, and getting it fully functional can come later.

Revision 2617

Clean up the last commit a bit.

Revision 2618

Spu2-X: And we have sound in Linux! (Uses PortAudio; Absolutely no configuration
right now. Not even in an ini file.)
We can now up the number of usable spu plugins in Linux by one. Though it's still hacked together right now. Only tested in the opening of Ar Tonilico 2 & Mana Khemia, so it could very well only work in Gust games, for all I know. ^_^
And yes, I told it to default to PortAudio, and gave absolutely no way of changing that. That can be messed with later. The only choices in the Linux port would be PortAudio, Alsa, and Null, anyways, and I'd probably have to mess with it to get the second working.
Congrats on that.
You've also gained compatibility with this :)
What about OSS later on?
Good work in any way :) *thumbs up*
Possible. I recall OSS not sounding as good in ZeroSPU2, and that's what it'd be based on, but we'll see. I went with PortAudio initially because it was already working in Windows. ^_^
Alright :)
I can see that as a good call with portaudio anyways :)
I am probably suffering from a slight bias as i use OSS on my Arch-Linux system, since some version of alsa had trouble with my internal sound.
And then there is, what might be a placebo effect, OSS seeming to sound just a tad crisper. But that is probably only in my mind :)
As long as there is sound in anyway i suppose - keep the good work up Arcum :)
Admittedly, I use Alsa on my system, so it could be an issue with the oss compatibility layers on my system. I might add it in anyways; it really depends on how difficult it winds up being to add it, which I'll judge from adding Alsa...
First thing I'm going to concentrate on is getting configuration working in an ini file, though. Main reason why that isn't working right now is that the windows version uses Windows apis for it. Not sure if I'll just use what the other plugins are using, or use wxwidgets apis yet. We'll see.

Revision 2619

- Fixed the resource issue I had, so the new options are now also available in
the old config dialog.
- Added some code that hides the hack options completely when they're disabled.
By Bositman :p
+1 for bositmans coding expertise ;)
Finally Thanks

Revision 2620

- Added a configurable reverb volume boost, sounds nice in some games :)
yeah at least what i was looking for thanks emm ramp? hehe ^^

Revision 2621

Mimic old GSdx behavior (skipping all depth textures with a skip value of 1), to
avoid floods of bug reports that games are broken, when the user hasn't found
the skiphack yet. (God of War, sigh..)
kongrat for this fix ramp, it is nice u r on firah with game fixes ;)
first ram now ramp? and I'd not call it a "fix"
can the skiphack be disabled now or is it forced on 1?
It's forced to 1, as in all previous versions of GSdx.
This is actually a good thing, 'cause processing depth textures would break games anyway.
If the user sets a custom skipdraw number, that one will be used.
Ok i got it ill set it to 0 then cause if its 1 some dialog boxes dissapear in one of my games

Revision 2622

- Deleted old vif transfer code.
- Deleted Vif_Commands.cpp
- Added Vif_Transfer.cpp
OMG in this version god of war PAL (DVD9)
CDVD.KEY = B3,69,71,38,6D,E4,05
Don't white screen of death
The issue in this version is fixed
yeah was fixed in r2615
continuem melhorando

Revision 2623

Update Linux project files.
Semi Of-rev-topic: THat CMakeLists.txt file is awesomely tidy/neat to my eyes :)
On-Rev-Topic: Thanks for updating to the vif_transfer.cpp :)

Revision 2624

Increasing mVU0 maximum running time. Fixes most SPS in Silver Surfer.

Revision 2625

Adjust last commit a bit, and made sVU do the same thing.

Revision 2626

microVU: removed some macros making the code more readable...

Revision 2627

microVU: Finally added proper pipeline state saving/resuming on early exits.
Might fix some picky vu0 games...
I just tried this build last night, been some time since I've updated it.
Soul caliber is still working and so do many pof my other games.
The probs I notcied were gui baised probs mostly, other then that stuff that were probs before in emulation.
Under settings, MemoryCards, this entier section is greyed out.
Under Settings, GS, Open Windows Settings, The aspect ratio is still here and within the gs plugin it's self, there should not be 2 of them I belive...
In the gsdx plugin, frames to skip setting, is greyed out and has no value.
Other then that, my speed is half that it was before, I will have to find another compile, the ones at:
Just plain suck..., I saw one baised in south america somewhere on the net a while ago though, I will have to find it again and try the plugin.
I wonder why the diff in compilier makes up 2x the speed though...
I was asked this before, the spam of the console/log of "gifMFIFOInterrupt
" comes form the game Tekkan Tag.
I know for a fact that native res is incorrect.
Only soft renderer gets it right.
I can prove this if need be in the future.
Not a major concern right now since it seems so hard to fix.
Other then that no probs, I've only gotten the emu to crash once from the gui.
That was while I typed this and I have no clue how :\.
I'de compile it myself,still a have a problem though where vc is not compatible with my win2k3 and now my win7.
I'm not going to fix that, there's a reason.
I canuse gcc though to compile the latest mame, but I don't it's so easy to compile pcsx2 that way, I mean it was meant for linux, not win32 gcc, it's never is easy...
So I'm stuck testiing someon else's compile.
I know it's from the compilier because when the dev here shared his test compile it was 2x faster.
I'm gonna try this one:
Ok, tried that seems like a tiny bit worse.
I was confused abotu the abou the disable fram elimiter and now I got it disabled finally.
tried the test plugins I had from a while ago and they run about the same.
The speed is ok, but it's defently slower then 2425 or whatever it was I was on last.
Not a big deal though, it might be 2% diff or something.

Revision 2628

VU interpreters/recompilers: Started working on a way where we can run the VU's
based on how much time has actually passed, instead of constant fixed cycles.
Currently still using the fixed-cycle method... so should behave the same as

Revision 2629

SIF does status communication as well, which we detected as null transfers.
Not interrupting on that seems to be bad for a couple games.
This commit should fix Persona3 again.
(The Eternal Poison problem is something else, will have to look at it more.)

Revision 2630

Spu2-x: Hack in some ini file support for Linux.
I'm sure I'll end up straightening this out at some point, but at the moment, it works, and that was what I was concerned with.
Incidentally, the reason for all that stuff in there about getting the old wxConfigBase, and setting it back is in there so it doesn't start messing up pcsx2.ini. That uses wxFileConfig as well... :)
(In coding this, I managed to have the entire contents of pcsx2.ini get appended to Spu2-x's ini file. It was entertaining...)

Revision 2631

Delete sVU macro mode code (was obsolete and got broken somewhere along the
Some more vu changes (no functional changes yet)

Revision 2632

microVU: minor changes...
Somewhere between this revision and r2628 DBZ Budokai 3 (NTSC) stopped working and started crashing. Plugins from r2650 worked with r2628 core.
Please see issue 595 for additional info.

Revision 2633

Remove iCOP2 from the Linux build files.

Revision 2634

Fix "Mademan", which triggers an Assert in it's code on bootup.
Handling this via our exception handler crashed the game.

Revision 2635

- Continue voice processing even if the voice is off, as per SPU2 specs.
This fixes Fatal Frame 2 (and likely 3 as well). A really long standing bug we
had :)
Note that this extra processing is a slowdown, expect -10% fps in menus.
We'll think of an optimization for this.
Also, forgot to mention this:
Code by pseudonym. Thanks a bunch! :)
Oh,my god! Does FF2 and FF3 work now?
I don't know what should I say......
say thanks, game fixes ftw.
Also fixes the software pearl that is "Disney Princess: Enchanted Journey" :p
WOW!!! :) It took so many years for these games to be fixed. Thanks alot!
10x very much
This fixes F1 05 (formula 1 2005) as well. This game now works in pcsx2 for the first time ever.
Can anyone confirm this fixes the slowdown in SSX on Tour when doing a monster trick? (more details here: http://forums.pcsx2.net/thread-5695-post-99456.html#pid99456 ).
I would like to verify (and play) - but compiling is very hard for me :)

Revision 2636

- Pseudonym made the voice free-run system a bit faster. Also fixes some odd
sound skips introduced with the first version of this fix.

Revision 2637

Runaway voices should be faster with this. My previous ideas for optimising
this were based on the principles that there's no way a game could rely on this
feature other than requiring interrupts to fire when the muted voice hits the
interrupt address. Well... Fatal Frame 2 proved me wrong. SPU2 interrupts
aren't even enabled. I have no idea what it's doing.
Rougher granularity than this probably doesn't break anything, this is the
finest that should have observable effects.
Not running voices when they're in a special sentinel block may also help
games... but not Fatal Frame 2. It resets the loop register constantly. I
really have no idea what it's playing at and it's driving me crazy.
Fatal Frame 3 looks to be able to enter gameplay finally!! Haven't played that far into it, BUT this is huge!! Thanks so much to everyone for getting this working!
So are you saying FF2 does not work? Will there be problems in FF3? I guess that's my job huh? :)
No, Fatal Frame 2 works, I just have no idea why. No specific idea anyway, it's presumably reading the registers... for some reason.
id like to add kinetica now works again
also ddr supernova title screen fixed still some eors though in other areas
also buffy vampire slayer now works

Revision 2638

I guess I should've tried this from the beginning. Actually, I did, but it
wasn't quite the same code and rama benchmarked it instead of me. Other
optimisations are irrelevant, speed is now within measuring error of r2634, I
feel like an idiot.
Very nice, only seeing a minor drop now compared to r2634 :)
is this for zerospu2 or spu2-x
"noob detected" :P look at the modified link "/trunk/plugins/SPU2-X/ "
You know the answer
Could someone look at sound loops problem in GoW 1,2 in SPU2-X, this plugin produces perfect sound for all my games except GoWs
fatal frame 2 (JPN version) will hang after the opening CG.
USA version works well:P
fatal frame 3 both version work well.

Revision 2639

Minor VU changes... (get interpreter and sVU0 to be able to break execution
after X cycles, instead of by hardcoded cycles...)

Revision 2640

spu2-x: Implement most of the configuration dialog in Linux (minus logging and
I implemented the dialog in Gtk+ by hand. This was mainly because I didn't want to introduce a dependency on that old version of Glade that generates source code that we used to use for all the plugins.
I thought about using wxWidgets, but I'm still iffy on how to do dialogs with it in plugins rather then the main program, and I'm more familiar with Gtk+.
The Advanced dialog I simply haven't gotten around to.
The same goes for the debug one, with the additional catch that my current ini write routines will write to wxStrings & wstrings, but not wchars, so I'll have to fiddle with that as well before I can even do the ini section...
Gtk+ is nice anyways, and is "mostly" installed on many systems anyways (i believe) :)

Revision 2641

spu2-x: It'd help if we actually check the value of OutputModules.
Forgot that I put a placeholder value in there.
Of course, the Output Module combo box is a hack right now anyways. I'll fix it when there are more modules.

Revision 2642

Enabled some code that lets VU0 run more in sync with the EE.
This is working nicely. In ExecuteBlockJIT(), set the running time lower for a big speedup in Ratchet and Clank :p
Ratchet, you say... What about those textures' corruption?..

Revision 2643

Add VUmicro.cpp to the Linux build systems.

Revision 2644

spu2-x: Advanced dialog box implemented in Linux.
It may only have one module, and not have any debug options, but this should be a fairly usable plugin in Linux now.
Aside from all the bugs I'm sure are lurking around, anyways. ^_^

Revision 2645

spu2-x: Start working on the debug settings a bit.

Revision 2646

spu2-x: In Linux, add a Debug dialog. Add frames to the other dialogs.

Revision 2647

- Feal87 found and fixed a problem with shadows in Silent Hill Origins. Might
help other games as well.
- Bit better fix for GoW's "wall of fog" problem. Patch originally from
Thanks guys :p
i say: please, give access as devs to those guys already! :)
I say: Please, leave project management to us already! :)
Thank God my 3 hours weren't wasted.
nice ;)
nice job)
GoW2 fog is still presented, but anyway great job
>> help other games as well.
Does not helps Castlevania games, but oh well... I knew that it wouldn't ;<
Sounds VERY promising !!!=)
What about Shadow of the Collosus and Front mission series ?:)
can you please add scaler options x5 and x6 pleaseeee?cause i have hardware for more than 4x for some games,and the scaler is bette than changing internal resolution
it seems this change makes trouble with Star Ocean 3???

Revision 2648

- Scene menu and pause screen transitions in FFX, FFX-2 and Grandia3 get
invalidated (fixed) again.
No idea why Gabest ever turned that fix off. Coded by Feal87.
Great!! finally fixed pause screen problem in ffx.
I hope to fix black texture bug in FFX.
If my memory isn't failing on me, he turned that off because, at the time, it was causing some texture problems in FFX and FFX-2 I think. So he just turned that off because it was less painful to see a broken pause screen than to see messed up textures everywhere.
Whoops tracked it bad before:
Xenosaga II FMVs broken in r2468, either just black screen or sometimes the FMV is skipping instead.
Can you give a dump to test against?
Tested, it isn't reproducible. FMV works fine here. (start FMV from Xenosaga II)
Are you sure aren't using any speedhack?
Testing again, let's see if i can get something out of it.
we fixed with rama in the latest revision, check it.
Yep, working fine in r2660 again.

Revision 2649

- Some corrections to dx9 hw mode, by Feal87.
Please add to GSState.cpp for GOW2 fix
else if(fi.FBP == 0x00100 && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMT8 && ((fi.TZTST == 2 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 1 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 3 && fi.FBMSK == 0xFF000000)))
skip = 1; // wall of fog NTSC
else if(fi.FBP == 0x02100 && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMT8 && ((fi.TZTST == 2 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 1 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 3 && fi.FBMSK == 0xFF000000)))
skip = 1; // wall of fog PAL
It will reduce fog in gow2
Xenosaga II FMVs broken, either just black screen or sometimes the FMV is skipping instead.
Are you sure THIS is the revision broking it, have you tried all the revision and traced it to this?
Cause this release does NOT change anything in functionality, it just optimize (or in some case increase) the area cleared in depth/stencil (not used by FMVs) and avoid using point filter in texture copying. :P
You are right I didn't test correctly, it's r2648. Forgot that one was GSdx too my bad.

Revision 2650

Comment by ramapcsx2:
In ExecuteBlockJIT(), set the running time lower for a big speedup in Ratchet
and Clank :p
That's strange...
Ratchet and Clank (NTSC), main menu
r2643 - 39fps
r2650 - 19fps
Ah, sorry... I've had VU cycle stealing = 1
There's no difference (19fps) if that's off...
God OF war 2 dvd9 pal don't run
Don't pass the playstation logo
GetElfName) Detected PS2 Disc = cdrom0:\SCES_542.06;1
(GetElfName) Software version = 1.00
(GetElfName) Disc region type = PAL
CDVD.KEY = B4,69,71,38,F5,EC,05
(IsoFS) Block 0x10: Primary partition info.
(GetElfName) Detected PS2 Disc = cdrom0:\SCES_542.06;1
(GetElfName) Software version = 1.00
(GetElfName) Disc region type = PAL
CDVD.KEY = B4,69,71,38,F5,00,01
God of War 2 USA (dvd9) boots fine here. Can anyone confirm GoW 2 PAL is broken?
one friend tell me some error in this version
'One friend' isn't reliable enough.
you need I upload a one screen an the console register?
No, I need someone reliable to cross check it and you're not him.
ok sorry to no reliable but a help in god of war when in one version gsdx are borken .
i tested ratchet and clank myself.
20fps before this revision, 27fps after.
that's a 35% speedup w/o speedhacks.
both gow1 and gow2 games don't even use VU0 on their intros, so its impossible that this revision effects them.
so if you do have a problem its not by this revision.
GoW1 ntsc - after selecting New GAme.. games crash after few seconds of playing the first movie.
GoW2 ntsc - working nice
ahh and tekken 5 ntsc stop workin... dono maybe its me coz i get MS runtime error on r2650 (After namco logo and that funny old 3d lading screen), but its working on r1888 so not sure whats the reason.
Tested God of war 1 NTSC and Tekken 5 NTSC both working fine. Stop reporting crap.
GoW1 (ntsc)and Gow2(ntsc) work fine here.
Tekken 5 NTSC works perfectly here dunno about the God of War games (don't have them yet)
All I got is gow and gow2 on original us ntsc disks.
I'm getting a new drive this next month, this one is just not reliable enough (old 2x rom or something).
If you guys want me to check a specific thingy that I do have on my hd right now, let me know, here's a list of what I got:
Xenosaga episode 1 reloaded, jap ntsc
Xs epi 2, jap ntsc
Xs epi 3, jap ntsc
Capcom vs snk 2 ntsc
codebreaker v10
gtasa us ntsc
grandia 2 extreme us ntsc
soul caliber 2 ntsc
sfex3 us ntsc
tekken tag ntsc
xenosaga 1, us ntsc
xs2, us ntsc
xs3, us ntsc
I've got more but they are on original disk's still right now.
I don't have any pal disks, I don't think, none of the actual games are pal anyways.
God of war 2 pal works fine. I'm using the 2.00 PAL bios.
(IsoFS) Block 0x10: Primary partition info.
(GetElfName) Detected PS2 Disc = cdrom0:\SCES_542.06;1
(GetElfName) Software version = 1.00
(GetElfName) Disc region type = PAL
CDVD.KEY = B4,69,71,38,F5,EC,05
(IsoFS) Block 0x10: Primary partition info.
Initializing Elf: 2124212 bytes
loadElfCRC(cdrom0:\SCES_542.06;1) = 44A8A22A
(IsoFS) Block 0x10: Primary partition info.
(GetElfName) Detected PS2 Disc = cdrom0:\SCES_542.06;1
(GetElfName) Software version = 1.00
(GetElfName) Disc region type = PAL
CDVD.KEY = B4,69,71,38,F5,00,01

Revision 2651

GSdx: fix a crash on Intel GM 910/915 and other PS 2.0-only cards, by removing a
reference to VPOS (which is PS3.0 only).
Jake, I missed you. :)
pcsx2 requires multiple render targets in opengl plugin? Intel gma 950 have some problems . It runs only 1 buffer. Maybe gallium intel driver helps someday,but it's unstable at moment.
can you please add scaler options x5 and x6 pleaseeee?cause i have hardware for more than 4x for some games,and the scaler is bette than changing internal resolution

Revision 2652

First commit as developer in the team. :P
Committed the first revision of the new GSDX Dump Viewer. At the moment it
contains the PThreads dll inside the build process and output to the bin
directory of the tools directory till I know for sure I can output the exe
directly into pcsx2 bin directory. :P
Report here or on the issue tracker any bug you find. (in this application) :P
Welcome to the team. :)
welcome feal87
Is it possible to run these .net program in gnu linux using mono?
Obviously no, please remember that gsdx is windows only.
How would that work?
I forgot
But mono runs on windows too . Is it possible to use mono instead of .net Framework.
Mono support is veery good . It actually supports net 3 classes.
Ah, Mono on windows yes. I didn't try it, if you can try it. It should work fine.
welcome to the team buddy, nice the devs saw my wish. :)

Revision 2653

Added some SVN ignore to clear up the commit page. :P

Revision 2654

Minor vif/vu changes...

Revision 2655

Fixed again the GS dump creation in the new GUI by adding 2 new accelerator to
the global table.
Now the snapshots and gs dumps are correctly created in the snaps folder (or the
one choose by the user). (GSDX was missing a check to understand if the
directory passed by pcsx2 was or not slashed at the end. :P)

Revision 2656

Now GSDX does not close the hosting application on the end of the GS Dump
reproduction. (A dll shouldn't try to close the hosting application. That's bad
Fixed a little problem with the last commit. (I was pointing out of the string
instead of the end. :P)
can you please add scaler option 5x and 6x?cause some of us including me have hardware that can take advantage of it,also the new ati video cars and the following nvidia cards have lots of ram and will easily do well with it
actually its cards not cars [just kidding !!!! :p]
I dont use the scaler too much since I have a crappy card the 9500gt so I play most of the times on native and dont have the money to get a better card so its no use for but it will be handy in the future if the prices ever drop
that is
You wouldn't be able to see any difference.
If you really want to kill your card, add msaa.
i know some games support well 4x aa some games dont even suport 2x with a 3x scaler,so its better to use a high scaler than using msaa (that is why i wanna use a higher scaler like 5x or 6x better performance and graphics than using 3x scaler wth a 4x aa) .btw why if using msaa in dx9 when switching from 4x to 8x or 16x all the screen becomes more clearer better graphics,its like it uses supersampling antialiasing...like all the screen has HD resolutioon(so to speak),in dx10 i cant get that kind of clarity (with 8x or 16 it scales how it supposed to,like a multisampler not a supersampler antialiasing)

Revision 2657

Fixed the capture video functionality of GSDX. Let's hope I'll make bositman
happy with this. :D
It was a series of very old bug.
1) After the passage to the WX system the CoInitialize was not anymore called on
the GS thread causing the Filter enumeration on DirectShow to fail.
2) After the "MFC Free" commit of Gabest, if you selected the Uncompressed
functionality a nullpointer exception trigger (as there is no filter for that)
3) Strangely there was no code path to connect the source with the mux when
Uncompressed was selected (without an encoder in the middle). I added it.
Test it and report problem. I already know there is a problem with the closing
of the sound recording, but that's a PCSX2 problem, not a GSDX one.

Revision 2658

Gsdx : Added scaler x5 and x6 (the maximum available, no other values are
possible as the limit for texture/render target is 4096x4096 (probably some new
card/API support more, but we need compatibility) and with x6 we are at
3840x3072). It is VERY gpu intensive, use it with extreme care, it may give
heavy slowdown. :P
Seriously, who notices any difference after x4? It's not even visible...not to mention it should kill any graphics card on a half demanding game.
Still, people have to show off their e-penis and since it wasn't such a hassle, thumbs up XD
I just hope n00bs don't start setting it to 6x and come back whining 'OMGZ WHY GAME ONLY GIVE 2 FPS AND GFX CARD BURN?? :(((('
Agreed, the mem card load screen of persona 3 gives roughly 10 FPS here with x6, but hey. :P
10x very much appreciated
there are games that have different (and lower) native resoultions than 640x512 (thats the highest i found)..for example 512 x 448,512 x 512,640 x 448..so adding the5x-6x option was a good thing for those games with lower native resolutions
Made for native resolution of 640x512.
i have a question : does this scaler option autodetect the original native resolution of a game (if its other than 640x512 : 512 x 448,512 x 512,640 x 448) or its made to multiply all games from a native resolution of 640x512?
ok so for games that have resolution of 512 x 448,512 x 512,640 x 448 its better to manually set the multiplier ? since the scaler doesnt multiply them correctly
Nope, it does "detect" them correctly, as in it multiplies all the stuff just fine.
What feal meant was the final output render target, which we (sadly) cannot dynamically switch to yet.
So instead of using the resolution the game renders to, we arbitrary use 640*512, hoping all games fit into that RT. Some don't, we know that :/
Definitely breaks a few games when you go above x4. Melty Blood Actress Again has its infamous "Lines" on the sprites when you go up to x5 or x6.
It is noticeably less at x5, and disappears fully at x4 and under.
4096x4096 render target, x6 scaling. Warning: Bloody huge image. (3840x2688, 1.96 MB) http://darkpulse.project2612.org/pcsx2/error/gsdx_20100302231059.png
Note the "lines" across both sprites, but it's more visible on Riesbyfe on the left as opposed to Nrvnqsr on the right. It's visible on both if you look though.
The same thing happens if you attempted texture filtering on the sprites (i.e; ticked box and not solid), or activating Antialiasing at 2xAA or higher.
I know there's no guarantee on solving any of these, but sprite smoothing working would be especially nice, because as you can see, Melty Blood's sprites are so jaggy they can poke a hole in your screen. :p
For the record: Game's native rez is 640x448. Therefore, this probably has to do with the x5/x6 scalers currently "assuming" the game runs at 640x512 and thus not playing so nice if they don't. If that's the case, hopefully you guys can soon dynamically detect the rez and make it fully work. :)

Revision 2659

SPU2-X : The safe_delete on the WaveDump wasn't "safe" enough and was causing
the error on end of wav dump.
Test it and tell me if it works fine now. (F12 is the key for start-end)
you're on a rampage today:D
the magic of being on fire.......... ;)
feal87, you wouldnt mind to make a click on issues tab, wouldnt you? ;)
yeah, i thought about doing that, but tomorrow. For today i'm over. :P
good to see that, keep on firah! ;)
btw, if you are really interested in that, start with the easy ones. ;)

Revision 2660

- The earlier FFX fix killed fmv in Xenosaga 2. Hacked up a bit more now! :p
- Few more CRC (Note: I will look at GoW 2 once I have time and dumps, not
For the supreme HACK!!!
Hax0r the world!!11
Thanks for bothering to look GoW 2.
Sorry for my bad English
About Gow2 please add this code as a fog fix
else if(fi.FBP == 0x00100 && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMT8 && ((fi.TZTST == 2 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 1 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 3 && fi.FBMSK == 0xFF000000)))
skip = 1; // wall of fog NTSC
else if(fi.FBP == 0x02100 && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMT8 && ((fi.TZTST == 2 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 1 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 3 && fi.FBMSK == 0xFF000000)))
skip = 1; // wall of fog PAL
i love this.
wow even the great gabest did reach this level of improvement[or maybe he did
but I did not notice it hehe!!!!] TNX and more power RAMA
did not reach
sorry typing so fast did not notice "not" was missing :p
Guys, please don't forget who coded GSdx in the first place.
The PCSX2 team just adds small fixes (and a ton of more hacks, sadly) here and there, but the meat of it is from Gabest's years of work.
sorry If sounded like a jerk on a few of my comments I just joking around and I know gabest is the God that gave birth to GSDX [still joking around]and is the reason why the emu has reach the level it has reached!!
and I wish goodluck!!! to what ever he's currently doing right now, who knows maybe he's in Hawaii enjoying the beach, sand and the girls right about now and has a great big surprise for us when he gets back
So where is gabest anyway?
Gabest is everywhere

Revision 2661

Vif - Partially removed some hack. Comment if this breaks anything.
Looking good so far. Tested some of the pickier games i got, no issues yet.

Revision 2662

SPU2-X: Improved fix for wave recoding crashes; using thread-safe mutex locks.

Revision 2663

mVU: work-in-progress cache and memory model rewrite.
currently not 100% stable, this is mainly a backup before i do more big

Revision 2664

GSDumpGUI : Added the "clear log on start" and the "select the last line of the
log whenever new data arrive".

Revision 2665

GSDumpGUI : Added CRC detection for dumps. Added some renderer override
functionality for fast testing. (F2 to shuffle)

Revision 2666

Big optimization, reorganization of the code to be more coherent.
Now the Bitmap of "No Image" is created once.
Fixed crash on opening the bitmap.
Now the program change the GSDX window icon, with its own.
optimization rules forever, keep them coming. :D
I like it =D

Revision 2667

Change header to match the function declaration. (and fix Linux)
i hate function prototypes! xD
its probably the thing i hate most about c++!
i made a bunch of changes and thought i changed the prototypes but i still missed one it seems.
Wow, msvc let's you get away with anything! :p
Yeah, function prototypes are a pain. I know how easy it is to miss things like this.
And I'm constantly amazed what msvc lets people get away with. As opposed to gcc, which will quibble at little things you should be able to get away with occasionally. It would be nice if msvc'd at least warn about things like this, though.
Oh, and my ability to check commits in Windows is limited at the moment, btw, because I switched from Windows 7 RC 1 (32 bit) to Windows 7 final (64 bit) earlier today, and I haven't gotten to jumping through all the hoops to get Visual C++ 2008 ready to compile pcsx2 with plugins yet.
(Though thanks to our compilation guide, it should be a lot easier then last time I did it...)

Revision 2668

microVU: Finished most of the caching/memory model rewrite (whats left is mostly
just tweaking/cleanup...), mVU should be back to stable status now afaik.
With this rewrite, God of War 1/2 games don't constantly recompile and play a
lot more smoother on mVU than they did before; this was one of my goals with the
rewrite as i always hated how crappy GoW ran with mVU.
Also a nice big noticeable change, pcsx2's memory footprint was reduced by
around ~170 mb! microVU was taking up a lot of memory because it made GoW games
run better to have a huge rec-cache with the old model, but now thats not needed
Nice update, although I dont see the speed boost I was hoping to see (if any at all).Trying GoW 2.
Looking good!
Ok, this turned out very nice :D
Reduced memory usage by a lot really.
Speed up in 5 games I tested, making mVU exactly as fast as sVU in those (flag hack enabled).
GoW indeed plays smooth now.
Good work, cotton :)
Looks good.
__mVUdumpProgram in microVU_Log.inl needs to be tweaked, though, because it's still using mVU->prog.prog[progIndex].data[i] in 2 places, and it should be using list...
thanks for pointing that out arcum42, didn't notice.
i'll fix it tomorrow :p
Dragon Quest 5 runs smoother. Nice.

Revision 2669

Nothing much. Just breaking all old savestates.
(Had to be done, many recent code changes require new state handling, and it was
too broken.)
rama, go for it, change everything if needed. :)

Revision 2670

Color vu0 console logs differently than vu1.

Revision 2671

Major Savestate fix: Added version info, which never got added (oops) after I
redid the savestate system for 0.9.7. Breaks all old savestates, but should be
the last backward compat breakage for quite a while.
* Tons of small UI bugfixes and cosmetic improvements, mostly to startup,
first-time running, and resetting options.
* Added a third startup option for specifying a custom "default location" for
PCSX2 files, in addition to user docs and CWD.
* Implemented some more += operators for adding wxWidgets objects to sizers
(pxStretchSpacer mainly).
* Preliminary re-implementation of memory cards panels -- still non-functional,
so it's disabled.
Jake, dont mind about compatibility, if it prevents progress, just destroy it. ;)
Seems this one automatically changed my inis folder to my Documents folder but it's been running on the "pcsx2\inis" folder until now.
Nevermind, first time wizard was just running from the wrong part can still change it to the original location.
i am unable to change the memory card path even changing the ini. Also the gsdx hack switch seams broken

Revision 2672

Changing a Freeze to Thaw: Running VIFcodes saved XMM regs but never restored
them. ;)
my bad :p

Revision 2673

Removed legacy savestate code (should have done it in my prev commits, but
forgot). Made the PCSX2 startup a bit smarter and less assumptive about the
UserDocs folder.
mmm at every run it ask for the place where to put the inis file

Revision 2674

... oops! Fixes startup prompts.
By looking at the changes,this problem is probably here...why the settings MUST be in My Documents and not in the inis folder inside the emulator folder like before?
PCSX2 just ignores the pcsx2.ini inside the emu folder and if I delete the folder inside My Documents,I have to reconfigure pcsx2 again.
It's fixed already. We put them in my documents because if you check the forum there are HUNDREDS of people having permission problems with PCSX2 and Vista / Win 7 because they don't have rights to write in the Program Files folder or any folder they put PCSX2 on, due to UAC.
Use config ---> clear all settings.
Everything will be fixed.
Pcsx2 use registry entry along with the pcsx2.ini file
No it's not using registry for that...completely forgot about the file inside appdata(that's why it's constantly creating a folder inside My Documents...because of the settings there)

Revision 2675

microVU: fixed microProgram log dump code, and minor cleanups...

Revision 2676

Quick Linux compilation fixes.
Well, not the Vif_Transfer.cpp change. I just noticed that wasn't being used.

Revision 2677

Get spu2-x working in Linux again.
As a note, I'm aware some of the options of the Release build are wrong. I'll be correcting them later, but some are needed as debug to work around a dependency issue at the moment.

Revision 2678

lets add deque to precompiled header :)
Cotton, please can you look at this
i've got console log on Crash of The Titans< this game has random crashes and hangs with, i don't know it's about microVu or Vif, but here's the log
lots of Unknown comands and Opcodes
autoran: looks like vif.
might be that revision that broke it, can you test r2660 and r2661 and find out?
No it's not 2660 or 2661, i don't know which rev i have this issue before, i tested it on 2530 and the same result
autoran, i have found that going back revisions or even just updating revisions i need to clean rebuild for everything to work correctly. Try that if you have not already.
hey guys im not sure if this is the right place to post it, but i have some problems with gran turismo 4 ntsc. Game runs awsome since r1888 (after some long break with using emu i download this rev and try to run gt4 once again)but there are some random hangs, not that game crashes but its like freez for 1sec or even less (both video and sound stops) although game is runing pritty nice, game play is smoth i dont even need to use speedhacks etc.. Anw i try running gt on every possible rev i can download since 2588 and its always the same, game runs nice even more with the new revs but still there are those damn annoying freezes. i try all possible combinations of emu confiuguration with/whitout speedhacks, runing game from dvd, iso, and its always the same.
pc spec:
q6600 @ 3.1ghz, 4gb ram, gf9500gt @ 730/450, i got Vista 32bit with dx11, all runtimes libs etc are up to date...
So any ideas ? or maybe my cpu is just to slow ?
PS: soz for bad english, and if its not place to write such things ;p
PS2: i rly appreciate ur job on the emu, u guys doing imba job, lov u all :* ;p
not the right place to post about gran turismo, you should post on the forums at pcsx2.net ;)
It's a GSdx thing though, for some reason it allocates 500mb or more for a sec, then gets rid of them again..
Rheikon, not in my case

Revision 2679

- Fixed the clipping audio in many game's sound effects by using a saturating XA

Revision 2680

mVU: minor cleanups...
please do a fix for onimusha 4 menus
Please stop adding totally irrelevant comments to random revisions. This isn't a request forum or something like that.

Revision 2681

- Fix Silent Hill Origins, Max Payne 2 and a few others. This was a really old
bug :p
and what was that really old bug? :P
This fixes Amplitude's infinite-loading-hyperspace-tunnel issue; it now goes in game! I guess you can finally mark Issue 360 as solved :)
I haven't gotten to test how 100% the game itself is yet though, hopefully I can do that later tonight.
This is a fantastic fix! Add to the games bootable (and playable) for the first time the burnout 3 dominator and takedown ones!
The few others which rama din't mention in first post include 7 sins, burnout revenge, madagascar and Black.
+1 for making burnout bootable :D
Wow all these games fixed (and who knows how many others) and a personal favorite, Burnout too? Fix of the year XD
Great job rama!
Jake helped :p
Wow, sounds like this fixed a lot of games. This deserves my first ever +1
Good job with burnout, keep it up !!! :)
Also skipdraw=3 -> gets rid of the destroyed motion blur effect in all burnouts
nice one!!!!!!!!!!
Call of Duty Finest Hour is also playable now
tyvm for fixing burnout!
fully awesomeness!!!this fixes my silent hill origins and black but still no go for ghost rider?
remember not all games are fixed by this change.
there is no magic button to make all games playable but they'll get fixed eventually.
Actually I can confirm that Ghost rider is also fixed. :P
oh my,this fixes burnout too,man this is the fix of the year !!
thanks rama n jakey for the fix.
@ prafull.arjeria - Ghost Rider SLES_543.17 and still not booting (i dont have the patch to pass he boot)
Holy crap. Burnouts are now playable (albeit with major graphics errors - the striping pattern ingame makes it very difficult to see anything). Still, awesome job!
Burnout 3 is playable for me. To get rid of the stripes you need skipdraw=3 in GSdx as andutrache said earlier. You also need the mVU flag hack to give you about +20 fps :P Still on a Core 2 Duo 3,6 I get ~40-55 fps
@ rama- thank you so much, this turned my crappy day into a good one. just booted SH:Origins 2 secs ago and it is an absolute joy to see it get passed the loading screen ;
"just booted SH:Origins 2 secs ago and it is an absolute joy to see it get passed the loading screen"
^ Same for me actually. I've seen the game dieing there way too often :p
i get full fps even without the mvu flag hack, but that depends on how powerful the PC is.
pcsx2guide (and andutrache): Thanks for the tip - missed that the first time around. As for the mVU flag hack, I've tried setting it and NOT setting it, but it makes no difference - same speed. Is this something related to the new GUI?
+10, a gargantuan thank you to rama and jake. I have been waiting to play burnout 3 and revenge for years now.
Cottonvibes - microVU is great, speedwise is almost on par with superVU, but really more compatible (in burnout 3 I see graphics coruption with superVU, but with microVU there isn't)
Btw, setting skipdraw=3 solves the gsdx stripe problem, but (in my case) setting it to 3 makes the curve indicators ingame disspear, and usually I have no idea which route is correct. However skipdraw=4 solves the missing indicators problem, so I recommend setting 4 for the best experience!
Of course skipdraw is a hack that causes the sky not to render (except for the sun), but hey it's almost perfect and there is still work to be done.
Thanks again guys!
ghost rider SLUS_21306 NTSC works with this!use skipdraw 2
for me with skipdraw=3 the indicators show but with skipdraw=4 the indicators are missing XD
Well whatever
if this fixes the infinite training loading screen how do I implement this fix?
^^^^ for Amplitude

Revision 2682

Some various things.
Fixed Console spam in MGS3, made the MTGS startup timeout longer (as per
request), re-added the vtlb miss warnings.

Revision 2683

--i was looking out of the window, and noticed the cast is missing. So i added
it !
Actually, this wasn't really needed. I'l blame the crappy brown weather, k ?
Lol :p
this fixes all my games.
I've never +1 before, but this deserves it!
Phailed in comeback commit :P
LOOOOL look at the pc when trying to fix something XD not out of the window
also: *smile* @cotton
wb doctor raziel, i hope u r sucessfull in your commit next time. :P
the operation was successful, but the patient died anyway.
Too bad the nick is actually dark raziel XD
its just drk, kthx

Revision 2684

Fix 64 bit writes to counters registers, which would corrupt memory (used mostly
only by homebrews, since technically the counters are 32 bit regs only, and
aren't *supposed* to be accessed via 64 bit writes).
Yep, ps2sdk has them type defined as (unsigned long*), and so does uLaunchElf, which uses its own timer code. Pretty much every current and old ps2 homebrew that use timers from either source will use 64-bit writes and reads on the registers.
I've got a major update for ps2sdk that will fix the defines in a day or two, but it's probably too late in the game for 99% of the homebrew out there.
Very nice, ragnarok.
You seem to be involved in ps2dev, so please share any information about bad emulator behavior that you might know of.
We'd really appreciate that :)
About the only thing that comes to mind is that snapshots made with zzogl/zerogs on Linux are in BGR format instead of RGB, but I don't really mind as it just turns red roses into blue roses, heh. It looks fine in realtime.
I submitted a patch a while back to add CPUTimer interrupt support for issue 482, which rearranged the timey-whimey things around a bit so they were all updated together. It's not really useful for anything and might affect the speed of certain things, if they depend on cpu ticks as a rough timer. It's better off left as a patch or implemented using a compile-time flag to enable/disable the changes.
Mostly everything I test runs well, and if it doesn't, it's usually due to a logic error. I run a pretty old modded version of revision 1972, right now, waiting for the new GUI to be stable and ATI's hamster in a wheel to update fglrx so I can update my Arch distro so I can't really test new changes, :/.
Already looking at your patch. This is the stuff we can really use well.
Thanks a bunch :p

Revision 2685

Remove some obsolete MMX/VM code bits from the EErec.

Revision 2686

- More fixes to "slides". The few games using them should sound mostly correct
Battle sound effects in FFX are still incorrect.
Sound pitch is too high.
goood work!

Revision 2687

- Hopefully hacked up the "wall of fog" problem in GoW2. Used an adapted patch
from ZeroGravity.

Revision 2688

Avoid using MMX in EErec operations where possible. This bypasses hangs in Bully
for now.
The problem needs to be fixed more thoroughly in the future, by rewriting
several opcodes.
You can find all changed locations via the comment "// Fixme: MMX problem".
workable for now.
lemme know when you start the rewrites on the opcodes, i'll watch the svn for changes to test.

Revision 2689

Killed the R5900 register sign extension flag (upper 32 bits of the lower 64) as
it's checked in literally one instruction and probably isn't exactly well
tested. Tracking this is important to liveness optimisations (and the fact that
it's never checked may be why liveness isn't really helping), but I noticed it
was being set erroneously in some places and decided it's best just to scrap it.

Revision 2690

Started rewriting arithmetic instructions because of the disgusting state of the
code, went mad and stripped the main case for the liveness optimisation from the
recompiler. It would be very nice if it worked and wasn't such a mess but it
hasn't for a long time or never did. Didn't revert the one function I rewrote,
next commit will likely be the rest of the file.
While doing this, spotted and fixed a couple of bugs with doubleword add/sub
when one operand is a constant propagated from earlier in the block and has 0 in
the upper word; the instructions weren't performing the carry/borrow in this
case. Likely doesn't fix any game.
good luck rewriting, i believe devs will thank you a lot for this since this is usually a REALLY annoying task.
@darkmonday you aren't allowed to just vote negative you ave to explain it too!!!
It is even stated right next to the nagative button "I oppose this change,AND AM WILLING TO EXPLAIN WHY"
don't worry hes the resident -1 fairy
also good luck with the rewrite
He explained why the negative. Problem is it was totally offtopic, so the comment got hidden.
Good Luck!
Rewrite is good! But then we will have to wait longer for the next beta

Revision 2691

Removed old versions of instructions with no constprop support . Nothing seems
to boot if I disable constprop now but that may indicate a recompiler bug so I'm
committing it anyway as a reminder to find it. Doesn't affect normal compiles.

Revision 2692

mVU: fixed some memleaks and fixed some rare bugs in microprogram range
Nicely done. There left only a few minor memory leaks:
1. When the app is closed a closeNewVif() function is not called. Obviously, it could be omitted but it always prints a lot of mess to the Debug window. I can't help more, because I don't know where is code that frees resources on shutdown.
2. More important memleak is in Elfheader. It eats few megabytes of memory every time the emu is rebooted. Here, simply add:
--- pcsx2/Elfheader.cpp (revision 2695)
+++ pcsx2/Elfheader.cpp (working copy)
@@ -547,6 +547,7 @@
Console.WriteLn( L"loadElfFile: %s; CRC = %8.8X", filename.c_str(), ElfCRC );
+ delete elfptr;

Revision 2693

Increase version of SPU2-X and GSdx, as enough changes have accumulated.
well you could oficially increase the version of the emulator to 0.9.7 and maybe make pcsx2.net release :P :D

Revision 2694

Rewrote the instructions in iR5900Arit.cpp.
Nothing dramatic, this doesn't seem to be measurably faster or slower and I
didn't find any more bugs in the old version.
For the effort
Keep up the good work, best emulator ever!
keep on rewriting/cleaning. ;)

Revision 2695

Quick Linux fix.
The particular line that was giving trouble was:
Gcc doesn't like a const_iterator being passed to erase.

Revision 2696

Subtle bug in iR5900Arit.cpp rewrite and a little more cleaning.

Revision 2697

GSDX: unify blending tables. No functional change, but one may be coming soon
if I can make it work.
Also, screw you, Stroustrup! You don't make me cast short to int, so don't make
me cast int to an enum! PS: arithmetic operators, you stingy bastard.
Enum is a special case (language construct), and as such it should require cast. (Of course a language without operator overloading might evade casts like this.)
There's no call for operator overloads on enums, they were fine just as they were in C.

Revision 2698

A few fixes to resets and shutdowns. Fixes a few memory leaks.
Thanks a bunch, ksi3zyc :)
Actually it is not fixed yet :)
You have added resetNewVif() calls to /pcsx2/System.cpp what seems to be a bit redundant, because it generates another memory leaks :) This time initNewVif() is executed for the first time in those resetNewVif() calls and again in (stack trace):
pcsx2-dbg.exe!dVifInit(int idx=0) Line 28
pcsx2-dbg.exe!initNewVif(int idx=0) Line 84 + 0x12 bytes
pcsx2-dbg.exe!vif0Init() Line 28 + 0xa bytes
pcsx2-dbg.exe!hwInit() Line 33
pcsx2-dbg.exe!hwReset() Line 48
pcsx2-dbg.exe!cpuReset() Line 74
pcsx2-dbg.exe!SysCoreThread::DoCpuReset() Line 266
pcsx2-dbg.exe!AppCoreThread::DoCpuReset() Line 125
pcsx2-dbg.exe!SysCoreThread::_reset_stuff_as_needed() Line 247 + 0xf bytes
pcsx2-dbg.exe!SysCoreThread::CpuInitializeMess() Line 274
pcsx2-dbg.exe!AppCoreThread::CpuInitializeMess() Line 216
* are executed /I meant to say./
And there is another piece of junk code that I found by chance :) Also, removing references to DirectDraw enables you to remove m_ddcaps variable.
--- plugins/GSdx/GSDevice9.cpp (revision 2698)
+++ plugins/GSdx/GSDevice9.cpp (working copy)
@@ -59,24 +59,6 @@
- // dd
- CComPtr<IDirectDraw7> dd;
- hr = DirectDrawCreateEx(0, (void**)&dd, IID_IDirectDraw7, 0);
- if(FAILED(hr)) return false;
- memset(&m_ddcaps, 0, sizeof(m_ddcaps));
- m_ddcaps.dwSize = sizeof(DDCAPS);
- hr = dd->GetCaps(&m_ddcaps, NULL);
- if(FAILED(hr)) return false;
- dd = NULL;
// d3d

Revision 2699

More minor bugfixes to startup/init and directory/ini junk.
256 + sApp.SysReset();
257 sApp.SysReset();
2 SysReset one after the other? :P

Revision 2700

SPU2-X: Attempt to fix Cubic Interp mode; plus some cleanups to the XA Decoder.
2700, good to see jake back in action, nice
Happy 2700th

Revision 2701

Take care of a few compiler warnings, and get rid of a bit of redundancy in the
codeblocks projects.
Omg, I did exactly the same thing just now. You were faster though, lol.
Nice to know we're thinking on the same wavelength. ^_^
Odd as it might sound, the most useful change in here for me is the one bringing Dependencies.h into Global.h at the beginning.
Without that, it defines __LINUX__, then near the end, brings in all the wx dependencies, which *also* defines __LINUX__, leading to a compiler warning in just about every file.
I've been meaning to take care of that for a while, but getting spu2-x working in Linux was a priority.
nice work.

Revision 2702

GSDX: Partial COLCLAMP support.
Fixes shadows in Ico and Shadow of the Colossus and hopefully fixes more effects
in other games.
That's pretty awesome. Real GS emulation progress :)
Hope it's not too hacky, and future work on it fixes a bit more than just sotc ;)
very nice, was thinking about replaying ico soon ;)
either way this fix is disabled by default (if so - I have no idea how to enable it) or it doesn't affect Castlevania games at all.
Sad :< Hope ruined ;<
It doesn't affect the castlevania games, but I have something in mind that should. This commit is part 1 of partial support, with part 2 it will still be partial but cover every use of the flag I know of so far.
And I did accidentally disable this with my next commit. Oops.
is shadows to dragon quest 8 will be added?
Awww. Finally someone took it to implement missing features. Hopefully, someday we'll see Ōkami in all its glory :D
ok.with this one i got NO shadows in shadow of colossus,monster house and Lord Of The Rings 3rd Age (all 3 seem to have the same shadow aspect problem).does this fix mean that i am supposed to see correct shadows or is it ok that i see no shadows at all?
anyway no shadows is better than those shadows,and in Lord Of The Rings 3rd Age with no shadows i dnt have the big gray lines on the screen anymore..i think the shadows were the cause
hope this fixe's suikoden 4's shadow problem really hated that shadows and hurt's my eye's after a few minutes of gameplay
you fixed the shadows in Wipeout Pulse with this.
Keep up the good work !!! :)
For people getting no shadows, do a full rebuild. When a shader is modified the resources aren't rebuilt because visual studio is too stupid to see that it's a dependency. I couldn't see any way to force the dependency.
Could you post a GS dump of a scene with broken shadows?
Ask if you need directions how to do it.
ok Ill try and post a link tomorrow when I get home ok RAMA!!!! Im on branch inspection right now and have been on that on the last 2 day's now Ill finally be able to get home tomorrow :p I just check out the news every now and then with my crappy lappy and how do I do it then
I waited for Shadow of the Colossus shadows to get fixed for... for... for eternity. Thank you, thank you so much for this one. :') Ah, I sound like a little girl... But I am so happy right now!!!
Now if one of you could just put an option for the old scaler hack (the one that was used up till gsdx-r2406) available, things WOULD be perfect.
So now we can choose between this new gsdx that renders the shadows correctly but produces offset errors and an older gsdx that renders the shadows incorrectly but places the offsets correctly...
Put the two togheter, please...
The gsdx scaler was never in any way perfect. We would not have touched it if it was.
Breaks Castlevania LoI graphics. Pretty much everything is black except for the character model.
Tried out the latest Gsdx and it fixed that Castlevania problem.
Well gsdx-r2406's scaler was perfect for STOC. Maybe not for all games... That's why I said that you should make an OPTION for it, so we can choose wich scler method we want to use. PLease... it was just so immaculate how the the old scaler made sotc look... it was a miricale
Finally!!! Finally!!! Great !!! When fix black eyes in Jak & Daxter?

Revision 2703

GSDX: added a couple of macros to cripple gsdx for developer use in diagnosing

Revision 2704

Sif: Check if there is anything in the fifo before reading from it, and if there
is any free space in it before writing to it. Tweak logging a bit.

Revision 2705

I'm an idiot and committed with the crippling macros uncommented, undoing the
work in r2702 and taking the software renderer down a peg.
You aren't. Everyone makes a mistakes, we are just a people, no a robots.

Revision 2706

Attempted fix to get gust games and fatal frame working w/o a gamefix hack.
I was only able to test Ar Tonelico which worked with this fix, comment if this
breaks fatal frame (or a gust game or anything else...)
Gust games seem all right, looking at them, so if anything broke it was likely Fatal Frame. Rama should be able to check...
I think you did it, cotton :)
I have Fatal Frame just throwing the usual double dma, but no engine breakup (would happen without the gamefix).
The double dma itself seems to go bad though (as it has for some time), as ingame graphics are missing.
It's a VIF1 transfer, so that makes sense.
The good thing is though that it looked this way for a while now, even with the fix enabled.
Also: Kingdom Hearts 1 still works.
Having tested AR1+2 so far no problems.
Still im testing the other gus games
Can you fix Fatal Frame 1 flickering graphics? And fatal Frame 2´s missing graphics?
Googlecode comments are NOT for requests and we don't take requests. Next time your comment gets deleted.

Revision 2707

Let's preserve XMM/MMX registers on dma functions again.
Fixes Fatal Frame 1 missing geometry.
The game should be fully working again, even without the gamefix :)
congrats! :)
the game works again and again :P
Yeah.. :p
congrats rama pc
Not very aware of the way to use this file, can someone explain me how to make a proper use of it? my intention is to fix this graphic issue on Castlevania - Curse of Darkness on pcsx2 v 0.9.6. This should be my last problem to solve in order to fully enjoy this game !

Revision 2708

Removed *.res from msvc cleanup script because it cleans *.resx too due to this:
Removed Release (no SSE specification) target for solution because I spent half
an hour trying to work out why GSDx was failing to build because of it.
The "Release" with no SSE spec gets re-added automatically by MSVC whenever we make certain solution changes, like adding, removing, or renaming certain projects belonging to the solution. I've removed it myself like 5 times.

Revision 2709

Small cleanups: Fixed a typo in HwWrite.cpp (could fix games) and removed double
system reset call.
here's what u wanted RAMA a GS dump of Suikoden 4 uploaded via mediafire
and plz could u take look a this weird overlay in devil kings 4 me it's very annoying
oh almost forgot tell me if I did something wrong cuz im using a pc here in our branch office I was just glad everything I needed was on my travel disk cuz I backed files in there so I could keep a copy just incase something happened to my pc[ripping all 30+ games took sometime and i dont wanna risk ripping them again] I used r1888 legacy
Both links point to the Suikoden 4 GS dump archive :p
Also, you may have noticed that the shadows are fixed now (or not visible like that anymore).
op's :p made a mistake and I was doing things in a hurry sorry I'll post it later and ya ill compile it later to so I could test it just got home got stuck in 4 hour traffic due to an accident and got stuck on my car

Revision 2710

Only a small commit i know, but highly frustrating for Tekken Tag players (slows
it down a bit). Im back! sort of, just getting familiar with the code again :)
welcome back:D
wb, but why this slows down tekken and what it fixes?
ahhh, it was already terribly slow even on my i7. more accurate emulation is always good though, welcome back.
always nice to see the dev number grow, good thing you have returned, now only gabest is still missing. This emulator really picked up some speed in the last year or so, we might have a fully working pcsx2 1.0 by the end of 2011 maybe!
Re [email protected]
console writes are always extremely slow. Basically he commented out a debug message.

Revision 2711

Fixed small VIF Stalling bug which caused Max Payne to crash
welcome back, ref, I miss you :P
Hope you are the 5000th commiter
"Comment by junrgao, Today (10 hours ago)
welcome back, ref, I miss you :P
Hope you are the 5000th commiter"
you arent mistaking this project with dolphin? :P
no,I didn't say dolphin.
I hope the 5000th commit will be the perfect ending for pcsx2 :P

Revision 2712

GSDx: Fixed channel masking in DX9 HW. The red and blue channels were reversed.
GSDx: Removed discards from partial colclamp support as it wasn't doing much
good and definitely won't be necessary with the next stage of support. No
significant functional change probably.
As before, please do a full rebuild of gsdx. I hate it as much as you but don't
know how to make VS smarter about this.
sudo is on firah. +1
keep it up :P
By the way, I do know that this breaks Castlevania. That is, believe it or not, a good sign.
R u sure they are inverted? Im far (even very far) from being a code guru but it seem weird as in the GSTextureFX10.cpp it is the same and also the "if(bsel.wr)" R is for Red I presume like in the FX10 file...
But like I said Im just looking at this and doing some deduction of what I see.
I'm very sure. DX9 doesn't support drawing to the same format as DX10 uses.

Revision 2713

Forgot to save before committing. Just a comment.
Wow ur doin thing's even the Great God Gabest said way back when thats impossible to do and yet ur proving him wrong my friend nice work [PLZ this is not Intended to disrespect Gabest in anyway He's the GSDX master and Creator he is like God]
I remember askin gabest back at the forums about those messe'd up shadows and he said that it was the due to DX limit or somethin and is impossible to fix and yet u manage'd to do it Way to Go !!!! now the only thing I want to happen is that dam yellow stripped overlay in Haunting Ground and that slow as hell tale's of legendia both in HW mode
It is a DX limitation and I don't blame gabest for not implementing it at all. It took me 8 months from discovering this to coming up with an idea (obvious in retrospect) for a reasonable implementation.

Revision 2714

- Moved the offset hack to CreateSource(), it can work a bit more selectively
Latest Gsdx change messed up Sky Odyssey, colors are all wrong and rainbow like. Either r2712, r2713 or r2714.
Unrelated to GSdx problem, it does say "*PCSX2*: DMA error: 0359d021" in red text then "Hackfix - NULL GIFchain" brownish text right after it when starting this game.
offset doest work anymore or the scaler is broken i dont know wich cause ghosting is back again
ok i tested it and only broke one of the games monster house-it has ghosting,in the rest of the games it works
I know it may look as not working in some cases.
But that's just when the original hack was working on the "wrong" target.
I'll have to work out something better for those games.

Revision 2715

One of these days I'll get it right. Sigh :p
heres the gs dump of devil kings just tell me if its wrong again so that ill fix it
oh RAMA suikoden 4 get's stuck at a black screen after pressing continue but play's ok on new game and indeed the game does look's ok without the shadows [like they were needed anyway heheheh :p] I used 2711 ill try compiling 2700 and see if it's still there
I cant test anymore got tired compiling 2700 to 2715 all cannot load a game in suikoden 4 after pressing x or start in continue ur stuck with a blank screen and cannot continue although tested r1888 and u can load a game pefectly so to anybody else that could test this PLZ do it
And what do most of those posts have to do with this revision specifically?
its not about this revision, me and RAMA were talking about this game a few revision's ago and I just wanted to let him know my findings about the game and indeed the shadows are fixed now or would I say ignored and is no longer being drawn but now u can no longer load a savegame cuz after pressing x or start ur just stuck with a black screen which does not happen in the r1888 but u could start a new game tho tested this without speedhacks and in a similar settings on r1888
Actually these comments are for programmers. You can say this:
Setting a pointer to null, and then deleting it? Well it has some merit in Java, but Java doesn't have delete and setting pointer to null is used for data flow and memory optimizations.
Actually it's pretty difficult to have anything else than a null pointer exception as a result of this code. Asynchronous writes to stack might change stack thus turn null into real value, as long as the thread would be interrupted (or the write would happen) at an exact position.
You might even say this: Setting pointer to null and then deleting it? Baka.
However chitchatting about GFX plugin should happen on forum, or in a section that describes an unknown/generic bug you would like to talk about.
BTW you posted a link to a file into the log about Revision: r2715, this imply the file is a result of running PCSX2 Revision: r2715.

Revision 2716

Fixed trap instructions by using the old implementation for now.
Added INT and INTO to the emitter.
what games this affects so ppl can test? ;)
Not many games are even triggering these opcodes.
"Mademan" is one game that triggers it on bootup, but it works anyway.

Revision 2717

Made resources recompile when a shader is modified, though I'm not happy with
the solution.
I'm not happy too, ;/ as it could have been done in a better way by using Custom Build Rules.
BTW, I've almost finished a rule that mocks the built-in Resource Compiler Tool and allows checking for additional dependencies. I'll send it to you, when it's finished.
"Negative", because this commit wasn't necessary at all, however... Necessity is the mother of invention. ;)
Well I think I'd be even less happy with a custom build rule where a standard one works

Revision 2718

Fixed error in blending table. Mostly white displays in Ghost Rider and Silent
Hill: Origins now display correctly. Large diff because I reformatted comments
to make it easier to verify, only rows changed are 0112 and 0210.
Added logging for blending modes that can't be handled natively.
Yay :)
Sweet, nice surprise to come home to lol. Thanks ;)
Thanks for all fix, sudonim !
Can you add checkbox for enabling and disabling postprocessing by games CRC's ? Many games now works fine with all postprocessing effects, but we have to change disks in startup in order to disable FX skipping...
I'm more in favour of deleting all the skipping checks, issues can get forgotten if they don't bother users.
Delete those checks or add simple checkbox like - "disable CRC skip = [v]"
It will be a compromise =)
Please (^_^)

Revision 2719

Removed idct_mmx.obj from the svn and updated the project to reflect the change.
The file was only available as a compiled .obj, with no sourcecode, and wasn't
used in any platform or configuration, so me & pseudonym decided it was best not
to even have it.
Left a comment in the idct.cpp file explaining it.
NO this revision does NOT affect any game, positively or negatively, at all.

Revision 2720

Minor change...
This was probably in r2716 but since I used r2720 I'm putting it here.
18Wheeler no longer says "EE Trap" in red text, it gets to the licensing screen (one before intro of games) then crashes saying SPU2-X is the culprit. This is the first time this game has done anything besides saying EE Trap, it now says "Trap exception" instead and continues. All other sound plugins crash with a Visual C++ runtime error at the same spot.
that has nothing to do with this revision
looks like you found my bug cotton :P cheers!
wait no it wasnt lol. ok so the irq is grabbed before the command is run now, didnt look in to that :p
ref: yeh i made it so that we can just set cmd to 0 when the vifcode is 'done', instead of having to AND it with 0x7f all the time (which was easy to bug xD)
...also when the vifcode isn't done you just leave it alone (keeps the i-bit and the vifcode in cmd)
then the i-bit irq is only processed when the vifcode is finished (whenever we set cmd to 0).
makes more sense :)
On that topic, in https://code.google.com/p/pcsx2/source/detail?r=2711
you replaced "runMark<idx>(data);" completely.
Is it not needed at all?
as i explained in the comment which goes with the change, i think there was a miss interpretation from the manual.
When a command has the i bit set, the command runs then an interrupt + stall occurs
if the command is MARK, only the interrupt happens.
Looks like it had been interpreted as when the interrupt happens run the MARK command ;p
tl;dr version: no its not needed :p
yeh for me the manual wasn't clear, it just says that if the next instruction is a MARK it doesn't stall, so i interpreted it as:
"if the next instruction is MARK, run the MARK command, then stall after"
the fix you did does:
"if the next instruction is MARK, run the MARK command and all other commands w/o stalling"
I wasn't sure if that was the proper behavior or not, so i implemented it the first way; guess i was wrong though xD
Close tho :P but yeh Max Payne really bitches about it lol, it just stops the game completely and prints "Invalid mark detected!", but yeh the manuals are notoriously ambiguous ;p

Revision 2721

Default VSync to off, change default Turbo to 200% and Slowmo to 50%.
how do you use slomo anyway I only know of TAB and F4
TAB seems to switch between normal and another state for me
i dont know either how to use slow mo or turbo
turbo is TAB AFAIK and F4 deactivates the limit
but slomo no idea
Thanks Rama ! Besides, there is one more thing - can you restore initial pixel offset in gsdx ? Right now gsdx can render shadows in SotC, but we can't manually set ghost effect in correct position. Please, activate this wonderful fix, that you created before :) We all miss this :'(
It was one of the earlier hacks (not fix!).
It'll break the shadows for sure.
Okay, but what about adding a checkbox for choose current scaling method, or previous in 24xx, which was perfect for games like SotC ?:)
It could really help us all (^_^)
Sorry, lemme make it clearer:
I want generally working hacks. Not worse ones that happen to work well on one or 2 games only.
What's the point of 297 checkboxes for all resolutions in all games in different scenes? :p
Okay, I understand :)
My last question (honest) :
Can you (separately from main project) compile only one different gsdx plugin with latest changes, but with previous internal scaler, for gsdx ?
We will use this exclusive plugin for our games, until gsdx scaler will be fixed in future :)

Revision 2722

This should properly fix cubic interpolation. If it seems to dull the audio,
it's because it's meant to.

Revision 2723

HIGHLY EXPERIMENTAL implementation of Hermite interpolation method.
Test at your own risk. Tension can be changed in the code.
Will it sound different from the Cubic?.. They're both polynomial... Not?..
Hermite can be "sharper" depending on the tension value used.
The one in the code is currently low, despite what the comment say.
I forgot to include a +32768 offset in the comments, so 0=lowest, 65535=highest instead of what the code says.
But neither me nor rama can tell the difference from changing the tension.
The only substantial difference is that Hermite interpolation prevents "overshoot" and always goes through actual datapoints... Difference in tension does not matter, it changes "curviness" around datapoints... It's far beyond limitation of human ear...
IMO, Catmull interpolation will be better... It's somewhat similar, but should be faster... It prevents "overshoot" too...
Never heard of it... might look at it later.
Yes, it's a subset from Hermite...

Revision 2724

More interpolators. Implemented Catmull-Rom interpolation. It's simpler than
hermite, but doesn't really sound "better" than cubic as far as I can tell.
Feel free to test them.
good job the Catmull-Rom interpolation sounds perfect(at least for me)

Revision 2725

- Altered interpolation descriptions based on testing. Also fixed slight issue
with Hermite interpolation.
Funny descriptions...
I think, the best one-word description for Linear is "Sharp"... It really sounds like that... The only method to preserve high frequencies...
Is Catmull-Rom really slower than Hermite?.. I thought opposite...
Yeah, Hermite is a tad slower. It's not measurable much anyway though :p
Also, linear doesn't sound sharp at all. In fact they all got a muffled quality to them when filtering those lq samples.
You have to think about implementing something like Creative X-Fi Crystalizer post-processing, to reconstruct missing sound... I don't know if there are any good OpenSource implementations... The only source I recall is ffdshow audio decoder... They call it Crystality... http://ffdshow-tryout.sourceforge.net/
I currently use a winamp dsp plugin for the job (jammix enhancer).
I agree though that a built-in sound spice up would be better though :p

Revision 2726

SPU2-X: Voices that have never been started have SCurrent=0, which broke the
dead voice handling. Fixing this should reduce stray interrupts and improve FPS
slightly. Apparently the interrupts affect Wizardry: Tale of The Forsaken
Land's music, but the game is quite broken anyway.
Also fixed small timing error in dead voices, probably doesn't affect any game.

Revision 2727

SPU2-X: Better version of pseudonym's bugfix.
Details: Properly initialize SCurrent in V_Core::Reset so that it need not be
checked during Dummy processing, and add some asserts to test for SCurrent
The unsaturated decoder is actually wrong in this commit, but it's unused and should be removed anyway. I'll delete it.

Revision 2728

SPU2-X: Remove unsaturated version of the XA-ADPCM decoder (unused for a while
now). As it turns out, saturation is definitely part of the spec, and some
encoders expect/rely on it.

Revision 2729

SPU2-X: Added IRQA testing to Reverb Effects Processing.

Revision 2730

SPU2-X: Optimized interpolation to use a switch-template-based lookup table.

Revision 2731

SPU2-X: Stupid typo fix.

Revision 2732

Fixed a bug in the newVif unpack dynarec with filling writes...
(was some optimization i had, but only was working correctly for skipping
Fixes half-life...
very cool , I completely forgot about the first half life for the ps2. I played it to death for PC. Good one cotton.
great, I Love Playing half life. Thanks cotton
Good job finding it :)

Revision 2733

spu2-x: Update the Linux dialog with the new interpolation options.
you typoed a 3 instead of 4 :P
Oops. At least it was in the comments... ^_^

Revision 2734

Updated the SoundTouch library to version 1.5.
It works fine and without further modifications in Windows, for SPU2-X and
Linux is untested, but hopefully also fine :p
There are quite a lot of stability and quality fixes in this update...

Revision 2735

Implemented freaky VIF Unpack operation for V2 and V3 unpacks, games such as
Lemmings and And1 Streetball require this to be determinate! Tested on the PS2
and it certainly is determinate.

Revision 2736

- A small optimization from my r2732 fix.
- Enabled some code for some questionable vifcode MARK behavior. Prints to
console if the case happens since unsure if its correct.

Revision 2737

Get SoundTouch working in Linux again.

Revision 2738

Fix for some freaky corruption caused by more than 1 GS transfer happening at
once (mostly PATH 2/3 due to data types) - Example fixed Tekken 5 Devil Mode HUD

Revision 2739

zzogl-pg: Create a local fork of ZZOgl to play with. Currently just ZZOgl 211
with name and version changes.
Just a preliminary commit. I haven't changed the names in the source code, etc...

Revision 2740

zzogl-pg: Delete a few stray files that crept in.

Revision 2741

zzogl-pg: Add a preliminary codeblocks project file.

Revision 2742

zzogl-pg: Remove old 64 bit code.

Revision 2743

Updated cotton's MARK test, the last one completely killed Max Payne, explained
why in the file.

Revision 2744

zzogl-pg: Move the transfer code to a separate file.

Revision 2745

zzogl-pg: Move a bunch of X11 stuff to a separate file.
Think that catches things up with most of the changes I'd made to ZeroGS since ZZOgl split off. Now I'll probably take a break for a bit...

Revision 2746

Small nasty loop my recent changes got me in to, fixed now :P

Revision 2747

zzogl-pg: Get it compiling in Windows. (May very well break compilation in
Linux. I'll deal with that later.)
There's probably a better way to do this. I'm better at dealing with Linux programming then Windows.

Revision 2748

zzogl-pg: Work more on separating out the windowing code.

Revision 2749

zzogl-pg: Fix Linux after my last few commits.

Revision 2750

zzogl-pg: Fix various compiler warnings, and one or two things I missed earlier.
So you now really created your own folk. Great, I was hoping that you'd do that! And as promised, I'm here testing (I'm Bright-Warrior btw^^.).
I loaded r2756, so I don't know where the issue got into your plugin, but after I compiled ZZogl-PG, it seems to fail loading for PCSX2. I made a screenhot: http://img402.imageshack.us/img402/550/zzoglpgfailedloading.png
I'm using Code::Blocks 8.02 and still gcc 4.4. Could gcc 4.4 again be a problem here?
Actually, I just updated to 4.4.2, recompiled pcsx2 & ZZOgl-pg, and tried both with Persona 4 and it worked, so it must be something other then gcc 4.4. Which really leaves me baffled where the issue is...
The code::blocks method of compiling ZZOgl was thrown together by me pretty quickly, though; you could try compiling it with the build.sh scripts.
BTW, which version of Ubuntu are you on? (I'm assuming Ubuntu from the screenshot...)
Oh, btw, my next commit will break things a bit anyways, so there's a decent chance I'll already know about issues there...
Yes, it's Ubuntu 9.10, the current version.
I downloaded the source again and noticed that this problem occures not only for ZZogl-PG, but for all the GS plugins I tried (ZeroGS, ZZogl r210, ZZogl-PG), except GSNull.
I wrote you a PM with the console outputs. I'll list the outputs for the failed script compiling of ZZogl-PG there as well...

Revision 2751

Update portaudio to the current v19 development snapshot. It contains a LOT of
changes on WASAPI.

Revision 2752

Portaudio seems to work fine as a static lib, so it seems pointless keeping yet
another dll around when it's unnecessary.

Revision 2753

GSdx: Slightly more sensible input layout handling. No functional change.

Revision 2754

GSdx: Removed DX10 support in favour of DX11. I am told that this shouldn't
affect anyone and it reduces code duplication. (DX11 was already missing some
changes in DX10, I have ported them.)
GSdx: Removed OpenGL "support". Nobody showed any interest in getting this
GSdx: Removed PS1 GPU support. pcsx2 does not use this and it is unmaintained,
likely broken, and frequently confuses intellisense.
GSDumpGUI: Use the correct export for the library name, was using the PS1
If any of the above code is needed in the future, we have this wonderful
technology called version control.
So theres no DX 10 anymore..? What about those with a DX 10 card thats still plenty powerful like the HD 4870, we're forced to DX 9 now?
This is a good sign of moving forward. I like it =D!
WOW!!! Unexpected...
Now we have to install that Platform Update pack from Microsoft...
I believe this is it: http://support.microsoft.com/kb/971512
I just wonder, can DX10 Software rendering mode be ported to DirectCompute?.. Theoretically... :)
Users with DX10 graphics cards should use the DX11 option. Unless I've been lied to, this should work just as well as DX10 used to.
So is it only DX11 in name then? As there are a good number of graphics cards that only support DX10 or 10.1 and not DX11.
It works fine with my directx 10 card. You should probably rename it Direct3D 10/11 to not confuse the masses.
good the support for not maintained things was dropped, way to go sudo.
DX11 is backwards compatible with 10/10.1, a user with DX10 may not receive full benefits, but they will at the least be able to take advantage of the better multi threaded possibilities of DX11 due to the backwards compat, without sacrificing reliability. Anyone with DX10/10.1 hardware will have no issues running DX11, it will just auto scale itself down to their feature set, except for the pipelines features that all 3 can support (such as multi thread)
dx 11 XD
Well that's good, hope it works well. Hope EmuCR updates the list soon.
You can access Dx11, Dx10 and even Dx9 hardware using D3D11. You even have Warp10 as a software fallback alternative.
Thus, considering that Dx10 mode is only for Vista+, Dx11 basically supersedes Dx10 mode. Making its replacement, quite the good idea.
And then we'll have DX11+DirectCompute option... :) One week left for nVidia GF100...
If you want a compute shader option, write it yourself. Nobody here is interested in doing it.
Fukkin hate this commit! i can't choose DX10 or DX11 on My Vista now
return DX10!!
Win 2008 - dx9 only, because Vista (and her clones) non-dx11 system. Fix it!
Stop whinning... Install Vista Service Pack 2 and then KB971512 (Platform Update) and be happy with DX11...
BTW, Microsoft will stop SP1 support very soon... So, you have to update anyway...
Fix your systems guys. Lol.
Thanks to VCS, we can delete anything we want and revert it one revison later ;)
I see. that will be one Direct3D11 option for both DX10 and DX11 video cards.
Corrects me if I was mistaken.
I liked the PSX support personally.. did it Have to be removed?
Yes, it makes compile times longer, it shared several function names with the GS ones and it confused msvc intellisense regularly.
For psx plugins use pete's. They have perfect support of all games.
nice job.
moving forward =P
Hey ! I think thats great news but i have a problem ! When I enter in plugin settings I see only DirectX9 and Null (Hardware,Software, Null) ! How can I solve it ?
Can you read sometimes?..
Install Vista Service Pack 2 and then KB971512 (Platform Update) (C) Me, several posts before
oh ! sorry XD ! thanks a lot !!
That update will speed up the games , or add visual improvement ?

Revision 2755

Work on support for Wasapi's exclusive mode. Not enabled yet.
Also lower (/8) sound out packet size. Helps the timestretcher
responsiveness and quality.
Fixed 18 Wheeler crash, went from no boot to near perfect playability <48 hours, good job.
Well sometimes it works sometimes it don't, it got ingame once for the first time ever, when it don't it crashes blaming SPU2-X.dll, still good job.
A crash in SPU2-X.dll?
This is probably a division by zero or something silly.
I could use a game dump of that :p
Ty :)

Revision 2756

Prevent the WASAPI code from trying to compile in linux/mac, and add a setting
to enable exclusive mode selection from the settings (.ini only for now)

Revision 2757

zzogl-pg: Fighting with Mem.cpp. (This probably breaks things a bit. This is
more of a 'save-my-progress' commit then anything. Basically, I'm expanding out
a bunch of tangled macros right now, and creating a bunch of repetitive code
that hopefully I'll be able to reduce afterwards. )
I figure if this doesn't work out, I can always revert Mem.cpp.
I do know of at least one glitch introduced with this revision. I'll sort it out later, though; there's a good chance that it'll go away while I'm working on this section of code anyways, and I'll track it down if it doesn't.
(Namely, I saw a graphic in Mana Khemia that was slightly messed up.)
Looking forward to seeing what you eventually do with this.

Revision 2758

zzogl-pg: More work on Mem.cpp.
Basically, I figured out why there were three versions of TransmitPitch, and wrote one version to replace them.

Revision 2759

zzogl-pg: More of what I was doing last commit.
Good luck, arcum :p
Thanks. Main issue I need to work out before I can change a bunch of this code from defines to functions is that it uses a bunch of local variables.
Which is one reason why I hate functions being done up as defines in the first place.
Oh, and if you haven't guessed, I'm not planning on touching ZeroGS in the future. I'll just keep this up to date with ZZOgl, and play with it instead...

Revision 2760

Fixed for Looney Tunes menu. Commented some Forcebreak stuff for future
reference, removed offending code from Vif0 till i can be bothered to rewrite
the DMA to be like Vif1.
Looney Tunes Acme Arsenal is now fixed.

Revision 2761

zzogl-pg: Turn all the TRANSMIT_HOSTLOCAL macros into functions.
Now I have to figure out what to do about the fact that some of the Swizzle functions are _fastcall and some aren't. I might be able to make all of them _fastcall, I suppose...
Just as a reminder to myself; there is a bug somewhere in this commit.
To test, look at the Dragon Quest 8 opening screen.

Revision 2762

zzogl-pg: Refactor a bunch of Mem.cpp stuff.
Well, this is more manageable, though I have 3 versions of several functions. I'm still trying to think of a way around that.
I suppose I could write 2 wrapper functions. I'll have to see if that slows it down...
It doesn't compile in windows.
one "</File>" to much
after resolving this there are many compile errors in mem_swizzle.h, mem.cpp
Compiling and working fine on Linux, but still only with r2707.
Hell, what's this mean (DSTPSM==PSMCT24) || (DSTPSM==PSMT8H) || (DSTPSM==PSMT4HH) || (DSTPSM==PSMT4HL)) -- why this texel formats need special handling? This 4 format's does not use all 32-byte in memory (24+8H and 24+4HH+4HL could be used on same memory block to quicker transfer), so if you plan to use write_mask on swizzle block, you could use it for this storage formats to
I was wondering about that myself, especially since it gets checked inside a for loop. (Since usually you want to keep any checks you can outside a for loop, to increase speed.)
So far I've been trying to keep the actual logic behind the code as close as possible, because my main focus has been getting it to a point where it actually can be looked at and edited easily.
As far as write_mask goes, it's worth noting that any swizzle routines that didn't have write_mask before just have the parameter now. They don't have code to handle it. (Yet, anyways.)
Basically, I standardized the parameters so that I'd be able to use function pointers to the swizzle routines.
Oh, and as far as Windows goes, I'm mainly working on this in Linux, and don't have time to test every change in Windows, so it'll occasionally break.
I will go back and fix Windows when I have time, though. (Probably between Thurs - Sat.)
Fixed compilation on Windows. It seems to be crashing on opening, though, and that may take a while to fix...

Revision 2763

- Removed the opengl dependencies and unused /Delayload .dll.
Should make it possible to compile it without any of the glew / nvidia cg / opengl stuff that no one wanted anyway :p
That is a good comit, no one wants to install all of those things necesary for compiling, there are enough of them as it is!
congrats rama pee, if you find something else to remove, please, do this for uz.

Revision 2764

zzogl-pg: A few more changes.
Windows compiles, at least, with this. Crashes immediately, though. I'll have to spend some time tracing back what caused that. Probably not tonight, though.
When time come can you remove zlib in Win32

Revision 2765

zzogl-pg: Fix compiling with the build script.

Revision 2766

-Fixed a small bug in the unpack dynarec causing it to drop back to the
interpreter (MGS3 - now about 10fps faster!)
-Rewrote VIF0 DMA to work like VIF1, report any breakage from it.
-Tweaked a couple of cycle bits when stalling VIF
yay for game fix of refraction.
ohohoh Make me a child
*turns eveets in to a child*
posted by eliotfur, Today (29 minutes ago)
I'm getting several "microVU0: Possible infinite compiling loop!" messages and Rayman's 3D-model is missing on the arena scene...
Okay, I don't have too much or revisions, but the bug seems to be related to "microVU0: Possible infinite compiling loop!" message...
Compiled several revisions inbetween...
The bug has been introduced exactly in r2766
Yep, posted my response in the other revision, i think there's another bug at hand.

Revision 2767

R5900: Flush complete machine state before all loads and stores, primarily
because they can raise exceptions. This is slower, but not significantly in any
game tested provided that the two recommended speedhacks are enabled, and it
allows us to make another optimisation later that should more than make up for
the small drop. We have an alternative implementation in mind should it prove
too costly in any game even with both recommended speedhacks enabled.
agreed, most anticipated improvement in pcsx2 = speed.

Revision 2768

R5900: track the program counter correctly for exception handling and debugging
on instructions in delay slots and set the BD bit of the Cause register
great you are back sudonim. +1
Please only comment and +1 if you have something constructive to say and know what the commit does.

Revision 2769

Fixed a couple of issues with GIF stalls, also quite a nasty bug which could
have completely screwed Normal GIF transfers

Revision 2770

zzogl-pg: Stop the plugin from crashing under windows.

Revision 2771

zzogl-pg: Use SSE2 by default in the codeblock project. Move the swizzle stuff
about a bit. A few changes I had sitting around.
Hmmm. I see a typo. It's in the comments, though, so it doesn't need fixing immediately...
Bah, left a file out. I'll take care of it.

Revision 2772

zzogl-pg: Left out a file.

Revision 2773

zzogl-pg: Get rid of the extra copy of zlib, and use the copy included in the
main project. Add a sln file for zzogl-pg.
Great work!
Can you add the zerogsogl to the sln of the mainproject?
I'm planning on it; I just haven't quite gotten around to it yet.
Right now I'm looking at having it include the Utilities library, so I can dump all the old memcpy_amd code out of zzogl-pg. I'm not sure if I'm going to do that now or wait on it yet, though...

Revision 2774

zzogl-pg: Use the memcpy_fast routines from Utilities in Linux. (Right now,
Windows is using an old copy of it, and Linux wasn't using it at all.)
I'll work on the Windows side in a few minutes...
Might wait on the Windows side of this till later, actually.

Revision 2775

zzogl-pg: Add the project to the main sln file.

Revision 2776

zzogl-pg: made the project conform to PCSX2's VC2008 buildsystem mess; added
GL/wglext.h to the repository.
Residual unwanted modifications in the solution file. Undoing them now.

Revision 2777

zzogl-pg: remove the localcopy of static libjpeg.lib files in favor of the
3rdparty ones. Fix sln errors.

Revision 2778

Change the qwc overflow into pad area handling to only include IPU.
This fixes a few games that had their GS or VIF transfer chopped of otherwise.
(Check games with previously missing graphics, or just plain crashes.)
It fixed some Japanese frog battle game (don't ask :p), the Linux install disk text missing and Dual Hearts text missing.
Most likely a lot more obscure games are affected, I hope for the better :p
got a feeling that Theme Park Rollercoaster is going to be fixed by this, been getting that error on it.
can't wait to check if NEO Contra will get past the begining of the first level (mission 1) where is just usually hangs, I'll get back on this and say if it works.
i should stop making assumptions before testing more thoroughly Neo Contra Mission 1 now starts but it crashes later with some graphical error and Unknown VifCmd console spam + some DMA errors.
Still its getting better keep at it guys :)
checked and wizardy tale of the forsaken lands is still broken :( didn't fix that game
[email protected] Sky Odyssey now displays HUDs, start menus and everything that was missing. Fantastic this game is almost perfect now.

Revision 2779

SPU2-X: Re-enable resets, the games that were buggy with them enabled now seem
to be fixed. This fixes music in Fatal Frame, FMVs in Devil May Cry PAL, and
may fix music looping in God of War when run without the BIOS skip hack (or that
might work without this change).
SPU2-X: Disable IRQs on reset. This is a guess, but it fixes the BIOS with
resets re-enabled.
SPU2-X: More detailed IRQ logging.
CDVD: Ignore the disc type reported by the plugin, we have our own test and it's
working more reliably.
Oh, and thank rama for the SPU2-X fix and testing to ensure that resets are safe again.
Shaman king gets stuck in "Press Start" again, this was an old bug in SPU2-X but was fixed some time ago.
Good commit, but GoW still loop's, with/without BIOS skip HACK
Oh well, we'll have to look into Shaman King and fix it properly. Resets are clearly not a no-op.
GoW intro music works here when going through BIOS.
It is supposed to loop at one point, should sound fluid though :p
yea GoW1 intro works well with bios, but still loops not so often as without BISO, but loops
Not sure if you know already but SPU2-X and zerospu2 both save their ini in the pcsx2 base folder and not the new folders in my documents section. was wondering why the settings were not saving had to make the folder and then it made the ini for them finally but in the wrong place it seems.

Revision 2780

CDVD: At least pay attention to the plugin when it says there's no disc present.

Revision 2781

zzogl-pg: Misc things that caught my eye.
Don't mess with NoHighlights -- this code is highly on-testing (and this is why it's so ugly). I don't use stored values because for me it was important to look on concrete values.
np. I don't have most of the games I'd need to test it anyways. I was mainly curious if there were any commonalities in the hardcoded numbers there that could be generalized later.

Revision 2782

zzogl-pg: Simplify a bit of the option code.
I also noticed what looked like a typo and fixed it. This may have fixed a broken option...

Revision 2783

zzogl-pg: Rewrote the configuration dialog in Linux. It is now entirely in the
source code. (No relying on an obsolete version of Glade to generate the dialog
code for us any more.)
And yes, I based my rewrite on spu2-x's dialog box. I figure if I've looked up how to do it once, I may as well keep adapting the same code. :)
I like this, though. A lot less radio buttons then we used to have.

Revision 2784

zzogl-pg: 8x AA != 16x AA.
yesterday ati preview opengl3.3(HD2xxx +)/opengl4(HD5xxx) drivers for linux
https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/hotfix/ATI_Catalyst_10.3_OGL4_Preview_Linux.zip. maybe new opengl extensions will be usefull.
exclusive fullscreen dont work

Revision 2785

Created wiki page through web user interface.

Revision 2786

Fixed a small typo in the last commit, added a part of my own
I'd prefer to keep big nebulous jobs out of here. We all know that IPU needs rewriting, and ultimately how it's rewritten will be up to the man brave enough to do it.
Oh, and optimise is in the oxford english dictionary, it's not a typo.
yeh optimisation is a derivation of it, however optimization is generally the spelling referred to with programming and computers in general.
TBH a "todo" list shouldnt be overly picky about things which need to be done, especially big things like that, having it on a list keeps everyone aware and can provoke possible "brainstorming" on what is a big job.
remember this shouldnt just be about stuff you want to do, what i mentioned is just as important as what you want to do, this is in no way your list :P
I intend on attempting this feat at some point, but need to do a bit of research in to it before i begin, any helpful documents would be appreciated.
That's the point, it needs research. I intended this list for things that we can actually do fairly soon with a definite benefit, not "at some point". Perhaps that wasn't clear from the note at the top?
At the very least, big tasks without a plan should be separated or marked.
Rewrite IPU? I mean... The whole thing?? May I ask you how do you plan to do such thing with almost no documentation? Refraction, are you sure about doing that in a moment like this when the whole team is busy with many other things? It will take ages before an usable new IPU core comes up. Sorry if I'm not seeing the big picture, if is there any. Wish you luck.
rodiabloalmeida: We have documentation, it was more on the mpeg standards side i was after more than anything else. The IPU unit is pretty much a standard MPEG decoder with a set of its own calling commands. It may take a while thats true, but its something that needs to be done, hence me putting it on the todo list.
Oh, I see. And agree. I just thought you didn't have enough documentation.^^' IPU really needs a rework. Good luck trying putting it to work properly, Ref. o/

Revision 2787

Wiki: Todo: Made a section for the big jobs, pointless as it is because we all
know what they are. Added an optimisation.
Im not sure what you have against having stuff like that on the todo list, i mean we all know that you are planning on doing that R5900 stuff, and you are actively working on it recently, r2767 being the first step, yet you want that on the todo list. Everything that needs doing should be put on the todo list, not just specific bits you want on there.
If youre going down the "pointless" route, putting a todo list up, just to show the stuff you are currently working on, was also very pointless.
I'm not currently working on any of this, if I do any of this before I complete colclamp support that means I've been sidetracked (this happens a lot). And while we may know there's "R5900 stuff" to do, I personally have trouble remembering it all (I only added what was on the top of my head, there's much more and I can't remember it right now, hence a list). It's not my personal todo list, but obviously I'm more inclined to add things that appeal to me. "IPU rewrite" is just depressing, realistically it's weeks of work for uncertain benefit and ties into the whole DMAC mess. I intended to keep it restricted to fairly simple things that someone could pick up and do at any time. Simple good ideas are often left for many months, can be forgotten and will certainly die with the coder who thought of them, who was busy with other things until he left the project. Occasionally someone turns up and asks what they can do for pcsx2, and I'd like this list to grow to where we can tell them to pick anything from it.
We have, entirely seriously, had people turn up, ask that, and we reply "Um, rewrite the DMAC I guess" for lack of simple ideas at the time.

Revision 2788

- Various small changes and a fix by gigaherz for dsp plugins when
timestretching is disabled.
18 Wheeler seems to be always passing the licensing screen, sometimes it hangs when loading after picking your truck. Various sound glitches in other games are gone and the sound is a bit better quality in everything.
The 18 wheeler crash isn't fixed yet.
I've not yet found out why it crashes, but I know it's in the reverb code..

Revision 2789

Build on the preivous dsp fix so that it can work with dsp plugins that return
partial blocks. It's not tested properly since I don't know of any plugin which
does that.

Revision 2790

Todo list: block dumping -> core
Hi, I have not played the latest cimmits since like late 2600's but somewhere between then and now fixed the crazy weird shadows and texturing in FFXII International, like in the start where you play reks and half teh area is black. So I did not want to test all 100 commits since then to see which did it just figured I would let you know. Awesome work.
This is actually about 95% done -- it's just buggy.

Revision 2791

This should be the proper fix for Eternal Poison dieing on reboots.
Bit ugly code though..
Someone might want to refactor it, dunno :p
Lines 184-186 could be "compacted" into:
if ( (sif0dma->qwc == 0) && (sif0dma->chcr.MOD == NORMAL_MODE) && (!sif0.ee.end) {
without changing the behavior. Same for sif1
ahh, interesting, never thought about the possability of a normal transfer without an irq.. strange ;p
This code got refactored a lot recently (courtesy of arcum42), I wouldn't be able to navigate it if it wasn't :p
So it could be that this problem is new since then..
Anyway, since all state keeping values are reset to 0 at the beginning of the SIF loop, there was a pretty high chance of this happening.
Qwc = 0 and chcr.MOD = NORMAL_MODE (guess the default).
Only sif(x).ee.end isn't set then, which is what I check now for.
(And which is what could be simplified, lol.)
Actually, not all the state-keeping is reset, just some of it.
I tried resetting all of them at the beginning of the loop. A bunch of games broke. Remember that it is processing ee and iop at the same time, and stops when either is done. So the other one finishes the next time it's called.
And they rely on each other, so you can't just run them separately, either.
And it's possible that the problem is new. That area needed a lot of attention, iirc...
Yeah, really weird system actually ><.
Well, pseudonym is currently working on smth that might help..

Revision 2792

zzogl-pg: compilation error fix, caused by windows.h gratuitous namespace
pollution (it's a common problem, CreateWindow being a macro and all)
Thanks for this update.

Revision 2793

zzogl-pg: part two of fixing CreateWindow conflict; should compile in Windows
without error now.

Revision 2794

Updating zlib to the recently released version 1.2.4.
Linux will need the new files added to it's project file thing, sorry about that

Revision 2795

Tweaks to the savestate system that fix some heavy file fragmentation on NTFS in
windows (of course :p ), but are also a small speedup.
Nice idea ;)

Revision 2796

Fix compilation errors in zlib and linuz-cdvdiso (plugin)
Thx :)

Revision 2797

Update code::blocks project with the new version of zlib.
Hope it works with this? :p
...though honestly, I could probably get rid of it on the linux side and just link to the system library. ZZOgl & Zerogs already do, iirc.
It works without an issue. It's just that I think all versions of Linux already have zlib, so I'm not sure I really need to keep compiling it...
Hmm, your choice then really :)
Yeah. Just happened to think about it because we're inconsistent in how we handle it.
Now if it was a custom version of zlib, that'd be different...

Revision 2798

Another todo, getting hung up on stupid issues when trying to write test
programs for it so putting it aside for the moment.

Revision 2799

zzogl-pg: Get rid of some old 64 bit code.

Revision 2800

zzogl-pg: Use the same version of some of the SSE2 WriteClut functions in both
Linux and Windows.

Revision 2801

Disable throwing exceptions on a vtlb miss.
In some rare cases this makes games continue when they'd crash otherwise.
We'll have to see if proper exception handling fixes it in a better way.
"Fixes" the Gran Turismo 4 intro fmv.
I wonder where is that ferarri-guy...
It does not help in Rayman Raving Rabbids...
vtlb miss messages continue to appear like some damn millisecond counter... tons of them with _ever_increasing_address_number (I hope this feature will help)... The game itself kind of continues, but it slows down to less than 1 fps...
Another new bug is, I'm getting several "microVU0: Possible infinite compiling loop!" messages and Rayman's 3D-model is missing on the arena scene...
Well, everything that happens after a vtlb miss is depending on our luck.
In most cases it'll just crash anyway, or cause those slowdowns.
"Another new bug" is happening before "vtlb miss"...
Ok, this is unrelated to this commit then.
Could you find out in which revision this new problem started?
Okay, I don't have too much or revisions, but the bug seems to be related to "microVU0: Possible infinite compiling loop!" message...
r2721 does not have that bug
r2778 already has both the bug and "infinite loop" message...
Compiled several revisions inbetween...
The bug has been introduced exactly in r2766
Good luck...
Then i suggest there is a possible issue in the dynarec unpacker. There is no reason why not falling back to the interpreter should kill it, apart from if there is a bug ;p

Revision 2802

Changed how IPU1DMA works by making some odd code optionally via gamefix
(replacing the outdated DMA exec hack).
This fixes many games with FMV errors / crashes / hangs.
A select few games need that code though, mainly Tri-Ace ones, so for those
there is a new gamefix now.
damn i failed at building this it still remained with my old IPU.cpp thats why it didn't work.
Atelier Iris 2 works without it.
Will test more later now i got classes. :)
Ratchet and Clank also needs the gamefix now.
No change for spyhunter hang when fmv playing but with /skipmpg it work but all fmv are skipped :/
Xenosaga 1 needs the gamefix as well.
burnout revenge playable :D finally, but is slow for me and have some graphics bugs :D but your really good team :D +10
Burnout revenge work from few revisions before :/
back from college and did some extensive testing with this build and it seems the other game (Galaxy Angel Mugen Kairou no Kagi) hates your fix now without the gamefix enabled all fmv's are automatically skipped exactly 2 seconds after they start and with the IPU slices gamefix on it doesn't skip but crash halfway through the fmv with a lot of vtlb misses.
PS: Check my thread on the forum. Ill continue there.
Well, if you enable the fix, it will be the same as before this rev. ><
yes i figured that out :)
the problem is the skips without it
Yeah, it's not perfect unfortunately :(
Still, it's fixing a ton of games, so still a win in the end.
Football Kingdom still doesnt boot :(
same black screen at start...
yea but it will be once the IPU is rewritten :)
until then its a good fix.
BTW: Grandia 3 Fmvs dont hang anymore
Grandia 3 has been fine with spu2-x since r2681 IIRC
There's a new gamefix. Commit log even mentions it..
Tales of Destiny Director's Cut still has FMV/sound issues.

Revision 2803

zzogl-pg: Move WriteCLUT_T32_I4_CSM1_sse2 to inline assembly.

Revision 2804

zzogl-pg: Work on the transfer code a bit.

Revision 2805

zzogl-pg: Split off some of GS.h. Keep working on the tranfer code.

Revision 2806

zzogl-pg: Update the c::b project as well...

Revision 2807

zzogl-pg: Still working on the tag transfer code.
Oops. Left a debug message in. I'll take it out later...

Revision 2808

zzogl-pg: Committing a start of a GifTransfer rewrite so I can go back to it
easily. (Unless you like seeing what games look like with missing graphics, I'd
leave the define for it disabled for the moment.)
In fact, that function is mainly for reference. I'll probably rewrite it, but that is approximately what ZZOgl would look like with GSdx's transfer function.
There are just enough differences between the two that it'll require a good deal of adjusting.

Revision 2809

Extended "BIFCO" speed hack to the typical IOP idle loop. It was never intended
to just be for the EE kernel loop at 0x81fc0 and the name I originally gave the
hack reflected this, but the name was changed at some point. Small speed
increase in all games.
I really feel that speed up , but theres a problem in God of War 2. I start it , and after a 1 minute of gameplay , it's crashing !
That's surprising. Will look into.
Now i've tried to again and it's crushing only when I try to Load State .
Have no any crashes in GoW2
It's kind of unlikely that this hack causes the crashes.
Savestates on the other hand are very unstable at the moment, so yeah. :p
I understand. The I have to wait for the release.
very good one, great speed increase in burnout revenge ! +11

Revision 2810

zzogl-pg: Borrowed enough of the old transfer function in the new one to get it
to work properly. Needs more testing.
Not compile for windows? Rev2805 and highter ?
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>.\Conf.cpp(56) : warning C4244: '=' : conversion from 'unsigned long' to 'u8', possible loss of data
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>..\GLWin32.cpp(108) : error C2664: 'AdjustWindowRectEx' : cannot convert parameter 1 from 'RECT *' to 'LPRECT'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>..\GLWin32.cpp(109) : error C2664: 'GetWindowRect' : cannot convert parameter 2 from 'RECT *' to 'LPRECT'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>..\GLWin32.cpp(173) : error C2664: 'GetWindowRect' : cannot convert parameter 2 from 'RECT *' to 'LPRECT'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>..\GLWin32.cpp(191) : error C2664: 'AdjustWindowRectEx' : cannot convert parameter 1 from 'RECT *' to 'LPRECT'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>..\GLWin32.cpp(278) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\GLWin32.cpp(278) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\GLWin32.cpp(278) : error C3861: 'timeGetTime': identifier not found
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>..\GSmain.cpp(839) : error C3861: 'timeGetTime': identifier not found
1>..\GSmain.cpp(839) : error C2440: 'initializing' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\GSmain.cpp(853) : error C3861: 'timeGetTime': identifier not found
1>..\GSmain.cpp(853) : error C2440: 'initializing' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>..\targets.cpp(174) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\targets.cpp(174) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\targets.cpp(174) : error C3861: 'timeGetTime': identifier not found
1>..\targets.cpp(1190) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\targets.cpp(1190) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\targets.cpp(1190) : error C3861: 'timeGetTime': identifier not found
1>..\targets.cpp(1218) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\targets.cpp(1218) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\targets.cpp(1218) : error C3861: 'timeGetTime': identifier not found
1>..\targets.cpp(1288) : error C2296: '-' : illegal, left operand has type 'DWORD (__stdcall *)(void)'
1>..\targets.cpp(1288) : error C3861: 'timeGetTime': identifier not found
1>..\targets.cpp(1412) : error C3861: 'timeGetTime': identifier not found
1>..\targets.cpp(1412) : error C2440: 'initializing' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\targets.cpp(2217) : error C2296: '-' : illegal, left operand has type 'DWORD (__stdcall *)(void)'
1>..\targets.cpp(2217) : error C3861: 'timeGetTime': identifier not found
1>..\targets.cpp(2217) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\targets.cpp(2217) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\targets.cpp(2217) : error C3861: 'timeGetTime': identifier not found
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>..\zerogs.cpp(281) : error C2296: '+' : illegal, left operand has type 'DWORD (__stdcall *)(void)'
1>..\zerogs.cpp(281) : error C3861: 'timeGetTime': identifier not found
1>..\zerogs.cpp(458) : error C2568: '-' : unable to resolve function overload
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219): could be 'DWORD timeGetTime(void)'
1>..\zerogs.cpp(458) : error C3861: 'timeGetTime': identifier not found
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>..\ZZoglFlush.cpp(382) : error C2296: '-' : illegal, left operand has type 'DWORD (__stdcall *)(void)'
1>..\ZZoglFlush.cpp(382) : error C3861: 'timeGetTime': identifier not found
1>..\ZZoglFlush.cpp(382) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\ZZoglFlush.cpp(382) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\ZZoglFlush.cpp(382) : error C3861: 'timeGetTime': identifier not found
1>..\ZZoglFlush.cpp(1854) : warning C4244: '=' : conversion from 'int' to 'dReal', possible loss of data
1>..\ZZoglFlush.cpp(1859) : warning C4244: '=' : conversion from 'int' to 'dReal', possible loss of data
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2373: 'timeGetTime' : redefinition; different type modifiers
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(2219) : see declaration of 'timeGetTime'
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(116) : error C2491: 'timeGetTime' : definition of dllimport function not allowed
1>c:\users\maximu\desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Util.h(132) : error C2371: 'RECT' : redefinition; different basic types
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\windef.h(324) : see declaration of 'RECT'
1>..\ZZoglVB.cpp(199) : error C2296: '-' : illegal, left operand has type 'DWORD (__stdcall *)(void)'
1>..\ZZoglVB.cpp(199) : error C3861: 'timeGetTime': identifier not found
1>..\ZZoglVB.cpp(199) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1>..\ZZoglVB.cpp(199) : error C2440: '=' : cannot convert from 'DWORD (__stdcall *)(void)' to 'u32'
1> There is no context in which this conversion is possible
1>..\ZZoglVB.cpp(199) : error C3861: 'timeGetTime': identifier not found
1>Build log was saved at "file://c:\Users\MaXiMu\Desktop\pcsx2\ps2svn0.9.6\pcsx2\plugins\zzogl-pg\opengl\Win32\Win32\Release\BuildLog.htm"
1>ZZOgl - 100 error(s), 3 warning(s)
========== Build: 0 succeeded, 1 failed, 5 up-to-date, 0 skipped ==========
I'll take care of it on Windows soon. I just mainly work on it on Linux, and check periodically if Windows works, so it breaks on Windows occasionally...
It should compile in the latest version.

Revision 2811

zzogl-pg: Use path->StepReg in the transfer code.

Revision 2812

zzogl-pg: Get Windows working again.

Revision 2813

zzogl-pg: Reduce the # of compiler warnings.
One of these days I'll install GL stuffs and try to compile this.. :p
That'd be cool. That's one of these things that's easier on Linux actually. And, of course, it'll be quite a while till ZZOgl's really in the same league as GSdx.
For that, we'd really need more people working on it anyways.
Right now, a lot of what I've been trying to deal with is the piles of define-created functions, and make something sensible of them.
And, of course, get a more recent version of the gif transfer code in. I've been meaning to do that for a while...

Revision 2814

R5900: Replaced 0x81FC0 address check with constant loop detection logic and
renamed the hack appropriately. This is what I originally intended back before
INTC_STAT and 81FC0 hacks, but it seems to have pretty minimal gains over them.
I don't think I've broken anything though, it might help some game and could
perhaps be extended to handle more complicated loops later, with inlining or
multiple branch logic.

Revision 2815

- Disabling all post processing removal hacks for Shadow of the Colossus. Can't
see what they fix(ed).
Thorough testing required, anyway...
Offtopic: I noticed a strange, I think, typo in logs... Every time any game plays some FMV, the log (in the debug build at list) says, for example:
open fail name ¥DATA¥UBILOGO.BIK;1
That's just a side effect of the developers working in japanese windows. Enter \ there and you get a ¥. It annoys them too.
why the GSDX plugin only use DX9? can you add DX10 please!
Use Vista or Windows 7 to enable dx10/11
@sudonim1: I meant "fail"... Maybe it should say "Open file name blablabla.bik"... It plays FMV, not fails...
These are the game's developers logs, not ours :p
Now gsdx is PERFECT foe SotC !!! Many thanks !!! (^_^)

Revision 2816

zzogl-pg: Remove obsolete PS2E*.h files; fix a compilation error in Win32/Debug
targets; set a bunch of eol-style:native props.

Revision 2817

GSDx: made some nonsense code more obviously nonsense so that it might get fixed
some day

Revision 2818

microVU: FIX FINAL FANTASY X HAIR!!!111!!!1!! (Enthusiasm at rama's request.
Thank him for being noisy enough about this to get it seriously looked at.)
Negative zeroes were being treated as positive for the purpose of setting flags,
which the documentation was ambiguous about. Testing with real hardware
confirmed that negative zeroes are still negative.
Not big enough, people might miss it :p
Btw, it also fixes the missing ground in some Fatal Frame 2 scenes.
Wow, this finally got solved after how many years now? >_>
rama is right, it lacked enthusiasm still :/
Well, I'll be more enthusiastic when the intro runs at full speed here. 35fps makes me sad.
hell yeah
OMG !!!!1111!!! Trying to think of Newb Excitement Slang but failed...
All serious well done guys, Took ages to fix that bug, +1
Wow, fixed all little graphic hair and other bugs on bodies in FFX
LOLZ OMGZ YOU MY HEROES want to marry rama and pseudonym OMG OMG OMG no black hair I now sleep better thxthxthxthxthxthxthx you best of all!!111oneoneone OMG!.
There, i tried :P I don't really care about FFX but Project Zero 2 textures were the only remaining bug so glad that's fixed :)
WAU !!! Thanks DEVs !!! =)
great job. at last, I played FF-X with super great awesome hair fix.
haha i drove myself insane over this! i compiled every revision i could from 0.81 to current (or what was about a year ago) thinking it was a VIF problem, i could only work out it was from 0.9.0 to 0.9.1 (or 0.9.1 to 0.9.2 cant remember) it died, which funny enough, was when supervu was written >.<
Bloody good job finding it, this has bugged me for years!
Make's me sad cuz Im not playin FFX anytime soon again [replayed that game too many time's already] But +1 for another Great Commit Sudo!!!
Oh how bout taking a look at tale's of legendia since the game run's slow as a slug in Hardware mode maybe a GSDX problem ?
WTB edit button:
BTW this will probably fix a lot of little glitches, however one game somewhere will break, i remember Zerofrog doing this on purpose because one game didnt like negative zero's (lol, just realise that sounded funny :P). However it might be ok, coulda been result of a bug from zerofrogs's code.
Lowers FPS as well ;<
Why almost all fixes lowers FPS ;<<<
Because black/missing stuff don't get rendered? So you render more stuff.
Hair lotion ?? Good.
That is extraordinally awesome!!!
I think that might improve some other games too...
Enthusiasm is a great thing...
Missing textures in "Crash: Mind over Mutant" got fixed!!!!!! :D
But missing eyes in "Jak and Daxter" not... :(
Crash TwinSanity has the same little issues that FFX had, unfortunately did'n fixed
"Lowers FPS as well ;<
Why almost all fixes lowers FPS ;<<<"
Not seeing a slowdown here. If anything, it'd be slightly faster.
(One less SSE instruction. Always a win for PCSX2.)
You know, now it's going to look weird not having the hair glitch when I start up FFX...
Youre alone on that one arcum, its been driving me mad everytime ive run that game since the bug appeared, which is a lot considering i spent ages figuring out why FFX use to randomly hang >.<
The same fix breaks pretty much everything in super VU, so definitely a bug in zero's rec and I don't expect it to break anything on micro VU. Stray negative zeroes in super VU are probably the only reason the fix wasn't found until now.
yeh supervu was a complete hack, so im not suprised, pat on the back from me for finding it :)
However, the FF X-2 movies are still not fixed.
Probably because videos have nothing to do with this.
i don't really know if this has anything to do with these fixes but now both FFX and FFX-2 (which also had these graphical problems solved) hang on me at the beginning of the game, more specifically
FFX: hangs at the second FMV (the one where tidus is playing blitzball), it nevers shows up
FFX-2: "hangs" after the first initial battle
either way this is still a great fix, thx all
kerbus: that most-likely is because of r2822 which seems to have broken a lot of games.
oh... sorry for not testing different revisions and thx ;)
I'm not sure if this changes were the cause, but for sure Buffy the Vampire Slayer missing graphics in previous version, are fixed now in this revision. With this revision other games that show graphics but only in software mode (slow) are the Godfather, LOTR the Two Towers, and i suppose that other EA games that use the same engine.
So for sure positive vote.
PS: In this version Graffiti Kingdom works without the skip video patch, so now works fine.
i´m not sure..but i think this broke fatal frame 2..when i start a new game all i can hear is the music and the game doesn´t start just like before..other than that a HUGE thanks for fixing ffx and ffx-2 hair :)
You most likely tested revision 2822, not this one.
sorry it wasn´t this rev..turns out it´s been like this for a while can´t say for sure what rev did this
Fatal Frame 2 does work with this rev, I tested it. It can only be ref's changes, or you trying a version of the game that never worked (the original japanese zero - akai chou doesn't work and I don't know the status of the PAL project zero 2).
@sudonim1. sorry you´re right i tried it again and now it works
the game only hangs when using the ZeroSPU2 plugin but with the SPU2X plugin it works
wow, people are still using zerospu2? lol spu2x is the future :)
Hurray for FF X hair!!!! It is REALITY! XD
WTF you broke the FFX hair :<
Ami: Broke? read again

Revision 2819

- Turn off USE_HOSTFS by default for now (was crashing all elf files for me
allocating 4gb for some reason...)
- Port the flag-fix to Super VU recs.
This missed the normal case (else block) for the flag update, but if I try to fix it there the FFX intro completely breaks (half the geometry disappears). I think sVU is generating negative zeroes that mVU doesn't.

Revision 2820

zzogl-pg: Fix an issue I noticed in the new Mem Transfer code.
Issue 427 having status YesWeKnow it's GSDX issue...
But "eyes missing" and "shadows bugged" appear in ZZOgl too...

Revision 2821

LinuzCDVDiso: quick svn:props fixes.

Revision 2822

Pleanty O' Changes:
- IPU 1 DMA rewritten - now much more readable, less hacky. A couple of games
are still slightly picky, but overall compatability is similar (if not better in
some cases)
- Reverse VIF transfers figured out and implemented (mostly)! - There are still
some problems with this, will work on it.
- Improved GS PATH transfer control, now PATH2 and 3 cant transfer when PATH1
is, PATH3 cant when PATH2 is and so on.
- IPU now waits for ended GS transfers, for some reason this was screwing videos
(mainly from PATH2) and causing them to be torn, which the original voodoo
cycles addition fixed.
Note: You may see a lot of "Double IRQ on DMA 4" messages. At the moment these
are unavoidable but aren't actually causing any issues. I do know about them :P
Feel free to negative is I've seriously broke something lol
As the mrs just pointed out, my spelling sucks, plenty not pleanty, broken and not broke and if I rather than is I. Rest assured my code should be better than my spelling lol
Onimusha 2 Crash in this revision.
Some games not getting past intro (libdma: sync timeout), some restarting after first FMV tries to play
Some other games end the FMVs prematurely too.
Some games now can't even start FMV
Broken FMV Issues in a lot of games.
First screen when you start the emulator is going at <1 FPS..
omg, I hope you are half way through this changes, and the end result will be much better, because this isn't funny :P
Change is always good!!
It's the typical refraction mess, he gets it right after 2-3 commits :P (usually XD)
I expected there to be problems tbh :P i just wanted it online so i didnt make a complete hash of what i had lol
Changes are good, but now you should hunt for new nasty bugs...
This change didn't fix any of "problematic" games I have in my collection (Unlike r2818), but it broke FMV in some games...
lists of games which it breaks would be handy. saying "it breaks fmv's for me" doesnt really help :P
Hang where FMV should start:
Persona 3
Final Fantasy X
Shadow Hearts
Tales of the Abyss
Star Ocean 3
Valkyrie Profile 2
Tekken 5, Intro FMV skips after a couple seconds.
Shadow Hearts II/III, hangs with "libdma: sync timeout"
Persona 4, FMV starts then hang after a couple secs.
Thanks shadow :) i have dumps of most of them, so ill take a look :) FFX did work, so something has gone wierd, will check
The hanging games all seem to loop throwing double ints on irq4.
Since none of the public ever tests devel builds, no one mentioned that yet :p
The build I tested the other day didn't do that btw, and the vids worked.
Good luck :)
FFX works here as well. Try the Tri-Ace games like VP2 or SO3, they die quickly :p
hmm coulda been this causing lots of games not to work (cant test now due to being at work myself :P)
if (!vif1Regs->mskpath3 || !vif1ch->chcr.DIR) vif1Regs->stat.FQC = 0;
change back to
if (!vif1Regs->mskpath3 || vif1ch->chcr.DIR) vif1Regs->stat.FQC = 0;
see if that fixes things. I did that change for Fatal Frame 3, possibly need to go back to the drawing board on that one, but need to look at path3 masking stuff for that!
rama: yeh they will do if any GS path is busy now, it was better than using a "while" loop which could get stuck without a million conditions. Thats another thing to try if videos still dont work, remove the flushgif :)
oh and rama check your mail :P
add to Brokengames-list:
Grandia 3 (IPU1 Normal error!)
Final Fantasy XII (12)
Shadow Hearts 2 Convenant (libdma: sync timeout)
Star Ocean 3 Pal/NTSC
Final Fantasy X Pal german (Hang end of FMV Road to Zanarkant)
games seems to work only Intro FMV testet:
Final Fantasy X2 (the FMV are even Bad to see as befor)
Kingdom Hearts Pal Garman
Shadowhearts from the new World
It is indeed flushGif().
Removing it fixed the regressions.
Of course FFX will hate it :p
Some testing from me:
Neo Contra - first mission fmv hangs
Atelier Iris 2 - still works(at least the intro fmv)
Galaxy Angel II Mugen Kairou no Kagi - the fmvs work now perfectly (lol)
Bleach Blade Battlers 2nd - hangs at the start of the intro and leaks memory like hell
Naruto Uzumaki Chronicles 2 - libdma: sync timeout and hang at intro.
cool thanks guys! should be enough to go off :) Rama is going to post up a fix soon, temporary measure till i get it sorted, please post in there if the mentioned games are still broken.
oh and of course, any games which were improved over revisions previous to this :)
Do you mean that we should try to test the games that didn't boot in previous versions of the emulator? Asking to be sure...
If the answer if yes i can try testing the black screen only games.
well testing of games with bugs or not booting would be good to try yes, but not a lot of point testing working games to see if they are broken with this until rama commits the temp fixes.
this is the only version that CAN run DEVIL MAY CRY 1 WITHOUT ANY PROBLEM, previous ones haves problems with audio and video and the actual game WONT RUN, so keep it up
In that case i can tell you that at least the 3 games that didn't boot are still in the same point:
- Fahrenheit (Indigo Prophecy) (black screen)
- Giants Citizen Kabuto (black screen)
- Outrun Coast to Coast (still locks in the license menu screen).
Fahrenheit hanging is known, and we have a fix here.
Just not tested enough yet, so it'll have to wait a bit.
ooh look found a positiv comment @ emucr.com
there is one lucky People :)
"this is the only version that can run DEVIL MAY CRY WITHOUT ANY PROBLEM, previous ones cant run the game and have problems with the videos and the audio..".
Ok them, I won't test that one in next versions.
Is great to know that.
ok if you can test r2824, that one and r2823 should solve all (if not, most) issues experienced in this revision.

Revision 2823

Quick fix for the IPU issue.
Should allow people to test the important changes in r2822.
No comment or anything, as we know what's up :p
Onimusha 2 is still program crash on startup.
you missed a bit :P will put it up now
Found something interesting although probably not related. Tales of Destiny Director's Cut will not even start playing without the speed hack INTC Spin Detection. Just a black screen. Also the intro FMV won't show up at all without Wait Loop Detection hack.
Even then though the FMV still barely starts playing and sound cuts out. I read somewhere that is due to the DMA/IPU, thats why I mention it.
Never realized the speed hack thing since I always use them so no idea if it was always like that or that started being the case from some rev.
Its quite possible, IPU timing is awful, the main unit itself is never actually seen as "busy", or rarely especially on small commands, this uses INTC, which could explain your issue. Only the IPU DMA's have timing, but thats not enough :(
Itll get fixed probably once ipu is rewritten. It's very difficult to do IPU changes at the moment due to how clunky and sensitive the whole thing is, which is mostly down to how it was coded.
It's also depending on spu2 timing. SPU2-X is causing us headache still with this.
If you use ZeroSPU2 or PEOPS, it'll pass those spots usually.

Revision 2824

revert of small change on VIF (which i thought id already done), should resolve
most the libdma timeout issues and other non-fmv freezes that have occurred
since r2822
If you could review 2822 plus these last 2 revisions and give results, it would be good :)
Onimusha2 crash too.
then can you check back to where it exactly crashes and try reverting a few things. or give more information on the crash, would be helpful
Quick results
Atelier Iris 2,3 show black screen instead of video with looping:
sceGsSyncPath: VIF1 does not terminate <D1_CHCR=00000000:D1_TADR=00000000:D1_MADR=00f5cdd0:D1_QWC=00000000>
Tested: Blade 2, Burnout 3, Crash Bandicoot Twinsanity, Crash Nitro Cart, Croutching tiger hidden dragon,Dragonball Z Tenchaichi 2,3, Digital Devil Saga 1,2, Disgaea 2 all had no problems with videos
Outch tried going in menu of Dark Chronicle and got hit with:
sceGsSyncPath: VIF1 does not terminate
again and PCSX2 soft restarted 0_o
Melty Blood Actress Again gave me
sceGsPutDrawEnv: DMA Ch.2 does not terminate
A spamsplosion of:
sceGsSyncPath: DMA Ch.2 does not terminate
and at the end:
libdma: sync timeout
PS: before r2822 the intro didn't do this but it didn't play well (a lot of garbage).
r2819 work fine.
but r2822~r2824 crash on startup screen.
Log is not write.
sceGsSyncPath: VIF1 does not terminate
When manually skipping FMV in Star Ocean 3.
FFX/FFX-2 not booting... does some reads then stops, was working in r2823.
All other games I mentioned in r2822 working normal now.
shadowlady/bosit: do those issues still happen on r2824? also if they dont, do any of the other games break?
Well I was talking about r2824, but I also mentioned FFX/FFX-2 not working now compared to r2823, haven't tried many other games yet tho :P
ahh sorry! silly typo checking which rev this was :P i meant r2823
Ah you're right, the "sceGsSyncPath: VIF1 does not terminate" thing doesn't happen in r2823.
A black screen and the 'sceGsSyncPath' messages seem to happen on just about all Gust games, btw. I checked Atelier Iris 2 & 3, ar tonelico I & II, & Mana Khemia 1 & 2. And Atelier Iris 1 *stalls* the same way, just without printing the sceGsSyncPath message.
All of that is new to 2824. Atelier 2 & 3 were mentioned, but the Gust games usually all break together when they break, so I thought I'd confirm that...
its annoying as this was the original behaviour "before" r2822, but it doesnt like it anymore >.< dunno whats changed so much! lol
Going to look in to the FQC stuff, its always been quite hacky and doesnt work too well. Plus this is what stops Transformers working. it expects the dma to end and to see data to still be in the FIFO
Yeah, I know. When I was looking through the code changes, that one stood out as one that didn't look right. I thought reverting it would be a good thing 'till I started up one of the Gust games.
I happen to use Gust games frequently for testing, though, so I noticed it pretty quickly. (Which was irritating, since I was trying to see if my changes to zzogl-pg broke anything... :( )
Mana Khemia needs to be tested to see if the voodoo cycle changes broke it further in, but since it won't get to the opening screen, I figure that can wait.
And, yeah, I remember the FQC stuff looked hacky when I was making all those readability changes.
Which reminds me; the enum 'tag_id' in Dmac.h might be useful for those switch statements with IPU1Status.ChainMode.
And the 'done' variable at the beginning of IPU1dma looks like it's no longer used in the function...
Yeh i intended on reformatting the IPU DMA, i havent had chance to look through your new DMA handling stuff, but the bulk of it was written previous to that being implemented and ive literally just stuck it in.
Wanted to get the code out there really, so ill reformat it at some point, cheers :)
Will probably like to look at a few Gust games and Mana Khemia if i can, these seem to be extra fiddly games, interested in what these developers have done which the emu hates so much.
I propose to do a full revert of r2822, then only commit the new IPU dma code.
Then do research on the fifo reversal and new gif flush stuff, as it fails currently.
I mean, it even breaks Fatal Frame 1, the one game it was meant to fix :p
I noticed that the overflow code from r2802 is missing from ipu1dma, as well, and Gust games was part of why that code was in ipu1dma and ipu0dma. (OTOH, putting it back didn't seem to fix them when I tested it a minute ago...)
hmm something has gone really wierd then, cos Fatal Frame 1 was one of the games i was testing! ;p
Make that r2778, sorry...
Hmm, yeah, the overflow code should be put back as a safety for now.
At least until the bugs are ironed out.
ill look at it tonight if i can, at least get that fixed. Ill get round to this at the weekend latest
Oh, and as far as Gust games go, Mana Khemia 1 is a good one to test. It's got the Gust opening break that we're having issues with right now, a voodoo cycles issue that crops up when you are first able to go into the wilderness, and is sensitive to Sif changes as well.
Gust games tend to give GS plugin issues, too; note the presence of a Gust hack in zzogl...
Could you post a memory card somewhere that makes leaving campus hassle free?
I can't get myself to play this thing 'till that point :p
Given I'm 7 or so chapters into it with a real ps2, I could probably manage something.
@rama: This memory card has three saves on it from around that spot; one after taking the assignment, and one from before it. (I already had them floating around, so I just moved them to an empty memory card.)
Thanks :p
np. They were floating around from when the campus bug was still a big issue, because I had to test that spot a lot...

Revision 2825

Crashfix for ZZogl / ZeroGSogl. Thanks "jur".
I pretty sure, that this
ERROR_LOG("Failed to get buffered Visual!\n");
path is placed incorrectly. It should be inside previous if, when only singlebuffer case is applied (and vi == NULL mean that even singlebuffer is not working).
Nah, it's ok this way.
If anything, the first error log should mention it's trying to get a buffered display now.
But that's details anyway :p

Revision 2826

- Added a macro option to turn off all of mVU's flag optimizations for debugging
- Minor fix for program logging (was indexing starting at -1 instead of 0)
- Commented in detail a lot of the macro options in microVU_Misc.h
Splash screen after starting the emulator is still going at <1 FPS even though it says 60 FPS, its like EE/VUs are on interpreter mode when they're on recompiler. This happened since r2822.
What splash screen?
Do you mean the BIOS intro animation?
That one works as fast as ever here.
Ok, this is weird. I got it to run slow as well, by using normal 8mb memory cards.
With my usual 32mb cards, it's fine :p
wtf lol
Yes the bios animation, but I don't have any memory cards formatted.

Revision 2827

zzogl: Rework things in Mem.cpp & Mem_Transfer.h some more.

Revision 2828

Revision 2822 contains a bug somewhere that we need to figure out.
So this reverts all VIF and GIF related code of that revision,
leaving only the changes that were made to IPU.
Compatibility should be fixed again, with the added bonus of lots more videos
A positive for improvements
so it was a no go, thumbs up for trying and keep at it :)
I also had trouble with the god of war in 2822, the game crashed and lowered the fps, I tried to close the screen and give summarizes the problem still more, closed and opened again to play the same place ta screen crashed.
Its not quite a no go, just needs some more work :) will do it over the weekend.
Hrm, the GoW FMV hackfix isn't working with this. Investigating.
This stuff I mean:
g_ipu_dma_error = 0; // if g_ipu_dma_error is set, then continue processing. Fixes GoWs white screens of death.
if (!ipuFDEC(ipuRegs->cmd.DATA) && !g_ipu_dma_error)
Kanon: Dont use a savestate if you can, its likely wrong values are stored and will cause crashes.
I could just now, watch the entire intro FMV of Tales of Destiny Director's Cut. :)
With ZeroSPU2, still hangs with SPU2X. Also INTC hack enabled, otherwise it doesn't boot. There's some horrible sound cracking though, even on the menu music.
onimusha2 works fine.
Thanks the tip was helpful, I did not know who gave trouble pushing savestate
Nearly everything I tested works great, but it appears Xenosaga 1 (NTSC) doesn't like the the new DMA code without the IPUSLICES hack. The Dev Console spams:
"DMAExec32 Attempt to run DMA while one is already active in Ipu 0(1000b000)"
This actually goes back to rev2822, but I thought best to comment here considering the issue persists with the VIF/GIF changes reverted.
The slices hack shouldnt have effected that, there is probably another issue at hand, which i will look at when i get chance.
Yep, this game is broken with the new IPU dma code. We'll have to fix it.
Also we'll need something for that GoW hackfix that doesn't work anymore.
(It used to hackfix a lot more hangs, see revision 2615 for more info on it.)
Fast checked following Games all seems OK. :)
Grandia 3
Final Fantasy XII (12)
Shadow Hearts 2 Convenant
Star Ocean 3 Pal/NTSC
Final Fantasy X Pal german
Final Fantasy X2
Kingdom Hearts Pal Garman
Shadowhearts from the new World
rama: hmm try removing the dma_error check from FDEC, it "Should" work..
Reason i say this is because at the moment, FDEC will NEVER interrupt ;p
24 The game still didn't work (i think that worked in r1000!!!!)
Broken in this rev2828:
- Alias (worked in r2819 in software mode).
Ref: Yeah, I know :p
But even when fixing that dma_error to get set again, the original hack can't work.
In the original code, it'd get to this point 2 times I think, then abort IPU somehow.
That's what we need to recreate :p
OMG!!!!Resident Evil Code Veronica X´s FMVS are now working since pcsx2 0.9.6!!!!THANK YOU!!!!i´ve been waiting a long time for this!!!you guys rock!!:p
P.S i´m using the American NTSC version
rama: Actually, there is no need to use dma_error check anymore :p I've fixed it again by adding few lines (see below). Previously, a clever use of the variable intended to reset those parameters and avoid calling hwIntcIrq in IPUWorker().
So, it should be working quite similarly now. :)
Index: pcsx2/IPU/IPU.cpp
--- pcsx2/IPU/IPU.cpp (revision 2829)
+++ pcsx2/IPU/IPU.cpp (working copy)
@@ -820,7 +820,7 @@
g_ipu_dma_error = 0; // if g_ipu_dma_error is set, then continue processing. Fixes GoWs white screens of death.
- if (!ipuFDEC(ipuRegs->cmd.DATA) && !g_ipu_dma_error)
+ if (!ipuFDEC(ipuRegs->cmd.DATA) /*&& !g_ipu_dma_error*/)
@@ -1569,6 +1569,9 @@
if(ipu1dma->qwc == 0)
ipu1dma->chcr.STR = 0;
+ ipuRegs->cmd.BUSY = 0;
+ ipuRegs->ctrl.BUSY = 0;
+ ipuRegs->topbusy = 0;
Console.Warning("IPU1 Normal error!");

Revision 2829

IPU: Fix for Xenosaga 1 videos. Apparently the DMA chain modes can be
manipulated on suspend!
Nice one :)
Excellent job, works great!
it's always nice when devs get something they didnt see before. +1
Refraction never fails to impress =)

Revision 2830

Fixed the GoW IPU hang again.
Thanks for helping out once more, ksi3zyc :)
Just for a future note for this hack (incase we look back on this revision) the problem is the IPU recieves a sequence end code (essentially "end of video) code 0x000001b7 via FDEC (fixed 32bit decode), at this point the IPU should end, but for some reason it doesnt and tries to continue with invalid DMA's.
However the hack will work for now with just 1 error.

Revision 2831

zzogl-pg: Keep in sync with zzogl.

Revision 2832

Small change to savestates when IPU is busy.
Dunno what this random IPU work/interrupt was supposed to fix.
Hi, I wanted to say, that I think you did some big change in between r2822 and r2832, cause my game speeds have gone up like 10fps. I only tried Front Mission 4 and FF XII atm though. But another broken thing is, that the current revisions (after 1888) seem to crash my computer, when trying FM 4, no problems with FF XII though.

Revision 2833

zzogl-pg: Turn BUILD_CLUT into a function.
PSMCT24 is almost the same as PSMCT32, but have no alpha channel. So they both have same colour scheme.
Ah. That makes sense.

Revision 2834

zzogl-pg: Mess about with _Resolve.
And yes, RESOLVE_32_BIT should be changed from a macro to a function at some point. First, a few other macros called by it need to be dealt with, though.
It was a kind of mystery, and I made this *0 trick with reason. As you could see, there was some swizzling, that SOMETIMES (in some part of FFX, for example) was needed. But! Such stuff broke to many games, so hard to tell, how should we fix it.
Yeah, that's part of why I left the old code for reference. I figured we might need to put the swizzling back at some point.
the config dialog in windows is still messed up

Revision 2835

New "Peops SPU2-like" async mixing mode.
Can only be toggled in source for now, as it will lower compatibility.
Anyone who wants to try this, make sure to turn off timestretching in SPU2-X's options. And don't expect it to work perfectly, it's a nasty hack.
Great, this can be very useful in some games ^^
Great, I was waiting for something like this^^.

Revision 2836

Moved the async mixing toggle into the ini.

Revision 2837

Safer values for the new mix mode.

Revision 2838

SPU2-X: Reduce buffer overruns by, um, making the buffer bigger. Apparently I
was the first to think of this. (Also force time stretching off when the new
sync hack is on)
SPU2-X : Battle command sound effects in FFX is still incorrect.

Revision 2839

A few more adjustments.

Revision 2840

Tweaking the GS frame a bit, and reverse the meaning of that SPU2-X timestretch
enable boolean. Hate double negations! :p

Revision 2841

This should force the GS frame focus properly when doing a system execute.

Revision 2842

Fix for last commit :p

Revision 2843

Initial work on vs2010 project files for PCSX2 and plugins.
The *null projects don't build, and neither do ZZOgl or ZeroSPU2.
Pcsx2 project has some issues with Resources' custom build steps not being run.
Only Debug target tested.
Needs work before it's usable.
I can build ZZOgl-r2834 in VS2010 RC, from converted VS2008 solution file.

Revision 2844

Sorry missing files.

Revision 2845

Okay I just hate windows search a bit for missing these when I searched for
Theres STILL more props missing. Will TRY to commit them all after I fix the null plugins.
If you're talking about searching for files in win7..., I don't like it either.
That and the d2mned file handles, it just keeps exe's, coms, bat's, etc.
For like a min or 2 after running them.
F2ck's me up with batch make files...
I switched some of my own stuff to pure code/asm for the build type for fix the prob of not being able to save the file after running it in win7 :\.
I can't find any newer svn builds lately.
Tried installing vc2k8 express yesterday but failed midway.
I think I'm just gonna put a 2nd windows to the side just for it.
Oh and btw, old build but...
PCSX2 0.9.7.r2627 (modded) - compiled on Feb 23 2010
I didn't compile it...
Anyways, has an ntfs error with a non ntfs filesystem.
NTFS Compress Notice: Stream exception: General Win32 File/stream error [GetLastError: 1]
File/Object: H:\Emulation\Console\PlayStation2\PCSX2\memcards
With exfat filesystem, no acl's or compression or any of that stuff.
It's just the generic exfat implentation, not the other one with acl's.
I switched all my stuff to it mostly, it's of course betetr then fat32 that pos...
But it's not much better then ntfs.
But getting rid of the acl crap was worth it though, at least for everything but the win7 partition.
The bug also effects fat16 as well.
It also effects ntfs if compression is disabled in the registry...

Revision 2846

Made a special .props file for null plugins, since they seem to have a different
folder structure than the rest.
Add a ton of missing .props
Tell me if anything else is missing >_<

Revision 2847

Yet another missing .props ... ;_;

Revision 2848

Whee!!! More props added. /me slaps himself repeatedly.
Also fixed wxCore build in Devel/Release targets.

Revision 2849

Some more missing .props, sneaky bastards. (when you select a bunch of files in
search results and use svn > add, it ONLY ADDS A FEW! the rest remain ignored,
Some more wxCore fixes.
Fixed also inter-project dependency warnings.
Also some other fixed to get devel/release compiling.
Oh and apparently my VCproject folder got messed up and detached itself from
svn, so it wasn't commiting with the rest...
Sorry for the big mess ;_;

Revision 2850

Okay this HAS to be the last missing .props ... there's absolutely no more
.props files that aren't in the svn now >_<
Add some stuff to the ignore lists for svn.

Revision 2851

Apparently ZeroSPU2 has a 3-folder structure like the null plugins, instead of
4-folder like the rest, so make it use the other .props, so that it can be
Somehow there's a pair of files in wxcore that won't build correctly, even tho
they did build before... and it seems to work fine if I turn them off, so i did.
Current status: (since I don't plan on doign anything else tonight)
- padSSSPSX wont' compile,
- zzogl has link issues, apparently with zlib
- pcsx2 project fails to execute some of the resources' custom build steps, so they have to be executed manually using the "compile" option for the images in the Resources folder.
Unloading the 2 broken projects and manually executign the custom build step on the resources allows building a working pcsx2 with all the essential plugins, in Debug, Devel and Release SSSE3 (I assume release SSE2 and SSE4 also work).
Feel free to test vs2010-compiled pcsx2 for any bugs not present in vs2008 builds.
finish PCSX2 compiled by VS2010
1. C:\pcsx2\pcsx2\gui\Resources\rebuild.cmd need modify and VS2010 seem not run this file by default.
2. PCSX2.exe need two runtime DLL files -->> msvcr100.dll and msvcp100.dll
additional report
can't run FFX-2 international+last mission, here is log:
sceGsPutDrawEnv: DMA Ch.2 does not terminate
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
sceGsSyncPath: DMA Ch.2 does not terminate
libdma: sync timeout
sceGsSyncPath: DMA Ch.2 does not terminate
and ..... another failed report
can't run FF12-ZJS (international),
the same problem like FFX-2
libdma has some trouble.
sceGsPutDrawEnv: DMA Ch.2 does not terminate
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
libdma: sync timeout
Are those reports regressions caused by compiling with vs2010? Or you posted in the wrong revision?
all plugin (exclude zzogl and padssspsx) and pcsx2 was compiled by VS2010 has some problem on running.
but if compiled by VS2008, all system go.
Well the message is clear: don't use vs2010 yet.
The main build system will remain vs2008 until any compilation issues are solved.
libdma problem is fixed by r2857
vs2010 is working good.
>> pcsx2 project fails to execute some of the resources' custom build steps
In the RC version you had to add "cmd.exe /c " in front of the command to make it execute it. (cmd.exe /c "%(RootDir)%(Directory)\bin2cpp.cmd" %(Filename)%(Extension))
I will try

Revision 2852

Oh I inadvertently commited some changes to cdvdGigaherz, but I missed a file.
I'm not even sure the state that code was in, so it could just be plain broken,
need to check it later.

Revision 2853

- Better implementation of Reverse FIFO (Fatal Frame QWC Warning and more!)
- Improved handling of suspended DMA's, Also some traps in case DMA values are
changed during suspend (please report if they don't start with 5 or 6)
- Better handling of GS Path priorities, this improves many Path3 Masked games
such as Star Wars Episode 3, Gran Turismo 4 (slightly) and Videos like Digital
Devil Saga/FFX
- Removed Voodoo Cycles
- Doesn't kill everything this time :P
Looking good with the path3 games, Fatal Frame is indeed silent as well.
But there are a few issues.
Fatal Frame just totally lost the camera attack mode thing :p
Kingdom Hearts 1 just dies on the first double dma in IPU0 now (instead of working fine as usual).
At Tonelico is still broken from that last IPU commit, has a fff overflow into pad that's apparently unhandled.
Also broken from last IPU change is Eternal Poison.
I'm sure we can iron those new problems out :)
about Star Wars Episode 3
Issue 290 fixed but prtially, main menu video still flushing
Another isuue, can't run BIOS or games through BIOS, shows just blackscreen and overloaded EE counter *like was before when IPU was broken*
Onimusha 2 is crash again.
I haven't run into the Ar Tonelico issue, and I ran through the opening of 1 & 2.
I did see the KH1 issue. I worked around it by doing the following in DmaExec:
//It's invalid for the hardware to write a DMA while it is active, not without Suspending the DMAC
if (chcr.STR && reg->chcr.STR && dmacRegs->ctrl.DMAE)
if((reg->chcr._u32 & 0xff) == (chcr._u32 & 0xff)) //Tried to start another DMA in the same mode
DevCon.Warning(L"DMAExec32 Attempt to run DMA while one is already active in %s(%x)", ChcrName(mem), mem);
else //Just trying to change mode without stopping the DMA, so we dont care really :P
HW_LOG("Attempted to change modes while DMA active, ignoring");
// When DMA is active only STR field is writable, so we just
// call the dma transfer function w/o modifying CHCR contents...
return; // Test with Gust games and fatal frame
No idea if that breaks anything else, though.
Exact same problem as [email protected] 29 FPS though bios splash screen with EE saturated at 100%, black screen after that nothing runs.
Arcum: Ahh i can see the problem ive made there, ill sort that.
tatsuya + Autoran: ill look in to that issue, see if i can sort it :)
[email protected]: as your email address fails perminantly, have you got one which works? :P
I think this rev broke alot of games.

Revision 2854

vif.h -> Vif.h.
IOW, fix Linux.

Revision 2855

Fix typo that broke a few games in r2853. Thanks for spotting it, arcum :)
If youd waited 2 mins id have had it fixed :p replaced it with a proper fix.

Revision 2856

Fixes for r2853.
- BIOS works again, Issue involving GIF Tag looping from the VU (which must have
never worked!)
- Fixed KH freeze issue, possibly fixes Onimusha 2 as well. Thx Arcum for
spotting it, thanks Rama for trying to bring fast resolution to the issue
(however it wasnt quite right)

Revision 2857

Missed hwwrite.cpp in my last commit, whoops ;p
Alright, on to Arc the Lad. It has this in its intro FMV since r2853:
libdma: sync timeout
***** EE > Twice-thrown int on IRQ 4
libdma: sync timeout
ok can i get a dump please mate, im on irc
onimusha2 is still not working.
this rev fix vs2010 running problem. (libdma)
sakusox, provide me with a working email address i can then help get the game fixed with my changes, if youre just going to negative every commit because of it (even though this commit isnt directly effecting it), it's never going to get fixed.
[email protected]
have you got logging turned on!? thats the only reason it should crash like that...
Btw that email doesnt work and the video isnt any help apart from the above guess :P
can you email a blockdump (from a working version) to refraction[at]gmail.com, of course only if you try the latest revision again and it still doesnt work
blockdump, how do i do?
use linuziso plugin, tick the box that says "blockdump" next to it, then play the game up to (or past if you have a working version) the crash then send the file (7zipped preferrably)

Revision 2858

Further fixes for arc the lad, ar tonelico, eternal poison. (I presume so, i ran
out of blockdump, thats good, right? :P)
If you mean Arc the Lad Twilight of Spirits, works in software mode (slow on my PC of course).
It was having double dma issues.
In which part of the game? 'cause at the beginning of the game (all intro and the first town seems to be working fine in software mode of gsdx.
- Disney's Tarzan works fine in this rev (didn't worked in r1880)
- Wallace & Gromit The Curse of the Were Rabbit: Works fine with minor graphic glitches in hardware, perfect in software but slower.
+1 for this rev for sure.
eternal poison crash if you start a new game after the prologue (not sure if it was fmv), also the prologue fmv is garbled...
Hmm, the AR Tonelico ended too soon. Odd, I recorded more.
Anyway, this and Eternal Poison still die on their FMV.
For Eternal Poison just start a new game to see it :p
Arc the Lad is fixed :)
refraction, KillZone is broken by r2853
Thx Autoran, will takke a look
Btw Star Wars 3 broken once again in revs after 2853
Just tested Ar Tonelico and the intro fmv was flawless.
Or was it Ar Tonelico 2 that had problems?
Ok the Ar Tonelico 2 intro fmv dies near the end and the emulator hangs XD.
No messages in console.

Revision 2859

Fix the resources' build steps not being run (thanks ltc.inv).
sorta-hack-fix zzogl into linking with libjpeg7 and zlib (having the projects as
dependencies is supposed to link to the .libs automatically, isn't it?).

Revision 2860

zzogl-pg: Pull a check out of a for loop in Mem.cpp. Break CheckChangeInClut in
two. Turn a bit of repeated code in ZeroGS::CRangeManager::Insert into a
function. Work on creating a new tex0 struct.
I just noticed that the Persona games are both broken with ZZogl-pg. They just crash when you start them and are working fine with GSDX. But I don't know when they broke, sorry.
np. I'll look into that...
Hmmm. Works for me. There are still a few possibilities for me to check, though...
Looks like it's a Windows-only issue. That's always irritating...
I've got the issue narrowed down to changes made to ZeroGS::CMemoryTargetMngr::GetMemoryTarget in r2833. I'm trying to figure out which changes right now...
Fixed in r2865.

Revision 2861

Fix PadSSSPSX building, properly fix ZeroSPU2 and the null plugins too. Remove
nullplugin_svnroot.props since it's not used anymore (I misunderstood the way
props work).
Silence many of the warnings related to TargetName.

Revision 2862

- Improved Path3 Masking, Should fix Sega Superstars Tennis and hopefully
improve Star Wars Episode 3 some.
- Fixed bug in the GIF_Tag decoding which caused huge QWC values on GIF if the
FIFO was "read" beforehand.
Finally Issue 290 about Star Wars Episode 3 is fixed
Ref da man.:)
Sega Superstars Tennis doesn't hang now. Some path 3 errors (and some other graphic glitches) are still there. Flickering corruptions visible on screen if using default EE cycle rate. Increasing EE cycle rate to 3 fixes flickering corruptions but it hangs game in some stages.
This rev is an improvement for sure, at least is going in the right direction.
- Outrun 2006 now arrives at the game but freezes at the first moment when the car appears and the number 3 appears. (before it freezed at the menu) So it seems that the problem of that game is similar to the issue of Sega Superstar Tennis.
Sadly it doesn't fix Smash Court Tennis Pro Tournament 2 (still freezes at the menu and in the fmv sequence)
This revision breaks Tenchu: Fatal Shadows graphics. See Issue 748 .

Revision 2863

Fix for Eternal Poison video (really this time :P)
There is a current issue with IPU causing videos to cut short, going to need to
spend some time checking this
This commit breaks Valkyrie Profile 2's intro video.
Right, breaks all Tri-Ace engine FMV.
The cause is the additional check:
"&& IPU1Status.DMAFinished == false"
Do we really trust IPU enough to do this, ref? :p
theres 2 reasons it does that.
1. Tag interrupts get cancelled if its a next or ref or cnt command, when it should clear the dma, which would break Eternal Poison again :P
2. It shouldnt need to know till its finished sending the QWC content if its going to finish there or not. The only thing i can think of is the interrupt request in ipuchain, try taking out the "if finished = true or ifc < 8" check.
other than that, get logging and see what the DMA's do ;p
irc channel :p
I'm not sure how to log the DMA, I could send you a 7m~ blockdump of vp2 but your never on irc anymore :p

Revision 2864

zzogl-pg: Comment out a log message left in accidentally. Move the Gust checkbox
on the Windows dialog to not be on top of a button.

Revision 2865

zzogl-pg: Fix a few game crashes in Windows. (Reverted a few misc changes in
Good job, the Persona games are running again.

Revision 2866

pcsx2: A few misc changes. && != &. zzogl-pg: Comment out a log message that was
spamming in Mana Khemia.
ooh ty, silly typo by me there! it didnt do its usual "is this what you meant" thing.
Adding the pad overflow check to IPU1 as well fixes the Ar Tonelico hangs for now.
if (ipu1dma->pad != 0)
// Note: pad is the padding right above qwc, so we're testing whether qwc
// has overflowed into pad.
DevCon.Warning(L"IPU1dma's upper 16 bits set to %x\n", ipu1dma->pad);
ipu1dma->qwc = ipu1dma->pad = 0;
//If we are going to clear down IPU1, we should end it too. Going to test this scenario on the PS2 mind - Refraction
ipu1dma->chcr.STR = false;
Just happened to notice that in passing, did a bit of a doubletake, and figured I'd take care of it.
And yeah, we'd better put back the pad overflow check for ipu 1. Hopefully at some point we won't need them, but for now we still do on occasion...
Naruto Accel 2 is broken in this rev the screen flashes in the main menu and if I try to select something the emu or my display driver crashes.
Its not GSDX problem.
I do not know which rev broke it (will have to track it down)
Tracked it down it started in r2853
Also between the flashes there is also
sceGsSyncPath: DMA Ch.2 does not terminate
<D1_CHCR=70000045:D1_TADR=008ed380:D1_MADR=008ed390:D1_QWC=00000000> <D2_CHCR=00000101:D2_TADR=00000000:D2_MADR=008ed4f0:D2_QWC=00000009>
sceGsSyncPath: DMA Ch.2 does not terminate <D1_CHCR=70000045:D1_TADR=008ed320:D1_MADR=008ed330:D1_QWC=00000000> <D2_CHCR=00000101:D2_TADR=00000000:D2_MADR=008ed400:D2_QWC=00000009>
sceGsSyncPath: DMA Ch.2 does not terminate <D1_CHCR=70000045:D1_TADR=008ed380:D1_MADR=008ed390:D1_QWC=00000000> <D2_CHCR=00000101:D2_TADR=00000000:D2_MADR=008ed4f0:D2_QWC=00000009>
sceGsSyncPath: DMA Ch.2 does not terminate
<D1_CHCR=70000045:D1_TADR=008ed320:D1_MADR=008ed330:D1_QWC=00000000> <D2_CHCR=00000101:D2_TADR=00000000:D2_MADR=008ed400:D2_QWC=00000009>
sceGsSyncPath: DMA Ch.2 does not terminate <D1_CHCR=70000045:D1_TADR=008ed380:D1_MADR=008ed390:D1_QWC=00000000> <D2_CHCR=00000101:D2_TADR=00000000:D2_MADR=008ed4f0:D2_QWC=00000009>
As above for .dot Hack GU Reminisce. Menus flash and videos hang with above message looping.
will look in to it later, a block dump for naruto emailed to me (refraction [at] gmail.com) would be handy for solving it ;p
The X-Files graphics broken from this revision

Revision 2867

Small fix to the real time clock.
Should work correctly now when booting through the BIOS (and the correct time
zone and daylight saving settings are set).
Yay! I was waiting for this a long time.

Revision 2868

RTC fix attempt #2, thanks Bositman :)
And Gigaherz, too. Sorry :p
Gigaherz helped too :) I'd like people with different GMT timezones to test this and confirm it's 100% working.
Do remember to set the GMT timezone in the PS2 BIOS as well, and the correct Daylight Saving Mode there too before checking
Works in GMT -5, matches my system clock exactly.
Problems with game darker screen. begins pcsx2 r2853
pcsx2guide (ala bosit :P): I originally did the RTC from GMT, probably why it was how it was xD didnt realise it wasnt quite right for everybody else. Didnt matter too much as long as it was "valid" it made katamari damacy and MGS3 run :P
Still baffled how the "clock" stopped MGS3 booting lol
The RTC controls a lot of events in Star Ocean 3, so a correct time is needed for nice gameplay there :p
The date is one day later than current day, Here's in TimeZone GMT+8.
For example.
Current date and shown in 0.9.6 r2186: 2010/04/18
But shown in 0.9.7 r2869: 2010/04/19
SuperFQ: Are you sure you've set the timezone in the BIOS to GMT+8 as well?
I do set a timezone of GMT+8 in the PS2's BIOS.
the ablove post submitted at about 4:30 AM
If I set local date and time to: April 18th 2010 4:00 AM
showing in 0.9.7 it was: April 19th 2010 4:00 AM
One day later in 0.9.7.
Now current date and time is: April 18th 2010 9:03 AM
showing in 0.9.7 it is exactly correct: April 18th 2010 9:03 AM
it was wrong at 4 AM, but it was correct at 9 AM. I dunno what happened.

Revision 2869

IPU fix for a few games. Bring back the overflow into pad area handling for
no more hang in Ar Tonelico 2 :)
yep AT2 is fine again ^^
I know you are working on VS2010, this revision can be built with VS2010 Professional.(I downloaded the final 30-day trial version of VS2010 from Microsoft site)
But on Windows 7, after closing 0.9.7 r2869, an Application Error window popped up.
The instruction at 0x0(here are six random numbers)c referenced memory at 0x0000001f. The memory could not be read.
nothing seemed unusual in emuLog.txt
Besides, could you update the pcsx2_suite_2010.sln and its related files in the trunk of legacy gui? Because the files designed for VS2010 beta 1 no longer suitable for the final version of VS2010.
Stat Ocean 3 FMV( maybe other TriAce) not working yet.
My last working binary is 2858 (but can broken at 2866(dont know :( )
Yep, known. Working on it ;)

Revision 2870

Fix a memory leak with the blend interlace modes.
well that was easy and usefull, nice one because I always use one of the blend modes.

Revision 2871

Minor RTC day fix. Still getting times an hour off, but apparently not the case
for everyone.
Fixes the case when local day != GMT day.

Revision 2872

The RTC bug doesn't exist. Well, it was a little buggy, but not in the reported
way. I've made the code clearer.
The PS2 BIOS does not feature automatic DST adjustment! You have to set DST from
the triangle button menu on the date/time in the BIOS!
looks like this is a group effort lol. So even EU consoles are GMT+9?
Way to go, it was really fixed this time.
And it says the correct time! :)
Yes, even EU consoles. If you enable the logging on the low level cd clock write code it's quite obvious.
I correct date/time, but GOW does not work, other games work, like Kingdom hearts, onimusha.
any suggestions for the operation?
Kanon: as far as im aware GoW doesnt rely on the RTC, have you checked other revisions to make sure they aren't the culprit?
Yes, starting from svn 2869 does not work anymore, but i will get other versions and I will check in detail.
thanks for the tip!!!!
Sorry everyone for my stupidity, iso GOW was only 42k, do not know what happened, but it is already solved my problem, excuse me for my mistake, it's working perfectly.

Revision 2873

Clear interrupts on double dma requests. Fixes the game Fahrenheit (Indigo
Thanks to "blood" for the discovery :)
yeh need to redo that function, still dont think its quite right, but some games hated it being changed (FFX videos for one) which did some double dma stuff, which it should do!
need to research :P
reason i say that, is because the "else" should have psHu8(DMAC_ENABLER+2) == 0 being checked too. At the moment if the DMA is suspended or the lower contents are different in the value to be written it ignores it.
the only valid methods of writing to the chcr while STR is set is by suspending the DMA with the forementioned register. so we should have the following conditions.
chcr.str + value.str set & lower contents match = ignore it completely
chcr.str + value.str set & lower contents dont match = only allow them to change if DMA is suspended
chcr.str + value.str are different & lower contents unimportant = only allow if dma suspended
chcr.str not set + value.str set or unset = allow it to write everything.
oops just to clear up, 2nd to last one only applies if chcr.str is set and value.str isnt ;p
Yeah, it's the center piece of the Evil DMA scheme.. :p
its ok, ill work on it tonight when im figuring out ipu bugz ;p
Awesome fix!
DMA is what makes a game to boot on the emu or not, right? I mean black screen or exit the emulator...
PS: In other things, in the previous revisions (for sure works in r2866) of PCSX2 The Mummy Returns is now playable in PCSX2 (in latest official beta 1880 the game got a lot of missing textures), but i'm not sure where the game started to work fine.
gladiator: not quite, but yes games are dependant on dma's working

Revision 2874

New less intrusive BIOS skip hack replacing the old BIOS skip hack. Works with
Ico, Tekken 5, and probably any other games that were problematic with the old
Changes to patch system required by this and fix for boot time (first field = 0)
patches when booting through BIOS.
Store Sony part number for the game disc globally for future use in selecting
game fixes, patches, providing information to the user, etc.

Revision 2875

-Rewrote the DMA checking functions as per the manual specs so certain
situations can alter the DMA's while busy.
-Improved DMA Queuing slightly, less "all over the place" code.
-Jiggled some IPU bits around to clean up some clutter.
-Added the FFX and Digital Devil Saga video fixes as a Gamefix for now. Due to
the delay involved, this causes other videos to terminate early, so now disabled
by default.
-Added a load of logging for hardware in dev builds (also now label more
correctly) and some bits for debugging IPU easier. Some are commented out, but
can be enabled for testing.
-Made a small clarification in VIF
It's cool i hope, but KillZone still broken after r2853
I realise killzone is still broken, i will get round to fixing that :)

Revision 2876

Onimusha 2 fix, Trying to do a divide with an uninitialized variable = bad!
Go, Refraction ! :D Thanks mate, for the hardwork !
Great, Onimusha2 fixed!
thx, Ref :)
game fixes ftw.
Neo Contra started working :)
Nice one !!
awesome job refraction!
Fahrenheit (PAL) doesn't work in this revision (don't know if it ever worked before since i didn't got time to compile them).
gladiator can you check r2873 and see if it works on there?
Yes, Fahrenheit (PAL) works in r2873 (a friend compiled the version and i can finally test it there), but not in r2876 so something got broken in the changes between them.
Given rama a fix to upload, it was my fault, i can see why the original fix worked by this current code doesnt, it makes sense (rather than being hacky)

Revision 2877

Committing some changes to the dma code for ref.
Fahrenheit should've worked again with this, but it decided not to.
We're still working on it :)

Revision 2878

Fix for Fahrenheit :)
Good job :)
This also means that the interrupt disable on dma cancel code can go, I guess.
Commenting it out until we find something that wants it maybe?
well the code i have in there is for a different situation, it is still valid. yours was for double dma's, this one is if it is force stopped (which it can do)
Ah, means my carefully coded stuff can stay :p

Revision 2879

Fixes for Tri-Ace games and Dark Summit (Which seems to use a similar video
engine). Also a couple of other modifications for IPU resuming
Good news!!
The full SO3 intro runs fine (there were some glitches in it once :p )..
vp2 seems fixed also :p
And Radiata Story.
No need to test even, those 3 games always go together :p
This is the best I remember IPU ever working and these changes make sense.
Def jam Fight for NY fixed on last revs
:) Star Ocean 3 FMV working now.
Autoran: That was probably r2875, however im told it was a long standing hard crash, glad its fixed :)
Thanks Ref, for fixing another one issue that've been here for ages :)
Great!! When Outrun 2006 fix????
when did outrun break and whats wrong with it? I cant fix it if i dont know about it :P (however something niggles me that i did know, so apologies there)
Outrun 2006 (Coast to coast) never worked as far as i know, the game got the same issue that Sega Superstar Tennis, they freeze in different places of the game depending of the svn, until the latest releases it freeze at the license, now it freeze at the beginning of the race when the first numbers appears...
I suppose that if Sega Superstar Tennis will work perfect someday, Outrun will work...
yeh i knew it was niggling me, send me a dump of as far as it gets to refraction [at] gmail.com and ill take a look :)
Ok. Gsdump done.
@ refraction i have posted and error report before about outrun 2006 i guess it may have been deleted dunno why.
it probably is still there, just too lazy to look :p
broke dragon quest viii ntsc

Revision 2880

RTC: Testing with real hardware showed that the 0x80 written to the month is not
read back. Just discarding it for now.
Thats what happens when developers (not pointing the finger at me at all, lol) base their RTC code off the emulator writing the dates to the RTC when changing them in the bios :P
Yes, I noticed that. I do wonder what the real hardware does with it, assuming that it's not getting in in the first place because of a bug. The bios and some games are tolerant of it, but a simple date printing routine shows that it shouldn't be read.

Revision 2881

RTC: correct date change at midnight bordering the 28th and 29th of January on a
leap year.
You mean February, correct?
Yes, fortunately computers only care about numbers, not names.
ah yes, leap years, didnt think about that ;p
In the Gregorian calendar there is a leap year every year divisible by four
except for years which are both divisible by 100 and not divisible by 400.
Think that code needs slight changes ;)
And I think I said it wrong (I blame english not beeing my mother tongue). Suppose its better to quote wikipedia :D
"Years that are evenly divisible by 100 are not leap years, unless they are also evenly divisible by 400, in which case they are leap years.[1][2] For example, 1600 and 2000 were leap years, but 1700, 1800 and 1900 were not. Similarly, 2100, 2200, 2300, 2500, 2600, 2700, 2900 and 3000 will not be leap years, but 2400 and 2800 will be"
Sounds WAY too complex with no actual benefit :P I'd never bother with it but maybe pseudonym will take it up :P
Well code for that is quite simple. But you are right that there is really no benefit on this. Not to mention I doubt pcsx2 will be used much around 2100 which will be first year where current code will have bug :D
But hey I'm not the one who decided to fix leap years in the first place :P
So for perfectionists pseudo code below. Can be cleaned up a bit with conditional expression like (cdvd.RTC.year % 4 == 0 ? 29 : ) used in original code. Not going to comment about this any further since it is pointless to even fix this :)
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 1; /* leap */
return 0; /* no leap */
Anyways keep up the good work with emulator! Really love the progress there has been lately <3
Sky Odyssey still broken since r2853 ~ r2858 when all the IPU changes and what not were being added. Says running at 60 FPS but crawls to the "Activision" white screen <1 FPS then stalls there, no console messages out of the ordinary, was near perfectly running before.
For sure improvement.
Working in this revision:
- Taz Wanted (probably fixed when Buffy and The Mummy Returns were fixed): Works perfect.
- Dynasty Warriors 4 Empires: Game works fine in r1888 the fmv sequence wasn't displayed.
- Fahrenheit: Working fine.
Could you open an issue for this? And a blockdump would be awesome :)
Oh, also note that the few games we could test seem to not care about the time zone adjustments.
They read the RTC info just fine, but the time zone in games seems fixed to gmt+9, japan.
gladiator: they were probably fixed int he few previous revisions.
juzzzu: does it really matter in that case? i doubt any of us (including the emulator) will be alive to see 2100, so why should we care? :P
I just found SoulCalibur II (JP) is broken between 2872 and 2876 (just black screen), can some one take a look?
refraction: Sure, but you probably know that we can't test all the revisions, so i check some games in a specific version. If a game seems to works fine in a revision i usually don't test it again in next ones 'cause it will take forever to test all the games in all the revs. Other thing will be in final version for making a compatibility list.
I can tell you some games that got broken (Mafia arrives in game in previous versions but now it stops in the first or second logo before the memory card check), but is logical that when you make big changes to the emulator some games got broken.
this is true but we need to know about them if they arise :)
mkwong: ill have a look
That could be a big list...
Do you want to know about regresions only or game in the same state (I mean in this case games that never worked on PCSX2)?
I knew someone would nitpick about the definition of a leap year, here's why I just used every 4th year:
The PS2 RTC stores a two digit year in binary coded decimal. Sony's own date formatting routines hardcode 20XX. 2000 is a leap year.
mkwong: r2874 broke sc2
Well it would be nice if people told me these things. And commented on the right revision.
Okay, that's actually broken over 500 revisions back. Possibly never worked. The trick is that is worked... with the old bios skip hack. It didn't work if you boot through the bios. The new bios skip hack just makes the bios load a different elf than it normally would, so it's using the same code path as booting normally.
ramapcsx2: Posted, issue 666
btw as of r2853 -> Star Wars Racer Revenge doesn't work anymore it says
vtlb miss : addr 0xC4, mode 1 [write] (it repeats 4 times)
then the game goes into a crawl even if GSDX says 60 fps.
Star Wars should be fixed now in r2886
Sky Odyssey should also be fine now.

Revision 2882

Fixed a small VIF FIFO error on my part, and clarified the clarification on vif
direction ;p

Revision 2883

Map uninstalled main memory (>32MB). I can't see any suggestion in the manuals
that accessing these addresses generates a bus error or tlb miss (and they are
in the bios default tlb initialisation), so I'm assuming that it acts as write
only memory for both DMA and normal accesses. The write-only implementation is
a little sketchy for DMA, but it's very unlikely to matter in practice.
Changed dmaGetAddr to not lookup addresses in the TLB.
Forgot to mention why I did this. Soul Calibur 2's main binary has sections loaded just after the 32 megabyte mark that were presumably used for debugging on development kits which have more memory than consumer consoles.
take care with tlb or vtlb, for what i remember it generated a problem with brazilian windows xp, the older devs can talk to you about it. :|
That was pcsx2 VM. Those days are over :p
Good job :)
Great! Thanks!
rama, good to know.
Perhaps the memory range uses aliasing, i.e. 0x00000000 = 0x02000000 = 0x04000000 = 0x06000000 etc. (until the end of the range, I don't know how big it is).
At least I have seen this behaviour in a MIPS SoC (but a router one), and was used to determine the memory size (write magic value at 0x0 and increase n and check 1 << n until you find it again).
I can't really see that being the case on the PS2 but... maybe. It's simple to test, but my tester's on strike :)

Revision 2884

For some reason we're getting a lot of 0x2XXXXXXX addresses in DMA. No games
seem to break because of this but it's very noisy. Putting the mask back in
dmaGetAddr for now for a little peace and quiet. (Maybe it's even right. The
high bits could be handled by the bus.)

Revision 2885

The usual batch of Linux fixes.

Revision 2886

Bugfix commit. Please test your recently regressed games with this :)
(Typo'd a path2 clear instead of a path3 one.)
will test when i get home :)
Neo Contra was giving me a lot of DMA errors.
nope still no go:
Neo Contra is giving me in the first part of mission 4 a spam of
*PCSX2*: DMA error: 11004000
then after some time a spam of:
vtlb miss : addr 0x30, mode 0 [read]
vtlb miss : addr 0x20, mode 0 [read]
vtlb miss : addr 0x0, mode 0 [read]
vtlb miss : addr 0x30, mode 0 [read]
vtlb miss : addr 0x20, mode 0 [read]
vtlb miss : addr 0x0, mode 0 [read]
vtlb miss : addr 0x30, mode 0 [read]
vtlb miss : addr 0x20, mode 0 [read]
vtlb miss : addr 0x0, mode 0 [read]
vtlb miss : addr 0x70004CB0, mode 0 [read]
vtlb miss : addr 0x70004CA0, mode 0 [read]
vtlb miss : addr 0x70004C80, mode 0 [read]
vtlb miss : addr 0x70004CB0, mode 0 [read]
vtlb miss : addr 0x70004CA0, mode 0 [read]
vtlb miss : addr 0x70004C80, mode 0 [read]
vtlb miss : addr 0x70004CB0, mode 0 [read]
vtlb miss : addr 0x70004CA0, mode 0 [read]
vtlb miss : addr 0x70004C80, mode 0 [read]
vtlb miss : addr 0x70004E30, mode 0 [read]
vtlb miss : addr 0x70004E20, mode 0 [read]
vtlb miss : addr 0x70004E00, mode 0 [read]
and in the second part:
vtlb miss : addr 0x0, mode 1 [write]
vtlb miss : addr 0x20, mode 1 [write]
vtlb miss : addr 0x10, mode 1 [write]
vtlb miss : addr 0x28, mode 1 [write]
vtlb miss : addr 0x30, mode 1 [write]
vtlb miss : addr 0x40, mode 1 [write]
vtlb miss : addr 0x38, mode 1 [write]
vtlb miss : addr 0x50, mode 1 [write]
vtlb miss : addr 0x58, mode 1 [write]
vtlb miss : addr 0x60, mode 1 [write]
vtlb miss : addr 0x68, mode 1 [write]
vtlb miss : addr 0x70, mode 1 [write]
vtlb miss : addr 0x78, mode 1 [write]
vtlb miss : addr 0x80, mode 1 [write]
vtlb miss : addr 0xC, mode 1 [write]
vtlb miss : addr 0x4, mode 1 [write]
vtlb miss : addr 0x8, mode 1 [write]
vtlb miss : addr 0x20000006, mode 0 [read]
vtlb miss : addr 0x20000006, mode 1 [write]
vtlb miss : addr 0x20000006, mode 0 [read]
vtlb miss : addr 0x20000006, mode 1 [write]
vtlb miss : addr 0x20000006, mode 0 [read]
vtlb miss : addr 0x20000006, mode 1 [write]
vtlb miss : addr 0x20000006, mode 0 [read]
vtlb miss : addr 0x20000006, mode 1 [write]
vtlb miss : addr 0x162, mode 0 [read]
vtlb miss : addr 0x166, mode 0 [read]
After this it gives me a:
# Syscall: undefined (0)
and the game hangs.
Sorry for the gigapost hope it can be of help
LE: it hangs in every mission in the 3D part with that lot of vtlb misses, dma errors, and hangs when that syscall shows
Star Wars Racer Revenge works again, textures flash a little but at least it doesn't crawl anymore XD
Is that a video trying to play by chance?
Oh, and one vtlb miss is disaster enough, thanks :p
nope its not any video it's the ingame 3D of the game more exactly if i move it vtlb misses and hangs. The videos work fine.
Again sorry for the big post.
No problem :p
Can I have a block dump of that?
Problems with PAL games. Don`t play yet. add one gamefix about this, Please.
Gamefix for what?
PAL games work just as well as NTSC ones.
and Naruto Ultimate ninja 5 PAL. Don`t played. No way
@ rama : ill make you one now i just woke up :)
i made it here it is : http://www.4shared.com/file/zcaN5Swk/Neo_Contra.html
at the second konami logo press start -> 1player -> choose mission 3 -> skip the fmv with the mountain/volcano -> you will be ingame just try to move and it will crash
hmm, looks like Scratchpad isnt able to access the VU memory anymore, at least not in that case!
This is ONE game, not all PAL games.
You already have a history of bad reports here, please try to do correct ones.
Look at andutrache's report here, that is helping. Yours is just complains.
Simply complaining about the X game that doesn't work isn't going to help the devs fix it.
If you want to complain do it the right way (posting errors / making blockdumps / posting screenshots etc..).
Also keep in mind that the devs aren't gods and it takes them lots of thinking time to think how to fix some problems since the code is very complex (the devs don't have any make X game work switch), this adds to the fact that when a game is fixed others must be tested to prevent regressions.
I hope you understand what i'm trying to say here.

Revision 2887

Oops, lost the quadword alignment in dmaGetAddr

Revision 2888

And one other bugfix commit. Hopefully fixes more stuff :)
Wow, 1000 since last beta. Keep up the good work!
@ mkwong
I was gonna say the same thing =P
yeah, it really is time for another official beta or something like that
or maybe there are to many games getting fixed and broken and refixed and others get broken and so on ... it is to unstable right now because of the IPU changes and probably an official 0.9.7 release in not entirely plausable.
Anyway, IMHO, there should have been a beta/official release exactly after the old SPU2-X bugfix which prevented many games from booting (aka Burnout Games)
But it is good to see that the emulator is getting serious activity, the compatibility improvements are really awesome, honestly there aren't too many important games that don't work with this emulator, GREAT JOB!
I was hoping this will fix Eternal Poison text problem but no luck :p
The March 11 plugin pack released has all these SPU2-X games fixed along with GSdx fixes. What is still lacking is a PCSX2 beta, but as you also discovered things are not stable enough for something like that
apologies for the above bugs, my brain stopped working ;p
KillZone works again
Either this one or r2886 fixed Sky Odyssey back to the way it was :)
Glad your games work again guys :) apologies for my bugz!
No need for apologies Ref. You're working hard. You'll figure it out. :)
Pro Evolution Soccer 2010 is broken in this release (tlb miss or exit the emulator depending of the speedhack that is enabled)...worked in r2881 (with the same speedhacks) and in r2819 for sure.
Mafia is still broken in this release (worked for sure in r2425).
Please don't call it a release, it's a svn snapshot.
Wording it like that gives the false assumption that this is ready code.
It's not, we're working on newly discovered stuff, trying to get it right.
Football Kingdom still doesnt boot :'(
Sigh, what's with these one liners people? :/
Did Football Kingdom ever work?
When did it stop working then?
What does it do when it hangs?
Any console messages?
no, never did.
console shows nothing when hangs, main screen plugin goes just black.
Thanks, that helped :)
WOW, pcsx2 has had a lot of major changes in the past couple of weeks.
Actually it worked with 0.95 i think but consistently crashed after 2 goals were socred

Revision 2889

Fix for Neo Contra to stop crashes and DMA spam
This will probably help other games giving DMA Error's in recent revisions too
A bunch of games use DMA to access 0x2XXXXXXX addresses (rama mentioned FFXII, I found that wizardry does on load). One game is known to access >=0x10004000 addresses after masking. Which is more likely to have an upstream bug causing a bad address, one game or many?
Please explain your reasoning for this change.
Ah, furthermore I should mention that masking the top three bits makes sense as that would mean the 0x70000000 scratch pad start address is 0x10000000. i.e. the end of main memory (maximum installable).
many games use scratchpad dma to access the VU memory which is mapped to 11004000 (as you may know) thats why there is a load of clearing in there. This is why Neo Contra was spamming DMA error and finally crashes as soon as you move. So reporting an error at 0x10000000 is obviously incorrect, but changed the mask so we can capture those 0x20000000's to report the NULL correctly (anyway the scratchpad thing returns before it even gets to this point, so that isnt an issue)
With these changes, errors are gone and no more crash.
According to your changes it is 0x20000000 and above which isnt installed, which is why i have the DMA error check return starting there rather than at 0x10000000 which is what youd put in.
I tested soul calibur and FFXII, they are fine still, with the benifit the games that broke work again too :P
If games are still problematic, then this needs rethinking, but for now id rather be safe than sorry.
It may be the mask was correct, that could possibly be changed back, however ill see how it goes with this, get rama to try a few things
Oh and please dont negative unless you ACTUALLY know it breaks things. Making assumptions because its your code im changing isnt call for negatives.
Well according to the docs, you shouldn't be able to access VU memory using DMA (except of course with VIF). DMA does not go through the TLB and is only documented as being able to access main memory and the scratchpad. If you think otherwise, this is testable on real hardware.
actually if you read the manuals, scratchpad is built directly in to the EE Core which CAN access the VU memory (i recommend the VU manual) and so can access the VU memory without problem
I don't see why we need to block and throw error (= crash) though.
As the Contra example shows, that's only going to lower compatibility.
+1 from me, as with this fix Contra runs 100% fine.
hellmegadeth, you obviously missunderstand the system, coming in to a revision, ranting none of your games work (and even stating "not only for this revision of the emulator") is NOT how it works.
If you have issues, post an issue in the issues section. so please refrain from ranting and negativing randomly.
Back to the troll cave with you! :p
Okay, if this functionality is restricted to scratchpad DMA, that needs to use a different function than dmaGetAddr.
And hellmegadeth is full of shit re. NTSC-J btw, but we all knew that.
It's restricted to VU0 memory, VU1 memory is only accessable via VIF (and of course the GS when doing an XGKICK) but VU0 is addressed to the physical memory and accessable via the EE Core.
So yes a seperate dmaGetAddr for SPR would be good, just wanted to get a quick fix up for those games, then let you look in to it a bit as you started work on that side of things
I did just see the comment in the manual about this and it specifies that the scratchpad channels can access VU memory (both 0 and 1). It does not mention whether micro memory is accessible nor whether the mirror maps for VU0 work, so those need testing.
Your change doesn't re-enable access to VU memory BTW. It just prevents a bus error from occurring on any attempt to access it.
Is the VU memory we have not mapped to main memory then? I couldnt seen any graphical errors, so i presume its getting the data it needs
thank you very much for the fix :)
Keep up the good work !!!
It hits the conditional below that now, which is for uninstalled memory and is meant to discard writes and read zeroes. If it didn't, it'd be trying to access psM + 272MB, which would likely segfault.
The game working perfectly despite this doesn't present a strong case for this map being necessary.
Uh huh. Espgaluda for one says you're full of shit about NTSC-J. We know that many games don't work, the emulator's a work in progress.
Please stop using all uppercase, hellmegadeth. It usually represents you are yelling, and yelling is not a civicised way to discus an issue.
Our work does a marvelous job on more than half of all PS2 games, and the other half is slowly following.
It does require a smart user sometimes for the tricky games though.
A user smart enough to try a few things out before declaring a game not working.
(I know for a fact that the PoP games work great.)
I suggest we all put a mental "ignore" on hellmegadeath. (until proper conduct).
OMG hellmegadeth your favorite games DONT WORK??? Better ask for a refund for all the money you gave us...oh WAIT you didn't pay SH*** for this!! Fix the emulator yourself or stfu and leave the people who know how to do their job properly...for free.
+1 for last comment
hoho :D
Thanks guys

Revision 2890

Improved my previous fix, Psychonaughts exhibited behaviour sudo mentioned (data
not being grabbed from VU) so added a seperate SPR handler.
Removed an old check which is useless now and added a new replacement one.
good Neo Contra is back how it was + some backgrounds are fixed.
i have yet another Neo Contra bug (might as well report it):
It's about mission 1 which hangs with a white screen:
I can still manage to start it with a patch made by Nachbrenner (an old patch) which says:
//fix IPU busy! ingame <-- this is what it says in the patch
With this patch the mission starts but it hangs if you kill too many enemies with 1 shot.
Also during the mission i get an infinite spam of :
Vif1: Unknown VifCmd! [3f]
*PCSX2*: DMA error: 3f4cccc0
Vif1: Unknown VifCmd! [3e]
And this is a screen if how the latter part of the level looks:
And a new blockdump for you:
i hope this helps.
This fixed Hitman 2 which now boots again :) It still prints a DMA error but that is gone in r2898

Revision 2891

Chcr is a non-pod type.
it worked, but ok ;p (damn picky linux!)
Oh, it compiled on Linux, it just had all these warnings that it will abort at runtime if the code was actually executed.
But yeah, according to the C++ standards, anything that isn't a pod (basic C) type shouldn't be passed to a function with variable argument types, and results in undefined behavior.
In practice, that means that we either need to do ._u32 when printing chcr's (and our other structs), or .desc(), which I put on most of the structs, and returns a wxString, in some cases with formatting.
It shouldn't be as much of an issue once C++0 is actually implemented, iirc, because they extended the definition of a pod object to include simple structs and classes.
(To be honest, I don't think I've actually seen a crash due to it. I think I might have seen bad output because of it, though.)

Revision 2892

Reinstated 0x10000000 limit on uninstalled memory map for DMA. Removed
scratchpad support from toSPR/fromSPR address translation (this is documented as

Revision 2893

Adjust Ipu1Dma to use the helper functions in Dmac.h for tag transferring. A few
minor changes.

Revision 2894

Set svn:eol-style=native on all *.c *.cpp *.h

Revision 2895

Minor changes:
- Removed small line on PATH3 masking
- Fixed a smally bug from my previous cockups
- Replaced the SIF irq hack with something that makes more sense.
- Removed the vif1DMA call from IPU, this was just causing double IRQ's on VIF1
in Klonoa
refrac is on firah like rama was time ago. :)

Revision 2896

zzogl-pg: I don't think this should be hardcoded to 640x480...
I bet that 480 that RenderSetTargetBitTex uses should be conf.height as well...

Revision 2897

Removed all trailing whitespace in *.c *.cpp *.h because it irritates me.

Revision 2898

Fixed small bug where if a DMA is started with an 8bit or 16bit write, it can
repeatedly try to start the DMA (shouldn't be many games doing this anyway).
Adjusted some IPU logging.
not sure which version fixes the issue bug Grandia 2 PAL is working again with this revision (not with r2888) :)
well actually not so good... it only got through the first CG after selecting New Game and freezes :(
dragon quest 8 is also broken with this revision.
Outrun 2006 works in this svn!!! Minor graphics glitches but playable in Direct3D9 (faster than direct3d11). Suppose that was fixed in r2895 but only could test this release.
- PES 2010 works again in this svn.
PS: Indiana Jones & the Emperor's Tomb is broken since r2876 (before that it was ingame not stops at loading screen).
MK Shaolin Monks now works! *fixed on one of the last revs*
weimingzhi: We're lookign in to DQ8, grandia 2 i didnt know was ever broken, so ill have to look in to that.
gladiator: is it definately 2876 it broke in? seems a little wierd..
glad all the others fixed up nicely :)
Indiana Jones & the Emperor's Tomb goes ingame as before in r2876 (with the usual lots of graphics glitches and only worked in software), doesn't work in r2881, 2888 or 2898.
Works too in this r2898:
- Just Cause (in software mode almost perfect, minor glitches but playable)
- Sega Superstar Tennis (playable with glitches specially in characters graphics).
- Pirates! Legend of the Black Baccaneer: Playable now (in previous svn was tlb miss if i'm not mistaken).
weimingzhi: dq8 broke back in r2879.
refraction: glad to hear you know about it and are looking into it :)

Revision 2899

zzogl-pg: Start reworking the way logging works.
Oh, and I changed the codeblock project to have Debug, Devel, and Release builds.

Revision 2900

zzogl-pg: Got rid of the logging macros. Changed the text of some of the
messages a bit.
It seems you missed some ERROR_LOG's. For example at GSmain.cpp:714
See what you mean. Weird that it kept compiling afterwards for me. Committed.

Revision 2901

zzogl-pg: Get rid of RELEASE_TO_PUBLIC, and use ZEROGS_DEVBUILD instead. Fix a
typo I noticed.

Revision 2902

zzogl-pg: Revamp the crc code to pull from a table, and add a few crc codes.
Based off of code from GSdx.
I have missed this break statement, it's a mistake. Remove additional option completely.
Sounds good, I'll go ahead and do that.

Revision 2903

zzogl-pg: Remove a few hardcoded game options that shouldn't be there.
One or two misc changes made their way in. I'll have to check and see if they cause issues.
I strictly recommend don't use A-B>>C constructions without braces -- there was a few issues with priority order here, so missing braces are direct path to mistakes!
agreed. The order of operations on >> are odd compared to other operators. They annoy me and I always use () on them.
Yeah, I noticed the missing set of parenthesis after I committed, but was in the process of leaving to go shopping, so I hadn't had time to fix it yet.

Revision 2904

zzogl-pg: A few parenthesis went missing in my last commit.
something weird seems to be happening on the MemoryCards page in General Settings. it says that port 1 and port 2 are empty however in game saving works perfectly. also the browse button and the textbox next to it are unusable.
That's because the whole memcard section isn't coded yet. And this has nothing to do with this commit which is ZZogl.

Revision 2905

zzogl-pg: Missed a few ERRROR_LOGs.
yay! it compiles again .)
Yeah, not sure how I missed those three, because I know I've compiled several times since then...

Revision 2906

Fix for Dragon Quest 8 videos, possibly the others which were stopping early
too, will need testing.
not sure yet but i think you broke Atelier Iris 2 FMV.
Building a rev before this so i can properly test.
Yes you did r2898 works fine while with r2906 i get:
1. An "Impossible blend for D3D: (Cd - Cs) * As + Cd" message (what's this ?)
2. Corruption (screen flashes pink 1 or 2 times)
3. PCSX2 crashes.
which video? and how far in?
the intro when the Atelier Iris 2 logo appears.
ok wait for the next revision then, as it seems fine to me, ive watched most of the intro FMV's now.
ok :)
The new crash in Atelier Iris 2 happens on the usual spot. It's prolly to do with the into-pad overflow that happens there:
IPU1dma's upper 16 bits set to 3
New is:
IPU1 running when IPU1 DMA disabled! CHCR 30000005 QWC 0
dont think it is that, it was because ipu forces itself to grab data from the IPU, im trying to make the DMA independant from the IPU itself to stop these things happening. in the works :)
good the fixes arent being reverted, instead new one are being made, nice.
Seriously ?? Can I watch DQ8 videos now ???
yes you can..
Rar Rar ! Amazing ! Thanks a lot !

Revision 2907

Fixes Atelier Iris 2, Removed Kingdom Hearts hack, again should improve video
stability, DMA is now managed by the timing of the DMA rather than being forced
by the IPU.
This is interesting, seems to have gotten rid of into-pad overflows on IPU1 :)
Good Job !!!
Finally!!!!!! Great !!! Great!! Now Outrun 2006 fix and start, But the sound is distorted and Fps very low and and the video is a white bar in Gs D3D!! When fix?
when its fixed ;)

Revision 2908

Wonder if ferrarinews noticed GT4 was broken :p
Probably ;p
@ refraction remembering monkey island again are you? go play the special edition^^
@ rama I wish there'd be a profanity buzzer for the name which shall not be called.
kabooz18: already have, also bought all the episodes, however ive not had chance to play any of them yet :(
oh but you should, monkey island SE is a really great remake (yay MI with voices) and the series is great too not as funny as most Monkey Island games but it has a great story better than all other monkey island games in my opinion ( I mean story only ... I hate the way you move with guybrush...)
Three headed monkey does it again!! :P
Fixed by this rev:
Dot.hack GU Vol 2 Reminisce, Samurai Warriors 2 XL (and all others I presume) random hangs.
Also tested and working: Blade 2, Atelier Iris 2,3, Devil May Cry 1,Hitman 2
Good job ;)
Yeah, it's looking very nice indeed.
30 games tested and counting :)
cool :D
next step is to work out how to get rid of that normal ipu error, i managed it while doing this and didnt see what i did with the code >.<
Nicely done, for the third time Threeheaded Monkey saved the world :)
Cool, Grandia 2 PAL can get through the intro now (I didn't test the rest of the game) :)
I have a Question.
Katamari damacy intro FMV bug is problem of IPU?
sakusox: I believe so, although it is possible something else (like sound) is causing it. Im not quite sure yet why it stops.

Revision 2909

SPU2-X: Fix for occasional reset/restart crashes caused by invalid regtable
could be what has been bugging me, Dragon Quest 8, Persona 4 and Sakura wars had a one time random crash within 10 minutes of gameplay maybe that's what it was?
Final Fantasy X music sounds wrong, as if the first note o a measure is repeated with increasing volume. not sure if this rev broke itm but with r2888 works fine.
r2919 has an important fix for a typo in this rev.
Did you test that yet?
i've tested it. works with no problems. thanks!

Revision 2910

w32pthreads: (Upgrade to v4) Added pthread_cond and pthread_rwlock APIs.
no update for VS 2010? :c(
I don't have vc2010 yet, and won' for a while.
Ultimate trial is 2.2 GB, Expresses (all editions in one image) are 700 MB.
Installation time (even when you have to uninstall pre-release version) is around 1 to 6 hours in background. :(
PCSX2 is the only reason why I still have vs2008 installed at home.

Revision 2911

Major UI renovations!
* Added versioning info to savestates! (along with some other bugfixes)
* Simplified the Boot and System menus -- removed the old Skip BIOS hack and
replaced it with the new BOOT2 injection method (which is considered hack-free
at this time).
* Removed lots of UI deadlock gotchas.
* Some new confirmation dialogs and better error handling.
* Implemented an exclusive SysExecutor thread, which serves the purpose of
executing system/VM commands and events in uninterrupted order (including
suspend, resume, savestates, etc.)
* ... and probably broke linux!
OMG, Jake... ALOT at one time... BTW, when will we see feature-complete pcsx2 with patches system working?.. It may be useful from time to time...
Well now that I don't have to deal with horrendous threaded gui nightmares caused by events running out-of-order or because of system deadlocks due to the main thread being too busy, maybe soon!
(*loves his SysExecutor thread*)
Jake's back in great style =P Thanks!
well done jake! nice to see this :D
very good.. THANX..
Can you take a look at command line execution too please and add fast boot option?
Yeah, probably broke Linux... though it might have fixed some issues in it too. I'll look at it when I get home. (which won't be for at least 7 hours...)
very nice jakey, dont worry about linux. ;)
VS2010 project is broken with this revision
Patch in Issue 681
Vs2010 is broken because it say plugins.cpp and recoverysystem.cpp "no such file or directory"
@Wagnard28, with patch or without?
nah forget what I say. I posted my comment without seeing your patch.
Hmmm... a subtle Linux bug crept in somewhere between here and r2923.
Any time you hit a fkey, the gui locks up.
Essentially, emulation continues without issues, but you can't click on any menus, and have to force-quit pcsx2 if you want to stop it from running. The fkeys also continue working, so you could easily play your game as long as you like, savestate, then force-quit pcsx2.
I'm guessing the break is in this revision, but without individually linux-fixing a dozen revisions, it's hard to tell...

Revision 2912

... and the missing file might help. Woops.

Revision 2913

SPU2-X: Typo fixed from prev commit; solves lots of audio errors.

Revision 2914

Added obj, tmp, and the deps folder to the clean_msvc.cmd
get cleaned too with cmd now is that intentional?
also while I'm "pointing out things"
for system and config the info text is not really readable...

Revision 2915

Some bugfixes to suspend/resume and changing plugin options on the fly.
ahh cool, that was a bit of a shame, not being able to change gsdx's resolution on the fly ;p
well done sir :)
whoah jake in overdrive - nice work !
this one is nice. +1

Revision 2916

Minor fixes to selecting isos and changing cdvd source types.

Revision 2917

Add DECI2 state variables to savestates; fixes occasional crashes in some games
when using savestates combined with the new skip bios hack. (future savestate
changes will probably be versioned from here out!)
FUD. I forgot to do something on this commit. I couldn't remember why I didn't commit it earlier, and limited testing worked. Now I remember: native pointers in savestates are BAAAD. I'll fix. -_-

Revision 2918

Fix for DECI2 savestates (store PS2/VM memory address instead of PC/Host

Revision 2919

Mirror the pulldown menu tooltips to the program/console log, so that you can
see them (if you use the console log anyway -- if not, too bad. ;)
fine, i decided you should go to a detox clinic. Serious, no one can make this amount of updates sober. :P

Revision 2920

* Fix to changing plugins on the fly (should actually work pretty reliable now).
* Make applying emu settings a little more transparent, with less gs window
flicker mess.

Revision 2921

Fix for random crashes when using F4 (framelimit toggler).
... and thanks to rama for his stacktrace post :p

Revision 2922

Fix ELF loading.
Remove save/load of boot2 injection option (shouldn't be part of the
configuration any more as it's determined by the boot type, but I'm not sure
where to move it)
Added missing entry point trigger after ELF loading.
Works :)

Revision 2923

A rubber chicken with a pulley in the middle...what possible use could that
good, although VS2010 build is somewhat broken with this revision :)
haha good man! you're catching on ;)
no... it seems the First Time Configuration wizard is broken and freezes after clicking Next in the first screen. Not sure if it's caused by my usage of VS2010 though.
but i love these pants! :) monkeymania..
weimingzhi: as far as ive seen the VS2010 project hasnt been update, you may need to upgrade the vs2008 project for it to work. Try not to rely on the 2010 one completely until the day we are all using it :)
oh also its probably not this revision causing your issue, so if you could un-negative it until you are sure.
vs2010 project was broken in r2911
Also in r2910
@weimingzhi I have freezes at pcsx2 startup until I rebuild the solution from the ground (also, I've made a patch based on changes in r2910-2911, so you can try it - look into issue 681 if you're interested).

Revision 2924

zzogl-pg: A quick persistant window hack.

Revision 2925

Minor cosmetic cleanups for the earlier Linux fixes.

Revision 2926

-Fixed Metal Saga video (which i seemed to have broken with voodoo!! maybe i
should see the lady in the voodoo shop, last time i did that she told me i had
to fight a fearsome pirate...) ahem, sorry.
-Fixed a Bitstream bug which was annoying me.
-Modified a silly long if check with multiple bit shifts, should be a tiny bit
-Various other IPU changes
You're a freakin' nut Ref, but we loves ya anyways.. ;p
Thanks for bringing a sense of humor in this otherwise stoic scene. Oh, and for the great updates too. :)
GradiusV and Metal Saga both working. Good job :)
I think this fixed Star Wars Racer Revenge too.

Revision 2927

zzogl-pg: Work on reducing the amount of platform specific code a bit.
Done in windows, so it may break zzogl on Linux temporarily.

Revision 2928

zzogl-pg: Fix Linux after the last commit.

Revision 2929

Cleaned up a couple of Path3 Masking bugs which stood out, might fix some of the
remaining glitches
Weird. If I compile this revision I get an error about missing w32pthreads.v4.dll and it wont let me run pcsx2. Ran fine before.
Ok nevermind. Grabbed the necessary file from the compile bin directory. Works fine now.
Sega Superstar Tennis got the same graphics glitches in the character graphics and got the same flickering (the same in software or hardware mode), so in that game there are no changes.
Except of course that it recently became "playable". As in "doesn't hang in the menus already".
Ingame it's very bad still :p
He said that it might fix the remaining glitches and that's why i said that there are no visible changes in the remain graphic glitches since he made the game to go ingame with latest Path3 changes.
I didn't vote negative, i just said the emulation status of that game in this svn.
It was worth a shot :(
You're doing great, with time you will get it perfect.
Is not a regresion, what is good for sure.

Revision 2930

Committing "blood's" work on building PCSX2 and plugins under msvc 2010.
Changes: Fixed all compile errors in VS 2010. Added support for new
w32pthreads.v4. Fixed all MSB8012 warnings. Fixed LNK419 warnings with
/DELAYLOAD. Fixed issues when compiling Devel before Release. Added GSdx Devel
target. Minor cleanups.
Thanks a bunch, blood :)
=D awesome work.
personally, I feel a little bit faster the PCSX2 builds compiled with VS2010 than VS 2008.
great job. congratulations.
cool, now if the crash problem on exiting with VS2010 can be fixed... :)
Ahh, I've been waiting for this. I'll have to give this a go when I (finally) get access to my main PC again.
How is the final binary of GSDX been faring with VS2010 as opposed to before? I understand that most of VS2010's improvements include vigorous C++ optimizations.
However, I'm still got crash on closing pcsx2-r2930.exe that compiled with VS2010.
My build with vs2010 works just fine. Have you tried to make a clean rebuild?
> personally, I feel a little bit faster the PCSX2 builds compiled with
> VS2010 than VS 2008.
Yeah, MSVC2010 magically do things better.
I do have a clean rebuild, even re-checkout the SVN source code from beginning, but nothing help.
However no crash on closing if built with VS2008.
this window popped up after closing pcsx2 if VS2010 is installed.
this window popped up after closing pcsx2 if VS2010 is not installed.
I use Visual Studio 2010 Professional(30-day trial) downloaded from Microsoft site, and build for Release SSE4.
> However, I'm still got crash on closing pcsx2-r2930.exe that compiled with VS2010.
I am not experiencing this issue with VS 2010. I would backup all your pcsx2 configs etc. and start completely fresh.
> God of war 1 is extremely slow and has a vtlb write mode error
I just tested GOW1 and everything tested perfectly fine.
Do you have speedhacks on? without them, you will experience slowdowns.
As for the vtlb write mode error, where does this occur? A dump would help.
I even reinstalled the OS, didn't preserve pcsx2's settings(no inis folder), so run the first time configuration wizard from beginning. unfortunately with no luck.
I suppose the version of VS2010 I am using caused me my issue. I need your confirmation which version of VS2010 you are using if you don't have my issue:
e.g.VS2010 Professional,VS2010 Ultimate, VC++ 2010 Express;
And is it from MSDN? Because I saw the CRC and SHA1 values of VS2010 Professional on MSDN and downloaded from Microsoft site are different.
thanks in advance.
I am using the VS 2010 Ultimate Trial downloaded from Microsoft's site.
I'm using Ultimate too.
> And is it from MSDN? Because I saw the CRC and SHA1 values of VS2010 Professional on MSDN and downloaded from Microsoft site are different.
The only difference of MSDN version vs Trial is that it has your personal license number embedded.
I'm building SSsE3 configuration. Try it. This should've bigger impact than VS edition you're using.
Also, I have Windows SDK 7.0A, DX SDK Feb10, nVidia Cg 2.2 (Feb2010).
Great, I've been waiting for MSVC2010 support.
Just two quick questions. Is it possible to build with VC++ 2010 Express Edition (tried last week but failed, haven't tested after this change) or do I need the Professional-version to do it?
Also are you having any plans to make building possible in EE if it's not yet done?
express edition is always somewhat a common goal since everybody shall be able to build pcsx2.
I haeven't tested EE compatability since I'm too lazy to download it etc but it should work.
Oo heaven't ?????
too much bayonetta.....
superFQ: The crash you're getting is some kind of problem with the logging system trying to send log messages to the Console Window after the window has been destroyed. I had taken the liberty of using some unsafe logic for sake of avoiding a lot of redundant checks when processing logs (speedup), but apparently VC2010's optimizer doesn't like it so much.
I'll look into it later whn I have time, however VS2010 official support won't be an interest of ours for some weeks yet. (blood's project files are something of his own personal interest -- almost no one else on the pcsx2 team has really bothered with VS2010 yet).
tried VS2010 Ultimate with no luck, I still believe VS2010 Professional is sufficient.
Now using VS2008 to compile pcsx2.exe while building others with VS2010.
VC++ 2010 Express works, You can safely install it with VS2010 Professional to make atlmfc's files available to VC++ 2010 Express.

Revision 2931

zzogl-pg: Ran a bunch of the files through AStyle, so I don't find myself
messing with the source code formatting so much.
I'll do the headers later...
AStyle ftw.
Yeah, AStyle's really useful. Only issue I have is that at the setting I put it on, it puts too many extra linebreaks in, so I have to manually remove some of them.
Still, it's a lot easier then doing it by hand. And I kept finding myself working on the formatting instead of the code when trying to look through files for issues...

Revision 2932

zzogl-pg: Part 2 of the re-formatting; ran AStyle over the headers.
Incidentally, be careful when funning AStyle over headers with structures like this:
union GIFTag
u64 ai64[2];
u32 ai32[4];
u32 NLOOP : 15;
u32 EOP : 1;
u32 _PAD1 : 16;
u32 _PAD2 : 14;
u32 PRE : 1;
u32 PRIM : 11;
u32 FLG : 2; // enum GIF_FLG
u32 NREG : 4;
u64 REGS : 64;
as they will end up looking like this:
union GIFTag
u64 ai64[2];
u32 ai32[4];
u32 NLOOP :
u32 EOP :
u32 _PAD1 :
u32 _PAD2 :
u32 PRE :
u32 PRIM :
u32 FLG :
2; // enum GIF_FLG
u32 NREG :
u64 REGS :
That caused me a bit of irritation...
funning -> running

Revision 2933

zzogl-pg: Missed the Windows specific files. BOOL->bool in a few places.

Revision 2934

zzogl-pg: Separate out some profile code.

Revision 2935

zzogl-pg: Add the new files to the codeblocks project.
One of my pet peeves about codeblocks is that the project file doesn't automatically save when you build the project. I've had updates to it not end up in svn more then once because of this...
ahm i´m not sure where i should put this but please look into this

Revision 2936

UI Bugfixes:
* Fixed several obscure deadlock issues.
* Savestate actions block; such that only one load or save is permitted at a
* Savestates now work through temp files, so that the existing file is not
corrupted in case errors occur.
* Exiting the emu while a savestate is saving will still save the state before
completely quitting.
* Plugin init errors are handled more gracefully.
Developer Notes:
* Added some event diagnostic trace logging stuff.
* More preliminary work on memorycards -- moved them to their own dialog box
and started implementing things, but still a lot of work to do before it's ready
for use.
Looks nice and clean. Thanks sir.
Would be -1 for breaking cdvd selection in this rev, but yeah, the rest is awesome :p
Nice revision.
I'm still having issues with the ui locking up when I hit fkeys in Linux. That's from around r2911, though...
Think I see where the lockup on FKeys in Linux is. In LogicalVsync, it gets stuck in the while statement, and never exits. (ev->key never becomes 0.)
I'm getting ready to leave right now, so won't have time to fiddle with it till later, though.
Eh, that's zeropad doing things differently from all the other plugins (again). I'll sort it out in a bit. It's not hard, it's just that ZeroPAD returns 0's instead of NULLs. I thought I had accounted for that, but I guess not.
... or does ZeroPAD not do keyboard input buffering at all? Maybe it always returns the key over and over? That could be a big problem then -- it'll need to be fixed on zeropad's side preferably.
I see the issue. zeropad/onepad sets event.evt to 0 after sending it, but never clears event.key. So it doesn't change the keyboard value, but starts sending it as the undefined event type 0 instead.
We could add in a check for the event type, just in case. I'll edit the plugins to clear the evt value when clearing the key value, though.
Oh, and it's going to be onepad for Linux. I don't even have a project in code::blocks for zeropad, and onepad is basically zeropad, only half rewritten, with a better interface, and only working in Linux.
zeropad only works in Linux, too, but onepad at least doesn't compile in Windows. Zeropad compiles in Windows and generates bug reports when it fails to work. :(
One of these days I'll get back to the rewrite. That or I'll port Lilypad.
breaks vs2010
12>MainMenuClicks.obj : error LNK2001: unresolved external symbol "public: __thiscall Dialogs::McdConfigDialog::McdConfigDialog(class wxWindow *)" ([email protected]@@[email protected]@@@Z)
12>CreateMemoryCardDialog.obj : error LNK2001: unresolved external symbol "class wxString __cdecl GetMsg_McdNtfsCompress(void)" ([email protected]@[email protected]@XZ)
12>PluginSelectorPanel.obj : error LNK2001: unresolved external symbol "public: static class wxClassInfo Threading::WaitForTaskDialog::ms_classInfo" ([email protected]@[email protected]@[email protected]@A)
12>PluginSelectorPanel.obj : error LNK2001: unresolved external symbol "public: __thiscall Threading::WaitForTaskDialog::WaitForTaskDialog(class wxString const &,class wxString const &)" ([email protected]@@[email protected]@@[email protected])
12>PluginSelectorPanel.obj : error LNK2001: unresolved external symbol "int const pxEvt_ThreadedTaskComplete" ([email protected]@3HB)
12>PluginSelectorPanel.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall Threading::WaitForTaskDialog::ShowModal(void)" ([email protected]@[email protected]@UAEHXZ)
12>PluginSelectorPanel.obj : error LNK2001: unresolved external symbol "public: virtual class wxClassInfo * __thiscall Threading::WaitForTaskDialog::GetClassInfo(void)const " ([email protected]@[email protected]@[email protected]@XZ)
12>F:\dev\pcsx2-read-only\bin\\pcsx2.exe : fatal error LNK1120: 7 unresolved externals
Breaks VS2010 as mentioned above. This build and on forward would compile with these errors.
can't built by VS2010 after this rev.

Revision 2937

Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright
info in any Gabest plugins)

Revision 2938

Linux doesn't use NTFS compression.
Oops. I'll straighten up AppConfig.h...
Fix Linux then!
(Joking :p )
It compiles. I just reversed what I was doing midway, and forgot to put back the ifdefs in one place. I was going to remove the ifdefs, but then it proved to be too much of a hassle.
curious to why you put IPU1Status back in the cpp file? id moved it in there as i was accessing it from another file, so i left it in there just incase i needed to in future.
It's static, so it was getting warning messages from every single cpp file that included it and didn't use it during compilation (which is really annoying).
If you're going to be using it for other files, take static off and but an extern in the header instead and we should be fine; I was just getting a dozen+ warnings from it...
it was getting -> I was getting
Incidentally, the reason why "static __forceinline" doesn't give you issues like this with functions in headers is because I snuck a gcc-specific "ignore unused functions" attribute into the definition of __forceinline when defining it.
Otherwise I'd be getting a *lot* more warnings.
hehe, well you're doing a good job :P just wondered! gotta love linux and its pickyness :P

Revision 2939

Missed one thing.

Revision 2940

Removed some playstation (1) BIOS code and started cleaning up high level
implementations of iop module functions.

Revision 2941

Onepad: Fix PadKeyEvent so it doesn't hang new versions of pcsx2 when you hit a

Revision 2942

Zeropad: Apply the same patch as on onepad.

Revision 2943

Apply gregory's cmake patch to fix it to compile with recent revisions. (Note:
still unsupported.)
Thanks Gregory for helping take on the challenge of maintaining the cmake projects. Hopefully we can get them in finished form soon, so that there will be a defacto alternative to code::blocks build environment (which, while working, is not ideal itself -- and CB itself hasn't been updated in quite a while either, and is still stuck on v8 .. hrm).

Revision 2944

R3000A: rewrote module import table hooks for more extensive HLE in the near
nice! should come in handy for future debuggerage
great job you guys doing with this project...
one more fan...:)
Is this a replacement of the r3000air branch?

Revision 2945

Nothing to see here.
lol, good message =).

Revision 2946

Fix the cmake build of zlib, and force use of the internal copies of a few of
the libraries for the moment. (If the cmake build starts working properly, I'll
probably reverse that, but for the moment I want them as similar as possible.)
them = cmake & the code::block project

Revision 2947

Minor fixes to iso and cdvd source changing.
Fixes one of the minor irritating iso bugs.
Linux does not like m_Menu->GetWindow(), though...
Nice fix :)
Also just a note for future GUI fixes, there seems to be some issues in selecting hardware logs for IOP. If you tick IOP logs then any number of hardware ones it unticks then again as soon as you Ok out of the window. However chosing some of the DMA logs or Disasm logs as well, then OKing, going back in and taking off the DMA/Disasm logs and OKing, its fine. bizzare one ;p
Yeah, the logging window's very screwy. We know.

Revision 2948

There are 1000 ms in one second.
I hate how VS defaults to modifying the active configuration only.

Revision 2949

Tweak zzogl-pg's C::B file a bit. Slap a quick patch on pcsx2 so it compiles.
(Jake will probably want to fix that properly...)
The cbp changes are setting the compiler flags closer to what the automake project has. Hopefully it'll make that build more stable.
The Iso changes; well, Linux has no idea how you get a window out of a menu, and since you can specify NULL as the originating window of a dialog, that'll work for the moment.
Switching isos doesn't seem to work right under Linux with it, but I don't believe it worked right before Jakes changes either in Linux...

Revision 2950

cmake: Clear the link flags to get rid of -rdynamic, which was causing freezing
issues. (Again, thanks go to gregory on this one.)
I'll probably play more with cmake in the next few days, and see if I can get it supporting a few plugins it currently doesn't build and such...

Revision 2951

Replaced some defines that were accidentally removed at some point. Did some
cmake work. Removed a forceinline that was giving gcc issues.
The missing define was effectively disabling inlining, which is why the problematic forceinline hadn't given issues before.

Revision 2952

DMA logging typo correction

Revision 2953

Usual fix for FF12's crashing FMV. PCH on this time.
ahm i´m not sure where i should put this but please look into this
nice commit btw
love ff12 :)
Nice and unrelated.
Your luck though, as we're already tracking the problem.
It is GSdx hardware rendering, prolly has the target drawn too dark, and the game code doesn't accept it as being hit.
TNX for Fixing FFXII im close to finishing the GAME yay!!!!! for me LOL :p
and could U take a look at this for me RAMA I have a problem in the game yakuza it flickers and turns white on cutscenes and during fighting but its normal while moving around the town get all info about this here at the forums http://forums.pcsx2.net/Thread-Yakuza-graphics-problem and few screenshots and tell me if U need a GSDUMP ill do it on the double
yay thank u :)
wish i knew about programming and stuff like that too,i´m such a noob lol

Revision 2954

Found wizardry / growlanser 2 & 3 hanging bug thanks to rama. OPH flag in
GIF_STAT was misinterpreted (probably). It needs to be set on download, not
Also clean-up/fix of GS download logic. Might fix something if we're very
Makes Growlanser games playable. Got constant requests for these games over the time.
Now its just the 50/50 chance that videos hang that kill the fun.
But at least they work, mostly :)
Wow nice work sudonim1 and ramapcsx2 that bug has been around a long time and been really looking forward playing it through pcsx2 on the pc and you's finally fixed it for wizardry!!! Been playing wizardry for over an hour so far and have had no hangs or problems of any kind so far. Preliminary testing is 100% successful so two thumbs up to the both of you's and the whole of the pcsx2 team in general well done!!!! not sure if or how much it has fixed the growlanser games mensioned though as I have never played them but so far wizardry works!!!
lets hope no games check if OPH is set when outputting data :P
i dont think its for download only as it is referenced as "outputting data" followed by a flag saying which path is transferring. the more likely reason these games were hanging was due to a freaky situation we probably havent thought of yet.
Nice job cleaning up the reverse fifo code tho (and damn you cos i have to merge what im working on! :P)
yeah you fixed Growlanser but you broke the VIF sensitive Neo Contra (mission 4 hangs again)
I really doubt OPH is for upload too because that would be redundant (APATH gives you the same information and more. 0 does mean no paths are active you know.)
The docs aren't very helpful here. This is quite testable though.
And no, this is definitely why the games were hanging. I reversed some of the function they were hanging in (which is a less sophisticated (or maybe very early version) sceGsExecStoreImage equivalent.)
Just a sec building an older pcsx2 so i can properly test.
...I'm not expressing myself very clearly I guess. OPH is without a doubt flagged when the GS has started a local->host transfer because of the structure of the functions these games use. It may or may not also be flagged on host->local transfers but both the name and the fact that this would be redundant with APATH suggest that it is not. A test program can be quite easily written to see whether OPH goes high at any point during an upload.
I can look into neo contra for the real reason that hangs btw. I understand the game's fairly broken too.
yeah it is i have filed Issue 674 about a hang.
but it seems it isn't this rev that broke it -> will investigate more
A test would be interesting to see the results of, i understand where you're coming from, as you say, the manuals arent very clear.
audutrache: could you do a regression test and see where it broke again?
strange it seems as of this rev the game needs the EE clamp mode set to anything but chop/zero or it will hang. no idea why this happens.
now i'm trying to get the background in mission 4 to show up properly again (it has some square like duplicates of the clouds).
This part of the PS2 deals with downloading data from the GS, most probably to do EE controlled post processing effects.
It's only naturally for games to break here, as it's a very involved operation.
If anything goes slightly wrong, and the EE checks the results, it hangs :p
yeah there were a lot of games that have had post processing removed because of this i know :)
i can't get the background in mission 4 to show up correctly for some reason even with an old pcsx2 rev that i knew it was showing it well no idea why though.
ill have to try to mess with the GSDX skipdraw option a little to see if it fixes something
Unfortunately i have to go to college in about 20 minutes for 6 hours of "learning fun" so ill test more when i get home.
the skipdraw option had no effect.
Also as a side note : i reinstalled my windows on my new SSD and since then pcsx2 has been giving me all sorts of crap (sound pausing once every 2-3 seconds, sometimes hangs) again i have no idea why since the version of windows is the same and the drivers are the same *sigh*.
I also cant build xpad anymore it says something about missing XInputEnable identifier O.o.
This is a different sort of post processing. It's far more involved, as it now doesn't only do it on the GS, but it downloads GS content to the EE to use it.
Think of a shattering glass effect, that has the old output on all the shards of glass ;)
This fix Bleach Blade battler 2nd !!!
Currently praying sudonim1 as a god (for this week at least) :P
what the ....
it really work, well crawls at 20-40 fps but works
Is this the famous "bankei" hang that's been fixed?
Refraction: I did write that test, rama ran it and OPH is as I suspected not set on uploads.
cool, glad thats cleared up :)
Nice commit but KillZone is broken again
reverting Vif_Codes.cpp fixes this for me
Hello there i do not understand much of all this code here and what to do with it. I got my hands on the emulator just to play wizardry cause back when i had the ps2 i accidentaly broke the game cd. Ever since ive wanted to play it again and got thrilled when i got it to work on the emulator but then came the bug after first battle sequence.
It seems like this is a fix but how do i make it work with my emulator?
I dont know a whole lot about all this coding that all you guys do so if it is at all possible to explain to "outsiders"?
Please can anyone help me i am very excited to get this all to work :) and im so happy that someone took the time to make a fix for it.
Wait for the beta release hopefully coming soon.
I refresh the [email protected] post. How to install/implement it to make it work? I need it for Bleach Blade Battlers 2nd for bankai bug. I mean ichigo, hollow ichigo, ikaku, shinji and biakuya one. Others i just reset by clicking START button. Wangard28 said that it fixes this bug ;)
BTW - i tried r3205 and there is a bankai bug. I think this is weird because it is the same code as r2954 but better (with more bugs fixed). If I'm wrong - correct me plz ;)
Can anyone e-mail me the compiled version if possible?
fb.sertacakkaya you did not give an email to send too. Anyway just for you I dug out a copy of SVN 3575 (last gamefix hack listed fixes freeze) for you and uploaded it TEMP 10 download link to rapidshare. Let me know if you didn't get it before link expires and I will repost it or supply me with your email and I will send you direct. The link is http://rapidshare.com/files/409553701/PCSX2_0.9.7_SVN_3575.rar enjoy
http://hotfile.com/dl/72292680/5ae4a12/PCSX2_SVN3843_NO_bios.rar.html not sure how long the upload will last before host deletes and as the name states NO bios is provided you are on your own there. As for getting wizardry to run don't forget to enable game fixes and put tick in oph flag option at the bottom to get past the end of battle freeze issue. Enjoy
Thank you very much. :)
can you re-post it the file got deleted =(
http://www.megaupload.com/?d=EFBWJ0PD is a new link. Reminder there is NO bios you will have to provide your own and also it only has gsdx ssse3 version. Don't forget for wizardry to enable game hacks and put a tick in oph flag option at the bottom because if you don't it will freeze after a battle without it.

Revision 2955

Save state version bump. Since I changed VIF structures in the last commit,
state compatibility was broken.

Revision 2956

cmake: Make Devel the default for the moment. Commit another cmake patch...
I'm extremely grateful for this and the prevous commits about cmake.
The emulator never really compiled succesfuly under Code::Blocks.
It doesn't mean it never compiled, it did but the emulator crashed
with segfault everytime I tried to run any game using any settings
and every avaliable plugins that were compiled by me.
After compiling it using cmake, everything works fine and clean now.
So very big thanks from me for acrum42 and others working on fixing
things under Linux.

Revision 2957

Spu2-x: May as well delete the automake files for spu2-x, as they never
worked... (The only way you can build spu2-x in Linux right now is codeblocks.)

Revision 2958

* Fixed death-by-recursion caused when a thread threw an exception.
* Fixed some minor bugs when processing idle events.
* Plugin Load/Init/Shutdown/Unload are all called from the Main/UI thread
again; this is important for plugins that issue popup warning/error messages.
* Added ScopedPtrMT, a multithread-safe version of ScopedPtr.
* MTGS errors are still not handled as gracefully as they should be; namely the
MTGS thread doesn't restart itself (it's on the TODO list).
LINK : fatal error LNK1181: cannot open input file '..\..\..\deps\win32\release\utilities.lib'
This no longer compiles for me.
1>..\..\src\Utilities\ThreadTools.cpp(569) : error C2819: type 'ScopedPtrMT<T>' does not have an overloaded member 'operator ->'
1> with
1> [
1> T=Exception::BaseException
1> ]
1> did you intend to use '.' instead?
1>..\..\src\Utilities\ThreadTools.cpp(569) : error C2039: 'DiagMsg' : is not a member of 'ScopedPtrMT<T>'
1> with
1> [
1> T=Exception::BaseException
1> ]
1>..\..\src\Utilities\ThreadTools.cpp(569) : error C2819: type 'ScopedPtrMT<T>' does not have an overloaded member 'operator ->'
1> with
1> [
1> T=Exception::BaseException
1> ]
1> did you intend to use '.' instead?
1>..\..\src\Utilities\ThreadTools.cpp(569) : error C2039: 'DiagMsg' : is not a member of 'ScopedPtrMT<T>'
1> with
1> [
1> T=Exception::BaseException
1> ]
ScopedPtrMT.h, Line 115 - #if 0 change it to 1 or remove the #if/#endif and it compiles
GUI has become very stable now, in the usual tests.
Of course I can still crash it, but it's getting harder and harder :p

Revision 2959

GSdx: Fixed bug where DX10/11 was always detected under Vista/Win7, even when
the video card only supported DX9. This fixes the F9 'renderswitch' hotkey.
DXUT_EnsureD3D11APIs function
D3D10CreateDevice is for d3d10.dll
you use it for d3d11.dll which has it named D3D11CreateDevice which fails and says the card does not support dx10 or 11 when in fact it may (as i know my card supports at least Direct X 10 and fails)
So would you not need to test for d3d10.dll for Direct X 10 and use d3d11.dll for Direct X 11 as there are differences between D3D10CreateDevice and D3D11CreateDevice
Already fixing :p
Wasn't sure figured i would at least comment on it to make sure.
So you know we don't use the D3D API at all, since D3D11 is backwards compatible.
Don't use D3D10, damn it.

Revision 2960

D3D11 check with less D3D10 copy and paste and more working

Revision 2961

Mess with Jake's code until it works in Linux.

Revision 2962

And let's update the project file too.

Revision 2963

Fix for release builds.
Yup, that's the intended fix for this.

Revision 2964

GSdx: Cleanups -- moved the new detection code to GSDevice11.cpp, where it (more
or less) belongs.
Bleh, I kind of half-assed this cleanup since I'm on a laptop that has very little screen real-estate and makes it hard for me to open enough windows side-by-side to clean up code effectively. I left in some remnants of code that aren't useful (from a test run of dynamically loading DirectX DLLs, which I had to revert).
I'll finish the cleanup later.
Nice to see some work on GSDX... If only someone could be able to do some more important work on this plugin...
Gabest, where are you?.. Don't leave us... Come back... :(
The code is a mess and no-one seems to know how it really works...
That's not the case. I, for one, have a good understanding of a lot of the code (though my D3D knowledge is quite weak).
Have patience, we're only human and these things take time.

Revision 2965

Changed the FFX speedhack to also set all EE timed events to happen near
This is now a multi purpose hack, which could potentially fix / break a lot of
It mostly affects FMV and PATH3 masking issues, but also stops games from
booting, or makes them boot.
Use with caution :)
*...the FFX gamefix... << there never was a speedhack for this game :p
I think FFX is the first game to emulate properly when PCSX2 had invented.

Revision 2966

GSDx: very minor change to Z value scaling and a note for future changes based
on testing real hardware.
// The real GS appears to do no masking based on the Z buffer format and writing larger Z values
// than the buffer supports seems to be an error condition on the real GS, causing it to crash.
// We are probably receiving bad coordinates from VU1 in these cases.
If there is an overflow (z > 0xffff for 16 bit, z > 0xffffff for 24 bit z buffers) then the rest of the msb bits are ignored when writing, but internally in the pipeline the z test is still performed on the full 32 bit range. There was a visual novel, cannot remember which, that painted its dialog boxes relying on this.
Oh, forgot about line breaks. Posted here a long time ago...
Zomg gabest returns :)
Welcome back
That's what I expected to happen, but when I wrote a test to see if this happened, it froze after the first primitive with a bar of the background colour across the screen. After setting ZMSK=1 the test ran without any such incident.
So it does seem to be an error condition on real hardware, which means that if we ever receive such Z values there's a bug affecting geometry calculation upstream.
WTF gabest is back LOVE YOU MAN!
HORAAY,GABEST RETURN!.......welcome back..you're the man
That's strange, because otherwise that game I mentioned would not display the text at all.
It abused the truncated z output to continuosly succeed the z test, using smaller z for text than the background.
In this aspect the sw renderer implementation should be correct. Except for the range that cannot be translated to floats (0xffffff00 - 0xffffffff).
Btw, has anyone tried to use those read-write buffers of dx11 yet?
To somehow get around the fixed alpha blending and one-way frame buffer write stages.
I have no idea how fast it would be to drop render targets and only use RW texture buffers, for example loosing hierarchical z-buffer may be a problem.
Wow... I didn't expect this to happen... Gabest, I hope you will not disappear again after a couple of commits... :)
Anyway, it's good to see you again...
BTW, I've tried to solve "SotC overbrightening" issue recently, but no luck (look at the forums)... Could you look at gstexturecacheHW some day, you have a lot of TODOs there without comments, and only you know what do they mean...
Revision 3000 is just in the Corner so Ill be Congratulatin You guys for a Job well done may there be another 3000 and more commit's and Of course
another thing worth Celebrating WOOOOHOOOOOOOO!!!!!!!!! One BIG WELCOME BACK
BIG Gabe!!!!!!!!!
and may I ask a question is this BUG in SMT: Devil Summoner A ZBuffer related bug cuz this only happens on DX10/11 this a OK by the way on DX9 and of course using software fixes this aswell here the link to SCreenie
Ga BEST is back, yay. :)
Gabest: If you can remember what game it is, I could investigate. I could maybe write a gs dump replayer that can run on the PS2 as well, that would demonstrate it quite clearly.
Read-write buffers? Compute shaders are probably too slow. I have ideas on how to fix drawing for pretty much everything - except some theoretical cases that never come up because many of the advanced effects on the GS are only ever used to render overlays - using the normal rendering pipeline (for DX10+ at least).
My local copy currently has bad Z values just being clamped to the maximum and one of the games mentioned in the comments works fine. (SFEX3 capcom logo)
Unfortunatelly I think it was a gs dump that I deleted long ago.
Not compute shaders, just simple pixel shaders where the output goes to RW texture buffers (integer type even) instead of render targets and z-buffers.
That would solve output masking issues and unsupported alpha blending modes, and maybe on-the-fly format conversions (if rendering was split up to pages).
On the other hand, if you read that larrabee paper about its planed rendering, that could be implemented with compute shaders. It's radically different than the standard scanline method.
Hmm, didn't know you could do that. Sounds more worthwhile than compute shaders but I repeat, I have worked out how to do masking and all blend modes with the normal pipeline already.

Revision 2967

Add NDEBUG to non-debug targets in Code::Blocks. Remove a few inlines that were
causing problems with Linux. Remove a problematic hardcoded initialization of
OutputModule I'd forgotten about in Spu2-x.

Revision 2968

Copy liba52 into the main 3rdparty directory, and set the linux port of spu2-x
in codeblocks up to use it from there.
If the Windows version gets modified the same way, we can delete the other copy...
I think you could just delete it either way. There was some code for ac3, but I never got it to work at all, so it might just be best to get rid of it.
Might be a good idea. So, to get rid of it, I'd just basically get rid of Decoder.cpp, and any calls to functions in it?

Revision 2969

Fix for Killzone from r2954, also cleaned up some other OPH's that had been
IRC channel :p
the negative was cos i broke Growlanser, which is fixed in my next rev
Indeed :p
-1 See issue 738
The Vif1_Dma.cpp changes are at fault.

Revision 2970

Minor bug which i didnt think about in last commit

Revision 2971

Refixed Growlanser, also took out an IF which shouldn't have been in there.

Revision 2972

Fix for Tails of Destiny, added some other bits to check for wierd sizes (may
never happen). Also put my IF statement back in, seems it does cause problems,
commented why
*Tales, thanks "Knuckles" :P

Revision 2973

Nothing to see here

Revision 2974

Slightly pedantic change to OPH clearing and added a condition to an FQC
assignment statement (there are far too many of these) which I think would
interfere with reversed VIF1 operation.

Revision 2975

Another minor modification for reverse FIFO

Revision 2976

User Interface:
* Console Log doesn't force itself into the focus anymore when it opens
* Suspend/Resume menu item updates more reliably.
* Changing plugin settings while suspended works nicer; less likely to
crash/hang/etc (ironically, changing plugin settings while running was more
btw in 2968 and before(i have not tried anything after that) i had the problem that while pressing escape and changing different options etc when i pressed "resume" i got only sound and my cpu was working like it emulates the game but i didnt even got a window of the emulated game! only the pcsx2 main menu! i had to press suspend and after that resume again to make the window appear again! i hope u fixed that and nice work ;)
Yeah that's one of the specific bus fixed here.

Revision 2977

Added a game database file which indexes most ps2 games by serial number.
Currently only has game serial/name/region info, but we can use this to load
game-specific gamefixes and stuff in the future (and get rid of the pnaches
The file is DataBase.dbf, but can be opened and modified as a normal text-file.
Does this mean I will be able to save which clamp mode and speed hacks to use for specific games?
Possibilities are endless with this, we could have a better patches interface, seperate memorycards for each game with proper filenames to easily distinguish them, pictures and compatability information (like Dolphin has) and probably more!
Do not however we arent planning on doing any of the above (that i know of) but they are ideas which can be implemented thanks to this.
mkwong98: possibly in the future.
currently it doesn't do that though.
refraction: yeh i was also thinking it would be cool to use this to rank compatibility :D
I can see possibilities with this. It might be a good idea to have it accessible to the plugins. (I'm mainly thinking of the graphics plugins, having looked through GSCrc.cpp not that long ago...)
That is, of course, once I get it working with Linux.
I'm getting a bunch of errors like this right now:
File_Reader.h:27: error: invalid use of incomplete type 'struct std::fstream'
I'll sort it out eventually.
I cannot seem to get this to compile on VS2008 Pro or VS2010 Pro. It is throwing up a bunch of errors on File_Reader.h.
On the Linux side, at least, it's a header issue.
#include <fstream>
#include <iostream>
in PrecompiledHeader.h seems like it's taking care of it. (Whereas putting the include in File_Reader.h didn't. Go figure.)
In VS2008/2010, you might do a rebuild, or a clean build, though.
sorry about that guys, i forgot to commit my pch.h changes which included those files ><
does this mean the pnaches I currently have will have to be Converted to this new system in the near future
"Man thats Gonna be a lot of work to do"
It doesnt mean that no, however converting the patches can be quick and simple (we have a fast way of doing so), so we could link it all together, even make it so you can enable individual patches.
as i say the possibilities are endless, depends what we want to do

Revision 2978

Minor user interface cleanups and tweaks; most notable being some better "spam"
protection on the console logger.
Details: Console logger now freezes updates for 100ms after every update. This
means it responds quickly to most logs, but limits series of log spams to 10
updates per second.
You can lose some useful information with this (in other words it's now unsafe to fully believe the logs).
No, the logs have never been believeable. They are a cross-thread dispatch, and threading and event queue mechanisms can cause the log to display things out-of-order and with potentially significant delays.
If you want accurate information, open the file log after a crash. The logfile is written and flushed in-thread and without being processed through an event queue.

Revision 2979

oh i had forgotten to commit the cdvd.cpp change which used the code from my
last update >.>
doesn't really matter though, it just looks up the game in the database and
prints the name and serial to console.
i also fixed some bugs in the database file.

Revision 2980

oh i forgotten to commit this too ><
guess thats what happens when you don't commit stuff for a few weeks :/
Ah. Beat me to it.
Though I'm not sure it's actually loading right in Linux. It gave me a bunch of
DataBase_Loader: Bad file data [
errors, then:
DataBase_Loader: Game Not Found! [SLUS-20312]
Game = ??? (???)
When I did a full boot. (And that is in the file. I deliberately picked Final Fantasy X. I figured if anything was in there, it'd be FFX.)
At a guess (though I still have to confirm it) the bad line data is '\n'.
It compiles on VS2008 now again. Thanks.
I got rid of the bad file data errors by changing:
if (!line.length() || isComment(keyPair.key)) {
if (!line.length() || isComment(keyPair.key) || line.compare("\n")) {
in the extract function in DataBase_Loader. Still looking at why it's not finding the game, though,
arcum: thats odd.
maybe it has to do with my catch(...) statement that jake mentioned i should change.
does changing that to catch(int& i) {} fix your problem?
(btw i tested the serial SLUS-20312, and it didn't give me those errors on windows)
Yes, serial SLUS-20312 (FFX) is detected on the Windows version for me as well.
Well, I noticed a blatant error in the change I just made, so I'm still fiddling with it...
Checked, and it's not the catch statement.
This works, though it shouldn't always have fail set at the end:
--- pcsx2/DataBase_Loader.h (revision 2980)
@@ -67,15 +67,16 @@
keyPair.value = t;
for (;!ss.eof() && !ss.fail();) {
- ss >> t;
+ ss >> t;
+ if (ss.eof()) break;
if (isComment(t)) break;
keyPair.value += " ";
keyPair.value += t;
- if (ss.fail()) {
- doError(line, keyPair);
- return;
- }
+// if (ss.fail()) {
+// doError(line, keyPair);
+// return;
+// }
+ ss >> t;
+ if (ss.eof()) break;
that code is ignoring the last character in the string.
i don't know why that is needed for linux and not for windows.
have you tried checking for '\n', instead of for eof()?
you can also commit your changes to fix linux and i'll fix it if it breaks windows.
Maybe because windows uses \r\n and 'nix based systems use \n?

Revision 2981

Some missing svn:eol-style=native props. It's like they vanish into thin air
these things.

Revision 2982

Added a credits section to game database.
Currently most of the info is based off the information found at
Looks like you killed sonyindex :p
LOL ya ^
the site has been down for a while, i talked to the webmaster SeattleMan and he says hes been working on getting the site back up.

Revision 2983

- Get pcsx2 to display "game name (region) [serial] [crc]" in the console title-
bar based on info found in game database.
- Some work on the database_loader class... now loads all game data into memory,
and you can switch the game who's data is being read by calling setGame().
- Made the database_loader class a global "GameDB" so that it can be referred to
throughout pcsx2 code...
nice !!! the next official release will be sooo great
I went ahead and did a commit to get the database loader working in Linux. You might want to check r2985, and make sure it still works in Windows...

Revision 2984

cmake: Start getting zzogl-pg and spu2-x support in the cmake build system. (I'm
not enabling it yet, as I don't have time to get it working properly at the
moment. That's probably a project for this weekend.)
@arcum42: I'm still around. If you need something to change on the cmake build system, just say a word, and I'll look into.
All right, cool.
Having it build liba52 in 3rdparty might be useful, so that I can link it to spu2-x. Though I might actually be able to remove that dependency from pcsx2...
A lot of what I'm doing with cmake right now is because gregory started pulling apart the build system in the Linux svn comment thread and getting it to work properly.
As it is right now, the cmake build system now no longer crashes on starting emulation, which is great.
(Though I actually missed uncommenting two lines, so it doesn't build at the moment.) :(

Revision 2985

Get the database reader working in Linux.
And, yes, a few odd changes here and there made it in as well.
the db reader changes work fine on windows :)
All right, cool. I decided it probably was the "\r\n" throwing it for a loop, so now it simply hacks it off the end of the line.
I think what happened is that it interpreted "\r" as the last word of the line, but ss>>t fails on Linux when passed "\r", so t remained untouched. Which meant that it added whatever was in t a second time, and that it failed on every line...

Revision 2986

Enable cpu detection in spu2-x. Link to the systems copy of zlib, rather then
building a separate copy for pcsx2.
Enable cpu detection in spu2-x in Linux, that is. It already worked fine in Windows.

Revision 2987

* Likely fix for linux's crash-on-exit.
* Fix for random crash when hot-swapping plugins from the config panel.
Oops, missed some things needed to compile error free on this rev.

Revision 2988

SPU2-X: added some safety checks to the savestate code to catch (and ignore)
situations where PCSX2 tries to save or load states while the plugins are shut
(and fixed compile errors from prev rev -- woops)

Revision 2989

* Should fix iso hot-swapping.
* Fixed a startup crash by moving the game database initialization to
cpuReset(). This is a temporary measure until we sort out a better system for
it. This is needed because initializing complex classes in C++ as globals is
VERY dangerous and unpredictable. The databse was being loaded before any
wxWidgets/UI objects were being created themselves, so any errors, exceptions,
or console logs generated by the database were likely to cause unpredictable
Iso swapping fixed indeed.

Revision 2990

A few fixes to the installer script. Not done yet, but compiles at least.
Hmm, next commit to this should fix the incoherent use of "Un" (versus "un"). Sorry :p

Revision 2991

NSIS Installer : General improvements and bugfixes; namely making it compatible
with the latest version of Advanced Uninstaller, and adding support for
packaging dxwebsetup.exe.
does this by any chance means getting things ready for 0.9.7 release even by a little?
Patience young padawan
DirectX web setup. Finally. :)

Revision 2992

- Added game compatibility info to database and added about ~50 more games (same
info as pcsx2.net's compatibility list)
- Games now display their compatibility status on the console title-bar ^^
- Modifications to DataBase_Loader to write to the database and save changes
Note to pcsx2 team:
The compatibility info is numerically based.
000 ~ 099 = Unknown Compatibility status
100 ~ 199 = Nothing
200 ~ 299 = Intro
300 ~ 399 = Menu
400 ~ 499 = In-game
500 ~ 599 = Playable
600+ = Perfect
(Currently no game has the perfect status since the pcsx2.net compatibility list
didn't have that as an option)
Also compatibility info may be old for some games, so its possible many games are playable but say other-wise.
So uh we have 100 different levels for each status? Isn't that a bit too detailed? :P
we were talking about leaving gaps in-between the statuses incase we wanted to add more detailed statuses.
then pseudonym posted this link:
and then i got inspired to just make it in groups of 100.
my thinking was "better safe than sorry" i guess xD
I can tell you already this is so overkill it's ridiculous :P No one is going to bother counting decimal points for compatibility of each single game :P
after thinking about it, i'm just going to divide the numbers by 100 then.
we really don't need more statuses than the ones above, and we will have a separate "Notes" section to go more into detail about the game.
so yeh i'll fix it ;p
Will there be a "Recommended Settings" in the notes section? Might be useful to those less technically inclined, and for the major games you often see people posting about (ie FFX).
"Games now display their compatibility status on the console title-bar"
this rules, thanks cottonman.

Revision 2993

Took out crc code from title-bar so its not so crammed up... and changed
"Compatibility" to "Status" to free up more space.
But the traditional CRC number showing in console window's title is useful for homebrew patches(.pnach) for cheats.
I don't think it really messed up if you add the CRC value as suffix.
e.g. For now FFX-2 without CRC displaying:
Final Fantash X-2 (NTSC-U) [SLUS-20672] [Status = Playable]
If added the CRC as suffix.
Final Fantash X-2 (NTSC-U) [SLUS-20672] [Status = Playable] [CRC = 48fe0c71]
The CRC is displayed in the console and log, so you dont need to in the title.
You're right, but kinda inconvenient gotta look up the console or log.
Well, I did it myself, here's the screenshot for preview.
Not bad, huh? What I did is add a line right below
gameName += L" [Status = "+compatToStringWX(compat)+L"]";
the line added is
gameName += L" [CRC = " + gameCRC + L"]";

Revision 2994

Scratched the idea about having the compatibilities in increments of 100, and
just made them increments of 1 instead.
There shouldn't be a reason to add more categories to the current list, and we
will have a 'notes' field for additional information....
Would be pretty cool if you could use heuristics or something to submit / contribute to an online compatibility database that pcsx2 syncs to, maybe to get a general idea of how compatible the game is based on usage. Way out there but who knows.
Way, WAY out there, lol.
Does the database display only work with the inbuilt iso loader??
The console window's title will show you an leading empty brackets () if the game you're playing is not in the database.
here's the screenshot.

Revision 2995

cmake: Missed uncommenting these two lines in r2986. (Which, naturally, broke

Revision 2996

cmake: Enable zzogl-pg. (There's still a bug in here somewhere, though...)
Works, but has a crashing bug somewhere in it that manifests in Dragon Quest 8. Which is irritating, because I fixed that in the code::blocks version.
This requires a big thanks, even if it's not fully functional.
Since in my case compiling using cmake works better than in Code::Blocks.

Revision 2997

NSIS Installer:
* Fixed issues with start menu links
* Added an option for desktop shortcut!
* capitalization consistency (PCSX2 instead of pcsx2 for all user-displayed
* improved the uninstaller logic slightly.
is nsis installer updated to the last version of it, 2.46?
good to know, thanks for the info rama. :)

Revision 2998

Few more installer fixes.

Revision 2999

zzogl-pg: Patch to prevent compilation issues if fPIC is in the compilation
And, yeah, I could probably post some trivial patch right now and get r3000, but it'd be nice to have it be a bigger commit then that.
And I'm leaving for work in less then half an hour, so that'll most likely be someone else...
Yeah, we had that 24 threads support coming up for r3000. sorry :p
I had a patch to rewrite the Linux version of MulShr32 in spu2-x in inline assembly in trunk at the time I commented[1], but yeah, the 24 thread support probably worked out better as commit r3000.
[1] From the Linux comment thread from gregory, which is where half or more my recent cmake stuff has come from. Including this commit, actually.