..:: PCSX2 Forums ::..

Full Version: Final Fantasy X NTSC running real-time (59.94 FPS) on latest beta using Pentium 4 HT
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8
Ah yes lol I use my save states in between mem card states just in case I don't want to go through another lengthy 15 minutes of pointless talking.

I've tried all the different combinations of speedhacks and only the EE cyclerate, VU stealing, Wait-loop and mVU flag hack make big differences (the r5333 version has an extra VU speedhack [mVU block hack] which seems also quite effective and that'll be the version I'll be using with SPU2-X since it runs faster than this version of PCSX2 with a plugin that slows things down 6-10 FPS (the later revision of SPU2-X wasn't working that well for me)

Also what I've noticed is when using save states, the AI tends to do the same exact things, like if you get into a fight or a boss battle it'll be the same turnout 9/10 times if you don't change anything.

Now I have a bunch of video and sound plugins to test, though I haven't had much luck with ZeroGS in particular.
Saw the video now and must agree the movements are somewhat funny and erratic but must admit he achieved something in that tweaking considering the hardware limitations.

Still I agree with Shadow Lady too, a little less in that VU ciclerate would give a more fluid moving even where the FPS may fall bellow the ideal in more than a few instances, or maybe not, really don't know. it's interesting what he made with that high FPS and low rate output struggling for balance where frame limiting would make it crawl and lag hopelessly. The high EE cyclerate hack suggest the sound will be an issue at least in some situations, too.

The main concern about those hacks level being in some situations something important may be skipped and the game may break, but it's just speculation, if it got past battles and some more demanding parts chances are it will go on until completion.

I became curious, I have another machine with a 9600 phenom stock clock and a horrible 8200 integrated card (yes, that is a hope killer) I doubt could come near that video... curiosity is a bad thing that scratches a lot Smile

PS: Dangerousd777, have you tried removing the IO cyclerate x2 hack? how it changes things in that setup?
Since you've got a phenom you should try software rendering with SwiftShader 2.0 (It's DX9 rendering for CPUs optimized to run over 50-100x faster than the Microsoft Direct 3D reference rasterizer, and if you combine it with GSDX you should get accurate, decent rendering speed... (I've got a vid of Oblivion running purely on software rendering on my CPU right here)



It's very slow on my processor, but then again I don't have another CPU core or two for rendering.

Considering the hardware limitations PCSX2 has went lightyears ahead in development in the past 8 or 9 years if it can run pretty well on a single core CPU with SMP (HT).

If you had a good graphics card you could probably run 2 games at once on a quad core, but you would need at least an 8800 GT or something if the native res is larger than 1280x1024.

It's possible that OpenGL could be faster for rendering (if properly coded) but in the case of PCSX2 the DirectX plugins are preferable because the OGL are the only available for Linux.

I figured how the EE cycle rate hack works, all it does is halve the emulated speed of the Emotion Engine, thus effectively seeming to increase the speed of the time-frame rather than the frame-times. It doesn't speed up framerate, it doubles the perceived execution speed and possibly thus allows more time for the IOP and VU.

Come to think of it, that's an incredibly interesting and brilliant hack... I've never seen any emulators where you could just *magically* change the clock speed of any components being emulated. Tongue (I would kill to emulate a N64 at double it's original frequency, I'd get half the framerate but the game would time stretch enough to rid of lag from the original console's CPU limitations [which also seem to be emulated, either that or you almost always get false FPS when it comes to Goldeneye 007 and Perfect Dark because those games usually struggled to run above 25 FPS on the N64 without the Expansion Pak]. [you can OC the original console up to 3x])

If only you could reduce the EE another 50% from the original frequency then you could have any 2D games max out or if you could change the execution speed of the VU units (VU1 is dominant in FFX and if you could reduce it's clockrate 50% instead of the EE then I could possibly gain framerate without sacrificing stability (because the EE would not have cycles stolen from it).

But while I'm not too sure about the certainty of all of that, I do know that halving the clock speed of the EE is going to double the perceived emulation speed and thus doing the inverse would make my PCSX2 run at 15 FPS (which would be false FPS most likely and it'd be 'frame doubling' (displaying twice as many frames as it normally would per second)

Cheat Engine's speedhack doesn't really do anything unless I reduce the speed below 100% (1)

The IOP cycle rate hack seems to do very little and only makes differences of 2-3 FPS usually, though sometimes it subtracts more.

The Wait Loop Hack is the most effective and the mVU min/max hack does virtually nothing that I could see with my eyes or hear with my ears. To lighten the amount of floating point work I just set rounding to nearest and clamp to none.

SuperVU and MicroVU run similarly although one will have an advantage over the other of up to 10% in different areas of the game.

I wonder if there was a way I could somehow target a single thread, if I could speedhack the 3 CPU-using threads of PCSX2 then I could change the speed of the emulated execution units to see if that really changes anything...

It would be interesting if there was a slider where you could change the speed from 1-50 or 75% and VU stealing at moderate tends to give me more fluid framerate for FFX without affecting the speed much, I also should see crashes less often.

To be honest, I feel like trying out Ratchet and Clank games, as well as GTA games, I used to play a few of those on the PS2. Laugh

I wonder if I could run Ace Combat 4... I have a copy of it lying around and I loved that game, I even wrote a poem/set of rhyming freeform lyrics titled "Ace Pilot" and then wrote a sequel twice as good titled "Legendary Combat Aviator".

If I recall AC4 *should* have graphic issues and execution speed issues (but I don't believe it was very taxing on PS2 hardware being a 2001 game, so I could try the EE cyclerate and VU cycle stealing)

That is exactly what makes 0.9.7 playable and 0.9.6 unplayable for me so far, it's just the VU cycle stealing feature...

If it changes anything, I just updated my Nvidia drivers 2 days ago, but my GPU isn't the bottleneck.

On a second note, without changing the EE cycle rate and just moderate VU cycle stealing with a few recommended speedhacks I could sustain about 50+ FPS without having to make the game crashy.

I also figured out why the video seems slow... the framerate started dipping to about 50-45 FPS so it did get pretty laggy (combined with the framerate halving effect of the camcorder), but otherwise it looks fluid when it's not chugging 20% slower than I hoped.
^Hey Buddy Laugh
I'd just like to ask what the "Divine GS Plug-In" you mentioned on your 1st post is and where can it and Swiftshader be loaded from?
You could find Swiftshader off Google and Divine I found off a Youtube video.
I can't give links to unsupported plugins and builds though.

By the way I just tested Futurama, it's playable but skippy as hell (12-14 FPS without speedhacks, 50-60 with... this is definitely false framerate reading but true sped-up time-frame.)



I used the skip MPEG/FMV hack because this game has too much senseless babbling, it almost reminds me of FFX, except in Final Fantasy they always get the pointless dialogue down so well it really makes you feel like you care about a reality that was fabricated in the imagination of the...

Shall I stop there? Tongue
That another is the "Frankenstein" machine, Dangerousd Smile it's built with leftovers of my upgrades... Like I keep the two last machines and at each one or two scheduled (and cascaded) upgrades a third arises, they end up in one the institutions I assist since normally they are at least pair with those still common in our local commerce... the "Frank" actually should have a nvidia 7900GTX but it died recently. I do not count the centrino based notebook my wife got from our daughter sometime ago, this one clearly would be madness trying to run PCSX2.

I must have yet buried under tons of 'antiquities' (funny word my wife uses for trash)and books the ancient Atari 2600, some z80 Sinclair, maybe a poor version of the TRS80 with membrane keyboard... a MSX... parts to build one or two 486 with super VGA video card and the amazing SB 16 AWE 32, no kidding*

*many the above are named second local manufacturers with names like CP200 for the z80 Sinclair, CP300 for the TRS80, I was forgetting one Apple II, that's the computer branch... it's the same for some Master System, Mega Drive, Nintendo, SNes (those got the emulation to irrevocably outdo them), PSone and PS2, the last console I bought and probably the very last... That's maybe the only advantage in being an old timer (ahh, an old man actually, must not euphemize it Smile ) and have worked in the area for so long.

PS: If did not give up the last machine in the chain I would now have Pentium MMX, Celeron, Athlon... based machines too, waste, unused and just occupying space, at least I like to think they gave some happiness and fun to some children.

Now Oblivion is an old acquaintance and a dear love of mine, I'm still active on Nexus forums but I didn't knew it exist for PS2 (I knew for sure the versions for PS3 and Xbox360) still I played it only in the PC (Must exist yet in the nexus a mod for it I made some years ago just for fun).
Ah, very insightful post. You know you can fix video cards that arrive dead or 'die' by baking them, usually it works...
If I had other rigs I would let them sit to crunch and compute and crank out any work I would need to do, like if I needed to convert a bunch of videos or something that happens to be trivial like that when you've only got a single core processor.

I never knew Oblivion existed for PS2?! I love that game. I use Streamline, Unofficial Oblivion Patch and Operation Optimization to get consistently smooth gameplay. (All those that I mentioned can double the FPS altogether) Laugh

Right now I'm on the highroad in FFX and I'm only getting like 30-40 FPS walking along this road because the polygon count exceeds 4,000 up into the 11 and 12k which is really killing my framerate. Past this part though I'll have it running buttery smooth again. I rarely get slowdowns but when I do it only dips to '55 FPS' (probably more like 30-40) at the worst. So far the game runs incredibly well and it's far more compatible than I imagined. I could probably play start to finish without speedhacks on a dual core without getting more than a couple crashes or less in 90-100 hours of gameplay.

That is amazing though, you must have a lot of experience with and knowledge about computers and consoles. I'm only 15, turning 16 on August 15th. I've been around computers pretty much since I was 5 and by now I basically 'specialize' compared to before on the hardware, how it works, specifications and how all that might effect what your trying to achieve.

Lately I find distributed computing pretty interesting... if people just like you donate some of their CPU time you could speed up what your doing at least a million times if the masses volunteer.
Of course those things came along 40+ years spam Smile somethings before computers like we accustomed to see them was known to many people. Time when TTLs (transistor Transistor Logic) chips became accessible to a broader public. Actually when I began working in that IBM 4341 /370 system under DOS (not to be confounded with MS-DOS) and CICS, Personal computers just did not exist yet. Soon the PC era came with the 8086, 386... MS-DOS, windows 3.1... all these came and were in the while.

Being 15 you are doing fine, just don't let yourself getting too much enthusiastic, but alas, forget this I said, enthusiasm is one those beautiful things of youth Smile
Oblivion was never on the ps2... That would have just been impossible. Morrowind probably coulda run on it fairly easily, oblivion no. And old computers are quite nice. 6502 was an interesting processor (especially to write an emulator for). What's really cool about operating on old systems is having extremely limited resources. 64k ram and 1mhz processor, 3 internal registers, 8 bit addressing, memory mapped IO ports... fun stuff. If you're programming oriented, Michael Abrash's Graphics Programming Black Book is basically the epitome of software optimization. Fantastic information. There's nothing nowadays on code optimization that even comes close to the information in that book.

Anyway, to be on topic, I saw a post or two earlier in the thread about threading emulated execution. It's impossible. I believe the emotion engine is superscalar, which makes it damn hard already, but out of order execution is a no go, especially on MIPS architecture, since it has a funky pipeline (R4000 does at least, its what I'm most familiar with. PS2 uses a R3000 and R5900, which are most likely very similar), which is quite linear except for branch delay instructions. Now there are other things that can be threaded though, like the recompiler (theoretically, I think). You could have a thread which simply scans through machine code (preferably starting at the correct reset vector because that's the only place that makes sense), then for all direct branches (i.e. not jump register esque instruction) you could recompile both targets. I have no idea how much that would help. Probably wouldn't really. Really, with a dynarec, you don't want to execute recompiled code faster, you want to execute less of it.

Then there's static recompilation, which I'm partial to myself, because I'm not smart enough to write an assembler (which is the back end of any recompiler). Plus, in most all situations, the static recompiler will probably create faster code than the dynarec, since it can perform all code optimization in not real time, larger scale constant propagation, and a bunch of other things I don't know about. Of course, the speed depends on your target code to C translator. Nice thing though, is a statarec is easier to code than a dynarec, but does have a few things that still makes it difficult to make. First is knowing what you need to actually recompile. Starting at the reset vector will only work until you hit indexed memory addressing, indirect jumps, and stuff like that. Then youd have to run that in an interpreter, log the execution, and write your statarec to compile whatever location in whatever manner. A linear sweep over the binary is normally useless since you might recompile data into executable code. Which is bad. And also, as you figure out more items to recompile, you'll have to recompile you C source code pretty much everytime you run it for a while, until everything needed is recompiled. In the time space tradeoff, its not that good of a deal.

I've wanted to write a threaded assembly interpreter for my next project. Don't know if thats actually possible though.
I see, there are many challenges involved. An interpreter is very accurate but is is also very slow.. if your in real-time terms, but what if you could interpret the entire game code overnight or something and then be able to translate all of it to assembly so that when you ran it on your PC it would only have to read the interpreted code and it would be much faster than recompiling to assembly in real time.

That solves the architecture problem of the games, once they're in native machine code they might not need emulation... or they might still require emulated hardware, but as long as you didn't have to recompile or interpret the game as you went along, it would be at least twice as fast.

If you know a good C++ tutorial geared toward the analytical and scientific population, then I'm all for it, because I would like to learn just to begin coding really simple programs for functions that probably haven't been covered in others.

N64 emulation is still pretty awesome, when UltraHLE was out in 1999-2000 people could run games with a 266 mhz Pentium II! If you could do similar with the PS2 you would need only 3-4x the CPU to emulate instead of 10x.

I had to OC my CPU enough to be about 10x faster than the Emotion Engine, and yet it's still not quick enough (obviously because of limitations in the emulator... those little kinks will be worked out eventually)

The next game I'm going to test with the latest builds is Ace Combat 04: Shattered Skies. Most likely it will be slow, less likely that some of the bugs and glitches will have been fixed.

It's also been a long time since I've played FFX-2.
Pages: 1 2 3 4 5 6 7 8