(09-30-2015, 05:49 PM)0Z3ro0 Wrote: [ -> ]I don't think comparing things makes people look ridiculous at all. In order to understand things we have to compare them to other things we already know. Once upon a time someone did compare apples to oranges and thats why we know an apple is an apple and an orange is an orange. None the less, we will never gain any knowledge if we don't ASK questions and compare our ideas. A lot of people call that philosophy.
I understand completely how the emulator has to actually emulate the entire PS2 system. Where I get hung up however, is the PS2 its self is a very low end system, its specs are trash. So to me, even with having to emulate an entire console, it would seem a high end system would have no trouble.
Here is some food for thought, why do we need to emulate the PS2 as a whole? Games require RAM, Processor, MB, and graphics to operate. While these pieces may be different as in a ps2 graphics card is MUCH different from a PC graphics card but they do the same thing. So what if instead of trying to emulate an entire PS2, we just use that same power to convert a ps2 game into a format in which out PC hardware can run it with no trouble.
Who knows maybe thats what they are already doing maybe that sounds stupid to some. I love this project and everything they do here. It just blows my mind that system 10x as fast as a ps2 have a hard time emulating a ps2 game. Our systems have the "raw power" to not only play ps2 level games, but some can actually play 3D games. To me it seems like its not the computers holding us back but our knowledge on how to truly utilize their power in an efficient manner.
Either way, thank you to all who helped me, I hope everyone is having a wonderful day,
Best of Wishes,
0Z
Originally posted by Refraction:
A lot of people seem to compare PS2 emulation to the other consoles such as Gamecube and PSX. Why are they faster? well the simple fact is the consoles are much simpler than the PS2, thus less code, bandwidth and development time is required.
This is a list of the things the emulator needs to emulate, i shall compare to the PSX.
EE (Emotion Engine) core = The PS2's main processor which runs 8x faster than the PSX processor with registers twice the size (128bits) although in general cases only 64 bits are used, where the PSX uses 32bits as a general rule. The other difference is the R5900 (EE) has many extra instructions, multimedia instructions and extra co processors which aren't in the PSX, so we have a processor that's 8x faster and at least 3 times more complex.
IOP (In Out Processor) core = This is identical to the PSX core, it is the same chip with a few extra dma channels, it is also clocked 3mhz higher than the PSX but we can assume its basically the same chip.
VUs (Vector Units) = The PS2's equivalent to the graphics engine on the PSX, it is seen as an extra processor (yes another one) although the PSX one was 4 times slower than the VU and also the VU has its own memory and run independently from the main CPU where as the PSX one is cpu dependent. This is the main reason for the slow 3d games on PCSX2, intense vertex processing done by the game using 4 32bit vertex's which makes up the 128bit floating point registers that it contains. This unit also processes textures and 2d information on a part of the unit called the VIF which unpacks texture data and sends it to the GS.
Oh, did we mention there's 2 of these units (VU0 and VU1)?
SPU2 (Sound Processing Unit 2) = This is literally, the SPU found on the PSX but doubled, so there is now 2 of them to handle
GS (Graphics Synthesizer) = This is the PS2 version of the GPU, which does a similar job, but has the ability to do anti aliasing and all sorts of other fancy things, although some were rarely used, this does all the vertex/texture mapping that you see on the screen.
SIF = Now this didn't appear on the PSX, it connects the IOP to the EE and is used to transfer data between the 2, as the DVD, sound etc is situated on the IOP side, pretty much laid out as the PSX was. Although its function seems simple, its required that we emulate it which takes extra time as expected.
These are the main, intensively used parts of the PS2 which are used in the emulator, as you can tell from the comparison that the PS2 is much more complex than the PSX and requires a lot more time. To add insult to injury on the real machine a lot of work will be done asynchronously, so say while the VU is doing something the processor will be doing something else, but unfortunately we cant do this, so we have to run 1 and pause the rest, when that's done let something else do the work and so on, and running all that processing power on a single CPU is very very intensive work. Now take all that and throw on at least FIVE times the requirements due to the emulation needing to process the original data and convert to ix86
As time goes on we find quicker ways to do things and optimize the code, but until we can run games at high speeds, enjoy the fact you can even run a PS2 game on your PC and continue to show your support
Also one thing he left out is just how different the PS2s parts are to a PC - the PS2 can do many things a PC can't do straightforwardly. What takes a dedicated machine 5 cpu cycles might take us 100 to emulate well. And what if that operation happens many times per second? Overhead adds up very quickly.