PCSX2 Documentation/Google Code svn repository comments archive 4500 to 4749

From PCSX2 Wiki
Jump to navigation Jump to search

Revision 4500

Tweaks to async mixing, making the buffer stay closer to 50% filled and also
making it more effective on sharp FPS drops.
GT4 can suck Jethuy's cockpit! (Zone of the Enders).
SRT can suck Zuckerberg's zit! (Facebook)
GT4 = Gran Turismo 4 *Jehuty* fixed typo
I knew exactly what you meant, and I also have played ZoE a long time ago.
I was just being sarcastic on that 'thing' which gave this rev a negative score.
Can you not abuse the rating system please.
Wth, just realized I clicked the negative score while trying to click Submit...
whats with all the negative scores from roo, is it because his favorite game doesnt work or something?
btw nice work on the emulator, loving playing FFX again.
It was due to his game not working, threw his toys out of the pram, he's banned from google code now.
I want just play a game WITHOUT graphicals bugs, NOBODY like play a game with crappy graphics but you re too stupid for understand that... And ye its my favorite game and after?
I am not a baby and i'm bac
something legal has to be done.
Hey asshole if you don't like pcsx2 GTFO and write your own damn emulator. Most (all?) the devs here do this for free, and sometimes it's damn hard work. Show some appreciation and some courtesy you obnoxious frog.
+1 to all the pcsx2 devs, don't let jackasses like this drown out the rest of us who appreciate your hard work.
Great commit.
roo/"pcsx2suck" - if you want to play the game without any bugs, then code it yourself. Your persistence will actually probably make the devs specifically avoid fixing that game on purpose, simply because you don't deserve it.
sovietru, i am not a coder and even if i say nothing or i don't submit negative review,they fix the others games and don't care about my game...What i can do? I am tired nothing change.
You can stop demanding for a start. Your game is not the only game out there. if you were polite to start with, we might have been helpful, but no, you hastled us and started getting abusive, then you negative every single revision because it doesnt fix your game, you are a child. Grow up or get lost, the longer you spent throwing a tantrum here, the less likely we are to ever attempt fixing your damn game.
roo: What can you do? Either learn to code, or wait patiently. The first time you mentioned the issue with the games you should have opened up an issue report on google code, or a bug report on the pcsx2 forums. Then you wait for it to be accepted, and for the devs to get around to it.
You say "if I say nothing or I don't submit negative review" - this is completely false. You DID mention it, and one time should be enough for a reasonable period of time (such as a few months). Positive/negative score should ONLY apply to the revision it's added to.
Are you really unable to understand what you did wrong?
mperry5: We hear ya. Thanks :p
hope i haven't started a war again and i agree with mperry5, don't let a small minded idiot destroy you're enthusiasm for coding and working on this great program i think all the devs deserve medals for working so hard on this emulator. As my old English teacher would say roo go stand at the back of the classroom facing the wall with your hands on your head until you can learn to show some respect.
I'd just like to take this opportunity to say thank you to the whole team for all your time, dedication, effort, and hard work :)
As a fellow programmer, I enjoy following emulation purely from a technical aspect; I love running emulators simply from a geeky "because we can" perspective-- and I appreciate that this project is open source so that I can follow how its being done from a technical perspective.
Thanks for sharing and please don't be discouraged by lamers like Roo-- the rest of us appreciate you greatly :)
I agree to the post above ^ .
Well said .
I know I usually go with neutral (simply because I satisfied with the emu as is) but this time I decided to go with the common consensus and vote + just to show my respect and annoy roo if I can (simply cause I can't stand insects like him).
lol...'obnoxious frog'...calling him names like 'frog' is a new low for frogs all over the world.
Good people don't feed the troll "roo" and his invisible friend "pcsx2suck". :)
Could someone make that specific game not boot anymore and display a message that roo sucks instead?
Those were my thoughts exactly but just didn't want to fan the flames anymore since apparently the troll is continuing to -1 every rev and just make a general ass of himself.
Even an ass has more uses than him; don't make fun of asses. =/
Anyway, SRT isn't a game that's just played by that thing; some humans might also play that game too, so disabling emulation on that specific game(s) will be counter-productive.
Yes you are right suluh.le my apologies to all frogs and asses everywhere that took offense at being compared to roo. I also see "it" has a new email to spam -1's here. :( I really can't stand people like this.
Wait am I offending people too now? Christ I dunno... :facepalm:
There's really nothing you can compare him to because you'd be insulting whatever it is you're comparing him to, even s**t.

Revision 4501

GSdx: small mipmapping optimization, half fps maybe, it wasn't done right on my
first attempt.
gabest, in order for PCSX2 to load (not use; just for it to be listed in the plug-ins drop-down list) the AVX version properly, do people have to have an SB CPU installed or is there another .dll needed to be present?
Just curious, since on my C2D E6550 system, PCSX2 is still able to list the SSE4 version though it doesn't have that instruction set (only up to SSSE3).
The callbacks for plugin enumeration do not check (or try to use) SSE/AVX, so any build can appear on the list. It will however tell you that the the cpu does not suport it when you try to run it.
offtopic: - in reply to suluh
it seems like it does do some kind of check in the plugin configuration when opening the plugin dialog window it will show this in pcsx2 console.(also wont show in the pull down list). unless I'm missing something.
Path: ..\plugins\GSdx32-AVX.dll
File is not a valid dynamic library.
Some kinda plugin failure: ..\plugins\GSdx32-AVX.dll
The checks are in GSinit, pcsx2 definitly does not call that there. Could it be the missing SDL.dll again?
I don't think so.
Ever since I use VS2010 to compile revisions I always copy SDL.dll over to PCSX2 folder; otherwise the rest of GSdx versions (SSE2, SSSE3, SSE41) wouldn't load either.
Might it be the same problem with ZZOgl being compiled in VS2010 that actually requires a .dll or two from Nvidia's Cg Library when running PCSX2?
At first I didn't notice it, but after I compiled it and then removed the Cg Library, PCSX2 also spewed out 'plugin failure' on ZZOgl.dll, and didn't show under the plug-ins selection.
After I install the Cg Library back, PCSX2 showed it on the plug-ins list just fine.
Most probably because the library installer also put the .dll directories under the system variables.
I mean, it might be that the AVX version requires another .dll aside from SDL.dll, just like how a ZZOgl plug-in that's compiled under VS2010 need some .dll files from the Cg Library.
I have SDL.dll in the main pcsx2 dir (even tried recompiling SDL.dll with the avx config), all the other plugins work fine, but my cpu supports the instruction sets (SSE 2,3,4) so I can't see if the others do it.
maybe suluh can try the sse4 config and see what happens it might just be something with AVX.
older pcsx2 used to tell you what dependency (if that was the problem) was missing but now it throws a generic error out.
other then that I can't say whats wrong, I don't have an avx system to test the plugin on to see if it would work :)
As I've said, I have a C2D E6550 which only supports up to SSSE3 (no SSE4 whatsoever).
PCSX2 can list the SSE4 version just fine on that system, just can't use it for emulation, which is normal.
The AVX build does not need any other except SDL.dll.
Oh, but Win7 SP1 must be installed :P
I have that OS installed, gabest. =b
Anyway, here's what's in the console window when I opened the 'Plugin/BIOS Selector' dialog.
If it's a problem with SDL.dll, I shouldn't be able to load the GSdx32-SSE4.dll.
This is on my laptop; the C2D E6550 I told you before is my desktop.
Yea... it is says SP1, maybe the compiler does something to prevent it loading when the /arch:AVX switch is used.
Might be so...and I don't have an SB system to compile it with.
I'm just wondering why, though.
I can compile SSE4 just fine on my desktop, and it still runs fine on my laptop.
I've also updated VS2010 to SP1 just now, but no dice; not that'd make any difference anyway but what the hey...
You can compile the AVX version on any system but you cannot run it on non-AVX systems ;)
Argh, rama, please read my explanations above. ._.
It's not about running it, it's about why it wouldn't load/appear on the plug-ins selection list when I open the 'Plugin/BIOS Selector'.
The only reason why I'm curious is because I can see the SSE4 version in the plugin selection list just fine with my desktop that's SSSE3-only.
It's NOT about running the plugin. Never ever.
Avx improvements is only for Sandy bridge CPU ¿no? http://software.intel.com/en-us/avx/
Yes, though the main reason of improvements is not the new instructions, but the faster cpu. It's like the difference between the SSE versions.
I have the same issue, i have a SB but when i build the AVX plugin i get the same file is not a dynamic library error when trying to load the plugin in pscx2.

Revision 4502

GSdx: Got the Sly 2/3 hackfixes right.
do the shadows appear now?cause with your previous hackfixes they didnt?anyway waiting to test it as i get my hands on the rev
No sorry, the shadows are what cause the screen to get broken so the hackfix is meant to be removing them. My previous hackfix was not removing them entirely leaving a purple screen at times and was also removing other objects when it shouldn't, this time it should get that right.
Any chance of including eliotfur's 'fix' for SoTC or is it still under scrutiny?
Can you post that fix here so we can review it and decide? Thanks :)
It is here: https://code.google.com/p/pcsx2/source/detail?spec=svn4497&r=4473

Revision 4503

Another bunch of installer fixes.
Hmm...will there not be an option to keep the .ini files when uninstalling?
I was thinking about adding such an option ;)
It should also go together with another option to purge existing settings on installation, since it's otherwise very easy to create a bad old data scenario..
Actually, as long as it (still) doesn't delete .lily files I'd be a happy camper.
Can't say for the nitpicking bunch out there, though. =b
...wait a sec, just realized this line :
RMDir /r "$DOCUMENTS\PCSX2\inis\"
Oh well, time to move the .lily file somewhere else. =b
I gotta say, it took me an hour and then some to go over the scripts.
Things have changed rather drastically since the last time they were needed (r38xx) :p
I'll definitely go over this part once more.
It's not really needed to remove the whole /inis folder for example.
I just wanted this work out to reflect on it later :p
Lol, no prob.
Now with the presets and semi-automatic patching via the game database I don't think there'd be much left to configure, aside from selecting a GS plugin and controller bindings.
Besides, those who'd manually pore over each and every settings are those who wouln't use the installer anyway. =b
rama, AFAIK all plugins inis are nicely backward compatible (if at all changed). I also agree that deleting the lilypad ini can hurt.
Maybe before deleting them we should ask the user (both at uninstall and upgrade)?

Revision 4504

GSdx: finally, some use for hsubps (SSE3).
I can almost hear the amd users crying with happiness :p
Gabest, please, take a look at Issue 818 and tell us if that is possible to make a proper hack...
ZOE2 speed up!!! lol Thanks Gabest. You're the best, man!
eliotfur: Once I had a hack that removed almost everything, after that don't know what happened and what direction it went.
eliotfur, gabest
there was a bucnch of settings commented out in the gsstate for sotc, but it was commented it out awhile back ...maybe that's what happened...going to try to uncomment and see if it fixes it up :)
bool GSC_SoTC(const GSFrameInfo& fi, int& skip)
gabest, that's eliot's hack (the one "if(..) return;"):
template<int i> void GSState::GIFRegHandlerFRAME(const GIFReg* r)
if(PRIM->CTXT == i && r->FRAME != m_env.CTXT[i].FRAME)
if((m_env.CTXT[i].FRAME.u32[0] ^ r->FRAME.u32[0]) & 0x3f3f01ff) // FBP FBW PSM
m_env.CTXT[i].offset.fb = m_mem.GetOffset(r->FRAME.Block(), r->FRAME.FBW, r->FRAME.PSM);
m_env.CTXT[i].offset.zb = m_mem.GetOffset(m_env.CTXT[i].ZBUF.Block(), r->FRAME.FBW, m_env.CTXT[i].ZBUF.PSM);
m_env.CTXT[i].offset.fzb = m_mem.GetPixelOffset4(r->FRAME, m_env.CTXT[i].ZBUF);
//Hack by Eliot_Cougar to disable the bright bloom at Shadow of the Colossus (sotc)
if (m_context->TEX0.TBP0==0x3fc0)//0x3fc0 disables SotC overbrightening
m_env.CTXT[i].FRAME = (GSVector4i)r->FRAME;
m_env.CTXT[i].FRAME.FBMSK = GSVector4i::store(GSVector4i::load((int)m_env.CTXT[i].FRAME.FBMSK).eq8(GSVector4i::xffffffff()));
There seem to be another sotc hack (GSC_SoTC) which is commented out, because tests showed it doesn't change much. Maybe that's your old patch?
Anyway, regarding the current knowledge about SotC, do you think a better hack can be implemented?
^ that patch looks like it would effect other games as-well as it is, I think it would need to be a crc patch of some kind to be included into gsdx
(btw my test of un-commenting, I noticed no change,so that must just be obsolete code)
konaj, yes, the code I posted is hardcoded, just to show what the patch is. I was planning on making it conditional upon an ini file hack (e.g. UserHacks_DisableSotcBloom). But if a better solution exists and will be implemented, then this hack won't be necessary.
It is an obsolete code indeed...
The bad thing about my hack is that it can't be easily implemented through CRC hacks...
The game CRC is not a global variable and it can't be "seen" in that function's scope... i.e. I can't write a better conditional there "if it is SotC then do hack else do nothing"...
Moreover the first part of the GIFRegHandlerFRAME function MUST be executed even if TEX0.TBP0==0x3fc0... Else you get broken overlay and black screens... You can't just skip ALL calls with TEX0.TBP0==0x3fc0...
A good thing is that all sets of TBP0 register values the game uses are very different for different games and there are not so many games that have calls with TEX0.TBP0==0x3fc0 too... Moreover, it's unlikely that some other game will execute GIFRegHandlerFRAME with this exact TEX0... I didn't noticed any negative effects of my hack with games I have...
Anyway, this kind of hacks is bad and we are looking for a better one... Preferably the one that will fix bloom and not disable it completely as my hack does...
Is that mean speedup on my sse3 cpu?!
Very minimal, moreover haddps/hsubps used to have a terrible latency and throughput, but nehalem and sandy bridge improved it a lot. That's why I said it's the cpu, not the instructions that matter in the first place.
quick question (unrelated to this commit): would it be possible to implement a feature on pcsx2 that would make pal games run at 60hz? i know that the console doesn´t have that option and only a few games have that feature, but would it be possible to make all games run and record at 60hz? that would be awesome :)
sorry for the off topic
I can't see any problem with that, if you don't mind the chipmunk effect. F4 could change between Enabled/Disabled/50Hz/60Hz.
/would it be possible to implement a feature on pcsx2 that would make pal games run at 60hz?
You can do that already by changing the PAL framerate to 59.94.
Problem is, doing that works for very few games (when it works it works nicely tho), for others does the same as the "ee cyclerate" or "vu cycle stealing" speedhacks do sometimes and would just be fake FPS or out of sync audio. Adding a key to that would just let users break their games easier without much of an improvement overall.
FUCK YES!!! Now what about SSE4a?
Gotta compile 'em all!
Oh, pretty nice. My AMD Phenom II x6 is screaming thanks, even if its a minimal speedup :)

Revision 4505

GSdx: 5-10% speedup in multi-threaded mode, replaced that modulo operator with a
lookup table.
Getting + ~7% FPS on my dual core :)
Shadow of the colossus is becoming limited by the emulator again, and no one is working on it anymore :'(
Nice... I guess I should try Ratchet and Clank again to see if my PC is able to run it fullspeed now...
Anyway, Software mode is nice, but Hardware mode improvements are more desirable...
this improvement is only for software?
@gabest11, What do you mean saying "limited by the emulator"... It works fine with some speedhacks...
Well, right now (and the next 1-2 months I suppose) is just a really bad time ;)
The game is sending gigabytes of data through GIF to the GS, so that's the bottleneck.
I mean except in wide open areas EE: 100%, GS: less than 100%. Which speedhacks help in this game? I just run it with the default settings.
eliotfur: Sadly hardware mode is waiting for dx12 or something that opens up stages in the pipeline that are still fixed mode and not compatible with the working of gs (alpha blending, frame buffer write).
I guess it is caused bu heavy post-processing when every frame is downloaded, processed and then uploaded to the framebuffer again as a different layer (i.e. bloom effect)...
Native PC games do this differently...
@gabest11: VU Cycle stealing = 2 helps a lot...
ramapcsx2: May not be too much help, I'm not familiar with the recompiler, but adding avx's three op instructions to lessen register pression could be a future goal for pcsx2.
eliotfur: But it says "not recommended"... lol. It went from 35 to 70 fps, but I'm not sure if I see that many frames rendered. Feels more playable though.
The reported percents on the title stayed the same, very suspicious :P
The speedhacks trigger the game's own frame drop code.
The game thinks the PS2 is overburdened and lowers FPS :p
ramapcsx2: That explains it.
eliotfur: Ratchet and Clank is the most affected by mipmapping, of all the games I tested. It also got a 10% speedup, 33 to 36 (+6 fps without mipmapping).
This one's coming so fast it's almost ridiculous. o_O
Thanks, gabest.
wow, great work :)
Gabest is on fire! =]
Most of the time "VU Cycle stealing" reports wrong FPS.
FPS is high, but game speed is the same (slow).
And how to download this audit? I'm noob)
You can not download this. You will have to wait for a release.
gabest: Whats the problem with Champions of Norrath (1&2) and the Balder's Gate games? I know it uses some bugs as features but is it not using mipmapping as well? When I got it to run it seemed like it was using them as well but I cannot say for sure.
Adding to that:
These games use the same engine, and they're bugged in hardware and software alike. It's the same thing with ZeroGS as well.
Software mode shows the full screen (as apposed to half in hardware) but it tends to crash more. So :\ But I'm always keeping my fingers crossed that the mesh decay (verts slowly becomes distorted) and the mipmap issues get fixed. Software mode is almost playable if not for the crashes when the character moves.
speedups are always welcome :)
good work
Good Work! ;)
Software mode very useful for me.
[email protected]: texture coords do not seem to make any sense in this game.
gabest, we're finalizing 0.98 code, to be released in few weeks hopefully.
What's the status of gsdx in this regards? Would you consider it stable? Any more changes/fixes you think you want to add?
New bugs were fixed, it's stable now.
Cool, thanks. We'll use this revision as a RC for now.
jojo good work and thanks very much
I get between 10 - 15 FPS more in:
QuadCore AMD Athlon II X4 640, 3000 MHz
MSI GF615M-P33 (MS-7597)
nVIDIA nForce 7025-630a, AMD K10
4096 MB (DDR3-1333 DDR3 SDRAM)
ATI Radeon HD 4800 Series (1024 MB)
thanks very much...

Revision 4506

Suppress expected error during first time wizard when a plugin does not
implement optional API functions.

Revision 4507

Portable mode: now allows fully custom folders, but still allows relocation of
pcsx2 folder without breaking (install mode unmodified).
The major differences between install and portable modes should now be:
1. Portable mode doesn't use the registry at all.
2. Portable mode uses the folders inside pcsx2 folder as default (install mode
has some default at "my documents").
3. Portable mode tries to save relative paths at the ini file where possible*.
Specifically, portable mode now allows to select custom folders for plugins,
bios, etc via the standard UI, which allows using several portable pcsx2 folder
sharing the same resources (bios, iso, memcards, etc).
* Relative paths where possible = the following sequence (thanks to pseudonym
for the brilliant idea):
1. If the file/folder is inside pcsx2 folder, it's saved as completely relative
(to pcsx2.exe)
2. Else, if the file/folder is at the same drive as pcsx2.exe, it's saved as
absolute path without the drive letter (e.g. /ISO/...)
3. Else, saved as absolute path, including the drive letter (for linux, without
drive letter naturally).
This allows to create a removable drive with (one or more) pcsx2 folder on it,
configure all the files/folders to point to the same drive (ISOs, save states,
etc), and then take this drive, plug it into another computer (where it will be
assigned with a different drive letter), and everything will continue working.
Please test it if you can. Bugs here can be inconvenient...
Hum, if I'm correct you move the PluginsFolder from registery to ini. I think the previous idea was to allow easy install of an external plugins (ie not the one from pcsx2 svn).
Otherwise I need to check on linux ^^
Yes, the plugins folder config is now at the ini and not at the registry. This actually wasn't 100% intentional, but regardless, it's a good change I think, because it probably shouldn't be different than other configurable folders.. (memcards, etc).
Does it make installing "external" plugins harder in some way? (not sure I understand what are external plugins..)
Well my understanding was an independant (not us) developper could create an installer. There is no easy way to do an automatic install, user will need to manually copy the files into the plugin directory.
Well, I'm not sure there will be such dev one day and it only impact windows :p
Oh, don't worry about that.
We have so many eventualities to worry about already, we'd rather start limiting some than create even more :p
Didn't find any problem with this yet :)
Anyone knows why I can't change the location of snaps? My SSD is filling up with gs files quickly, because it puts them to "my documents\PCSX", no matter what I do.
gabest, I just tested snaps (screenshots, yes?) and save states folders, both in install and in portable mode, and I can change the folder without any issues (and save screenshots and states, and they're saved at the proper custom folder). The custom folder is saved properly at the ini file, etc.
To change the folders pcsx2 uses, you need to use Config -> bios/plugins selector, and then choose the "folders" tab, and select any custom folder you need.
Also, if you use portable mode, then you need this revision or later for the folders to be customizable.
If that doesn't help, please give more details about what you tried to do, what you expected, and what happened instead. etc.
I did change the folders there, but only the first one sticks. It's not installed or anything, just built and I'm running it from the bin folder.
Can you try adding a file called "portable.ini" just besides pcsx2.exe? that will turn it into portable mode. Let me know if it behaves differently.
Though I still don't understand why it "sticks" for me, but not for you. I did try both modes..
Also, again, if you can state your exact actions, what you expect to happen, and what happens instead, then it might be easier for me to reproduce it or give some better advice.
My mistake, works now. I think I just did not enter the right path, it silently changes back if the directory not exists.

Revision 4508

Made the uninstaller nicer / removed some unused stuff.
The uninstaller now removes all PCSX2 paths info, so that a reinstall works as
It also offers to remove plugin configuration files and user created files

Revision 4509

i18n: add some missing strings. Remove SetDiagMsg one.

Revision 4510

Merging the recent changes into /0.9.8.
so now finaly you peapol work for a official 0.9.8?

Revision 4511

Game fixes panel: hopefully clearer text.

Revision 4512

Added a new gamefix to make ignoring of DMAC writes when it's busy optional.
This should be mandatory but (most probably) timing issues make this break more
games than it fixes.
Notable exception: Mana Khemia 1 (going "off campus"), so I added it to the auto
gamefix database (Only NTSC so far, anyone got the PAL CRCs?).
Thanks, too lazy to do it myself :p
I have the uk version of mana khemia. I think it is pal, I will check it tonight. What do you need exactly ? the SLUS number ?
Would be cool if you could test it.
Just skip through the initial talk until you have the option to go off campus.
If it hangs at that place, you'll need to enable the gamefix (and I'll need the game CRC, displayed in console when the game starts up ;) ).
ELF (cdrom0:\SLES_554.43;1) Game CRC = 0x44194750, EntryPoint = 0x0010001C
US Version of Mana Khemia here : no Off Campus problem, with or without the gamefix.
ELF (cdrom0:\SLUS_217.35;1) Game CRC = 0x77B0236F, EntryPoint = 0x0010001C
This is my version of the game. I already added the new gamefix to the database, that's prolly why it's working for you.
Gregory: Did you check if your PAL version needs the fix?
Yes it need it, otherwise I will not send you the crc :p
Alright, adding :p
err the automatic gamefixes are disabled but* whatever :P
Well, got any speedhacks on? Any configuration different from the default?
I can reproduce the problem reliably here with my copy, and it is the same Sony part number as yours.
There's definitely a configuration difference.
hmm well actually i'm using my hack to overclock the EE and since its a timing problem i'm guessing thats it.
L.E: yup i guessed right without it it hangs at Off Campus without the fix.

Revision 4513

zzogl-pg: fix configuration load/save error. Howerver, need to find a way to
restore the error messages.
Okay, this actually fixes the problem for me.
There's this issue though:
According to pseudonim, this change should not fix it!
It's just slightly retooled but does the same thing.
The fact that it fixes the problem for me must therefore mean that some corruption is going on ><
In my opinion the issue was this one:
Thanks for clearing this up. Pseudo says he didn't check good enough :)
We'll also go over any other eventual uses of this code.
To be honest it was kind of subtle feature.
Anyway I change it again with a more standard way to convert wxstring to std::string. I think my brain is only active during my sleep :p

Revision 4514

microVU cleanups (mostly changing pointers to references)

Revision 4515

microVU - more cleanups
the more the merrier :P

Revision 4516

zzogl-pg: properly convert wxstring to string

Revision 4517

Merging the recent changes into /0.9.8.
We *hope* /0.9.8 has the final strings now, so translations can be done based on
Please use the PCSX2 forums to submit your translations :)
Now might be a good time for i952...

Revision 4518

GSdx: just a small mipmapping optimization when lod is constant, it was already
In other words: If the game does not use LOD - don't do useless stuff...
Pretty much, also from the looks of it, it stops it reprocessing the lod and working it out. Hes now just working it out once then not touching it (presumably unless it gets changed)
There is a little trick here, if the minimum lod is larger than the max mipmap level, then it is converted to the "constant lod" mode (lcm = 1, lod = max level), which mode does not need to do a lot of per pixel processing. I have seen this in many games, there are only a few mip levels, but the lod is almost always larger than that the last.
Gabest could you add a shortcut key to toggle native mode on / off (if there isn't already one)?
also with the F9 key for software switch , when starting a game in software mode F9 maybe should activate hardware mode, but it doesn't it goes software -> software,
it's really not a big deal, just thought I'd mention it.

Revision 4519

VIF: Fix for Downhill Domination introduced in r3762.
For future reference:
Clearing registers on VIF reset = bad! That operation is designed to stop VIF
Processing its current data, nothing more.
More importantly it causes me a great headache as it took me 2 days to find this
refraction - king of game fixes. :)
let's hope ppl wont destroy your fix without a reason/comment next time. ;)
Jake is innocent! Don't believe the lies! :)

Revision 4520

VIF: Fix for Donald Duck Quack Attack - vifcmd errors caused by VIF not stopping
on reset. It would be nice to find out the actually 100% behaviour of FBRST,
information is limited.
Okay, FBRST was an issue with another Loney Tunes game.
Testing, once I remember which it was :p
Hehe nps :P it was me who disabled the code i just put back in, so hopefully its ok ;p
The game is Loney Tunes Acme Academy, and yea, still works fine :)
Good stuff :D
So many fixes today. Good job!
This fixes SRT too?
It's a joke! Happy April Fools'Day :P
Good job!

Revision 4521

i18n: regenerate everything. New language Czech
Note: I upload new pot in google code download section
Translation status: good/fuzzy/all (%status) - remaining
locales/cs_CZ/pcsx2_Devel.po - 34/ 0/34 (100%) -0
locales/cs_CZ/pcsx2_Iconized.po - 37/ 0/37 (100%) -0
locales/cs_CZ/pcsx2_Main.po - 492/ 3/496 ( 99%) -4
locales/cs_CZ/pcsx2_Tertiary.po - 61/ 1/61 (100%) -0
locales/de_DE/pcsx2_Iconized.po - 37/ 1/37 (100%) -0
locales/de_DE/pcsx2_Main.po - 466/ 38/496 ( 93%) -30
locales/de_DE/pcsx2_Tertiary.po - 61/ 1/61 (100%) -0
locales/pt_BR/pcsx2_Devel.po - 34/ 0/34 (100%) -0
locales/pt_BR/pcsx2_Iconized.po - 37/ 0/37 (100%) -0
locales/pt_BR/pcsx2_Main.po - 494/ 3/496 ( 99%) -2
locales/pt_BR/pcsx2_Tertiary.po - 61/ 1/61 (100%) -0
locales/ru_RU/pcsx2_Devel.po - 6/ 0/34 ( 17%) -28
locales/ru_RU/pcsx2_Iconized.po - 35/ 3/37 ( 94%) -2
locales/ru_RU/pcsx2_Main.po - 424/ 60/496 ( 85%) -72
locales/ru_RU/pcsx2_Tertiary.po - 38/ 2/61 ( 62%) -23
locales/sv_SE/pcsx2_Devel.po - 34/ 0/34 (100%) -0
locales/sv_SE/pcsx2_Iconized.po - 37/ 0/37 (100%) -0
locales/sv_SE/pcsx2_Main.po - 495/ 1/496 ( 99%) -1
locales/sv_SE/pcsx2_Tertiary.po - 44/ 1/61 ( 72%) -17
locales/tr_TR/pcsx2_Devel.po - 34/ 0/34 (100%) -0
locales/tr_TR/pcsx2_Iconized.po - 37/ 1/37 (100%) -0
locales/tr_TR/pcsx2_Main.po - 452/ 41/496 ( 91%) -44
locales/tr_TR/pcsx2_Tertiary.po - 61/ 2/61 (100%) -0
locales/zh_CN/pcsx2_Devel.po - 34/ 0/34 (100%) -0
locales/zh_CN/pcsx2_Iconized.po - 37/ 0/37 (100%) -0
locales/zh_CN/pcsx2_Main.po - 496/ 0/496 (100%) -0
locales/zh_CN/pcsx2_Tertiary.po - 61/ 0/61 (100%) -0
locales/zh_TW/pcsx2_Devel.po - 34/ 0/34 (100%) -0
locales/zh_TW/pcsx2_Iconized.po - 37/ 1/37 (100%) -0
locales/zh_TW/pcsx2_Main.po - 453/ 42/496 ( 91%) -43
locales/zh_TW/pcsx2_Tertiary.po - 61/ 2/61 (100%) -0
x(100%)x - 4724/204/4990 (94%) -266

Revision 4522

i18: finish upload binary (unreliable internet connection...)

Revision 4523

Recent ISO list menu: Fixed: if the number of ISOs grow beyond RecentIsoCount,
the menu gets b0rked (broken behavior). Strangely, this bug was there since
r3878 or earlier...

Revision 4524

Resent ISO list menu: Items order reversed such the the most recent ones appear
at the top.
Was this necessary? :P
Nothing is necessary, but it's common that when you add an item to a recent-items list, the new item goes at the top.
And later on, it'll be sorted by the most used ones. =b
suluh.le... , actually, I was thinking about it and it should be easy to implement, but I'm not sure that's always how you'll want it to behave, even if that's indeed the "standard" behavior of a recent-items list.
If you have much more ISOs than the current recent list limit (RecentIsoCount - defaults to 10 IIRC), then yes, it's OK to move an ISO to the top once you select it.
If, however, you have less ISOs on your HD than the list limit, such that they don't have to "roll out" of the list, then a fixed order might be easier to use (otherwise, they'll keep changing order at the list whenever you choose one of them). On such case, constant order might be better.
Another option is to add an ini-only boolean option to choose one of those behaviors.
What I meant was actually something that behaves like Windows' recently used programs list on the Start menu, where it also considers the usage count before moving items through the list, but that'd be too much for just an ISO list. =b
An option to toggle the list's behavior (asc, desc, recently used), to clear the list (a.k.a. reset), or even to customize the limit of how much items should be shown on the list at once (with the default being 10) would be nice.
Extraneous stuff, though...it's not like we couldn't live without it. =b
For now, you can manually edit RecentIsoCount at the ini file.
From this revision I got some bad warning on linux. Here an extract
(pcsx2:9466): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkRadioMenuItem'
(pcsx2:9466): Gtk-CRITICAL **: gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed
(pcsx2:9466): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkRadioMenuItem'
It seems to work so it is not critical. Anyway debugging a little, it seems link to the fact that you destroy all element when you add one. The gtk port keep an interal list with the element and some are null.
See below for an alternate implementation. It reverts r4523 and r4524. Then add 2 things
1/ a call to m_Menu->Destroy in the while loop to avoid that the menu grow beyond the limit
2/ Call m_Menu->Insert( 2... (instead of append) to add new iso at the beginning of the iso list (but after the separator)
It seems to work like current trunk but without the warning ;) Your opinion is welcome.
Index: pcsx2.snapshot-4653/pcsx2/gui/RecentIsoList.cpp
--- pcsx2.snapshot-4653.orig/pcsx2/gui/RecentIsoList.cpp
+++ pcsx2.snapshot-4653/pcsx2/gui/RecentIsoList.cpp
@@ -121,9 +121,7 @@
m_Separator = m_Menu->AppendSeparator();
- //Note: the internal recent iso list (m_Items) has the most recent item last (also at the INI file)
- // but the menu is composed in reverse order such that the most recent item appears at the top.
- for( int i=cnt-1; i>=0; --i )
+ for( int i=0; i<cnt; ++i )
InsertIntoMenu( i );
@@ -154,16 +152,15 @@
- //New item doesn't exist at the menu/internal-list - add it, and refresh the menu.
- RemoveAllFromMenu();
m_Items.push_back( RecentItem( normalized ) );
+ InsertIntoMenu( m_cursel = (m_Items.size()-1) );
while( m_Items.size() > m_MaxLength )
+ {
+ // remove the element of the wx menu and the internal array
+ m_Menu->Destroy( m_Items.begin()->ItemPtr );
m_Items.erase( m_Items.begin() );
- Repopulate();
- m_Items[m_cursel = m_Items.size()-1].ItemPtr->Check();
+ }
//id here is the position index at the internal list of recent ISOs (m_Items)
@@ -176,7 +173,13 @@
if (this->m_firstIdForMenuItems_or_wxID_ANY != wxID_ANY)
wxid = this->m_firstIdForMenuItems_or_wxID_ANY + id;
- curitem.ItemPtr = m_Menu->Append( wxid, Path::GetFilename(curitem.Filename), curitem.Filename, wxITEM_RADIO );
+ if (m_Menu->GetMenuItemCount() < 2)
+ // Impossible case. Normally there is at least the "browse" and "separator" entries
+ curitem.ItemPtr = m_Menu->Append( wxid, Path::GetFilename(curitem.Filename), curitem.Filename, wxITEM_RADIO );
+ else
+ // add ISO after "browse" and "separator" entries (<=> top of the iso list)
+ curitem.ItemPtr = m_Menu->Insert( 2, wxid, Path::GetFilename(curitem.Filename), curitem.Filename, wxITEM_RADIO );
bool exists = wxFileExists( curitem.Filename );
if( m_cursel == id && exists )
Hmmm.. strangely, this patch crashes PCSX2 for me on a place which seems completely unrelated... (on Win XP32/SP3, DEVEL build). I'll look a bit into it and let you know.
OK, I now recall why I didn't use this method. m_Menu->Insert kept crashing, no matter what index I or values tried, and it keeps doing it now too. This is possibly a wx bug, or improper use which I can't understand.
Also, do you think RemoveAllFromMenu() or Repopulate() are buggy? or is it just their usage that's wrong? or do you think it's a GTK bug?
As far as I can tell, the sequence of this commit (before your patch) is logically correct, so where do the warnings come from? Can you create another patch without using m_Menu->Insert ?
Hum, out of luck. I do not test it a lot but it does not crash on my side, so I would guess a bug in wx msw.
The insert part was to simulate the reverse order menu. I think the only othres possibility is to del/add all entries.
Anyway I need to understand better what wx is doing. The warning can be a wx gtk bug too! Otherwise your sequence seems logically for me too.
The warning appers (after the first append) because the member GtkWidget *m_prevRadio is a non null pointer but it data are unitialized (probably destroy by the destroy in RemoveAllFromMenu). However the code only check the nulless of the pointer (fortunately there are some assertions/check later so the code did not crash)
I confirm the warning are a wx gtk issue. They save the pointer in 2 members but only set 1 to NULL... Anyway I think this recent ticket respond to both issue...
Hum, it seems GTK can potentially do bad things with insert to ... So better keep the code like that for the moment. Warning are only warning anyway.
However it would be cleaner and more logical to properly delete the element in the while loop (see below). It does not have any impact because everythings is delete but it could avoid a future bug. I let you judge.
m_Items.push_back( RecentItem( normalized ) );
- while( m_Items.size() > m_MaxLength )
+ while( m_Items.size() > m_MaxLength ) {
+ m_Menu->Destroy( m_Items.begin()->ItemPtr );
m_Items.erase( m_Items.begin() );
+ }
m_Items[m_cursel = m_Items.size()-1].ItemPtr->Check();
But your patch just adds "m_Menu->Destroy( m_Items.begin()->ItemPtr );", which duplicates the functionality of RemoveAllFromMenu() which is called just before the loop ...
Hum I was thinking about the latest element but actually it is fine. It could crash moreover because element are already destroyed. Forget about it :p

Revision 4525

Disabling support for the Super Robot Taisen series.
These games will not work with newer PCSX2 versions anymore.
Game database: A few updates
There, roo: Fixed your problem :)
me likes
Best commit of the year and moma just use an older svn this is just so roo will know his game will never get fixed but tbh it isnt really broken
Fantastic update
I love you!! lets never reverse this :P
hahaha, serves him right!
yeah thats what he deserves
Creepy... my comment vanished, but anyway - awesome!
one of the best changes made lately :P
that guy "[email protected] is really him?
I like Super Robot Taisen series (but I just full play one [Dai-3-ji Super Robot Taisen] in SFC ,and collect all the series for the future play[10 years later maybe...after playing other more favorite games...]).
So I support ramapcsx2 make this decision.^^
(still hope someday support back...how about 5 years later...hahaha^^)
lmao !!!!
Nice commit, and I see what you did there.
best update ever
You see, Roo, the karma police is always watchin'! ^^
Got exactly what you deserved Roo. Act like a child and you'll be treated as such.
Haha great update! Servers that stupid kid right!
i approve of this trolling.
lol, now the insect can't play his game on future versions
I'm a chinese player,and i love the Super Robot Taisen series,I have a genuine Super Robot Wars Impact and I have a real PS2...
But,I am now thinking is:
A foul fish will spoil a whole pot of soup
C-C-Combo breaker commit! In yo face roo!
Haha, good work^^
@tq03q9i: Use older revisions, I'm sure once the foul fish is gone for a while, the pot of soup will go back to the way it was...
The devs are so bad with roo,its cruel!!Poor roo, he want just play with his favorite game.I am not agree with Rama...
You are roo, dont think you're pulling the wool over our eyes, we arent stupid. You make it blatantly obvious.
oh on which note, if anybody has any complains about this, feel free to forward your concerns to [email protected]
Poor roo can rather go out and enjoy a little air instead.
He needs it badly.
i have forwarded damnyou's email info to a contact i have in the hotmail accounts team, along with copies of his constant trolling of the gcode change trackers.
they might cancel his hotmail, or forward the info onto his isp for invalidation of his ISP's terms of service.
[email protected] - thanks for this good action. :)
But if the devs were comprehensives ,good and not sellfish, they will fix the SRT series (alpha2,alpha3,impact and ogs)in hardware mode and roo would have stop to make negative review...
I am not roo,i am a friend.
Roo, are you one of those pussies who gets your mother to fight your battles?
and if roo and his "friends" (lol) were good and not selfish, they (he) would realize that there is a lot more to an emulator than a single game or two. Sometimes there are even underlying problems that need to be addressed at a deeper level before a specific glitch can be addressed, no matter how small it may be.
But Roo is probably some 12 year old whose mommy buys everything for him and fights all his battles, so he expects everything handed to him-- a mere spoiled child. He wouldnt understand anything about the real world, let alone understanding manners, courtesy, and respect. All he knows how to do is kick, scream, and throw a tantrum when he doesn't get his way.
What goes around, comes around....... :) :P XD
Best update ever.
thumbs up if you´re glad rama kicked roo´s a**
oh wait, this isn´t youtube :D
Ahahahaa! Owned
Ok, I think it is enough past April fool's day...
This commit has nothing to do with Super Robot Taisen.
I had posted a similar comment on the 2nd, but it was deleted.
I will agree that the commit message is amusing, but continuing after April fools day leaves a bad taste in my mouth.
I'm pretty sure most of us knew that- the idea was to play along at least until Roo saw it, and to build up a large display of support in hope that it would make him realize how much of an idiot he was being (if that's possible, I'm not sure if he's intelligent enough).
It wouldn't have any effect if it was spoiled before Roo even saw it, which I'm sure is why the early comments were removed.
I think Rama is generous though, cause if it had been me, it wouldn't have been a joke commit- i would have actually done it til he and his alts went away and stayed away; in the meantime any legitimate user impacted could use and older build (or the current stable release or public beta) since the new commits aren't fixing the issue he's whining about anyways.
However, I don't even think it was necessary. Given Roo's childish nature and his response, I doubt he even knows how to use a SVN build, let alone spot that it was a joke commit, otherwise he himself probably would've posted "haha I'm still playing it" or something lame.
Trolls like these suck the fun out of working on a project on a for-free basis; too many people think they're entitled to dictate what developers do with their free time working on a free product.
If he continues to act up despite this, I certainly wouldn't hesitate to actually do it if I were the devs.
We would never intentionally break a game, this is for certain, no matter how many trolls there were on the SVN, we wouldn't sabotage our own creation. This was as you say, simply to get a message across to roo, however i think he has put any of the team off ever working on fixing that game, I certainly won't be, that is for sure.
It's really great to see the massive amount of support we have had from the users over this problem and the whole team thanks you and really appreciates the support you are all giving, it makes us very happy to continue working on this project and bringing it to you all!
Roo, if you want it fixed, 1,000,000 wow gold will entice refraction :p
I thought that was the intent-- I'm glad to hear you guys are not letting his trolling get to you.
Please keep up the good work. In general we all appreciate your hard work very much, and I think for the most part we have some good/useful discussion in the comments, despite the occasional lamer.
Thank you for your time and dedication over the years. Despite primarily being a lurker around here, I've been following PCSX2 since the very beginning, before it ran any games, and I check the SVN log every day.
It was thrilling to watch the BIOS and later FFX begin to run in the early days; I remember waiting 20 minutes to watch a partially drawn FFX intro begin to run ^_^;
It has been one heck of a ride.
I would hate to see the project be intentionally crippled because of one user as well, especially since that would be against community-driven spirit of an open source project. In that respect, I'm glad to hear you guys would never actually do that.
Sometimes I'd just love to see someones face when their trolling backfires and they learn the hard way, even if only for a day. It was inappropriate of me to suggest that though; I just tend to get frustrated easy. It's easy for me to have just said I'd really do it in a moment of frustration, looking from the outside, but I hope that if it was my project I'd have calmed down and handled it appropriately like you guys have.
There's only so much time in a day and its sickening to see the blatant sense of entitlement expressed over a free product. I hate it when people think the world revolves around them.
I think this creative approach leveraging April Fools day was a great way to send the message without ruining the product, and I hope its intended purpose works and that he grows up or goes away.
Please keep up the great work, I hope to see many more great changes make their way into PCSX2 in the future ^_^; best of luck.
starlight: Thanks :) Glad to see some people still appreciating what emulation is all about!
[email protected]: I quit wow about 2-3 months ago, i don't intend on going back :P
Glad to hear you've returned to the real world Ref :p
Yeh :P Who are you? Your name rings a bell...
lol, CGEMU sucks ;) *hint*
Yeah I've also been with pcsx2 from the beginning, good to see alot of the original members are still working on it, that's some good dedication (though I wonder why most left irc)..
but anyhow the team has my support.
OMG, way to go guys!
Danial: that didn't help lol
Konaj: unfortunately real life comes first!
jeez, fine, i'll make it an easy hint, im in the pcsx2 forum online list right now and i just recently posted in a thread :p
If you said jonc was king couched, I'd have guessed (thank you admincp) :p
Couched? Stupid phone, douche*
Yea, whops.
Actually this commit added a few gamefixes to the database.
Dunno about the SRT stuff, must've been a typo :p
About the first time FFX ran: Been there, done that. Great fun eh?
Who'd have thought we could one day actually play and finish the whole game when seeing that broken scene chug along at 5FPS :p
""It was thrilling to watch the BIOS and later FFX begin to run in the early days; I remember waiting 20 minutes to watch a partially drawn FFX intro begin to run ^_^;
It has been one heck of a ride.""
If you wanna live again those exciting moments you can always try the Linux version :)
wtf all most 70 revievs
I am surprised with 3 negative votes (excluding the vote of rookod), including the vote of a development team member.
Keep up the good work guys.
you guys are awesome
too bad that robot taisen still works and this was april's fools, otherwise the 80+ would make more sense. ;)
adding an email address to the abuse list: [email protected]
If this is going over 100 when I haven't even given a positive score then it's way beyond absurd.
...some may call that 'epic', though. =b
*taking notes of the e-mail addy ref posted*
You think this might be a record for any google project? XD
I hope it reaches at least +100, pcsx2 team is worth so much more than that though. Hope you don't take roo's personal issues too seriously, I know I don't. :p
actually I was thinking he was more of a side-show Bob :D
I approve this change and think roo needs to shut the fuck up and go away

Revision 4526

Small unpack bug with interpreted/partial transfers in fill mode (probably
REALLY uncommon).
sounds interesting, maybe that fixes a bug in Run Viking Warlord - had random slow downs e.g. start a level at 30fps, die, now 50fps, die again, back to 30fps, got no idea what's happening here but perhaps this commit will fix it, I'll try it out in a mo.
well the problem seems to be fixed but after getting to the 3rd skeleton at the "Boundaries of Hell's Domain" and randomly slowed down but not the fps. Not sure how to explain it, like it's skipping frames but at the same time freezing frames for a second or so at a time. the serial is SLES-50335 and GSDX is using D3D10 (software) with blend (bff) and AA1 set to off and all speed hacks are off. also using ISO mode not plugin. will try and dump now.
don't seem to be able to re-create it so maybe it was ISO mode causing it?
Possibly, as I said, games coming across it would probably be very rare
well at least it's working fine now, however I'm now having trouble getting past a point in the game (can't find a way to a certain ledge preventing further game play). In the event this is what fixed it, thanks.
You're welcome :)

Revision 4527

Small optimization for partial unpacks, won't make a noticable difference, but
every little helps :P

Revision 4528

Slightly safer way of handling filling writes in the Dynarec, disabled a debug
message i don't think we need any more.

Revision 4529

GSdx: mipmapping fix (ford mustang racing, and probably other games which use
small, non-square textures)
Fixed Big Mutha Truckers too :)
I no this is kinda off topic but figured it relevant to GFX plugins,
The Legend of Spyro: A New A Beginning - the menu at start screen wasn't visibible right? well I fixed that by enabling the skip mpeg hack, get just a black screen behind the menu instead, I think that the problem is in the z-position of the forground layer which would explain why could still use the menu even though couldn't see it, probably applies to the hud as well. On another note something is wrong with the in-game events because I can't get passed the 1st round of training with the red dragon you meet (not down to the hack btw, I loaded up a save from b4), I'd use my PS2 but I no longer have it.
I figure the hack will work as a temp fix to the menu problem until the issue is sorted.
Background 0x00c00000, menu 0, ztst set to greater or equal. Don't know which one is wrong, the background is more likely.

Revision 4530

GS window: F6 now properly cycles aspect ratios (previously was internal to GSdx
only, now affects actual CSX2's config)
Note: ZeroGS uses F6 to cycle anti aliasing, and it also intercept the key press and doesn't forward it to PCSX2. So this commit only affects GSdx.

Revision 4531

GS Window: Add proper zoom control and get rid of the "automatic" 4-pixel zoom
in stretch-mode.
Zoom = 100: Exact fit to window without cropping anything.
Zoom above/below 100: Zoom In/Out.
Zoom = 0: Automatic zoom in until the black-bars are gone.
Keyboard: NUMPAD-PLUS: Zoom-In, NUMPAD-MINUS: Zoom-Out, NUMPAD-*: Toggle 100/0
How about a list for the keyboard control features, accessed through the "System" menu?
It would really help.
Good idea. Thanks.
Or maybe under 'Misc' since 'System' is already a bit too crowded.
Really nice job :)
I understand the change and I welcome it, I just wish it didn't need to use the numpad keys for it because I used them for my pad settings... also the Insert key which I used for fraps but thankfully I could change that and at least that only works for software mode. I just hope you don't start using more and more keys that we need to be very selective later on if we want to use keyboard for buttons.
Maybe it's better that, aside from those assigned to function keys, the keyboard shortcuts are better off a combination starting with Ctrl or Ctrl+Alt...?
I agree pcsx2 needs a more customizable shortcut system, would be nice if there was a section for user configurable custom shortcuts, and shortcuts added for functions like toggling gsdx native mode on / off, offset / alpha hack, switch custom resolutions..etc
Another entry in the .ini file might be good.
*sees avih's head pops off from afar*
how about a section in the emulation settings that list the available functions and an input box with their assigned button (customizable of course). The list can be something like this:
enum { CTRL_PCSX2 = 0, CTRL_DISC = 1, CTRL_PAD = 2, CTRL_GFX = 3, CTRL_SND = 4, etc, CTRL_LIST = 10 };
int ctrls[CTRL_LIST]*; // plugins fill their part of this
char* ctrlnames[CTRL_LIST]*; // plugins fill their part of this
// start of code
ctrls[CTRL_GFX][...] = CTRL;
// rest of code
This would make it easier to custimize plugins and group them when listing them in the GUI
Can you add gsdx skipdraw hotkey
nefer, although I personally don't use the numpad keys for pcsx2, I had the same thoughts as you. I didn't want to "steal" the numpad keys for pcsx2's own usage and initially I programmed it to work with Shift.
Problem is, for some reason, it doesn't work for holding shift down and then repeatedly pressing another key (e.g. numpad-plus for zoom in). You have to press and hold shift, then numpad-plus, then lift both keys, and do it again if you want another 1% zoom-in. It's not technically impossible to make it work as I expect it, but via the current PCSX2 mechanisms it doesn't, so it becomes somewhat ugly to use... (it doesn't bother Shift-F3 for example because you never use it repeatedly, but you do with zoom).
As for general config for keyboard shortcuts, while I agree it's desirable, it's too bug-prone to do it hastily before the 0.98 release IMO. Keyboard handling is somewhat delicate with PCSX2, as the keyboard events are captured by the GS plugin, then delegated around to the PAD plugin, and each GS plugin also intercepts some of the presses for it's own usage (e.g. F6, F7, Ins, Del by GSdx, ZeroGS uses some other keys, etc), and PCSX2 also capture some of the keys (F1/F3/etc)).
I'll try to see if I can make it properly work with shift without breaking PAD behavior. If I won't succeed, I might still make it use shift and bear the inconvenience.
Let me know if you got other ideas.
For Windows, the "SetTimer" function can solve you problem.
I assume Linux\Gnome has somthing equivalent.
Furthermore, I agree with suluh.le: system control keys should use "Ctrl" and\or "Alt".
I found a way to make it use a modifier (shift/ctrl/etc) without having to lift. Also, Following your suggestion, I'll use CTRL/CMD instead of shift.
Thanks for the comments.
CTRL sounds fine to me as well :)
Great idea! Thanks a lot for this.
I have a small request related to this revision:
Another useful feature would be the ability to manually control the image position (UP/DOWN/LEFT/RIGHT).
This would be perfect for titles which use strange native resolutions (eg. DMC3 which leaves the lower 20% of the screen unused).
Thank you for your hard work!

Revision 4532

Merging the recent changes into /0.9.8.

Revision 4533

One translatable string (tooltip) from the new zoom feature made it into the
Since we're trying to keep the strings final, I'm removing it.

Revision 4534

GS Window: Zoom Keyboard control: Now works with CTRL/CMD (leaves the numpad
keys available for the pad plugin).
Toggle 100%/Auto-zoom: CTRL + NUMPAD-*

Revision 4535

Merging the recent changes into /0.9.8.

Revision 4536

Forgot Zoom tooltip update. Mehh...
Rama's gonna kill you xD
On his previous merge to 0.98 he already removed the tooltip because of strings freeze :/
I still think they can be left EN only (either with missing translations or just not-translatable).
Well, anyway, now it has the correct tooltip.
Anyway, will cg.dll and cgGL.dll be put into SVN for ZZOgl to work in Windows by the time 0.9.8 reaches release?

Revision 4537

GS window: allow full manual image control (had zoom already, now adding move,
The following controls are KB only (no GUI) and they don't save nor load from
the ini (thus always reset when starting pcsx2).
New KB commands:
Move image: CTRL + NUMPAD 8/2/4/6 for up/down/left/right. CTRL + NUMPAD 5 resets
to center.
Vertical stretch: CTRL+ALT+ NUMPAD PLUS/MINUS/* for stretch/shrink/reset.
This small patch is mostly for fun and for comments about the functionality (although it might also be useful for some games which don't show properly at PCSX2).
Yahoo! Thank you very very much!
(goes to test DMC3)
Next step : profiling support for games on image positioning so that the second time a game is loaded, PCSX2 remembers the previously used positioning for that game.
...j/k. =b
Actually I don't really mind black borders as long as the AR is correct, but it's still good to have this kind of flexibility.
Good job...Vertical stretch can fix some game
I am having problems moving the image. Zooming, stretching and resetting work fine, but when I press CTRL + NUMPAD 8/2/4/6/5 nothing happens.
I tried this with GSDX9&10, using native as well as custom resolutions and window sizes.
Could someone please verify if moving the image works?
ShadowLady also can't move the image. This is possibly a wx widgets compatibility/issue which breaks usage of the WXK_NUMPAD8 (and the rest) keyboard constants.
Can you please also try with numlock on/off? (it should only work with numlock on).
My system is windows XP/32 SP3, and it works.
For ShadowLady it's windows 7/64, and it doesn't work.
Please report your systems and if CTRL + numpad 2/4/6/8/5 at least show a console message (if not, the keypress is just "missed" somehow).
The next step: GS plugins will display overscan area instead of framebuffer... Proper ingame screen positioning support... Per-game screen position and scaling profiles...
Another next step : suddenly someone posted a commit and ZZOgl becomes ZZOCL.
Anyway, still compiling this rev to test; I'm on a Win7 64-bit.
Zooming, stretching and resetting work regardless of NumLock status and properly print data to the console.
CTRL + numpad 2/4/6/8/5 do not work regardless of NumLock setting and do not print anything on the console.
This is on Windows 7 x64.
Ok, this is weird.
On mine Ctrl + 2/4/6/8/5 actually works for moving and resetting, with NumLock, and this is on a laptop that doesn't have a dedicated number keypad.
As stated above, Win7 64-bit.
Tried on both HW & SW mode with GSdx (it probably doesn't matter, but why not).
The game was AT2, tested on the Load Game screen.
What's the game that didn't work with those shortcuts?
If I have it I might be able to also test it.
I tested with Devil May Cry 3 and the PS2 BIOS, and neither worked.
As Avihal says, the fact that nothing was printed on the console indicates that the issue is somehow related to the way the keys are read and not the applcation running inside the emulator.
May the problem be caused by different keyboard layouts (i.e. Russian or AZERTY or Polish)... But this is Numpad...
@[email protected]
Well, it just made me wonder why everything's fine on my end when we're compiling from the same source and using the same OS.
I also suspected different keyboard layouts at first, but after this rev works fine on my laptop that doesn't have a numpad I just don't know where else to look.
It's 99.9% not related to a specific game. If a message isn't printed to the console, it means the keypress wasn't intercepted.
Also, while I'm looking into it, ShadowLady reported that after performing a full rebuild, everything works as it should (and it didn't work for her previously).
Can you please try a full rebuild?
Just add a Russian or Polish layout to the system, and then try to use shortcuts...
I just know the Corel Draw had this kind of issues until recently - Shortcuts worked ONLY with English QWERTY layouts...
Another solution might be to use other keys, because possibly wxWidgets has some issues on some systems with numpad numeric keys and alt/ctrl/shift.
How about alt+ctrl + arrows for move and alt+ctrl + numpad-/ for center?
Although this issue still bugs me, as I'm quite sure that this commit just happened to expose it. Unexplained behavior can sometimes indicate deeper bugs...
Rebuilding didn't help (I always do a full rebuild after a SVN update), but it definitely looks like an issue with how WXWidgets handles the numpad keyboard.
I tried some different codes for the offset events:
anything else (eg. WXK_F7 or simply 1/2/3/4 keys) works fine.
Update 2:
I just tried changing my keyboard layout to UK /US English, but (as expected) it didn't change a thing.
It seems that the best way of solving this issue is to avoid the NUMPADX keys altogether.
Using alt+ctrl + arrows would be fine by me.
Thanks for the reports. I'll classify it for now as a wxWidgets issue, and change the keys to alt+ctrl and the normal arrows.
Please feel free to explore this issue (I would have if I could reproduce it, but I can't). I would at least be glad to understand why it happens, even if not solve it.
Thanks again, and just make sure to try the next commit and verify that it works (and if it doesn't I'll really start pulling my hair...)
I no this is kinda off topic but figured it relevant to GFX plugins,
The Legend of Spyro: A New A Beginning - the menu at start screen wasn't visibible right? well I fixed that by enabling the skip mpeg hack, get just a black screen behind the menu instead, I think that the problem is in the z-position of the forground layer which would explain why could still use the menu even though couldn't see it, probably applies to the hud as well. On another note something is wrong with the in-game events because I can't get passed the 1st round of training with the red dragon you meet (not down to the hack btw, I loaded up a save from b4), I'd use my PS2 but I no longer have it.
gb2985, this is unrelated to this commit. Please use the forum to post this info. You can also post at a revision that modifies gsdx (this image control stuff is completely unrelated to gsdx). Basically, gabest handles gsdx, so you should address him.
I also suspect this (and a few other titles, like Eternal Poison or Tales of Legendia) need perfect Z buffer emulation.
This will have to wait for DX15 or smth though, as Gabest repeatedly said before :p
Sorry for adding to the spam, avih :p
@rama, he was saying about DX12... Anyway, I'm sure he can figure out how to do that using DX10 pipeline if he really wanted to... Right now he's more interested in Software rendering improvements using AVX instructions in his brand-new Intel CPU...
For people with the shortcut keys not working right, I'm thinking it might be another application is using Global shortcut keys (and that will make them unavailable for pcsx2) maybe try shutting down all applications and bg processes and see if it fixes it.

Revision 4538

GS Window: image move: changing KB shortcuts to CTRL+ALT+ normal arrows (and +
NUMPAD-/ for reset).
Using ctrl + numpad 2/4/6/8/5 seem to not work on all systems. This might be a
wxWidgets issue. Please read the commit comments for r4537 for some details.
How about using the "Home" key for reset.
Some keyboards (noteboks, laptops) doesn't have the numpad keys.
Funny thing:
CTRL+ALT+ normal arrows DO NOT work, but
CTRL+ALT+ NUMPAD arrows now work! :S
Offset reset does not seem to work, but this isn't really an issue.
Btw, I have confirmed this issue on Win XP x64 in addition to Win 7 x64.
Suggestion: unless the "Ctrl + directional keys" combination is used elsewere within PCSX2, try using that combination instead.
ah for image move, yea ctrl + direction keys would be nicer, ctrl + alt + arrow keys is ok too just more steps :p
I intentionally chose a "complex" key combination to reduce the chance of accidentally invoking it, especially for people who use keyboard to control PCSX2 (also consider the fact that built-in KB shortcuts cannot be disabled).
Controlling the image location/size is not a common activity, and unless it proves common enough over time, it should just be possible (and even that might be questionable), and that's about it IMHO.
I'm always open to be proven wrong though :)
Works fine here; reset button also works.
I personally prefer the previous rev's combination though.
@[email protected]
Are you sure you've done a clean full build?
Because there's no way those Ctrl(+Alt) + 2/4/6/8/5 will work on this rev; I just tested it.
Before compiling a new rev, make sure to 'Clean Solution', close the solution, delete the .ncb (VS2008) or .sdf (VS2010) file, and then open the solution again.
I usually also run the .cmd file and revert back via TortoiseSVN for restoring the deleted .pch files from SDL's directories.
Today I made a clean checkout of this revision to a fresh directory, in order to make sure that this isn't a problem with my build. However, I got the exact same results as yesterday.
Both of my systems (XP x64 and Win 7 x64, different hardware setups) do not respond to CTRL+ALT+arrows, but they properly move the screen with CTRL+ALT+ NUMPAD keys.
At this stage it looks like something is messing up key codes. This is especially interesting because moving the screen works regardless of whether NumLock is on or off. I tried running the emulator with different system locales and keyboard setups, but to no avail.
I am also certain that this isn't caused by any background applications, as I am keeping my systems extremely clean.
I will report back if I discover anything new, but as it is I am very happy with the current setup (i.e. moving the screen with CTRL+ALT+NUMPAD).
Once again, I would like to give my best thanks to the author for realizing my little request.
Thank you very much Avihal! Keep up the amazing work!

Revision 4539

GSdx linux:
* Add a map to handle the configuration
* Connect the window size option to the gui option
Hum there is some issue I will fix tommorow.
Thanks. I'd been meaning to do that, but hadn't gotten around to it...
Your welcome. I fix some issues. Now it must work as expected. All options are save not only the one from gui. It would be easier to test an option without the need to recompile ;)

Revision 4540

0.9.8: i18n: upload and update translation
Translation monitor status (only not fully translated files):
locales/cs_CZ/pcsx2_Main.po - 496/ 0/497 ( 99%) -1
locales/de_DE/pcsx2_Main.po - 466/ 38/497 ( 93%) -31
locales/pt_BR/pcsx2_Main.po - 494/ 3/497 ( 99%) -3
locales/ru_RU/pcsx2_Devel.po - 6/ 0/34 ( 17%) -28
locales/ru_RU/pcsx2_Iconized.po - 35/ 3/37 ( 94%) -2
locales/ru_RU/pcsx2_Main.po - 424/ 60/497 ( 85%) -73
locales/ru_RU/pcsx2_Tertiary.po - 38/ 2/61 ( 62%) -23
locales/tr_TR/pcsx2_Main.po - 496/ 0/497 ( 99%) -1
locales/zh_TW/pcsx2_Main.po - 453/ 42/497 ( 91%) -44

Revision 4541

0.9.8:i18n: sorry forgot one language

Revision 4542

gsdx linux: add a config box for swthreads and fix a bad copy paste

Revision 4543

Adding Shadow Lady (Lana) to the list of contributors. Was a bit overdue, sorry
Shadow who? Never heard of it before... =P
About time :)
Heh, somehow I can imagine rama being roped and lashed before committing this. xb
Somehow I think... I don't even know what to think of you.. :p
It's not good for your (mind's) health. =|
ehhh ShadowLadys name is Lana? meh truth be told I don't care^^ she always had the best interest of PCSX2 at heart as far as I could tell and it was about time she got on that list^^
also "LAANAAAAAAAAAAAAAAAAAA!" I'll probably will now think of you every time I watch archer! damn good show^^
yay..finally...congrats machina
Oh god you revealed her name, now the stalker who made a love thread on the forum can uh...

Revision 4544

Got rid of the extra "Zoom" translation string.
Merged the recent changes, except the GS window "full control" (r4537 and r4538)
as those may need some testing.
Good decision :P
Also, the "full control" thingy only needs testing of the KB handling (I still suspect it's a WX issue). The image control code itself is minimal and pretty safe.
We can still merge any missing revs in later, once it's deemed stable :)
I restore the string in r4545. I feel better to keep it. Long explanation in the commit.

Revision 4545

0.9.8: restore the extra zoom translation string.
- Only 1 word (can use google translation tool :p).
- Give a chance to translate it. In the worst case, it will appears
- Translation will continue after the release. So it would avoid future complain
because they can not translate one string in the middle of the interface.
Translator note: no obligation to submit a new translated version for this only
string. It is an extra bonus :)
Alright, this is prolly the best solution. :)

Revision 4546

Docs update galore.

Revision 4547

Docs update also for /trunk.
Hmm...'known issues in 0.9.8' -> 'Translation system not implemented yet'...?
Shh guys! :p
In the FAQ, are the limitation of spu2x and the advice to use zerospu2 still valid ?
I think that's been changed in the latest commit, to something about how SPU2-X 'is nao t3h greatest thing eva'. =b
Actually it was on the latest :p Page 6 on 9.8 FAQ
LOL...and what I was referring to was apparently the Readme. xD
Anyway, the FAQ needs to be amended, just for the sake of consistencies.

Revision 4548

Installer changes to support the new docs.

Revision 4549

Some grammatical changes for the readme's thanks to Grissy :)
In PCSX2_Readme_0.9.8.pdf and PCSX2_Readme_0.9.8.doc, for grammatical reason:
"translated in" should be "translated into" in the sentence "A very detailed guide is available on the PCSX2 homepage which is already translated in several languages!"

Revision 4550

Forgot to check the trunk

Revision 4551

More changes to the docs. /trunk commit.
Huh...never realized Jake's on the list of the exes.
Anyway, maybe a bit of amendment to the Plugins sub-section of the What's New section, about just how much faster GSdx is on both HW & SW mode before people over-expecting things and flooding the forum.
Also maybe a list of the new keyboard shortcuts like the mipmap toggle on GSdx SW and the image scaling/positioning hotkeys.
And, the title (not the file name) of the PDF actually still reads 'PCSX2 0.9.6 readme', but it's not like people'd notice it. =b
Thanks for testing, I've fixed the doc title issue by getting rid of it completely.
The other recommendations might be done, might not. We'll see :p

Revision 4552

More changes to the docs. /0.9.8 commit.
The 'Readme / FAQ (Offline/PDF)' link(at 1st page of First-Time Wizard) is still pointing to PCSX2 FAQ 0.9.7.pdf
Thanks :)

Revision 4553

gsdx: linux: * fix some issue with empty string in configuration
Note: It might be better to remove the previous GSdx.ini file.
Good catch!

Revision 4554

Fixing a few problems with the docs. /trunk commit.

Revision 4555

Fixing a few problems with the docs. /0.9.8 commit.

Revision 4556

Small console printout consistency change. All the GSWindow prints look like
this :p

Revision 4557

Merging (all) the recent changes into /0.9.8.
There's a slight oddity with the new zoom feature to fix yet:
It can get set to 0% stretch by repeatedly hitting "CTRL + *".
This 0% even gets saved to ini :p

Revision 4558

GSdx: Quick sanity check before creating a SDL window.
This way if there actually aren't any displays available to SDL for some bizarre reason, it'll give a dialog that the plugin failed to initialize rather then segfaulting...
Note: I add also a test on m_windows just in case.
Arcum, the sanity checks add another issue.
launch a game -> try configure gs during the run -> change some check box then hit ok. PCSX2 give the dialog failed to open GS.
Because of unload/load I can set a break point... SDL video drivers was closed by sdl_quit in shutdown. So SDL_GetNumVideoDisplays will return 0. SDL_CreateWindow will init the video system so it is not really needed to init the video system. The init is done on the GSInit, I do not know if it called when reload the plugins.
1/ I'm curious if the sanity check can be removed now that a check on m_windows was added.
2/ Otherwise we need to ensure that SDL is properly initialized.

Revision 4559

PADNull: Fix a bug that caused it to crash if a GS plugin using GSOpen2 was
chosen under Linux.
The only time you'll ever encounter this, at the moment anyways, is if you are running Linux and have both PADNull and GSNull chosen as plugins. Which is rather unlikely, but could happen if you don't feel like either seeing or controlling your ps2 game for some reason...

Revision 4560

gsdx: add also a check of m_windows to play it self.
pcsx2: add a define to print the revision number with cmake

Revision 4561

0.9.8: i18n: update several languages
Latest of current language (all except 100%):
locales/pt_BR/pcsx2_Main.po - 496/ 0/497 ( 99%) -1
locales/ru_RU/pcsx2_Devel.po - 6/ 0/34 ( 17%) -28
locales/ru_RU/pcsx2_Iconized.po - 35/ 3/37 ( 94%) -2
locales/ru_RU/pcsx2_Main.po - 424/ 60/497 ( 85%) -73
locales/ru_RU/pcsx2_Tertiary.po - 38/ 2/61 ( 62%) -23
locales/tr_TR/pcsx2_Main.po - 496/ 0/497 ( 99%) -1
locales/zh_TW/pcsx2_Main.po - 453/ 42/497 ( 91%) -44

Revision 4562

GSdx: Tekken 5's hackfix wasn't working with the sharp/progressive video modes,
should look much better now when using them.
Also removed the effect in the burning temple stage which had thin lines over it
when using high res.
GameDB: More updates ~_~
It's meant to fix this now, at least most of it...
looks perfect :)

Revision 4563

Small console message change.

Revision 4564

Partially removed partialqwc stuff from SPR. As the DMA ignore is no a gamefix
this isn't required any more, also it broke Sega Superstar Tennis ;p
Cool, that was quick :p
I'll do a regression check.
I checked Guitar Hero, Ratchet & Clank and SRS Street Racing Syndicate, they all seem ok ;p
Im pretty confident FF12 will be fine too
FF12 is fine, yep.
FF10 is also fine now without the IPU gamefix on!
Dunno how long that lasts though, so let's monitor it :p
This one didn't have a -1 yet.
You're killing me man :p

Revision 4565

onepad: various minor cleanups.

Revision 4566

0.9.8: debian: remove old useless patches

Revision 4567

0.9.8: debian: refresh the remaining patches...

Revision 4568

0.9.8: last update of tr_TR and pt_BR

Revision 4569

GSdx: CRC Hackfixes for "Demon Stone" and "Big Mutha Truckers", removes
postprocessing and "fixes" the green/purple screens.
Small change to the Crash Bandicoot hackfix.
GameDB: Minimal updates.
whoops, that spu2-x/mixer file wasn't supposed to go there :p
+1 ing on behalf of the other half ;p
i remember years ago when i played crash bandicoot on pcsx2 i had to play it with the ugly garbage on the screen.
the nice thing about playing that on pcsx2 though is that the load times are reduced to seconds instead of minutes like on the real ps2 console; that game had terrible load times that made the game almost unplayable on a ps2.
The Mrs says the same cotton. It's much nicer to look at now though!

Revision 4570

GSdx: CRC fix for Time Splitters 2 (PAL), seems the NTSC one is already doing a
similar fix by default.
Also, reverting a whoopsie in my last commit :p
Was annoyed by this and SkipDraw setting ws removing the minimap and a couple screens where it shouldn't.
I remember working on this particular GSdx dump for ages :p
There's offscreen drawing involved (for that mini map), which is pretty rare.

Revision 4571

pcsx2 gui: support revision number in various place with cmake linux build

Revision 4572

Patch by Firnis:
He wrote his own, faster replacement for std::vector and used it for the EE and
IOP block managers.
This cuts down compiling time for some blocks from nearly 1 second to ~ 0.1 -
0.3 seconds.
With this shorter compiling time, audio and framerate should be more stable when
changing levels in a game, for example.
Thanks a bunch, Firnis ;)
Interesting :)

Revision 4573

GSdx: CRC hackfix for Gran Turismo 3 and Gran Turismo Concept. Some of the race
tracks had garbage all over the screen.
I'd give this one +2 if I could :)
Pretty much same as GT4 when using Brightness/Contrast other than 0, but in GT3 and Concept you can't change the brightness so it was only playable in software as far as I know.
I know what the problem was, that's why I like this fix so much :)
Ehr yeah sorry, I was supposed to do the first post to explain it but got caught taking the screenshots and by the time I hit "submit" ended posted after you :p

Revision 4574

spu2x: On linux uses by default the ALSA api when no inifile exists

Revision 4575

GSdx: Timesplitters 2 fix works with the NTSC version now too, shows the
CRC Hackfixes for Rez and Lord of the Rings - Two Towers.
Usual green/purple screen and misplaced postprocess.
Rez also loses some of the explosions effects with this hack, and for a game that's basically just rhythm and visual effects, it somehow hurts the game. However, it's still better than the multiple overlays, so, nice :)
The explosion effects in Rez were only seen with the software renderer before the hack and that hasn't changed, if you saw them in hardware you were probably mistaking them with the out of place filter :p
On second look you could only see the ones that happened on the top of the screen and they were done in the filter anyway, can't keep them I think.

Revision 4576

GSdx: Small mistake :p

Revision 4577

0.9.8: i18n: upload zh_TW latest translation
Except russian, all others translations provided are 100% :)
We might have to go without russian :p

Revision 4578

CDVD plugin submenu: now only enabled when "Plugin" is selected.
Hopefully allow less initial confusion (the CDVD plugin is not used by default
and it will mostly stay that way, so disabled unless chosen).
Note: the Iso selector sub menu is always enabled because even when the Plugin
is selected as source, selecting an ISO via the selector switches to the
internal Iso reader.
Its always nice to have less confused newbies :P

Revision 4579

0.9.8:i18n: new language hungarian

Revision 4580

CDVD plugin submenu disable: code cleanup to allow easier future modifications.

Revision 4581

* some notes on the generate_pot.sh script.
* Tell translators that they can also create a forum threads for 0.9.8

Revision 4582

* Upload spanish and hungarian.
* Add a fallback for all spanish derivative language (rough guess half billion
of guy)
* sync others in doubt (it only change line number in po file)
Lol, just around ~20 countries.
Conquistadores much? :p
Thumbs up for the tight maintenance of the translations.
Could you put on your todo list a merge of r4574 (spu2x config on linux) into 0.9.8 ? I could do it but I'm little afraid to break meta-data svn.
Hum, I think the bad guys probably found an other activity. Maybe re-enable user comment could be planned.
Did the merge.
User comments could should prolly stay off another month at least, imo.

Revision 4583

wiki: refresh PCSX2 install on a 64bits linux. Multiarch on ubuntu and package
list on fedora

Revision 4584

Merge everything except r4564 (SPR DMA fix) and r4572 (block manager
Linux builds now do that SVN versioning print that was recently added, dunno if
that's desired.
Linux number will not harm :)
I will check if there no string change tonight.
I didn't see any translatable strings touched but yea, better make sure :)
Ok no change in current translations.
Why not the sprawled fix? It merely restored old functionality as the newer stuff actually breaks games
Spr fix* stupid phone auto correct
Not sure if it's tested yet.
Afaik testers used a build without this change.
I realize it's a good change though, just waiting for some feedback first :p
But, its how its worked for years! :p leaving it out WILL break more than it fixes (which is nothing anymore BTW)

Revision 4585

GSdx: CRC hackfixes for Red Dead Revolver, Heavy Metal Thunder, Spiderman Web of
Shadows (if anybody cares about this one :p).
Also a few changes for Tekken 5, "City at sunset" stage, hopefully there's
nothing else wrong with this game anymore.
http://i.imgur.com/40zI2.jpg <-- Tekken 5, the bug was also costing a hit on performance for this stage when the sun was present
http://i.imgur.com/yzLiQ.jpg <-- Spiderman web of shadows, only half of the Z buffer cleared for some reason
http://i.imgur.com/DYzrf.jpg <-- Heavy metal thunder, usual problematic postprocessing had to be removed
http://i.imgur.com/6Zvec.jpg <-- Red dead revolver, bad filter and shadow projection removed

Revision 4586

Merge the SPR DMA fix, too :p
Thank you lol

Revision 4587

spu2x: remove some definition (fix gcc-4.6)
gsdx: add a missing include (fix gcc-4.6). Force an init of sdl to allow in-
emulation configuration

Revision 4588

Exclude ZeroSPU2 and ZeroGS from the installer.
These 2 plugins will "ship" in a different form.

Revision 4589

Document an issue with the texture mapping for "CLAMP_REPEAT" modes (possibly
the others as well).
The problem causes displaced character portraits in Ar Tonelico 2.
Review by Gabest would be nice ;)
How far is this into the game? Do you have a save or gs?
Found one, but it's that kind of error that does not happen after reloading the state. Now I have to play it again from the beginning.
Not that +1 is the main problem, the texture cache cannot handle blocks that are present on the texture multiple times (tbw*64 < (1<<tw)) and they are not fetched at the same time.
In this case, when it slides in from the right, the face part stays out of the visible area for a couple of frames and not drawn/loaded, that +1 however (added for bilinear sampling) still picks up a small part of it wrapping around to the next line and marks the blocks as fetched (right side). The next time when the face finally becomes visible the texture cache finds they are already loaded and simply skips them (on the left side from y=96). This is a very old bug in the caching algorithm, I only added simple workarounds for common cases instead of trying to fixing it :P
red: first time the texture is used
blue: when the face becomes visible
Bah, that sucks. So it's the cache yet again :p
Thanks a bunch for figuring it out though, maybe we can
hackfix it one day, together with the other planned stuff.
Otoh, maybe now is the time to try and fix the whole thing? :)
And also: Could you share your GS snapshot or savestate please?
I'd like to see how you got these awesome results debugging :D
Having a gs is no use, if the cache is empty and the face part is already visible the problem does not appear, but I made a state just before the whole thing. Loading it resets the frame counter to 5000, at 5045 the red area starts to be used, at 5054 also the blue.
const GSTextureCacheSW::Texture* t = m_tc->Lookup(context->TEX0, env.TEXA, r);
if(context->TEX0.TBP0 == 0x3b00 && m_perfmon.GetFrame() == 5054)
Alright, I'll reproduce your debugging then.
In my spare time I'll also quickly fix your bug. It's nothing!
One thing though: It shouldn't be so hard to fix in sw mode, should it? :p
It's not about being hard, 1:1 mapping between blocks and texture tiles is very fast with single bit flags, but that does not work for 1:N. I can only think of something like map<block, list<tile>>, and map::find will be definitely slower than checking the bits of GSTextureCacheSW::Texture::m_valid.
<gigaherz> method 1:
<gigaherz> keep a second "validity mask"
<gigaherz> if(src.valid && dest.valid) skip
<gigaherz> else read
<gigaherz> method 2:
<gigaherz> on top of the "validity bits" keep also the coordinates of the texture
<gigaherz> if valid bit is 1, then compare the coordinates
<gigaherz> if they are different, then NOT skip
Already implemented what I was thinking of, it turned out pretty simple, just slower :P
Well, the fun is having it in hardware, too :p
For sw though, think it's too slow?
If I let everything go this way then -10%, but luckily most textures can be handled the old way.

Revision 4590

* sync everything
* New spanish translation now complete
Translator Note: Russian translation miss some strings feel free to complete
Current Russion translation status:
locales/ru_RU/pcsx2_Devel.po - 6/ 0/34 ( 17%) -28
locales/ru_RU/pcsx2_Iconized.po - 35/ 3/37 ( 94%) -2
locales/ru_RU/pcsx2_Main.po - 424/ 60/497 ( 85%) -73
locales/ru_RU/pcsx2_Tertiary.po - 38/ 2/61 ( 62%) -23
I had Russian a couple of years in school.
Nothing left of that though, I'm afraid :p
Someone open an issue. It might be more reliable than you. Sorry :p
I'll just fake it! xD

Revision 4591

GSdx: linux: polish window management.
1/ Allow a resize of the render zone.
2/ Do not update title in fullscreen which create some flashes

Revision 4592

GSdx: the texture cache fix discussed under r4589.
See what's broken now :D
Awesome, you fixed it for hw too :p
Yea, I'll run tests now, hoping it fixes more than just one game ;)
Hopefully, cache fixes are always nice!
Dont suppose thisll help make Mip Mapping more possible in HW mode will it? ;p
So far I've only seen Baldurs Gate get really slow.
That's the game with a ton of broken textures (prolly a PCSX2 error).
There's a lot of printf("[email protected]#$\n"); :p
So no loss here, as that will get fixed once we know what's really up with the game.
Okay, I checked with Tales of Legendia (another overallocator) and it also got slower in hardware. These games are abusing the cache though and don't really work properly anyway.
I guess only a new texture cache can fix this problem for good :p
Hmm, so far nothing else got fixed :/
I found that some Japanese Wizardry game that has the half screen problem in hw (actually it's a 1/5th screen problem :p) also is slow now.
Must have something to do with the broken output.
You'd think that since it got slow from this, the bug would also be gone.
Must be something else not getting invalidated?
HW may be a lot slower now because those blocks are loaded to every part of the texture, even if they are not needed. I might try this the other way around, to have a map that maps tiles to blocks. That fits for Update as well, just the Invalidate function still needs to know which page maps to which tile, that's the tricky part.
Did this revision break that game?
Nope, it was always broken in hw and fine in sw.
The only change is that it's now spending a ton of time in GSdx.
Hm, this and half image problems usually happen because base pointers address into the image and it just cannot find the right texture.
Here's a great GS snap of this:
The issue is pretty common, I think. Might be the same with those flickering or missing FMV :p
the flickering FMV thing is actually a DX issue with how it flips the buffers etc, where FMV's are just streamed pictures, it doesnt always work right and you can end up with blank pics (causing flashing). It should theoreticly be ok in software mode.
Seems this rev also caused slowdowns in Soul Calibur III and unlike dragon quest viii the speed didn't come back in r4597.

Revision 4593

GSdx: CRC hackfixes for Silent Hill 2/3 (half screen issue), Castlevania
(removes shadows which were broken and caused darkness in different areas) and
Bleach Blade Battlers 1/2 (shadows that caused a huge slowdown when casted on
the characters).
Few changes to the Simpsons hackfix.
Heh, the missing self shadows in Bleach aren't even noticeable.
Speed is well above playable now though :)

Revision 4594

0.9.8:i18n: upload latest russian translation
It only remain the main :)
pcsx2_Devel.po - 33/ 0/34 ( 97%) -1
pcsx2_Iconized.po - 37/ 0/37 (100%) -0
pcsx2_Main.po - 424/ 60/497 ( 85%) -73
pcsx2_Tertiary.po - 61/ 0/61 (100%) -0
x(100%)x - 555/ 60/629 (88%) -74

Revision 4595

0.9.8:i18n: last part of the russian translation
Great :)

Revision 4596

GSdx: trying another approach for r4589
This one is tons faster in Wizardry.
It doesn't build in msvc2008 though:
1>.\GSLocalMemory.cpp(585) : error C2440: 'initializing' : cannot convert from 'std::list<_Ty,_Ax>::_Const_iterator<_Secure_validation>' to 'std::list<_Ty,_Ax>::_Iterator<_Secure_validation>'
1> with
1> [
1> _Ty=unsigned int,
1> _Ax=std::allocator<uint32>,
1> _Secure_validation=false
1> ]
1> No constructor could take the source type, or constructor overload resolution was ambiguous
Msvc2010 is fine :p
The fire attack effect in FFX-2 and Dragon Quest 8 are really slow now.
FFX-2 fire is down to 20FPS from 120 ><
Might want to just make this a hack then..
Save states please :P
To build with 2008 remove const or add const_iterator.
I'm already comparing DQ8 with older builds of gsdx in hw mode. GPU usage up from 30% to 60%, it should not be that high, unless that new TODO in GSLocalMemory really does matter.

Revision 4597

GSdx: implemented the caching of the new page/tile map, dq8 should be fast again

Revision 4598

GSdx: forgot about something...
Yep, speed is up again :)

Revision 4599

GSdx: Some CRCs added, thanks to [email protected] for this :)
GameDB: Minor updates...

Revision 4600

Merge everything except the new GSdx texture cache fix (not tested enough yet).
Official release! F**K YEAH!

Revision 4601

wiki: add a new link for chroot on ubuntu thanks to I.Hate.S...

Revision 4602

zzogl: Replace a function by a macro. fix gcc-4.6 issue.

Revision 4603

zerospu2: fix an issue with gcc 4-6 (note some gcc 4.6 optimization breaks
i18n: allow to translate a part of system default for the language selection.
Rational: In case system default is incorrect, we will still get an english part
(with the unknow-language translation)

Revision 4604

GSdx: psx plugin works again, the removal of _aligned_realloc broke it when I
was making it gcc compatible.
Thanks for fixing it!, now it's usable again.
(there is still a rare bug that can cause the display driver to completely crash/freeze the computer, though usually the system can restart/recover the driver before a force restart is needed. It usually happens when first starting a game or when quickly loading save stats)

Revision 4605

linux-gsopen2: new branch to port gsplugins to gsopen2 on linux (failed to sync
my very old branch so create a new one)

Revision 4606

* make zzogl working with gsopen2 (if you does not count memory leak, missing
lots of features...)
* broke everything else :p
I wanted to save my week of effort to find a way to make it working.
I do not know if the context opening could be completely move to the gs plugin thread. Anyway that would be easier to test it now that we have a know-working base.

Revision 4607

linux-gsopen2: put back opengl stuff into the gsplugins. Much better this way

Revision 4608

Added GameFix for Transformers and Test Drive Unlimited to solve the slow
booting issue, Test Drive is now playable at least :P. Also tidied up a small
bit of VIF DIRECT/HL, no functional changes made.
Hah, cool you could fix this nicely :)
I'll see if any other weird timing games are affected.
Cool :) Yeh i knew i had an easy way around it, it was just a matter of being arsed lol.
I did think about putting in a sort of VIF FIFO, a proper one. However i realised what a mammoth job this would have been so i went for the easy "might help get in the release" style fix ;p

Revision 4609

Minor EE Cache emulation changes (No fixes)

Revision 4610

* new language japanese & italian
* review of chinese
Hopefully it won't be late someway for new languages added after the 0.9.8 release on May 1.

Revision 4611

0.9.8:i18n add missing copyright information on some translation files

Revision 4612

* Get the window from the top wx widget => remove all pcsx2 side hack
* restore most of the window feature of zzogl
It would need additional testing and some minor polishing but ZZogl is now gsopen2 ready :)
Gentlemen I will need our opinion on r4632.
In short, because wx manage the window, it also manage all events. Plugin did not see anymore keyboard, resize events etc... The idea will be to send them back to plugins with a new API function "void PAD/GS WriteEvent(event structure)". The event structure can be make generic to keep same function or we can split with a key event (keypress/release focus stat) and window event (size position). New functions will be optionnal.
By the way, what is the status of the new plugin API 2.0 ?

Revision 4613

linux-gsopen2: some minor cleanup

Revision 4614

Remove a size check that prevented fps2bios to load.
Also enabling code comments again,
since the release is out now we can live with roo -1'in everything :p
Current output when starting fps2bios with PSX interpeters:
fps2bios v0.1
loading EELOAD to 0x80000000
iopstart: fps2bios v0.1
_iopstart: loading IOPBOOT to 0xbfc0a180
psx: Unimplemented op f0000002
+1 for comments being reenabled.
And so, I guess the svn after 0.9.8 release would still be called 0.9.7.rev? =b
No, itll now be callled 0.9.9
I can comment again. YA!~
How long until roo appear here? Congratulations for 0.9.8 release!
Disabling comments made me think that it's me having some compatibility problems with Opera 10.10 and Google Code...
Even if you're close to Release 1.0.0, there's a lot of work to be done, especially on the Gsdx side... Good luck...
thanks guys it is great to see a new release after so long, i've been compiling my own for ages so yay! has teh googles given you teh ban hammer yet?
Thank you for all the hard work guys. Don't ever let roo or other whiners get you down.
I was just asking because when I compiled this rev I still got =b
Anyway, congrats on the 0.9.8 release. ;)
What is the status of the bios ?
Basically nothing, and it doesn't look very nice to code. It's all mips machine code ><

Revision 4615

linux-gsopen2: turn of gsopen in GSdx-linux.
* Status can work (50% with padnull, 0% with onepad). In my opinion it is some
multithread issue (sdl is not thread safe)
sdl: fix 2 bad thing in my opinion. I guess I need to open ticket on their bug
For records SDL bug reports:

Revision 4616

pcsx2 0.9.9 a new journey begin ;)
woo yeh! here we go!
What's the focus going to be on now? seems like almost everything is working well.
same as 0.9.7 .. this is going to be only a beta and then the final realease stable pcsx2 1.0.0
thanks you guys. goodwork goodjob..salut from ex yugoslavia slovenia
Good news!!
Good luck and godspeed xD
[email protected]: you forgot about 0.9.10!? :D
can I be a new rik--... whatever his name was? My game wasn't fixed by this revision!
No, no you're wrong.
This revision does not affect games, rather it affects users..
or to be more precise, their imaginations about v 1.0.0.

Revision 4617

pcsx2 & spu2x: allow to compile[0] with lto on linux. It removes an useless wx
feature on linux.
[0]: it needs gold linker, tuning parameter large-function-growth to 5000 and
Note: there is a crash with an optimization flags (present in O1 and O2). I need to found it to test any speed improvement.

Revision 4618

Patch to GSdx capture that offers RGB mode. By patrickdinh.
Also added Valkyria Profile 2 Italy to the gamedb and GSdx crc list. By Leucos.
Thanks guys :)
Is it possible to add FXAA (http://www.geeks3d.com/20110405/fxaa-fast-approximate-anti-aliasing-demo-glsl-opengl-test-radeon-geforce/3/) as a post filter effect for GSDX?
By the way thanks for the great emulator guys!
Why RGB mode is crash when selsect Uncompressed?

Revision 4619

Configurable output volume, ini only for now.
Can be set with "FinalVolume", from 0 to 100.
+5 Bambi for you :-)
you know its smart move ^^
Thank you for effort toward this
Very nice, thank you!

Revision 4620

Disabling some console spam (actually just changing it to a dev logging spam :p)
that was causing a huge slowdown in Star Trek Voyager - Elite Force.
GameDB: Few updates...
That could have been removed Tbh, it seems to work :p
I'm not sure why it was there to be honest, if you're sure it can be removed then go ahead :p

Revision 4621

0.9.8: backport the gcc 4.6 fix for zzogl and zerospu2
might be useful for future :p
My I ask, do you intend to make another release of 0.9.8
and if not then why is the branch updated?
1/ no real plan. But 5 minutes now could save hours later.
2/ linux contrary on windows work with sources and not binaries. If someone want to compile with a recent compiler it could do it without fatal error.

Revision 4622

microVU: Fix for Red Faction 2
Game needed interpreter VU0 to work correctly, now it runs even faster than before :p
always like mvu fixes :)

Revision 4623

Gamefixes for Growlanser 2 and 3 that finally fix those randomly dieing videos.
These nice games should be playable at last.
Thanks to Lana for finding them! :)
Nice work guys
Cool! What was happening?
The stuff I sent you via mail, ref :p
Just tested it with Growlanser 3. Still freezes when the fmv after battle should play.
Console says IPU Freeze fix though.
If you are loading a savestate then the problem is already there, don't test with old savestates.

Revision 4624

Adjusted VSync to work more like the PS2 does it, also involves a small change
which "might" sold some half screen issues. Fixed a couple of counter log bugs
too (caused it to crash when EE Counter logs were enabled)
PS2 results: http://simplest-image-hosting.net/png-0-unbenannt95
New pcsx2: http://simplest-image-hosting.net/png-0-pcsx2vsync
PCSX2 Before: http://simplest-image-hosting.net/png-0-unbenannt211
Notice the 3rd line down (under the top really squigly one) the PS2 just has a small notch near the left, PCSX2 had one right in the middle, meaning VSync was WAY too long.. as you can see, we now mimic the PS2 almost perfectly (ignore the bottom line, thats the buggy test)
oops missed off the numbers in the other pics
GS vsync --- happenned about 1 times in one frame
GS hsync --- happenned about 263 times in one frame
EE vblank --- happenned about 1 times in one frame
EE hblank --- happenned about 524 times in one frame
EE vblank gate --- happenned about 1 times in one frame
EE hblank gate --- happenned about 45 times in one frame
That was wrong before too :P (EE hblank was wrong)
Awesome, and a GS fix too! :p
2 in one :P
Half screen issues still occurring in Baldurs Gate Dark Alliance sadly.
As I said it might, no guarantees. :p
Unfortunately nothing I've thrown at this showed a change.
I'm sure that some homebrew will like it though.
Speaking of which, wanna try and add SIF2 the weekend?
It'll be needed for PSX mode some day, and the media player homebrew SMS uses it already :p
Hmm, maybe :p always been curious with psx, but its always Hung before it got to the sif2 stuff :(
Yea, I know.
But otoh we can test it with SMS right now.
Seeing your videos playing in PCSX2 is just awesomely rewarding (an earlier version of SMS works :p ).
Oh, and isn't SIF2 one way without FIFO? :p
It's bi directional, so it can go both ways and uses the fifo :p
Bah, oh well. At the simplest it'll be a direct copy of SIF1 then, just with different memory locations and regs? :p
No cos sif is 1 way :p it'll probably be a read and write function for each side, then called depending on direction
But we can leave out the FIFO!
We will find out :p email

Revision 4625

microVU: Added some options in microVU_Misc.h to easily enable/disable certain
mVU features to help in debugging problematic games...

Revision 4626

Configuration panel: bugfix: "Apply" button was enabled when the dialog opens.
Now starts disabled, and only enabled after actual changes to the panel.
Another idea to improve the interface. Note I could do it myself but if you have free time, feel free to do it.
Move automatic gamefix from main menu to gamefix panels. I think the logic can be simplified.
1/ remove enable manual gamefix (will be replaced by automatic gamefix).
2/ when automatic gamefix is enabled, gray gamefix selection. Either users want automatic or select the gamefix.
It would avoid the need of ten lines to explains PCSX2 behavior :) What do you think.
But that limits us devs by not allowing automatic + whatever we choose.
Also right now the cheats and gamefixes are in the same place.
If we want to test fixes, we can easily disable any patching by unticking these 2 options.
I'm therefore for leaving stuff as it is, or come up with a solution to the 2 points above :p
Does enabling manual gamefixes disable automatic gamefixes?
Well in that case: gregory +3.
On a related note, I can't seem to find any setting for the location of GameDB, which seems to be stuck (for me) in different folder where I previously had pcsx2.
I've tried clearing all the settings, even manually deleting the .ini files, but no joy.
Gregory, we did consider your suggestion before finalizing 0.98. FWIW, I also think it's a good suggestion ( http://forums.pcsx2.net/Thread-Calling-all-Translators-PCSX2-GUI-is-ready-for-translation?pid=161508#pid161508 ).
IIRC, others opposed, ShadowLady comes to mind, and possibly rama too.
Hum, do not know about the cheat never use it. It is bad :p Well I need to look at the current interface for this one.
Anyway some brainstorming and rough ideas.
For the gamefix. debug and dev build.
Put the 2 combo box: enable manual and automatic.
For release build:
Put only automatic one.
Another idea but that would need more interface work: Create somewhere a way to enable expert configuration mode. In basic mode, hide some options that are not so useful for users 99% of the time. And in expert
print everything.
I better understand why gamefix was put in the menu because it impact also EE/VU and others stuff I do not remember. Maybe it would be easier to duplicate the automatic fix buttons.
For example one that only impact EE/VU in the the EE/VU panels.
For example one that only impact gamefix in the the gamefix panels.
Maybe keep for dev only: allow to overload automatic stuff.
On the db location (seem not user friendly), maybe we can move it inside the ini dir. It is some (automatic) configuration anyway.
My stance on this:
Sorry, I see no point in doing any of this.
Sure, it makes some aspects a little more clear to end users
but at the same time it causes more work and less freedom for
devs and power users.
It's fine as it is, imo :)
Norikumi... see end entries of i881.
By the way, the registry paths in general sux
(from a user perspective).
I was very simple and easy before the "new order".
Well I thinks it is all personal anyway nobody want same interface:). The global idea was to ease configuration for basic end users. I think the idea of basic/power user conf buttons would help the first without impacting the seconds. Actually it could help power user too, you could have more freedom to add options without cluttering up too much the gui. The rough idea comes from the videolan gui. Anyway let's keep like that for the moment :)
Okay, cool.
Btw, the videolan gui is a disaster :p
Agreed, VLC's GUI is hell :P
thanks pg
PG, Im also have the problem of Norikumi whit the gamesDB directory. How I can resolve it? I dont understan your answer.
(Sorry for my bad english)
alfre : https://code.google.com/p/pcsx2/issues/detail?id=881 (issue 881)
Thanks a lot Norikumi!!!!!!!!!!!!!
greetings to all from Argentina.

Revision 4627

GUI: when the config panel is open, and using keyboard shortcuts for frame-
limiter (F4) or aspect-ratio (F6), reflect it at the GUI, but ONLY if there are
no intermediate changes at the GUI (i.e., only if the "Apply" button is
currently disabled). This would prevent re-applying obsolete values when
clicking Apply/OK for for these two configs (after they were changed via KB
while the GUI was open).
This is a very light infrastructure to allow some synchronization between KB
shortcuts and the GUI. Currently only used for frame limiter and aspect ratio KB
shortcuts. I wanted to also use it with frame-skipping (shift-F4), however,
frame skipping GUI seem to have other issues which prevent it from properly
reflecting KB modifications, so it's out for now.

Revision 4628

* move back again the x window stuff inside pcsx2. It would avoid some
collisions between gs and gui thread.
* (WIP) manage window more like GSdx expected.

Revision 4629

linux-gsopen2: forget a small one :p

Revision 4630

GSdx HW: CRC hackfix for "Black"
Minor updates to GameDB.
Ehr... removes postprocessing that left garbage in screen, more playable in (Hardware) mode but the nice lighting effects are only available in software anyway.
Something like this needs to be done for the Burnout games too.
Kinda but burnout games work fine with skipdraw I think, in Black using skipdraw would also remove the HUD...
Now that you mention it, Burnout games and Black have a "black sky" problem too which can be sorted by starting ingame graphics with software mode hmmm :p
yes that and the fact that with skipdraw it sometimes skips drawing the arrows that point the which way you should go in the track(the invisible wall is still there though).
Maybe next time you update GameIndex you can include this:
Serial = SLES-53825
Name = Project Zero 3 - The Tormented
Region = PAL-Unk
Compat = 5
// When running this game in hardware mode using GsDx,
// a white line can show up at the bottom of the screen.
// This can be removed by zooming into 101%,
// using Ctrl + Alt + NumpadPlus.
// This could however result a in less sharper image
// under some circumstances.
If you mean that note, it would have to be added for a lot of games so no, it's up to the user if it bother's them much and I think it's in the tooltip for the zoom option already. Can do the compat update next time if no one else does it tho :p

Revision 4631

GSdx: Bit better hackfix for black, wasn't showing menus and the sniper scopes
and also works for PAL 50 and progressive modes now.
Small change to the Metal Gear Solid 3 hackfix. Portraits in codec conversations
show now without much of a performance hit, lemme know if this one breaks
anything in the game.
Portraits? This is awesome! I never knew they were there.
I've been waiting for an MGS3 visual fix! Thanks. Now if only the post processing effects would make it into a revision.
The post processing is disabled on purpose because of the negative effects they have on performance. If you want them you can always switch to software mode.
I know about software mode, but it looks uglier than on a PS2 with component cables. I would love an option to enable post processing, even simply for testing purposes... with a modern 2nd gen core cpu, would they work okay?

Revision 4632

linux-gsopen2: Fix an others MT race condition. Enable gsopen2 on GSdx too now
that it is crash-free
A major issue remain: wx 'steal' all X event so there is no event (keyboard,
resize, etc) inside plugins!
I try an experience: when the wx key handler (GSPanel::OnKeyDown) is called. I resend an X event to the X window. I was thinking event was on the wrong window but I was wrong.
The result: Most of the time event come back to the key handler (yes create a loop of event). However some times the pad get one event. So destination of events is good. Wx only fetch them before plugins and delete them of the X event buffer...
So far my only idea is to add a PadSendKeyEvent(key event) and GSSendResizeEvent(size event) to the plugins API.
Perhaps there is some tricky stuff with the wx event configuration.
There is some trickery with KB events delegation from the GS window. It goes through some hoops to work properly in Windows as well. I can only imagine X doesn't make it any easier, unfortunately...
Do you have additional info on the windows voodoo stuff?
Maybe you speak about this roadtrip:
1/ event -> get by both wx and pad. Wx do nothings.
2/ Then wx call PAD update and PAD key, to get event that was not consume by the pad.
3/ If event remains send it to GS (maybe others plugins).
4/ If still remains, wx will use it (various pcsx2 shortcut).
For the point 1 in gsopen1, the event was only send to pad because there was not wx widow, so it work fine (actually except pcsx2 shortcut, but it is unrelated). With gsopen2, the event is pick up by first, ie wx. Gui thread is always running, and the pad event loop only awake every vsync...
Well I think I will a look at the window pad plugin maybe I can find something.

Revision 4633

wiki: restore the summary due do an extra space.

Revision 4634

Adding another Simpsons CRC thanks to Jan-Henning Klasen on the facebook group!
? why negative ?
Take 2 guesses. It has nothing to do with the commit. Its our friend roo again with a new email address registered most likely. +1 negative to roo for not having a life.
It isn't roo, he only did one post. Probaby just some guy who thinks he's funny..

Revision 4635

- Allow filtering setting for native resolution hardware rendering, as it's not
tied to the resolution.
- Add ST / UV coordinate tweaking defines to more easily debug small rendering
- Add a define to bypass the hardware renderer texture cache. With this enabled,
speed drops to slower than software rendering.
It fixes nearly all hardware rendering issues though and can be used to see how
games *would* look if we had a new cache ;)
Thanks for the help, sudonim :)
so, postprocessing and others work without texture cache ?
It's too slow..
Speed drops slower than software on ANY graphics card ?
so how to we enable this thing (- Add a define to bypass the hardware renderer texture cache. With this enabled,
speed drops to slower than software rendering.
) cause i cant see it in gsdx panel
Since rama said "add a define" it's a source define so yeah you obviously can't see it in the GSdx panel.
yeh in stdafx.h
//#define HW_NO_TEXTURE_CACHE // Slow but fixes a lot of bugs
Could be really handy to see :)
I'm curious, maybe an integrated GPU (either cpu or NB) would be *faster* than a dedicated GPU without texture cache. It would avoid the transfer from RAM to GPU RAM, do not know maybe it still transfer from RAM to RAM.
It might actually prove quicker on those games with excessive amounts of vram usage. some run at sub 5fps due to their vram usage, so without that overhead it might actually be quicker.
AMD fusion platform perhaps?
Yes, fusion or intel equivalent:) Or maybe future fusion with a real integration of GPU as a direct co-processor of the CPU.
Have some screenshots of what this does :p
Does this fixes the movie problem in FF X-2 if bypass the hardware renderer texture cache?
It fixes SRT? :) I'm curious and I dont have this "famous" game..
To be clear the switch added here is for developer use only and is of no interest to normal pcsx2 users. It is analogous to the switches we have in recompilers to disable recompilation of some instructions or disable the very optimisations that make recompilation faster than interpretation in the first place.
It prolly won't fix SRT as that's a bilinear filtering issue of some sorts.
Also it doesn't affect FFX-2 videos, unfortunately.
It affects some other blinking or missing FMVs though, like the ones in Rule of Rose.
Oh, FFX-2 videos is not affected. But no problem. I am sure this is going to open doors for more known problems. Then we will fix FF X-2 one day.
FF7 DoC still flashes, so people know and the half screen issue is still present.
From what i can tell over Logmein, tony hawk project 8 and gran turismo 4 look a lot less buggy without it, but the speed is really unbarable.
Indeed, GT4 can do brightness and contrast changes now without having the whole screen in garbage pixels :p
so far i tried Okami, Wild Arms 4 and 5, DBZ BT3, All Burnout games hoping this will fix the postprocessing errors but sadly it did not.
I are disappoint. :(
Still +1 for finding that texcache causes problems. :)
Yea, Okami looks pretty bad.. I've seen this kind of problem in Xenosaga 3 as well.
Fixed #4 of my earlier screenshots in r4639 :)

Revision 4636

New define "NO_CRC_HACKS", for testing how games work without hacks easily.
Gets enabled together with the no cache define but can be toggled individually
as well.
Also I've been told to mention that these changes are not directly benefiting
the end user.
Gamers: This doesn't fix your DragonBall, okay? :p
So this CRC stuff aren't disabled when disabling Automatic Gamefixes?
No, CRC's are always applied no matter what
Debug +1 , hope you can fix more bugs

Revision 4637

linux-gsopen2: make keyboard work again on linux. PCSX2 shortcut works too :)
* Add a new API function: PADWriteEvent to send key event from pcsx2 to pad
* Add a very handy shortcut [F10] to grab/ungrab keyboard/pointer
The remaining issue so far is the backbuffer size of GSdx. Seems good in zzogl.
Keep going :p
(Though I'm certain we're already using F10 for *something*. Can't say what it was though, lol. )
Actually me too, first I try F12 but it was for recording. I miss a nice help page with all shortcut.
Argh it is for the logging stuff.... My gosh we need to extend keyboard.
I will change it for shift F12. It would be fine.
Btw, no need to worry too much about #ifdefs for Linux code in Onepad. Windows support is completely broken in Onepad, and would pretty much have to be rewritten from scratch for it to work. It was already broken in Zeropad, and Onepad is mostly a reworking of Zeropad...
Yes I know, I try to avoid to break it more :p By the way, maybe we can get rid of Windows bits. There is already good pad on plugin Win.
We probably could. I just left it in in case I felt inspired to write a Windows port one day. The joystick code is cross-platform, so it was mainly the keyboard code and the dialog box that'd have to be rewritten, or written as the case may be.
I recall working on it for a few days, and then deciding that I really didn't like writing Windows gui code, and worked on something else.
(And I really need to get back to coding on pcsx2. I've been distracted by computer games, a ps3, and lately, *2* hard drive failures, of all things. Fortunately, I was able to copy most of the data off the more important of the 2 hard drives, and the other was dedicated to Windows, so no big loss...)
At least you are *lucky* enough to retrieve all our important datas :) For the moment I keep my finger crossed but I really need to do a backup of my data.
Anothers things that we can *clean* (move in a separate zone) is the various *deprecated and unused* plugins. It would save bandwith, diff and merge time (IIRC there was an archive/cimetery somewhere)
Yeah, any work I did on pcsx2 is on the hard drive that didn't fail. Some documents I reference, and all my isos are on the one I was able to recover things from. Most of the damage was to an area I had a backup of. So I was pretty lucky that that hard drive was just bad spots. The other one clicks when you start it up, and isn't recognized, but I didn't keep much important in my Windows install.
And the plugin tag was where all the plugins we don't use anymore go, IIRC...
I have found a way to properly support the back buffer in GSdx. For the moment it is a very ugly hack. We cannot directly get the size by SDL, because it is not aware that the window change, wtf! Anyway the idea is to do everything manually with the low-level lib.
open/ Open a X11 display
1/ send the sdl_window from the gsDeviceSDL to gsWnd.
2/ Call XGetGeometry to get the size of the x_windows.
3/ Set the size of the SDL_window (need otherwise
close/ CLose the x11 display
Can I ask you a favor? Can you do a quick test of my branch on windows when you have some spare time?
-> check that you can open/shutdown/pause/resume with GSdx (in particular with SDL render).
-> pad and audio still working!
Normally all my changes are safe but I will prefer some real tests.

Revision 4638

cmake: fix a subtle bug which lead to a bad selection of wxwidget configuration.
Impact fedora users
As a bonus I can have debug symbol in wxwidget. Houra :)
btw its spelt "Require" :P
Hum, it feels better this way :)

Revision 4639

Fixed Busin 0: Wizardry and Chaos Legion in hardware rendering, possibly others
(that read back the output) as well.
The fix could use a review though, as I'm not sure it's safe :p
it would be nice if you could upload some before/after screenshots so that i know for what type of problem to look.
Thanks :).
Hmmm... Maybe The Bard's Tale, Star Wars: The Force Unleashed and Baldur's Gate: Dark Alliance?..
I think I'll check this revision tomorrow...
Thanks for all these great game fixes, do you know what screws up all the textures and graphics in the ratchet and clank games as the weird psychedelic texture effects make it feel like you're on a funky 60's acid trip but they cause massive slow downs, lol.
btw will their ever be an x64 version of pcsx2 as I've noticed in some emulators i get over 10+ fps increase on my AMD x6 1055t proc compared to the standard x86 version.
Cheers for all your hard work.
Little bit of improvement in OKAMI:
And in Wild Arms 4 and 5 the light doesn't cause garbage anymore but instead it gets extremely overbright for some reason.
And after like 5 frames:
Nevertheless KEEP UP THE GOOD WORK :)
Also the transitions in GUST games (Mana Khemia, Ar Tonelico, possibly others) now pause the emulator for like 2 seconds, for example if im in the main menu of Mana Khemia and want to go to Extras when i press X the emu pauses for like 2 seconds and the continues the fading of the main menu.
This is not present in SW mode where the transitions happen instantly.
Yep checked with the Moonlit Wilderness stage in Tekken 5 :
- old texture cache 60-65 fps
- this revision 45-47 fps
So yea +accuracy -speed.
Aww, that's a problem then.
Gust games must be clearing the buffers in some really expensive (to emulate) way then.
This was noticeable before this change, but not as much as now.
I'll prolly have to find a hack for this.
potential good fix but needs more work, since it seems to cause problems in other games.
from my quick testing it does improve some upscale issues some games had (like wild arms alter code f) not as much whitespace / garbage in the text
please can you fix the white Hair in jak renegade and jak 3
becuse the hair most be green and please try to fix the loading bug in god of war 2 pal version
thanks,and your the best team i ever seen.
sweet, gsdx love always appreciated :D
eliot: Baldurs Gate tested with this one and no change sadly.

Revision 4640

- Fix for falling through floor bug in MGS2 Demo Disc (not a proper fix but good
enough for now)
- Fixed a few random tiny bugs; might not effect anything
- Coded some optimization that didn't workout well; its disabled by default,
will probably remove the code later...
note: the MGS2 fix is basically disabling the code from r3266 which fixed some Sly Cooper bug. I tested Sly Cooper and it no longer needs that fix.
Ahh you fixed the real bug! well done :)
Once I'm tired of the GSdx stuff I'll try these flag opts :p

Revision 4641

pcsx2: linux: take some margins for the height of font (avoid top/bottom cut)
* disable fomit-frame-pointer which cause crash with gcc-4.6 (it was not enabled
by default but now I'm sure people will not enable it ;) )
* Try harder to pick the 32bits configuration for wx in a 64bits environment

Revision 4642

linux-gsopen2: use the not-yet-use shift-F12 to grab input instead of F10

Revision 4643

Fallback to the old render target read for games that do block level reads (Gust
Is it still fix Wizardry and Chaos Legion?
I imagine this won't break anything again, so yes Wizardry and Chaos Legion should be ok :)
GUST games back to normal :)
Yea, I tested these other 2 games and the difference is that they seem to want a full screen read while gust games do it in blocks fashion.
I just hope other, untested games work fine with this, too :p
I imagine the reason some games were broken is because of either them not "quite" wanting what gabest was doing, or bugs in the implementation.
doing full screen copies will probably be pretty safe i recon.
Yea, unless m_valid somehow references invalid memory.
I doubt that'll happen though :p
So the only other problem is that full screen readbacks are
slower than only small blocks.
Games that use them would be broken otherwise though, so tough luck.

Revision 4644

cmake: * properly detect 64 bits stuff...

Revision 4645

linux-gsopen2: fix backbuffer in GSdx. Linux gsopen2 ready at last.
I think now it is time to test/clean :) And probably unbroke window world :p

Revision 4646

* various clean
* add ctrl command to zz shortcut (ie F8 -> CTRL+F8). Avoid clash with pcsx2

Revision 4647

wiki: fedora 64 bits update

Revision 4648

zzogl-dev: Sync with trunk.

Revision 4649

onepad: remember the pad selected (more user expected behavior)
cmake: CDVDiso need gtk2, remove fatal error for 64bits fedora users

Revision 4650

wiki: fedora 64 bits update

Revision 4651

onepad: Fix 2 bugs that renders hat unusable. Impact multi pad too (not tested
this part).
I do not know why my joystick stop working all of a sudden! Hopefully it give me the chance to correct some users issues :)

Revision 4652

linux-gsopen2: properly create a 3.0 opengl context
Well it is not gsopen2 related but it would need test before going into the trunk

Revision 4653

linux-gsopen2: sync with trunk

Revision 4654

pcsx2 gui: better fit string into textbox on linux
* increase a min panel size (skip when turbo string)
* shorten ee cache string with a nice tooltip
way in the emulator i cannot play online multiplayer with my original disks
and friends
Never test multiplayer stuff myself. Ask on forum maybe someone know !

Revision 4655

linux-gsopen2: clean opengl3 context. Remove part that sould not be included

Revision 4656

GUI: BUGFIX: (Save)State in GS window title can get out of sync with actual
current slot (after loading/saving state via the menu).
- It seems that due to legacy reasons, Lilypad is setting the current state at
the GS window title, as a hack which is enabled by default (at Lilypad's main
GUI tab). However, it's buggy because it only changes the display when
(shift/)F2 is pressed, while the current slot actually also changes when
loading/saving state via the PCSX2 main menu, so it can get out of sync
(possibly with unpleasant results, especially when saving). Now it's disabled by
default at Lilypad, and if enabled, displayed as "State(Lilypad)".
- PCSX2 itself now properly handles the current State slot at the GS title
Note: ZeroGS still changes its title independently (not via the "standard" PCSX2
mechanism) so Lilypad's title hack might still be useful for it. However, it's
still buggy and can get still out of sync.
TODO: Remove this option completely from Lilypad because it's buggy? ZeroGS can
still use it, but I think it can cause more harm than good. What do you think?
Gotta admit that I can't even remember why Lilypad had to handle this in the first place.
It's a really old hack..
I guess it can get removed completely after a bit of testing.
Also, I noticed that ZeroGS's OSD displays the slot correctly (also when changing it via the menu), so IMO it can be removed from Lilypad completely.
remove buggy stuff always unless it breaks more than fix. ;)
Well if you really mean the old zerogs, I think it must be deprecated anyway.
I mean the zseroGS that's at the trunk...
>> TODO: Remove this option completely from Lilypad because it's buggy?
Uh, might as well just grey it out with revisions after this, remember lilypad can be used with older versions of PCSX2 where there's no alternative and removing functionality is not that nice...
But it's buggy, and people can accidentally overwrite a savestate they wished to keep. Also, the current slot appears at the console when changed. Also also, fixing this bug at Lilypad is not really an option because it can't be done without modifying the controller plugin API, and that would break old pcsx2 anyway.
And last, what do you mean by gray it out? how? and how can it be used at all if it's grayed out?
I seriously think this hack should be completely removed from Lilypad. I've done it at my local copy already few days ago, just waiting to see if it's stable (seems it is).

Revision 4657

microVU: Fixed a bug in my handling of branch in branch-delay slots.
Fixes Hot Wheels Velocity Maximum Justice, and now makes the game playable with
pcsx2 from what I can see :D
This revision might also fix other games that were still having problems that do
branches in branch-delay slots.
Awesome bugfix :D
Great, also fixed the problems in Metal Gear Solid 2, taking the camera pictures, targeting and carrying bodies now work correctly with microVU :)
Seems like a very nice fix, thanks cotton!
Nice one :)
Too bad it's yet again not the VP2 petals bug :p
Works like a charm, keep up the good work !!! :)
rama i know lol
that was the second game i tried to see if it effected it xD
when we finally fix that one its going to be a great day lol
Right :p
Issue 1288

Revision 4658

GSdx: Small change to the Dragon Ball Z Budokai Tenkaichi 3 hackfix, no more
flickering for the PAL version and no more missing/transparent body parts.
OMG it fixes the DragonBall !!! :)
Good work !!!
+10, thxs, I hated the flickering my PAL version had, this realy is good news.
put a new speedhack please!!!!!!!!!!!
To say it in the words of Quake:
Thanks alot for that change, but about missing parts the problem still returns after in-fight map change(after using any planet destroying attack). Probably models reload again then and the fix doesn't apply to it. It's not a big deal as those attacks are rare anyway.

Revision 4659

GSdx: Small change to the small change to the Dragon Ball Z Budokai Tenkaichi 3
hackfix... space stage had blur still.
Commented out the Rez hackfix code, seems it's not needed anymore.
ROFL =)), nice way to describe it ...

Revision 4660

microVU: Fixed a bug I had in the handling of indirect jumps that are placed in
a branch delay slot. This fixes the game "The Thing" and I think makes it
playable although I didn't test it much.
Might fix problems in other games that were doing this too.
The bug was kind-of funny, it was an old line of code I had forgotten to delete
I also improved the console message for branch in branch delay slots to actually
say the names of the branches.
Evil bug :p
sorry to spam here but I have a question...
If been beta testing Dolphin Emu from revisions 1000-7000
I just now got the slightest brainwave and though...
Hey maybe there's a google-code for PS2 emulator :D
So I'm new here and want to know where you guys have the latest..
testversions for download??
I use a win7x64 and have a [email protected] ati5850 4gbram
what do you guys suggest... I'm a fan of final fantasy's ;)
@[email protected]
You'll need to compile revisions yourself, or check the site emucr for compiled builds.
go to the official website, http://pcsx2.net/. The latest stable version pcsx2 0.9.8 has just been released not long ago and you will find it on the front page.
thnx guys compiling myself hmmm.. I could...
but just as with Dolphin isn't there an auto compiler website..
or a site which host different versions?
Nah no one runs a buildbot for pcsx2. Building the base exe is very easy, pretty much just need vs express.
ok thnx for the info...
as we speak I'm playing @ 6x native.. without a hitch & glitch
last time I tried was Rev22xx now that the stable version is over4000
it runs and looks smooth as butter.. doesn't any of you have tips on getting the perfect setting for FF12? (the one with Dalmasca city etc.)
wouldn't over9000 be the final revision... LOL ;)
g60force, this is svn commit logs and related comments section. For info about settings, etc, please visit the official site at http://pcsx2.net and the forums.
Have you forgot a line? You bastard. Do you know what could happen when somebody would port it into x64?
xMOV(ptr32[&mVU.branch], gprT1);
What would happen next time? Would you mistake nice branch for not so nice branch? (spits tongue)
Luckily for you my monitor is still broken so I didn't have time to port GSDX into Linux. Rewriting PS2 code into optimized x64 bit Linux version would take 3x longer.
PCSX2 doesn't support x64 for exactly that reason:
We have to decide on an ABI to code our recompilers for, and x86 was the better choice.
I dunno what that Linux remark was for but GSdx already works on Linux using SDL as render backend.
Also, "rewriting PS2 code to x64" means a complete rewrite of the PCSX2 core, no matter the OS you run it on.

Revision 4661

SPU2-X: Configuration for the output volume in the settings dialog. And it
works, too! :P
Windows only :p
if it works, you'll +1. ;)

Revision 4662

- Replaced the reverb boost control with a selector for normal reverb or a new
mode we call "fake reverb".
- This new mode (coded by gigaherz) is intended as an alternative for the only
partially working "normal reverb".
- The new mode will have to be tuned yet to sound good.
As a note, the reverb itself is not fake, it's just NOT trying to be "the one on the ps2". So the output will reverberate when it needs to, just not the same exact equations the spu2 uses ;P
Why not call it alternate then? Fake makes it sound cheap. Just needs a different name that denotes that it isn't the original but still an option. Call the normal one like Ps2 Original Reverb and then the other one Pcsx2 Reverb or something. Up to you :)
+1 for some type of fix!
"Enhanced Reverb Effect" would have been a far better name :P
That would be misleading, since it's not really enhanced at all, its simpler than the real thing but it's enough to make the games sound nicer ;P
On a side note, the code in this revision is actually a simplified version of the reverb engine I was coding. The original version had a preset system that would allow the engine to detect what kind of reverb the game wanted and adjust the "depth" of the reverb accordingly, just while testing we (me & rama), couldn't find any games that actually needed any other reverb preset than the basic one. xD
If anyone wants to mess with the original (and more complicated) code, I have it around ;P
What exactly is holding you guys back from properly emulating the reverb? epsxe does a really nice job of it, as does Neill Corlett's winamp plugin. +1 for this either way. Sound is the one part of pcsx2 that could use the most improvement imo.
Oh well, let's just say that reverb is HARD.
It's actually taking values out of like 40 registers and based on those it's modifying the sound that's inside a variable buffer inside SPU2 memory.
Timing and exactness of the whole process are needed, otherwise the whole thing either overflows (speaker killer!) or it doesn't reverberate at all.
It's no wonder that there's 6 reverb modes in the best PSX SPU2 plugin ;)
Oh and yeah, it can be renamed into something more cool.
Taking suggestions here :p
Indie reverb. Because alternative reverb isn't alternative enough. ;)
"Experimental reverb" sounds good to me, and not misleading.
"optional reverb" its a short name and perfect for me.
"simple reverb" or "nicer reverb" or "better reverb"
Rename both
1- native PS2 reverb
2- PCSX2 reverb
i'm liking [email protected]'s suggestion to rename both.
the first option should be "Native PS2 Reverb"
the second option could be either "PCSX2 Reverb", "Custom Reverb", or "PCSX2 Custom Reverb"
"Native" and "Alternative (less CPU)"?
its more like.......
"Working but totally inaccurate reverb " ("fake") vs
"Non-working but trying to be accurate but failing at it" ("real")
+1 for the rename, and also for the actual reverb-alternative.
Here is a random "how well does PCSX2 work in linux at the moment" quick test, with Virtua Fighter 4 (though not entirely just directed at this actual nice commit)
1. Init: http://i.imgur.com/pDBoG.jpg
2. First Screen: http://i.imgur.com/KwxYe.jpg
3. Playing: http://i.imgur.com/LFiZY.jpg
(Fps was around 62-73 before the scrot snapped the third shot, true story :))
I like the console to -> Standard-Input-Ouput function in linux.
All in all, great work of you all with the gs(dx) linux-side,
Now theres just the hope for hardware-filtering/scaling to get that nice quality, but still, great :)
To bad one (mere mortal users) can't edit comments, but one addition:
Is it possible to have pcsx2 put everything in that $home/.config/PCSX2
(meaning bios, and the rest)
As it looked now (if it isn't the works of the Arch PKGBUILD), all that was in the .config was a reg.ini file of sorts.
Not that big of an issue, but i just think it is nice to have the home-folder root tidy from application-folders :)
Admins can't edit comments either.
I think so, but you probably need to edit the package files for it.
The issue is: I do not know if all linux users want it. For the moment asks your packager to include the patch below. It moves all stuff into $XDG spec (ie .config/pcsx2)
Index: pcsx2.snapshot-4653/pcsx2/gui/AppConfig.cpp
--- pcsx2.snapshot-4653.orig/pcsx2/gui/AppConfig.cpp
+++ pcsx2.snapshot-4653/pcsx2/gui/AppConfig.cpp
@@ -133,7 +133,12 @@
switch( mode )
+#ifdef __LINUX__
+ // By default on linux move all user data file into central configuration directory
+ case DocsFolder_User: return GetUserLocalDataDir();
case DocsFolder_User: return (wxDirName)Path::Combine( wxStandardPaths::Get().GetDocumentsDir(), pxGetAppName() );
case DocsFolder_Custom: return CustomDocumentsFolder;
Oh, well yeah, i guess everyone has their own prefecrences in placement of files, though i think the $XDG is a healthy default to have everywere.
But yeah :)
I'll look into it, either prod the pkgbuild maintainer, or make my own local pkgbuild script adding the patch at build.

Revision 4663

Small PCSX2 speedup due to less flushing in the eerec. Thanks pseudonym :p
Awesome :). Good work.
Also thanks to refs earlier eerec work, though we didn't get to use it all :p
I havent submitted it yet lol

Revision 4664

linux-gsopen2: onepad:
* skeleton of force feedback based on SSSXPAD (40% done). Miss the effect
creation and the upload of effect.
* mouse support to emulate analogue pad (80% done). Miss gui control options.
Note: mouse was tested under gsopen2 (I think gsopen1 could work).
I've been waiting for this for a loooong time :)
Is this gonna be through SDL 1.3 ?
which part ? force-feedback or mouse support ?
Feedback, will need sdl 1.3 but the bad news is my controller (actually the rumble feature) is not supported by the linux kernel... So it will be difficult to have a full support. Develop a driver for my pad would be a very interesting experience although difficult.
As a side note, I based my work on SSSXPAD (lillypad was difficult to understand) but I'm not sure it have a good accuracy of the F-F emulation.
Mouse support does not have any special requirement.
Ah sorry, I was talking about force-feedback.
I have two feedback supported gamepads, (a Logitech Rumblepad2 and a Xbox360), so maybe I'll be able to provide some feedback :) when the time comes.
Thanks help will be appreciated. First could you try the sdl testhaptic.
1/ compile sdl1.3
2/ cd 3rdparty/SDL-1.3.0-5387/test
# Compile the sdl test
3/ gcc -o haptic.exe -m32 -g testhaptic.c -I../include ../libpcsx2_SDL.a -lm -pthread -ldl
# run it
4/ ./haptic.exe
Does it work ? Which effect are supported on your side?
Sorry for the delay, also my system is pretty messed up and I can't use it properly right now.
It happens though that I did tested a while ago my joysticks with SDL1.3/test (testhaptic) and I can tell you what effects are supported:
Both joystick using the drivers included in kernel are supporting:
If used with the userspace driver (xboxdrv) the Xbox360 controller supports a lot more:
Ok good. So I just need to plug this test into vibrate function in onepad. Not too difficult, I only need some free time :)

Revision 4665

Some work on the fake reverb. Renamed it to "Custom Reverb" and the original to
"SPU2 Reverb".
Fair enough naming :)
But hey: "if(!FakeReverbActive /*|| (Cycles&1) == 0*/)"
Does this mean that it still is "FakeReverb" internally in the code?
That is cheating! :P
Though, seriously, it does not matter :)
Heh, in the source it needs to have a name that's instantly clear what it does. Fake did the job well, imo ;)

Revision 4666

cmake: ubuntu moves file and become incompatible with current cmake version...
For the moment I import cmake file and do a small fix.
Thank you, Gregory!

Revision 4667

EERec: Implemented some common cases of Load/Stores with shifts. Adds a bit of
speed here and there.
Optimizations are always good )))
It breaks texts in FF 12! :(
Oh great, all changes that breaks things of FF12 are good... Gfff... "he" destroyed the Final Fantasy Saga...
I'll look in to ff12, I did expect bugs :p
Gran Turismo 4 (at least PAL one) doesn't pass the first screen.
Gt works fine for me
GT4 PAL seems to have an issue with FMVs but that's nothing new.
It works more or less the same here, Lana.
No speed change in GTA VC storys. At least not noticable. XD

Revision 4668

linux-gsopen2: use EXPORT_C_ instead of CALLBACK for gsopen2 interface + minor
Rationale: others dvlp of zz will migrate all CALLBACK to EXPORT_C_. It will
ease all the sync

Revision 4669

Remove some compiled files. Compilation may temporarily be broken in a trivial
way (or might not), I don't currently have visual studio installed.
error LNK1181: cannot open input file 'JITProfiling.lib'
That would seem to be part of intel's vtune, I don't have any reason to believe that we can legally distribute it.
line 22 common.vsprops remove the JITProfiling.lib from the AdditionalDependencies list
line 21 common.props remove the JITProfiling.lib from the AdditionalDependencies list
after removing JITProfiling.lib from there it compiles with no errors in vs 2010

Revision 4670

Reverted r4667. We need to talk.

Revision 4671

Altered changes and reuploaded, defines are inplace so parts can be switched off
for bug testing.
Gran turismo games working fine this time.

Revision 4672

Reverted some of the deletions from r4669. I didn't think too hard about
deleting pch files but these are not precompiled headers.

Revision 4673

Removed vtune headers from the project and disabled profiler hooks in GSDx as we
can't legally distribute these. To be re-enabled we'll have to find a way to do
this without infringing on Intel's copyright.
well, this makes gsdx build failed with error LNK1181....
Vtune is used for optimising/debugging the JIT yes? So it isn't absolutely necessary or majorly detrimental not to included it?
JIT means nothing by its self FYI. "I arrived JIT."; "Java JIT compiler"; "VTune JIT profiler"; JIT=just in time.
They are not optimizing the profiling tool.
Anyways, how is it that you have VTune headers? What version/release and package of VTune are you all using? XE? Are you all using the Intel compiler that comes with some of the packages? By any chance are you guys using OpenMP?
Hoping for an answer...
Only gabest was using this.
Gabest had the right idea. It is very good for micro-benchmarks and tuning. I don't know how you guys are doing your tuning, but gDEBugger (for OpenGL and OpenCL; 100% free) also works well.
If you guys want I can try running PCSX2 with VTune Amplifier when I get a chance and send you the results as images.
You guys are doing great with the project, but let me know if you ever want to use my knowledge or learn what I can find out. I have tools (or versions of) that very few people have (yet).
We already mostly know why it's slow, we just haven't got easy fixes.

Revision 4674

Further to r4673 remove the jitprofiling.lib dependency when linking.
you also need to remove it from
line 21 /trunk/plugins/GSdx/vsprops/common.props
This isn't relevant to this particular revision, but I don't know where to post this.
At line 43 of VUmicro.cpp, there is the following line:
delta >>= 1; // Divide by 2 (unsigned)
Since delta is of type s32, this will cause a 'sar' (signed shift) instruction to be generated, which seems at odds with the 'unsigned' part of the comment. Is this an error or am I just an ignorant idiot (or both)?
You're right about the generated code, but that's in an if (delta > 0) block so it doesn't matter, it's just a strange comment.
hmm i left that comment; you're right its a pretty strange comment but now i remember why i wrote it.
if you have (some_s32 / 2) in code the compiler generates more code than just a 'sar' in-case the number is negative.
since the number is positive at the time the code is called (delta > 0) we can just do a simple shift instead which is less overhead (doesn't matter if its a sar or a shr).
i wrote "(unsigned)" to imply that its safe to right shift by 1 instead of dividing by 2, but i guess my comment was misleading.
its possible the compiler is smart enough to detect that 'delta' is positive at that point in code because we wrote the condition "if (delta > 0)", but when in doubt i usually just manually code the optimization.
anyways its a very minor thing anyways.

Revision 4675

Fix VS2010 compilation.

Revision 4676

linux-gsopen2: forgot the definition of EXPORT_C_ ...

Revision 4677

linux-gsopen2: create some effect for the forcefeedback
Dubigr, I think you can test force feedback now. Get latest version of the branch and enable force feedback in the option. Note you must build with this cmake flags -DFORCE_INTERNAL_SDL=TRUE
With some luck it could work.

Revision 4678

SPU2-X: Improved Real-Reverb engine algorithm.
Before trying this revision, make sure your speakers/headphones are not too
I have been looking at it for a long while, and I decided it couldn't be just
"somewhat similar" to a Schroeder Reverberator.
The SPU2 designers would have actually used a working design for a reverberator,
so chances are they implemented Schroeder's.
I haven't had the chance to test this code in spu2-x, but the results in the
"Impulse Response Analyzer" tool I coded specifically for this, are positive.
Some tweaks might be needed, because I'm not sure if Neill got the IIR part
right or not.
Only had time for a quick test: It's overflowing lots still, so beware testers :p
wrote a wiki page explaining this.

Revision 4679

Created wiki page through web user interface.

Revision 4680

linux-gsopen2: Fiddling with the code for the dialog a bit.
To be honest, the dialog box code should probably be rewritten at some point. Of course, when I look at that, I usually start thinking about ways to rework the appearance of the dialog box, and never end up working on it...
Hum, I did not see your commit and I reworked a little the dialog internal too. I replace the joyid code with a proper conf option. So each pad will have an associated joystick id. See r4689
However I have one question for you. What is exactly PADn (alt)? An alternate configuration key of the pad, is it correct ?(allow to use either keyboard or joystick depends on the mood for example).
I got some extra time. I add some function to keep the value when the pad is updated the pad + an apply button (Well it is useless now, it was my first idea to remember the value! It would not hurt anyway).
In the process I add some combo box for force feedback and mouse but feel free to improve.
Yeah, pad(alt) is just alternate keys for the same pad, so you can use the keyboard or game controller, multiple keys on the keyboard, etc.
It would be better to get rid of the alt option, and allow multiple entries for the same pad on the list on the left, but then I'd have to rig it up to allow more then 2 keys per control.
That would involve changing how things were stored. That was planned anyways, but will be a major hassle...
Hum, yes it will be more logical to allow multiple keys. I give a look and I agree with you it wont be an easy task.
I did start reworking things in order to make it easier to do things like that at one point, but I never quite got it to the point where it was doable. I seem to recall controller.cpp coming out of that...
Yes one hour ago, I thought it was just a matter to update a little the contoller (set_key, get_key interfaces). But various places expect 1 value for the couple (pad,ps2 key). Moreover it impact the joystick code too (newly add mouse will not help either).
Maybe joystick and keyboard code must be separated. Keep joystick/mouse part. And do directly a lockup of the X11 key symbol.
Before, I want to clear another things. Only allow 1 joystick ID by pad (which is more or less the case). The idea would be to use the method conf.get_joyid(pad) and to remove the joyid inside keycodes. Well I need to think about it.
One last question, is dual pad currently working ?
As I recall, I ended up deciding to work on something else for a bit, and never got back to it...
Another thing I'd been thinking of doing and didn't get around to on onepad would be getting rid of the Lx/Ly/Rx/Ry buttons, and merging them into the up/down/left/right buttons around them.
I'm not sure on dual pad. I think I tested it at one point and it was working, but it was long ago enough that it might have broken again by now...
Merge the buttons is definitely a good idea, I put in my TODO list ;). I need to test dual pads, but I think we need to add a for loop in pad update because PCSX2 only call PADupdate(0).
For the alternate configuration, I separate keyboard symbol and create a map keysym => ps2 index (see r4694). I try with several key + joy and it was fine. However the gui is completely lost and will need some updates. For your information, ini entry look like that:
PAD 0:KEYSYM 0x67 = 15
I do not know if it could be useful but mouse could be handle the same way. For the moment joystick button or mouse button are exclusive.

Revision 4681

linux-gsopen2: More work on onepad's dialog code.

Revision 4682

SPU2-X: Stop the ear-killing overflows by actually shifting the output as it was
supposed to be shifted.
Ta :p

Revision 4683

SPU2-X: Better reverb params logging.

Revision 4684

SPU2-X Reverb: Echo/Delay effects don't work without this.

Revision 4685

Edited wiki page ReverbEngine through web user interface.

Revision 4686

Edited wiki page ReverbEngine through web user interface.

Revision 4687

SPU2-X Reverb: make the filter actually look the way a FIR filter is supposed to

Revision 4688

SPU2-X Reverb: Apparently some reverb presets use offsets outside of the ps2
memory ...
Rama asked me to note that it still doesn't sound right yet. I will try to
figure out the reason later.
It sounds like @#$% in Xenosaga 1 there is noise in the music.
Yes, turn off reverb while it's being fixed.

Revision 4689

linux-gsopen2: onepad:
* rework joyid selection. Remind the last selection and fix some index issue
between combo box and joy vector
* fix latest option to properly operate on good pad

Revision 4690

SPU2-X Reverb: I put the mask in the wrong place.
maybe the move the comment too :p
lol yeah
xenosaga sounds good again :)
Point is making it sound like the ps2, not just ok ;P
Or maybe even better! ;p
The SPU2 reverb is pretty much awesome.
Sounding just like it will be enough ;)
Really cool to see this being worked on. Hope you guys are able to figure it out.
Where is your mask? = =
Bit mask, it's the & 0xFFFFF thing. Apparently the upper one and a half bytes shouldn't be considered.
The SPU2 has 2mbytes of memory, but it accesses them in 16bit units, so it only has half of that in addresses, which is 2^10 (1024*1024) = 1048576 possible addessses. This number, converted to hexadecimal, is 0x100000, which range from 0 to 0xFFFFF. Since the spu2 has more bits than necessary for the addresses, you need to "get rid" of the bits above the valid 10. That's what the mask is for.

Revision 4691

* make options more generic. Properly keep the pad configuration.
* fit in the middle some checkbox to enable forcefeedback and mouse.
* Add missing part of previous commit ...
Compiling this errors out because PADOPTION_MOUSE_L & PADOPTION_MOUSE_R aren't defined. As I recall, you were using PADOPTION_MOUSE & PADOPTION_MOUSE_RIGHT_PAD...
Oups forgot to refresh my patch before the commit. Anyway r4692 must be ok now.
Yeah, I change a little mouse option to be more clear.

Revision 4692

linux-gsopen2: forgot some changes

Revision 4693

linux-gsopen2: Clean joystick id code replace by the new configuration option

Revision 4694

linux-gsopen2: onepad: * add the backend to support multiple key and remove
alternate configuration (useless now)
Note: it is advice to delete previous configuration aka OnePAD.ini
Note2: the gui is completely lost and will need some upgrade
Implementation note: the keyboard key map is conf.keysym_map
To access the map you can use the following function:
void set_keyboad_key(int pad, int index, int keysym)
int get_keyboard_key(int pad, int keysym)

Revision 4695

linux-gsopen2: Hack the dialog a bit so the size is more reasonable.
Note: This just gets it so that the dialog is reasonably sized (and even that needs tweaking). Usable is a different matter.
I missed so much a scroll area, it was definitevely needed.
I was thinking to create a notebook with 2 tabs (like lilypad) to reduce the key stuff. Or at least only print current pad (well might be not easy actually).
For multiple key binding, another idea could be a splitting of mouse/keyboard in a side and joystick is another side.
Note: I plan to change the mouse button key binding. It would be similar as keyboard code. Just a matter to use the new interface to keysym map.

Revision 4696

* handle mouse like keyboard with keysym
* hack the gui keymanager to support the new way to handle keyboard/mouse
Implementation note:
I code directly the mouse button as a keysym. The trick is: button number go from 1 to n, however keyboard keysym begin at 0x20.
To be self I consider number below 10 to be mouse button, I hope it is enough for gamer crazy mouse :p

Revision 4697

linux-gsopen2: onepad: * merge (L|R)_(X|Y) button into
(L|R)_(left|rigth|down|up). Then drop the former
Hum, I think that the big bulk of backend change are done now :)
Looks good. At first I thought it wasn't registering my gamepad properly. But unplugging and plugging back in my gamepad took care of that. :)
Cool. I think it would also be better to delete onepad.ini now that the key array is only 24 instead of 28.

Revision 4698

linux-gsopen2: onepad
* Use a dynamic object for conf because static allocation is unreliable
* store joy id format without shifting (previously it was value+1)
* rework the gui (notebook and show only current pad key, increase a little some
size to better fit widget)
There is still 2 issues.
1/ Because I pack same widget inside both pages, you got some warnings when the dialog is destroyed.
2/ Default keyboard key. Now that I fix the code, they are always added at the startup which is annoying.
I found others small issue. I will fix everything in my next commit.

Revision 4699

* rework gtk to properly separate the 2 pads, remove some frames too
* do not load keyboard default when at least one key is already defined
* fix one bad direction with analog pad emulation from mouse

Revision 4700

SPU2-X: Changes to reflect results of tests on my PS2.
Regression - see i1039.

Revision 4701

SPU2-X: There must be some other flag that goes with the FxEnable one ><
Project Zero (One) UK\Scandinavia goes mute on intro (Himuro).
I have located the bug to be somewere between r4691 and r4701,
through the EMUCR archive.
If you don't know exactly which is it, why do you negative THIS one then?
You use the issue tracker for that.
Its resonable to assume that the bug is between r4700-r4701.
My negative referes to this interval.
If you could compile SPU2-X-r4700 for me then I could test that.
Its not in the EMUCR archive.
"Issue tracker" - well I don't know what that is.
pg, just rate a commit negative ONLY if u know this is the one who created the bug.
2 - about the issue tracker, just raise your eyes up in the top of the page.
Negative canceled.
I have open an issue for my report: i1039.

Revision 4702

linux-gsopen2: onepad: change the calcul of reverse pad, it overflowed by 1

Revision 4703

linux-gsopen2:pad: avoid collision between keyboard and joy. Set keyboard analog
in the good way.

Revision 4704

linux-gsopen2: onepad:
* allow to filter keyboard/mouse key and joystick key. Much more usable
* tune various size and placement
Ok. I think I'm done now :) Hoppefully, the pad is in a nice shape.

Revision 4705

linux-gsopen: onepad: keyboard + joystick, take 2

Revision 4706

GSdx: CRC hackfix for Ty the Tasmanian Tiger. Couple CRCs added.
GameDB: Onimusha 4: Dawn of Dreams playable again with a patch. Minor other
Another game with only half of the screen working right

Revision 4707

linux-gsopen2: onepad: fix to properly support 2 pads

Revision 4708

linux-gsopen2:onepad: beginner error...

Revision 4709

linux-gsopen2: onepad:
* drop the digital button detection when an analog axe is detected too.
* allow emulation of pressure sensitive button (all except the D-pad).
Note: my pad only have an analog axe for "l2/r2" so for the moment I have only test the variation of the command read by padPoll. I take the hypothesis that the sensibility have a range from 0 to 255 (8 bits), I do not know if it is correct.
If someone have both a dualshock3/sixaxis and freetime, maybe we can have also support of sensibility of the d-pad.
I decide to buy a ds3 :) So I could test sensitivity of D-pad and I hope rumble feature.

Revision 4710

i18n: new organization of translation in 2 sides: iconized and the others.
Something wrong with CMake rules?
Scanning dependencies of target translations_pcsx2_Devel
make[2]: *** No rule to make target `locales/templates/pcsx2_Devel.pot', needed by `locales/sv_SE__pcsx2_Devel.gmo'. Stop.
make[1]: *** [locales/CMakeFiles/translations_pcsx2_Devel.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Crap completely forgot to change cmake.
Just do a "touch locales/templates/pcsx2_Devel.pot" and "touch locales/templates/pcsx2_Tertiary.pot" for the moment. I will fix it better latter
I suppose "devel" and "tertiary" keywords list will be included in "main" or will be replace by main's, right?
Yes what I did.
1/ I move iconized keyword from tertiary to iconized. it was a better place.
2/ Then move the remaining 50 strings (10% of main) from dev+tertiary to main. These pot files were too small to have any interest and cause too much additional work and issue.
I did not update the po yet in case I can find an easy way to move translation from one file to another.
Hum I better understand your question. I forgot to commit the script change :p See r4711 for details.
PS: cmake must be fixed too

Revision 4711

cmake: do not compile removed pot files
i18n: forgot generate_pot.sh in previous commit

Revision 4712

3rdparty: remove the heavy (+90MBytes) SDL test directory. Completely useless
and save us few minutes of download
Wow ><
Wow >< [2]

Revision 4713

- Reimplemented mini/max opcodes using integer comparison operations instead of
double comparison. This results in a bit less code and integer operations tend
to be faster than double ops (especially on AMD cpus). Thanks to pseudonym for
the idea!
- Fixed some minor bugs in mVU dev builds.
- Added __fc as a shorthand macro for __fastcall since we already have __ri and
__fi macros.
This results in a bit less code and integer operations tend
to be faster than double ops (especially on AMD cpus)
Sorry for asking this here, but can you tell me why we can´t change the pal and ntsc framerate in the gs tab in the configurations screen anymore?
Again sorry for the off-topic :)
Rated "A" for Awesome!
That's because those settings are bad hacks, they can only break your games into kinda doing what you want (+ side effects like bad game logic and stuff).
It's still interesting to developers in dev builds, that's why the gui stuff isn't removed completely yet.
How much does this impact on speed ??
Good work BTW.
It won't do much for most games.
GT4 however is a title that seems to abuse these ops.
I get 54FPS before and 58FPS after this modification on my core2.
oh ok, like i only wanted to test something, isn´t there a way to "enable" that option?or do i have to know peogramming and complicated stuff like that in order to mess around with the option? lol
comment the if(0) { and comment out the else part, thatll put the old code back on.
Or just change it to if (1), crazy idea :P
Thats an obscene idea!! ;p

Revision 4714

i18n: fix issue i1037 (Rafael's patch).

Revision 4715

i18n: update the keyword metadata too...

Revision 4716

SPU2-X: Some visual debugger additions.

Revision 4717

SPU2-X: Revert the ENDX changes from r4700 as they weren't based on testing but
confusing documentation.
SPU2-X: Found a crash on writing to the low word of the effects end address
during testing.

Revision 4718

SPU2-X: fixed core mix up for effect area addresses and changed MMIX values on
reset (which we're not not sure is an actual SPU2 feature)

Revision 4719

SPU2-X: Missed a spot for the core mixup, noticed that we're not using our own
MMIX value on init and removed MMIX fiddling from reset entirely due to lack of

Revision 4720

SPU2-X: Completely removed the concept of core resets. We were unable to find
any evidence supporting their existence.
Progress & regression: see i1039.
This changelog sounds like philosophy... :)

Revision 4721

SPU2-X: Implemented SPU2reset method for handling a PS2 reset.
+1 to all that. Reset always seemed to mess up stuff but it was needed for some games for some reason.
We can now fix those few games that are left (Fatal Frame 1) properly and be done with this :p

Revision 4722

SPU2-X: Fix for Fatal Frame as per sudo's findings.
I was intending to commit this myself with a bit more of a detailed comment, so I'll put it here for reference:
This is almost the first thing the OSDSND IOP module does, it's creating a "parking space" as I like to think of it for voices. When using full boot this is unnecessary as that module will run. However there should be no harmful side effects from using this with full boot so it's not worth the effort of simulating an OSDSND run on fast boot only.
congrats ramap and sudonim for this.
What was the issue anyway?
if i may ask :p
Just read the source comment and my comment. If you want to know why this breaks fatal frame I kind of know but not specifically why it did that to the music, and satisfying your curiosity is not worth explaining everything I know about the game's sound engine.
Fatal frame was broken because this is important.

Revision 4723

GSdx: No more blinking characters/objects when using EE/VU cycle speedhacks in
God of War 2.
Tested with NTSC version but it should be working with PAL versions too, shouldn't affect anything else.
woooow very good thanks, but can you fix the problam with the save game it freezing whin saving only in pal version.
and thanks its very good fix for me i play a lot of this game i love it.
and sorry for my bad english.
does this work in the first god of war too it also make kratos blink when speedhacks are on
Nice :)
hello again i wanted to say thanks for the fix but i tested it now and it seems that the game works slower thin the older gsdx with the blinking.
so check this out and tell me becouse i want to beleave that i wrong
and sorry again for my bad english
Well, this is random. Nice if it works though :p
does this work in the first god of war too it also make kratos blink when speedhacks are on
i test it on GOW 1 doesnt work again Kratos bling and when video clip playing is not full there is black is not full pls fix and GOW 1
GOW 2 is Awsome but 1 is not yet :)
@[email protected]:
I guess it's possible to slowdown if the scene you're testing is limited by your graphics card, try lowering internal resolution a bit.
And yea yea I'm looking into God of War I :p
thanks, i think you right my video card is nvidia gts 250 and i using custom resolution 1680*1050 like my desktop resolution anywey i will try to change it and see if it works better.
thanks again.

Revision 4724

linux-gsopen2: onepad
* merge the 2 kind (POV, JOY) keys into axes
* improve the support of axes for Sixaxis/dualshock3
Note: reset your pad configuration
Additional note for the axes of ds3:
Actually it uses full axis for 1 button (ie -32768->32768), previously only half of axis was supported either 0->32768 or -32768->0
Unfortunately it seems the evdev driver have 1 issue:
Sometimes the value range from 0 (release state) to 32768. I notice this behavior on the "hat". 0 in full axis is equivalent to 50% pressure...
Jstest that uses the previous joystick (JS) driver does not seem to suffer of this issue.
Another minor issue. Because buttons are also axes, there are some race conditions between axes/buttons. The current hack to drop button is half-working! For the moment just set again the key.
Note2: the ds3 was plugged through usb. It could work better in bluetooth

Revision 4725

New todo

Revision 4726

GSdx: No more blinking characters/objects when using EE/VU cycle speedhacks in
God of War I :p (also maybe better fix for GoW2)
Added some NTSC-J CRCs found by users of 2ch.net. Thanx :)
Again, tested a bit with NTSC but should work with PAL too... hopefully :p
Oh, thanks for doing that :)
i wanted to ask you someting shadowladyngemu you are woman or man?
becouse your name is with lady so i wanted to now.
+1 for supporting a great game!
WOW that was fast
PAL confirmed. +1

Revision 4727

SPU2-X: partial and probably incorrect (but good enough for the BIOS) support
for reading back key on and key off registers, just returning the last written
We need testing to determine how these actually behave and want to do some game
testing to find other partially implemented registers before that.

Revision 4728

linux-gsopen2: onepad: small update for the pressure

Revision 4729

* add a -local option for create tarball script (handy to avoid multiple re-dl)
* cherry pick some changes of micove ppa package

Revision 4730

linux-gsopen2: sync with trunk (4608->4729)

Revision 4731

pcsx2: zzogl:onepad: gsdx: merge linux-gsopen2 branch (4730) into trunk
* Gsopen2 support for GS plugins => Support of the PCSX2 GS window configuration
panel. Support of all PCSX2 shortcut.
* new shortcut: shift-f12 to stole the input. ZZogl shortcut must be prefixed
with ctrl
* onepad: Support/fix/improve of configuration gui, multiple key, mouse/wiimote
for analog joystick, dualshock3/sixaxis (basic), dual pad and experimental
Note: it is advices to delete OnePAD.ini
Any remaining pad (better support of ds3 and forcefeedback) update could be done directly in the trunk.
I hope I did not break any windows code (GS sw), otherwise tell me.
So far it seems to be fine :)
Some compilation problems, probably induced by bad WxWidgets version in ubuntu 10.04.
I am building in in code::blocks, because cmake build outright doesn't work, and don't have any time to trobleshoot.
It used to compile just fine (and was run-tested too), but now and I suspect due to this merge, gcc complains about:
Compiling: ../gui/AppMain.cpp
In file included from /home/maxim/PCSX2/pcsx2/gui/AppMain.cpp:41:
/usr/include/wx-2.8/wx/gtk/win_gtk.h:18: fatal error: gtk/gtkcontainer.h: No such file or directory
[email protected]:~/PCSX2/build$ ls /usr/include/gtk-2.0/gtk/gtkcontainer.h
I tried to add 'pkg-config --cflags' to build, but that started to complain that this file can't be included directly, etc..
Strange as, it did build before
What is the issue with cmake?
I will test codeblock. I think it miss some gtk flagsin main pcsx2. Like
<Add option="`pkg-config gtk+-2.0 --cflags`" />
Yep, its this revision. Doesn't build, and former (4730) does.
About cmake, well, dunno. I am a bit shy to ask about things like that because I am not a newbie (have fully compiled X stack on both desktop, and laptop, have kernels compiled on all my systems, I contribute to the kernel (3 minor drivers so far)
Anyway have that big grizzly bear roaring at my back (exams) so didn't examine in depth this.
The output of cmake:
[email protected]:~/PCSX2/build$ cmake ..
-- BuildType set to Devel by default
-- Disable the stripping by default in Devel 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
-- Install localization file in bin/Langs by default
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindFreetype.cmake:91 (INCLUDE)
cmake/FindGTK2_pcsx2.cmake:423 (find_package)
cmake/SearchForStuff.cmake:15 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindGTK2_pcsx2.cmake:528 (include):
include could not find load file:
Call Stack (most recent call first):
cmake/SearchForStuff.cmake:15 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindALSA.cmake:38 (include)
cmake/SearchForStuff.cmake:33 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindBZip2.cmake:29 (INCLUDE)
cmake/SearchForStuff.cmake:34 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindJPEG.cmake:30 (INCLUDE)
cmake/SearchForStuff.cmake:36 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindThreads.cmake:156 (INCLUDE)
/usr/share/cmake-2.8/Modules/FindSDL.cmake:127 (FIND_PACKAGE)
cmake/SearchForStuff.cmake:41 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindSubversion.cmake:112 (INCLUDE)
cmake/SearchForStuff.cmake:43 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindwxWidgets.cmake:817 (INCLUDE)
cmake/SearchForStuff.cmake:50 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindZLIB.cmake:46 (INCLUDE)
cmake/SearchForStuff.cmake:52 (find_package)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
cmake/FindCg.cmake:69 (include)
cmake/SearchForStuff.cmake:56 (include)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
cmake/FindGlew.cmake:47 (include)
cmake/SearchForStuff.cmake:57 (include)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
cmake/FindPortAudio.cmake:23 (include)
cmake/SearchForStuff.cmake:58 (include)
CMakeLists.txt:54 (include)
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:86 (INCLUDE):
include could not find load file:
Call Stack (most recent call first):
cmake/FindSparseHash.cmake:15 (include)
cmake/SearchForStuff.cmake:62 (include)
CMakeLists.txt:54 (include)
-- Use internal pcsx2 SoundTouch library
-- Skip build of GSdx: miss some dependencies
-- check these libraries -> opengl, X11, pcsx2 SDL
-- Configuring incomplete, errors occurred!
[email protected]:~/PCSX2/build$
Hum you are probably more skilled than me :p
Anyway, I hate ubuntu. I do a very bad hack to workaround an issue on natty. Anyway here a patch, then delete this file cmake/FindPackageHandleStandardArgs.cmake
--- cmake/SearchForStuff.cmake (revision 4737)
+++ cmake/SearchForStuff.cmake (working copy)
@@ -12,7 +12,7 @@
# So as temporary work around, I copy the FindGTK2 module inside pcsx2 and add the /usr/lib/i386-linux-gnu path... -- Gregory
# find_package(GTK2 REQUIRED gtk)
- find_package(GTK2_pcsx2 REQUIRED gtk)
+ find_package(GTK2 REQUIRED gtk)
# From version 2.21.3 gtk moved gdk-pixbuf into a separate module
# Cmake need to be fixed. For the moment uses a manual detection.
Builds fine with cmake now!
And works well too
(finally GSDX doesn't interference with input (it was eating keypresses I think, and it actually faster that zz-ogl. both bad and good I guess)
And I noticed a lot of other improvements.
Big thanks! Really PCSX on Linux turned from a total trainwreck to quite good although albeit slow (thats due to optimizations in DX GS plugin mostly)
If I get 4 core cpu, I guess using 2 rendering threads will take care of software rendering.
I use core 2, 2.13Mhz CPU.
Good, I find the issue with codeblock. Could you check the revision 4738, the compilation is fine. I did not test the link phase because of incompatibilities in my system (x86_64 vs i386)
Ah, do not expect that 2 rendering threads to be 2 times faster. Actually it does not seem faster at all on my system, maybe memory bandwith issue I do not know. Anyway, yes GSdx is the major difference between the OS.

Revision 4732

zeropad: deprecate it in favor of onepad.
thumbs up for this.
In some areas there are just too many plugins.
Its rather good to have one plugin working that dozen not working plugins.
The CDVD plugins come to mind....

Revision 4733

i18n: backport po from 0.9.8 and merge ter&dev into main&ico.
Yes I know that the po are broken! It is only an intermediate state.
^ lol.
(too lazy to open an issue)
Please remove "Devel" and "Tertiary" from /trunk/pcsx2/gui/i18n.cpp (lines 262 to 269) to stop "pcsx2_Tertiary not found -- translation dictionary may be incomplete".
yeah, it is on my todo list :)
Gregory, please check the modified thread for translations:
I'll edit the wikis to reflect the new changes, but could you please provide the missing info (some translations, not sure what language they are) and ask the google code translators to move to our forum :)
good going guys :)

Revision 4734

GSdx: Better hackfix for Dragon Ball Z Budokai Tenkaichi 3, missing body parts
still happened sometimes. Thanks to miseru99 for the initial patch and testing.
zzogl-pg win: Patch by Kosmos in the forums, corrects a typo that was causing
window size to appear as height x height instead of width x height in windows OS
(was breaking fullscreen at it too). Thanks :)

Revision 4735

SPU2-X: Fixed old misunderstanding about the function of the loop bits and
documented our findings and unverified suspicions.
Fixes Zero: Akai Chou, Tomb Raider: Legend, Tomb Raider: Anniversary, maybe
Yay, finally :)
Spyro, Gauntlet Dark Legacy, Legacy of Kain Soul Reaver 2, Pirates - Legend of Black Kat, Whiplash, fixed by this from what I checked :p
nice find!
YEEEES fix stuff = good.
Me likey when u fix stuff :P .
Good work !!! :)
Holy motherfather, Batman!
Gauntlet Seven Sorrows work's now
Awesome: It also fix King Arthur, Tomb Raider Underground & 007 Everything or Nothing.
Great work!

Revision 4736

i18n: round 2, fix po and upload new version of pt_BR/pl_PL/es_ES/sv_SE

Revision 4737

i18n: remove the loading of ter&dev mo. Upload latest mo align on lastest po
(several new languages too)
hello. can you please add the hebrow language to the emulator becouse i dont now a lot english so thanks for the support and replay me please if you can.
I'm afraid that you need to find a good guy that will provide us a translation. None of us know hebrow.
Maybe there is a community or someone that wants to translate for your language. Search around and try asking politely for someone to take over Hebrew translation.

Revision 4738

codeblock: add gtk include file and remove some define
=> wx directly include one gtk include file directly and it seem to use also
deprecated stuff ...
Fixes compilation via code::blocks Thanks!

Revision 4739

Edited wiki page TranslationGuide through web user interface.
"As of the last update to this wiki, the latest POT file pack is the 0.9.8 release translation POT."
The "generate_pot.sh" and the .pot files have "0.9.9" as project version. Isn't kinda contradictory saying that it is 0.9.8 in the wiki, but in the POT in svn is "0.9.9" ?
The wiki is referring to the pot files found in the download section (as said above: "The latest stable release POT file pack can be found here: https://code.google.com/p/pcsx2/downloads/list ")
Not sure if we need to add details about svn pot files or if we should promote the stable ones instead of the svn ones
But at this point, new translations are important for next release, not the current one. New translators will want to get the latest POT be used in the latest pcsx2 code, so their translations can be used in the next release.
Also please notice that Gregory changed the POT organization in r4710 and r4711 - devel and tertiary pot files were deleted and poedit keywords were rearranged. So, there is a big difference between POT at r4600 and r4711+.
Maybe the POT at Download section should be updated?
Yeah maybe. But the general feeling is that it is a bit pointless to keep translating each time there is a revision that changes some strings until the next release. The next release could take a year or more and it is very possible much of the work done to translate some strings that could be deleted or modified in the future until the next release would go to waste.
My opinion would be to only update translations when a release is pending, on the RC stages.

Revision 4740

Edited wiki page UsingPoedit through web user interface.

Revision 4741

SPU2-X: Change the dead voice read logic to match the live one. (Probably
doesn't affect anything.)

Revision 4742

SPU2-X: Process input area regardless of ADMA status. Fixes Burnout, maybe
This is a guess, not confirmed by hardware testing, but seems logical.
errr wasn't Burnout already working?
It was kind of working before r4700 for the wrong reasons and apparently sometimes you needed to reset the volume levels in the menus. Now it should work properly.
Yep Burnout working correctly now. Nice :)
oh i see good work :)
Confirmed that this happens on a real PS2 now, for the record.
Also recovers background music in F1 2005.

Revision 4743

SPU2-X: Debugger was missing one digit of the IRQA, whops :p

Revision 4744

SPU2-X: Flag effect area for updating on effect area register writes rather than
core attributes change. (For change in testing. Committing separately for
regression testing purposes.)

Revision 4745

SPU2-X: Little mistake in input area IRQ code.

Revision 4746

SPU2-X: Change initial IRQA value, fixes F1 2005. This is a weird one, read the
long comment.
Yea, this one was a long time wtf game.
Thanks for figuring it out at last :)
Wow,a lot of games depend on sound. Great job :)
No kidding, yea.
It's like the SPU2 was more important than say, the EE :p
its just that unlike PC games where you can have a sound card or not, PS2 games expect sound (since there are no PS2's out there with no SPU2 chips that i know of).
PS2 games also want tons of feedback on what the sound chip is doing.
That's the real problem here, they expect so much really special info :p
yeah PS2 games want complete control / status monitoring on what the SPU2 is doing.
not like in PC games where it is just game outputs sound -> sound card driver -> sound card -> speakers and/or headphones. :)
spu2-x is just getting better and better
The game "The Bouncer" sounds like someone is really bad at playing the piano (horribly beeping noises) every time something moves when using spu2-x :),
the game audio works fine with peops spu2 so most likely a bug with SPU2-X
PEOPS somehow gets a ton of stuff right "by accident".
It probably works because it fails to emulate some other voice feature :p
Thanks for bringing up another title to look at though :)
cool, but i noticed that spu-x behaves weird in FFX, from a few revisions, but i can't pinpoint for sure which one. The version that comes with the beta is ok - but the SVN versions cause some garbage in sound after about 40 minutes of gameplay, i'll test more. Just wanted to see if anyone else is getting this?
40 minutes? That's a very long time in emulation unless you mean a specific scene always does it. The only thing that really has proven capable of that kind of deterioration is timestretching, so I'd suggest trying with that switched off and reporting back.
also can the beeps in Wild Arms 5 be silenced ?
cause its like : shoot power shot rocket -> beeeeep -> after it explodes no beep XD
i thought i heard another of these beeps in another game but cant remember now.
I need your memory card and a description on how to get to that power shoot thing.
here you go : http://www.4shared.com/file/PRtLtbql/Mcd001.html
Just load the game select the power shot cartrige with L1/L2 enter shooting mode with R1 then shoot with square.
Okay, in a couple hours. Thanks :)
Do you mean that *very faint* high pitched sound?
That may not even be a bug then but just a badly recorded sample.
very faint ? i can hear it pretty well
doesn't happen on PS2.
meh whatever :)

Revision 4747

SPU2-X: Version bump.

Revision 4748

* test the reading of the configuration file (will be safer with the previous
configuration format).
* bump the version

Revision 4749

wiki: linux 64 bits, add a user link for chroot in gentoo