Some thoughts concerning emulation
#1
I don't know much about the ps2 emulation, but I've read some of the devs' comments here on the forum about the problems of emulating and wanted to ask some questions.

I noticed that when I play REOhmyutbreak on the emu, I get much more fps if I choose to play alone rather than have teammates following me. I guess this is because the AI of my teammates takes some cpu resources, and I guess that would be the role of EE in the real ps2. In REOhmyutbreak it is pretty easy to remove AI from the equation, so my question would be: Can the AI part/routine present in all games (here ps2 games) be offloaded to another thread/core in order to get faster emulation, or, in other words, that AI gets a dedicated (3rd overall) core/thread? Also, would it even be worth the effort, i.e. maybe the speedup&stability/devs' effort ratio would be bad?
Thou, nature, art my goddess; to thy law
My services are bound.

We are such stuff
As dreams are made on; and our little life
is rounded with a sleep.
Reply

Sponsored links

#2
probably not it has nothing to do with emulating games because ai is in every game different. the slowdown you have is becaus ethere are more people/pixels on the screen and the cpu and gpu need to render that sp it is an extra load for the pc to handle it.
Reply
#3
No, I don't think the slowdowns are because of the pixels/more complex graphic calculations on the screen. Even when my teammates aren't in the same room with me, the slowdowns are still there. I'd say it's because of the calculations for their behavior/movement, which, I think, is the job of EE! Anyway, as ya say, since each and every game has different AI routine, my question seems superfluous!
Thou, nature, art my goddess; to thy law
My services are bound.

We are such stuff
As dreams are made on; and our little life
is rounded with a sleep.
Reply
#4
Some games use the EE Core (R5900) for AI stuff. Others use the VU1 co-processor. Especially slow ones like Splinter Cell and RE: Outbreak may use a combination of EE, VU0, and VU1 for their AI. These are exceptionally complex multi-cpu logic chains that cannot be multi-threaded.

Think of it this way -- you can't download a program that magically scales some old 1-thread PC game to use 8 threads. PCSX2's effect on PS2 games is not different: you can't just magically make a single-threaded chain of logic scale across many threads. Creating parallel logic chains is very complex, and requires great care on the part of the programmer to resolve data dependency chains, to arrange data in thread-local layouts, and to optimize the whole process so that the act of dispatching data to the worker threads isn't actually slower than having just done the work on one thread from the start.
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#5
Tnx Air for the explanation! Detailed and clear as ever!
Thou, nature, art my goddess; to thy law
My services are bound.

We are such stuff
As dreams are made on; and our little life
is rounded with a sleep.
Reply




Users browsing this thread: 1 Guest(s)