PCSX2 Documentation/Google Code svn repository comments archive 3000 to 3499

Revision as of 16:20, 8 August 2015 by Gabest11 (talk | contribs) (Created page with "'''Revision 3000''' : <nowiki>* Added support for up to 24 threads. If you have a cluster server at home,</nowiki> : <nowiki>enjoy PS2 emulation at 20x normal speed!</nowiki>...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Revision 3000

* Added support for up to 24 threads. If you have a cluster server at home,
enjoy PS2 emulation at 20x normal speed!
* Added DX11 support. DX11 enabled cards now give a +~40% speedup
* New SSE-X instructions we invented for PCSX2. Give a +200% speedup even on old
CPUs.
* Full 64bit support. If you have 64 bit windows, be prepared for a 300% speed
up.
* Implemented new DMAC, so far we have ~15 games that show improvements.
* Added support for USB-enabled vibrators. Feel the full pleasure of gaming, now
also with PCSX2!
* SPU2-X now decodes Dolby Digital 7.1!
* Please test to find any bugs in the 24-thread code, it's a bit complex so some
tiny bugs might have crept in.
ramapcsx2
Yes people. We were holding off with this awesome new stuff for r3000.
Enjoy!!!
pcsx2gu...
Finally, I show my true coding skills. The last 14 threads gave me some trouble but I made it in the end.
DX11 was coded yesterday while on a coffee break
gigaherz
Wheee!
shadowladyngemu
WOW, just wow... really you've surpassed yourself.
cois...
hahaha
ebir...
im getting literally hundreds of compile errors, this broke everything :(
iakobo...
hahahahahah u rock xD and now that coffee u had will be famous among coders!
kaboo...
dull pleasure of gaming nice! <3
Billiard26
I only get a 35% speed up with my DX11 card. :(
eliotfur
It's not the 1st of April, you know... :)
ramapcsx2
Speedup depends on you vga card drivers.
pedrovalentesilvaa
Can i also play PS3 on pcsx2 guys?
pcsx2gu...
>and now that coffee u had will be famous among coders!
Yes it will be. Imagine I don't drink coffee at all, it was that epic.
ebirnie, I'm sorry but your system probably has <24 cores or you're using some ancient 32 bit OS which is like ridiculously old these days. I'm afraid you won't be able to use the new PCSX2 power, but you are welcome to try the new usb vibrator support :P
iakobo...
oh come on who uses 32 and 64 bit os these days? didnt microsoft release win 14 before a month or so with 512bit support?!
eliotfur
Vibrator support is nice, but it has some strange bug... The Vibrator does not stop when I select "Stop emulation" or close PCSX2... I had to unplug both ends of it to turn it off... But when I plugged it again it does not start... You broke my USB-enabled vibrator!!! Damn!..
ramapcsx2
That's why svn stuff is marked ALPHA! I'm sorry for your usb vibrator though.
crushtes...
Its hard to believe, but with a dx10 card I get a 42-47% speedup. Good job guys! (testing on my uni supercomputer with 342 cpus i can finally play some games full speed).
drkIIRaziel
but, will it blend ?
omegadox
It will :)
Wagnar...
The change in the code is awesome !! cant be cleaner!
jacol...
what is this a joke?
Ami.Mizu...
jacola24> Was that supposed to be a joke?
Now I'll go enjoy FFX at 1337 FPS!!11!1!1!!
necr...
Sweet! Finally works on my Voodoo
amberion...
I'm not getting the speeds I expect to see when running this on my other cluster server. Is there some specific command to enable 24 core support?
ramapcsx2
It should be automatic, iirc.
Ragha...
To cite Yuna: "Oh poopie."
Kyrox...
Did anything actually significant change in this release or is it all just to make people look foolish? =/ If there is any real change would there be a chance that there will be a real changelog on this one?
ramapcsx2
It's a joke. Most people chuckled at least, we're sure of that :)
refraction
Coming in r3002
a sense of humor! please feel free to distribute.
Kyrox...
I could see that it was a joke. It's pretty obvious. most of it's pretty obvious to anyone who has any idea what those things are and how they've been parodied/made unrealistic. =] I didn't so much mind myself, hopefully it doesn't let too many people down. I was actually hoping there was some realistic change but I guess not. Ah well, thanks for all the real releases, keep up the good work. Looking forward to further releases. Oh, on a side note and a bit OT but the SVN releases for 0.9.7 all seem to make my mouse disappear in the regular PCSX2 window (not the game window) if I suspend the game, is this a known issue?
helder.r...
how can i download one of your releases?
Kyrox...
Erm, sorry I guess I should be more specific, the problem occurs on Windows 7 64-bit.
JayOctar...
LOL, looking at the code changes made me realize how important a few empty spaces in C make in an application. ;p
ramapcsx2
It's magic! :D
jadjkor...
=D to run on win7 x64, enable all file and execution permissions to all users to the pcsx2 folder
you know, properties > security tab
this method even permits install unsigned drivers to win7 x86 & x64.
cheers to all the PCSX2 team for your unvaluable effort!
DanrleiS...
This new release is for operational system 32 ou 64
tatsuy...
Oh my god?! Can't wait to try this one.
wjat....
Haha... I never expect so many improvements in a single release! Congratulations team developers of PCSX2 and congratulations Bositman (pcsx2guide) by 3000th release.
wjat....
@Danrlei Neither! It was done for 32 AND 64! So, it really only works on OS of 98bits! :P
aou...
Is this a joke? I do not see any changes in the code....
weimingzhi
Lol!
Autor...
Nice joke, can't wait for next one with PS3 emulation
weimingzhi
congratulations on r3000 anyways btw :)
ramapcsx2
We had ps3 emulation planned for this commit, but canned it.
People would've thought it was fake! xD
actact9...
LOL!!!!!!! Im laughing my brains Out loud now, Way to go BOSSMAN nice of you stealing R3000 your the best :p hehehehe
ntcong.it
Yup, I don't have DX11 card, don't have Windows and any Ps2 game as well, but speed-up is nice =]
iakobo...
is this a new recored for review scores?!!!!
system.compiler
:-P
kittycat...
Joke or not, but thanks for your hard work guys! It's already over 3000 small and big changes in it!
cazzac...
What you did to BackgroundLogo.png is not funny. I still lold though. Congratz on your 3000th.
andutrache
Whoa a lot happened while i was away O.o
I wonder how many people got owned by this ? :)
+1 from me for the best pun ever, i lold so hard on this it hurts :D
chuuey
holy hell... congrats guys :)
Kaoss...
good joke .p
tatsuy...
Wait so its all fake...? Then what the F was changed besides adding spaces to the code..?
siavoshs...
ouch i have been stung
pcsx2gu...
Comment by tatsuya46, Today (20 minutes ago)
Wait so its all fake...? Then what the F was changed besides adding spaces to the code..?
Yes it's a hoax! We are terribly sorry for making a joke once every 3000 revisions, we will start working hard again immediately for your pleasure! If you were offended, we will offer a full refund of your 0.0 USD you payed for this program!
marcel.w...
Magisches Schwein!
Michael....
Stop messing around, and tell us what's actually new.
pcsx2gu...
Stop being so lazy and look at the diff? I love the military command tone though :D
The logo is new and shiny.
JohnnyKi...
God bless you all pcsx2 team :D Sorry for my bad english , anyway the change is huge , i wish you good luck , looking forward for the 4000th revision :D
einez...
lol that was epic! +1 just for the log. :p
jfre1...
Not funny
Dhalai.L...
OMFG... The SSE-X instruction gives +200% speed on all cpus ??
Dhalai.L...
Full 64BIT support ?!?! +300% speed up !??! OMFG. I can't contain myself. I'm gonna faint.
Dhalai.L...
By the way who are you Pcsx2guide ??? Bositman ??? Thanks man! You guys.... You guys... You're good !
Dhalai.L...
Damn... Is this really a joke ?? I need to know coz I'm gonna change my Win7 to 64bits right now... It's true isn't ??
spyboy2
Any Windows that is supported 64bit, that is. To use DX11, get Windows 7, and get ATI 5xxxx series or NVIDIA Geforce 4xx series to use DX11 version.
Dhalai.L...
Meh it's a FAKE ! HAHA! Grrrrr..... Ok.. Starting choppin down black chickens for lots of curses. :evil:
marcel.w...
Epic LOL! good to see some people in the emu-scene do have humor...
kirisame...
It would be nice if they weren't a joke, can't even imagine how pcsx2 will work how fast on my quad core ... with a DX11 fully supported VGA! Well ... It is still pretty to think in that way tho ...
Keep up the good work dev.! You guys ruined Sony :)
ramapcsx2
If anything, we boost interest in a nearly dead console ;)
platinum...
lol? like 1000% speedup? :D
JohnnyKi...
SO ITS ALL FAKE ? OMG :((
tetrabass
You're awesome guys!
pmct...
EPIC WIN OP!!!
Supe...
I suppose all the lists in this revision's change log is due in future plan, not implemented yet.
At least the x64 support is invalid, I can't build pcsx2 into 64bit's target in VS2008 while other 64-bit applications can be compiled.
amberion...
"I suppose all the lists in this revision's change log is due in future plan, not implemented yet."
No, I'm reasonably sure there will never be any 24 core support, nor support for USB vibrators. And you can't 'invent' new instruction sets like this fictional SSE-X, since the whole point of SSE and it's different variants is it's hard wired into the CPUS for performance purposes.
bailacom...
All the pcsx2 devs would learn from the Dolphin proyect ;)
paulocon...
bailacomojuanalacubana, what do you mean?
Are you saying that Dolphins Team is better than PCSX2 Team?
Common, wake up! You got here an excellent emulator, madded by free of charge! Coding this think must be really hard (even harder than hearing a politician saying the same promises for 30 all years, and do nothing!)
Dolphin Team is one team, this one is another, all of them are excellent coders, so why are those ridiculous comments for?
We should do our part, helping in what we can by reporting bugs, and properly test every oficial release (like reporting if a game works or not) so they can get PCSX2 to the level of Gens (mega Drive emulator) or epcsx or even PCSX (PS1 emulators), that ones emulates almost every single game of their platform! Look at NullDC (dreamcast emulator), it turned open source now too!
Why? Well, this is just my opinion, but by opening their source, they can find bugs that usually a developer can miss, and even just a simple phrase of a ultra normal user can help in the most remote things to help a dev to make the emulator better (I know, it«s king of House MD talk)!
We should be thankful for this brilliant team, not saying that they should be like this and that!
Anyway, congratulations for the R3000!
Almost fooled me, but the "New SSE-X instructions" killed everything, as i simply thought "it can only be a joke", (scroll down the page and confirms that was a joke but hey, whats the point of working in something if we don't have fun with it =P At least some one has sense of humor! XD).
shadowladyngemu
At least some one has sense of humor! XD
+1
bailacom...
To [email protected], don't like my humor?, jajajajaja.
ok, sorry by my comment, ... but Dolphin don't play with us... at this moment :)
evolutionrevolution
Epic, except you guys forgot to do the CUDA code! Do it for r4000 plz! :(
redshirt...
Lame!! I love PCSX2 and am looking forward to the next official release, but check-ins like this are Juvenile and do nothing to improve the project.
jerrymel...
Dolphin do not do things like this, but is your proyect aniway.
iakobo...
still saying stupid things lol. its like some ppl live in a world that everything its taken seriously! xD come on relax and laugh a little (5 min laughing = 1 min of life!!!!!!!!!!!)
paulocon...
Lol, let the pcsx2guide have some fun too. Imagine him imagining us reading with our mouth openned almost having a heart attack the modifications and its just a lie LOL
O well, lets wait to the r4000 to see what happens xp
And Baila, don't worry, everyone haves it's opinion, i don't point a gun just because you said that xp
ramapcsx2
Gee, what a mess :p
Master...
lol
Great humour! And Congratz to the 3000th revision!
+
micheles...
nice i love
Wagnar...
Lol can't believe there are some in there trying to say to the Devs what to commit or not.
Keep the trolls rolling :D
ShirowSh...
Loved it. Shame to see so many people going "I have no humor. I demand work on my free product."
Keep on making yourselves and others happy, in whatever way you choose. =)
This revision certainly made MY day better. ^.^
knub12...
OH REALLY? WOW, I GOTTA CHEcK THIS OUT. :-)))))))))))))) OH SNAP DANG.... IT WORKS OMG. YES. 200x SPEED. PRO. YOU PWN GUYS!!!
romeo_ca...
damn it works

Revision 3001

Get the console title-bar to say "Unknown Game" if the game wasn't found in the
database...
iakobo...
u should be the 3000 :P nice work on the database!
helder.r...
great job, you're genius....but how can download this release?
helder.r...
or other great releases like this one?
jadjkor...
you have to compile it by yourself xD
helder.r...
and how do i compile?i am a nerd in informatics...thanks anyway :)
izido...
I don't know how to compile....
Can someone do this to me???
=D
Sry for bad english.
helder.r...
now even the anonimous fans appears...everybody wants that release...but dont know how, i've already search on google for PCSX2 R3001 but nothing :)
izido...
I searched too, but nothing.  :(
kaboo...
"Nerd is a term, often bearing a derogatory connotation or stereotype, that refers to a person who passionately pursues intellectual activities, technical or scientific endeavours, esoteric knowledge." quote Wikipedia
@ helder ... so you being a nerd means you are really good with informatics stuff ... so why do you need help?
anyways... here https://code.google.com/p/pcsx2/wiki/CompilationGuideForWindows
or just go to the wiki tab and look for compilation guide windows... seriously why doesn't anyone use google anymore or at least watch their surroundings...
helder.r...
can anyone upload this release into web and post a link for nerds :) for us to download...please
kaboo...
ah for the record I googled with the american google "how to compile pcsx2" without quotation marks...
kaboo...
nerd means the exact opposite of what you obviously are thinking it means
helder.r...
thanks kaboo you're the man...execuse for the term
actact9...
man just save yourself the trouble and Go to EMUCR already they already have it there anyway If cant compile it don't force yourself too you just might give yourself a Headache
eliotfur
Nice code:
return !!curGame;
I should remember this trick... :)
Metal.So...
This is joke again :(
pcsx2gu...
Comment by [email protected], Today (15 minutes ago)
This is joke again :(
Proof that the vast majority of people who +1 and comment on google code have no idea what they're looking at. You can't tell a diff with some line spaces from a diff with real code...
eliotfur
@pcsx2guide:
Half of them do not even look at diffs on top of the page... The other half do not even know they can look at diffs...
I think that doubt was caused by my last comment...
The trick I was telling about is how to make a function to return boolean value about "is some non-boolean var not NULL" not using conditional "if"...
Metal.So...
I look at diffs on top page, just after launch r3001 - it with jokes inside, and on shortcuts OMG! :)
cottonvibes
@eliotfur
"I should remember this trick... :)"
yeh i loved that trick when i first learned it too ^^
(thats why i like c++ so much, cuz you can do cool stuff like that... you can't do such things in c# or java...)

Revision 3002

I hate D3D.
32-bit depth buffers for D3D9 users if available. Lots of code shuffling for
reasons I don't even remember. Stuff. Pretty much just the 32-bit depth
buffers. That's good though, you don't have to envy D3D10 users half as much
now.
Metal.So...
Hopefully this is real revision...
sudonim1
Yes it is, as was r3001 and as I sincerely hope r3003 and all revisions to come for a long time will be.
eliotfur
I think this one should fix z-fighting issues in FFXII in DX9 mode (and other games as well)... It's really nice to see GSDX-related changes...
refraction
eliotfur: Thats the idea ;)
actact9...
another big Commit from SUDO Gotta test it right away Hehehe!!!!!!!!!
does mean DX9 will be as fast as DX10/11 now
ramapcsx2
It won't be faster (one single case of slowdown is known, actually, but that one was always an issue anyway).
The real benefit should be better Z fighting protection for dx9 users.
shadowladyngemu
Very nice work, seems to have added some glitches though but the general compatibility should be much higher overall.
http://img299.imageshack.us/img299/5610/gsdxsvn3003201005141757.jpg
http://img41.imageshack.us/img41/2893/gsdxsvn2966201005141757.jpg
Does this make the log-z option useless now? or it's still got some uses?
sudonim1
Confirmed shadow hearts issue, the FBA feature needs to be enabled for the glitch to appear.
sudonim1
And logz is useless if your graphics card supports 32-bit depth buffers. Because it breaks so many games I automatically disable it in that case.
shadow0...
This fixed the issues in D3D9 HW with Amagami, Kimi Kiss and Gakuen Toshi Vara Noir, and other of the more common shadow issues caused by enabling Log-Z (Fu-un Bakumatsu-den/SD Gundam Force - Showdown). However Gunparade Orchestra games still have deep issues on HW, characters are always on top of backgrounds regardless of actual deep.
sudonim1
Hmm, well could you make issues for remaining depth problems? I don't intend to look into any specific games in depth until I've got all the fixes I'm working on into svn.
byan...
Hi, it seems this update makes using HW AA in DX9 mode will crash the emulator. Is it supposed to disable HW AA in DX9 from now on?
Regards,
byan...
Good thing is it fixes the glitch on the floor like this (Game is Xenosaga III)
http://dl.dropbox.com/u/231367/gsdx_r2966_glitch%20on%20floor_shadow%20and%20texture%20.jpg
http://dl.dropbox.com/u/231367/gsdx_r2966%28glitch%20on%20floor%2Cgrey%20shadow%29.jpg
http://dl.dropbox.com/u/231367/gsdx_r3002andAfter.jpg
throumba...
This is a brilliant improvement. The only thing ive seen thats a problem is a slight shadow issue in persona4 where the shadow is missing a bit of color. A thousand times better than seeing messed up shadow triangles all over the place though.

Revision 3003

There was a slight threading affinity issue with r3000, so we have to revert it
:p
eliotfur
threading affinity, a-ha... :)
cottonvibes
Guess pcsx2 wasn't ready for 24 threads ;p
amberion...
Or the awesome new art!
shadowladyngemu
Awww... I'll miss the SSE-X speedup :/
pedrovalentesilvaa
as long as usb-enable vibrator still works...
ramapcsx2
Sorry ><
But you can use the pad still. That one vibrates for real ;)
Metal.So...
I happy now, in this revision - these jokes removed :D
andutrache
awww just when i got 500 fps in all my games :P
TOO BAD !!! XD
hirits...
XD" this joke let me fun a lot

Revision 3004

* Added Refresh button to the bios selector.
* Added some brevity info to the Bios Selector screen during first time wizard.
* NSIS: Added IsUserAdmin script; not used quite yet (see diff comments)

Revision 3005

Add "setSettingsDir" export definitions to a few plugins that were missing them.
Fixes an issue where they could not access their config files in restrained
PCSX2 installs.
Fixes issue 686 .

Revision 3006

Same fix for cdvdGigaherz as the last rev + workaround for ZeroGS so it also
works in default Vista/Win7 installs.

Revision 3007

Patches are now part of the game database.
They can be CRC specific, or just based on the game serial.
Examples:
[patches]
// This patch is loaded regardless of crc
patch=0,EE,002aa040,word,24020001
[/patches]
[patches = 84993903]
// Patches go here
// This is only loaded if crc = 84993903
patch=0,EE,002bc040,word,24020341
[/patches]
notes:
- pcsx2 only loads the first [patches] block that matches the game.
- The [patches] block based on crc takes priority when pcsx2 searches for
patches...
- Everything in-between the patches block gets fed to pcsx2's old patch parser;
so currently the patch syntax is the same as before...
- A lot of patches weren't added to the database since they didn't include
serial codes in their *.pnach files :/
iakobo...
nice everything in one place :D i am sure i will like this thing cause it seems way more tidy than before ;)
weimingzhi
no... this makes simply copying one or several files to "stupid" users for them to patch something much harder :(

Revision 3008

Bye-Bye patches folder ;p
iakobo...
really nice one :D i just hope now that we will be able to edit the patches easy in the pcsx2 options!
kittycat...
The one thing is bothering me is how will we be able to create and _exchange_ new patches/cheats easily? It's now the part of the big file so it might need some 'save this patch as...' extracting option or something like this.
cottonvibes
iakoboss7:
That hasn't been coded yet, but hopefully it will be soon.
kittycatcat:
You just have to open the database in a text editor (like notepad), search for the game in the database, then copy-paste the patch.
Its actually simpler than before since you don't have to create any new files, and know the crc of the game.
Also the database is not supposed to be used for cheats, so you shouldn't have to be adding patches often.
We will eventually make a separate cheating system for cheats.
kittycat...
Ah! You've dispelled my fears here (because so many people would have a hard time understanding how to seek and extract the part of the text from a file without .txt extension)! Thanks! In this case it looks very sound!
cottonvibes
kittycatcat:
Yes it technically is just a *.txt file ;p
I didn't keep it as DataBase.txt for 3 reasons:
1) To prevent people from deleting it.
2) To prevent people who didn't know what they were doing from modifying it.
3) Because it looks unprofessional to keep it as *.txt xD
iakobo...
@ cottonvibes i hope the separate cheating system will come out with 0.9.7 or u will make me stop at r3006 (or before that) for ever!!!! :( ( i use all the new that comes out hehe)
cottonvibes
iakoboss7:
You can still use the database for cheats for now, but its not what its supposed to be used for :p
If we implement a real cheat-system, it should be a lot more user-friendly and powerful than patches.
iakobo...
cottonvibes:
at least it seems there are plans for a cheat-system and thats great :D
well i see u still are doing changes in the database (adding/fixing staff etc) so each time i would probably have to copy over the cheats to the new database right? and also wouldnt that create a problem, even if u finish all the ps2 games list, because new games still come out in ps2 so we would have to do that like for ever? (until that cheat-system ^^) or u have though of something to keep things easy and simple?
gladiato...
It could be fine, but seems more complicated to add the patches, since i think that i suppose that there won't anyone in the PCSX2 team that will update the database, or am i wrong?
Perfect about using game serials instead of CRCs, other thing is using sonyindex since is missed a lot of games (specially pal versions).
Specially if you consider that people uses the patches not only to avoid emulation issues, but for cheating in most of the cases...
I see the shape of things to come in the memory card part: looks good, but if i can ask each memory card can be browse in the emulator when that part of the gui will be finished?
In resume: Positive, but with lots of works to do for what it seems.
actact9...
Oh man it happened sooner than I anticipated its gonna take a while converting 30+ patches one by one into this new system

Revision 3009

added katamari (u) patch...

Revision 3010

- Added katamari (j) skip video patch.
- Added description on the patch syntax in the game database header...
toh...
how to use skip video patches in new gui?

Revision 3011

GSdx:
Get the offset hack working normally again.
Autor...
Nice one, but in all games effects still a little bit haigher and a little bit left than it should be
ramapcsx2
This hack can't really fix the problem, only shift (offset) it ;)
The drawback is those extra pixels that get added sometimes.
There's even worse, like the Persona / FF12 floor glitch..
emuk...
Can i raise a question?
Busin 0: Wizardry Alternative Neo
GSDX plugin
HW:The screen has black area
http://www.heberger-image.fr/data/images/20683_sshot_02.jpeg
SW:is very slow..
http://www.heberger-image.fr/data/images/60515_sshot_01.jpeg
fix it please,thank!
ramapcsx2
I don't have the game.
ramapcsx2
emukon2:
Come on, think a second before deciding to do that again!
Erze...
[email protected] Problem...
looks like my Problem at
https://code.google.com/p/pcsx2/issues/detail?id=620

Revision 3012

zzogl-pg: Copy all the old zerogs patches that used to be in the patches folder
into zzogl (minus the FF X ones, as the FFX hack is no longer relevant).
Commented out right now, because I'm not sure how many of these are even useful
any more.
arcum42
The real challenge on this is that some of these probably *shouldn't* be enabled by default...

Revision 3013

Fixed the database reader in Linux again (by moving the check into a better
location). Got rid of some unused Patch code.
arcum42
Oops. Left an extra copy of the check in there. I'll get rid of it when I have a chance.
Not that it matters, since it just won't do anything the second time it's run.
arcum42
The extra one is in DataBase_Loader.h, btw...
cottonvibes
hmm was the zerogs stuff even being used by zerogs!?
what was reading g_ZeroGSOptions?
doesn't seem like anything...
arcum42
I noticed that. GSsetGameCRC should have passed both the crc and the options, but it was passing 0 instead of the options. It probably got messed up during one of the major GS revisions.
All the more reason to test the zerogs options from the plugins carefully; they clearly have not been tested in a while...

Revision 3014

Left this in accidentally.

Revision 3015

spu2-x: I'm pretty sure that these lines should have had breaks after them...
(pointed out by gregory.)
ramapcsx2
Terribly sorry ><
arcum42
It's an easy mistake...
(Since gregory keeps poking and prodding at cmake, "contributed by gregory" is getting to be a bit of a theme. And it's one I certainly appreciate...)
ramapcsx2
X2 reverb is for pussies anyway, we want AWESOME REVERB always :p
arcum42
I suppose we could change the dialog to just give a choice between normal reverb, and awesome reverb. ^_^
ramapcsx2
:p

Revision 3016

NSIS Installer:
* Added banner image
* (UAC) Re-enabled forced-admin mode for now
* Fixed a bug in the vc redist installer.

Revision 3017

NSIS Installer: disabled the vc-redist check since it's buggy or something, and
fixed the desktop shortcut link.
eliotfur
I feel the new long-waited public release here... :)
gladiato...
Just a suggestion, for future svns, can the pcsx2.ini please be created in the pcsx2 folder instead of c:\users\...\pcsx2\ini\ is a little annoying to go there when you got to change things in the ini (and all the svn share the same ini the way it is now).
pcsx2gu...
We've done it this way to prevent the *billion* of users who can't run PCSX2 because they don't have admin rights, so it's not going to change
ramapcsx2
Hah! We wish it'd be that easy :p
Enter the idea of protected program files:
On any normal Vista / Win7 install we do not have write permissions to the install dir.
If you have admin privileges this doesn't concern you, but it's against Microsofts security idea.
You can however specify a custom location for PCSX2 in its first time wizard ;)
gladiato...
ok. The major issue with the ini is about changing memory cards that i suppose that in the final v097 can be changed in the final gui so it won't be a big issue.
:)
Jake.Stine
Sharing INI files between versions is also (usually) a good thing. Ultimately the command line args will work again and allow you to specify custom ini files to run, via shortcut or third party frontend tool.

Revision 3018

A few tweaks and additions to the installer.
Also avoid an issue where the FirstTimeWizard would fail creating some files.

Revision 3019

Installer:
Got rid of the redist check. Now the package always installs / repairs in
unattended mode.
iakobo...
but what if someone has the latest with all updates from windows update (and the latest service packs that maybe are newer than yours [cause microsoft release service packs often])? yours it cant be newer and maybe not even the same (cause of the fixes windows update add's)
Jake.Stine
It's a strongly versioned DLL. If a newer update of the required version already exists, it stays put.

Revision 3020

cmake: Some patches from athos and gregory. spu2-x builds in cmake.

Revision 3021

cmake: Change the way stripping is handled.
arcum42
And it took me several minutes not to make bad jokes about this one...
gigaherz
Temptation... must not... make stupid joke...

Revision 3022

cmake: A bunch of 32 bit/64 bit stuff.
marcos....
Encountered some errors during compilation maybe this helps:
CMakeFiles/pcsx2.dir/gui/SysState.cpp.o: In function `gzipReader::gzipReader(wxString const&)':
SysState.cpp:(.text._ZN10gzipReaderC1ERK8wxString[gzipReader::gzipReader(wxString const&)]+0xfb): undefined reference to `gzbuffer'
CMakeFiles/pcsx2.dir/ZipTools/thread_gzip.cpp.o: In function `CompressThread_gzip::ExecuteTaskInThread()':
thread_gzip.cpp:(.text+0xdd2): undefined reference to `gzbuffer'
collect2: ld returned 1 exit status
make[2]: *** [bin/pcsx2] Błąd 1
make[1]: *** [pcsx2/CMakeFiles/pcsx2.dir/all] Błąd 2
make: *** [all] Błąd 2

Revision 3023

SPU2-X: Fix compilation errors under windows, and remove the /LTCG warnings when
building Devel targets.

Revision 3024

- Console TitleBar mentions how much patches were loaded (if no patches loaded
then it doesn't say anything)
- Database key searching is no-longer case-sensitive (so for example: [patch =
A1B2C3D4] is the same as [Patch = a1b2c3d4])

Revision 3025

If a game doesn't have a serial code (homebrew, demos, etc..), then pcsx2 will
search for its crc in the database.
Note: In this case you will set Serial = crc in the database (this should only
be done when the game doesn't have a real serial code)

Revision 3026

- Added the rest of the patches thanks to Shadow Lady and Refraction finding
their serial codes.
- Fixed a bug in the database_loader omitting the last game in the database...

Revision 3027

Added back 2 games that were removed from the database due to a bug i had...

Revision 3028

Add 2 games to the database. Fix a Linux warning (non pod-safe object).
arcum42
No, not the same two games...
gladiato...
I could provide you more game serials that are not in the database (most of the european or spanish only versions).
They are not in sonyindex.
gigaherz
Feel free to post your listings somewhere, a good place would be an "Issues" entry, and preferably in the same format the database uses, so you save them work.

Revision 3029

- Added eeRoundMode and vuRoundMode options to the game database (these options
are only applied if patches are enabled)
- Rename game database to "GameIndex.dbf"
iakobo...
call me stupid but i still dont understand how we are supposed to use the cheats there. ok we have to copy them there. but where? under the game before the "---------"? or at the botom? and each patch should be [patch]patchcode[/patch]? or [patch]patchcode
patchcode
patchcode[/patch]? well an example of a random game and a random patch would help allot if possible :)
kittycat...
I guess you just have to wait until the cheats are implemented into the new GUI. AFAIK this database is not supposed to be used for cheats (temporal in nature) but for permanent game patches (instead of hardcoding them into the source).
cottonvibes
iakoboss7:
---------------------------------------------
Serial = SCUS-97231
Name = Arc the Lad - Twighlight of the Spirits
Region = NTSC-U
Compat = 4
[patches]
// You can paste your patches here
//Skip introVideo(s)
patch=0,EE,001d7df8,word,24020001
[/patches]
---------------------------------------------
cottonvibes
also, note that the [patches] blocks have to be on their own lines or else the database reader won't recognize them correctly.
cottonvibes
also patches have to be enabled in pcsx2
file -> enable patches
arcum42
Twighlight?
jfre1...
An excellent rpg. Not as good as Arc 1-3 on the ps1 though. Not even remotely close.
iakobo...
very thanks i will keep that as a reference :)
iakobo...
what about you (the creator) posting a thread of how it works for everyone that is interested? or again u shouldnt cause its svn.... well up to u guys
laki...
I'm really thrilled that the emulator is going in this direction where game patches/fixes/settings configurations are stored and applied automatically. It will lead toward such a more user-friendly experience once most of the relevant settings are manage-able by this file and the db is populated with them such that people can just run games without having to hit the forums to find out appropriate settings. I regret that I have only one +1 to give to this change.
andrea.c...
my exact thought, lakitu... or lets simply say its a nice step to be an "emulator" :)

Revision 3030

Since we don't have a proper cheating system in pcsx2 yet, we're going back to
the pnach system for game cheats.
This means you can put your cheats in "\cheats\*.pnach" and pcsx2 will read them
from there.
Notes:
I have included some persona 4 cheats as an example in this commit...
Also note that currently the "Enable Patches" menu item also pertains to cheats
(as well as database file patches).
I will add a separate "Enable Cheats" menu item in the future...
cottonvibes
So to sum this up:
Use *.pnach files for cheats for now.
While the GameIndex.dbf database will be used for game-patches and gamefixes needed to get games working with pcsx2.
Eventually when we get a good cheat system in pcsx2, we will get rid of the pnach system...
actact9...
yay I dont have merge my patches to the Gameindex database anymore TNX Cotton
azte...
that's good, i guess, but when teh new memory card will come to make 0.9.7 see the light? - i know it's when it's done ;) - any idea? 1, 3 or 5 months?
arcum42
Some of the patches in GameIndex.dbf appear to be cheats, too, so we may want to move a few of them to the cheat file.
I noticed that the Crazy Taxi entry had "infinite arcade mode", and the Gran Turismo 4 Demo had a Pause & Timelimit counter stop, for example.
I have to wonder how many of the patches work around issues that are no longer in the emulator, too...
geo...
it is amazing that pnach system still exists since 2001 that i first implemented it (shadow)
gigaherz
Heh, yeah... I made an XML patch format, but people thought it was too "bothersome" to write XML tags. :(

Revision 3031

NSIS Installer:
* Added Visual Studio 2010 Redistributables to the installer package.
* Added some component descriptions. :)
* Separated several things into nsh header files for organizational purposes
Supe...
You don't have to add Visual Studio 2010 Redistributable Package, just msvcr100.dll and msvcp100.dll is enough for pcsx2 running properly, if compiled from VS2010.
iakobo...
still why not added it? future programs will need it sometime so it doesnt hurt it will just do good.

Revision 3032

Cleanup patch.cpp...
arcum42
Except for AddPatch and RemovePatch, all the functions in Patch_Obsolete.h are just for troubleshooting purposes; I think they made it in during the rewrites so we could easily tell if it was parsing the pnach files properly.
They don't really have to be in there, but it's more convenient to have them there as helper functions if you need to know if pcsx2 actually understood a patch correctly.

Revision 3033

- Add "Enable Cheats" menu item.
Enable Cheats means enabling support from the files in "cheats\*.pnach"
Enable Patches means enabling support for the gamefixes/patches inside the game
database...
romulux_...
Very nice iniative cotton, this whole process you are going through right now realy inspires the sense of a solid and mature emulator.
Btw, how are you? Did you finish your college? Are you employed as a programmer?
U guys here at pcsx2 are really capable of many good things, and the comunity apreciates your dedication for this free project !
cottonvibes
eh thanks ;p
haven't finished college yet, and not employed as a programmer yet either xD
when i finish uni, i'll look into game programming jobs ^^
kittycat...
Good luck! Too bad these days it's mostly about being yet another brick in the industry wall (i.e. working for people don't even want to understand the gamers). It's all about money now.
Ah, sorry, just a random trash from me...
romulux_...
Well at least you passed discrete mathematics xD :P
College seems to never end sometimes, yet other times I really enjoy being a student, except for the fact the exams are around the corner...

Revision 3034

Here we go again...

Revision 3035

SPU-X:
Committing a patch by KrossX3 that should fix the stereo expansion option for
*most* people.
Of course on my setup it fails to grab the correct number of speakers, so will
have to think about it..
The code is correct though, so it should fix it for some people :p
KrossX3
How about an INI option to force the number of speakers?
ramapcsx2
Yea, possible :)

Revision 3036

zzogl-pg: fixed a whole bunch of signed/unsigned warnings in Mem_Transit, and a
macro redefinition warning.

Revision 3037

re-enabled USE_HOSTFS, and made it so that it detects when "pcsx2hostfs_ldr.elf"
is not found, gives an error msg, and then continues loading the elf file
without hostfs support...

Revision 3038

Load gamefixes automatically through database! (Note: "Enable Patches" must be
on)
So far I've added the tri-ace gamefix to all tri-ace games i know in the
database.
The other gamefixes just need to be added to the games in the database (pcsx2
already has the support to load the other gamefixes)

Revision 3039

Added a bunch of games to the database to have their gamefixes auto-enabled.
If you know a game that still needs you to manually select the gamefix in the
gamefix panel, the please comment (or fill out an issue).
actact9...
Good work Cotton are ya plannin on adding what plugins we want to use on the Gamedatabase aswell
laki...
Auto-application of gamefixes is a fabulous way to go and I applaud the heck out of it.
laki...
Yeah that's a good question too: Is it planned to allow remembering of other per-game settings as well? Like, we all know that certain plugins or speedhacks do/don't work with certain games. To the limited extent that there are "ideal" configs for each game it seems like it would be awesome to have those automatically applied as well.
romulux_...
You do realize of course that a complete aplication of patches plus all the "perfect" game settings would require a heck of alot, if not an impossible amount of work and research and feedback and what-not.
It's just not plausable enough for now, but the gamefixes auto-enable is a really nice touch and implies less headaches for users, thanks for that!
jfre1...
And what settings are good today will not always be the case tomorrow
kva...
i don't know if I understood lakitu7 well, but je probably meant that configs were savede automaticly to our hdd after game loading. He probably didn't mean to setup all the configs for all games by the pcsx2 team.
For example if I load a game a then cofigure something, then those configs will be applied automaticly when I'll load the game again.
It's obvious that the team don'y have time for finding the best config for all games, but if we love a specific game then we could find it ourself. Ther could be one more feature. In config option, ther somwhere could be some option like "send this config to the server". peaople could send their own best configs, of course there could be a comments for machine specs this was used for(processor, win Xp, Win7, dx9 ,dx10 etc).
Then someone who have problems with settings could connect to some configs database and try some. After loading the game there could be some info that there are configs for this game. Of course first emulator could be setup for internet connection or something.
Just such an idea.
kva...
And sorry for those typos ; [.

Revision 3040

Remove a handful of export/def warnings from the NULL plugins.
Jake.Stine
th old-school "LIBRARY" name specifiers was only ever needed for the ancient mingw (gcc for windows) makefiles, which were murdered in their sleep years ago upon the release of Visual Studio Express.

Revision 3041

SPU2-X:
KrossX3 coded user selectable audio expansion (Still Xaudio2 only) support.
Since the automatic detection fails on some systems, this is the next best
option.
Tested and works as expected. Thanks a bunch, KrossX3 ;)
KrossX3
Yay! =3
I guess Issue 499 can be considered fixed now?
ramapcsx2
Done :)
Jake.Stine
In other news, I guess we should investigate re-fixing the directsound support so that it, too, supports more than stereo; since DSound is once again a viable alternative in Windows7 and (apparently) Vista SP1. We got away from DSound because in early Vista the latency was entirely unacceptable.
novasaur
DirectSound doesn't even work properly for me under Windows 7 here...
PCSX2 (and another emulator named bsnes) displays a message and it just won't output any sound at all with it selected.
So DirectSound is definitely not an alternative here. XAudio2 seems to be the only option.
pcsx2gu...
Dsound works perfectly here under Windows 7 Pro 32bit with an Audigy 1. Your sound card drivers are probably at fault.
novasaur
Well it became a problem ever since I upgraded to Windows 7.
Changing sound cards from a Auzentech X-Fi Prelude to a ASUS Xonar D2X PCI-E didn't do a thing, either (of course that also means changing drivers).
Maybe it's a problem with x64 Home Premium. I'm not sure.
Tried searching for days up on this matter & have been unable to find any possible results on resolving.
KrossX3
No problem here with DSound either. But I think it would be best to start a forum thread including the error message you get.
azte...
welcome to team KrossY3.

Revision 3042

Add support for changing FPU/VU roundmodes through database...
cottonvibes
oh i mean clamp modes'
(we already had support for roundmodes)
yujack2...
even the Log said
"Game DataBase: Changing VU0/VU1 clamp mode [mode=2]"
but it didn't take effect at all.
sorry for my bad English.
yujack2...
it seems like only the vuClampMode didn't work,the eeClampMode is fine.

Revision 3043

Fixed the EE timing hack.
iakobo...
good but what exactly was wrong with it and what got fixed?!
ramapcsx2
Check the changes if you need to know it exactly ;)
iakobo...
mostly i dont understand these things but this one was kinda easy to understand ;)
Ami.Mizu...
+1 for fixing a hack lol. A rare sight in the emulator community.
sunnydra...
replaced with CHECK_EETIMINGHACK :) i hope this will be not r3000 :)
im not really understand code of pcsx2 but this changes look like trigger to enable EE hack commands execution via database/emu settings.

Revision 3044

Get Linux building again.
Jake.Stine
You could fix the log message any of the following ways:
Console.WriteLn("Loading Gamefix: " #gFix);
Console.WriteLn("Loading Gamefix: %s", #gFix);
Console.WriteLn(L"Loading Gamefix: %s", wxT(#gFix));
All of those will return it to single-line behavior (if having everything on a single line is preferred, which I think it is).
Jake.Stine
(note that all of those should compile fine in GCC, though of course I could be wrong :p)
arcum42
Yeah, any of those will work. It was mainly "L#" not working in macros that was giving me issues with the logging.
I just happened to throw together a few attempts at the console message that printed garbage, and as I'm getting tired, decided to go with one I knew would work... ^_^
marcos....
cmake doesn't compile well since some time, and now have some
more errors. This is just info for You cause I'm not complaining, :)
Here's the log:
Linking CXX executable ../bin/pcsx2
CMakeFiles/pcsx2.dir/Patch.cpp.o: In function `ApplyPatch(int)':
Patch.cpp:(.text+0x28a3): undefined reference to `_ApplyPatch(IniPatch*)'
CMakeFiles/pcsx2.dir/Patch.cpp.o: In function `ApplyCheat(int)':
Patch.cpp:(.text+0x28f3): undefined reference to `_ApplyPatch(IniPatch*)'
CMakeFiles/pcsx2.dir/gui/SysState.cpp.o: In function `gzipReader::gzipReader(wxString const&)':
SysState.cpp:(.text._ZN10gzipReaderC1ERK8wxString[gzipReader::gzipReader(wxString const&)]+0xfb): undefined reference to `gzbuffer'
CMakeFiles/pcsx2.dir/ZipTools/thread_gzip.cpp.o: In function `CompressThread_gzip::ExecuteTaskInThread()':
thread_gzip.cpp:(.text+0xdd2): undefined reference to `gzbuffer'
collect2: ld returned 1 exit status
make[2]: *** [bin/pcsx2] Błąd 1
make[1]: *** [pcsx2/CMakeFiles/pcsx2.dir/all] Error 2
make: *** [all] Error 2
Jake.Stine
@marcos:
The gzbuffer errors are because it's a new feature as of zlib 1.2.4. Since Arcum changed linux to use the distro-provided zlib, you need to update to the latest zlib in order to compile (I'll see about adding a version check compiler define or something to get around it).
The patch-related errors are probably because the addition of Patch_Memory.cpp -- it's likely not added to the cmake lists yet.
marcos....
Thank you for the information. :)

Revision 3045

Add support for EETimingHack through game database.

Revision 3046

Add the xgkick to f1 2003 in the database. (thanks to omnikam for finding out
the game needs this)
weimingzhi
good :)
btw, should the EE round mode settings for FF10 and FF12 added to the database as well? (FF10 - Negative, otherwise there are issues in many battles, FF12 - Chop/Zero, otherwise it freezes when using magics)

Revision 3047

More work on memorycards, and general UI adjustments. Some things with the
dialogs might be a bit broken-ish. Will finish this up properly soon. :)
laki...
Cool, looking forward to completion of the new UI.
azte...
good that mc is being worked, 0.9.7 is coming. :D

Revision 3048

portaudio: minor MSVC project fix; the lib file was being generated outside the
deps folder.

Revision 3049

Should fix zlib-related errors in Linux distros that don't have the1.2.4 or
newer version of zlib installed.

Revision 3050

Update portaudio to the latest snapshot. It seems to have some improvements on
sample conversion, WASAPI and ASIO.

Revision 3051

Quick Linux fixes.
Jake.Stine
For future reference, wxT() and _() are not interchangable. wxT is a nop that only serves as a "marker" for gnu GetText, to let translators know the string needs to be translated. Typically it's used in cases where you have a table of strings or something that are later translated manually using calls to wxTranslate().

Revision 3052

More UI Progress.
kaboo...
yay

Revision 3053

Fixup drk's profiler to work again and also support mVU...
ramapcsx2
Well, that was rather quick :p

Revision 3054

onepad: apply a patch to the ini settings.
arcum42
Both this patch and the following are from gregory. This fixes the ini paths if you install somewhere other then the default location.
arcum42
In fact, I'll probably be applying several of his patches today...

Revision 3055

zeropad: patch the ini settings as well.

Revision 3056

cmake: Update some missing files. Compile Devel by default.
arcum42
Oh, and commit a shell script gregory wrote to find missing files in the cmake build. Should make my life a bit easier...
poisiono...
I can see how you would :)
+1 for BASH/SH script (silly fondness)
And more so on missing-files-update, and the work to keep things from becoming a mess in general :)

Revision 3057

R5900 recompiler: more compact code generation for QFSRV and PADDSW, removed a
little redundant code. Big difference in the opening fatal frame fmv for me,
but this is probably cache related. Don't expect anything.
Jake.Stine
I think Fatal Frame and KH2 are some of the only known videos to use that instruction extensively. (it was originally implemented as a way to speed up KH2 vids).
Jake.Stine
by "that instruction" I mean QFSRV.
sudonim1
Note: this is broken, don't try it. Will fix shortly.
sudonim1
...will fix when I can see what the hell's wrong with it (recPADDSW) (the comment with the trinary operator is wrong, but that's all afaics)

Revision 3058

I feel empty now.

Revision 3059

More fixes for my own mess

Revision 3060

cmake: Fix the default build type. Add some CMakeList files.

Revision 3061

cmake: commit some cleanup work (done by gregory).

Revision 3062

cmake: Remove a few unneccessary defines.

Revision 3063

GSdx:
Fix the worst memory leaks on emulator suspends.
actact9...
WOW another great one RAMA is this the last momory leak gsdx have or is there more

Revision 3064

Todo List updates! :)

Revision 3065

Add <> to zlib and bzip includes (matters on Linux)

Revision 3066

Even more memorycard work! Dialog box is mostly functional now (still missing a
couple options and refinements) -- WARNING: settings/ini storage has changed.
If you're using non-default memorycard settings, you'll need to go and edit your
ini again.

Revision 3067

GSDx: Free textures that have been in the unused texture pool for a few frames.
GSDx: Reset device on save state load.
GSDx: Made GSRenderer::ResetDevice() actually do the main function in its name
and implemented InvalidateTextureCache(). If anything breaks, it's because of
this change.
sudonim1
Hmm, though I didn't state it this commit is meant to eliminate the big gsdx memory leaks.
novasaur
"GSDx: Free textures that have been in the unused texture pool for a few frames."
Wouldn't this cause some stuttering as the textures will have to be loaded again later on even if the user has a sufficient amount of memory?
sudonim1
This has nothing to do with texture caching. The textures in question have already been discarded and are kept around to be used when we require another texture with the same dimensions, pixel format, etc.

Revision 3068

Reverted r3063 as the last revision obsoleted it and it was causing
suspend/resume issues with the software renderer, removed an unnecessary
GSclose() and ResetDevice() call each
ramapcsx2
This should take care of most of the resource leakage now.
pcsx2gu...
Good job rama and pseudonym, few know how hard it is to debug this stuff ;)
kaboo...
seriously I don't know a thing about it sounds almost like a thing for the dev discussion

Revision 3069

Changed some descriptions.
evolutionrevolution
So we're "officially" in Beta now, skipping right from Pre-Alpha to Beta, huh? :p
Still... it's progress! And progress is good!
ValDanX
Pcsx2 on a new level!
azte...
good we're somewhat close to release.

Revision 3070

More user interface work. Moved some of the configuration panels around; just
to confuse you all. ;)
ValDanX
Good work!
ramapcsx2
Like it.

Revision 3071

Linux fix.

Revision 3072

spu2-x: Some changes to how the ini file writing works in Linux. (still buggy)
arcum42
Naturally, I think I figured out the bug right after committing this.
I wanted to get this out, though, because previous versions were generating a bunch of temp files in ~ and not deleting them.

Revision 3073

spu2-x: Fix a bug in my last commit.
arcum42
The config file gets written when the wxConfig object is deleted, and I forget to delete it after I was done with it...

Revision 3074

Only complain about not having a bios if we don't have a bios.
arcum42
In Linux, at least, if you open the plugin/bios dialog when the plugin panel is chosen, if you then close the dialog without ever going to the bios panel, there is no selection for the bios combo box.
So it'll complain that you need a bios, even though you may already have one chosen in pcsx2.ini.
Now it does a sanity check, and if it recalls you having a bios, and that file is still there, it won't complain about it.
ramapcsx2
So, ValDanX,
What is your problem with this revision? :p
refraction
Probably cos it doesnt come with a bios if you dont have one ;p

Revision 3075

spu2-x: Fix another bug in my ini changes, and change MulShr32 again.
arcum42
The MulShr32 patch is one of gregory's...
sudonim1
I know gcc's bad, but seriously? You have to do that just to make imul work?
sudonim1
Furthermore, surely the compiler is smart enough to generate this code itself for (s64)srvcal * mulval >> 32
sudonim1
...not only can both msvc and gcc do this themselves, the msvc version of the function actually generates worse code than the naive version.
arcum42
(s64)srvcal * mulval >> 32 was actually my first impulse. But I saw that performance note, and assumed someone along the line had done some benchmarking...
Gregory noticed the original code was causing problems due to strict aliasing when working on the cmake build for spu2-x. (As it happens, I didn't put any optimizations on the plugin when building the codeblocks project, which was probably why it hadn't been surfacing before then.)
Since he felt like providing an assembly version, I figured I'd go with it. If that note about performance is wrong, we can definitely go with the KISS principle, though.

Revision 3076

Changed MulShr32 to a naive implementation, the generated code is fine already.
Jake.Stine
On GCC or MSVC? because MSVC 2008 definitely generates a call to _allshr(), which is insanely slow.
sudonim1
Both, after discussion we suspect that the _allshr thing was fixed in SP1
sudonim1
Okay, the generated code is NOT fine, I just missed the unnecessary work when checking. There seems to be no code that makes msvc generate the obvious asm.

Revision 3077

SPU2-X:
Added the Async Mix mode to the configuration dialog.
Users can select between Timestretch, Async Mix or no sync now.
There's a warning for the Async mode, as it breaks games that can't cope
with a variable speed SPU2.
SVN revision users:
Please remember to delete your SPU2-X.ini when switching to this revision (to
clear the Sync mode setting).
Linux:
It's missing GTK implementation yes (global vars are already changed though),
sorry :p
gladiato...
At least you tried to change things but sadly i can't notice any change at least in the games with sound issues like Medal of Honor or Tomb Raider games (that got the same sound bug that the most of the sound effects dissappear after a few seconds of playing).
Do you know if the Tomb Raider games bug is an emulator bug or plugin related?
Positive anyway since at least is a change...
ramapcsx2
Eh, please open a new issue for these problems.
This commit doesn't even address emulation issues,
so your comment is more or less spam :p
gladiato...
ok, done it = issue 718 .

Revision 3078

Console log defaults to open/on now in all build types (not just devel/debug).
Better fix for the bios selector thingie.
iakobo...
positive for the bios thingie but negative for the console log. there is no need for it to default to open :P not that i cant close it but it just doesnt need to be there at the start :P
ramapcsx2
There is very good reason for the console to be default enabled.
All our warnings and suggestions go there, so naturally we'd like them
to be seen.
iakobo...
what do you mean about the warnings and suggestions? i only see the pcsx2 information, except if i didnt understand :)
ramapcsx2
Whenever there's a problem, we might have a warning print (a printf, Console.Warning, etc) that informs the user.
Without a console, those go unread and unnoticed.

Revision 3079

The "Open window settings" button isn't needed anymore.
iakobo...
i cant double positive :P

Revision 3080

DECI2: correct NUL writing for logging to remove garbage
IOP: Fix return value on ioman.write(1, str) (stdout)
ramapcsx2
Nice one. Takes care of those garbled logs :)

Revision 3081

* Re-implemented memorycard ejection (yay!) -- helps avoid memorycard corruption
when using savestates on many games (due to them caching memorycard contents).
* Memorycard settings are now applied on-the-fly (can add/remove/disable memory
cards in the BIOS browser and it'll act just as if you plugged or unplugged
cards on a real PS2)
* Bugfixed memorycard creation dialog; which wasn't creating the memorycards in
the right place (oops).
* Removed the CWD option from the first time wizard (was redundant since adding
the custom location option).
ramapcsx2
Great work here :)
novasaur
Very nice Jake.
iakobo...
something about the custom location option. it always remember the number of the location you previously used to configure the last svn build. so each time it shows that and not the new. like when i was installing r3081 in the custom lcoation it had the location of r3075 that was the last i had configured.
Erik.O...
Great work!
I recognized a bug:
If you delete a plugin and restart PCSX2 a message pops up and wants to open the plugin panel but it opens the emulation settings.
refraction
Was waiting for the return of this :) tis a good day :)
helder.r...
i dont know why but when i try to see replays in gt4 it says that data is corruptud, i dont know even if its related with memory cards
andutrache
i have a question:
How can i use a 32 MB memory card ?
i created it but when i format it in bios it still says 7.998 KB free.
Must i use some other toll for formatting memcards?
iakobo...
ok i found why the thingy i mentioned in my last comment is happening, please look in the picture of the link, so this is happening because the commands in that file never change so it reports the last used and each time you got to change the path yourself (its very easy but i just mention it).
http://img517.imageshack.us/img517/5982/capturekq.png

Revision 3082

spu2-x: fix up a gtk implementation of the sync modes.
ramapcsx2
Thanks for fixing that :)
arcum42
No problem. The way I've got it laid out makes it pretty easy for me to make changes to spu2-x's dialog anyways...

Revision 3083

spu2-x: rearrange the dialog box a bit.

Revision 3084

Completed support for various MemoryCard sizes (16, 32, 64 megs cards).
shadowladyngemu
Very nice, this one is from last changes but still looking good :P
http://img709.imageshack.us/img709/6996/89972120.jpg
woodpeck...
Very good one, I was wating some revision like this from the very beginning. I pay my respects for you. Congratulations ;D !!!
shadowladyngemu
Uhm... seems multi-tap mem cards are sharing the same file tho.

Revision 3085

NSIS Installer: Preliminary addition of the web installer (needs work, generates
some errors yet)

Revision 3086

Fixed a couple bugs in memorycard ejection logic, and a nasty crash bug for
anyone who had the old CWD mode enabled.

Revision 3087

Fix bug in multitap memorycard filenames (all multitap cards on each port
pointed to the same file, woops!), and fix some NTFS redundant re-compression
silliness during startup when using very large memorycards.
Note: For the multitap to work, you'll need to remove the existing multitap
filenames in your pcsx2.ini (or delete the ini completely).
gladiato...
I wish that soon you can complete the memory card work, specially the browsing part (that was the best part in latest official beta 1888 that you can choose between the memory cards that was in the same folder and choose whatever you want instead of using the pcsx2.ini to do that).
Positive anyway since at least you're doing improvements and working in the memory cards.
:)
iqmast
Also dragging one memcard onto the other deletes (maybe overwrites) one of them...
azte...
agree with gladiator. :)

Revision 3088

NSIS Installer: Finished the web installer, and fixed some errors int he full
installer.

Revision 3089

NSIS Installer: updated web installer links for Googlecode mirrors on the VC++
CRT redistributables.
Jake.Stine
Downloads for PCSX2 will be posted when its ready. We're still hacking out some various bugs and doing Q/A testing on installers and junk like that. :p
stakado....
Thanks for answer, it was common interest :). I am satisfied with svn build.

Revision 3090

Fix a few copypaste errors that crept into the installer.
They prevented the uninstall script to register the main files.
Also added pcsx2hostfs_ldr.elf, as it's enabled and working correctly now.

Revision 3091

microVU: If the vi reg is modified directly before the branch, then the value
read by the branch is always the result of the 5th or greater instruction...
Thanks to genter for helping me figure this out.
See this:
http://forums.pcsx2.net/Thread-blog-PS2-VU-Vector-Unit-Documentation-
Part-1?pid=103928#pid103928
refraction
writeback delays on the pipeline are fun arent they? :P Wonder what this fixes..
ramapcsx2
Seems to work fine on common games.
Any special ones to test?
I take it you don't expect any fixes though?
cottonvibes
the game i was hoping this fixed was Champions Return to Arms.
but it looks like the rest of champion's problems are GS related (i'm not 100% sure, but that's my guess)
its possible this fixes some other games, but i don't know which.
look for games that output "branch vi delay" messages to know when the code is being run (msg only shows in devel/debug builds)
tylergen...
Something I was thinking about, was what if there was a branch between the branch in question and the 5th or greater instruction. It looks like your analysis only looks at a single basic block, but you might need to look at several consecutive basic blocks.
keb...
Champions of Norrath output that vi delay message on the menu and them when you finally control your character

Revision 3092

IOP: HLE ioman functions for paths starting with host[0-9]*:
Only open, close, read and lseek implemented for now. Directories are not
supported for now because of the need to match the dirent structure to the
loaded ioman version.
To allow access the host filesystem from homebrew and games, enable the new
option on the main menu.
ramapcsx2
Very nice :)
arcum42
Something I was noticing in IopBios.cpp. In the openHLE function, v0's set to -IOP_EMFILE at one point, potentially set to -IOP_EIO, and we also have if (v0 < 0) file->close(); at one point in the function.
And v0 is a u32, so it can never be less then 0...
sudonim1
Good catch, I'll fix that

Revision 3093

Oops, games should boot again now.

Revision 3094

Remove the last traces of the hostfs iop module loader.

Revision 3095

Reload disc info as needed, gets some "codebreaker" ELF which switches to the
normal boot sequence after a while closer to working.

Revision 3096

The usual Linux things.

Revision 3097

Changed how the turbo key works. Now it'll always go to turbo mode, even when
global frame limit is off.
(When global frame limit is off, it'll enable it and go to turbo mode then.)

Revision 3098

I was sure I'd already done this. ELF loading now working in release builds.

Revision 3099

Fix decision memory for a few dialogs including disc swapping and drag and drop
loading.

Revision 3100

wxWidgets/MSW: Applied my custom string/object heap allocators to several more
wxWidgets containers and types (helps reduce fragmentation and multi-threaded
contention on the main heap).

Revision 3101

Database Loader code cleanups: added proper use of "const string&" to the class
APIs (improves compiler code generation, protects against unwanted or unexpected
modification of parameter contents). As a result, fixed a potential bug in
toLower; it was modifying the input string.

Revision 3102

* Set the PCSX2 event handler queues to use the wxObject allocator (reduces
heap fragmentation, multithread performance, etc) [MSW/Win32 only]
* SafeFree() macro changed: Remove null check on calls to free(); should be
100% safe as according to wx gurus.

Revision 3103

Many small memoryleak fixes in PCSX2 (mostly related to newVIF's recompiler) and
one memoryleak fixed in USBnull. Had to juggle around the initialization/reset
code for VIF a bit to get it happy. This also removes quite a bit of redundant
memory allocations and clears when starting/resetting the emulator; expect a
small speedup on slower machines.
cottonvibes
Hmm technically i never planned to implement re-sizable rec-cache with newVif.
the BlockBuffer() class originally was just a re-sizable buffer class for when i was trying to handle partial-transfers on the newVif interpreter.
Later on i abandoned the blockbuffer() class for the interpreter, but when i started on the recompiler, i just modded the blockbuffer class to allocate rec-cache instead (HostSys::Munmap() instead of memalloc())
but i kept the resizing logic even though i never was going to use it ><
also i think the 0.25mb limit is just the easier-way to manage the rec-cache limit.
the per-instruction checking is slower and harder to handle.
although it is potentially safer; but no games end up reaching that limit afaik.

Revision 3104

... do the same thing for File_Reader.h as I did for Database_Loader.h in r3101
(translation: added semi-important C++ redtape syntax).

Revision 3105

IPU: Typo in threshold alpha for YUV->RGBA conversion. Don't know what games
use this.

Revision 3106

Fixed patches/cheats still being applied on game reboot if they have been
disabled.

Revision 3107

IPU: include default alpha in SSE code for maybe a small speed gain.

Revision 3108

IPU: SGN support for IDEC. Again, what uses this I don't know.

Revision 3109

If any gamefixes are loaded by the db (including roundmode/clamping changes),
then console titlebar will display [Fixes = n], where n is the number of
gamefixes loaded.

Revision 3110

Minor change to wording :p

Revision 3111

Adds support to PCSX2 for 'SetLogDir' being passed to the plugins; needed for
proper UAC/user homedir mess (patch by gregory).
Jake.Stine
@Arcum : I'll handle updating SPU2-X to use the log dir. Its logging code is a bit of a mess, and I need to get rid of the archaic Unicode converter I hacked in years ago (prior to wx), among other things.
All other plugins that have logging (GSdx for example doesn't log anything) can be implemented same as gregory's patch, and same as for the SetSettingsDir. If a plugin doesn't have logging, then there's no need to add the function.
arcum42
Sounds good. I'm not even sure if the logging code for spu2-x works in Linux.
I tested the zeropad code. I had to modify it slightly, but it works. I suppose I'd better go and implement it in some of the other plugins. (All the null plugins should have logging, for example, though I think the checkbox for enabling it may be missing in Windows right now...)

Revision 3112

zeropad: Patch zeropad to use SetLogFolder. (modified from a patch by gregory)
arcum42
Modified by one character, that is. Having a path divider between the file name and directory is important...

Revision 3113

R5900: Made the jump order in branch tests consistent. Very unlikely to impact
performance in any way.
ajay.sis...
hi

Revision 3114

FWnull, USBnull, and dev9null now use SetLogFolder.

Revision 3115

SPU2-X: Added preliminary support for SPU2setLogDir(). Should probably be
tested better, but bleh. I so want to rewrite all of this stuff in a nice wx-
based cross-platform manner. >_<
DevNotes: converted some code from wstring to wxString to work a little toward
cross-platformness. ... and probably broke the Linux build.
Jake.Stine
I thought I'd be able to do this without breaking Linux, but the two sides of the code are too inter-twined in weird ways. So I have no clue if it builds or not, nor if it works. >_<
arcum42
If it helps, the Linux side of the configuration code is written in cross-platform wxwidget-based code. Though that caused me issues initially, since pcsx2 & spu2-x started fighting over ini files...

Revision 3116

spu2-x: Slap the Linux port back together a bit.
ramapcsx2
Hmm, the windows config.cpp needs
"extern void CfgReadStr(const TCHAR* Section, const TCHAR* Name, TCHAR* Data, int DataSize, const TCHAR* Default);"
arcum42
Codeblocks must have pulled the wrong header file up. Fixed.
ramapcsx2
Ty :)

Revision 3117

Readd a line back in.
ramapcsx2
Ty :)
arcum42
np.
Interesting that google code tries to turn "readd" into a link...

Revision 3118

Removed several legacy items from the bin folder (used in 0.9.6, unneeded for
0.9.7's uber-'leet wx-ified user interface design)

Revision 3119

* Added new 0.9.7 readme and FAQ (located in /bin so to be package-ready)
* NSIS Installer: Added 09.7 docs to the package, and create shortcut links to
readme and FAQ.
* removed old 0.9.6 docs and gnu_gettext.dll (no longer needed in 0.9.7)
whitez...
Does this mean we're getting close to release of 0.9.7??? :D
Jake.Stine
Oh the suspense! I can feel the traffic on the main news site picking up already, o_O
Autor...
Yay!
azte...
Yay!x2
DanteArouet
Awesome. All this preparation musta been why you guys didn't want idlers on the dev channel ;) (or is that common place? O.o )
Leonhart...
Yay!x3
pedrovalentesilvaa
Yay! x4
ramapcsx2
DanteArouet:
Yeah, spot on :p
gigaherz
Comment by DanteArouet, Yesterday (18 hours ago)
Awesome. All this preparation musta been why you guys didn't want idlers on the dev channel ;) (or is that common place? O.o )
...
We never want idlers in there, simply because it feels more comfortable if we have some privacy (can talk about whatever without having strangers reading). Nut when there's stuff like this, or the joke in r3000, and if there was people, it would spoil the surprises. :p
gyoru...
PCSX2 was featured in EuroGamer!
http://www.eurogamer.net/articles/ico-and-shadow-of-the-colossus-emulated-in-hd
iannac...
yay!x5

Revision 3120

Removed from GSDX Build (VS2010 side) residues of CG/OpenGL/Glew etc...
Added in the GSDX Build (VS2010 side) the proper link to the DirectX libraries
Updated the GSDXGui project to VS2010.
azte...
wb feal.

Revision 3121

New generic Skip MPEG gamefix that lets you skip videos in games to avoid
hanging.
This will replace the many sceMpegIsEnd patches we currently have.
Thanks to pseudonym for coding the recompiler version of this gamefix.
Essentially what it does is, the EE recompiler finds the pattern of code used to
check if an MPEG is finished, and then recompiles code to say that it is
finished.
This will work for most Videos/FMV's in games, but its possible that some games
don't use the same library functions for videos so the correct pattern won't be
detected; and therefore the videos will not be skipped.
kristel...
Thanks. It work good for Guilty Gear XX AC+ (SLUS-21847).
refraction
Wow, i never actually expected this, nice one peeps :D

Revision 3122

NSIS Installer:
* Add the major/minor version number to the generated exe's.
* Default to using the HEAD revision for all exe's and plugins in the package,
instead of versioning each one independently.
* Update instructions readme to mention use of Eclipse as a NSIS editor and
integrated environment.

Revision 3123

Added all the katamari games to use the new skipMPEG gamefix in the game
database.
The other games in the database that are using skipMPEG patches need to be
tested to see if they still even need them...
refraction
Hmm will that work? i remember it being a bitch making patches for katamari...
cottonvibes
refraction:
any sceMPEGisEnd patch will most-likely work with this.
i have already tested both Katamari and We Love Katamari with the gamefix and it works for both of them.
sudonim1
You can skip video in katamari just by breaking FDEC results in pretty much any way. I played with trying to return the end code early and managed to skip video in katamari even when my code was completely wrong, but few other games liked it.
Certainly not what I'd call a bitch.
refraction
I was talking about from a patch perspective not a screwing the ipu code perspective, you know, a more productive way of getting past stuff in a game? ;) But anyways, i just remembered when i initially made a skip mpeg patch for katamari it didnt work right, thats all.

Revision 3124

New Docs folder setup: original proprietary docs files are kept in /pcsx2/Docs,
and distributable PDFs should be generated from them into /bin/docs for
releases. :)
Docs are using Word 2000 format, which hopefully will be consistent between Word
2003/2007 and OpenOffice (not all devs are Word-enabled).
(note: FAQ has been converted from rtf to doc, and is currently in a partially-
reformatted state. I'll finish applying the improved formatting soon)
shadowladyngemu
"not all devs are Word-enabled"
lol :o

Revision 3125

* Improved conformity of translation tokens.
* MemoryCard -> memory card (bositman's decree!)
DevNote: pxE() macro is replaced by many pxE_* macros for specific types of
message uses. See code comments for pxE_Panel, pxE_Tooltip, etc for details.

Revision 3126

Print console message when sceMpegIsEnd pattern is found for the Skip-MPEG
gamefix.

Revision 3127

... need to remove a pointless bit of code left over from a wx-related
copy/paste job.

Revision 3128

wxWidgets/Win32: Disable a bunch of crap we don't use (and likely never will).
Saves 150-200k off pcsx2.exe and plugins that link against wx (SPU2-X and ZZogl
I think).
qqqq.2...
thanks...
but I still got this message,
ZZOgl still can't using on Windows platform....
[wx] Failed to load shared library 'D:\PCSX2\plugins\ZZOgl.dll' (error 126: the specified module could not be found.)
Stream exception: File is not a valid dynamic library.
File/Object: D:\PCSX2\plugins\ZZOgl.dll
Some kinda plugin failure: D:\PCSX2\plugins\ZZOgl.dll
qqqq.2...
Oops...
following this thread....
http://forums.pcsx2.net/Thread-ZZogl-Zero-GS-KOSMOS-fork
ZZOgl.dll is work!!
qqqq.2...
BTW, Issue 701 is still a problem.
r2932 dialog is OK
r2933 is BROKEN
ZZOgl dialog need to be fixed.

Revision 3129

Little logic error in the HLE ioman code that arcum spotted. (It's in code that
isn't reachable unless there's a bug in fd allocation so it won't affect
anything.)

Revision 3130

PeopsSPU2: Convert to use VC++ shared CRT; so that printf gets properly
intercepted by the main exe; so that we can get some log info... maybe.

Revision 3131

PeopsSPU2: Remove framework version info from the project file (seems to cause
problems on runtime version selection).
Line...
Thanks Jake !!! =) Keep it up =D
I like PeopsSPU2 more than SPUX2, because its sound is more accurate (like real PS2) and it have gaussian interpolation, which gives clear and balanced sound spectre =)
azte...
whatta hell happened to Pete that he doesnt update the plugin anymore?
gigaherz
Line524,
Peops SPU2 is anything but accurate. It's so full of hacks it's a wonder it works at all. We used to call that "Pete's magic", cos it doesn't make sense.
Interoplation-wise, SPU2-X has Hermite interpolation, which is almost as smooth as Cubic, but avoids overshoot, and Catmull-Rom, which is an even better algorithm. Which algorithm gives the best output is almost completely subjective, since some people prefer the noise from Nearest-neighbor interpolation, while others prefer smoother output.
Jake.Stine
Yeah I did this so rama could get some info from peops, but it wasn't useful because it turns out Peops' implementation of spu2 looping is so weird and hacky that it's hardly basing its behavior on what the real hardware would.
Line...
Well, Pete's plugin is a lot faster, and I like quality of gaussian interpolation. Catmull-Rom interpolatuin from SPU-X2 gives similar sound quality, but it's 20-30% slower than PEOPsSPU2... If someone will optimize SPUX2 plugin (maybe another cpu thread or other magic) it will be SUPER plugin !=) Like EternalSPU from PSOne, which has 100% perfect sound and compatibilty =)
Anyway, thanks guys for emulation progress !!=)

Revision 3132

Screwed up my last i18n commit -- forgot that gettext/poedit needs explicit text
literals to work from, so my pxE_* macros won't work. This version should be
better.
Jake.Stine
woops this also included my temp fix for spu2-x failing on init. Wanted to commit that separately, but googlecode was acting up and threw me off my game.
DanrleiS...
please add fix for corretion of graphixs in supervu recompiler, and upgrade quality in general plugins gsdx.

Revision 3133

Portaudio: sync with portaudio /trunk up to revision 1505 (mostly linux stuff).
----
Revision 1505: wasapi:
- implemented support of non-Interleaved buffers (paNonInterleaved) for WASAPI
blocking interface for input and output
- blocking methods will now use PA sample converters
Revision 1504: alsa: - releasing memory of non-MMAPed buffer on stream closure
by Pa_CloseStream
Revision 1503: alsa:
- reverted buffer size (2048) hardcoding for non-MMAPed devices to avoid crash
on wrong buffer size usage (whole area requires more work)
- optimized non-MMAPed device operation to avoid malloc(memset)/free usage on
every processing call avoiding significant performance penalty
Revision 1502: alsa:
- fixed deadlock in PaAlsaStream_WaitForFrames if device is paused, poll()
results are now checked for 0 and if 64 times exceeded an error (paTimedOut) is
returned
- removed hardcoded low-limit of latency for non-MMAPed devices, it is an
obligation for user to set an acceptable/desired latency value
- tuned XRUN recovery sequence for MMAPed devices
Revision 1501: fixed compile for DirectSound implementation under MSYS, missing
DSSPEAKER_7POINT1_SURROUND define

Revision 3134

Also update glew to 1.5.4, and wglext.h to the latest version from
http://www.opengl.org/registry/api/wglext.h

Revision 3135

zzogl-pg: fix for issue 701  : screwy config dialogs in win32, caused by
incorrect 'bool' type on Win32 API CALLBACK functions.
azte...
send more of these for us, fixes for issues are always good.

Revision 3136

Added a little OOP to the CPU detection code, and turned one monolithic cpu
detection function into several isolated ones (isolated by what general info
they detect).

Revision 3137

wxWidgets/msw: Kill off some warnings introduced when I excluded some unused
packages from the wx lib.

Revision 3138

SPU2-X: Disable MSVC's SSE2 opts (they suck anyway -- nothing more than a
novelty option at this point). The SSE2 detection code was causing problems,
namely perma-hangs when applying settings.

Revision 3139

* Apply gregory's patch for inconsistent "setLogsDir / SetLogsFolder" usage.
* Fix slomo hotkey ( issue 725 )
serban.a...
what is the hotkey for slowmo i found out that tab is for turbo
linktoice
slowmo hotkey: Shift-F4 or Shift-Tab

Revision 3140

... and woops. ctrl-c/ctrl-v is a dangerous thing sometimes.

Revision 3141

Minor fix to memzero function in gcc/linux (mentioned in Issue 577 ); may help
fix some errant SIGSEGV's with certain optimizations enabled.

Revision 3142

Revert WinSysExec.cpp change from prev commit; errant unwanted patch part
slipped in. (would have broken optional enabling of setjmp under windows).

Revision 3143

Working on a new replacement for pxStaticText, which should hopefully have more
reliable centering and wrapping behavior. Will finish it up later.
Jake.Stine
It's currently used in the Wizard and in one other dialog box (Video Panel, I think). Hopefully when I'm done it'll work well in both linux and win32. I'm not 100% confident in the portability since I'm using Paint events, which are a bit raw in the portability dept, as far as I know.
In this commit the Wizard looks fine in Win32, with the exception that some of the spacing is still a bit off. That should be fixed soon. Video panel's probably broken-ish looking (will get to that soon). Linux folks, you'll have to let me know if things are broken or not.  :)

Revision 3144

Fix compilation.

Revision 3145

* First pcsx2 commit of, I hope, a long series ;)
* Fix link with zlib 3rdparty
pcsx2gu...
Welcome to PCSX2 gregory (officially too now :P )
arcum42
Glad to have you on the team.
Oh, and if you want to take ownership of Issue 513 from me, go for it. I figure you've been doing more work on it then me recently anyways... :)
iakobo...
welcome ^^ :)
doodhwal...
...and hope for larger than life commits, good luck ;)
jfre1...
Welcome to the project team Gregory
actact9...
wow ARCUM has a tag team partner now I hope the Linux port move's on faster now
azte...
Welcome gregory, may your stay be a nice one, full of fixes for issues and stuff. :P
gregory....
Thanks everyone. Let make linux version rocks ;) My goal will be to make pcsx2 more easier to compile and much more linux-distribution friendly.
refraction
welcome greg :)
cottonvibes
welcome gregory
Dhalai.L...
Whoa ! Welcome ! I've never seen an emulator with so many coders !
No wonder Pcsx2 is the best!

Revision 3146

* Grunt work :) Use variables to set flags to ease futur modifications
kaboo...
almost nobody likes grunt work but someone has to do it so +1 from me ^^

Revision 3147

* Do not build spu2x unless all dependencies are ok

Revision 3148

* separate build parameter and selection of plugins into new modules. Add
comment and status messages

Revision 3149

* Oups, copy from a wrong file. Restore the value
Jake.Stine
Oh, I forgot to mention: when doing commits specific to something like the cmake build system, ttry to remember to prefix/tag it as such in the commit log. Ex:
"cmake: separate build parameter and selection of plugins into new modules. Add comment and status messages."
Helps our beta testers/users know at a glance (without having to look at diffs) if it's something they should be concerned with or not; and can sometimes be helpful to devs as a filter, when we're scanning revisions to track down regressions. :)
gregory....
In fact I do not know, why I did not do it already :) Good habit tend to go out fast ^^ Thanks for the feedback

Revision 3150

UI: Switched from the old 'native' text labels to a new custom draw text label
that should (hopefully!) be a lot better about positioning and wrapping text,
and fitting to windows and what-not. Also gets rid of my nasty "ideal width"
hack I originally used to fix-size some of the dialogs.
Jake.Stine
Hope this looks ok in Linux! Almost all the dialogs I tested look perfect on Win32. Please let me know if Linux display is garbly.
ramapcsx2
Works mostly fine with 104% DPI setting / Win7.
arcum42
Mostly looks good on Linux. I do see two issues.
1) On the plugin dialog, the GS/Pad/SPU2/etc... labels aren't lined up properly. (It looks like the bottom of the text is where the middle of the text should be).
2) The logging dialog needs to be wider; part of the dialog is cut off...
arcum42
(The latter might be from a previous revision, thinking about it; I haven't been in that dialog in a bit.)
Jake.Stine
ok, thanks. Both issues are easy fixes. I'll sort thwem in a jiff.
One of the other advantages now, btw, is that linux and win32 text/label behavior will actually be more consistent. I didn't want to make that claim until I actually knew it worked at all on Linux. Now that it does, yay!
For example, changing font colors and sizes on the old Windows labels is unreliable. It should function better here.
(note that checkboxes and other "combo" controls still use native labels).
arcum42
np; I suspected they would be.
And yeah, more consistent cross-platform behavior is always good... :)

Revision 3151

[cmake]:
* remove the dependency on libportaudiocpp as codeblock. ( issue 721 )
* Improve build on 64 bit system
gigaherz
Yeah we don't use the portaudiocpp wrapper at all.
david.jennes
Is there a reason why you don't create/use an 'OptimizationFlags' variable in for example soundtouch and bzip2? For consistency it'd be better to create and use those variables in all the cmake files, even if they sometimes will contain only one flag (or nothing at all?)
gregory....
Well, I done this because Devel and release use different flags, so no direct interest of using OptimizationFlags. But your are right for consistency I could add it. Honestly I do not expect people tunning 3rdparty library flags but using instead system library.
david.jennes
Well you could always use DevOptimizationFlags and RelOptimizationFlags :-P (or something like that)
I just mentioned it cause when I checked the diffs, I saw you using the variable in some places and not in others. If at some point down the road you need to change flags for every project you'd only have to change the variables (which is the whole point of you creating these now).
ramapcsx2
Might be a good idea to mention now that none of the 3rd party libs take more than 1% of cpu when running games. So it really doesn't matter how compiler optimized they are, at least not for emulation speed.
And welcome to the team, Gregory :)
gregory....
In this case, I will do some cleaning. Better use defaults optimization flags and avoid to trig some strange bug for zero gains.
david.jennes
Just for the record, I wasn't complaining about the use of those flags :-P

Revision 3152

Added Game Database Editor to gui.
The panel is currently under "Emulation Settings", feel free to move it where-
ever is appropriate.
If you have a game loaded the editor will automatically load the game's info, if
not you can search for the game by typing the serial manually.
gregory....
I have some build failure with gcc on linux.
For fixing the problem, I move toString(const T& value) definition from pcsx2/DataBase_Loader.cpp to pcsx2/DataBase_Loader.h but I do not know if it is the good solution ^^
cottonvibes
gregory:
yeh arcum did that to fix it
in the future feel free to fix my code that breaks gcc.
if you're unsure if it'll work with msvc then #ifdef the fix, and then if i see the fix also works on msvc i go ahead and remove the #ifdef code.
in this specific case, the fix for GCC doesn't work on msvc so we have to keep the code #ifdef'd for now :/
gregory....
Although I understand the c++ concept, I am not familiar with the syntax and subtle behavior (pure C is ok). So for the moment I am a bit over-cautious :) So #ifdef is absolutely a good idea.

Revision 3153

[cmake]
* Select automatically module (include pcsx2, libutilities&libx86emitter) to
build based on dependency available.
* rewrite SearchForStuff. More clean and it will better support mix between
library and 3rdparty on linux. (see issue 736 )

Revision 3154

[cmake]
* Clean 3rdparty flags not used. By default use -Os not needed to make pcsx2
bigger than it already is.
Jake.Stine
Should Soundtouch be compiled without speed optimizations? It is one of the more cpu-consuming portions of SPU2-X, and I can't imagine it affects the size of the DLL much. Though I'm not sure how much of a performance difference the optimizations options make on GCC.
gregory....
Well, if I understand correctly the gcc doc. My version has more optimizations :) The previous version use -O3 and -Os and I thinks gcc only take -Os. And Os is superior to O1.
Gcc doc extract:
"If you use multiple -O options, with or without level numbers, the last such option is the one that is effective."
Do not know for soundtouch, but sometimes Os is faster than O3 because it reduce pressure on cache (instruction and TLB). I do not know if is possible to have an accurate benchmark. I will go for what you judge better.
Looking at the flags, sse2 is not activate. Will probably be faster with it, but it maybe break some code.
gregory....
In fact for sse2, depend on how gcc work with multiple march options. Because athlon-xp do not have sse2 contrary to prescott.

Revision 3155

UI: Fixed a few minor layout bugs in the logging options, and introduced
pxDialogCreationFlags to get rid of some Constructor Parameter Hell(tm) on
dialog creation.

Revision 3156

[cmake]
* Add missing file
* Use a default option for FORCE_INTERNAL_SOUNDTOUCH instead of a hardcoded one
* Some cleaning

Revision 3157

onepad: Commit some work in progress on onepad's gui. (Currently disabled,
because I haven't hooked anything up yet.)
arcum42
I mainly committed this so that I could revert to it easily, and so I could sync to the current version and fix up Linux.
I'm basically in process of rewriting the dialog for onepad, so I can rip out all that ugly, glade 2 generated code.
arcum42
One of the way you can tell it's a work in progress is things like a struct that only has one field, or commented out code that is straight from spu2-x. :)

Revision 3158

x86emitter: removed implicit pointer dereferencing on 'indirect' operand types,
and implicit uptr addressing on ptr[]; avoids some obscure pitfalls and might
speed up release mode builds (LTCG).

Revision 3159

Get Linux compiling again.
ramapcsx2
Windows doesn't like that :p
"error C2666: 'operator |' : 3 overloads have similar conversions"

Revision 3160

Have I ever mentioned how much I hate getting templates to work on both Windows
and Linux?
arcum42
I'm just basically hacking around it for the moment.
ramapcsx2
Yeah, that's np. Thanks :)
Jake.Stine
It should use wxsFormat() really. std::stringstream is such a pain in the ass, and shit slow too.
arcum42
Yeah, I'd rather it took full advantage of wxwidgets...
cottonvibes
I hate getting templates to work as well.
I had to fiddle with that template function for a while before i got it compiling right ><.
Your change might work with msvc++ as well, but i'll have to try it out and see.
I didn't use wx functions because database loader is built off std::string.
The reason is that i started the Database_Loader class on a separate c++ project outside of pcsx2, so it didn't have access to wxWidgets.
cottonvibes
oh wait nvm, i had already tried your way and it was giving weird operator overloaded problems with msvc++ for some reason.
it was getting confused with some wx code which was totally unrelated and it pissed me off that the compiler was giving me that stupid error.
thats why i had to move the function out of the *.h file in the first place ><
arcum42
Yeah, that's the trouble. That's why I had to ifdef it.
I looked for a way to handle it without ifdefs, but it was looking like that'd involve basically rewriting things till the issue went away, and given that I was already in the middle of rewriting a bunch of onepad's dialog code, and you're still actively working on the code, I figured this'd do for now.
As far as wxwidgets goes, I can understand why you didn't use it. It just feels like it'd simplify the code a good bit...

Revision 3161

GSdx: Fix an unfriendly crash when trying to create a device on a machine that
only supports DX9 when DX10/11 is configured (Think temporary downgrading your
video card, and then running PCSX2).

Revision 3162

* Bugfixed some popup dialogs, which would sometimes be too small or empty.
* Various small cleanups to emitters and microVU's regalloc code (no functional
changes)

Revision 3163

onepad: More dialog work. It's starting to get functional, but not totally there
yet.
arcum42
It mostly works. Some of the checkboxes aren't there yet, and the list is acting a bit flaky. And some of the settings don't have code in there to save them yet. It's getting there, though.

Revision 3164

onepad: Switch to the new dialog code and remove the old code.
arcum42
And yes, I did just delete 9 files in the process of redoing this code. :)
May still be buggy. We'll see...
arcum42
Oops. Missed something. I'll fix this in a few minutes.

Revision 3165

onepad: Fix my last commit. A few minor changes.

Revision 3166

onepad: Add a modify button.

Revision 3167

onepad: fix up a few things in the tree code.

Revision 3168

onepad: various cleanup.

Revision 3169

[cmake]
* align cmake flags with codeblock one. (note spu2x may still fail to compile
with inline problem)
* Some final cleaning. You must be able to see your reflection now ;)
iakobo...
i wanted to ask in the last post you mentioned about the sp2-x but here it is now:
does this affect the spu2-x of windows version or it only affects the linux version only? or it actually both are 1 so it affects both?
gregory....
AFAIK It is only affect linux but it may depends on the gcc version...

Revision 3170

Polished the app icons up!
Now we have a 256x256 pixel version for Vista / Windows 7 as well.
The new 3D icon and most other work on these is by Gigaherz, thanks a bunch for
it! :)
iakobo...
cool :D
azte...
congrats on giga for the new icon.

Revision 3171

UI: Reorganized the Speedhack panel a bit, and added graying out of the new
static text labels.
Todo note: The plan is to make the Gamefixes dialog match the new way the
speedhacks dialog is laid out, with the disable checkbox at the top (in case
someone wants to try their hand at it!).
gregory....
I take it ;)
Good opportunity to improve my wx skill.

Revision 3172

Disable LTCG on wxCore, wxAdv, zlib, libjpeg, and the x86Emitter. Slices
Release mode build times by more than half and shaves 200K- off the .exe size.
(I really should have done this sooner)
DEV NOTE: Please leave LTCG enabled on wxBase, since wxString/wxObject and other
wx-based containers benefit from it considerably.

Revision 3173

SPU2-X: Remove antiquated use of __fastcall, from a time long ago when I was
paranoid and overly in-love with fonction prototype red tape. (should fix
linux/gcc compilation errors).

Revision 3174

* Declared a local function static. Fix compilation error on gcc/linux. Spu2x is
now ok
Jake.Stine
Yay spu2-x on linux!
Jake.Stine
... and now I just need to convert it to wx! lol
gregory....
To be honest there is still one ifdef for 1 inlining for clamp_mix function in Mixer.cpp.
I try to remove it but it is an epic fails :( Static keyword is not possible because the function is used in one others files (argg.. it is shame, with the mixer.cpp file compile ok).
gigaherz
You can always duplicate the function in the other file, it's not something big enough that's worth sharing.
gregory....
Yes. Maybe I can also include in the .h file.

Revision 3175

Fixed probably unused SSE code for the BGTZ/BLTZ instruction family. If it was
used, this was a serious bug and will probably have caused infinite loops or
other major emulation errors.
sudonim1
Meant BGEZ damn it, not BGTZ.
sudonim1
The code's actually reachable to my surprise, so it probably fixes something. Jak and daxter hits it during boot.
serban.a...
what do you mean about ratchet?
sudonim1
..........look, I know the games are both 3d platformers with names of the form "someone and sidekick", but how can you possibly mistake them when I wrote the title right there?
Jake.Stine
The two titles are so easy to differentiate! I mean, one is like two-syllables and one-syllable. And the other is one-syllable and two-syllables. The differences just... well.. actually that's about the only way I remember they aren't the same.
cottonvibes
glad i'm not the only one that gets them confused! xD
gigaherz
Pfft.... It's simple: I played Jak&Daxter, I never played Ratchet&Clank (or whatever the name was), so I clearly know which is which.
serban.a...
sorry it was like 3 am in the morning and i was exhausted:P
ramapcsx2
Lol, nice phenomenon.
Something in these two titles makes literally everyone confuse them.
Everyone that didn't actually play them that is :p

Revision 3176

UI:
* Major bugfix to the startup/user path settings code (should fix issues some
people were having when trying to run multiple copies of pcsx2 from different
folders).
* Various bugfixes to panel appearances
* Win32: "stdio" console output now redirects to theVisual Studio Debug Output
window, since Stdout is generally useless on windows.
Emulation:
* Removed the IOP SIF hack since it never did what I was hoping it would do
anyway.
iakobo...
just a small thingy that doesnt show what its gonna create when folders are missing:
http://img204.imageshack.us/img204/7376/captureal.jpg
shadowladyngemu
Not sure if it was this revision but "config > video > window settings" doesn't go to that panel anymore.
Jake.Stine
Woops. Will fix that then.

Revision 3177

* Simple fix. Avoid a segfault with GSnull and GSoutput disabled.

Revision 3178

UI:
* Various configuration dialogs remember their positions now. :)
* AboutBox is fixed, and is now resizable.
* Fix for Issue 739  : usermode.ini hashes are now case-insensitive on Win32.
* Likely Fix for Issue 740  : missing text on Linux/GTK. (need confirmation)
DevNotes:
* Moved IniInterface.cpp/h to the Utilities lib. Linux makefiles will need to
be updated. >_<
azte...
the first 2 changes in the UI rule, thank you for this Jake.
gregory....
Great issue 740 is gone. It will be much easier to work on the interface :)
However, there is an little issue. The opening of the emulation settings panel is slow as hell. First time I think the application was frozen, it take around 5 seconds to open it.
Jake.Stine
Hmm, ok. I noticed that too, wasn't sure if it was just my PC or not. I'll look into the cause.
Jake.Stine
Ok found the cause of the slowness. Will try to fix it soon, though my time is limited.

Revision 3179

Linux compilation fixes.

Revision 3180

[cmake]
* Better separation between pcsx2/plugins/3rdparty => no need anymore to
download everythings :)
* Drop build dependency on unused libBPM (from soundtouch)
Jake.Stine
Is it actually possible when using SVN checkout to ignore checkingout specific folders under /trunk -- or would you need to check out everything individually ie:
/trunk/pcsx2/
/trunk/common
/trunk/bin
.. etc?
gregory....
Arg, I have forgotten this point. AFAIK unfortunately not which is really cumbersome.
1/ co each dir and use svn export for single file (like the /trunk/CMakeLists.txt). I use this method for my debian packaging.
2/ use sparse checkout (need svn > 1.5), to dl depth 1. Then do svn update on the dirs to retrieve the full depth.

Revision 3181

Likely fix for 30mb memleaks when loading states and resetting the emu.
serban.a...
will test wheni get my hands on the rev:)

Revision 3182

Actually fix the leak.

Revision 3183

GSDx: Fix D3D11 leaks. (Completely, forever.)
ramapcsx2
Ok, this took us months to track and fix.
Resource leaks are the worst thing ever :p
chuuey
great work ! :)
ramapcsx2
Note:
These are the suspend/resume leaks (or configuring GSdx while a game runs).
This does not fix runtime "leaks", which are really just excessive ram usage, not memory leaks.
shadowladyngemu
Very nice, great work.
actact9...
this one deserve some Kudos Great Work
WilliamS...
Good~~It`s really a big problem~
serban.a...
yep its fixed

Revision 3184

* UI: Many small fixes for badly sized popups and confirmations.
* Includes possible fix for Issue 743 (AMD cpu core counts).
ramapcsx2
Fix worked :)

Revision 3185

[pcsx2 ui]: update Game fixes panel to look like speed hack one
[spu2x]: explain why one inline fail on linux
[cmake]: Prepare some include directory updates

Revision 3186

spu2-x: Added a define in to make it easy to disable the decoder code.
gregory....
To have a better control from the build system and avoid change the c code.
Maybe you can use instead #ifndef DISABLE_DECODER
arcum42
Yeah, we could do that. Or we could make the build system pass ENABLE_DECODER to enable it, and get rid of the define. ^_^
This code makes it more likely for me to remember to do some testing with the Decoder disabled, in any case.
Jake.Stine
I think the only case where the decoder would ever be used is for using PCSX2 to do playback of DVDs. (ie the BIOS dvd player).
ramapcsx2
There's a few games that offer a 5.1 track in their FMV.
The Xenosagas for example, or some GUST games.
ramapcsx2
(Not that it'd be super important to decode and use them anyway.)

Revision 3187

First draft version for using Cmake.
gregory....
Ah interesting ! It is directly put in svn :)
sunnydra...
@svn http://sanechka.spb.ru/svnroot/ruslan/zerogs/ zzogl@
maybe svn co http://sanechka.spb.ru/svnroot/ruslan/zerogs/ zzogl
?
sunnydra...
with null params
cmake CMakeLists.txt
CMake Error: Attempt to add link library "x86emitter" to target "Utilities" which is not built by this project.
CMake Error at pcsx2/CMakeLists.txt:637 (target_link_libraries):
Cannot specify link libraries for target "-pthread" which is not built by
this project.
but works okay if cmake CMakeLists.txt "-DCMAKE_BUILD_TYPE=Devel"
gregory....
Euh. Need more details. Which linux distribution ? Can you paste all message print by cmake. You will need to delete previous cmake run:
find . -type f -name CMakeCache.txt -exec rm -fr {} \;
find . -type f -name cmake_install.cmake -exec rm -fr {} \;
find . -type d -name CMakeFiles -exec rm -fr {} \;
cmake CMakeLists.txt "-DCMAKE_BUILD_TYPE=Devel" is the default parameter so it must change nothing.
Are you calling the good cmakefile ie /trunk/CMakeLists.txt ?
sunnydra...
this is not error :) just without "-DCMAKE_BUILD_TYPE=XXXX" cmake will complain about x86emitter.. check default options.
ubuntu 10.04,cmake version 2.8.1
[email protected]$ cmake CMakeLists.txt
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Disable the stripping by default in build !!!
-- Use internal version of Soundtouch by default.
Note: There have been issues in the past with sound quality depending on the version of Soundtouch
Use -DFORCE_INTERNAL_SOUNDTOUCH=FALSE at your own risk
-- Found GTK2_GTK: /usr/lib/libgtk-x11-2.0.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/libX11.so
-- Found ALSA: /usr/lib/libasound.so
-- Found BZip2: /usr/lib/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so - found
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found wxWidgets: TRUE
-- Found ZLIB: /usr/lib/libz.so
-- Could NOT find A52 (missing: A52_LIBRARIES A52_INCLUDE_DIR)
-- Found Cg: /usr/lib/libCg.so;/usr/lib/libCgGL.so
-- Could NOT find PortAudio (missing: PORTAUDIO_LIBRARIES PORTAUDIO_INCLUDE_DIR)
-- Could NOT find SoundTouch (missing: SOUNDTOUCH_LIBRARIES SOUNDTOUCH_INCLUDE_DIR)
-- Skip build of spu2-x: miss some dependencies
CMake Error at pcsx2/CMakeLists.txt:631 (add_dependencies):
add_dependencies called with incorrect number of arguments
CMake Error: Attempt to add link library "x86emitter" to target "Utilities" which is not built by this project.
CMake Error at pcsx2/CMakeLists.txt:637 (target_link_libraries):
Cannot specify link libraries for target "-pthread" which is not built by
this project.
gregory....
Ok thanks, I found the error. I will fix it.

Revision 3188

Converted the GameDB to use wxWidgets classes.

Revision 3189

[cmake]:
* Fix default build option
* Fix futur soundtouch include path

Revision 3190

Fixing Linux again.

Revision 3191

Fix gruesome errors in database loading/saving.
Jake.Stine
Ok patches should be working now too, though the database really needs a better way of handling the filtered patches:
[patches = crc] .. form
Specifically a second lvalue/rvalue pair would be mighty helpful. I may work on that later, I dunno. I really need to do memorycard stuff first, I guess.
ramapcsx2
Fixed the problem :)

Revision 3192

Refraction found an issue with an MMI op, committing the fix for him.
serban.a...
so if might fix something?
refraction
might, dont know what tho..

Revision 3193

GSDx: bug in D3D11 CopyRect, does not affect anything.
sudonim1
It turns out the original might be right. It's hard to say. Different versions of the documentation describe this function completely differently.

Revision 3194

[spu2null, gsnull, padnull]: Use the same configuration interface as others null
plugins. Drop the glade dependency ^^

Revision 3195

[gsnull, padnull, spu2null] : remove the deprecated glade interface.
Note: I updated the codeblock xml to remove the file. It is normaly ok but I do
not test it (only cmake one^^)
Jake.Stine
Yay .. those old glade files were always a clutterbomb. >_<

Revision 3196

BuildSystem Crap: Prepping MSVC project files for proposed patch in Issue 736 .

Revision 3197

Preliminary work on commandline implementation.
zantezuken
I'd like to give a +1 for that but oh well.. judging by history of PCSX2 - the command line always was broken or worked incorrectly >_>
No wonder it will happen this time too <_<
pcsx2gu...
Wow amazing job encouraging Jake that works on it right now to keep coding it. Some people....

Revision 3198

zerospu2: Redo the dialog, and get rid of all the crufty Glade 2 files.
arcum42
That leaves the cdvd plugins, and Zeropad. Zeropad I don't really feel like redoing the dialog on, because I sort of already did, since I did Onepads dialog.
arcum42
Oh, and I moved a bunch of the text to tooltips, which makes the dialog a lot smaller for ZeroSPU2 now.
icewolfz...
Error 11 error LNK2001: unresolved external symbol "void __cdecl SysMessage(char const *,...)" (?SysMessage@@YAXPBDZZ) zerospu2.obj ZeroSPU2
broke compiling on windows
line 124 of /trunk/plugins/zerospu2/zerospu2.h
it doesn't like the const for some reason, removing it allows it to compile.

Revision 3199

zzogl-pg: Shuffle things around a bit.

Revision 3200

* Apply a co-patch of Air and me to use linux friendly include path
[cmake]:
* Update to use the above patch.
* Remove a52. Need to use system version.
* Remove stub file. Append pcsx2 to 3rparty library to ease futur support.
Important Note: codeblock will probably need some update. (add
3rdparty/soundtouch_linux_include in include path)

Revision 3201

Bring codeblock in sync with the new soundtouch path.

Revision 3202

Edited wiki page through web user interface.
gregory....
Arg... I update the dependency information. And how to report a cmake issue.

Revision 3203

[spu2null, padnull, gsnull, zzogl]: use the setLogDir API to select the log
path.

Revision 3204

ZeroSPU2: Fix compilation errors and warnings under Windows/MSVC.
ramapcsx2
Question about ZeroSPU2 / Linux:
Do you guys have any audio stutter issues?
It's really bad in Win32, has been for a while.
arcum42
It does seem rather choppy now. I haven't really been using it much since porting spu2-x to Linux, so hadn't really noticed...

Revision 3205

SPU2-X: Fix a small bug with voice volume in linear interpolation mode.
ramapcsx2
Nearest interpolation, not linear :p

Revision 3206

SPU2-X: Fixed Core1 writeback areas; probably fixes quite a few things.
Details: (0x1800 to 0x1fff were being mis-written to 0x2000->0x2800, roughly).
ramapcsx2
Let's hope it affects more than that equalizer in ToD2 :p
ramapcsx2
Funny thing about this:
The PSX version of that game had the exact same bug.
It also tries to download the generated audio from it's SPU, which didn't work either :p

Revision 3207

SPU2-X: Woops, missed a writeback.

Revision 3208

zzogl-pg: A bit of refactoring and debugging code.

Revision 3209

ZZogl-pg: In the Debug build, downgrade various assertions to log messages.
arcum42
Basically, I'd rather that zzogl-pg screams at you then comes grinding to a halt. Assertions are great for situations that should never happen.
When they actually do happen, often, even, we're probably just better off letting the user know so we can figure out why it's happening and moving on.

Revision 3210

[debian]:
* First version of the debian packaging system (only 32bits system)
* It is highly experimental so do not expect too much...

Revision 3211

[wiki] : Add some note to build a debian package. For expert user only.

Revision 3212

Commandline, UI, and Game Database Work:
* Improved console window behavior during startup and shutdown (also fixes
minor threading issues)
* Added better failsafes for avoiding "rouge" pcsx2 processes left behind when
wxWidgets would fail to "notice" window closures properly.
* Database loader is now thread-safe and cleans itself up properly on exit.
* Added some handy enumeration tools for the gamefixes (prep work for making
them commandline controllable).
* ... and more prelim commandline work! (actual functional implementations
coming very soon)
arcum42
static __forceinline GamefixId operator--( enumName& src, int ) { enumName orig = src; src = (enumName)((int)src-1); return src; } \
Shouldn't this return orig, like the function above it?
Jake.Stine
Woops.
kimoki...
Thank you..
Looking for Commandline support.

Revision 3213

Fix console log not opening early enough on startup, and also minor cleanups to
database loader code (removed File_Reader.h)
shadowladyngemu
If you have the console window open but minimized then close PCSX2 next time you open it the console will be on task bar but not visible anywhere. Fixes itself after a few restarts and tick/untick "Show console" so it's not a big problem.
Older revisions would just forget the window position when you closed when console was minimized.
Jake.Stine
Ok, thanks. I'll look into that soon.
wing...
Can no longer compile after r3212 on Ubuntu 10.04 32bit, I always get this error:
wingnux@wingnux-desktop ~/pcsx2-read-only $ cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release
-- Enable the stripping by default in Release build !!!
-- Use internal version of Soundtouch by default.
Note: There have been issues in the past with sound quality depending on the version of Soundtouch
Use -DFORCE_INTERNAL_SOUNDTOUCH=FALSE at your own risk
-- Configuring done
CMake Error in pcsx2/CMakeLists.txt:
Cannot find source file "File_Reader.h". Tried extensions .c .C .c++ .cc
.cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
-- Build files have been written to: /home/wingnux/pcsx2-read-only
Compiling up to r3212 works fine.

Revision 3214

Remove the AutoDMA buffer hack, using its own allocated space as it's supposed
to.
If there's any regression we should look at what CAUSES it, instead of hacking
it back.
ramapcsx2
Seems to work in the 3-4 ADMA using games I tried.
Anyone remembers any particularly bad cases of ADMA overwriting wrong memory?

Revision 3215

Silly me for not proofreading the patch BEFORE commiting.
gigaherz
Only affected the NEW dmac version of the code. Old dmac would still run fine.

Revision 3216

I was just reminded savestates do exist, and my changes make current states
incompatible.
coolraju...
Breaking save-state compatibility for such a small change is a but harsh but well it had to be broken someday.

Revision 3217

SPU2-X: Experimental Reverb engine changes. Since I don't have any game that
shows any obvious reverb usage, and I can't properly test this, I'll leave it
here and let other people yell at me later if it makes any game noisy.
azte...
what games use this?
ramapcsx2
Nearly all games do, and it's very tricky to get right.
azte...
i see, i asked because giga's post made me understand only a few selected games use it. ;)

Revision 3218

SPU2-X: Some changes to make debugging easier.
-ADMA can now be logged undependable from DMA.
-Visual core activity display works again.
gregory....
One litte question. The callback DebugProc (PS2E-spu2) seems to be windows specific (or at least only working on windows). For example I only saw HWND type in windows file. I could ifdef it but will not be better to move it in a windows file ?

Revision 3219

SPU2-X: Small fix for bad resets.
l4zyf1sh
Seems that one of the last 3 revisions makes Disgaea randomly repeat character sounds during battle. It repeats sounds that were played at least once.

Revision 3220

UI:
* Added 3-state checkbox support to pxCheckBox.
* Fixed some buggy behavior when closing PCSX2 with either main window or
console window minimized (window positions would get screwy)
DevNotes:
* Moved ImplementEnumOperators macro to Common headers and improved it a bit.

Revision 3221

... missed a file >_<

Revision 3222

[cmake] * Remove a previous delete file
wing...
THANK YOU VERY MUCH!!! =)
Now I can build it again on Ubuntu!
gregory....
No problem. However if I'm correct, the spu2x have also some compilation error for the moment.
wing...
It does and it's probably related to the outdated libsoundtouch (1.3 when pcsx2 uses 1.5). I'm installing gentoo on a virtual machine to try building pcsx2 there.
gregory....
I do not thinks it is related. Well, libsoundtouch is also provided by pcsx2 (look at 3rdparty repository). Call cmake with -DFORCE_INTERNAL_SOUNDTOUCH=TRUE to compile with it. It is the default in the standard cmake build.
gregory....
the spu2x problem is some windows code in middle of common file (change 3218). So gcc is not happy.
wing...
Thank you very much! I'm gonna read about the latest updates to the source code and build it with cmake. Thanks for all your help towards the linux build =)

Revision 3223

GameDatabase / Patches:
* Made all database key comparisons case-insensitive, so that "patches" and
"Patches" both work as expected, etc.
* Applied patches should be remembered properly now when using suspend/resume
and savestates (hopefully -- didn't test savestates yet).
DevNotes:
* Reorganized all game database code into a generic interface used by the
emulation core (IGameDatabase), and app-side implementation (AppGameDatabase)
that loads the files and provides info in a thread-safe manner.
shadowladyngemu
Gamefix patches working fine now, however there's a problem with the Tab key to enable/disable turbo (doesn't change the FPS limit on games with patches).
Here's log with FFX for example (no change on FPS):
(FrameLimiter) Turbo DISABLED.
(GameDB) Enabled Gamefix: IpuWaitHack
Issuing EE/iR5900-32 Recompiler Reset
(FrameLimiter) Turbo ENABLED.
(GameDB) Enabled Gamefix: IpuWaitHack
Issuing EE/iR5900-32 Recompiler Reset
Here with another game that doesn't have patches (FPS changes on Tab key pressed):
(FrameLimiter) Turbo DISABLED.
(UpdateVSyncRate) FPS Limit Changed : 59,94 fps
(FrameLimiter) Turbo ENABLED.
(UpdateVSyncRate) FPS Limit Changed : 119,88 fps
shadowladyngemu
F4 to enable/disabl limit works, it's only the Tab key.
Jake.Stine
Ok, should be fixed soon.

Revision 3224

SPU2-X: Voices used for modulation are not supposed to be played out loud. The
actual modulation could still be wrong, but at least it will avoid annoying
sounds to be played (e.g. Romancing SaGa main menu).

Revision 3225

Linux fix.

Revision 3226

UI: TAB should be remembered now on games that use patches. Improved and
simplified some threading logic, and streamlined the vsync handlers a wee bit
(they don't really matter for performance, but no point in being sloppy about
them either).

Revision 3227

SPU2-X: Reverb tweaks. Still shooting in the dark, so no promises on if this
helps or hurts. -_-

Revision 3228

SPU2-X: Comment gigaherz hack better and disable it by default. (doesn't seem
to make much of a diff either way though)

Revision 3229

Fix Linux (x2).

Revision 3230

zzogl-pg: Some refactoring, a bit of work on logging. Some disabled stuff I was
fiddling with.
Zeydl...
DrawTriangle should be DrawTriangleArray -- it draw all triangles that form a "stip": first one have vertex 1,2,3, second 2,3,4, third 3,4,5 etc.
arcum42
Yeah, that's probably a better name.
I'm essentially learning bits and pieces of openGL as I go along. I'm really just going to have to sit down and work my way through a few openGL tutorials at some point...

Revision 3231

zzogl-pg: If ZZOgl automatically turns a game hack on, it shouldn't leave it on.
arcum42
Of course, now if a gamefix turns on an option you already had set, it'll forget about that option. Usually if it's turned on automatically, it's not something you want on normally anyways, though.
icewolfz...
Error 2 error C2039: 'setfullscreen' : is not a member of 'GSconf' GSmain.cpp 816 ZZOgl
should be setFullscreen:
conf.setFullscreen(false);
arcum42
I'll take care of it. I'm still actively revising that section of code right now, anyways....
arcum42
In fact, the Windows port may break for a few revisions, because I'm pulling things apart on the Linux side, and will have to match it on the windows side afterwards.
arcum42
Well, ok, one revision, and 58 minutes. :)

Revision 3232

zzogl-pg: Revamp configuration code. (Likely breaks Windows. I'll take care of
that. Also, you may need to reset a few settings in ZZOgl after this commit...
arcum42
).
arcum42
I'm working on fixing the Windows port right now...

Revision 3233

zzogl-pg: Fix the Windows port back up.

Revision 3234

SPU2-X:
We're free to put the ESA wherever we want. So let's use an area that makes the
game Ys not die. :p

Revision 3235

spu2-x: Get Spu2-X compiling in Linux again.
ramapcsx2
Sigh, didn't know, didn't check. Thanks for taking care of it :p
arcum42
No problem. I mainly noticed it because gregory and wingnux were talking about spu2-x compilation issues in Linux in another revision. I hadn't recompiled spu2-x in a few versions, so hadn't seen it...
And, yeah, as a general rule, any code with HWND in it is going to be Windows only. ^_^
wing...
Thanks for the fix, arcum!
Btw, I can no longer build the latest svn on Ubuntu 10.04 32bit:
[ 21%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/wxGuiTools.cpp.o
[ 21%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/wxHelpers.cpp.o
[ 21%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/x86/MemcpyFast.S.o
Linking CXX static library libUtilities.a
[ 21%] Built target Utilities
make: *** [all] Error 2
Gonna try some older revisions to check where things broke.
wing...
Oh, and spu2-x builds fine, btw! Thanks again for the fix!
"Linking CXX shared library ../../../bin/plugins/libspu2x.so
[100%] Built target spu2x"
arcum42
No problem. I suspect the fix for the other issue will be gregory's, though, since it builds fine in Codeblocks, and greg's the one that primarily working on the make side...
gregory....
Hum stange, 3233 is fine on my PC (at least it compile ok).
gregory....
wingnux, can you print all error messages and your cmake command. Thanks.
wing...
Current svn:
wingnux@wingnux-desktop ~/pcsx2-read-only $ cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release -DFORCE_INTERNAL_ALL=TRUE
-- Enable the stripping by default in Release build !!!
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only
wingnux@wingnux-desktop ~/pcsx2-read-only $ make -j3 pcsx2
[ 0%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/3dnow.cpp.o
[ 0%] Building CXX object tools/bin2cpp/CMakeFiles/bin2cpp.dir/bin2cpp.cpp.o
[ 11%] Built target Utilities
[ 11%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/cpudetect.cpp.o
Linking CXX executable ../bin/bin2cpp
[ 11%] Built target bin2cpp
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/fpu.cpp.o
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/groups.cpp.o
Bin2CPP Output > AppIcon16.h
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/jmp.cpp.o
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy.cpp.o
[ 14%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy_sse.cpp.o
Bin2CPP Output > AppIcon32.h
Bin2CPP Output > AppIcon64.h
Bin2CPP Output > BackgroundLogo.h
Bin2CPP Output > ButtonIcon_Camera.h
Bin2CPP Output > ConfigIcon_Cpu.h
Bin2CPP Output > ConfigIcon_Gamefixes.h
Bin2CPP Output > ConfigIcon_MemoryCard.h
Bin2CPP Output > ConfigIcon_Paths.h
[ 14%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/LnxCpuDetect.cpp.o
Bin2CPP Output > ConfigIcon_Plugins.h
Bin2CPP Output > ConfigIcon_Speedhacks.h
Bin2CPP Output > ConfigIcon_Video.h
Bin2CPP Output > Dualshock.h
[ 14%] Built target Resources
[ 14%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/movs.cpp.o
[ 16%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/PrecompiledHeader.cpp.o
[ 16%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/simd.cpp.o
[ 16%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/tools.cpp.o
[ 16%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/x86emitter.cpp.o
Linking CXX static library libx86emitter.a
[ 16%] Built target x86emitter
[ 16%] [ 18%] [ 18%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Cache.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/COP0.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/COP2.cpp.o
[ 19%] [ 19%] [ 19%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Counters.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Dump.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/GameDatabase.cpp.o
[ 19%] [ 19%] [ 21%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/FiFo.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/FPU.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Elfheader.cpp.o
[ 21%] [ 21%] [ 21%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/GSState.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/GS.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Gif.cpp.o
[ 22%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Hw.cpp.o
[ 22%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/HwRead.cpp.o
[ 22%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/HwWrite.cpp.o
[ 24%] [ 24%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Interpreter.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopBios.cpp.o
[ 24%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopCounters.cpp.o
[ 24%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopDma.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/IopBios.cpp: In function ‘int R3000A::ioman::write_HLE()’:
/home/wingnux/pcsx2-read-only/pcsx2/IopBios.cpp:314: warning: unused variable ‘fd’
[ 26%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopHw.cpp.o
[ 26%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopIrq.cpp.o
[ 26%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopMem.cpp.o
[ 26%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IopSio2.cpp.o
[ 27%] [ 27%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Memory.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/MMI.cpp.o
[ 27%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/MTGS.cpp.o
[ 29%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Patch.cpp.o
[ 29%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Patch_Memory.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/MTGS.cpp: In member function ‘void SysMtgsThread::OpenPlugin()’:
/home/wingnux/pcsx2-read-only/pcsx2/MTGS.cpp:188: warning: deprecated conversion from string constant to ‘char*’
[ 29%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Pcsx2Config.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/Patch.cpp: In function ‘void inifile_command(bool, const wxString&)’:
/home/wingnux/pcsx2-read-only/pcsx2/Patch.cpp:118: warning: unused variable ‘code’
[ 29%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/PluginManager.cpp.o
[ 31%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/PrecompiledHeader.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/PluginManager.cpp: In member function ‘virtual void PluginManager::Init(PluginsEnum_t)’:
/home/wingnux/pcsx2-read-only/pcsx2/PluginManager.cpp:1211: warning: NULL used in arithmetic
[ 31%] [ 31%] [ 31%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/R3000A.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/R3000AOpcodeTables.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/R3000AInterpreter.cpp.o
[ 32%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/R5900.cpp.o
[ 32%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/R5900OpcodeImpl.cpp.o
[ 32%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/R5900OpcodeTables.cpp.o
[ 34%] [ 34%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/SaveState.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ShiftJisToUnicode.cpp.o
[ 34%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Sif.cpp.o
[ 34%] [ 34%] [ 36%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Sif0.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Sio.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Sif1.cpp.o
[ 36%] [ 36%] [ 37%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/SourceLog.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Stats.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/SPR.cpp.o
[ 37%] [ 37%] [ 39%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/System.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif1_Dma.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif0_Dma.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/System.cpp: In function ‘u8* SysMmapEx(uptr, u32, uptr, const char*)’:
/home/wingnux/pcsx2-read-only/pcsx2/System.cpp:415: warning: NULL used in arithmetic
[ 39%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif1_MFIFO.cpp.o
[ 39%] [ 39%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif_Codes.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif.cpp.o
[ 40%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif_Transfer.cpp.o
[ 40%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Vif_Unpack.cpp.o
[ 40%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/vtlb.cpp.o
[ 40%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VU0.cpp.o
[ 42%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VUmicro.cpp.o
[ 42%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VU0micro.cpp.o
[ 42%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VU0microInterp.cpp.o
[ 44%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VU1micro.cpp.o
[ 44%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VU1microInterp.cpp.o
[ 44%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VUflags.cpp.o
[ 44%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VUmicroMem.cpp.o
[ 45%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/VUops.cpp.o
[ 45%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/CdRom.cpp.o
[ 45%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/CDVDaccess.cpp.o
[ 45%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/CDVD.cpp.o
[ 47%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/CDVDisoReader.cpp.o
[ 47%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/IsoFileFormats.cpp.o
[ 47%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/IsoFileTools.cpp.o
[ 49%] [ 49%] [ 49%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/IsoFS/IsoFSCDVD.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/IsoFS/IsoFile.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/CDVD/IsoFS/IsoFS.cpp.o
[ 49%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/DebugTools/DisR3000A.cpp.o
[ 50%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/DebugTools/DisR5900asm.cpp.o
[ 50%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/DebugTools/DisR5900.cpp.o
[ 50%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/DebugTools/DisVU0Micro.cpp.o
[ 50%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/DebugTools/DisVU1Micro.cpp.o
[ 52%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AdvancedDialog.cpp.o
[ 52%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppAssert.cpp.o
[ 52%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppConfig.cpp.o
[ 54%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppCorePlugins.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/AppAssert.cpp: In member function ‘virtual void pxGetStackTrace(const FnChar_t*)::StackDump::OnStackFrame(const wxStackFrame&)’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/AppAssert.cpp:87: warning: unused variable ‘count’
[ 54%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppCoreThread.cpp.o
[ 54%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppEventSources.cpp.o
[ 54%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppGameDatabase.cpp.o
[ 55%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppInit.cpp.o
[ 55%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppMain.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/AppGameDatabase.cpp: In member function ‘void DBLoaderHelper::ReadGames()’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/AppGameDatabase.cpp:121: warning: unused variable ‘game’
[ 55%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/AppRes.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/AppInit.cpp: In member function ‘void Pcsx2App::OpenProgramLog()’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/AppInit.cpp:215: warning: unused variable ‘frame’
[ 55%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/ConsoleLogger.cpp.o
[ 57%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/CpuUsageProvider.cpp.o
[ 57%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/CpuUsageProviderLnx.cpp.o
[ 57%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/AboutBoxDialog.cpp.o
[ 59%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/AppConfigDialog.cpp.o
[ 59%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/AssertionDialog.cpp.o
[ 59%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/BaseApplicableConfigPanel.cpp.o
[ 59%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/MemoryCardListView.cpp.o
[ 60%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/BaseConfigurationDialog.cpp.o
[ 60%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/BiosSelectorDialog.cpp.o
[ 60%] [ 60%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/ConfirmationDialogs.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/CreateMemoryCardDialog.cpp.o
[ 62%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/FirstTimeWizard.cpp.o
[ 62%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/ImportSettingsDialog.cpp.o
[ 62%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/LogOptionsDialog.cpp.o
[ 63%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/McdConfigDialog.cpp.o
[ 63%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/PickUserModeDialog.cpp.o
[ 63%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/StuckThreadDialog.cpp.o
[ 63%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Dialogs/SysConfigDialog.cpp.o
[ 65%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/ExecutorThread.cpp.o
[ 65%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/FrameForGS.cpp.o
[ 65%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/GlobalCommands.cpp.o
[ 65%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/i18n.cpp.o
[ 67%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/IsoDropTarget.cpp.o
[ 67%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/MainFrame.cpp.o
[ 67%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/MainMenuClicks.cpp.o
[ 68%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/MemoryCardFile.cpp.o
[ 68%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/MemoryCardListPanel.cpp.o
[ 68%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/MessageBoxes.cpp.o
[ 68%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/MSWstuff.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/Panels/MemoryCardListPanel.cpp: In member function ‘void Panels::MemoryCardListPanel_Simple::OnListDrag(wxListEvent&)’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/Panels/MemoryCardListPanel.cpp:613: warning: unused variable ‘result’
[ 70%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/AudioPanel.cpp.o
[ 70%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/BiosSelectorPanel.cpp.o
[ 70%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/CpuPanel.cpp.o
[ 70%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/DirPickerPanel.cpp.o
[ 72%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/GameDatabasePanel.cpp.o
[ 72%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/GameFixesPanel.cpp.o
[ 72%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/GSWindowPanel.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/Panels/GameDatabasePanel.cpp: In constructor ‘Panels::GameDatabasePanel::GameDatabasePanel(wxWindow*)’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/Panels/GameDatabasePanel.cpp:46: warning: unused variable ‘GameDB’
[ 73%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/LogOptionsPanels.cpp.o
[ 73%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/MiscPanelStuff.cpp.o
[ 73%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/PathsPanel.cpp.o
[ 73%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/PluginSelectorPanel.cpp.o
[ 75%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/SpeedhacksPanel.cpp.o
[ 75%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Panels/VideoPanel.cpp.o
[ 75%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/pxLogTextCtrl.cpp.o
[ 75%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/RecentIsoList.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/Panels/VideoPanel.cpp: In member function ‘virtual void Panels::FramelimiterPanel::AppStatusEvent_OnSettingsApplied()’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/Panels/VideoPanel.cpp:116: warning: unused variable ‘appwin’
[ 77%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/Saveslots.cpp.o
[ 77%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/SysState.cpp.o
[ 77%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/UpdateUI.cpp.o
[ 78%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/coroutine.cpp.o
[ 78%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/IPU.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/SysState.cpp:107: warning: ‘IsSavingOrLoading’ defined but not used
[ 78%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/IPU_Fifo.cpp.o
[ 78%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/mpeg2lib/Idct.cpp.o
[ 80%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/mpeg2lib/Mpeg.cpp.o
[ 80%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/yuv2rgb.cpp.o
[ 80%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ps2/BiosTools.cpp.o
[ 80%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ps2/GIFpath.cpp.o
[ 81%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ps2/Iop/IopHwRead.cpp.o
[ 81%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ps2/Iop/IopHwWrite.cpp.o
[ 81%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/System/SysCoreThread.cpp.o
[ 83%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/System/SysThreadBase.cpp.o
[ 83%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Utilities/FileUtils.cpp.o
[ 83%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/BaseblockEx.cpp.o
[ 83%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iCOP0.cpp.o
[ 85%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iCore.cpp.o
[ 85%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iFPU.cpp.o
[ 85%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iFPUd.cpp.o
[ 85%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iMisc.cpp.o
[ 86%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iMMI.cpp.o
[ 86%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iPsxMem.cpp.o
[ 86%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iR3000A.cpp.o
[ 88%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iR3000Atables.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/x86/iPsxMem.cpp:26: warning: ‘writectrl’ defined but not used
[ 88%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iR5900Misc.cpp.o
[ 88%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ir5900tables.cpp.o
[ 88%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/iVU1micro.cpp.o
[ 90%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iCore-32.cpp.o
[ 90%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900-32.cpp.o
[ 90%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900Arit.cpp.o
[ 90%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900AritImm.cpp.o
[ 91%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900Branch.cpp.o
[ 91%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900Jump.cpp.o
[ 91%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900LoadStore.cpp.o
[ 93%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900Move.cpp.o
[ 93%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900MultDiv.cpp.o
[ 93%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900Shift.cpp.o
[ 93%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/iR5900Templates.cpp.o
[ 95%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/ix86-32/recVTLB.cpp.o
[ 95%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/microVU.cpp.o
[ 95%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/newVif_Dynarec.cpp.o
[ 95%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/newVif_Unpack.cpp.o
[ 95%] [ 96%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/sVU_Lower.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/newVif_UnpackSSE.cpp.o
[ 96%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/sVU_Micro.cpp.o
[ 98%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/sVU_Upper.cpp.o
[ 98%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/sVU_zerorec.cpp.o
[ 98%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ZipTools/thread_gzip.cpp.o
[ 98%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/ZipTools/thread_lzma.cpp.o
[100%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/IPU/acoroutine.S.o
[100%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/x86/aVUzerorec.S.o
[100%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Linux/LnxHostSys.cpp.o
[100%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Linux/LnxKeyCodes.cpp.o
Linking CXX executable ../bin/pcsx2
/usr/bin/ld: cannot find -lzlib
collect2: ld returned 1 exit status
make[3]: *** [bin/pcsx2] Error 1
make[2]: *** [pcsx2/CMakeFiles/pcsx2.dir/all] Error 2
make[1]: *** [pcsx2/CMakeFiles/pcsx2.dir/rule] Error 2
make: *** [pcsx2] Error 2
gregory....
Ok thanks. I found the bug. I do a silly things in a previous rev...
wing...
No problem! I'm glad to help =)

Revision 3236

[cmake]: Use the good 3rpaty library name...
wing...
"Linking CXX executable ../bin/pcsx2
[100%] Built target pcsx2"
Everything seems to be fine. Thank you again.
wing...
There seems to be a problem with CDVDiso, it builds with no errors but it doesn't show up on pcsx2.
Build log:
wingnux@wingnux-desktop ~/pcsx2-read-only $ make -j3 CDVDiso
[ 0%] [ 33%] [ 33%] Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/blocksort.c.o
Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/compress.c.o
Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/bzlib.c.o
/home/wingnux/pcsx2-read-only/3rdparty/bzip2/bzlib.c: In function ‘bzopen_or_bzdopen’:
/home/wingnux/pcsx2-read-only/3rdparty/bzip2/bzlib.c:1430: warning: assignment makes pointer from integer without a cast
[ 33%] Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/crctable.c.o
[ 66%] Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/decompress.c.o
[ 66%] [ 66%] Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/huffman.c.o
Building C object 3rdparty/bzip2/CMakeFiles/pcsx2_bzip2.dir/randtable.c.o
Linking C static library libpcsx2_bzip2.a
[ 66%] Built target pcsx2_bzip2
[ 66%] Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/CDVDisop.cpp.o
[ 66%] [ 66%] Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/libiso.cpp.o
Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/Config.cpp.o
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘u64 _tellfile(void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:201: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:201: warning: initializing argument 1 of ‘long int ftell(FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:205: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:205: warning: initializing argument 1 of ‘__off64_t ftello64(FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _seekfile(void*, u64, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:217: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:217: warning: initializing argument 1 of ‘int fseeko64(FILE*, __off64_t, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _readfile(void*, void*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:226: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:226: warning: initializing argument 4 of ‘size_t fread(void*, size_t, size_t, FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _writefile(void*, void*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:231: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:231: warning: initializing argument 4 of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘void _closefile(void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:236: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:236: warning: initializing argument 1 of ‘int fclose(FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadZ2table(isoFile*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:330: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBZ2table(isoFile*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:373: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int isoSetFormat(isoFile*, int, int, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:650: warning: invalid conversion from ‘const void*’ to ‘void*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:650: warning: initializing argument 2 of ‘int _writefile(void*, void*, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:657: warning: invalid conversion from ‘const void*’ to ‘void*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:657: warning: initializing argument 2 of ‘int _writefile(void*, void*, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:667: warning: invalid conversion from ‘const void*’ to ‘void*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:667: warning: initializing argument 2 of ‘int _writefile(void*, void*, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlock(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:709: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockZ(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:731: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:756: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockBZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:790: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockD(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:821: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:825: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockM(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:842: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:843: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:856: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int isoReadBlock(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:869: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlock(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:909: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockZ(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:934: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:958: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockD(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:976: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockBZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:990: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:1016: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:48: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:48: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:53: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp: In function ‘s32 CDVDopen(const char*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:168: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp: In function ‘s32 CDVDgetTOC(void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:313: warning: unused variable ‘off’
[100%] Building C object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/interface.c.o
cc1: warning: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void LoadConf()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:44: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:45: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:46: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void OnFile_Ok()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:97: warning: invalid conversion from ‘const gchar*’ to ‘gchar*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void OnOk(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:189: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:191: warning: invalid conversion from ‘const gchar*’ to ‘char*’
[100%] /home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void OnFileSel_Ok()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:215: warning: invalid conversion from ‘const gchar*’ to ‘gchar*’
Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/Linux.cpp.o
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void CDVDconfigure()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:281: warning: return-statement with a value, in function returning 'void'
[100%] Building C object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/support.c.o
cc1: warning: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:39: warning: non-local variable ‘<anonymous union> cr’ uses anonymous type
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void UpdZmode()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:50: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCompress(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:68: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:124: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:128: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘char* CDR_readTrack(unsigned char*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:344: warning: invalid conversion from ‘unsigned char*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCreate(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:369: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:426: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:433: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:482: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCreateZ(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:509: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:589: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:596: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: invalid conversion from ‘unsigned char*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: initializing argument 1 of ‘int BZ2_bzBuffToBuffCompress(char*, unsigned int*, char*, unsigned int, int, int, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: invalid conversion from ‘u8*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: initializing argument 3 of ‘int BZ2_bzBuffToBuffCompress(char*, unsigned int*, char*, unsigned int, int, int, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:668: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCompress(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:64: warning: ‘ret’ may be used uninitialized in this function
Linking CXX shared library ../../../bin/plugins/libCDVDiso.so
[100%] Built target CDVDiso
PCSX2 console:
Loading plugins...
Binding GS : /home/wingnux/jogos/pcsx2/plugins/libzzogl.so
Binding PAD : /home/wingnux/jogos/pcsx2/plugins/libzeropad.so
Binding SPU2 : /home/wingnux/jogos/pcsx2/plugins/libspu2-x.so
Binding CDVD : /home/wingnux/jogos/pcsx2/plugins/libCDVDnull.so
Binding USB : /home/wingnux/jogos/pcsx2/plugins/libUSBnull.so
Binding FW : /home/wingnux/jogos/pcsx2/plugins/libFWnull.so
Binding DEV9 : /home/wingnux/jogos/pcsx2/plugins/libdev9null.so
Plugins loaded successfully.
[wx] /home/wingnux/jogos/pcsx2/plugins/libCDVDiso.so: undefined symbol: _fdopen
An unhandled runtime error has occurred, somewhere in the depths of Pcsx2's cluttered brain-matter.
General file operation error.
File is not a valid dynamic library.
Stream exception: File is not a valid dynamic library.
File/Object: /home/wingnux/jogos/pcsx2/plugins/libCDVDiso.so
Some kinda plugin failure: /home/wingnux/jogos/pcsx2/plugins/libCDVDiso.so
arcum42
Hmmm...
_fdopen isn't used by CDVDiso. OTOH, bzip is, and bzip uses _fdopen. Of course, I'm not sure why it's not finding _fdopen. We're talking about something that I think is brought in by stdio.h, after all. Odd.
arcum42
For that matter, I would have thought it would have used the native version of bz2, rather then compiling the internal version...
gregory....
The problem only occured when using the pcsx2 bzip version. Distribution bzip2 is ok.
The tank solution, just drop internal bzip from cmake, people can just install libbz2-dev. There is a #ifdef BZ_STRICT_ANSI around the _fdopen code but I'm not sure of the impact.
arcum42
I'm fine with dropping internal bzip...
wing...
Thanks for the help. Even when running "cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release" it still uses the 3rd party bzip lib, how can I make it use my system's (/usr/lib) library?
gregory....
Use last rev, it will not take it ;)
You must install the package libbz2-dev

Revision 3237

zzogl-pg: A bit more refactoring. Rename DrawTriangle. Move some code around.
wing...
I don't know what happened but F6 doesn't cycle between FSAA modes anymore. It changes FSAA to the max available (16x) and when I press F6 again it won't cycle to "No FSAA", it just shows "16x FSAA" on the OSD.
gregory....
Arcum, all changes (including previous commit) change the behavior or it must stay the same ?
Grandia 3 does not like your updates ;) For testcase (grandia 3), after opening, use start. After the intro movies, there is a 3D scene (do not know the exact name).
There are a lots of screen garbage in this kind of scene (in previous rev I change the dummy frame key limit to 0x2E0 instead of 0x300 to work-around it). Note suspend, then resume work around the problem (in previous version).
The others problem is "a slide show" of the scene. It seems to only print a frame by second, but sound is ok. Maybe forget to update the screen for some frame.
Just for information, when anti-aliasing is change on-the-fly there is also some strange flickering. Do not know if it related
arcum42
Most of my changes kept how ZZOgl was acting the same. Including the garbage on the starting screen on Grandia III. I was fiddling with other changes that might have affected it, but they didn't work out.
I might change the dummy key limit; I just want to make sure it doesn't mess up other games.
After the recent changes, you might want to check your settings in ZZOgl-pg, btw. I redid a bunch of that code, and it may not have kept some of your settings intact...
gregory....
For settings, I delete the ini file just to be sure. I did not use any trick.
Just for information, an impact of changing the dummy key limit on grandia 3. The top and bottom black border, contains sometimes garbage picture (so is not black anymore :) ).
So there is maybe a regression that cause the "slide show" and the flickering in anti-aliasing change. Difficult to describe, it is like loosing some sync signal. It is only print 1 images every 10 in some scenes. Besides a part of the screen is black (anti-aliasing 0 is the bottom-left quarter). After some time it catches the train and works as expected !
yxml...
zzogl-pg\opengl\Util.h vs2008 compiler error.error C2065 and error C2051
arcum42
It's taken care of, though for the future, please post the actual error messages. I doubt error C2065 & C2051 mean much to a Windows developer, and they mean even less to someone who mainly knows Linux... :(

Revision 3238

Refactoring: (boring)
* renamed PersistentThread to pxThread (shorter, sweeter, and the 'persistent'
part is obsolete since its now a full blown thread manager since some while
ago).
* Renamed a bunch of the PostMethodToMain stuff to Rpc_TryInvoke* (for remote
procedure call). It's probably not a good use of the term, but I'm bummed I
can't think of anything better/shorter.
Jake.Stine
I should rename the cpp/h file someday as well, but I don't feel like updating all the project files. ;)
Zeydl...
And you forgot to change linux part:
/home/ruslan/pcsx2/trunk/common/src/Utilities/Linux/LnxThreads.cpp|72|error: ‘Threading::PersistentThread’ has not been declared
wing...
I can confirm the comment above:
[ 14%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Mutex.cpp.o
/home/wingnux/pcsx2-read-only/common/src/Utilities/Linux/LnxThreads.cpp:72: error: ‘Threading::PersistentThread’ has not been declared
/home/wingnux/pcsx2-read-only/common/src/Utilities/Linux/LnxThreads.cpp:72: error: non-member function ‘u64 GetCpuTime()’ cannot have cv-qualifier
/home/wingnux/pcsx2-read-only/common/src/Utilities/Linux/LnxThreads.cpp:82: error: ‘Threading::PersistentThread’ has not been declared
/home/wingnux/pcsx2-read-only/common/src/Utilities/Linux/LnxThreads.cpp:88: error: ‘Threading::PersistentThread’ has not been declared
/home/wingnux/pcsx2-read-only/common/src/Utilities/Linux/LnxThreads.cpp:93: error: ‘Threading::PersistentThread’ has not been declared
make[3]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/Linux/LnxThreads.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
Linking CXX static library libx86emitter.a
[ 14%] Built target x86emitter
make[2]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/all] Error 2
make[1]: *** [pcsx2/CMakeFiles/pcsx2.dir/rule] Error 2
make: *** [pcsx2] Error 2

Revision 3239

[cmake] Drop internal bzip version. No reason to use it, moreover compilation is
broken for some distribution.
gregory....
For people that really use it. Please install bzip in 32bits with dev file. (on debian libbz2-dev)

Revision 3240

[cmake] bzip2 clean, forget to change one line...
wing...
Thank you! CDVDiso works fine now.

Revision 3241

linux fix. Also rename PersistentThread in linux.

Revision 3242

SPU2-X:
- Clamp requested pitch values to 0x3fff. Fixes games that set a too big pitch,
run that voice and expect it to hit an IRQA (Romancing Saga).
- Gigaherz and Pseudonym worked out better modulation support. Should make some
sounds better (FFX battle sound, etc).

Revision 3243

Cmdline: --nogui, --cdvd, --nodisc, --fullboot, and IsoFile implemented
parameters implemented. Example:
pcsx2 someIso.iso (boots game)
pcsx2 --nogui someIso.iso (boots game without the pcsx2 std interface)
pcsx2 --nogui --nodisc (boots into the bios system menu)
... more coming soon!
poisiono...
These things opens up ideas of me playing a bit with bash-scripting (which i am currently starting to like) perhaps making some sort of simple frontend of sorts. Or just not me, more skilled people aswell probably.
(though i really like the standard gui in any case) :)
karlheinzgraf74
Please support a cmd line with "--fullscreen --exclusive". That would be very nice :-)

Revision 3244

SPU2-X:
Another relocation of Reverb Address space. Ys and Shaman King work.
gigaherz
Reasoning:
[18:04] (@gigaherz): psx spu has onyl 512kb so,
[18:05] (@gigaherz): the EEA woudl be at 0x3FFFF if it existed
[18:05] (@gigaherz): spu2 is different but hey maybe they still reset it to 3FFFF?
fischkop...
this revision finally fixed sound in escape from monkey island
poisiono...
I just tried to compile this on Arch Linux 64-bit.
I do not know exactly what went wrong, i got as much (all?) of the libs and deps i could find from the debian-package-names on my system.
It seems to be some inconsistency of soundtouch on my systems version i think?
Here is as thorough a paste of what i did as i can come up with:
http://www.pastey.net/137860
gigaherz
Pcsx2 will not build for 64bit. You need proper 32bit tools and libraries installed to compile. Also, this is NOT a forum, you are not supposed to ask for help in here. Use http://forums.pcsx2.net/ instead next time (or if you keep having troubles compiling), and make sure to read the guide [CompilationGuideForLinux] (https://code.google.com/p/pcsx2/wiki/CompilationGuideForLinux, not sure if [] stuff works in comments).
gigaherz
Ah no need to use [] even? Testing: CompilationGuideForLinux
ramapcsx2
:p
poisiono...
I did use the compilation guide, aswell as installed as many 32-bit libs as i could find a corresponding version for - though not for soundtouch i see now that i am less tired.
As to posting it here in the changelog/version comment, i also did a spu-2->sound->soundtouch correlation in my mind, though i guess my lack of the right soundtouch version does not have anything to do with this rev.
I will out more effort into getting my compilation going, and try to be more discriminating as to where i post about it unless i am more certain of it's relevance (or do it the forum-way you suggested)
If it really is not possible even with the right 32-bit libs i guess i will have to chroot, or be patient :)
Thanks for the patience and the sensible reminder,
and kudos for all you good work
- this goes out to all the devs, not only the ones justly reprimanding me ;)
/PReP

Revision 3245

zzogl-pg: Go with gregorys dummy key limit change for the moment. Gets rid of
garbage in Grandia III. Needs more testing with other games.
eliotfur
I just wonder is ZZOgl-pg intended to replace GSDX someday or is it "just for Linux guys"?..
arcum42
I doubt ZZOgl-pg will ever replace GSDx. It is, however, intended to replace ZeroGS.
If you aren't on Linux, a lot of times GSDx is better. There may be cases where a game or certain areas of a game work better in ZZOgl or ZZOgl-pg, though, so it might still be useful for Windows guys.
OTOH, GSDx would need OpenGL code that does everything the current DirectX
code does written for it, and a rewrite of the main vector code before it was usable on Linux, and I'd be surprised if that happened.
wing...
It fixed the weird glitch on State of Emergency 2 (http://forums.pcsx2.net/Thread-Bug-Report-State-of-Emergency-2-NTSC-U). There are still in-game glitches but all cutscenes (non fmv) work fine now!
eliotfur
@arcum42:
That's exactly what I was thinking...
Anyway, I'd be surprised (and happy) if anyone would eventually take this project for making further improvement... There are so many TODOs in the source left behind by Gabest...
wing...
I'm happy with all the development on the opengl side because I'm on linux so this plugin is my only option. It has a nice overall compatibility but speed is WAY slower than gsdx =/
Anyway, keep up the good work, guys!
arcum42
Yeah, that's a large part of why I brought a fork of ZZOgl into the trunk. For the Linux port to really work, it needs to have at least one plugin of each type to be actively worked on. (Though some are less important then others. Dev9, FW, and USB, for example...)
That's a factor in why I forked ZeroPad into OnePad, and ported spu2-x to Linux, as well...
wing...
arcum42: And for that I thank you a lot!
I just wish Pete'd join the dev team, his psx ogl plugins are great.

Revision 3246

zzogl-pg: Forgot to remove this...
dbed...
ZZogl not compile some errors

Revision 3247

zzogl-pg: Fix Windows again.
evolutionrevolution
Ah, there we go. That's better. :)
gregory....
I have some compilation failure with cmake because #include <GL/glew.h> was removed from linux side of util.h.
Btw, would not be better to create opengl include file ? Then put opengl include in good order in one place.
arcum42
Yeah, didn't mean to remove it. And it'd be good to have a opengl header. In fact, the headers could use a major reorg. It's just that they're rather tangled and hard to rearrange.
(Though I have done some rearranging; Util.h didn't exist before I started working on ZZOgl-pg.)

Revision 3248

ZZOgl-PG: Suppose I should have left this line in...

Revision 3249

UI / Cmdline:
* Fullscreen mode should be remembered/applied properly now.
* implemented --fullscreen and --windowed options
* Made the --help popup a lot prettier
shadowladyngemu
Having "Default to fullscreen mode on open" enabled then starting/resuming emulation works fine, but then doing Alt+Enter freezes the image and eventually becomes a black screen. Starting/resuming without the option enabling then doing Alt+Enter works as usual.
serban.a...
as shadow said alt enter freezes image
karlheinzgraf74
as shadow said alt enter freezes image

Revision 3250

microVU: untested sse4 optimizations. comment if breaks something :D
ramapcsx2
Seems fine :)
danialho...
XenoSaga performance improved (i think)
Bully performance decreased :\, speedhacks that normally improved performance are much less effective.
refraction
danial: I think you're just noticing it rather than it being any different, there is no reason why this should slow it down, at all, if anything it should stay the same.
danialho...
nope, i was able to easily get 70fps in Bully previously when walking through the outdoors area's. now it dips into the 40's.
i'll look into it more though.

Revision 3251

microVU: remove some spamming in release builds for Dawn of Mana level 2...

Revision 3252

spu2-x: Fix a crash in Linux. (Do the same thing to ZeroSPU2 for good measure.)
arcum42
I was noticing a crash near the beginning of Kingdom Hearts 1, and eventually traced it back to the rng generator. Switching what registers it's using seems to have taken care of, though.
Jake.Stine
Hmm, yeah, that asm is lacking a proper register clobber list, which is why. Unfortunately I don't remember GAS syntax anymore.
arcum42
For reference, the crash was in the section at the beginning with the three pedestals, when you jump on the second pedestal to choose what to give up.
I was usually starting from a savefile beyond that... :(
arcum42
That and -fPIC reserves the ebx register for its own use, and the plugin's compiled with -fPIC. gcc's actually nice enough to mention that if you set up a clobber list.
gregory....
Not sure why volatile is needed in this case. However eax and esi must be put in the clobber list. It is the third ':'. I thinks it will worth it to retest without the volatile but good clobber list. Volatile reduces optimization.
A good link that deals with asm&gcc (5.3):
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
arcum42
Actually, I forgot I'd added the volatile... ^_^
arcum42
It does work without it, though. (Fortunately, it's pretty easy to test.)
I'll take it out, and add the clobber lists.
gregory....
Not sure how must it work for mmx/sse register (logically the same, but we are in computer science ^^). A check of these asm code will be a good idea in my opinion.
plugins/zzogl-pg/opengl/zerogs.cpp:989: __asm__(
plugins/zzogl-pg/opengl/x86.cpp:438: __asm__(".intel_syntax noprefix\n"
plugins/zzogl-pg/opengl/x86.cpp:721: __asm__(".intel_syntax\n"
arcum42
Yeah, I was wondering about that myself. And x86-32.S uses ebx in a number of places, so if -fPIC's ever used on it, we should probably switch those over to other registers as well. (or does that only affect inline code?)
gregory....
good question. May be the reason of the regression when using -fPIC.
At a quick glance (need to check all functions), there is no impact. Because the code do 'a push ebx' at beginning and 'a pop ebx' at the end.
arcum42
That sounds promising, at least.
I also noticed that if you turn on -fPIC, you have to do this:
--- plugins/zzogl-pg/opengl/x86.cpp (revision 3253)
+++ plugins/zzogl-pg/opengl/x86.cpp (working copy)
@@ -462,7 +462,7 @@
"test edx, 15\n"
"jnz WriteUnaligned\n"
- "movdqa xmm7, [%[s_clut16mask]]\n" // saves upper 16 bits
+ "movdqa xmm7, [s_clut16mask]\n" // saves upper 16 bits
// have to save interlaced with the old data
"movdqa xmm4, [edx]\n"
@@ -503,7 +503,7 @@
// %edx is offset by 2
"sub edx, 2\n"
- "movdqa xmm7, [%[s_clut16mask2]]\n" // saves lower 16 bits
+ "movdqa xmm7, [[s_clut16mask2]]\n" // saves lower 16 bits
// have to save interlaced with the old data
"movdqa xmm4, [edx]\n"
wing...
THANKS! Now Klonoa 2 works! =)
arcum42
Cool. I figured with where that crash was that it would be affecting multiple games...
wing...
I still have a weird problem with SPU2-X on Ubuntu 10.04 32bit. Sound works kinda randomly, it works on some games (i.e. Marvel vs Capcom 2) and doesn't work on others (i.e. Klonoa 2). Even when it works, most of the time sound just stops for no apparent reason after a few minutes and when it happens I can't quit pcsx2 normaly, I have to kill it from the terminal.

Revision 3253

spu2-x/ZeroSPU2: Let's add in clobber lists, and take out volatile on the rng as
well...

Revision 3254

UI: Replace a lot of PCSX2's with pxGetAppName().
Jake.Stine
... crap. I forgot the c_str() stuff again. I really hate C++ sometimes.
pcsx2gu...
What's the gain with this? I don't think we're gonna change the emulator's name or translate it? :P

Revision 3255

Fix POD-hell.

Revision 3256

[cmake]
* add some check on libsparsehash
* print more informative message when a depency miss
arcum42
Mostly looks good. Suvbersion_FOUND, though?
gregory....
It was just to clean a little. Instead of do a test on Suvbersion_FOUND then set a variable equal to it. Just use the _found variable. In others side, we do not have a clear separation between cmakelist and searchforstuff.
gregory....
Honestly I'm a few mitigate by this change. If you feel better with previous version I will revert it back. Tell me.
arcum42
I'm fine with it. I'd just prefer that Subversion be spelled correctly... ^_^
gregory....
Oups..

Revision 3257

[cmake]: fix a stupid typo

Revision 3258

... and I didn't mean to remove the translation keys either... >_<

Revision 3259

zzogl-pg: Printing to the console now works. Fixed AA+/-. Misc. pcsx2: Took care
of two non-POD safe objects.
arcum42
Oops. Committed some debugging messages. I'll take care of it.
arcum42
It'll probably take a little while to balance out ZZOgl's messages a bit. Until then, the debug build will probably be rather spam-heavy...

Revision 3260

spu2-x: Remove some debugging messages I accidentally left in the last commit...

Revision 3261

SPU2-X:
- Double the audio output volume before sending it to the output modules. Was
way too quiet.
kristel...
Sorry for "miss posting", but...
Somewhere about 30 revisions ago (i think) been broken sound of weapon (when fighting) in Soul Calibur 3.
ZeroSPU2 work (sound there), but laggy.
Ami.Mizu...
Agreeing with OP.

Revision 3262

Yay, typo :p

Revision 3263

Better fix for Dawn of Mana problem; solves the constant recompilation as well.
Basically:
If a block begins with an illegal instruction then don't continue recompiling
the block, instead recompile code that prints an error message if block is taken
at execution time, and then exit execution if it is.
Dawn of Mana has a conditional branch which leads to a bunch of illegal
instructions, but the branch is never really taken at execution time.
The programmer either left this in for debugging, or possibly because real code
is swapped in-place of the illegal instructions at a later time.
laki...
Thank you for writing such a thorough explanation. I think little factoids like this about game programming are super interesting for some reason.
ramapcsx2
Great solution to this :)
azte...
congrats cottonvibbé.

Revision 3264

* Fixed fullscreen default-to-on behavior; the bug was caused by wxWidgets
being a bit ficle and expecting the window to be Shown prior to being made
fullscreen (even though the docs say ShowFullscreen() will show the window
itself).
* Much header file cleanup and used forward declarations to remove a lot of
excess includes; might help improve build times a wee bit.
* Preliminary hash-table implementation for the Game database.
Lothar...
30>k:\svn\pcsx2wx\pcsx2\windows\Win32.h(21) : fatal error C1083: Cannot open include file: 'HostGui.h': No such file or directory
andutrache
i:\development\project source\pcsx2\pcsx2\windows\Win32.h(21) : fatal error C1083: Cannot open include file: 'HostGui.h': No such file or directory
ryouarashi7
Same as above.
HostGui.h remains included in pcsx2/windows/Win32.h and pcsx2/System.cpp.
pcsx2/System.cpp is missing some definitions after deleting includes.
http://ryouarashi.ry.funpic.de/pcsx2-r3264.diff
makes it compile again. HEAD and r3264 (using Release SSE4) crash for me though, but this may be related to other revisions.
Platform: Win32 (OS: Win7 64bit), M$ Visual C++ Express 2008
Norikumi...
Same issue.
Also, on a related note, it seems DXSDK June 2010 doesn't come with ddraw.lib - if nothing can be done about that, maybe it should at least be mentioned in the wiki's compilation guide?
Norikumi...
check issue 755 please

Revision 3265

Apply eol-style:native to CMakeLists.txt files.

Revision 3266

microVU: Took me about 5 hours to figure out the problem, but finally fixed the
problem with Sly Cooper running at 1 fps with mVU...
The problem was that the game does a branch in a branch delay slot, and mVU
wasn't setting some pipeline state variable in this case correctly.
This in turn caused the pipeline state comparison for the block to always be
wrong, which meant a new block would always be recompiled whenever this specific
block was to be executed.
This ended up happening 1000's of times slowing down the game to 1 fps...
pcsx2gu...
Great job cotton :) Hope it affects more games too
cottonvibes
mmm probably not unless other games were running at 1fps :D
they also have to be doing branch in branch delay slots; but who knows.
kaboo...
nice !
animus...
Thanks, Cotton!
refraction
nice catch :) should help a few games even if only minor speed fixes.
eliotfur
Will you take a look at Issue747 then?.. There're not so many bugs left in mVU though... It'll be excellent to finish it off and start a new area of improvement... GSDX maybe?..
jfre1...
Patience young padawan
serban.a...
great job ! i finished teh game with super vu like a month ago since mvu gave me no more then a couple of fps
zantezuken
5hrs?
worth +1
pcsx2gu...
eliotfur: People are not swiss knives you know :P You can't just wake up one day and say, "hey I'll start coding some extremely complex Direct3D10/11 code, even though I need years of experience on 3D programming!". My point being, each person is capable of doing specific stuff well, you can't expect devs to jump from recompiler code to D3d10 code just because you want it :P
azte...
ha! branches can be trick like in cotton fix before this, +1.
linktoice
Excellent~

Revision 3267

Fix Linux compilation. (Possibly Windows as well...)
arcum42
Not tested in Windows, but I made sure to get rid of both includes of HostGui.h, including the one that only would have affected Windows.
arcum42
I did forget to change the cmake files, though. Oh well, either I'll get them in a commit or two, or gregory will get them.
wing...
It doesn't work on linux:
wingnux@wingnux-desktop ~/pcsx2-read-only/plugins $ cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release -DFORCE_INTERNAL_ALL=TRUE
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as
cmake_minimum_required(VERSION 2.8)
should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only/plugins
It indeed generates a Makefile but an invalid one =/ (tested on Ubuntu 10.04 32bit)
wing...
Just read your comment, arcum42. I'll be waiting for the update ;)
arcum42
Actually, looks like all that's missing in cmake is a header file, which isn't a big deal. I just checked and I think there are other cmake problems from a few revisions ago.
Those were gregorys changes, so he'll probably be the one to fix it, unless I happen to spot the issue in the next hour or two...
arcum42
OTOH, I might be looking at different changes. That was in the plugin directory. Does it build from the main directory?
wing...
No, it doesn't.
wingnux@wingnux-desktop ~/pcsx2-read-only $ cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release -DFORCE_INTERNAL_ALL=TRUE
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Enable the stripping by default in Release build !!!
-- Found GTK2_GTK: /usr/lib/libgtk-x11-2.0.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/libX11.so
-- Found ALSA: /usr/lib/libasound.so
-- Found BZip2: /usr/lib/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so
-- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so - found
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found wxWidgets: TRUE
-- Found ZLIB: /usr/lib/libz.so
-- Found A52: /usr/lib/liba52.so
-- Found Cg: /usr/lib/libCg.so;/usr/lib/libCgGL.so
-- Found PortAudio: /usr/lib/libportaudio.so
-- Found SoundTouch: /usr/lib/libSoundTouch.so
-- Found SparseHash: /usr/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only
(...)
[ 12%] Building C object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/support.c.o
cc1: warning: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/simd.cpp.o
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/tools.cpp.o
Linking CXX shared library ../../../bin/plugins/libCDVDiso.so
[ 13%] Built target CDVDiso
[ 13%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/x86emitter.cpp.o
Linking CXX static library libx86emitter.a
[ 13%] Built target x86emitter
make: *** [all] Error 2
gregory....
Just come back ^^. Need to test. However wingnux you must run cmake in the top dir not in the plugins dirs. I really need to find a good mecanism to check this.
wing...
Btw, could you please explain me why cmake lists my system's libraries even when I used "cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release -DFORCE_INTERNAL_ALL=TRUE"? Is it the default behavior or the compiling process isn't using the internal libraries as set?
"-- Found ZLIB: /usr/lib/libz.so
-- Found A52: /usr/lib/liba52.so
-- Found Cg: /usr/lib/libCg.so;/usr/lib/libCgGL.so
-- Found PortAudio: /usr/lib/libportaudio.so
-- Found SoundTouch: /usr/lib/libSoundTouch.so"
wing...
Gregory: Yeah, I know that, my bad... wasn't paying attention :P
But it still doesn't build from the top dir (as you can see on my previous posts)
gregory....
Ah, I'm really too slow to write message.
It just search them but do not use them so it is not an issue.
Note I'm just compile 3267 rev and it is ok on my side... Could you print the error and not the error summary please.
arcum42
What I actually usually do is create a "build" directory in the pcsx2 directory, and do "cmake .." from there. (when I use cmake. I usually build with codeblocks.).
I prefer doing it that way because I don't end up with build files all over the place...
wing...
Everything is fine now, thanks guys!
"[100%] [100%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Linux/LnxKeyCodes.cpp.o
Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Linux/LnxHostSys.cpp.o
Linking CXX executable ../bin/pcsx2
[100%] Built target pcsx2"
OTOH, could you look into the spu2x issue? Sometimes it works, sometimes it doesn't and when it works, sound just stops after a few minutes. When it happens I can't quit pcsx2 normaly, I have to kill it from the terminal or force quit via the gui.
gregory....
Ok, good.
I will update cmake to exit when using the wrong file and also will update the wiki for the out-source-build method.
wing...
Btw, there's a typo on the wiki:
"Optional: If you also want to use Zeydlitz's ZeroGS fork, ZZOgl, which I recommend, do the following: go into the plugin folder. Type: svn http://sanechka.spb.ru/svnroot/ruslan/zerogs/ zzogl"
You forgot the co/checkout command after "svn" ;)
arcum42
So I did. :(
One of the other reasons why I like building in a build directory, incidentally, is that I can delete all the build files and recreate them without thinking about it.
I think I picked up doing it that way from a tutorial on cmake somewhere...
gregory....
Yes it is the recommend method for using cmake because you can delete all cmake files.
f3r....
"PCSX2 0.9.7.r3267 - compiled on Jun 22 2010
Savestate version: 0x8b430000
x86-32 Init:
CPU vendor name = AuthenticAMD
FamilyID = 2
x86Family = AMD Athlon(tm) II X2 240 Processor
CPU speed = 2.807 ghz
Cores = 4 physical [2 logical]
x86PType = Standard OEM
x86Flags = 178bfbff 00802009
x86EFlags = efd3fbff
x86 Features Detected:
MMX.. SSE.. SSE2.. SSE3
MMX2 .. 3DNOW .. 3DNOW2.. SSE4a
SetLanguage is not implemented yet, using English.
SetLanguage is not implemented yet, using English.
Initializing PS2 virtual machine...
Allocating memory for recompilers...
Loading plugins...
Binding GS : E:\SVN\pcsx2-src\bin\plugins\GSdx-SSE2.dll
Windows 6.1.7600
ATI Radeon HD 4600 Series (8.14.1.6105)
Binding PAD : E:\SVN\pcsx2-src\bin\plugins\LilyPad.dll
Binding SPU2 : E:\SVN\pcsx2-src\bin\plugins\SPU2-X.dll
Binding CDVD : E:\SVN\pcsx2-src\bin\plugins\cdvdGigaherz.dll
Binding USB : E:\SVN\pcsx2-src\bin\plugins\USBnull.dll
Binding FW : E:\SVN\pcsx2-src\bin\plugins\FWnull.dll
Binding DEV9 : E:\SVN\pcsx2-src\bin\plugins\DEV9null.dll
Plugins loaded successfully.
Initializing plugins...
Init GS
Windows 6.1.7600
ATI Radeon HD 4600 Series (8.14.1.6105)
Init PAD
Init SPU2
Init CDVD
Init USB
Init FW
Init DEV9
Plugins initialized successfully.
Opening plugins...
Opening GS"
The Emulator stuck here in this revision, freezes the application when I start the emulation, the GSDX window doesn't even shows!
shadowladyngemu
Same as f3r.DLK, compiles unlike r3266 but gets stuck there.
arcum42
Hmmm... Marking a commit -1 means that you disapprove of the commit. So this commit being -1 means that someone disapproves of pcsx2 being compilable.
*sigh*
f3r....
I -1 'cause this commit broke funcionality, it compile just fine without any errors, but was unplayable, so I couldn't test the changes! But I'll accept your advice. ;)
f3r....
And sorry for -1 this commit, it was the previous commit that broke things but this one was compilable, so I commented in the revision that compiled. I'm not a advanced programmer like those who commit here but I understand the basic of programming and I just compile and test almost every changes 'cause I trying to understand better the this code in particular! Sorry for -1 in here, again!! Keep up the good work...
arcum42
That's all right, just next time I'd judge how likely a commit is to actually cause the issue you're reporting. 90% of this commit was deleting or adding headers, and the other change isn't anything that could possibly affect the GS plugin. (And in fact, is only used in the game database loader, iirc.)
Where as if you look at the commit that broke things, it directly says in it that it was supposed to fix fullscreen, which would be directly related to the break you were experiencing...
(And I'm just waking up, and I'm not a morning person. So if I came off as irritable, that's a lot of it... ^_^ )
arcum42
I'm assuming that r3273 would have fixed the issue, btw.
f3r....
Once again I'm sorry, I didn't explain very well when I said that was the previous commit that broke things for me, was not YOUR last commit but the r3266 commit, that is the commit before this one. Won't happen again! :)
btw I'm not criticizing nobody, I was just reporting an issue, and now I know that this isn't the place for it, my bad...

Revision 3268

spu2-x/pcsx2: Fix the path used for wav files. (Hack; I'll fix it properly
later.). Add a missing header into the cmake build.
serban.a...
does this fix any game with sund problems?
arcum42
It fixes one of the debug options, actually. If you turned it on, instead of creating wav files with names like spu2x-Core<something>.wav in the logs file, it was creating files named logs\spu2x-Core<something>.wav in the pcsx2 folder.
I happened to turn on that option and saw a bunch of files suddenly appear in the pcsx2 folder, so I figured I'd better take care of it. ^_^
Nothing game-specific, though.
serban.a...
i understand:)
gregory....
Similar stuff, that will gains to use the setLogsDir api is
plugins/spu2-x/src/Decoder.cpp: fSpdifDump = fopen("logs/spdif.dat","wb");
plugins/spu2-x/src/Debug.cpp: dump = fopen( "logs/effects.txt", "wt" );

Revision 3269

[cmake]:
* Print a fatal_error when users do not source the good CMakeLists file.
* Do not search system libraries if the user force the internal libraries
wing...
"wingnux@wingnux-desktop ~/pcsx2-read-only/svn_build $ cmake ../CMakeLists.txt -DCMAKE_BUILD_TYPE=Release -DFORCE_INTERNAL_ALL=TRUE
-- Enable the stripping by default in Release build !!!
-- Use internal pcsx2 zlib library
-- Use internal pcsx2 SoundTouch library
-- Skip build of spu2-x: miss some dependencies
-- check these libraries -> soundtouch (>=1.5), alsa, portaudio (>=1.9), a52 (>= 0.7.4), pcsx2 common libs
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only"
Shouldn't it build spu2-x since it uses pcsx2's 3rd party libraries?
wing...
It seems to be no difference based on the cmake options:
"wingnux@wingnux-desktop ~/pcsx2-read-only/svn_build $ cmake ../CMakeLists.txt -DCMAKE_BUILD_TYPE=Release
-- Enable the stripping by default in Release build !!!
-- Use internal pcsx2 zlib library
-- Use internal pcsx2 SoundTouch library
-- Skip build of spu2-x: miss some dependencies
-- check these libraries -> soundtouch (>=1.5), alsa, portaudio (>=1.9), a52 (>= 0.7.4), pcsx2 common libs
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only
wingnux@wingnux-desktop ~/pcsx2-read-only/svn_build $ cmake ../CMakeLists.txt
-- Enable the stripping by default in Release build !!!
-- Use internal pcsx2 zlib library
-- Use internal pcsx2 SoundTouch library
-- Skip build of spu2-x: miss some dependencies
-- check these libraries -> soundtouch (>=1.5), alsa, portaudio (>=1.9), a52 (>= 0.7.4), pcsx2 common libs
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only"
gregory....
Hum, my change are minor. I hope I did not do a stupid things agains...
For information only soundtouch and zlib are provided by pcsx2. The purpose it to use the system library. In the futur, we plan to drop 3rparty for linux.
Could you check that all dependency are ok (except soundtouch because it use 3rdparty one). Thanks
gregory....
Ok I found it. I miss the line... Do not know why it was ok my system.
wing...
Everything is installed and up-to-date, libsoundtouch is 1.3 tough (latest version on ubuntu/debion).

Revision 3270

GSdx: Remove ddraw.h references, which were long since obsolete anyway.
Jake.Stine
Fixes June DXSDK compilation errors, hopefully.
kristel...
GSdx SS4; ZeroGS; CDVDolio; xpad -- LINK : fatal error LNK1181: cannot open input file 'ddraw.lib'
DXSDK June 2010
Xtreme2d...
I can confirm that at least four projects fail to compile without errors even after this commit due to ddraw.lib or some other linker error. As far as I can remember these are a few of the affected projects.
CDVDolio
Xpad
Gsdx
There one or two more projects that are affected but I can't remember what they are right now.

Revision 3271

[wiki linux]
* update cmake command.

Revision 3272

[cmake]
* Fix again a stupid things...
wing...
wingnux@wingnux-desktop ~/pcsx2-read-only $ cmake CMakeLists.txt -DCMAKE_BUILD_TYPE=Release -DFORCE_INTERNAL_ALL=TRUE
-- Enable the stripping by default in Release build !!!
-- Use internal pcsx2 zlib library
-- Use internal pcsx2 SoundTouch library
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wingnux/pcsx2-read-only
(,,,)
Linking CXX executable ../bin/pcsx2
[100%] Built target pcsx2
Everything is fine again. Thanks!
Jake.Stine
Yeah, join the club. I've been totally on a role with bad commits lately myself. >_<
wing...
wingnux@wingnux-desktop ~/jogos/pcsx2 $ ./pcsx2
Interface is initializing. Entering Pcsx2App::OnInit!
Begin parsing commandline...
ZZogl-PG: Calling GSinit.
ZZogl-PG: GSinit finished.
ZZogl-PG: Calling GSopen.
ZZogl-PG: Creating ZZOgl window.
ZZogl-PG: Got Doublebuffered Visual!
ZZogl-PG: glX-Version 1.4
ZZogl-PG: XF86VidModeExtension-Version 2.2.
ZZogl-PG: Resolution 1280x960.
ZZogl-PG: Depth 24
ZZogl-PG: You have Direct Rendering!
ZZogl-PG: Using multitexturing.
ZZogl-PG: Maximum texture size is 8192 for Tex_2d and 8192 for Tex_NV.
ZZogl-PG: Disabling MRT depth writing.
ZZogl-PG: CRC = 0
ZZogl-PG: /home/wingnux/pcsx2-read-only/plugins/zzogl-pg/opengl/ZZoglCreate.cpp:787: gl error GL_INVALID_ENUM(0x500)
ZZogl-PG: Error! has no images/buffers attached!
ZZogl-PG: Initialization successful.
ZZogl-PG: Disabling MRT depth writing.
ZZogl-PG: CRC = 0
* SPU2-X: Enumerating PortAudio devices: *** Device 0: 'HDA ATI SB: VT1708S Analog (hw:0,0)' (ALSA)
*** Device 1: 'HDA ATI SB: VT1708S Digital (hw:0,1)' (ALSA)
*** Device 2: 'USB Web-CAM  : USB Audio (hw:1,0)' (ALSA)
*** Device 3: 'front' (ALSA)
*** Device 4: 'surround40' (ALSA)
*** Device 5: 'surround41' (ALSA)
*** Device 6: 'surround50' (ALSA)
*** Device 7: 'surround51' (ALSA)
*** Device 8: 'surround71' (ALSA)
*** Device 9: 'iec958' (ALSA)
*** Device 10: 'spdif' (ALSA)
*** Device 11: 'default' (ALSA)
*** Device 12: 'dmix' (ALSA)
*** Device 13: '/dev/dsp' (OSS)
*** Device 14: '/dev/dsp1' (OSS)
Zogl-PG: Disabling MRT depth writing.
ZZogl-PG: CRC = 69b2071c
^[[?62;9;cKilled
wingnux@wingnux-desktop ~/jogos/pcsx2 $ 62;9;c
spu2-x still stops playing after a minute or so, it's driving me nuts!
gregory....
Understand that to fix a bug, we need to reproduce it. Then with a lots of free time understand what is going wrong. Then find a way to fix it.
Just 2 free advices. Delete your pcsx2 dir and reconfigure everything (not just spu2x). In my case, I manually edit the spu2x ini to change HostApi to alsa.
wing...
Thanks for the tip on the ini file, I'd completely forgotten about it! My portaudio block is like this:
"[PORTAUDIO]
HostApi=Unknown
Device=default
Wasapi_Exclusive_Mode=0"
I change Unknown to Alsa, save but when I run pcsx2 it reverts to Unknown. Anyway, I'm gonna try to figure it out myself, thanks for the help!

Revision 3273

Fully implement hash-based database lookup. Fix some bugs that caused startup
crashes in previous revisions of mine.

Revision 3274

Summary of fixes
Games
- Resident Evil Dead Aim flickering graphics fixed.
- Flatout games should now boot everytime (instead of randomly)
- Sega Superstar Tennis flashing fixed
- Destruction Derby graphics fixed (NTSC confirmed, PAL unsure)
- Tenchu Fatal Shadows flickering textures fixed, Issue 748
- Spyro Hero's Tail should boot again, Issue 746
General Info
- General reworking of the GS paths with all paths prioritizing more correctly.
- XGKICK can stall if another GS transfer is in progress
- Major reworking of Path3 masking, could still be combined with normal Path3
transfers, but lets get it working first :P
- Taken in to account a few conditions which could have caused VIF to lock
up/crash when stalling on ends.
- Unreversed GIF and SPR and VIF so its the normal way round
- all DMA paths should now resume correctly after being stopped by hardware
- GIF FIFO now actually transfers stuff :P
- VIF CMD's simulated by the length of the interrupts at the end.
Phew, i think that's everything :S
kaboo...
wow that's a lot of work congrats
shadowladyngemu
Nice one, Buffy the Vampire Slayer - Chaos Bleeds (U) boots now (narrowing my not even ingame games to 1 :P) and it actually looks nice which it hasn't for a while and even dissapearing/flicker characters/objects don't happen anymore which I don't even remember if it ever didn't have that.
Only problem with that game now is that it's spamming this in the console but the game itself looks perfect so... very nice :P
Vif1: Unknown VifCmd! [12]
Vif1: Unknown VifCmd! [12]
Vif1: Unknown VifCmd! [12]
shadowladyngemu
Oh hmmm... seems the FFX FMV gamefix is freezing the FMVs on it now...
Wagnar...
Wag the fix for Bleach in the gs.cpp intended for the bankai animation crash? because if it is, its not fixed.
Wagnar...
nvm... I saw the "commented out" thing... my bad
shadowladyngemu
There seems to be some minimal SPS on some games.
shadowladyngemu
uh nevermind, found a game where it isn't so minimal, Ridge Racer V:
http://img84.imageshack.us/img84/7946/56112255.jpg
kristel...
indeed Tenchu looking good
now another problem - disappearing sound
kristel...
"Champions: Return to Arms" still look bad
http://j.imagehost.org/0705/ChampionsRtA.jpg
kristel...
"Soul Calibur 3" almost fully broken: bad, wrong placed textures (and spikes), partial disappearing sound (
serban.a...
sphynx cursed mummy , batman begins and buffy boots again . wow !!!
serban.a...
also it seems like crash mind over mutant and crash of titans dont show vif errors in console anymore ,which caused the game to freeze randomly
wespipe...
I can confirm the Soul caliber 2 issue. I also believe this commit broke NFL Blitz textures. Alot of textures just aren't appearing on the players - you can see through body parts depending on the camera angle (very noticeable though). This was fine on r3263 and broke by r3276 - but looking at the rest of the commits in that period, this is the most likely culprit, especially given how others are seeing new graphic problems and Soul Caliber gfx are screwed up now.
Congrats on getting some new stuff going, but hopefully it can be cleaned up some and have the older games retain their gfx functionality.
refraction
Cool, i thought there would be issues, i will look in to and fix those :) glad there are other improvements too mind!
serban.a...
seems like refraction understood wrong so here it is again
sphynx cursed mummy now boots and goes ingame and its playable
buffy vampire slayer now boots and goes ingame and its playable
batman begins now boots and goes blackscreen after the intro
konaj...
this revision broke some Final Fantasy 7 Dirge of ceberus cutscenes,
last working in r3273
andutrache
this rev also broke Sega Ages 2500 Series Vol.32 - Phantasy Star it now hangs when opening some menus or some character says something (random hangs).

Revision 3275

Removed the TestOnly parameter on the MTGS packet sender, and replaced it with a
direct call to GIFPath_ParseTag. Simpler, more efficient, and avoids constant
assertion failures when running PCSX2 in debug mode. :D
refraction
wow, do i feel the muppet ;p so obvious i SHOULD have thought of it lol

Revision 3276

Fix patch application, which I broke in r3273. :)
DevNote: Adding SysForwardDefs.h, which I'm going to use for forward declaring
a bunch of PCSX2 classes and other simple dependency-free include content. This
is the SysCore version of AppForwardDefs, and hopefully helps minimize header
file hell.

Revision 3277

GSdx: Fix cases where DX9 cards detected as having DX10/11 under Windows 7.
Changed the device selector to display either DX10 or DX11 depending on the
supposed feature set availability reported by drivers/dx.
chdon...
I have gtx470 with driver 258.49 (64bit).when I use gsdx 3277 sse4.1,i can only choose directx3d 10 no dx3d 11,and if i choose dx3d 9 when playing ffx,the pcsx(r3281) crash
danialho...
258.49 doesn't have D3D11 apparently.

Revision 3278

Fix for F9 causing errant fullscreen/windowed mode flips.
shadowladyngemu
Oh great, didn't notice it was fixed now :P

Revision 3279

[cmake]
* Add a new header
* Check that libjpeg is installed for zzogl

Revision 3280

We had savestate breaking changes, so increase the state version.

Revision 3281

Add missing GIF Path buffers to the savestate (untested code); buddy commit to
the prev version upgrade -- just a few mins late. ;)

Revision 3282

Should solve some off the graphical issues from r3274
ramapcsx2
Yep, Soul Calibur, Harry Potter and SST are fine now :)
kristel...
yes, Soul Calibur 3 fine, but broken sound (from spu2-x) and major slowdown from ~55fps to ~33fps (non virtual fps - i mean real)
"champion rta" - still broken
Gauntlet Seven Sorrows - flying fine from 3274, i think (been broken on hardware)
refraction
Yeh the sound issue is spu2-x, not sure where the slowdown comes from, some people claimed its from the SSE4 instructions that were added to microvu
refraction
Kristeldux: Can you start a new issue for that game and state when it was broken, what is wrong with it etc?
ramapcsx2
refraction:
No need for it. It got slow with the new buffer, so the last version it worked nice and fast was r3273.
We might have to make the transfer queue faster.
refraction
Kristel recon'd it didnt work in 3273..

Revision 3283

Fix the fix that fixes the ffx video fix... fixed :p
Line...
Oh my.... I don't like FFX but I like your regular fix fix fix fix stuff ! =D
Thank you !!!
kristel...
,-) ...as i...

Revision 3284

[cmake] Fix a long standing typo

Revision 3285

Game fixes:
- Batman Returns Issue 709 .
- Fixed flashing in Sega Superstars Tennis.
- Clawed back some of the speed loss from the XGKick delays.
Detailed changes:
- CALL Tag DMAs that contain invalid next tag addresses ignore the call (Batman
started sending corrupt information from invalid addresses)
- VU1 now flushes any pending transfers if it's trying to send another and
doesnt process any packed/list regs
- Batman was checking for OPH to be high, this was a timing thing, something id
completely got rid of accidently (same for APATH)
- XGKick will no longer queue if PATH3 is interrupted
refraction
oops, i meant batman begins ;p
Marco.Hillenbrand
I guess OutputDirectory="D:\Files\ps2\Pcsx2\$(PcsxSubsection)" wasn't meant to be in the project file
refraction
crap lol ill revert that ;p
gladiato...
I'll try to check Batman as soon as i got time.
But positive anyway for the effort.
:)
weimingzhi
Tenchu: Fatal Shadows is broken again with this revision but with a different issue.
weimingzhi
only supervu is broken... microvu is okay.

Revision 3286

Nothing to see here, i wasn't being lazy in any way shape or form with my
awkward ways of testing the emu...

Revision 3287

Apologies... Monkey problems, I'm sure you understand.

Revision 3288

GameDB: Add PAL edition of Valkyrie Profile 2.

Revision 3289

* Fixing automatic patch application (again!) -- random crashes could occur on
some games due to in-execution recompiler resets when gamefix options were
changed by the GameDB.
* Implemented --gamefixes to the command line.
pcsx2gu...
Triace game fix working again gj ;)

Revision 3290

* Cmdline: Added warnings when opening settings panels with command line
overrides enabled, and force-disable overrides when new settings are manually
applied.
* GameDB: Remove the game database from the Settings panel, since it's kinda
slow still and it started to drive me nuts. I haven't added another menu option
to open it up yet (it will be in its own dialog), but I will soon.

Revision 3291

GSdx: minor fixes to movie recording.

Revision 3292

UI:
* Fix for random crashes when recording movies (F12). It still doesn't seem
100% stable, but it's a heckuva lot better than before.
* Log options dialog behavior bugfixes.
* Cleaned out some old hacks for handling hotkeys from the GS window, and
implemented proper use of GSwindow-local hotkey mappings vs. global hotket
mappings.
cottonvibes
yeh the F12 thing isn't freezing up the gui anymore; doesn't always bring up the dialog box when you press F12 after canceling the first time; but at least its not causing any unresponsiveness problems like it did before.
good job
shadowladyngemu
Getting this from FrameForGS.cpp
Kbd Accelerator 'F9' is mapped multiple times.
'Command Sys_RenderswitchToggle' is being replaced by '祓彳敒摮牥睳瑩档潔杧敬'

Revision 3293

Fixed up lemmings, was a condition i never thought about, stupid Path3 masking..

Revision 3294

SPU2-X: Double IRQ prevention found on real hardware. Only affects developers
who didn't read the SDK documentation properly, like me. Nothing fixed as far
as we know.

Revision 3295

Major header file house cleaning! Should speed up recompilation times by a few
percents.
Linux note: There's a chance as usual that this might break something in Linux
because Linux and Windows STL headers have different dependencies. Namely
<algorithm> might still be needed in on some of the PrecompiledHeaders. If so,
just re-add it and commit, and make a note: // yes GCC really needs this one :)
wing...
Yeap, it indeed breaks linux compilation:
wingnux@sabayon ~/pcsx2-read-only $ make -j3
[ 0%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/AAFilter.cpp.o
[ 0%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/3dnow.cpp.o
[ 0%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/AlignedMalloc.cpp.o
[ 0%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/FIFOSampleBuffer.cpp.o
[ 1%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/FIRFilter.cpp.o
[ 2%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/CheckedStaticBox.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/FIRFilter.cpp: In static member function ‘static void* soundtouch::FIRFilter::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/FIRFilter.cpp:226: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 2%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/RateTransposer.cpp.o
[ 2%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/cpudetect.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/RateTransposer.cpp: In static member function ‘static void* soundtouch::RateTransposer::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/RateTransposer.cpp:112: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 2%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/SoundTouch.cpp.o
[ 3%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/fpu.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/TDStretch.cpp.o
[ 4%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/groups.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/TDStretch.cpp: In static member function ‘static void* soundtouch::TDStretch::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/TDStretch.cpp:744: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/WavFile.cpp.o
[ 4%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/jmp.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/cpu_detect_x86_gcc.cpp.o
[ 5%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/mmx_optimized.cpp.o
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy.cpp.o
[ 6%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/sse_optimized.cpp.o
Linking CXX static library libpcsx2_SoundTouch.a
[ 6%] Built target pcsx2_SoundTouch
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy_sse.cpp.o
[ 6%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Console.cpp.o
[ 6%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/EventSource.cpp.o
[ 6%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Exceptions.cpp.o
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/LnxCpuDetect.cpp.o
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/movs.cpp.o
[ 7%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/FastFormatString.cpp.o
[ 8%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/PrecompiledHeader.cpp.o
[ 8%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/simd.cpp.o
[ 8%] [ 8%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/IniInterface.cpp.o
Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/HashTools.cpp.o
[ 8%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/tools.cpp.o
In file included from /home/wingnux/pcsx2-read-only/common/include/Utilities/IniInterface.h:18,
from /home/wingnux/pcsx2-read-only/common/src/Utilities/IniInterface.cpp:17:
/home/wingnux/pcsx2-read-only/common/include/Utilities/FixedPointTypes.h: In member function ‘wxString FixedInt<Precision>::ToString(int) const’:
/home/wingnux/pcsx2-read-only/common/include/Utilities/FixedPointTypes.h:168: error: there are no arguments to ‘pow’ that depend on a template parameter, so a declaration of ‘pow’ must be available
/home/wingnux/pcsx2-read-only/common/include/Utilities/FixedPointTypes.h:168: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/wingnux/pcsx2-read-only/common/include/Utilities/FixedPointTypes.h: In static member function ‘static bool FixedInt<Precision>::TryFromString(FixedInt<Precision>&, const wxString&)’:
/home/wingnux/pcsx2-read-only/common/include/Utilities/FixedPointTypes.h:211: error: there are no arguments to ‘pow’ that depend on a template parameter, so a declaration of ‘pow’ must be available
[ 9%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Linux/LnxHostSys.cpp.o
make[2]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/IniInterface.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 10%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/x86emitter.cpp.o
[ 10%] Building CXX object tools/bin2cpp/CMakeFiles/bin2cpp.dir/bin2cpp.cpp.o
make[1]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Linking CXX executable ../bin/bin2cpp
Linking CXX static library libx86emitter.a
[ 10%] [ 10%] Built target bin2cpp
Built target x86emitter
make: *** [all] Error 2
arcum42
Yeah, FixedPointTypes.h needs #include <math.h>, and sVU_zerorec.cpp needs #include <algorithm>. I'll be adding them in fairly soon.
Jake.Stine
Ok, go ahead. I have a better fix in mind for FixedPointTypes, but it'll take me a half hour or more to prep it, I think.
arcum42
Done. Those two headers were needed for the pow() function and find() function, respectively, btw.

Revision 3296

GSdx and some other plugins no one cares about: remove ddraw.lib.

Revision 3297

GameDB:
* Add SkipMpeg for Guilty Gear X Accent Core Plus ( Issue 761 ).
* Set SVN EOL props to LF for the GameIndex.dbf file, since that's what PCSX2
uses when it generates and/or modifies the file.

Revision 3298

microVU:
- Fixed some logic for flag propagation. Its a 3% speedup in the titlescreen of
GoW (68fps vs 66fps).
- Added a new mVU speedhack which should be very safe. Its a 7% speedup over the
new code (73fps vs 68fps), so a 10% speedup over the last revision (73fps vs
66fps).
What the speedhack does:
The VUs have 3 separate flags: Status, Mac, and Clip flags.
Due to the VU's pipeline, there can be up to 4 live instances of these flags
during emulation.
The tricky part arises when you're recompiling the end of a block (after a
branch), then you must predict if another block will need older flag instances.
These can be accurately predicted in all cases except for indirect jumps,
because the destination block is unknown at recompile time.
In this case mVU assumes the worst-case scenario, that all flag instances will
be needed, so it performs some flag shuffling to prep the flag instances in such
a way that the next block can read them nicely.
What the new "Block Hack" does, is it assumes that the old flag instances won't
be needed, which eliminates a lot of flag shuffling causing a speedup.
Currently the Block Hack plays it very safe, in the case of the current block
ending with an indirect jump, it still assumes the flag instances will be needed
for the subsequent block, so it does nothing different there;
The times the speedhack actually does something is when your current block ends
with a branch, and then the following block ends with an indirect jump (or
similar cases). In these cases it would be very odd for future blocks to care
about old flag instances from 2-blocks ago, which is why this speed hack should
be very safe.
cottonvibes
mmm maybe should've just made a dev blog about this lol
drkIIRaziel
Sounds nice :D
eliotfur
Nice one... I like it when changelogs have some details inside...
wing...
Does it affect other games?
laki...
A big heck yeah for new speedhacks and detailed explanations.
romulux_...
Very nice, I've been meaning to play GOW 2 again, let's see how this new hack fares against SuperVU +2
azte...
lots of details are good, no need of blog. ;)
zantezuken
Can be very nice speedhack, too bad current revision is way tooo slow compare to 3200.

Revision 3299

microVU:
- Fixed a possible infinite recursion problem from my last commit (Fixes Dynasty
Warriors 4 crashing...)
eliotfur
Hi, cottonvibes:
I've been playing with mVU recently to check for "microVU0: Possible infinite compiling loop!" problem in "Beyond Good and Evil"... I've increased memory size for VU0 in microVU.cpp... Now I don't get that message, but i get a bunch of "unknown opcode" errors... Please, can you tell if it's pure nonsense or some unimplemented opcodes indeed...
microVU0: Unknown Micro VU opcode called (3f800000) [14a0]
microVU0: Unknown Micro VU opcode called (3d99999a) [14a8]
microVU0: Unknown Micro VU opcode called (3cf8e38e) [14b0]
microVU0: Unknown Micro VU opcode called (3c8e2762) [14b8]
microVU0: Unknown Micro VU opcode called (3c3d43c4) [14c0]
microVU0: Unknown Micro VU opcode called (3c09779e) [14c8]
microVU0: Unknown Micro VU opcode called (3bd3431d) [14d0]
microVU0: Unknown Micro VU opcode called (3ba8dd18) [14d8]
cottonvibes
i don't have that game; but do you get any errors when you use Super VU as VU0?
eliotfur
Yes, I get "inf vu0 prog" several times... I guess it's the same as "Possible infinite compiling loop!"
cottonvibes
the problem is most-likely bad data sent to the VU's then; i'll see if i can get the game to test myself though...
eliotfur
Okay... I can add that GSDX has its own problems with the game in HW mode, but works in SW well (but slow)...
Current revision has missing models both with mVU0 and sVU0 (see the intro)
When I increase VU0 memory and get "unknown opcode" errors, those models are present, but have strong SPS...
eliotfur
You're right... I'm happy to have a lot of old revisions... :)
The bug was introduced long ago in r2766... VU0 works fine in r2760... Every revision after that the game reports "Possible infinite compiling loop!"... VIF0 is to blame...
refraction
Yeh, sorry about that ;p

Revision 3300

pcsx2: Added back a few headers. A non POD-safe argument was fixed. Commented
out some unused variables. And added a few helper functions for later.
arcum42
Fixed compilation under Linux (in Code::Blocks, at least), btw.
gregory....
Note: cmake build is also fine in this revision.
wing...
Thanks!
arcum42
np. I figured it probably would be fine in cmake, but you never know...

Revision 3301

pcsx2: Rearrange dmaGetAddr a bit.

Revision 3302

Refactoring: Split FixedPointTypes.h into an h/inl setup.

Revision 3303

Get Linux to compile again.
Jake.Stine
Sigh, there is a proper fix for this.

Revision 3304

Re-re-re-fix linux/gcc >_< (all that was actually missing was a 'struct'
keyword .. grr msvc being smart and auto-deducing the type for me)

Revision 3305

- Optimized the ParseTag function a little and made a quick one for delayed
PATH1 transfers.
- Also adjusted some internal interrupt timers so they don't interrupt so often
(when they don't really need to)
All in all you should have a few extra FPS over revisions following r3274
eliotfur
Maybe you should reconsider your Vif0 optimization from r2766 too... It has broke "Rayman Raving Rabbids" and "Beyond Good and Evil" at least (I know they're not playable anyway)... Look at comments to r3299 too...
refraction
Eliotfur can you email me on refraction [at] gmail dot com please.
gregory....
Hi, for information there is also a regression on grandia 3 with this commit (first bad 3305 (also bad 3313, 3328))
symptom: screen freeze (sound still playing) during the play. Seems to only affect some places.
Unfortunately there is no relevant information in log file. I can still send you a memory card near a zone that trig the issue.
Note I used zzogl (linux version).

Revision 3306

ioman hle: ps2link host: implementation allows writing files, not just reading.
Also it's the only way we have to get binary data out of pcsx2, when running ps2
test apps.

Revision 3307

pcsx2: A bit of cleanup.

Revision 3308

[No log message]
Jake.Stine
Damnit. Log message missing, and if I use tsvn to change it, it could very well nuke all of google code's comments.
Anyway, this is a nice big change!
* I removed GS register writes from the MTGS ringbuffer. Only GIFtag data and Vsyncs are transferred to the GS now.
* Added better support for SIGNAL and CSR!
* Switched over to using the tGS_CSR type created by arcum; associated code cleanups applied as well.
ramapcsx2
Soul Calibur 3 doesn't like this and black screens.
The game runs for a while still, but crashes later on.
ramapcsx2
A lot of Path 3 using games hate it. Destruction Derby and the Persona engine as well.
refraction
well, you can fix Destruction Derby this time ;p
ramapcsx2
Fixed in 3312.

Revision 3309

Increase vu0 dynarec cache to 8mb, fixes constant recompilation problems in
Ratchet and Clank...
Thanks to rama for figuring this out.

Revision 3310

(minor optimization) Let's not even use the GS plugin's Path1 or Path3 parsers
anymore. All GIFtags can be sent safely through the GS's hack-free Path2
instead.
shadowladyngemu
Major mem leak going in game in a couple games... actually the first 2 I tried... didn't want to try more :P
refraction
Wouldnt it have been better to wait for this so partial transfers are handled first? theres thousands of times path3 could be interrupted (even without my intermediate transfers), this could be very dangerous as pcsx2 is.
refraction
also the better solution would have been just to remove the hacks from gsdx as they arent required anymore, any of them ;p
Jake.Stine
I'd also like to point out that what I did in this commit is equivalent to removing the hacks from GSdx, since I'm just calling the unhacked path. PCSX2 still runs path-specific code in GIFpath_Parse. I did not remove that.
ramapcsx2
Regressions from this fixed in r3313.

Revision 3311

microVU: changed vu0 rec-cache to 10mb... seems rachet and clank games need this
amount when not using mVU speedhacks (the speedhacks emit less code-gen, so it
makes games need less rec-cache amount)

Revision 3312

Temp fix for Soul Calibur 3, possibly most other broken games.
Zeydl...
Persona 4 is still brocken,

Revision 3313

Revert some changes from r3310 -- I forgot that the GS plugin still needs to
manage three separate instances of the GIFpath until the MTGS packet reordering
system is finished later. (this was my attempt to try and make this change more
baby-stepish but it failed).
ramapcsx2
Seems to have fixed all new issues.
Jake.Stine
Yeah I really thought that would be a simple 1-step process to going toward the MTGS packet reordering system. But I forgot that packets coming out of pcsx2 are still partials. My bad. >_<
The SIGNAL part bothers me more though. I'll have to try and see what the deal is there.
shadowladyngemu
yey no more mem leak for me :P
refraction
Thats better :) gonna be a one fell swoop job changing that :)

Revision 3314

Since we're not using MMX registers to hold EE data in the recompilers anymore,
we should be safe to exclude them from register saving / storing.
Pretty big speedup in games with lots of GIF activity (Soul Calibur 3 goes from
40 to 48fps).
romulux_...
Speedup is always welcomed, nice job!
ramapcsx2
Guess I better not mention that we lost a ton of fps earlier though then?
Oh. Whops. :p

Revision 3315

SPU2-X:
Revert all reverb area tryouts, caused bleeps in many games (breaking Ys and
that shonen jump game, but oh well).
kristel...
Sound Effects in Soul Calibur 3 are back... (for me)
----------
sorry for off-topic... I play "Aeon Flux" and console shows that...
**WARNING** receiveSpuCoreStatus - core 1 voice 2 has invalid nax 5010, address range = ae3c0...af2b0
**WARNING** receiveSpuCoreStatus - core 1 voice 12 has invalid nax 5010, address range = 9fe80...a0d70
**WARNING** receiveSpuCoreStatus - core 1 voice 18 has invalid nax c9a40, address range = c7d40...c9a40
**WARNING** receiveSpuCoreStatus - core 1 voice 23 has invalid nax 5010, address range = cb8c0...cd550
**WARNING** receiveSpuCoreStatus - core 1 voice 19 has invalid nax 5010, address range = eb0c0...ecae0
**WARNING** receiveSpuCoreStatus - core 1 voice 20 has invalid nax 5010, address range = c7d40...c9a40
**WARNING** receiveSpuCoreStatus - core 0 voice 9 has invalid nax 86420, address range = 79f40...86420
...and so on...
Game almost playable... - a little speedup, about 10 fps, will be great - because it game of action.

Revision 3316

Implemented a better "host:" rewrite system, which takes the path of the elf
being loaded as the root of the virtual "host:". This is the same behaviour as
pc-side ps2link clients. The code could probably be cleaned up a lot or made
more configurable, if someone wants to improve it.

Revision 3317

I forgot to change one line. Also took the time to set a toggle for this other
feature.

Revision 3318

SPU2-X:
- Some preliminary work on better resets. Also some commented out yet changes.
Jake.Stine
Yay. I'll help work on cleaning this up tomorrow-ish.
wordmanw...
Was modifying the values of EffectsStartA/EffectEndA intentional? (they were 0xEFFF8/0xFFFF8 before, 0xFFFF8/0xEFFF8 now)
ramapcsx2
Good spotting!
But okay, this one shouldn't matter, the ps2 sdlib does it as well :p

Revision 3319

zzogl-pg: Assorted cleanup. Added ZZoglCRTC.h, to clean up some clutter in
ZZoglCRTC.cpp.

Revision 3320

Correct handling of FINISH events on the GIFpath; the FINISH is not posted until
*after* all GIFpaths have been drained (nloop is 0 and EOP is 1). This fixes
Ys6 bootup hangs.
Note: I'm reasonably sure this is the correct implementation for FINISH.
There's a *good* chance this could cause regressions in some other games that
use PATH3 or other DMA tricks. This will likely be due to hacks or bugs in the
GIF/VIF dma code, and not FINISH. That is, we've been catering to a broken
FINISH tag this entire time -- basically telling games the GS paths are clear
when they're not. ;)
shadowladyngemu
X-men Legends, Metal Gear 2 (demo disc at least) not booting anymore, didn't check many games tho.
azte...
good thing for ys 6, i hope you find the source of the problem for the other games. :)
infelp...
Tales of the abyss is broken on this. First battle i got into. EE shot up to 100%. FPS dropped to 18 and the game's graphics froze, music still played.

Revision 3321

... oops. Dunno how that got in there. (fixes God of War, improves SC3 ..
though SC3 is still missing quite a bit of geometry for some reason).
shadowladyngemu
The games I said in r3320 that didn't boot anymore boot again, should have checked if there was a fix I guess xD
Jake.Stine
Ok, looks like SC3 is missing post processing effects maybe, which would make sense since I did make changes to the sync of MTGS and such. I'll have to look into it tomorrow. So tired. >_<
(and I doubt it's a hard fix; just a matter of figuring out what I overlooked. It's possible I'm not copying enough GS regs, for example)
keb...
sorry for posting in this revision, but i'm not sure which of the latest did this, my games are having really strange behaviors, every time there is a loading that is, like loading the game, or loading a screen, it takes a lot of time
ffx takes a lot of time to the memory card selection loading screen, and while in game takes a lot of time to access the menu, when after closing the menu, the world textures are gone
ffxii takes like 5 minutes to load from the memory card
default settings, no speedhacks, no gamefixes, but tried with them on and it's the same
sorry for not knowing in which revision it started, i only know its from r3285 onwards
ramapcsx2
kebrus:
Try the ee timing hack in gamefixes, see if that fixes it.
Jake.Stine
@Kebrus:
We're not having any luck producing this problem on our setups so I'm not sure what else to tell you at this point.
Jake.Stine
Soul Calibur 3 errors were the fault of my having EE Timing Hack enabled. So right now this revision is working very well for me. I'm testing some other titles now.
f3r....
I got these messages in log: "sceGsSyncPath: DMA Ch.1 does not terminate
<D1_CHCR=10000105:D1_TADR=0011bf90:D1_MADR=001001e0:D1_QWC=00000012>
<D2_CHCR=00000000:D2_TADR=00000000:D2_MADR=00000000:D2_QWC=00000000>
<VIF1_STAT=100000cb:GIF_STAT=00000b00>"
It loops and the emulation kinda freezes and it happen at random places, maybe its the same problem that kebrus has but I thing it start to happen when GIFpath have been modified. I have the default config without speedhacks.
ramapcsx2
f3r.DLK: In FFX?
Jake.Stine
Also, SuperVU is currently buggy. Do not use it. mVU only please.
refraction
f3r.DLK: What game?
keb...
i really don't know what was the problem, but using r3326 everything is back to normal, faulty compile i guess :\
thx anyway ;]
PS: and i tested the ee timing hack before upgrading the revision, didn't help
f3r....
I just tested the Rock Band's games but in prior revision to 3300 they were almost perfect with minor bugs in some effects and also GT4 crashed the emulator before this this commit but that doesn't matter now! I will test more games and I'll report.
f3r....
Well I don't have many games to test but in all I tested the rock band's games are the only with this problem.
refraction
f3k.DLK: I suspect you are using supervu, hopefully this should be fixed soon
f3r....
No, I'm using default settings and microVU is the default for VU. As I said before it is related with the changes in GIFpath.

Revision 3322

zzogl-pg: Fix a silly typo. Issue 766 .

Revision 3323

zzogl-pg: Some work on the Gif Registers. I'm trying to bring them a bit closer
to the way GSdx handles them.
arcum42
Nowhere near finished, but this seemed like a good commit place. Next step would be to get it to use all those structs I copied in from GSdx...
Jake.Stine
My only word of warning is that I don't think GSdx's method of handling registers is very efficient. So you might notice a few %'s speed loss once its done, if that's ok. Basically its the fault of the class-based function pointers. They don't optimize well. I was even planning on redoing it using a simpler non-classed system in GSdx myself at some point.
arcum42
I'll keep that in mind. I'll admit I'm more concerned about accuracy and readability right now, though speed is a concern.
Part of what I'm trying to do here, though, is to get things similar enough that I can easily tell at a glance what ZZOgl is doing differently from GSdx. Some of it's obvious, like the horrible hack that is "NoHighlights", but I'm sure there are more subtle differences.
And, of course, if you redo the register code in GSdx, I'll probably follow suit here.
Of course, I'd meant to start by implementing registers on GSNull first, but somehow it didn't work out that way... ^_^
wing...
Thank you very much, arcum42! It's really good to see work being done on zzogl since it's the only video plugin linux users can use.

Revision 3324

zzogl-pg: Get rid of some annoying spam when debugging, and remove some old
code.

Revision 3325

Small fix to the ee timing hack.
konaj...
broke ff7doc, ee timing fix is the only way to get it to the game menu/ingame if save-data is present.
with this change it broke it :X
ramapcsx2
Yeah, this should absolutely not happen. The game must have lucked into working.
konaj...
yea its strange, game will get to the menu and ingame as long as there is no save data, but as soon as you start a new game and it creates a save after you restart the game it will lockup where the first FMV usually plays (before this fix the EE timing hack would allow it to get to the menu and resume saves ..etc)
this is a simple change so i can always change it back to 1 if i ever need to play ff7dc, Other then that maybe you can look into this game more it seems to use alot of the ps2 hidden secrets :), maybe even the most demanding ps2 game there is.

Revision 3326

SPU2-X: Reverb compatibility improvements (fixes Ys6).
* EEA / ESA writes are ignored when Effects are enabled.
* When effects are disabled, reverb does not process IRQs or produce sound.

Revision 3327

SPU2-X: This should be more correct.
ramapcsx2
Jake:
This makes it try to set negative areas again, but we need to update the
buffers when writing to the EEA / ESA regs..
It didn't get updated with our sample code otherwise.
Jake.Stine
It is in fact more correct.

Revision 3328

Fix for Beyond Good and Evil (maybe Raving Rabids too), added a couple of bits
of logging for 8 and 16 bit reads.
eliotfur
Updating source, compiling, testing... ... ...
eliotfur
Testing complete:
Rayman Raving Rabbids and Beyond Good and Evil FIXED...

Revision 3329

zzogl-pg: fix a warning on win32, and remove the non-existent gssoft.def file
form the vsproj.

Revision 3330

GameDB: Fix long loading times of the database, by using a very efficient block-
based allocation system, and reserving enough memory for about 9500 titles.
Also added a thread at startup to load the gamedb in the background while PCSX2
is opening windows and printing to the console.
kristel...
so you know...
12>..\..\gui\AppInit.cpp(489) : error C2664: 'Threading::pxThread::pxThread(const Threading::pxThread &)' : cannot convert parameter 1 from 'const wchar_t [19]' to 'const Threading::pxThread &'
12> Reason: cannot convert from 'const wchar_t [19]' to 'const Threading::pxThread'
12> No constructor could take the source type, or constructor overload resolution was ambiguous

Revision 3331

* Add gRegionMode to the savestates; probably fixing a lot of unstable
savestate behavior on PAL games (not sure how it managed to escape -- I
explicitly remember adding the region info to the savestate in pcsx2-pg like 2
yrs ago).
* Make the new MTGS register packet during vsync not upload 0xf0->0x100. This
is technically GS internal register space that the GS plugin may update or
modify as it processes GIFtags. Thus, PCSX2 shouldn't touch it.
weimingzhi
12>..\..\gui\AppInit.cpp(489) : error C2664: 'Threading::pxThread::pxThread(const Threading::pxThread &)' : cannot convert parameter 1 from 'const wchar_t [19]' to 'const Threading::pxThread &'
12> Reason: cannot convert from 'const wchar_t [19]' to 'const Threading::pxThread'
12> No constructor could take the source type, or constructor overload resolution was ambiguous
not sure what problem this is.
weimingzhi
looks like constructor which takes wchar_t * type in pxThread is missing. I added it manually and it compiles now.

Revision 3332

microVU: Now supports growable rec-cache.
So when a game has reached the cache-limit, mVU allocates more memory unless it
has reached it's max limit (100mb for vu1, 50mb for vu0)
cottonvibes
nokiaqdman: that problem is unrelated to this revision since i didn't modify that file.
lothar635: the code already handles that. if it attempts to grow to 110mb it'll clamp to 100mb.
yan.eml...
Are 100 and 50 mb random numbers? Are there any numbers when it is faster to recompile again rather than search already recompiled? (rec-cache works that way, right?)
refraction
nice :) wonder if its worth having this on the EE/IOP? or at least large numbers if there arent already some?

Revision 3333

... not sure how I missed committing this last night. >_< (fixes compilation
errors)
Jake.Stine
Clearly I must have done my commit from the pcsx2 subfolder... though I can't imagine why. :p

Revision 3334

zzogl-pg: Commit patch from zzogl-213 for shaking when interlace is on in FFX-2.
( Issue 768 ).
Krzysiek...
Hey guys this is not related to this rev but, compering latest rev's to r3244 i lost about 15-20fps in gran turismo 4 and Fight night round 3, on r3244 games was running awesome almost at 100% speed (both NTSC versions), now they got around 40-45 fps and some big slowdowns ;/
PS: the only good think is that GOW 2 is now running with almost 120fps ;d
Jake.Stine
Yes, known. Its because of the GIF PATH1 reordering code and the PATH3 slice code. Its very slow stuff on games that use PATH3 masking.
azte...
good work arcum42, now only 197 issues remain. ;)

Revision 3335

Mostly-new host exception system (host meaning the C++ / SEH exceptions, not the
VM's PS2/MIPS exceptions). Main purpose is to make specifying diagnostic and
end-user messages more sane. Secondary goal was to remove the need for C++
multiple and virtual inheritance, which are buggy in MSVC still, and problematic
even when they aren't buggy.
I also re-implemented R5900 runtime exception handling for TLB Miss and such
(devbuilds only, for now).
wing...
Breaks compilation on linux.
WilliamS...
Let PCSX2 more efficiency!!Good work!!
Jake.Stine
>> Breaks compilation on linux.
Not surprising, I suppose. Though really I thought I was very careful about avoiding errors. I wonder if its like an include file case issue.
wing...
[ 0%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/AAFilter.cpp.o
[ 0%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/3dnow.cpp.o
[ 0%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/AlignedMalloc.cpp.o
[ 0%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/FIFOSampleBuffer.cpp.o
[ 1%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/FIRFilter.cpp.o
[ 2%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/CheckedStaticBox.cpp.o
[ 2%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/cpudetect.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/FIRFilter.cpp: In static member function ‘static void* soundtouch::FIRFilter::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/FIRFilter.cpp:226: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 2%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/RateTransposer.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/RateTransposer.cpp: In static member function ‘static void* soundtouch::RateTransposer::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/RateTransposer.cpp:112: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 3%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/fpu.cpp.o
[ 3%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/SoundTouch.cpp.o
[ 3%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/groups.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/TDStretch.cpp.o
[ 4%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Console.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/TDStretch.cpp: In static member function ‘static void* soundtouch::TDStretch::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/TDStretch.cpp:744: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/WavFile.cpp.o
[ 4%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/jmp.cpp.o
[ 4%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/EventSource.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/cpu_detect_x86_gcc.cpp.o
[ 5%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/mmx_optimized.cpp.o
[ 5%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/sse_optimized.cpp.o
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy.cpp.o
Linking CXX static library libpcsx2_SoundTouch.a
[ 6%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Exceptions.cpp.o
[ 6%] Built target pcsx2_SoundTouch
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy_sse.cpp.o
/home/wingnux/pcsx2-read-only/common/src/Utilities/Exceptions.cpp: In function ‘wxString GetTranslation(const char*)’:
/home/wingnux/pcsx2-read-only/common/src/Utilities/Exceptions.cpp:28: error: operands to ?: have different types ‘const wxChar*’ and ‘wxString’
make[2]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/Exceptions.cpp.o] Error 1
make[1]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/LnxCpuDetect.cpp.o
[ 6%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/movs.cpp.o
[ 7%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/PrecompiledHeader.cpp.o
[ 7%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/simd.cpp.o
[ 7%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/tools.cpp.o
[ 8%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/x86emitter.cpp.o
Linking CXX static library libx86emitter.a
[ 8%] Built target x86emitter
make: *** [all] Error 2

Revision 3336

[pcsx2]: use a local implementation of GetUserLocalDataDir. Follow the xdg
specification for linux.
IMPORTANT NOTE FOR LINUX USER: the "main" pcsx2 configuration is moved from
$HOME/.pcsx2 to $XDG_CONFIG_HOME/pcsx2 (or $HOME/.config/pcsx2 if xdg var is not
defined).
A first time wizard is expected. Just import you previous settings.
[cmake]: add a missing h file.
poisiono...
I'd give 2+ for using the $XDG_CONFIG_HOME-variable, or the fallback on ".config/appname/" in home (which is where i fancy conf-files to be) :)
I just wish every single program would adhere to this.
gregory....
Actually ".config/appname" is the default value of XDG_CONFIG_HOME requested by the specification.
But yes it would be very cool, if applications can avoid to pollute my HOME dir...

Revision 3337

Fix Linux. >_<
wing...
Thank you!
wing...
Not yet...
[ 0%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/3dnow.cpp.o
[ 0%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/AAFilter.cpp.o
[ 0%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/AlignedMalloc.cpp.o
[ 0%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/FIFOSampleBuffer.cpp.o
[ 0%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/cpudetect.cpp.o
[ 1%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/CheckedStaticBox.cpp.o
[ 2%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/FIRFilter.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/FIRFilter.cpp: In static member function ‘static void* soundtouch::FIRFilter::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/FIRFilter.cpp:226: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 2%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/RateTransposer.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/RateTransposer.cpp: In static member function ‘static void* soundtouch::RateTransposer::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/RateTransposer.cpp:112: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 3%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/fpu.cpp.o
[ 3%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/SoundTouch.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/TDStretch.cpp.o
[ 4%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/groups.cpp.o
[ 4%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Console.cpp.o
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/TDStretch.cpp: In static member function ‘static void* soundtouch::TDStretch::operator new(size_t)’:
/home/wingnux/pcsx2-read-only/3rdparty/SoundTouch/TDStretch.cpp:744: warning: ‘operator new’ must not return NULL unless it is declared ‘throw()’ (or -fcheck-new is in effect)
[ 4%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/EventSource.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/WavFile.cpp.o
[ 4%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/jmp.cpp.o
[ 4%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Exceptions.cpp.o
[ 4%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/cpu_detect_x86_gcc.cpp.o
[ 5%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy.cpp.o
[ 6%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/mmx_optimized.cpp.o
[ 6%] Building CXX object 3rdparty/SoundTouch/CMakeFiles/pcsx2_SoundTouch.dir/sse_optimized.cpp.o
[ 7%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/FastFormatString.cpp.o
Linking CXX static library libpcsx2_SoundTouch.a
[ 7%] Built target pcsx2_SoundTouch
[ 7%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/legacy_sse.cpp.o
[ 7%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/HashTools.cpp.o
[ 7%] Building CXX object tools/bin2cpp/CMakeFiles/bin2cpp.dir/bin2cpp.cpp.o
Linking CXX executable ../bin/bin2cpp
[ 7%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/IniInterface.cpp.o
[ 7%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/LnxCpuDetect.cpp.o
[ 7%] Built target bin2cpp
[ 7%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/movs.cpp.o
[ 7%] Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/CDVDisop.cpp.o
[ 8%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/PrecompiledHeader.cpp.o
[ 9%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Linux/LnxHostSys.cpp.o
[ 9%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/simd.cpp.o
[ 9%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/tools.cpp.o
[ 10%] Building CXX object common/src/x86emitter/CMakeFiles/x86emitter.dir/x86emitter.cpp.o
[ 10%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Linux/LnxMisc.cpp.o
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:48: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:48: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:53: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp: In function ‘s32 CDVDopen(const char*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:168: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp: In function ‘s32 CDVDgetTOC(void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/CDVDisop.cpp:313: warning: unused variable ‘off’
[ 10%] Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/libiso.cpp.o
Linking CXX static library libx86emitter.a
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘u64 _tellfile(void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:201: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:201: warning: initializing argument 1 of ‘long int ftell(FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:205: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:205: warning: initializing argument 1 of ‘__off64_t ftello64(FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _seekfile(void*, u64, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:217: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:217: warning: initializing argument 1 of ‘int fseeko64(FILE*, __off64_t, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _readfile(void*, void*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:226: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:226: warning: initializing argument 4 of ‘size_t fread(void*, size_t, size_t, FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _writefile(void*, void*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:231: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:231: warning: initializing argument 4 of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘void _closefile(void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:236: warning: invalid conversion from ‘void*’ to ‘FILE*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:236: warning: initializing argument 1 of ‘int fclose(FILE*)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadZ2table(isoFile*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:330: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBZ2table(isoFile*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:373: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int isoSetFormat(isoFile*, int, int, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:650: warning: invalid conversion from ‘const void*’ to ‘void*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:650: warning: initializing argument 2 of ‘int _writefile(void*, void*, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:657: warning: invalid conversion from ‘const void*’ to ‘void*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:657: warning: initializing argument 2 of ‘int _writefile(void*, void*, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:667: warning: invalid conversion from ‘const void*’ to ‘void*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:667: warning: initializing argument 2 of ‘int _writefile(void*, void*, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlock(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:709: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockZ(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:731: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:756: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockBZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:790: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockD(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:821: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:825: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoReadBlockM(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:842: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:843: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:856: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int isoReadBlock(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:869: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlock(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:909: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockZ(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:934: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:958: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockD(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:976: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp: In function ‘int _isoWriteBlockBZ2(isoFile*, u8*, int)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:990: warning: comparison between signed and unsigned integer expressions
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/libiso.cpp:1016: warning: comparison between signed and unsigned integer expressions
[ 10%] Built target x86emitter
[ 10%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Linux/LnxThreads.cpp.o
[ 11%] Building CXX object plugins/CDVDnull/CMakeFiles/CDVDnull.dir/CDVD.cpp.o
[ 11%] [ 11%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/Mutex.cpp.o
Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/Config.cpp.o
[ 11%] Building C object plugins/CDVDnull/CMakeFiles/CDVDnull.dir/Linux/callbacks.c.o
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void LoadConf()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:44: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:45: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:46: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void OnFile_Ok()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:97: warning: invalid conversion from ‘const gchar*’ to ‘gchar*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void OnOk(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:189: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:191: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void OnFileSel_Ok()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:215: warning: invalid conversion from ‘const gchar*’ to ‘gchar*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp: In function ‘void CDVDconfigure()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Config.cpp:281: warning: return-statement with a value, in function returning 'void'
[ 12%] Building C object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/interface.c.o
cc1: warning: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
[ 12%] Building CXX object plugins/CDVDnull/CMakeFiles/CDVDnull.dir/Linux/Config.cpp.o
[ 13%] Building CXX object common/src/Utilities/CMakeFiles/Utilities.dir/PathUtils.cpp.o
[ 13%] Building CXX object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/Linux.cpp.o
[ 13%] Building C object plugins/CDVDnull/CMakeFiles/CDVDnull.dir/Linux/interface.c.o
/home/wingnux/pcsx2-read-only/common/src/Utilities/PathUtils.cpp: In member function ‘wxDirName& wxDirName::Normalize(int, const wxString&)’:
/home/wingnux/pcsx2-read-only/common/src/Utilities/PathUtils.cpp:54: error: no matching function for call to ‘Exception::RuntimeError::RuntimeError(const char [39])’
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:170: note: candidates are: Exception::RuntimeError::RuntimeError(const std::exception&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:169: note: Exception::RuntimeError::RuntimeError(const std::runtime_error&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:168: note: Exception::RuntimeError::RuntimeError()
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:161: note: Exception::RuntimeError::RuntimeError(const Exception::RuntimeError&)
/home/wingnux/pcsx2-read-only/common/src/Utilities/PathUtils.cpp: In member function ‘wxDirName& wxDirName::MakeRelativeTo(const wxString&)’:
/home/wingnux/pcsx2-read-only/common/src/Utilities/PathUtils.cpp:62: error: no matching function for call to ‘Exception::RuntimeError::RuntimeError(const char [44])’
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:170: note: candidates are: Exception::RuntimeError::RuntimeError(const std::exception&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:169: note: Exception::RuntimeError::RuntimeError(const std::runtime_error&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:168: note: Exception::RuntimeError::RuntimeError()
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:161: note: Exception::RuntimeError::RuntimeError(const Exception::RuntimeError&)
/home/wingnux/pcsx2-read-only/common/src/Utilities/PathUtils.cpp: In member function ‘wxDirName& wxDirName::MakeAbsolute(const wxString&)’:
/home/wingnux/pcsx2-read-only/common/src/Utilities/PathUtils.cpp:70: error: no matching function for call to ‘Exception::RuntimeError::RuntimeError(const char [42])’
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:170: note: candidates are: Exception::RuntimeError::RuntimeError(const std::exception&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:169: note: Exception::RuntimeError::RuntimeError(const std::runtime_error&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:168: note: Exception::RuntimeError::RuntimeError()
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:161: note: Exception::RuntimeError::RuntimeError(const Exception::RuntimeError&)
make[2]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/PathUtils.cpp.o] Error 1
make[1]: *** [common/src/Utilities/CMakeFiles/Utilities.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 13%] Building C object plugins/CDVDiso/src/CMakeFiles/CDVDiso.dir/Linux/support.c.o
cc1: warning: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:39: warning: non-local variable ‘<anonymous union> cr’ uses anonymous type
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void UpdZmode()’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:50: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCompress(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:68: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:124: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:128: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘char* CDR_readTrack(unsigned char*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:344: warning: invalid conversion from ‘unsigned char*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCreate(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:369: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:426: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:433: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:482: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:446: warning: ignoring return value of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCreateZ(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:509: warning: invalid conversion from ‘const gchar*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:589: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:596: warning: invalid conversion from ‘char*’ to ‘unsigned char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: invalid conversion from ‘unsigned char*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: initializing argument 1 of ‘int BZ2_bzBuffToBuffCompress(char*, unsigned int*, char*, unsigned int, int, int, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: invalid conversion from ‘u8*’ to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:621: warning: initializing argument 3 of ‘int BZ2_bzBuffToBuffCompress(char*, unsigned int*, char*, unsigned int, int, int, int)’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:668: warning: deprecated conversion from string constant to ‘char*’
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:623: warning: ignoring return value of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:624: warning: ignoring return value of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:626: warning: ignoring return value of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:650: warning: ignoring return value of ‘size_t fwrite(const void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
[ 14%] Building C object plugins/CDVDnull/CMakeFiles/CDVDnull.dir/Linux/support.c.o
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp: In function ‘void OnCompress(GtkButton*, void*)’:
/home/wingnux/pcsx2-read-only/plugins/CDVDiso/src/Linux/Linux.cpp:64: warning: ‘ret’ may be used uninitialized in this function
Linking CXX shared library ../../../bin/plugins/libCDVDiso.so
Linking CXX shared library ../../bin/plugins/libCDVDnull.so
[ 14%] Built target CDVDiso
[ 14%] Built target CDVDnull
make: *** [all] Error 2
gregory....
Just to sum up the error. But I do not understand why the code is bad (and not before). Constructor are still the same !
common/src/Utilities/PathUtils.cpp: In member function ‘wxDirName& wxDirName::Normalize(int, const wxString&)’:
common/src/Utilities/PathUtils.cpp:54: error: no matching function for call to ‘Exception::RuntimeError::RuntimeError(const char [39])’
common/include/Utilities/Exceptions.h:170: note: candidates are: Exception::RuntimeError::RuntimeError(const std::exception&, const wxString&)
common/include/Utilities/Exceptions.h:169: note: Exception::RuntimeError::RuntimeError(const std::runtime_error&, const wxString&)
common/include/Utilities/Exceptions.h:168: note: Exception::RuntimeError::RuntimeError()
common/include/Utilities/Exceptions.h:161: note: Exception::RuntimeError::RuntimeError(const Exception::RuntimeError&)
Jake.Stine
Ok, I know what the problem is. I removed both the char* and wchar_t* overloads. This is only compiling under MSVC because microsoft *stupidly* forgot to put an 'explicit' keyword on their std::runtime_error exception. So C++ is implicitly converting the char* to a runtime_error and then passing that into the exception constructor. (duh)
Those exceptions shouldn't be RuntimeError's anyway. I was lazy and desperate to get wxPCSX2 working when I coded it, many many moons ago. I'll set them up properly this time.

Revision 3338

This is part 2 of my PAL timings savestate fix, from r3331. Dunno how I missed
this one either.
Norikumi...
Only human :) don't sweat it.

Revision 3339

Another fix for GCC compilation errors.
wing...
Still doesn't work:
[ 65%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/FrameForGS.cpp.o
[ 65%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/gui/GlobalCommands.cpp.o
/home/wingnux/pcsx2-read-only/pcsx2/gui/FrameForGS.cpp: In constructor ‘GSPanel::GSPanel(wxWindow*)’:
/home/wingnux/pcsx2-read-only/pcsx2/gui/FrameForGS.cpp:66: error: no matching function for call to ‘Exception::RuntimeError::RuntimeError(const char [30])’
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:170: note: candidates are: Exception::RuntimeError::RuntimeError(const std::exception&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:169: note: Exception::RuntimeError::RuntimeError(const std::runtime_error&, const wxString&)
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:168: note: Exception::RuntimeError::RuntimeError()
/home/wingnux/pcsx2-read-only/common/include/Utilities/Exceptions.h:161: note: Exception::RuntimeError::RuntimeError(const Exception::RuntimeError&)
make[3]: *** [pcsx2/CMakeFiles/pcsx2.dir/gui/FrameForGS.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [pcsx2/CMakeFiles/pcsx2.dir/all] Error 2
make[1]: *** [pcsx2/CMakeFiles/pcsx2.dir/rule] Error 2
make: *** [pcsx2] Error 2
poisiono...
Well, this did not worsen the misshap, so i'll make a motivational neutral vote on that basis.
You will figure out the annoying miss-consistency sooner or later i am certain :)
Jake.Stine
Eh, same thing, different instance of RuntimeError. >_<
This is very much MSVC's fault. The guys who wrote their STL implementation suck.

Revision 3340

More fixes for the evil RuntimeError constructor ambiguity. (gcc compile errors)

Revision 3341

Crispy christ, I need to remember to wait for the WHOLE solution to rebuild
before making commits, no matter how much the wait kills me.
wing...
"Linking CXX executable ../bin/pcsx2
[100%] Built target pcsx2"
Everything seems to be ok now. Thank you very much, Jake!
evolutionrevolution
Crispy Christ? How heretical of you. :P
...It's probably a fast-food chain in hell, though. "Sinfully delicious!"
refraction
Having an off day jake? ;p got there in the end!
arcum42
And I get home, ready to work on getting Linux working again, and it's already taken care of... ^_^
amberion...
I think Jake has just invented a new cereal!
arcum42
Technically, I think it'd be communion wafers, provided the wafers are crispy enough to qualify. But that's a whole different subject... ^_^

Revision 3342

Patch in something for ref, may cure some issues with super VU.
dennisme...
(EE pc:0013DD10) TLB Miss, addr=0x0 [load]
gives this error on Harry Potter 3 after the menue.
refraction
yeh we know this was wrong ;p

Revision 3343

Communication error :p
refraction
Twas my bad :P

Revision 3344

[pcsx2 gui]: For first time wizard panel, use PathDefs::GetDocuments instead of
wx GetDocumentsDir (more accurate).
[zzogl]: fix a bad path for snapshot.
Jake.Stine
For future reference, this also works on wxDirName:
PathDefs::GetDocuments(DocsFolder_User).ToString()
... otherwise, the commit is good. :)
gregory....
Ah yes, it is definitely the method I tried to find without success :) I will update it thanks.
Jake.Stine
Yeah, many wxWidgets classes have a ToStirng() thing -- it's borrowed from .NET which wx takes a lot of code design from.
wxFileName lacks one because it would be ambiguous -- fullpath, just filename, dirname, etc.
I gave one to wxDirName because generally speaking it makes sense that you'd want the full dir path. No filename info to ambiguate it.

Revision 3345

* Likely fix for cpuIntsEnabled; I think this is the behavior Ref intended. :)
refraction
Yep, thats it ;p

Revision 3346

Worked on SIGNAL support some more; fixes missing menu geometry in Soul Calibur
3 (devs: see code comments for details).
kristel...
"You on fire" last days, - don't burn down
have a rest for a while

Revision 3347

Modified some recent changes a little, should bring back some more of the
performance that was lost recently.

Revision 3348

Missed a little bit :P
kristel...
err... "SoulCalibur 3" flickering (broken) menu? until "INTC Spin Detection" (hack) switched On (all other setting set by default)
and partial flickering in-game (no matter hacks switched On or Off)
it is only for me?
kristel...
beside this, look like i got some fps
refraction
So its fine with the hack on but not with the hack off??
kristel...
exactly, but partial in-game "flickering"...
Sajty...
Great! FPS slowdown is gone!
romulux_...
kristeldux - I get some partial flickering regardless of Hacks turned on or off. I was wondering the same thing, if I missed anything or is it a general problem for anyone.
BTW - the only way to get rid of black lines in game is to use native resolution ?
kristel...
in GSdx settings, set "D3D internal resolution" to 1020x1020 (or 1200x1200 for example), - it help a little (for me)
kristel...
in "Soul Calibur 3", to go to the Options menu, need set "EE Cyclerate" to 2, otherwise you see nothing, but blue background
other settings by default
danialho...
Flickering 3D is caused when a game isn't compatible with the skipdraw hack which i think still defaults to 3?
unfortunately, skipdraw must be enabled in order for the INTC hack to take effect in 100% of the games i tested that benefitted from skipdraw or intc.

Revision 3349

-Sorted some VIF problems causing unknown vifcmd errors (Enter the Matrix)
-Fixed up some path3 masking stuff, trying a slightly different approach too.
Jake.Stine
This also fixes Ys6, which now boots without the EE Timing hack again (without the hack it got the unknown vifcmd errors). It started requiring the the EE Timing hack somewhere right around your big commit a week ago (tho it was broken in SPU2-X at that point because of reverb woes).
gregory....
Not directly related to this commit, but maybe path3 masking. I have some freeze with grandia 3 (commit 3305). Note: I can provide a save state at 10 seconds of the freeze :)
With additional log message I add:
E/0013c708 1be56465: Packed Mode NO E, len: 13, nloop 16, Path 2
E/0013c710 1be56467: Packed Mode EOP 1
E/0013c710 1be56467: Packed Mode NO E, len: 67, nloop 14, Path 2
E/00163210 1be56680: Packed Mode EOP 1
E/00163210 1be56680: Packed Mode NO E, len: 4, nloop 1, Path 2
E/0013c520 1be566c6: Packed Mode
E/0013c708 1be56736: Packed Mode
E/00177f80 1be5678b: Packed Mode
E/001457e0 1c19796d: GS Write64 at 12001010 with data 00000000_fffffdff
E/001457e0 1c19796d: GS Write64 at 12001000 with data 00000000_00000002
dyna_page_reset @ 0x00001
dyna_page_reset @ 0x00001
Uncounted Manual block @ 0x80001300 : size = 39 page/offs = 00001/300 inpgsz = 156
Uncounted Manual block @ 0x80001630 : size = 11 page/offs = 00001/630 inpgsz = 44
Uncounted Manual block @ 0x8000165C : size = 4 page/offs = 00001/65C inpgsz = 16
Uncounted Manual block @ 0x800016A0 : size = 11 page/offs = 00001/6A0 inpgsz = 44
Uncounted Manual block @ 0x800016CC : size = 6 page/offs = 00001/6CC inpgsz = 24
Uncounted Manual block @ 0x800016E4 : size = 10 page/offs = 00001/6E4 inpgsz = 40
Uncounted Manual block @ 0x8000170C : size = 2 page/offs = 00001/70C inpgsz = 8
Uncounted Manual block @ 0x80001720 : size = 3 page/offs = 00001/720 inpgsz = 12
Uncounted Manual block @ 0x80001744 : size = 4 page/offs = 00001/744 inpgsz = 16
Uncounted Manual block @ 0x80001754 : size = 2 page/offs = 00001/754 inpgsz = 8
Uncounted Manual block @ 0x80001778 : size = 8 page/offs = 00001/778 inpgsz = 32
Uncounted Manual block @ 0x800013C0 : size = 40 page/offs = 00001/3C0 inpgsz = 160
File: GIFpath.cpp line 510
Working code:
switch(tag.FLG) {
case GIF_FLG_PACKED:
GIF_LOG("Packed Mode EOP %x", tag.EOP);
PrepPackedRegs();
do {
if (GetReg() == 0xe) {
gsHandler(pMem);
}
incTag(16, 1);
} while(StepReg() && size > 0);
break;
Bad code:
case GIF_FLG_PACKED:
GIF_LOG("Packed Mode EOP %x", tag.EOP);
PrepPackedRegs();
if(DetectE > 0)
{
do {
if (GetReg() == 0xe) {
gsHandler(pMem);
}
incTag(16, 1);
} while(StepReg() && size > 0);
}
else //Save doing the while loop and repeat conditionals for nothing :P
{
//DevCon.Warning("No E detected Path%d nloop %x", pathidx + 1, nloop);
u32 len = aMin(size, nloop * numregs);
GIF_LOG("Packed Mode NO E, len: %d, nloop %d, Path %x", len, nloop, pathidx+1);
if(len < (nloop * numregs)) nloop -= len / numregs;
else nloop = 0;
incTag(16 * len, len);
if(nloop > 0) curreg = 1;
else curreg = 0;
}
break;
ramapcsx2
Breaks SC3.
refraction
rama: email ;p
shadowladyngemu
Broke Gungrave
shadowladyngemu
Oh, broke tekken tag tournament too :p

Revision 3350

UI:
* Fix for Issue 780 (missing uppercase iso extensions in the Open File Dialog).
* A few minor threading fixes for the GameDB loader to avoid crashes/hangs when
closing the emulator immediately as it opens.
wing...
Thank you!

Revision 3351

Minor comment cleanups regarding SIGNAL behavior.
Jake.Stine
Note to devs: I figure that SIGNAL behavior is ambiguous enough (and lacking in real-world samples and tests at this point) that documenting games' behaviors with regard to it will probably be an important step in getting it right. And seeing how it can cause or fix missing geometry and boot fails in some games, figuring it out is probably worth-while.  :)

Revision 3352

[pcsx2]: minor clean of a previous patch.
[debian]: * refresh patch and clean
* fix copyright file

Revision 3353

Disabled GIFtag optimization added in r3305. Added detailed comments
explaining why its not safe. Not totally ruling out the potential to fix and
restore it to working order, but am fairly skeptical that it will provide any
worthwhile speed gain once its been safe-guarded.
Jake.Stine
This should fix Grandia 3, and probably some errors in other select games as well.
@Ref: Maybe another option would be to turn this into a speedhack option, since making it "safe" would be very cumbersome and offset a lot of the speed gained. But as a speedhack it could remain "unsafe" -- and thus remain maximally effective at the same time for those daring enough to use it. ;)
Jake.Stine
oh and forgot to note that I think its compatibility in its current form is around 85-90% .. which isn't bad for a speedhack.
Norikumi...
+1 for speedhack.
refraction
Not bad at all lol, didnt know there would be any compatability issues to be honest, but it cuts out a ton of loops and conditionals (checking for 0xe about 60-1536 times (an average size i saw when checking this) per Packed tag adds up ;p
refraction
Actually this might sort the freezing in GT4 too, that was having random hangs.
gregory....
For the moment I did not play with speed hack, too afraid to break anythings, but with summer I think I will change my mind.
However I have a rough idea that could please user experience. Now that we have a nice database, maybe we can store good or speed hack (will be the user jobs to maintain it).
For example we could print a warning when enabling a speed hack that it know breaking a games. Not sure it would be a good idea to enable some hack by default.
refraction
Actually this might sort the freezing in GT4 too, that was having random hangs.
Jake.Stine
Yeah, when cotton and I benched it, the speedup was about 2-5% depending on game; which certainly isn't shabby; but obviously its no good if its not 100% safe. Once bolstered up to be safe, the avg speedup will be in the 1-4% range. Still good, but ugh.. the code will be a pretty big mess >_<
f3r....
Still doesn't fix Rock Band's games:
sceGsSyncPath: DMA Ch.1 does not terminate
<D1_CHCR=10000105:D1_TADR=001002f0:D1_MADR=001001a0:D1_QWC=00000015>
<D2_CHCR=00000000:D2_TADR=00000000:D2_MADR=00000000:D2_QWC=00000000>
<VIF1_STAT=1000004b:GIF_STAT=00000b00>
This message shows in light green in log continuously and the emulation loops and its unplayable. This happens every time but at random places in game. This started with the changes in GIFpath.
refraction
Sorry i must have forgotten we wrote "fixes rockband" in the changes log :P
refraction
btw jake check your email. Altho i think ive sussed out what you meant.
f3r....
Ey man, I was not demanding that someone fix this, I was just pointing that out, that with the last changes in GIFpath broke rock band's games. If someone want to check this will be great, if not, well patience...
Do it your way...

Revision 3354

Fixed up the optimization disabled in r3353 and should now be safe.
Altered a couple of PATH3 Masking bits again which don't seem to be needed any
more.
refraction
that wont work, what if size is > temp? youve just skipped every command following.
lovecs0...
temp = ((nloop * numregs) - curreg)
if size < temp
-> len = size ==>> len < temp == true
-> len < temp == true , size < temp == true
if size >= temp
-> len = temp ==>> len < temp == false
-> len < temp == false, size < temp == false
----> ( len < temp ) === ( size < temp )
refraction
now you're doing exactly what i do, except if the curregtemp is not 0, you dont save it, which is wrong as it could be on reg 8 of 16 when it breaks, which means it would have to start there when the next bit of data is sent, so you would be breaking too early and get back gif packets.
refraction
back = bad. like my spelling.
ramapcsx2
Last revs helped speed nicely.
Would be nice to get back the original VU1 mem overflow handling as well :p
refraction
look at the next commit lol
ramapcsx2
Well, the "oh well, didn't work" looked a bit like it ..didn't work? :p
Also the BIOS prints smth about overflow and crashes, thought that's the same bug. (Start a game with full boot.)
ramapcsx2
Okay, that was my fault.
Crashes are from some early code in spu2x that I have in my local copy :p
refraction
Yeh the overflow messages are from what sudo and jake were talking about last night (XGKICK after clearing the VU memory) so it breaks out as soon as it has done a complete sweep of the memory, should work ok.
refraction
btw that was from the next revision where i readded the vu looping, which you asked about 5 comments up and i told you its the next revision :P
aid...
Tekken 5 reaches 60fps in battles again, thank you. :)

Revision 3355

Fixed up VU1 looping so it works how it did, Rock Band should hopefully work
again now. (And Guitar Hero 3, Tony Hawks Project etc)
f3r....
Well, for the rockband's games didn't do it!! Maybe next time...
At least you tried... :)
f3r....
See it for your selves:
http://img38.imageshack.us/img38/2415/rockbandu.jpg
refraction
oh well, worth a shot :( it fixed the activision games anyway, was hoping itd be the same engine ;p
Jake.Stine
I do think I noticed a couple small bugs in this still. I'm cleaning up, commenting, and will commit shortly.
but yea, it's definitely much faster now than it used to be, so that's good.
refraction
cool thanks jake :)

Revision 3356

removed path1 hack from gsdx (not needed) and the redundant path3 hack
thiago_...
no good for me...its immediately crashes and no run... my gsdx never more works later than r3277 changes... so im using yet the last stable version here the r3273 version...
refraction
well the only stuff i removed shouldnt have any effect, one is a hack left over from the non-mtgs days (which dont exist anymore) and the other should be null and void as the size is set by the incomming packet, so that tells it when it needs to finish.
So you may want to regression test when it started crashing, or try a fresh build.
eliotfur
I doubt that any game has used that code anyway... There shouldn't be any regressions... But who knows...
Saif...
No, he means not this change but a change after REV.3277
refraction
then why did he negative this one?
chuuey
god damnit, same thing that i see on dolphin's svn, people coming in and just -1 for no reason, good cleaning up there refraction :)
lemuel2010
No -1 at refraction, because is a great programmer!!!! +1
thiago_...
sorry... i make tests here... im using for anys games pcsx2 r2186 legacy because give me much more performance and run all my ps2 games smoothly... with r3356 new gui i have more compatibility with new games but very lower performance... i see now than gsdx r3356 don´t works in r2186 legacy but works with r3356 new gui... have chance to fix it?
refraction
We probably wont fix something that isnt being used anymore, or at least shouldnt be.
Jake.Stine
I'll fix breakages in r3277 soon hopefully. My DX10/11 card is still in RMA since over a month ago, so there's not much I can do until it comes back.
thiago_...
thanks jake... i am grateful to you...

Revision 3357

UI:
* Added more thread checks when closing the program, to avoid occasional
crashes or hangs.
* Close the GS window on shutdown or critical errors.
* Fixed part of Issue 679 (excessive CDVDiso popup errors)
azte...
good to see fixing in the cdvdiso, most of plugins work we see is about GSDX. ;)

Revision 3358

LinuzCDVDiso: Second part for fixing Issue 679 . Have CDVD plugin return "1"
from Open() if the user cancels iso source selector.

Revision 3359

Fixed another minor bug or two in the optimized GIFtag parser (one relating to
curreg management, and the other a minor hack to fix weird behavior only
exhibited by the BIOS). Please test extensively.
Jake.Stine
My initial goal was just to comment the new code, since it's been such a source of trouble over the years. And in the process I saw a loophole where curreg could go out of sync, end up being zero'd when it should have been incremented, and result in the optimized copy skipping too many bytes again. So I fixed it. :)
I'd clean up the QuickParse duplication but there's not much point -- that code should be removable once the MTGS is reorder-enabled. :)
refraction
cool, ill try it later, see if it made any difference to the activision engine based games :) (GH3, THP8)
Jake.Stine
Soul Calibur 3 problems started in r3349 and are related to VIF changes there, not GIFpath changes.
kristel...
yes, i see now... - broken BIOS loading (work on r3355) (Europa v02.00)
flickering, can't get in browser
kristel...
GIFTAG error, size exceeded VU memory size 3ff
microVU1: Branch VI-Delay (1) [0270]
microVU1: Branch VI-Delay (1) [0478]
Jake.Stine
@kristeldux:
1.DISABLE EE TIMING HACK.
2.Try again.
3.Enjoy working BIOS.
In that order please, thank you. :)
kristel...
all setting by default (no any "hacks", no any "fixes"); true
i usually say (in most times), if use hacks or fixes
kristel...
ow... and if i set software mode (in GSdx), - it hangs on loading, and then crash
kristel...
http://i.imagehost.org/0600/PCSX2r3359.jpg
refraction
"Comment by Jake.Stine, Today (5 hours ago)
Soul Calibur 3 problems started in r3349 and are related to VIF changes there, not GIFpath changes.
"
hmm odd, reverting the SIGNAL stuff (or bodging it to be like it use to) fixes the graphics :S
Jake.Stine
Well it worked when I committed the last SIGNAL revision. I tested it and DDS SMT, since those are 2 games I have that rely on SIGNAL and also have quirky DMA expectations.
If I revert the last changes to SIGNAL, it might break DDS (which was failing to boot).
In any case, we're kind of screwed. The original SIGNAL was most certainly not accurate, and I'm not sure the current SIGNAL is either. It's pretty clear that changes to VIF/GIF timings and such have similar effects as changing SIGNAL behavior, and all that's so hacked up that there's no way for me to assume I have SIGNAL right or wrong based on games working. I'd just code SIGNAL to spec and tell you to fix VIF/GIF to "work with it!" except the docs for SIGNAL are a bit vague.
... I mean, not really vague. I'm 99% sure the implementation is perfectly accurate if this line is uncommented:
//if (CSRreg.SIGNAL) // breaks SC3
But I can't be *sure* enough to tell you to go and fix VIF/GIF to behave properly under those rules... yet. (though the more I think about it, the more I think we probably should)
Jake.Stine
Actually! I was thinking about it and I think I've unraveled the mystery behind proper SIGNAL behavior.
I'm still not entirely sure if a double-throw SIGNAL should actually freeze the GIFpath parser, or just ignore its contents, but everything else I have sorted, and will commit soon.
Jake.Stine
... and just like that, I have discovered that yes, the entire GIFpath should *stall* when SIGNAL is double-thrown -- giving the game as much time as it needs to respond to the first SIGNAL irq and ensure things transfer in the order it wants and/or needs. I'm pretty sure this is used by some games to help them manage their own concurrent path2/path3 transfers.

Revision 3360

[debian]
* rename the directory to be more explicit
* update some files

Revision 3361

GSdx: Improved DX10/11 detection. Fixes crashes using the Configure... button
mid-game.
Jake.Stine
This is still a sloppy detection method, but I can't really refactor it properly until I get my card back.
People are welcome to let MSI know how much they SUCK for not getting my card back to me for over a month now. (it has been in "Preparing to ship" status for almost 2 weeks -- yup, takes a long time to stamp a box >_< )
poisiono...
Perhaps they are pondering whether they will dare trying to sneak past a cheap "might work fix" by, or just replace it.
That sounded a little bashing, but when peeved at corporations any vile though can be a bit warming when in wait or hope.
It is nice of you too work with what you have and at least improve as far as possible under the circums' though :)
kostamar...
Well the detection code fails. I need to open the gsdx config panel twice to see it properly, otherwise there are blank drop down menus and the panel shows the gsdx9 image (while 9600GT is dx10 card). Also any option i make is lost if i restart the emulator (first time blank drop down menus again, second time proper panel but with the default settings).
ramapcsx2
Yep, it just crashes here when trying to configure GSdx. Debugging :p
ramapcsx2
Weird crash..
ramapcsx2
Well, the crash is caused by that UnloadDynamicLibraries(); here.
ramapcsx2
Fixed in r3370.

Revision 3362

UI: Fix hangs when hot-swapping GS plugins (which was introduced r3357)

Revision 3363

zzogl-pg: Bugfix for g_bSaveFlushedFrame, which is *not* used as a boolean, in
spite of the fact it used to be a BOOL type in zerogs (must have started as a
bool that zerofrog later added a few extra bits and toggles to).
arcum42
I was looking a little further at this, and what's even worse is that it's checked with (g_bSaveFlushedFrame & 0x80000000) in one spot, but never actually *set* to anything other then 1 or 0.
And, in fact, that's the only uncommented check for it. Maybe it should just be removed.
Another bad one is g_bIsLost, which is checked multiple times, but never set to anything but false...
Jake.Stine
Probably debugging hacks used by Zerofrog on-the-fly. Stuff he threw in hap-hazardly as he dev'd, and then forgot to remove parts and pieces when it was no longer needed.
arcum42
Yeah, that's probably where it's from. Think I'll comment it out.

Revision 3364

... and it helps when I save both files before committing.
wing...
Good to see work being done on zzogl-pg! =)
Linux users, rejoice!

Revision 3365

[cmake] Fix a typo
[debian] Multiple lintian (package checker) fix

Revision 3366

zzogl-pg: Move the logging code to its own file.

Revision 3367

zzogl-pg: Move the Keyboard code to a separate file.
arcum42
It would not surprise me in the least if this or the last revision breaks ZZOgl on Windows, since I did the Windows changes blind. (Though they weren't exactly rocket science, so it may still compile.)
If it did break, I'll fix it soon.
arcum42
Oh, with this revision, every function in GSmain.cpp is a callback. Which was what I was aiming for.
arcum42
Well, tested with r3368, and Windows is still intact...
arcum42
Well, tested with r3368, and Windows is still intact...

Revision 3368

zzogl-pg: Move various stuff related to GSmain around.
wing...
It's always good to see you guys working on zzogl! The linux comunity thanks you!

Revision 3369

[doc] Add a linux man page for pcsx2. Re use Jack command line description ^^
Jake.Stine
Jake!
.. or "Ajek". Since I often typo it that way when typing.
gregory....
Sorry.
My real problem is I tend to use the french sound to write english word... I will double check next time or just use 'air' no spelling issue :)

Revision 3370

GSdx:
* Fix BIOS graphical errors by re-introducing part of the PATH1 hacks, which is
still needed until further notice.
* Likely fix for DX10+ cards crashing on Configure... (still can't test
directly because MSI sucks, sorry folks)
refraction
Ah yes i never thought of that. we kick out early (when its looped once) so the GS never recieves the rest of the data, so continues the same packet when the next legit one is sent and buggers up. The annoying thing is nloop being > 0 means that a tag is issued, need to debug that really and find out whats sent. Might have a look later.
ramapcsx2
Configure crashing is fixed :)
Jake.Stine
@Ref: the BIOS basically posts an NLOOP of ~7000. Unfortunately VU1 memory can only contain a maximum of 1024 packed registers. Furtheremore, there's no EOP, so even after the nloop draines, it keeps going with another huge nloop. The BIOS writes the EOP into VU1 memory later. It's very bizarre behavior. I assume it's meant to be a boot-up memory diagnostic or something for the VU1 and GS.

Revision 3371

[debian]
* mass package rename from pcsx2 to pcsx2-unstable
* refresh some patches

Revision 3372

[debian]
* finish the rename.
* add the support of the new man pages for the package

Revision 3373

* SIGNAL! Pretty sure I got it handled accurately now, minus GIF stalling.
* Re-added a trace log for the GIFtag parse optimization; Fixed some mVU
warnings.
DevNotes:
Places where GIF needs stalled and resumed are marked with [TODO]'s. We also
need to add a way for SIGNAL to abort the currently processing GIFtag, which
might need a return code added to the callbacks.
Jake.Stine
I'm done for most of the weekend, most likely. Might work on some small UI things, but not much related to GIFpath.
Ref: Just make sure that 'aborted' transfers aren't canceled. Ie, everything up to the SIGNAL should be uploaded to the MTGS, and then the DMA and GIFtag positions should point to the register directly after the SIGNAL until such time that the game clears the CSR bit for SIGNAL.
refraction
no problem, i will make the transfer break, going to run some scenarios to make sure the signal is at the end of the reglist/packet command, if it isnt, im going to have to make it remember that stuff or have offsets (where it can be offset on a 64bit address rather than 128), so i guess in the end it will work kinda like vif stalls.
Don't worry, ill think of something ;)
kristel...
WARNING : Reset PC0
-------------------
yes, it is "Soul Calibur 3" again... - i'm not booting again
Jake.Stine
Known. It might be broken for a while.
Jake.Stine
To be specific: we might go ahead and hack-fix it again later on, but first we're going to spend some time and try to legitimately engineer SIGNAL so that it behaves as it should; which in turn might fix some games that rely on SIGNAL to ensure proper prim/texture transfer completion order to the GIF (something that we've probably been hackfixing via voodoo timing and DMA slicing up to now).
rauleops2
sorry for this but where can i download this r3373? thanks.
Norikumi...
https://code.google.com/p/pcsx2/wiki/CompilationGuideForWindows
kristel...
sorry for off-topic:
You can compile it by your self. Read official forum (http://forums.pcsx2.net/) or search wiki.
Or search&download custom (unofficial) builds through the web, but it is not supported (anyway).

Revision 3374

[debian] * add some template to ease futur ubuntu ppa updates.

Revision 3375

(speedup!) Add missing flushes to COP0 and COP2 (VUmacro execution calls), and
subsequently disable *all* XMM freezes. They aren't needed anymore.
Rationale: Pseudonym did the necessary upgrades to the recompilers a couple
months ago prepping us for a day when we would no longer need MMX/XMM register
freezes. All regs are already being flushed on all memory operations, so I
added proper flushing to COP0 and COP2 here, and removed XMM freeze/thaw code
entirely.
Jake.Stine
Rama has already been testing this for quite a while. So we're pretty sure there's no issues to be found with it. I'll remove the freeze code soon, in its entirety. And from then on, I'd rather we never have to rely on it again. ;)
Jake.Stine
In other news, this commit should make it possible to use most GCC 4.4 optimization options safely, since we no longer have to worry for GCC corrupting our precious xmm registers.
eve...
thanks Jake
testing
gregory....
Just a quick note for gcc 4.4 optimizations. I'am playing grandia 3 with full -O2 (I also check FF12 intro). I did not see any crashes. Anyway better to be corruption-proof :)
refraction
I want to positive twice! i hated the freezing crap :(
Jake.Stine
@ref: and soon we shall clean the code of them all! O_o hurrahs!
wing...
Haven't experienced any speedup on the linux build, maybe we're capped by the opengl plugin?
Anyway, it's good to see this kind of improvement being made! Congratulations, guys!
iakobo...
for what kind of speedup we are talking? 2%? so small that we cant see it? bigger?
great work on cleaning that staff ;)
Jake.Stine
Depends on game. Games that use path3 masking and MFIFO will probably see noticable speedups. Most other games will be minimal.
nokiaqdman
Excellent! I'm noticing speedup about 5-10fps.
aid...
no change in God of War whatsoever. its slowdowns must be based on something entirely different.
overall, great job on 0.9.7 though. GoW is the only game I'm still noticing slowdowns in (@ C2D 3,8 GHz), with my whole PS2 game collection spanning 13 games that's quite an achievement, as the compatibility is top notch.
well, Valkyrie Profile 2 needs some GSdx love badly, but other that that it's really fantastic. I love you guys. ;)
N2008eo...
This revision kill Devil My Cry ===> NOT PLAYABLE!!!

Revision 3376

zzogl-pg: Add a new header. Remove a few includes that didn't seem to be used,
or were included from elsewhere.
arcum42
I'll be adding more to that header later, but I wanted to commit before I break the web of headers...
And if it turns out any of those headers were needed on Windows, but not Linux, I'll bring them back.
gregory....
Arcum,
I'm not sure it worth it to update cmake file for header. On my system, I was able to compile & run without any .h or .inl. I'm thinking to remove them except if there is a special reason to keep them.
Anyway, good works for the cleaning.
arcum42
Thanks. I'm still in the middle of the cleaning, really. I'm just committing any time I get to a good stopping point...
And for me it's just easier to remember to update the cmake files if I do it any time I add or delete a file.
(That and if we ever decide that we want the cmake files to generate Visual C++ project files, for use in Windows, we'll want the headers in cmake. Don't know if we'll want to do that at some point, though.)
gregory....
Hum, ok. So I will keep them.

Revision 3377

zzogl-pg: Shuffle stuff out of zerogs.h to ZZGl.h and Util.h.
arcum42
Essentially, zerogs.h should be a header dedicated to the ZeroGS namespace. Instead, stuffs been shoehorned into it for years. I'm working on cleaning it out.

Revision 3378

[debian] * Create a second rules files to allow testing in system that have
fglrx (ati/amd) drivers

Revision 3379

zzogl-pg: Hack and slash at zerogs.h.

Revision 3380

Remove MMX register freezes from MemcpyFast.
guhun...
It is alot faster. Min frame rate for FF X-2 intro is at 95, instead of 78 in r3375.
kacz...
Amazing speed-up (about 20-30%)! One of the best commits ever!
kacz...
Jake: could you please briefly explain why this 'simple' commit improves speed so significantly?
WilliamS...
Reduced many instruction~~
Great step~~
kristel...
Why it shows me (no matter how many times i compile it) rev. 3375? instead of r3380...r3381 ?
sorry for off-topic
Jake.Stine
I should fix that. PCSX2 checks only its /pcsx2 folder. it should include the common folder as well. Obviously installer changes (nsis / debian) don't change the exe's revision number.
Ami.Mizu...
Reduction in instructions is always welcome when possible. :)
romulux_...
320+ lines of code removed, that is really something with a rare occurance.
GJ Jake!
Jake.Stine
310 of them have been unused for 2 years :p

Revision 3381

NSIS: Fix for installer not installing VS2010 on some systems ( Issue 733 )

Revision 3382

zzogl-pg: Enable a GifTransfer shortcut from GSdx. Comment out two variables
that weren't being used.
arcum42
More then two variables, actually. Forgot about ones I noticed along the way...
Remfin
GifTransfer.h, line 96...little typo there
arcum42
Hmmm. Reverse of the usual way the typo goes. Thanks...
Of course, now I'll have to test that code again. ^_^
arcum42
There's also a missing break statement...

Revision 3383

microVU: Fixed various bugs... fixes "Kingdom Hearts Re Chain of Memories" and
possibly other games that were broken with mVU recently...
WilliamS...
Good Job~~
COTTONVIBES~~

Revision 3384

microVU: Move exception handler code to beginning of mVU rec execution instead
of inside mVUsearchProg.
Jake.Stine
... that won't work. The whole point is that the exception handler has to catch exceptions *before* they try to cross the mVU's recompiled code on the stack frame. Exceptions can't be trusted to cross recompiled code because recompiled code doesn't have entries in the exception unwind tables.
Was the inclusion of the try{} block inside mVUsearchProg a noticeable speed hit?
ramapcsx2
Any code there will be a speed hit. Hard to measure though ><
Jake.Stine
Well that's the actual recompiler part. My guess is that a try block will be like 0.0001% of the overhead of the recompiling process. And it will only be run in that case, so it *really* shouldn't make any diff.
And if it does, I'll just make a quick optimization to mVU's recompiler somewhere and get back like 10x as much speed as was lost. :p
Jake.Stine
... its my fault anyway since I thought I put in the comments why I needed the exception there, but I said "recompilers" instead of "recompiled code".

Revision 3385

zzogl-pg: Minor fix from my last commit.

Revision 3386

Fix for broken stack unwinding in the MSVC debugger in and around the EE
recompiler. Also sped up debug mode execution a bit by removing some per-block
recompiled code overhead that we like almost never use anyway. (it can be re-
enabled through the ini for now)

Revision 3387

in the world of printf, %f uses type (double) internally, not float, so might as
well use double to work the math for this log entry. :)

Revision 3388

* Switch the Confirmation dialogs to use '.' separators instead of ':'
separators. The dots don't get escaped in the ini file, so they're much easier
on the eyes.
* Remove one more dependency on the old vssprintf code; hoping to remove it
soon. Only thing left now is the r5900 disasm code (which is a monster).

Revision 3389

[cmake]
* move build options to the build module
* Add some documentation about the default cmake build options

Revision 3390

[wiki]
* More info for building the package
* Side note for ubuntu ppa

Revision 3391

[copyright]: * Update copyright to use the new postal address of the Free
Software Foundation. Nothing to see.

Revision 3392

Remove all MMX and XMM register freeze code.
DevNote: I could have left the code for the freezes in, except I *really* don't
want us to ever have to resort to using such a system ever again in the future.
For anything. (its just not safe on modern optimizing compilers)
eliotfur
Removing MMX and XMM register freeze code along with r3375 changes gave us approximately 3% speedup since r3353... Nice...
human...
killzone works
human...
with killzone i have crashes to desktop after 3-4 levels.
microVU1: Cached MicroPrograms = [12149] [PC=0755] [List=17] (Cache = 99.977%)
microVU1: Program cache limit reached. Size = 0x2f06051
microVU1: Attempting to resize Cache [65mb]
microVU1: Cached MicroPrograms = [19270] [PC=0617] [List=23] (Cache = 99.938%)
microVU1: Cached MicroPrograms = [19271] [PC=06a4] [List=28] (Cache = 99.969%)
microVU1: Program cache limit reached. Size = 0x61082b4
microVU1: Program cache limit reached. Size = 0x61082b4
microVU1: Program cache limit reached. Size = 0x63ffbc9
microVU1: Cached MicroPrograms = [19598] [PC=0540] [List=19] (Cache = 103.092%)

Revision 3393

[debian]
* reduce requierement for ubuntu lucid
* remove windows file of the linux tarball. Copyright issue and useless anyway
wing...
This should help ubuntu users!

Revision 3394

zzogl-pg: Fence off an area where I can work on the register code without
worrying too much about it.

Revision 3395

[cmake] remove -fPIC. Expect a little speed up.
[plugins] remove __forceinline on variadic function that has been broken by the
removal of -fPIC.
[debian] update readme about fpic status. And add some lintian overrides.
wing...
Good! It was commited pretty fast! Gonna test the new build.
gregory....
Just curious, if you really found some speed up, rise your hand :)

Revision 3396

[asm] * Set a good default GNU-stack note. Need to properly support the nx bits
(security concerns)
See http://www.gentoo.org/proj/en/hardened/gnu-stack.xml for details.

Revision 3397

Emitter: Major refactoring / renaming job. Improved type checking and
usefulness of xAddress* (Void, 32, 64, etc) types.

Revision 3398

* Removed a completely unnecessary use of xSmartJump in the SLT instruction
generation
* Reduced the amount of console log spamming when hitting F4/Tab/etc.

Revision 3399

[debian]
* rename a file
* fix to handle old ubuntu dpkg & debhelper tool

Revision 3400

SIGNAL! Area 51 WORKS! Soul Calibur 3 WORKS! probably broke loads! :P But thats
the first time Area 51 has worked in years.
Only kidding, it should be awsome now, Also added a debug message incase some
Paths are queued on a FINISH, any broken graphics when this shows up (or failure
to load) should be reported asap!
Thanks to jake for his hard work getting signal and my optimizations working :)
jfre1...
Area 51 (PAL) version still doesn't work, however this is the first time that I've seen the game go beyond the first screen. The game now goes beyond that first screen, shows the first movie but then freezes within the next 5 seconds and that's as far as it goes.
So no Area 51 still doesn't work I'm afraid.
refraction
doh, ok that was my hasteyness, i saw it get past the freeze and figured it working cos it use to work lol
refraction
From what i can tell, it dies reading memorycards, so thatd be the first place id look for the problem.
jfre1...
I tested it a few further times with 3404 and it occasionally got past the checks though whether it would successfully get past the check or not appeared to be random as sometimes I could get past it and other times not. On my last test I was able to get up to "Start Campaign" but then got a freeze when checking memorycards there. On the majority of other tests I didn't make it past the first memorycard check.
ramapcsx2
Sounds a lot like SIF timing voodoo then. Tried the EE timing hack yet? Also try the EE and IOP sync speedhacks.
Nice work, ref. Still testing the games :)
romulux_...
+10 verry happy about Soul Calibur 3, since I've started playing recently and I had alot of ugly issues with it untill now, thanks refraction and all the other devs for your team work!

Revision 3401

Forgot to do GIF MFIFO :P
drkIIRaziel
Aren't you supposed to be playing WoW anyway ?
refraction
Im in between wow sessions ;p
poisiono...
Too bad WoW is not for PS2, that might make the different interests fuse somewhat more ;)
A grand apprecitation for all the hard work for us pcsx2-user, humorous attempts aside :)

Revision 3402

Potential fix for Guitar Hero 3

Revision 3403

Gah better change this, else we could get in to a nasty catch 22 with the FINISH
stuff >.<

Revision 3404

Commit Spree! Decided to disable the console spam that is FINISH, seems a lot of
PATH3 games come victim to it (maybe this is why they've always been such a
pain?) so I've disabled the console output

Revision 3405

microVU: Reset rec when buffers cannot grow any larger. (should fix Killzone
crashes)
cottonvibes
Yeh i had forgotten a few rec resets xD

Revision 3406

microVU: converted all code to the new emitter style. If anything breaks, blame
the guy below me.
Ragha...
The previous version was more readable.
ValDanX
But these faster... With small fix it nice revision!
sudonim1
It shouldn't be noticeably faster or slower (except maybe to compile), and I don't know what to say to you if you found the old emitter style readable.
ValDanX
In some game speed up ~3%.
Jake.Stine
I admit I didn't think this would get done like, ever. Let alone in about 24 hrs time.
cottonvibes
nice job, i haven't reviewed it all yet, but so far i don't see any bugs
davo...
have tested and i have come across something. Outrun 2006 coast to coast there are periods of time where the game freezes but then goes back to normal. this is the only rev this has happened on
Edit: Mabey i was wrong about this being the only rev but it did not happen in rev 3392. couldn't get a new rev to test between those 2
cottonvibes
davon92, if you can't test the previous revisions, can you at least try turning on super VU for VU0 and VU1, and see if that fixes the freezes?
davo...
ok will try
davo...
fixes the feeeze the stalls in outrun but jacks up guitar hero 3 even more but switching is ok

Revision 3407

- Working on getting some old code working again which allows comparison between
mVU and sVU program results.
- Have the compiler explicitly pack the VU reg structs since we rely on this.
- Various minor changes.
cottonvibes
Note I initially was going to convert all of these:
xAND.PS(Fs, ptr128[mVUglob.absclip]);
to this format:
xAND.PS(Fs, ptr128[&mVUglob.absclip[0]]);
But after doing so for most cases, I realized that the first version is actually a lot more cleaner and easier to read since its less cluttered with symbols.
And you don't have to be scared that potentially you're passing a value by mistake, since the emitter will give an error if that's the case.

Revision 3408

microVU: avoid making unnecessary copies or instances of xRegister classes.
Cuts out overhead which admittedly shouldn't even be there except MSVC 2008's
C++ optimizer can't optimize constructors to save its life.
Ragha...
Actually MSVC is right. Constructors are special, C++ compiler has no right to optimize them. (Some programs would break in ugly way when they do. And there is too much legacy code to force some extremely rigid standard for compilers)

Revision 3409

microVU: Missed a couple things from my prev commit, and removed some legacy
forceinline stuff (we no longer depend on const-prop to select between VU0 and
VU1).

Revision 3410

* Fix patches, which were broken in r3398 (they weren't being applied).
* Remove some dangerous uses of pxAssume -- pxAssume should only be used for
simple in-place operations, and should never call functions (my fault too, I was
the one who was using it wrong).
ramapcsx2
That was quick :)
prison_b...
great!!!
the camera on fatal frame 1 on battle mode is working normal again :)
but the camera on story mode is still buggy :(
jfre1...
I very much doubt that that was affected by this commit

Revision 3411

Work around VU0.code & VU1.code being packed in Linux when freezing memory.
Jake.Stine
Not good. This code only works for freezing, not thawing. I'll fix.

Revision 3412

zzogl-pg: Mucking around with the new register code.

Revision 3413

zzogl-pg: Change a few assertions into warnings. (Makes it possible to run Final
Fantasy X-2 with Debug builds. With tons of console spam, mind.)
arcum42
Hmmm, "pdepth is has TS_NeedUpdate set". Oops. I'll change that later.
This commit does mean that other people can compile Debug versions and switch to that temporarily when playing FF X-2 in order to see the Ability menu, though.
I'm still looking into why that is happening...
wing...
Thank you very much!
arcum42
Np. In fact, I just established that it's an optimization issue. It works properly if you remove -O2 from the release build. Now I just have to figure out how to get around that...

Revision 3414

microVU: cosmetic changes to some ptr[] instances for SSE and one less x86
instruction for MFIR.

Revision 3415

zzogl-pg: Add -fno-strict-aliasing to zzogl-pg's compiler flags. (Fixes FF X-2.)
arcum42
The down side is that various optimizations use strict aliasing. Oh well, maybe I'll figure out which code the optimization is breaking at some point.
arcum42
I tested with code::blocks, so the cmake build still needs confirmation on this, btw...
ramapcsx2
So it wasn't even an emulation bug..
Nice job :)
gregory....
The good things about that is some warning can be printed "-Wstrict-aliasing"
The part that is surely broken is:
plugins/zzogl-pg/opengl/Regs.cpp:698: warning: dereferencing pointer ‘newinfo.276’ does break strict-aliasing rules
plugins/zzogl-pg/opengl/Regs.cpp:698: note: initialized from here
plugins/zzogl-pg/opengl/Regs.cpp:702: warning: dereferencing pointer ‘newinfo.276’ does break strict-aliasing rules
plugins/zzogl-pg/opengl/Regs.cpp:702: note: initialized from here
Note: There are others warnings but there are not 100% sure.
arcum42
@rama: Thanks. It's the same compiler flag I had to add quite a while back to pcsx2. That time I even knew where the problematic code was, but the only other way I could get it to work was a nasty hack.
@gregory: Thanks. That makes sense, logically, since when I've been hacking on the new Register code, I've been systematically disabling registers, and seeing what it breaks, and occasionally got similar effects.
I'll play with that area a bit, try approaching the code slightly differently there, and see what happens.
wing...
Just tested it on a release build (built with cmake) and the text works now, thank you arcum! =)
arcum42
np.
I'll close the issue, and I'll work on getting zzogl to compile without strict aliasing warnings, and try to get it working without that flag. I may as well check a few other projects as well...
wing...
Guess what?
It apparently fixes this issue! https://code.google.com/p/pcsx2/issues/detail?id=779&sort=-id&colspec=ID%20Status%20Priority%20Component%20Plugin%20Owner%20Summary
I've tested on NGBC and it looks great! Gonna test on Kof2002UM and KOFXi and report back! =)
Wow! I'm really amazed!
gregory....
Just for information, some warnings can be "false positives". So do not try to bash all warning ;)
Here the gcc docs extract:
-Wstrict-aliasing
This option is only active when -fstrict-aliasing is active. It warns about code which might break the strict aliasing rules that the compiler is using for
optimization. The warning does not catch all cases, but does attempt to catch the more common pitfalls. It is included in -Wall. It is equivalent to
-Wstrict-aliasing=3
-Wstrict-aliasing=n
This option is only active when -fstrict-aliasing is active. It warns about code which might break the strict aliasing rules that the compiler is using for
optimization. Higher levels correspond to higher accuracy (fewer false positives). Higher levels also correspond to more effort, similar to the way -O
works. -Wstrict-aliasing is equivalent to -Wstrict-aliasing=n, with n=3.
Level 1: Most aggressive, quick, least accurate. Possibly useful when higher levels do not warn but -fstrict-aliasing still breaks the code, as it has very
few false negatives. However, it has many false positives. Warns for all pointer conversions between possibly incompatible types, even if never
dereferenced. Runs in the frontend only.
Level 2: Aggressive, quick, not too precise. May still have many false positives (not as many as level 1 though), and few false negatives (but possibly more
than level 1). Unlike level 1, it only warns when an address is taken. Warns about incomplete types. Runs in the frontend only.
Level 3 (default for -Wstrict-aliasing): Should have very few false positives and few false negatives. Slightly slower than levels 1 or 2 when optimization
is enabled. Takes care of the common punn+dereference pattern in the frontend: "*(int*)&some_float". If optimization is enabled, it also runs in the
backend, where it deals with multiple statement cases using flow-sensitive points-to information. Only warns when the converted pointer is dereferenced.
Does not warn about incomplete types.
gregory....
Just for the record, I rebuild with the warning most of linux stuff. I took only the "does break warning". It is probably a miracle that pcsx2 run with O2 options ;)
pcsx2/MTGS.cpp:390: warning: dereferencing pointer ‘local’ does break strict-aliasing rules
pcsx2/MTGS.cpp:389: warning: dereferencing pointer ‘local’ does break strict-aliasing rules
pcsx2/MTGS.cpp:388: warning: dereferencing pointer ‘local’ does break strict-aliasing rules
pcsx2/MTGS.cpp:390: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
pcsx2/MTGS.cpp:909: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:908: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:896: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:895: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:894: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:893: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:810: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:741: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:740: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:893: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:894: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:896: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:895: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:909: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:908: warning: dereferencing pointer ‘tag’ does break strict-aliasing rules
pcsx2/MTGS.cpp:164: warning: dereferencing pointer ‘local’ does break strict-aliasing rules
pcsx2/MTGS.cpp:163: warning: dereferencing pointer ‘local’ does break strict-aliasing rules
pcsx2/MTGS.cpp:162: warning: dereferencing pointer ‘local’ does break strict-aliasing rules
pcsx2/Dmac.h:100: warning: dereferencing pointer ‘tag.1879’ does break strict-aliasing rules
pcsx2/Dmac.h:245: warning: dereferencing pointer ‘tag.1879’ does break strict-aliasing rules
pcsx2/Dmac.h:100: warning: dereferencing pointer ‘tag.1879’ does break strict-aliasing rules
pcsx2/Dmac.h:245: warning: dereferencing pointer ‘tag.1879’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1837: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1845: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1845: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1845: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1845: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1857: warning: dereferencing pointer ‘psrc’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1857: warning: dereferencing pointer ‘pdst’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1862: warning: dereferencing pointer ‘pdst’ does break strict-aliasing rules
pcsx2/CDVD/CDVD.cpp:1866: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
arcum42
Ah, good. I hadn't tackled that yet because I don't own any of those games.
That happens, though. One little issue like this can turn out to affect a bunch of things...
arcum42
Well, you'll notice "-fno-strict-aliasing" in pcsx2's flags. :)
And don't worry, I'll use some judgement. I'll only do the ones that look problematic. (Which is a lot of zzogl's code...)
arcum42
Hmmm... It breaks on some really silly things, doesn't it?
gregory....
Good catch. Actually I remove the flag, when I enabled O2 for testing ^^ It was not my best idea.
wing...
You sir are my new hero!
"The King of Fighters XI" and "Neo Geo Battle Coliseum" works perfectly now! "The King of Fighter 2002: Unlimited Match" still has the same problem but I guess it's a different bug since on the first two ones I've experienced black/missing sprites and on KoF2k2 it's a transparency and slowdown problem.
So it seems someone should edit issue 779 and set it just for KoF2k2:MI. The other two ones are fixed.
THANK YOU VERY MUCH!
wing...
@gregory Really? I've recently started testing it with O3 and everything is pretty stable =)
gcc version 4.4.2 (Gentoo 4.4.2 p1.0)
gregory....
Well actually it depends, if you remove "-fno-strict-aliasing" like I probably did in the patch I post on the forum. It could have some issues. The new cmake options is much more safe ;)
arcum42
IIRC, the opening to Yugioh: Duelists of the Roses had been broken by strict aliasing previously, and was fixed when I put in "-fno-strict-aliasing". Admittedly, that's an obscure game to check...
pcsx2gu...
arcum: I have the game so if you need a dump or something I can provide. GJ too for this rev
arcum42
@pcsx2guide: If you mean KoF2k2, a dump might be useful. Yugioh: Duelists of the Roses I actually have. I mentioned that since that's the game I'm going to check when I have time.
And just to confirm, the code causing the issues is in GIFRegHandlerTEX. I think whats happening is that that the expression in that if statement is evaluating to false when optimized, and true when not optimized.
However, looking at the code, I personally think that the if statement should only control if it does a flush or not, and that the registers should be written regardless... (Which is what GSdx does.)

Revision 3416

[cmake] Move flags clean in the build modules. Next step allow user to control
them.

Revision 3417

[cmake] * new cmake option to contol flags (allow user to break everythings^^):
USER_CMAKE_C_FLAGS and USER_CMAKE_CXX_FLAGS
For example enable more optimization on c++:
cmake CMakeLists.txt DUSER_CMAKE_CXX_FLAGS="-O3"
Or more warning on c++:
cmake CMakeLists.txt DUSER_CMAKE_CXX_FLAGS="-Wstrict-aliasing"
wing...
Good work! So it means the wiki should be updated? Btw, the part on the zzogl svn is deprecated since it has merged into pcsx2 main svn repository ;)
gregory....
Yes I know. Just leave me some time ;)

Revision 3418

[wiki]
* Add a "deprecated" to the very old first part of the wiki
* update cmake options
* update debian file with latest renaming

Revision 3419

SPU2-X: More volume! Expect to have to turn your speakers down a bit. (made
possible by proper clamping)
thiago_...
jake... you are the best...

Revision 3420

GifPath: Fixed Reglist optimization for split transfers, might fix the Tekken 4
hang (if you are experiencing it)

Revision 3421

Re-fix for some GCC packed structure bug. Hopefully this version works. It
should according to the bug being tracked.

Revision 3422

SPU2-X:
We overshot the final pre-clamp shift by one bit. Should be final now ;)

Revision 3423

Now Area 51 works :P Ok this probably fixes Tekken 4 properly, id missed some
bits when moving some of the code over, which would have caused it not to work
right, plus my favourite = instead of == slipped in..
jfre1...
Confirmed on Area 51 working. Tested several times. No problems at all. Great work :).
pcsx2gu...
Tested r3432, Tekken 4 regression is gone, good job ;)

Revision 3424

microVU: Minor cleanups.
Note: Why do I use gprT1 instead of eax, or xmmT1 instead of xmm0 directly.
For three reasons:
1) It allows for easily "finding all references" of the gpr/xmm reg within mVU
only, as opposed to pcsx2 entirely.
2) It clearly labels the registers for their purpose in mVU.
3) It makes changing of the registers easier if it ever needs to be done.
Jake.Stine
Relating to gprT's only:
Reason 2 isn't relevant to gprT's because the purpose of eax, ecx, and edx is already quite clearly defined in x86 ABI. They should be used as local-scope temps only. I mean it's possible to use them for regalloc, but it isn't a good idea since there would need to be explicit control over flushing them across instructions that require them for special purposes (due to various x86 instructions that require them for shifting/mul/div/etc). More importantly, programmers simply don't expect to have to track or flush those regs. If I code in some extra temp crap to diagnose things, I expect to be able to throw eax, ecx, and edx at it. If I can't, that is pretty much a design error of the environment I'm coding for.
Reason 3 will never happen for the gprT's, since eax, ecx, and edx should pretty well always be the temp regs anyway. That is, if you're working on the assumption that you're going to *have* temps, then by all means you should have eax, ecx, and edx *always* included in that list. To take them out of the list and use some other reg(s) instead would be creating a lot of work and confusion for everyone. If the x86 ABI already defines temps for us, why remap them?
Thusly, Reason 1 is no longer relevant because we've now determined that these 3 regs are always guaranteed to be safe and local-only. There is no longer any reason to have to find their references on a 'global' scale because their values are only ever meaningful in a local scope to each instruction.
Seriously, we freely use them as standard temp regs everywhere else in PCSX2. Its not a big deal.  ;)

Revision 3425

UI: Fix a possible deadlock in the console (was introduced sometime after
r3119).

Revision 3426

UI: Saw some other minor mistakes in the console log threading >_<

Revision 3427

microVU: minor cleanup using a typedef to eliminate some redundant list.list->
syntax. :)

Revision 3428

[copyright] * second round of bad FSF postal address.

Revision 3429

[copyright]
* Add missing copyright according issue 792
* Miss few files from the previous commit ^^

Revision 3430

[copyright]
* same as previous commit except for zzogl

Revision 3431

Starting some much needed CDVD work. No functional change yet.

Revision 3432

CDVD:
- First version of a disc swap that actually works. May not work yet. :p
- It's ugly and incomplete but it works in Star Ocean 3. (I blame the heat!)

Revision 3433

[copyright]
* Upgrade SGI license to 2.0, opensource compliant :) and GPL compatible :)
Note: previous version (1.1) is not free. And therefore not compatible with GPL.
Fortunately for us, there is a license clause that allow upgrading the license.
bailacom...
Wooow, geat, now i can play Dragon Quest 8 at 758fps (y)(y)(y)
wtonberr...
Gracias
Esto quiere decir que ahora si compilo el pcsx2 en mi compu, podre probarlo y testear sin problema todo su contenido? o seguire teniendo problemas de compilarlo?
Muchas gracias otra vez :D +1
Google traslation
Thanks
This means that now if I compile on my computer the pcsx2, to test and test all of its contents without a problem? or continue to have problems compiling?
Thank you very much again :D +1
KKL...
This is a change of the license used, not a code change.
gregory....
It is only means that is it now legal for user to download it and to compile with GPL code. This is important if PCSX2 want to ship linux package for linux users.

Revision 3434

[debian]
* remove some files (useless or copyright issue) from the source package.
* Use some user defined cflags for cmake. (package will use O2 by default)

Revision 3435

CDVD:
- Disc swapping should work in most games. It's easy to break though and the
code is all over the place :p
azte...
congrats for this, you update it pretty fast.

Revision 3436

GSdx:
- Fix a tiny GUI bug. Thanks for spotting it, KrossX ;)
KrossX3
Yay! I'm so useful! :)

Revision 3437

zzogl-pg: Work on the FOGCOL & GIFRegHandlerTEXA registers in the new register
code.

Revision 3438

CDVD:
- More changes to media change detection.

Revision 3439

[copyright]
* another bunch of copyright fix.

Revision 3440

[cmake]
* Do not compile useless utf8.* files.

Revision 3441

SPU2-X: Remove obsolete utf8 files.
gigaherz
What did I use those for anyway? XD
Jake.Stine
I used them when I originally ported spu2-x to unicode, which was a precursor step to porting pcsx2 to unicode; this before we decided to use wx instead.

Revision 3442

* Fix for Issue 493 -- non-standard SYSTEM.CNF contents are handled better now.
* Some minor exception/error handling fixes and improvements.
DevNote: the BOOT2 elf loader fix is still a hackfix. I documented the proper
fix for mimicking PS2 BOOT2 parsing, but not in a mood to do the full proper
implementation right now.
gladiato...
Yuyu Hakusho works again.
kaboo...
yayyyy but only if I skip the bios (fast boot option)
else it says no PS2 DVD XD the "RED SCREEN"
gladiato...
Really? I used the bios for running Yuyu Hakusho, not the run fast option.

Revision 3443

UI: Slightly better console log scrolling logic.
DevNote: This is about as user friendly as the log will ever get while using
Windows RichText control. The only way it will ever behave better (notably when
draggin scrollbars and such) is if we write a custom read-only log text control
that paints itself manually.
refraction
glad the scrolling is improved, it was bugging me a little how it seemed to clear the screen >.<

Revision 3444

zzogl-pg: More changes to the new register code.

Revision 3445

zzogl-pg: Fix mistake in last commit.
arcum42
Forgot I'd commented that...

Revision 3446

zzogl-pg: Here I go, splitting code into separate files again...

Revision 3447

zzogl-pg: Be more consistant about the plugin name and years in the headers.
arcum42
I'd been meaning to change that. If the project is ZZOgl, we shouldn't have headers proclaim it to be ZeroGS. And Zerofrog *did* do some work on it after 2006. He might have even done a final commit or two in 2009, thinking about it.

Revision 3448

zzogl-pg: Add some register logging code. Fix a bug in the new register code I
noticed.
Jake.Stine
I've noticed recently with these refactorings that the win32 build of zzogl keeps getting more and more float-to-int warnings. Granted a few of these are probably ok, however:
1. its a very slow process converting floats back to ints. Generally you want to avoid it when possible.
2. Most of the GS's own internals are fixed point arithmetic, for which floats are actually pretty inaccurate in mimicking. There are a couple exceptions, though I don't know them offhand (all of the fixed point and floating point uses are documented).
arcum42
Thanks for pointing that out. That warning doesn't show up when compiling in Linux.
Actually, all those warnings are caused by one line of code in a header, and that code isn't run unless you comment out a define in the same header. (it's called by the new register code I've been working on.)
Looks like I somehow thought f was a float rather then a u16, though. I'll fix that...
arcum42
One thing that is bugging me is that I noticed that the register DIMX isn't even implemented in ZZOgl. And colclamp gets set, but never checked. I might have to put together a list of unimplemented registers...

Revision 3449

[debian]
* Add copyright information
* Downgrade depend to recomment to avoid circular dependency

Revision 3450

zzogl-pg: A few Windows changes, and fix an incorrect variable type.

Revision 3451

GIFpath: Set up incTag to work only in QWC. Required redoing the REGLIST mode
handler a bit. This is needed for an in-progress MTGS project I'm in the middle
of; so I'm hoping I did it right and don't screw anything up. (someone test
Tekken 4 for me)
Ragha...
"needed for an in-progress MTGS project" Which one?
gigaherz
If he didn't mention it then you don't need to know yet ;P
refraction
tekken 4 should be fine, data is recieved and processed in qw amounts, so there wont be a single case it only increments in 64bit (you've covered any possibles)
Jake.Stine
It wasn't about that so much -- size is in QWC after all -- but the problem was that the old algo did a "trick" to convert size to half-QWCs: size*2 and then size/2 later. My new giftag parser for the reordering MTGS will use parse-and-copy "technology" (lol) and so it wants everything to stay QWC-bound for optimal performance. :)
refraction
Ahh right, well your new code should be fine, i dont see there being any problem with it :)

Revision 3452

zzogl-pg: Removed some redundant code in the new register code.

Revision 3453

microVU: minor changes to list traversing in-case the compiler doesn't already
optimize these out.

Revision 3454

GSdx: Add support for the new hack-free GSgifTransfer callback, which will
supercede the various hacky GSgifTransfer1/2/3 callbacks in use now. This
version of GSdx will be *REQUIRED* by PCSX2 soon.
DevNote for zzOgl coders: Implementation of this callback can just double up on
m_path[0]. I used a separate instance at m_path[3] mostly because it was easier
than trying to fight around the existing PATH1 nloop hack, which is still needed
for backward compat with existing and earlier versions of PCSX2.
kristel...
any changes... movement... in GSdx - is good
kristel...
Look like SoulCalibur 3 suffered from the loss of speed
not sure where it come from; PSCX 3453 or GSdx 3454...
PCSX2 r3451 + GSdx r3370 subjectively faster
jfre1...
How much of a speed drop?
kristel...
~3-5%

Revision 3455

Created branch for implementation of the 'Reordering' MTGS; a new version of the
MTGS that will ensure packets are uploaded to the GS in the proper order, and in
complete form... such that the GS plugin will be able to process all GIFtags
through a single instance of m_path via a single hack-free GSgifTransfer
callback.
kristel...
forward, - to the bright tomorrow!
eliotfur
This may sure fix some nasty games in the future, doesn't it?..
jfre1...
Well already Area 51 works. That game didn`t work for aggggggeeeesssssss.

Revision 3456

The updated PS2edefs.h for the new GSgifTransfer callback might help. >_<

Revision 3457

zzogl-pg: Bug fig on new register code.
arcum42
This was affecting FF2 dialog. Of course, no changes marked "new register code" will be noticeable, because they are if-deffed out. Which is good, because for the moment, the old register code is likely to be less buggy.
arcum42
Bug fig? Bug fix.

Revision 3458

ReorderingMTGS:
* Implemented GIFPath_CopyTag, which performs a "copy-in-place" while parsing
tags (big speedup over the old parse-then-copy strategy, especially with the SSE
intrinsics I've included for kicks).
* Removed the old ringbuffer 'restart' mechanism and replaced it with a truly
free-flowing wrapping mechanism. Utilizes the ringbuffer more efficiently, and
removes quite a bit of overhead from the MTGS's PrepDataPacket call.
Jake.Stine
Both of these changes are precursors to implementation of packet reordering; the fact that they were both speedups was just a nice bonus, really. Speedups in the Xenosaga 2 intro are about 10%.
Because this is the MTGS and it is a threading nightmare, this branch really needs some quality testing in order to qualify it free of threading bugs.
ZZogl's implementation of GSgifTransfer can be done here or on the trunk.
arcum42
I may as well do it in the branch, since I'll need to do a minor Linux compilation fix anyways... (GifPath.cpp needs #include <xmmintrin.h> included.)
iakobo...
just wow.... thats allot of job you did there in the last revs!!!!
Ami.Mizu...
+10 for all recent and probably upcoming commits on MTGS. :)
eliotfur
The day mentiond in microVU_Lower.inl has come... Can't wait to test theese when they'll be in the trunk...
JohnnyKi...
I see that the pcsx2 team does great work since the release of 0.9.7 :D
refraction
Bit of a late thought, but this might actually fix the ffx video corruption, which would be nice!

Revision 3459

ReorderingMTGS: zzogl-pg: Add GSgifTransfer. pcsx2: Add an include so Linux
compiles.

Revision 3460

[CDVDnull]
* include a common file to define sysmessage
* Do not compile useless CDVDnull/Linux/* files
arcum42
If they aren't being used, you could delete those files as well...
gregory....
I did not do it in case in was a template for futur work. But yes, I will delete them.
Others files that could be delete are 'autotools script and co' at least when we have a fully working codeblock and cmake build.
arcum42
With the null plugins, as long as it compiles without the callback.*, interface.*, and support.* files, you're fine. I think the other two cd plugins still use the auto-generated glade 2 files, and peops probably does, but other then that, you're good...

Revision 3461

[debian] Remove useless CDVDnull files of the source package.

Revision 3462

[CDVDnull] Completely remove unused files.

Revision 3463

[autotool] Remove autotools for *null plugins, CDVDiso, zerospu2. Superseed by
cmake & codeblock, no reason to keep them.
gregory....
Note: I did not touch zeropad, zerogs plugins are deprecated anyway. Neither zzogl-pg in case is still need for the ZeroGSShaders program.
arcum42
Yeah, only real reason why zerogs and zeropad are in there these days is in case zerofrog shows up and wants to work on them, rather then working on the replacements we have in trunk...

Revision 3464

ReorderingMTGS: Bugfix for possible corruption/crash if a vsync happens at the
ends of the ringbuffer.

Revision 3465

Attempted generated sse memcpy using movaps.
Seems slower than memcpy_amd_ so didn't enable it.
I tried two different versions, one generates 0x400 different functions, and the
other generates 1 function and jumps to the correct entry point.
The later seems faster, but still slower than memcpy_amd_...
(only tested the title-screen of GoW though...)

Revision 3466

CDVDnull: Fix an MSVC compilation error.

Revision 3467

ReorderingMTGS: Minor performance tweak. MTGS was only queuing 1 frame ahead
instead of 2.

Revision 3468

Added a third alternative for memcpy_vibes. This one uses SSE intrinsics and is
able to inline fully (no call/ret overhead).

Revision 3469

Fix new aligned memcpy (probably, it still hasn't been tested at all) and
removed calls to it that were added to test code generation.

Revision 3470

pcsx2: Tell codeblocks that the headers for Utilities are in src/Utilities, as
well as in include/Utilities. (Gets it to compile if I add MemcpyVibes.cpp to
the project.)
arcum42
Only relevant on Linux...
arcum42
The trick here is that normally #include "PrecompiledHeader.h" works fine when compiling files in src/Utilities because it automatically searches the current directory before checking it's search paths.
But MemcpyVibes.cpp is in a *subdirectory* of Utilities. So it wasn't seeing it in the current directory or in the search directories, which were where includes are normally supposed to be located.
So now it checks in the src/Utilities directory as well, in the off-chance that we've stuck a header there for some reason. Like appears to have been done with PrecompiledHeader.h.
This revision doesn't affect the CMake build, but I figured I'd leave that to greg, in case he runs into the same issue, since he's more experienced with cmake.
And pcsx2 still compiles without MemcpyVibes.cpp for the moment, so there's no rush; it'll just probably be needed in the future...

Revision 3471

[cmake] Update include dir path.
[debian] Update dependency
* only wxWidget 2.8.10 is supported
* Add the missing nvidia-cg-toolkit manually.
gregory....
As bonus for user. They can run pcsx2 ubuntu package with ubuntu version of nvidia-cg-toolkit. The others version (nvidia-cg-toolkit-pcsx2) is only usefull for building the package.

Revision 3472

ReorderingMTGS: Added a new optimized memcpy_amd_qwc, for use by GIFpath copies.
After much studying, we determined this is about as efficient as memcpy will
ever get, for what we're doing with it.
DevNot: Win32-only at the moment -- needs a GAS port (but that shouldn't be
hard). I made some notes in the code about it.
wing...
Cool! I'll be waiting for a linux commit =)
Jake.Stine
Concerning GCC porting: I made a note in the code suggesting a GAS version of memcpy_qwc; but for now it can use a .S conversion, even if an inline GAS version might be more optimal in the long run. For one, GCC's global optimization ability is not yet implemented, so it won't be able to optimize unless the memcpy_qwc is turned into a macro that inserts the GAS directly. Secondly, its only 3 instructions that, more than likely, a core2 cpu executes in a single cycle.  ;)
So if a .S version is a lot easier, then might as well stick with that for now.

Revision 3473

* Minor optimization to GIFpath, by utilizing the precached value for numregs in
place of a convoluted test against NREG.
* Disabled the SSE store version of memzero (no performance benefits and it was
messy anyway)

Revision 3474

ReorderingMTGS: Templated the GIFPath parsers, to allow for SSE optimizations.
refraction
tbl_CopyTag[0] = x86caps.hasStreamingSIMDExtensions ? _CopyTag_tmpl<CpuExt_SSE, 0> : _CopyTag_tmpl<CpuExt_Base, 0>;
is it worth doing all that? considering the emu wont run on a machine that doesnt have SSE anymore.
arcum42
Not to mention that switching on x86caps.hasStreamingSIMDExtensions like that with ?: gets Linux all confused for some reason. I'm sure I could have worked around it when fixing Linux up, but we'll have thrown an exception by then anyways...
Jake.Stine
As I mentioned in another revision, PCSX2 actually (used to) work fine on MMX-only machines. We broke it recently with my memzero thing (that I didn't really intend to leave as it was, I just got sidetracked and later forgot all about it), and with the new VIFunpacker, and with the new yuv2rgb conversion.
The memzero one is fixed. The VIFunpacker can fall back on interpreters, and yuv2rgb needs a reference version coded in C.
*or* we can make SSE the new minimum requirement for all of PCSX2. That was never an official group decision though.

Revision 3475

[cmake]
* Major rework of the linker flags. Use some globals flags for -s and -m32
Add a USER_CMAKE_LD_FLAGS variable. Easier to play with advanced link flags
for future gcc version (>=4.5)
* Remove useless stub file
[debian]
* minor dependency fix

Revision 3476

ReorderingMTGS: Hackfix Linux, until some assembly is written.
arcum42
The bit in Memcpyfast.h is mainly so I can keep compiling Linux until greg or I write a Linux version of memcpy_qwc. (Probably me, but you never know...)
gregory....
Probably not me :) (well depend if it is a pressing task). I take 1 week of holidays in 3 days and I still need to finish planning it.
arcum42
This works around it anyways, by using the old memcpy code, which isn't quite as optimized, so it shouldn't be a rush.
A weeks vacation sounds fun; wish I had one lined up.
Don't worry about memcpy_qwc. I'll probably cobble something together in a few days, and pcsx2 will still work in the meantime. And I'll try to make sure the cmake build doesn't break too badly while you're gone...
arcum42
I always overestimate how long assembly will take me (mainly because I dislike working with it.).
Looks like I'll commit something tonight, though I'll wait on enabling it for a little bit.
arcum42
Committed.
Jake.Stine
PCSX2 only errors on startup only if the CPU lacks MMX. PCSX2 interpreters should be fully functional even on a CPU without SSE. We sort of got away from that for a while with various experimental SSE optimizations, but my intention was to restore full MMX-only ability to PCSX2 prior to releasing a non-beta.
However, if everyone agrees, I could up the minimum requirements for running interpreters to SSE.

Revision 3477

ReorderingMTGS: Initial Linux version of memcpy_amd_qwc. Disabled for now, till
I get a chance to look it over better.
arcum42
This code does actually compile and run if I un-ifdef it. As it says, it needs a clobber list, and I also want to look it over and see if I missed anything later.
Jake.Stine
clobber list should be, I think: eax, ecx, edx, mm0, mm1, mm2, mm3.
gregory....
Nice. If mm register are needed in clobber list. I thinks we must also fix others asm stuff in zzogl.
Technically, gcc already put src, dest and qwc in register so I hope it remove the first mov.
Anyway I think the keyword volatile is needed (performance impact). Not sure how it is working. Because of the output gcc know that we potentially change dest, src, and qwc but it probably does not know that we also change dest+1.. dest + qwc. Maybe "memory" must also be added to the clobber list.
Jake.Stine
Yeah, add "memory" to the clobber list.
>> Technically, gcc already put src, dest and qwc in register so I hope it remove the first mov.
I think GAS has syntax for that? an "m" option or something, that auto-allocs a register to a memory address. But I'm not sure how that works for incrementing registers that we have here. Ther's a way to do it of course, but because *someone* wasn't interested in making a human-readable syntax nor sufficiently documenting the non-readable syntax they lazily implemented, none of us will be able to find out without a severe amount of headache'ing.
gregory....
Jake,
Have you look at the performance, if you use string operation ? Like REP, STOS and LODS (or more relevant one). There instruction are probably optimized in hardware (like the increase of the counter).
gregory....
Could you someone explain why there is [var] before input/output contrainst ?
arcum42
I absolutely always end up referring back to this page when working on GAS:
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
And I thought about using "m" instead of "r". But it gave me the incredibly useful error message "Error: Unexpected token `('" with an incorrect line number when doing that. Which is one of the reasons why I hate dealing with inline assembly in gcc.
I'll use "memory", "eax", "ecx", "edx", "mm0", "mm1", "mm2", "mm3" for a clobber list for the moment. I'll wait on committing anything until I'm more awake, though.
And the [var] before the constraints is so that I can use the var names in the code instead of using %0, %1, %2, etc..
gregory....
Hum ok. I did not know that trick, I just rename everythings^^. I thinks it is better to keep register anyway. However they must be use directly instead of using eax, ecx, edx.
The idea (without var name because do not know the exact syntax):
- "mov ecx, [%[dest]]\n"
- "mov edx, [%[src]]\n"
- "mov eax, [%[qwc]]\n" // keep a copy of count
- "shr eax, 1\n"
+ "mov  %%esi, %2\n"// keep a copy of count
+ "shr %2, 1\n"
"jz memcpy_qwc_1\n" // only one 16 byte block to copy?
- "cmp eax, 64\n" // "IN_CACHE_COPY/32"
+ "cmp %2, 64\n" // "IN_CACHE_COPY/32"
"jb memcpy_qwc_loop1\n" // small copies should be cached (definite speedup --air)
...
Rename eax, ecx ,edx
...
".att_syntax\n"
- : "=r"(dest), "=r"(src), "=r"(qwc)
- : [dest]"r"(dest), [src]"r"(src), [qwc]"r"(qwc)
- //: Needs a clobber list here
+ : "=&r"(dest), "=&r"(src), "=&r"(qwc)
+ : [dest] "0"(dest), [src] "1"(src), [qwc] "2"(qwc)
+  : "mm0", "mm1", "mm2", "mm3", "esi", "memory"
);
gregory....
Forgot a point. The esi register is to keep the value for testing the 16bytes packet.
- "test [%[qwc]],dword ptr 1\n"
+ "test %%esi,dword ptr 1\n"
Jake.Stine
It's more efficient to not waste a register for storing [qwc]. The compiler can use that register for something else more important than one indirect memory access (which is guaranteed faster than the two-instruction alternative of loading esi)... Especially since I think GAS will end up allocating qwc to a register anyway.
Additionally:
>> Have you look at the performance, if you use string operation ? Like REP, STOS and LODS (or more relevant one). There instruction are probably optimized in hardware (like the increase of the counter).
REP instructions are impossibly slow on Core2 and prior CPUs -- as in several magnitudes slower than drawn out loops. Only the i7 has a REP that's usable, but unfortunately there's no way to make inlinable code cpu-dependent without building entirely separate instances of PCSX2.
Additionally, REP MOVSD is only good for copies between 512 bytes and 2k. Copies smaller than 512 bytes require too much setup code and CPU latency for kick-starting the REP engine. Copies larger than 4k need to use non-temporal stores (movqnt instruction) to avoid murdering the L2 cache. In my tests, using movqnt is the *single* most important factor in memcpy speed. Using movqnt on copies under 2k causes very noticable slowdowns, and *not* using movqnt on copies over 2k has a similar negative impact.
If you want to learn all about how much it sucks trying to optimize for modern CPUs, read Agner Fog's docs:
http://www.agner.org/optimize/
gregory....
Hum ok. indirect memory access can be keep. In fact I thinks I write something wrong and lost one indirection in the process ^^. Need to thinks about it.
Thanks for the link.

Revision 3478

ReorderingMTGS: Some cleanups and minor fixes to thread benching.
gregory....
Hum, would not be better to save qwc in a register (esi or edi) and to reuse it for the odd number check.
Another possibility will be to move this part at the beginning. It will save the saving of the value but we lost the prefech hint of 16 bytes (could also do a 32byte prefetch first, depend on the number of small block).

Revision 3479

ReorderingMTGS: only disable the vsync queue limit is both framelimiting AND
vsync are disabled. (ensures no mysterious half-second input lag if some user
has a bizarre config)

Revision 3480

[zzogl] Square asm constraint. No change, just better bug-proof.
* add xmm register to the clobber list.
* Add input contrainst (avoid to depend of the function attribute and easier to
understand)

Revision 3481

[x86emitter]: Fix spaming warning of comparaison integer vs non-integer

Revision 3482

IPU: Reference (slow but clear) implementation of yuv2rgb which could also be
used as an alternative for SSEless processors, as if we really care about them.
azte...
ppl with old computers thank you sudonim.
sudonim1
No they don't. AMD's K7 range is the last without SSE2 and wouldn't even be fast enough for testing with the interpreters.
Jake.Stine
It is for reference, in the event we want or need to port the code to a newer CPU instruction set.
azte...
sudonim, i see, that's bad.
JohnnyKi...
Good for the ones with old comp... :)

Revision 3483

[wiki]
* add an index
* Update old forum link.
* add a part for ppa ubuntu
tarrag...
Good job for linux users ^^

Revision 3484

ReorderingMTGS: Revise memcpy_amd_qwc for Linux.
gregory....
There is something about qwc that I'm not sure.
In memcpy_qwc_1 label, the value of qwc is tested. But it must be the original value and not the updated one. Note I think there is a bad indirection ie %[qwc] not [%[qwc]].
An idea is to do the 16bytes block first.
gregory....
A quick implementation of the idea. Really need a benchmark.
--- include/Utilities/MemcpyFast.h (revision 3484)
+++ include/Utilities/MemcpyFast.h (working copy)
@@ -48,9 +48,18 @@
//"mov ecx, [%[dest]]\n"
//"mov edx, [%[src]]\n"
//"mov eax, [%[qwc]]\n" // keep a copy of count
+ // test round number of 32 bytes blocks
+ "memcpy_qwc_1:\n"
+ "test %[qwc],dword ptr 1\n"
+ "jz memcpy_qwc_32_block\n"
+ "movq mm0,[%[src]]\n"
+ "movq mm1,[%[src]+8]\n"
+ "movq [%[dest]], mm0\n"
+ "movq [%[dest]+8], mm1\n"
+
+ "memcpy_qwc_32_block:\n"
"shr %[qwc], 1\n"
- "jz memcpy_qwc_1\n" // only one 16 byte block to copy?
-
+ "jz memcpy_qwc_final\n" // no 32 byte block
"cmp %[qwc], 64\n" // "IN_CACHE_COPY/32"
"jb memcpy_qwc_loop1\n" // small copies should be cached (definite speedup --air)
@@ -71,7 +80,7 @@
"sub %[qwc],1\n"
"jnz memcpy_qwc_loop2\n" // last 64-byte block?
"sfence\n" // flush the write buffer
- "jmp memcpy_qwc_1\n"
+ "jmp memcpy_qwc_final\n"
// 32-byte blocks, cached!
// This *is* important. Removing this and using exclusively non-temporal stores
@@ -94,14 +103,6 @@
"sub %[qwc],1\n"
"jnz memcpy_qwc_loop1\n" // last 64-byte block?
- "memcpy_qwc_1:\n"
- "test [%[qwc]],dword ptr 1\n"
- "jz memcpy_qwc_final\n"
- "movq mm0,[%[src]]\n"
- "movq mm1,[%[src]+8]\n"
- "movq [%[dest]], mm0\n"
- "movq [%[dest]+8], mm1\n"
-
"memcpy_qwc_final:\n"
"emms\n" // clean up the MMX state
".att_syntax\n"

Revision 3485

[wiki] Cmake do not detect properly variable type ! So update the doc to add it
manually.

Revision 3486

[wiki] Add a big note that amd 64bits is not supported on linux.
yoshi...
so, is native 64bit pcsx2 planned at any point in the future?
or is it so distant that's pointless to ask atm?
gregory....
lol, re ask the question in 2 years.
Pcsx2 directly generate optimized x86 code from ps2 code. The purpose is to keep good performance (like virtual machine for example). It will be very difficult to generate 64 bits code with same level of performance. In this situation we need to redo all the core emulations, which is multi years of work...
arcum42
Also, see:
http://forums.pcsx2.net/Thread-We-are-dropping-x64-PCSX2-Playground-builds
That was for pcsx2-playground, but most of it still holds true for pcsx2.

Revision 3487

[IPU] Fix a gcc failure with c+0x standard
Note: What I understand some define use the minus symbol and so gcc does a sign
extension on 32bits.
Not compatible with u16...
To fix it I kept only the first 16bits. We could also redefine the constant
without the minus
sudonim1
What? Assigning to a u16 masks off the upper bits in every C and C++ standard afaik. And && doesn't mask anyway.
gregory....
May be a compiler bug ! Honnestly I did not read the standard.
Here the log message of gcc (4.5) when enabling the (I know) experimental standard. It is the only error and the fix was harmless.
pcsx2/IPU/yuv2rgb.cpp:102:1: error: narrowing conversion of ‘-0x000000000000001a0’ from ‘int’ to ‘u16’ inside { }
'&&' make the upper to zero (instead of 1 because of sign extension) and make the compiler happy.
Because it impacts only constant it will be optimized anyway. We could also use FFCE instead of -0x32 (not tested). Or just leave the issue (and hope futur gcc version are working), we will probably not support the standard before a long time.
Jake.Stine
Gregory: You want to use &, not &&. Pseudonym as usual doesn't educate, he accuses and moves on and figures its your problem to figure out what he's really talking about.
Anyway, that error is remarkably explicit, so I doubt its a bug. Though I think the "root" cause is the conversion of signed int to unsigned short. If the sign of one or the other is typecast first, the compiler should perform the conversion without error.
This actually makes sense, because you can have some unfortunate bugs stem from unexpected sign conversions. It's usually good to be explicit in these cases.
gregory....
Ouch. Yes I did a bad mix, sorry.
Yes it is cleary, the conversion that cause that make gcc unhappy. But I'am not how to typecast it correctly.
Jake.Stine
You can change the u16's in SSE2_Tables to s16's. Try it and see if that fixes the GCC-0x error. We're only using those struct members from asm code, so the sign doesn't matter.
If GCC-0x likes it, commit. :)

Revision 3488

ReorderingMTGS: Linux asm memcpy fixes. (untested)
gregory....
There is a potential issue. In case we have n 32bytes block and one 16 bytes block. qwc will end up to -1 (or maybe 0 I do not know) and the jnz will be bad in the -1 situation.
"sub %[qwc],2\n"
"jnz memcpy_qwc_loop1\n"
Jake.Stine
Oh, right. I forgot about that. Ok, then there's no way to get around not using a temp var on this one.
gregory....
Maybe using JGE could do the trck. The good question is it is an unsigned sub or signed integer.
Jake.Stine
Technically we could, since we'll never send a value over 2gb in qwc's to the memcpy; so using a signed compare would be ok. You're welcome to experiment with that if you want. I stuck with the eax fix since its safe (mimics the behavior of one I know works), since I can't test it.
Note that the JGE approach will be more efficient -- for two reasons. One, cmp/jle is faster than shr/jz (modern CPUs pair cmp/jxx into a single macro instruction internally), and second because GCC register alloc will be able to handle it smarter.
arcum42
In order to get this to compile, I have to change:
"test [%qwc],1\n"
to
"test %[qwc], dword ptr 1\n"
(The point's moot at the moment, though, because it's now giving me issues about memcpy_qwc_loop2 and others being defined more then once. I may have to bite the bullet, move it to MemcpyFast.cpp, and add it to both Linux build systems...)
gregory....
Actually Just "test %[qwc],1\n" is enought ([%qwc] vs %[qwc]).
Still with my idea of 16bytes block first, mix with this idea. Can be port to windows to check the performance. However I made the hypothesis that qwc is not null (which I think is reasonable but we never know). If the hypothesis is wrong a cmp must be added. A prefetchnta could be added in the 16byte block.
--- MemcpyFast.h (revision 3493)
+++ MemcpyFast.h (working copy)
@@ -45,14 +45,20 @@
__asm__
(
".intel_syntax noprefix\n"
- //"mov ecx, [%[dest]]\n"
- //"mov edx, [%[src]]\n"
- //"mov eax, [%[qwc]]\n" // keep a copy of count
- "mov eax, %[qwc]\n"
- "shr eax, 1\n"
- "jz memcpy_qwc_1\n" // only one 16 byte block to copy?
+ // test round number of 32 bytes blocks
+ "memcpy_qwc_1:\n"
+ "test %[qwc],1\n"
+ "jz memcpy_qwc_32_block\n"
+ // copy a 16 bytes block
+ "movq mm0,[%[src]]\n"
+ "movq mm1,[%[src]+8]\n"
+ "movq [%[dest]], mm0\n"
+ "movq [%[dest]+8], mm1\n"
+ "sub  %[qwc],1\n"
+ "jz memcpy_qwc_final\n" //only one 16 bytes blocks
- "cmp %[qwc], 64\n" // "IN_CACHE_COPY/32"
+ "memcpy_qwc_32_block:\n"
+ "cmp %[qwc], 128\n" // "IN_CACHE_COPY/16"
"jb memcpy_qwc_loop1\n" // small copies should be cached (definite speedup --air)
"memcpy_qwc_loop2:\n" // 32-byte blocks, uncached copy
@@ -69,10 +75,10 @@
"add %[src],32\n" // update source pointer
"add %[dest],32\n" // update destination pointer
- "sub eax,1\n"
+ "sub %[qwc],2\n"
"jnz memcpy_qwc_loop2\n" // last 64-byte block?
"sfence\n" // flush the write buffer
- "jmp memcpy_qwc_1\n"
+ "jmp memcpy_qwc_final\n"
// 32-byte blocks, cached!
// This *is* important. Removing this and using exclusively non-temporal stores
@@ -92,23 +98,15 @@
"add %[src],32\n" // update source pointer
"add %[dest],32\n" // update destination pointer
- "sub eax,1\n"
+ "sub %[qwc],2\n"
"jnz memcpy_qwc_loop1\n" // last 64-byte block?
- "memcpy_qwc_1:\n"
- "test [%qwc],1\n"
- "jz memcpy_qwc_final\n"
- "movq mm0,[%[src]]\n"
- "movq mm1,[%[src]+8]\n"
- "movq [%[dest]], mm0\n"
- "movq [%[dest]+8], mm1\n"
-
"memcpy_qwc_final:\n"
"emms\n" // clean up the MMX state
".att_syntax\n"
: "=&r"(dest), "=&r"(src), "=&r"(qwc)
: [dest]"0"(dest), [src]"1"(src), [qwc]"2"(qwc)
- : "memory", "eax", "mm0", "mm1", "mm2", "mm3"
+ : "memory", "mm0", "mm1", "mm2", "mm3"
);
}
#else
arcum42
Ah, yeah, you're right. I'd tried the other change first before I noticed that, and didn't change it back afterwards.
As far as the other changes, I'll wait to see what Jakes opinion is...
(And I still need to figure out why I'm getting all these errors about previously defined symbols...)
gregory....
Just for information __volatile__ keyword seems needed. For the moment the function is blazing fast ;) only 3 instruction : pop, ret, lea.
Or there somethings wrong with constrains.
gregory....
Arcum,
I understand why "m" does not compile with stange errors. There are 2 syntax for intel.
__asm__(".intel_syntax noprefix\n"
-> reg -> ecx
-> var -> qwc
__asm__(".intel_syntax\n"
-> %%reg -> %%ecx
-> %[var] -> %[qwc]
gregory....
Hum, and with noprefix syntax. You must give the size sometimes but I do not know why ! So in this case, it will be
"test qwc, dword ptr 1\n"
gregory....
Sorry, after more test (trying to load the plugins, I work on zzogl asm). It seems to be always %[var] for variable.
gregory....
Hum, I may have an others idea, much more tricky ;) Based on the previous jge approach. The idea is to use the sub as a cmp (which is more or less a sub AFAIK). Instead of doing "sub qwc,2 ; cmp qwc 1 ; jump" We will doing "sub qwc,2 ; jump". If modern CPUs correctly optimize cmp/jxx (which is really a good idea by the way), we probably gain nothings (well if they can merge sub/jxx, we will gain). Really need a good way to benchmark the performance of the function.
****
Directly do a "sub qwc,1" in place of the shr. Jump to 16 byte block if we are null (or negative, if qwc can be null).
In the 32bytes block, do the loop while qwc > 0
In the 16bytes block, only do the 16 byte block if qwc is null.
******
Note: If the hypothesis no null transfer (assert qwc > 0) is correct. We could directly jump to the 16bytes transfer (instead of the test). Nice bump for only 16bytes block.
Jake.Stine
Yes, sub and cmp are the *same* instruction internally. One writes back the result to the dest reg, the other does not. Modern CPUs pair either of them with a following Jxx instruction.
That's why I use sub/jxx pairs in the loops in the memcpys. It's the most efficient way to do any kind of a loop on a Core2 or Phenom.
Jake.Stine
>> Hum, and with noprefix syntax. You must give the size sometimes but I do not know why ! So in this case, it will be
"test qwc, dword ptr 1\n"
The reason is because its a memory operand. In pure asm a memory operand can be 1,2, or 4 bytes. (8, 16 or 32 bits). If you do this:
test [mem], eax // assembler knows you're testing a 32 bit memory
test [mem], ax // assembler knows it's 16 bits!
test [mem], 1 // assembler has no clue if the 1 is intended to be compared against 8 bit, 16 bit, or 32 bit memory!
MSVC's inline asm draws the type from the C code, so I don't have to be explicit. GAS needs explicits. You should put the "dword ptr" on the memory parameter though, it's more consistent.
Jake.Stine
Finally, it's a *really* good idea for the memcpy to handle 0-sized qwc gracefully. It's cheap and easy on modern cpus, and it could save quite a few headaches if code does in fact end up passing 0 and expecting it to respond gracefully.
We could consider switching to a stricter contract that assumes qwc != 0 at a later date, but I really rather frown on it now. :(

Revision 3489

ReorderingMTGS: Linux memcpy attempt #1527, Action!

Revision 3490

[IPU] Revert my stupid fix for the moment. Will work on it later when I have
more free time ;)

Revision 3491

ReorderingMTGS:
* Make PCSX2 bare minimum reqs include SSE as well as MMX.
* Minor bugfix which could have affected MTGS performance.
* Default GIFpath stuff to use SSE opts.

Revision 3492

ReorderingMTGS: Sync with trunk
Jake.Stine
If this state of the branch passes some decent tests, I'm going to go ahead and re-integrate it with trunk here; because its pretty well a solid improvement of the current MTGS model with lots of code cleanups and stuff.
I'm actually running into a point where I don't think the reordering MTGS is going to work. Too many issues to account for when dealing with Vsync, savestates, and potentially evil handling of GIFpaths (certain types of unfriendly behavior could cause ringbuffer deadlocks), and the fact that this system still won't help account for some other known limitations in PCSX2's handling of DMAs. I was also going to need to integrate the MTGS even more tightly into the whole of PCSX2. As it is now the MTGS is always used, but is mostly extrapolated from PCSX2 emulation (nicer for eventual porting, or perhaps a future when an MTGS isn't the ideal method of GS rendering). With a reordering MTGS, we would have been forever again dependent on the presence of the MTGS, even if for some reason it lost its performance benefit.
Thusly, the complexity of implementing it was quickly out-weighing the eventual benefit.
Cotton and I have some other ideas on how to get around the GIFpath conflict issues. We'll be working on them here, most likely.

Revision 3493

Minor change to the custom memcpy function...

Revision 3494

[zzogl]: asm work. Asm was totally broken. At least in release build.
* use volatile keyword to avoid gcc removing the function...
* Use name variable in asm code instead of %n
* Fix constraint on s_clut16mask. There are input, not output...
Arcum can you look at this 2 things thanks.
-> code is still broken in one place. s_clut16mask & s_clut16mask2
re null in the code generated by gcc ! To fix it (do not know why), we can
declare them as static. But I'm not sure
on the impact and I can not test windows...
-> s_clut16mask is declared as a 256bits numbers instead of 128 !

Revision 3495

[zzogl]: ooups forget 2 lines.

Revision 3496

Fixing some minor grammatical errors, and relocating the old automake guide to a
different page (not deleting it entirely since it can be useful for possible
regression testing of old 0.9.6 builds under linux).
Jake.Stine
Hopefully this will help keep people from looking for automake files all the time. :)
gregory....
Good idea to split it.

Revision 3497

wiki: Added the old legacy automake guide as its own page (applies to 0.9.6
only).
leomar....
where can find a new legacy gui?
legacy+new gfx plugins = best performace.

Revision 3498

[IPU]: properly fix gcc c++0x error. Declared coeff as s16 instead of u16.
Jake.Stine
Yay, glad it worked. :)
cottonvibes
hmm pcsx2 compiles with gcc's c++0x extensions?
quick, someone change an "int i" to "auto int i" and break it!
/evil
gregory....
Yes it compile fine. Well there is potentially an other minor thing in zzogl.
Actually I tryed to use link time optimization with the new gcc 4.5 but the link is totally broken (I think it is inlining relating). Well I did not expect to work anyway.

Revision 3499

[cmake] Add a fatal error for pure amd64 distributions.